Anda di halaman 1dari 16

UNIVERSIDADE DO ESTADO DO AMAZONAS

ESCOLA SUPERIOR DE TECNOLOGIA

LAHIS ALMEIDA

LETCIA MEDEIROS

RACHEL LIMA

TRABALHO DE SISTEMAS DISTRIBUDOS

MANAUS-AMAZONAS

13/12/2016
LAHIS ALMEIDA

LETCIA MEDEIROS

RACHEL LIMA

TRABALHO DE SISTEMAS DISTRIBUDOS

Trabalho apresentado disciplina


de Sistemas Distribudos, solicitado
pelo Prof. Ricardo Rios como
requisito parcial para obteno de
nota, na Universidade do Estado do
Amazonas.

MANAUS-AMAZONAS

13/12/2016
Sumrio
INTRODUO..........................................................................................................4
1. Introduo ao Estudo de Caso: Chat de Reclamaes..................................5
1.1. Funcionalidades..........................................................................................5
1.2. Ferramentas de Implementao.................................................................6
1.2.1. HTML5 (HyperText Markup Language)...............................................7
1.2.2. CSS (Cascading Style Sheets)............................................................7
1.2.3. JavaScript............................................................................................7
1.2.4. Firebase...............................................................................................8
2. Arquitetura Global e Filosofia do Projeto....................................................10
2.1. Modelo Fsico..............................................................................................10
2.2. Modelo de Arquitetura e Paradigma de Comunicao...........................10
3.2.1. Entidades de Comunicao...............................................................11
3.2.2. Paradigma de Comunicao.............................................................11
3.2.3. Funes de Responsabilidade..........................................................11
3. Servios de Armazenamento de Dados e Coordenao............................12
CONCLUSO.........................................................................................................14
REFERNCIAS......................................................................................................15

16
INTRODUO

Depois do levantamento de aplicaes que envolvem a rea de Sistemas


Distribudos, a aplicao escolhida para ser desenvolvida pela equipe foi um
Chat, pois simples e permite colocar em prtica conceitos vistos em sala de aula
como por exemplo arquitetura do sistema, paradigmas de comunicao, servios
de armazenamento de dados entre outros.
1. Introduo ao Estudo de Caso: Chat de Reclamaes

Do ponto de vista de sistemas distribudos, um Chat bom exemplo de


aplicao para se realizar um estudo de caso simples e objetivo. A seguir, sero
apresentadas a motivao, suas principais funcionalidades, ferramentas utilizadas
no processo de desenvolvimento, arquitetura utilizada, ou seja, ser feito seu
estudo de caso.

1.1. Motivao

A opo de desenvolver este Chat se deu pelas seguintes razes: no


existe um canal de comunicao especfico para reclamaes sobre a EST, no
mximo algumas pessoas utilizam o grupo do facebook para expor suas
reivindicaes mas as informaes so apresentadas como uma grande confuso
de ideias e poucas vezes so sanados esses dilemas.

Alm disso o Chat possibilitaria aos usurios reclamarem dos problemas


que a universidade enfrenta, como por exemplo falta de segurana, pouca
iluminao, internet de baixa qualidade entre outras. Como a maioria dos alunos
permanecem na Universidade o dia inteiro, podem expressar com propriedade a
respeito desses problemas para que o diretor e/ou o reitor tenham cincia do que
a comunidade acadmica pensa e com o intuito de que possam ser solucionados
esses problemas.

Outro ponto importante a ser ressaltado o fato de que a equipe deveria


tentar encontrar uma soluo para algum dos problemas de sistemas distribudos.
A escalabilidade foi o nosso desafio escolhido. Um sistema descrito como
escalvel se permanece eficiente quando h um aumento significativo no nmero
de recursos e no nmero de usurios. Procuramos solucionar utilizando o realtime
database do Firebase que vai alocando espao no banco de dados de acordo
com o aumento de mensagens e usurios.
1.2. Funcionalidades

As principais funcionalidades do Chat desenvolvido so as trocas de


mensagens de texto e de figuras, permitindo que as reclamaes fiquem
registradas no s em formato de texto, mas tambm ratificadas atravs de
imagens.

Para que os usurios possam mandar mensagens e ter acesso ao


assunto que est sendo discutido, devem fazer login atravs de seus e-mails do
Google. As figuras abaixo ilustram as funcionalidades citadas.

Figura 1 Chat de Reclamaes

Fonte: https://chatsd-70716.firebaseapp.com/
Figura 2 Autenticao de Conta no Google

Fonte: https://chatsd-70716.firebaseapp.com/

1.3. Ferramentas de Implementao

As ferramentas utilizadas na implementao do Chat foram: HTML5, CSS,


JavaScript (Node.js) e Firebase. Cada uma dessas ferramentas ser apresentada
com detalhes a seguir.

Figura 3 Ferramentas Utilizadas


Fonte: https://dribbble.com/tags/firebase

1.3.1. HTML5 (HyperText Markup Language)

linguagem que especifica o contedo e o layout de pginas de forma


que elas possam ser exibidas pelos navegadores Web. Essa linguagem de
marcao descreve a estrutura e o contedo semntico de um documento da
Web. Uma pgina Web contm itens estruturados como cabealhos, pargrafos,
tabelas e imagens. usada para especificar links e os recursos associados a
eles.

Um navegador recupera o contedo de um arquivo HTML a partir de um


servidor Web. O navegador l o contedo retornado pelo servidor e o apresenta
como um texto formatado com as imagens que o compe, disposto em uma
pgina Web na forma que conhecemos. Apenas o navegador no o servidor
interpreta o texto em HTML. Contudo, o servidor informa ao navegador sobre o
tipo de contedo que est retornando, para distingui-lo de, digamos, um
documento em Portable Document Format. O servidor pode deduzir o tipo de
contedo a partir da extenso de nome de arquivo .html.

1.3.2. CSS (Cascading Style Sheets)

Linguagem de estilos (fontes, cores, espaamentos, entre outros fatores)


usada para descrever a apresentao de um documento escrito em HTML ou em
XML. O seu principal benefcio a separao entre o formato e o contedo de um
documento. Em vez de colocar a formatao dentro do documento, o
desenvolvedor cria um link (ligao) para uma pgina que contm os estilos,
procedendo de forma idntica para todas as pginas de um portal. Quando for
necessrias alteraes na aparncia do portal, basta modificar um arquivo .
1.3.3. JavaScript

Linguagem de Programao que oferece formas de tornar determinados


processos de pginas web mais dinmicos, tornando seu uso mais agradvel. Ao
invs de rodar remotamente em servidores na internet, o JavaScript tem como
caracterstica rodar programas localmente - do lado do cliente. Assim sendo, o
mesmo fornece s pginas web a possibilidade de programao, transformao e
processamento de dados enviados e recebidos, interagindo com a marcao e
exibio de contedo da linguagem HTML e com a estilizao desse contedo
proporcionada pelo CSS nessas pginas.

Algumas tecnologias surgiram com o avano do JavaScript, dentre elas


foi utilizada na aplicao o Node.js. Criado em 2009, o Node.js um conjunto de
ferramentas opensource que permite criar servidores web para execuo remota
de aplicaes JavaScript. Servios importantes como PayPal, LinkedIn e Groupon
usam Node.js para funcionar.

O Node.js uma plataforma construda sobre o motor JavaScript do


Google Chrome para facilmente construir aplicaes de rede rpidas e escalveis.
Node.js usa um modelo de I/O direcionada a evento no bloqueante que o torna
leve e eficiente, ideal para aplicaes em tempo real com troca intensa de dados
atravs de dispositivos distribudos.

Este projeto era uma plataforma que combinava a mquina virtual


JavaScript V8 da Google e um lao de eventos. O projeto apontava para uma
direo diferente das outras plataformas em JavaScript que rodam no servidor:
todos I/O primitivos so orientado a eventos. Aproveitando o poder e a
simplicidade do Javascript, isso tornou tarefas difceis de escrever aplicaes
assncronas em tarefas fceis.

1.3.4. Firebase

O Google oferece uma infinidade de servios baseados na nuvem, e um


deles o Firebase, um toolkit completo, o qual foi utilizado para a construo
deste trabalho. H vrias funes no Firebase, como o Google Analytics, o Cloud
Messaging, Hosting, entre outras. O presente trabalho focar no Firebase
Realtime Database.
O Firebase Realtime Database um banco de dados hospedado na
nuvem. Os dados so armazenados como JSON e sincronizados em tempo
real com todos os usurios conectados. Quando se cria aplicativos
multiplataforma com os SDKs para iOS, Android e JavaScript, todos os
usurios compartilham uma instncia de Realtime Database e
automaticamente recebem atualizaes com os dados mais recentes. As
principais vantagens que o Firebase proporciona so:

o Hospedagem: Apesar de no ser estritamente obrigatrio, um bom


Progressive Web Apps tende a ser um Single Page APP. Com o Firebase
Hosting pode dar deploy nos arquivos estticos do seu PWA com apenas
uma linha de comando, usando o Firebase-CLI. Tudo enviado para os
servidores do Google e entregue via CDN 1 ao redor do mundo, o que
garante que o usurio da sua aplicao vai carregar seu app o mais rpido
possvel.

o Rotas: Sabe-se o quo importante fazer o roteamento devido das


pginas. O Firebase permite, de maneira simples, redirecionar todo o
acesso de URL no seu site para a index.html.

o HTTPS/SSL grtis com seu prprio domnio: O firebase oferece o HTTPs


na faixa para quem usa o subdomnio padro, o firebaseapp.com. Porm
eles agora compram e configuram o certificado SSL para o usurio, sem
qualquer custo. E dado que um certificado direto, diferente do SSL
gratuito que o CloudFare oferece, sem sombra de dvida a melhor
soluo para ter um HTTPs gratuitamente, com o mnimo de esforo.

o Push Notifications, Auth e outras coisas: Como foi comentado no comeo


desse quesito sobre o Firebase, ele um toolkit robusto e completo. O
Firebase Cloud Messaging, por exemplo, uma verso evoluda do Google
Cloud Messaging, totalmente projetada para aplicativos e sites. Ele
especialmente til para o envio de Push Notifications segmentados,
fomentado o engajamento dos usurio, que um dos princpios de um

1 CDN Content Delivery Network ou Rede de fornecimento de contedo, um sistema de computadores


interligados em rede atravs da internet, que cooperam de modo transparente para fornecer contedo a
usurios finais. Portanto, uma maneira de enviar contedo massivo para usurio sem ter problemas com
performance.
Progressive Web App. Alm disso, temos servios como de Autenticao
integrado diretamente com o banco do Firebase (totalmente compatvel
com OAuth, d pra logar at com conta Microsoft); Analytics projetado para
Apps; Integrao com o Google Adwords; e os incrveis Dynamic Links e o
Firebase Invites.

2. Arquitetura Global e Filosofia do Projeto

Com o objetivo de descrever o Sistema que foi desenvolvido, sero


utilizados os seguintes modelos descritivos: Modelo Fsico, que captura a
composio de hardware de um sistema, em termos dos computadores e suas
redes de interconexo; e o Modelo de Arquitetura, que descreve um sistema em
termos das tarefas computacionais e de comunicao realizadas por seus
elementos computacionais.

2.1. Modelo Fsico

Diferente de sistemas mais complexos que possuem um infraestrura fsica


complexa de computadores que os sustentam, o Chat desenvolvido necessita
apenas de um computador comum, quando executado localmente. Quando este
acessado no endereo https://estchatsd.firebaseapp.com/ o respectivo servidor
hospedeiro sustenta sua infraestrutura fsica.

A principal Filosofia do Chat de Reclamaes, portanto, em termos de


infraestrutura fsica, utilizar os recursos de hospedagem na nuvem,
proporcionados pelo Firebase, produzindo um ambiente de armazenamento e
computao distribudos ou, quando em execuo local, utilizar-se de
computadores comuns para sustentar a aplicao.

2.2. Modelo de Arquitetura e Paradigma de Comunicao

A arquitetura de um sistema sua estrutura em termos de componentes


especificados separadamente e suas inter-relaes. Com o objetivo de entender o
Sistema Distribudo desenvolvido e de acordo com a especificao do livro
COULOURIS, George. Sistemas Distribudos, Conceitos e Projetos. 5ed, 2013,
os elementos arquitetnicos da aplicao so:

2.2.1. Entidades de Comunicao

Na aplicao em questo, as entidades que se comunicam do ponto de


vista do sistema, so os processos e do ponto de vista da programao, utilizam-
se dos Servios Web, que so parcialmente definidos pelas tecnologias baseadas
na Web que os mesmos adotam (HTML, CSS, JavaScript e Firebase).

2.2.2. Paradigma de Comunicao

O paradigma utilizado foi o de Invocao Remota, que o paradigma de


comunicao mais comum nos sistemas distribudos, cobrindo uma variedade de
tcnicas baseadas na troca bilateral entre as entidades que se comunicam em um
sistema distribudo e resultando na chamada de uma operao, um procedimento
ou mtodo remoto. Desse paradigma utilizou-se o Protocolo de requisio-
resposta, que efetivamente um padro imposto em um servio de passagem de
mensagens para suportar computao cliente-servidor. Em particular, esses
protocolos normalmente envolvem uma troca por pares de mensagens do cliente
para o servidor e, ento, do servidor de volta para o cliente, com a primeira
mensagem contendo uma codificao da operao associados. A segunda
mensagem contm os resultados da operao, novamente codificados como um
vetor de bytes.

2.2.3. Funes de Responsabilidade

Em um sistema distribudo, os processos interagem uns com os outros


para realizar uma atividade til; por exemplo, para suportar uma pgina do Chat
de Reclamaes. Ao fazer isso, os processos assumem determinadas funes
que resultam em estilos de arquitetura bsicas. A que est sendo utilizada no chat
arquitetura Cliente-Servidor. Sua estrutura simples: os processos assumem os
papis de clientes ou servidores. Em particular, os processos clientes interagem
com processos servidores, localizados possivelmente em distintos computadores
hospedeiros, para acessar os recursos compartilhados que estes gerenciam. A
figura 4 apresenta esse tipo de arquitetura.

Figura 4 Arquitetura Cliente-Servidor

Fonte: https://dribbble.com/tags/firebase

3. Servios de Armazenamento de Dados e Coordenao

Como introduzido anteriormente, o Firebase utiliza seu recurso Realtime


Database, hospedando sua base de dados na nuvem. Os dados so
armazenados como JSON e sincronizados em tempo real com todos os
usurios conectados. Ele permite a criao de aplicativos colaborativos
avanados ao permitir acesso seguro ao banco de dados diretamente do
cdigo do lado do usurio. Os dados so mantidos localmente, mesmo off-line,
e eventos em tempo real continuam a ser acionados, proporcionando uma
experincia responsiva ao usurio final. Quando o dispositivo recupera a
conexo, o Realtime Database, sincroniza as alteraes nos dados locais com
as atualizaes remotas que ocorreram quando o cliente estava off-line,
mesclando qualquer conflito automaticamente.

Esse Banco de Dados fornece uma linguagem de regras baseadas em


expresses flexveis, chamadas regras de segurana do Firebase Realtime
Database, para definir como os dados devem ser estruturados e quando podem
ser lidos e gravados. Com a integrao com o Firebase Authentication, os
desenvolvedores podem definir quem tem acesso a quais dados e como esses
dados podem ser acessados.

O Realtime Database , tambm, um banco de dados NoSQL e, como


tal, tem diferentes otimizaes e recursos em comparao a um banco de
dados relacional. A Realtime Database API foi projetada para permitir somente
operaes que podem ser executadas com rapidez. Isso permite que o
desenvolvedor tenha uma tima experincia em tempo real que pode atender
milhes de usurios sem comprometer sua capacidade de resposta. Por isso,
importante considerar como os usurios precisam acessar seus dados e
estrutura-los de forma adequada.
CONCLUSO

Este trabalho teve como objetivo documentar as principais


funcionalidades e ferramentas utilizadas no Chat de Reclamaes que foi
desenvolvido, alm de explicar detalhadamente os elementos arquitetnicos,
paradigmas de comunicao e servios de armazenamento do mesmo, gerando
um estudo de caso simples e objetivo.

Com o presente trabalho, a equipe pode aprender novas ferramentas de


desenvolvimento Web como o Firebase e Node.js, e aprofundar os
conhecimentos na rea de Computao Distribuda.
REFERNCIAS

1. COULOURIS, George et al. Sistemas Distribudos, Conceitos e


Projetos. 5 ed. Porto Alegre: Bookman, 2013.

2. SILVA, Giancarlo. O que e como funciona a linguagem JavaScript ?.


Disponvel em:< />. Acesso em: 07 de dez. 2016.

3. HTML.net. O que HTML?,. Disponvel em:<>. Acesso em: 07 de dez.


2016.

4. GOOGLE DEVELOPERS. Recursos,. Disponvel em:< >. Acesso em: 08 de


dez. 2016.

Anda mungkin juga menyukai