Repository logo
 
Loading...
Thumbnail Image
Publication

A comprehensive survey of asynchronous API approaches in concurrent I/O scenarios

Use this identifier to reference this record.
Name:Description:Size:Format: 
DiogoRodrigues_MEIC.pdf421.22 KBAdobe PDF Download

Abstract(s)

Abstract This thesis examines the evolution of data collection methodologies, transitioning from traditional asynchronous I/O systems to modern reactive programming paradigms such as Reactive Programming and Kotlin Flow. These paradigms represent a shift from static, sequential processes to dynamic, responsive data handling strategies, a transformation driven by recent advances in programming techniques. After presenting a concise historical overview to contextualize the study, the research focuses on a comparative analysis of key technologies like RxJava and .NET AsyncEnumerables, which utilize reactive streams to enhance the efficiency and scalability of large data volume management. The benchmarking methodology used in this research is straightforward, based on time measure of similar operations across the different tecnologies used in our implementations. The tasks that were used were fundamental and simple, such as identifying the largest word in a dataset and categorizing words by letter count, in a huge data set to simulate a world-like scenario. This pragmatic approach allows for a direct evaluation of each technology’s real-time data processing capabilities, underlining practical benefits and distinguishing their performances. In conclusion, this work provides a focused comparative analysis to enhance understanding of data collection technologies, while providing key concepts and demonstrating the advancements from traditional to modern tools, making a contribution on how these technologies compare to each other and perform depending of the situation.
Esta tese examina a evolução das metodologias de recolha de dados programaticamente, focando-se na transição de sistemas tradicionais de recolha de dados através de I/O assíncrono para paradigmas modernos de programação reativa. Estes paradigmas representam uma mudança de processos bloqueantes e sequenciais para estratégias de manipulação de dados dinâmicas e responsivas, uma transformação impulsionada pelo aparecimento de novas técnicas e tecnologias de programação assíncrona. Após apresentar uma visão histórica concisa para contextualizar o estudo, a pesquisa concentra-se numa análise comparativa entre tecnologias chave que permitem programação reativa, como o RxJava e os AsyncEnumerables da Microsoft, que utilizam streams reativos para aumentar a eficiência e escalabilidade na gestão de grandes volumes de dados. A metodologia de benchmarking é direta, baseando-se na recolha de tempos de operação em tarefas fundamentais — como, por exemplo, identificar a maior palavra num conjunto de dados e categorizar palavras pelo número de letras. Para tornar as métricas recolhidas mais representativas, foram utilizadas grandes quantidades de dados de forma a simular situações reais. Esta abordagem pragmática permite uma avaliação direta das capacidades de processamento de dados em tempo real de cada tecnologia, sublinhando benefícios práticos e distinguindo os seus desempenhos. Em suma, esta tese oferece uma análise comparativa entre várias tecnologias modernas de programação para a recolha de dados em grande escala, tendo também o objetivo de melhorar a compreensão deste tópico. Apresenta contexto histórico, conceitos-chave e as respostas tecnológicas atuais à leitura de dados em grande escala, contrastando com as práticas do passado.

Description

Keywords

Reactive programming Data collection methodologies Software paradigms RxJava Rx.NET Async enumerables Comparative analysis Real-time data processing Programming paradigms evaluation Technology performance comparison

Citation

Research Projects

Organizational Units

Journal Issue