Um Framework para facilitar o desenvolvimento de aplicativos para extração e processamento de informações de várias fontes - Xavier, Otávio Calaça; Pires, Sandrerley Ramos; Marques, Thyago Carvalho; Garcia, Eduardo Augusto Santos; Saraiva, Felipe Pires; Silva, Anderson Soares da (Anais do Congresso Latino-Americano de Software Livre e Tecnologias Abertas (Latinoware), 2020)
O processo de extração de informações de diversas fontes com o objetivo de gerar um ambiente de Big Data é uma tarefa complexa. As variáveis envolvidas, como o volume de informações, a velocidade com que novas informações aparecem e a variedade de suas origens caracterizam esse ambiente complexo. Essa situação leva os desenvolvedores a lidar com um conjunto de detalhes que a tecnologia disponível requer para seu uso eficiente. O resultado é um processo de extração de dados pouco produtivo. Além disso, as ferramentas disponíveis atualmente são projetadas para cobrir cenários específicos e são difíceis de serem adaptadas. Este trabalho propõe um framework para apoiar o desenvolvedor a lidar com esta tarefa de forma produtiva. O objetivo da estrutura é fornecer uma maneira fácil de desenvolver um pipeline de tarefas resilientes e distribuídas. Ele abstrai detalhes da manipulação do banco de dados e da manipulação do enfileiramento de mensagens. Usando um sistema de enfileiramento de mensagens, ele pode distribuir a carga entre vários nós. O Framework dá ao desenvolvedor a possibilidade de criar módulos coesos e bem acoplados através das filas, permitindo a escalabilidade da estrutura de extração de dados. Assim, o desenvolvedor pode se concentrar em entender as estruturas de dados de origem que pretende extrair. Ele não precisa se preocupar com questões como gerenciamento de filas, balanceamento de carga em um ambiente distribuído, controle de conexões de banco de dados e até mesmo a escrita de enfadonhos comandos SQL, reduzindo a complexidade ao desenvolvimento. Em comparação com as ferramentas disponíveis atualmente, a estrutura proposta é leve, mais fácil de usar e projetada para desenvolvedores. Ela foi concebida para ser usada de forma programática em vez de usar a abordagem arrastar e soltar, resultando em ganhos de produtividade significativos.