Dataflows de tempo real como abstração para ferramentas de processamento de Big Data - Magano, Fernanda de Camargo (2020)
Grandes volumes de dados, provenientes de diversas fontes, são gerados continuamente nas cidades. O processamento e análise desses dados desempenham um papel fundamental na implementação de iniciativas para cidades inteligentes. Para processar Big Data urbano, é fundamental o uso de ferramentas de alto desempenho, que possam se beneficiar de computação paralela e distribuída para acelerar o processamento e prover respostas rápidas. Entretanto, esse uso não é trivial, pois as ferramentas, geralmente, não são interoperáveis e demandam que seus usuários tenham conhecimentos de computação paralela e distribuída e bancos de dados. Além disso, em cidades inteligentes, uma aplicação precisa ser capaz de se adaptar ao contexto atual de sua execução. Por exemplo, uma aplicação que mostra a situação atual do trânsito, em um contexto de indisponibilidade momentânea de dados coletados em tempo real, deve poder mostrar uma previsão do trânsito baseada em dados históricos, sendo necessária a combinação de processamento de dados em tempo real e em lotes. O objetivo deste trabalho é facilitar o uso de ferramentas de processamento de Big Data para desenvolvedores de software. Para isso, foi criada uma interface para especificação de workflows para o processamento de dados (ou dataflows) e um sistema de software que possibilita a execução deles em diferentes ferramentas de Big Data. Por um lado, a interface sintetiza os principais recursos dessas ferramentas, abstraindo suas especificidades e fornecendo uma representação padronizada para eles. Por outro lado, o sistema de software mapeia os dataflows definidos por meio da interface em modelos inteligíveis às ferramentas. A interface e o sistema propostos formam uma camada de abstração sobre os arcabouços de Big Data. Ambos foram validados e avaliados por meio da implementação de uma aplicação no domínio de mobilidade urbana, que processa dados reais da cidade de São Paulo. A aplicação escrita com o auxílio da interface foi analisada por meio de métricas de código-fonte. A partir da análise, foi possível concluir que houve ganhos com o uso da interface, como a redução no número de linhas, métodos, atributos, bem como a diminuição da complexidade ciclomática do código-fonte.