Avaliação de estratégias de serialização para comunicação em sistemas distribuídos

Detalhes bibliográficos
Autor(a) principal: Gomes, Matheus Miranda Torres
Data de Publicação: 2023
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional da UFSC
Texto Completo: https://repositorio.ufsc.br/handle/123456789/253137
Resumo: TCC (graduação) - Universidade Federal de Santa Catarina, Centro Tecnológico, Sistemas de Informação.
id UFSC_2d832c9e40e423cc4a11201db986bcf5
oai_identifier_str oai:repositorio.ufsc.br:123456789/253137
network_acronym_str UFSC
network_name_str Repositório Institucional da UFSC
repository_id_str 2373
spelling Avaliação de estratégias de serialização para comunicação em sistemas distribuídosSistemas distribuídosSerializaçãoClient-serverBenchmarkC#TCC (graduação) - Universidade Federal de Santa Catarina, Centro Tecnológico, Sistemas de Informação.Sistemas distribuídos são essenciais para o processamento e distribuição de informações em uma sociedade tecnologicamente avançada. Projetar um sistema distribuído requer considerações complexas, especialmente em relação à eficiência da comunicação. Escolher o formato de comunicação correto é crucial, pois afeta o desempenho, custos e disponibilidade do serviço. Este trabalho se propõe a realizar uma análise exploratória das bibliotecas de serialização Newtonsoft.Json, MessagePack, Apache Avro, Apache Thrift, Protocol Buffers, FlatBuffers, e Cap'n Proto, para transporte de dados em sistemas distribuídos no escopo de \textit{microbenchmark} e comunicação entre serviços no modelo cliente-servidor, construindo um protótipo na linguagem C\# que represente um sistema de tráfego intensivo de dados. Com testes de desempenho, é explorado o comportamento das mesmas com grandes volume de serialização, de forma sequencial e concorrente, para determinar a eficiência em diversos cenários, além de uma análise quanto aspectos de implementação e de forma qualitativa sobre as funcionalidades de cada uma. As métricas coletadas envolveram, tempo de processamento, taxa de compressão e vazão do sistema, assim como métricas qualitativas, como abrangência em linguagens e interoperabilidade. Dentre as bibliotecas avaliadas, FlatBuffers, MessagePack e Protocol Buffers desempenharam de forma eficiente em todos os cenários, enquanto Apache Avro e Thrift obtiveram tempos mais lentos. FlatBuffers apresentou tempos de desserialização e um consumo muito baixo de memória RAM, mesmo trabalhando com grandes volumes de dados. Newtonsoft.Json, apesar de ser uma serialização textual, apresentou um importante ganho de desempenho fazendo uso da concorrência, assim como outras bibliotecas. No âmbito distribuído, Newtonsoft.Json, com carga menor de clientes simultâneos, apresentou bom desempenho, Apache Avro teve maior vazão na serialização, enquanto Protocol Buffers teve menor vazão média na serialização observada.Distributed systems are essential for processing and distributing information in a technologically advanced society. Designing a distributed system requires complex considerations, especially in relation to communication efficiency. Choosing the right communication format is crucial, as it affects performance, costs and service availability. This work aims to carry out an exploratory analysis of the serialization libraries Newtonsoft.Json, MessagePack, Apache Avro, Apache Thrift, Protocol Buffers, FlatBuffers, and Cap'n Proto, for data transport in distributed systems in the scope of \textit{microbenchmark} and communication between services in the client-server model, building a prototype in the C\# language that represents a data-intensive traffic system. Performance tests explore their behaviour with large volumes of serialization, sequentially and concurrently, to determine their efficiency in different scenarios, as well as an analysis of the implementation aspects and qualitative analysis of the functionalities of each one. The metrics collected included processing time, compression rate and system throughput, as well as qualitative metrics such as language coverage and interoperability. Among the libraries evaluated, FlatBuffers, MessagePack and Protocol Buffers performed efficiently in all scenarios, while Apache Avro and Thrift had slower times. FlatBuffers showed deserialization times and very low RAM consumption, even when working with large volumes of data. Newtonsoft.Json, despite being a textual serialization, showed a significant performance gain by using concurrency, as did other libraries. In the distributed environment, Newtonsoft.Json, with a lower load of concurrent clients, performed well, Apache Avro had the highest serialization throughput, while Protocol Buffers had the lowest average serialization throughput observed.Florianópolis, SC.Mendizabal, Odorico MachadoUniversidade Federal de Santa Catarina.Gomes, Matheus Miranda Torres2023-12-13T20:10:35Z2023-12-13T20:10:35Z2023-11-28info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesis113 f.application/pdfhttps://repositorio.ufsc.br/handle/123456789/253137Open Access.info:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFSCinstname:Universidade Federal de Santa Catarina (UFSC)instacron:UFSC2023-12-13T20:10:35Zoai:repositorio.ufsc.br:123456789/253137Repositório InstitucionalPUBhttp://150.162.242.35/oai/requestopendoar:23732023-12-13T20:10:35Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)false
dc.title.none.fl_str_mv Avaliação de estratégias de serialização para comunicação em sistemas distribuídos
title Avaliação de estratégias de serialização para comunicação em sistemas distribuídos
spellingShingle Avaliação de estratégias de serialização para comunicação em sistemas distribuídos
Gomes, Matheus Miranda Torres
Sistemas distribuídos
Serialização
Client-server
Benchmark
C#
title_short Avaliação de estratégias de serialização para comunicação em sistemas distribuídos
title_full Avaliação de estratégias de serialização para comunicação em sistemas distribuídos
title_fullStr Avaliação de estratégias de serialização para comunicação em sistemas distribuídos
title_full_unstemmed Avaliação de estratégias de serialização para comunicação em sistemas distribuídos
title_sort Avaliação de estratégias de serialização para comunicação em sistemas distribuídos
author Gomes, Matheus Miranda Torres
author_facet Gomes, Matheus Miranda Torres
author_role author
dc.contributor.none.fl_str_mv Mendizabal, Odorico Machado
Universidade Federal de Santa Catarina.
dc.contributor.author.fl_str_mv Gomes, Matheus Miranda Torres
dc.subject.por.fl_str_mv Sistemas distribuídos
Serialização
Client-server
Benchmark
C#
topic Sistemas distribuídos
Serialização
Client-server
Benchmark
C#
description TCC (graduação) - Universidade Federal de Santa Catarina, Centro Tecnológico, Sistemas de Informação.
publishDate 2023
dc.date.none.fl_str_mv 2023-12-13T20:10:35Z
2023-12-13T20:10:35Z
2023-11-28
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://repositorio.ufsc.br/handle/123456789/253137
url https://repositorio.ufsc.br/handle/123456789/253137
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv Open Access.
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Open Access.
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv 113 f.
application/pdf
dc.publisher.none.fl_str_mv Florianópolis, SC.
publisher.none.fl_str_mv Florianópolis, SC.
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFSC
instname:Universidade Federal de Santa Catarina (UFSC)
instacron:UFSC
instname_str Universidade Federal de Santa Catarina (UFSC)
instacron_str UFSC
institution UFSC
reponame_str Repositório Institucional da UFSC
collection Repositório Institucional da UFSC
repository.name.fl_str_mv Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)
repository.mail.fl_str_mv
_version_ 1808652197418762240