Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Introdução
 
 
Acadêmico(a): Matheus Losi
Título: Arquitetura de microserviços para percepção de colaboração em um sistema de chat
 
Introdução:
Nos últimos anos a arquitetura de microserviços vem se consolidando cada vez mais no mercado, tornando-se
comum no desenvolvimento de aplicações empresariais (LEWIS; FOWLER, 2014). Isso ocorre, pois as aplicações
desenvolvidas na arquitetura monolítica ficaram complexas e muito grandes, dificultando a manutenção e a divisão do
trabalho dentro das equipes de tecnologia. Um exemplo disso, são os ciclos de mudanças que são mais complexos que,
segundo Lewis e Fowler (2014):
Uma pequena alteração feita em uma parte pequena do software faz com que toda a aplicação
monolítica necessite ser republicada. Com o passar do tempo ficará cada vez mais difícil manter uma
estrutura modular, sendo difícil separar as mudanças que deveriam afetar somente um módulo (LEWIS;
FOWLER, 2014, p. 1).
Nesse sentido, a arquitetura de microserviços se baseia na construção de serviços totalmente independentes com
uma carga menor de responsabilidades, possibilitando assim o desenvolvimento de uma aplicação mais simples de
fornecer manutenção e desenvolver novas funcionalidades (LEWIS; FOWLER, 2014). Microserviços são pequenos
serviços autônomos e trabalham em conjunto (NEWMAN, 2015). Além disso, com esta arquitetura é possível a escolha
de diferentes linguagens e estruturas de armazenamento de dados para uma mesma aplicação final, tendo em vista que
cada microserviço pode ter sua própria linguagem e forma de gerenciamento de dados. Em geral, essa arquitetura utiliza
a comunicação por Interface de Programação de Aplicações (API) no modelo de Transferência de Estado
Representacional (REST) através de requisições com o Protocolo de Transferência de Hipertexto (HTTP).
Usar uma arquitetura de microserviços na construção de sistemas colaborativos pode trazer benefícios como a
facilidade de liberar novos módulos e a facilidade de controlar funcionalidades diferentes para cada aplicação. Por
exemplo, uma aplicação que utiliza o microserviço de mensagens, não necessariamente precisa utilizar o microserviço de
compartilhamento de mídias.
Relacionado a sistemas colaborativos, um aspecto fundamental é a percepção (PIMENTEL; FUKS, 2011). Ela
está relacionada a um usuário entender as ações que foram executadas por ele, bem como pelos outros usuários do mesmo
grupo, evitando assim o isolamento e um melhor entendimento em ambientes de trabalho distribuídos. Também existem
meios computacionais de dar auxílio a percepção de um usuário, notificando e usando artefatos do ambiente
compartilhado para contextualiza-lo ao ambiente (PIMENTEL; FUKS, 2011, p.157).
Como a percepção, o contexto também tem um papel importante nos sistemas colaborativos, pois auxilia na
compreensão, resolução de problemas ou aprendizagem (PIMENTEL; FUKS, 2011, p.160). O contexto é o agrupamento
de condições relevantes que facilitam a compreensão do usuário a uma determinada situação, ações ou eventos.
Diante desse cenário, este trabalho apresenta o desenvolvimento de uma arquitetura de microserviços voltada
para atender as características de percepção e contexto de um sistema colaborativo, a ser validada em uma aplicação de
chat. A aplicação de chat foi escolhida para a validação, pois possui vários dos recursos de percepção e contexto de um
sistema colaborativo (envio de mensagem, recebimento, notificação, status, etc), assim como é um subsistema de vários
outros sistemas colaborativos (como redes sociais, texto colaborativo, entre outros). Desta forma, os microserviços
desenvolvidos poderão ser reutilizados por outras aplicações que necessitam de recursos do chat. Além das vantagens de
reutilização, existe a possibilidade de um sistema utilizar somente alguns microserviços específicos, fazendo com que
não seja obrigatório o uso de todos eles dentro da aplicação proposta. Com relação a percepção, haverá, por exemplo microserviços de notificação e leitura de novas mensagens, focado nos aspectos mensagem lida. Já com relação ao
contexto, haverá microserviços que fazem o gerenciamento e criação dos grupos de chat, que terão foco nos aspectos de
contexto, podendo ser este o grupo de contatos do usuário.
Logo, o objetivo deste trabalho é desenvolver uma arquitetura de microserviços voltada para a percepção da
colaboração em sistemas de chat. Aonde os microserviços da aplicação devem ser desenvolvidos como componentes para
que possam ser utilizados por outras aplicações e a interface gráfica desenvolvida com características de percepção e
contexto como diferencial.