Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Introdução
 
 
Acadêmico(a): Ariel Adonai Souza
Título:  Middleware escalável e resiliente para comunicação em tempo real de aplicações web móveis em ambientes de computação distribuída 
 
Introdução:
O mundo está cada vez mais rodeado por aplicativos móveis. Estes aplicativos estão se
tornando a principal ferramenta de comunicação das pessoas com a Internet, conforme citado
por Oehlman e Blanc (2012). Diante desse cenário, é natural que surja uma demanda
crescente de ferramentas e tecnologias que embarquem os seus softwares corporativos nos
dispositivos móveis. Oehlman e Blanc (2012) também contam que em empresas com
aplicações web, os desenvolvedores reconstroem grandes porções dessas aplicações web
dentro dos aplicativos móveis para cada um dos diferentes dispositivos. “Para algumas
companhias que constroem aplicativos móveis, esta é uma metodologia aceitável. É, contudo,
uma das menos sustentáveis a longo prazo” (OEHLMAN; BLANC, 2012, p. 9). Os autores
apontam para um futuro em que a demanda por desenvolvedores seria muito grande para
conseguir manter todas essas aplicações por conta da grande variedade de dispositivos móveis
disponíveis hoje no mercado.
Uma solução mais viável é desenvolver uma aplicação web para dispositivos móveis.
Segundo Oehlman e Blanc (2012), aplicações web são uma forma de escrever aplicações que,
quando feito da forma correta, permite adaptar as aplicações para dispositivos móveis sem a
necessidade de reescrever muito código. “Um aplicativo web para dispositivos móveis é um
aplicativo construído com as tecnologias web centradas no cliente em HTML, CSS e
JavaScript, e é especificamente projetado para os dispositivos móveis” (OEHLMAN;
BLANC, 2012, p. 9).
Segundo Tanenbaum e Steen (2008), em meados de 1980 ocorreram dois avanços
tecnológicos que revolucionariam a computação até os dias atuais. O primeiro foi a evolução
de microcontroladores de maior capacidade, que com o passar do tempo chegavam à
capacidade de processamento de um mainframe por um preço muito menor. O segundo
avanço foi o desenvolvimento das redes de computadores e o surgimento das redes locais, as
Local Area Networks (LANs). As LANs permitiram que centenas de computadores próximos
pudessem trocar informações na velocidade de alguns microssegundos. O resultado do
surgimento destas duas tecnologias foi um modelo de computação de altíssima capacidade de
processamento conectado em uma rede de alta velocidade, os sistemas distribuídos.
De acordo com Tanenbaum e Steen (2008, p. 1), um sistema distribuído é “um
conjunto de computadores independentes que se apresenta a seus usuários como um sistema
único e coerente.” Eles ressaltam aspectos importantes: um sistema distribuído consiste em computadores autônomos e usuários (programas, aplicações ou pessoas) que devem achar que
tratam com um sistema único.
Segundo Tanenbaum e Steen (2008), em um ambiente de computação distribuída, por
conveniência, é utilizado um modelo de comunicação assíncrona e existem diversos sistemas
por trás de uma única aplicação. O RabbitMQ é uma aplicação que pode servir como broker
para comunicação entre os serviços de maneira assíncrona, conforme descrito por Barthel
(2009). O RabbitMQ utiliza o protocolo AMQT para comunicação com as aplicações,
protocolo este que não é compatível com aplicações web. Diante desse cenário, é possível
imaginar que seja complexo ou inviável uma aplicação web, que está fora deste ambiente, se
comunicar com os diversos sistemas que possam existir.
Por mais que à primeira vista pareça complexo estabelecer a comunicação entre a
aplicação web e os diversos sistemas em um ambiente distribuído, existe um tipo de software
que soluciona esta situação: os middlewares. Um middleware funciona “[...] de forma
essencial como uma camada oculta de tradução, o middleware permite a comunicação e o
gerenciamento de dados para aplicativos distribuídos.” (AZURE, 2021, p. 1). Com a
utilização de um middleware, a aplicação web se comunica de forma transparente com os
sistemas.
As plataformas em nuvem oferecem diversos serviços que podem ser configurados de
forma simples e já iniciam com segurança, escala e alta disponibilidade. Essas plataformas
são muito flexíveis e rápidas, permitindo que os sistemas escalem e as vezes de forma
transparente. Podem ser grandes aliadas ao construir sistemas que precisem ser altamente
disponíveis e com capacidade de escala.
Diante do cenário apresentado, levando em consideração o aumento do uso de
dispositivos móveis, a facilidade e conveniência em implementar aplicações web para
dispositivos móveis, este trabalho se propõe a implementar um middleware que possa atender
a este contexto