UMA ANÁLISE COMPARATIVA DE MODELOS DE ARQUITETURA DE SOFTWARE PARA O DESENVOLVIMENTO DE UM SISTEMA AGROPECUÁRIO PARA A WEB

  • Felipe Bedinotto
  • Ana Paula Ludtke Ferreira
Rótulo Arquitetura, microsserviços, Melhoramento, animal, Desenvolvimento, web

Resumo

O Sistema Solo-Planta-Animal-Ambiente envolve variáveis pedológicas, meteorológicas, biológicas, químicas e antrópicas cuja mensuração nem sempre é simples e cujas relações nem sempre estão bem estabelecidas ou quantificadas.  Modelos de negócio para sistemas produtivos agropecuários lidam com todas essas variáveis e relações com o objetivo de obter lucros. A agropecuária de precisão estuda a variabilidade dentro desses sistemas de forma a aumentar a produtividade com menores custos e com responsabilidade ambiental e em relação ao bem-estar animal. Sistemas de agropecuária de precisão usam diversas fontes de sensoriamento, bases de dados de diferentes tipos e paradigmas, juntamente com sistemas legados que devem ser integrados para que possam conversar e produzir conhecimento que possa ser disponibilizado para o usuário final. Aplicações para descoberta de conhecimento em bases de dados, aprendizado de máquina, inferência lógica e probabilística dependem da integração de dados de diferentes fontes. Atualmente, sistemas de software devem poder ser executados a partir de diferentes dispositivos computacionais de desktops tradicionais a celulares, frequentemente incluindo a necessidade de comunicação com outras máquinas e dispositivos, no contexto da Internet das Coisas (IoT). Neste projeto, pretende-se desenvolver uma Application Programming Interface (API) e um sistema web capazes de comunicar tanto com uma base de dados orientada a grafos como com uma base de dados relacional, prover aplicações e funcionalidades diversas, mais ou menos integradas, receber dados oriundos de sensores, planilhas eletrônicas e outras fontes a definir, executar várias tarefas distintas programadas em linguagens diferentes, ser robusto, de fácil manutenção e apresentar características de escalabilidade. O objetivo deste trabalho é pesquisar quais os modelos de arquitetura de software que melhor acomodam as premissas e peculiaridades deste projeto. O trabalho centrou-se em analisar os conceitos fundamentais, as características e os tipos de aplicações que utilizam os seguintes modelos: camadas, cliente-servidor, microsserviços, monolítico, MVC e SOA. Diferentes arquiteturas representam novos modos de estruturação de sistemas e são constantemente desenvolvidas para suprir as necessidades que surgem no mercado, aumentando as opções disponíveis tanto de ferramentas quanto de modos de desenvolvimento. O modelo tradicional de arquitetura monolítica, no qual o sistema era desenvolvido como um bloco único, com execução centralizada, forte acoplamento, funcionalidades estáticas e quase sempre desenvolvido na mesma linguagem de programação e para a mesma plataforma de hardware, não cabe mais nas necessidades de desenvolvimento de software atuais. Hoje, há uma miríade de linguagens de programação, frameworks e técnicas para desenvolvimento web capazes de atender a esses requisitos. O modelo de arquitetura de microsserviços, investigado neste trabalho, permite a criação de várias aplicações, individualmente responsáveis por alguma tarefa ou característica específica do sistema. O baixo nível de acoplamento gerado acarreta maior facilidade de criação e manutenção de aplicações.  A escalabilidade dos sistemas também é beneficiada, visto que um número maior de diferentes requisições pode ser processado simultaneamente e o aumento de funcionalidades é feito de forma quase independente do restante do código. O sistema torna-se também mais robusto, visto que a parada de um serviço não afeta os demais. Salienta-se ainda a possibilidade nativa de integração de diversas tecnologias por meio de API, o que é condizente com o modo de desenvolvimento atual e com os requisitos estipulados para as aplicações em foco neste projeto de pesquisa, que envolve a disponibilização de funcionalidades que possam ser integradas a diferentes tipos de sistemas. Tendo em vista que esse tipo de arquitetura permite a integração de vários pequenos serviços, mesmo criados em linguagens de programação distintas, este modelo foi o escolhido para ser usado no desenvolvimento. A aplicação-teste do modelo será um sistema voltado para o melhoramento genético de bovinos. Pelo fato de ser um sistema com uma gama de tarefas que devem ser adicionadas com o tempo e devendo operar online, constatou-se que pelos modos mais tradicionais de se construir um sistema web, acarretaria num aumento de complexidade na integração dos módulos durante o desenvolvimento. O sistema deve também fazer uso de algoritmos já desenvolvidos no âmbito do projeto. Seguindo as características do modelo, cada serviço do sistema será conteinerizado utilizando Docker e será definida uma API por meio da qual todos os contêineres deverão se comunicar. O conjunto assim formado será a aplicação completa, dividida em aplicações menores e independentes. O sistema está em estágio inicial de desenvolvimento, tendo sido concluídos o estudo das arquiteturas e a instalação da infraestrutura de software.

Downloads

Não há dados estatísticos.
Publicado
2021-11-16
Como Citar
BEDINOTTO, F.; PAULA LUDTKE FERREIRA, A. UMA ANÁLISE COMPARATIVA DE MODELOS DE ARQUITETURA DE SOFTWARE PARA O DESENVOLVIMENTO DE UM SISTEMA AGROPECUÁRIO PARA A WEB. Anais do Salão Internacional de Ensino, Pesquisa e Extensão, v. 13, n. 3, 16 nov. 2021.