Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Conclusão
 
 
Acadêmico(a): Matheus Losi
Título: Arquitetura de microserviços para percepção de colaboração em um sistema de chat
 
Conclusão:
Esse artigo apresentou o desenvolvimento de um web chat baseado na arquitetura de microserviços e a interface
gráfica com aspectos da percepção. É uma aplicação que pode ser publicada na web e ficar aberta para receber cadastros
de usuários, sendo que esses usuários cadastrados podem utilizar todas as funcionalidades do chat, criação de conversas,
adicionar contatos e enviar mensagens. Para o desenvolvimento do frontend da aplicação foi utilizado o ambiente de
desenvolvimento Visual Studio Code com a linguagem JavaScript e o framework Angular e para o backend foi utilizado
o ambiente de desenvolvimento PyCharm e a linguagem Python. Tanto backend como frontend foi utilizada a tecnologia
Docker para disponibilizar as aplicações.
Um dos objetivos deste trabalho era desenvolver uma arquitetura de microserviços voltada para a percepção da
colaboração em sistemas de chat. Esse objetivo foi alcançado com o web chat descrito nesse artigo, pois foram
desenvolvidos dois microserviços de backend em Python e uma aplicação Single Page Application (SPA) no frontend
desenvolvidas em Javascript com o framework Angular. Outro objetivo desse trabalho era poder ser utilizado por outras
aplicações. Para que pudesse ser utilizado por outras aplicações, a aplicação desse artigo foi desenvolvida em forma de
uma API Rest, assim cumprindo o objetivo de reutilização. O último objetivo do trabalho descrito nesse artigo era a
interface gráfica com características de percepção e contexto como diferencial. Esse objetivo foi cumprido com o
desenvolvimento de features no frontend voltadas para a percepção. Foram desenvolvidos itens como quantidade de
mensagens não lidas nas listas de chats, diferenciação de mensagens enviadas e mensagens recebidas, horário de envio e
leitura das mensagens e padrão de feedbacks das ações do chat utilizando Material Design, lista de contatos, chats e
grupos apenas com contatos adicionados na sua lista, assim os itens de percepção e contexto foram cumpridos.
Em comparação com seus correlatos, a aplicação disponibiliza as principais funcionalidades que são fornecidas
por aplicações comerciais de destaque no mercado, oferecendo estrutura modular e expansível para reutilização dos
serviços de backend dentro de qualquer outra aplicação de forma gratuita.
Como contribuições desse trabalho, ficam os estudos e análises sobre a utilização da arquitetura de microserviços
para a componentização e modularização de serviços que podem ser reutilizados por outras aplicações. Além disso, a
aplicação dos elementos de contexto e percepção em uma interface gráfica e os microserviços de chat que foram
desenvolvidos, sendo que esses poderão ser reutilizados em outras aplicações.
As limitações desse trabalho estão vinculadas a algumas funcionalidades do web chat que poderiam ampliar o
uso da ferramenta, download e upload de qualquer tipo de arquivo poderia incrementar o trabalho e dar mais
funcionalidade para os usuários. Na parte técnica dois itens poderiam ser evoluídos, sendo que na comunicação entre
cliente e servidor para a troca de mensagens poderia ser utilizado um websocket para evitar uma quantidade alta de
requisições ao servidor. Com a implementação de um websocket o cliente sempre seria avisado quando tivesse uma nova
mensagem e não precisaria ficar fazendo chamadas sequenciais para verificar se tem novas mensagens a serem carregadas.
Outro ponto técnico que poderia ser implementado entre a comunicação dos microserviços é uma aplicação chamada
circuit breaker. Um circuit breaker em uma arquitetura de microserviços faz com que o item de tolerância a falha fique
100% coberto. Ele pode manter em cache de algumas requisições entre microserviços, assim, fazendo que em algum caso
de queda de um serviço dependente, caso haja cache, nem se perceba a queda e traga todas as informações necessárias
para completar a requisição mesmo com serviço responsável pela informação estando offline.