Jos Dihego Rafael Carcio Rafael Bernardo
{jdso,rjcf,rbdb}@cin.ufpe.br
Slide 2
Email World
Slide 3
Wave Universe
Slide 4
Caractersticas[1] Lista de usurios Chats colaborativos,
grupais/privados Ps-editaveis Playback exibe histria do contedo
Albuns(imagens, vdeos) Sincronizao automtica atmica(caracter a
caracter, foto a foto) Identificao pontual autor-edio
Slide 5
Caractersticas[2] Troca de contedos entre waves (albuns, chats)
Desenvolvido usando Google Web Toolkit
Slide 6
Dispositivos Mobile (Android) Desktop Palmtop
Slide 7
Extensions Check spelling Gadgets Games (xadrez, Sudoku Puzzle)
Google maps Vdeos Youtube Integrao com blogs Pool wave Twitter wave
Bugzila wave Inside translate... (entre outras)
Slide 8
Requisitos Criar uma nova wave Adicionar/remover participantes
Editar contudo(vdeo,fotos,texto) Edio de conteudo intregada ao
google search Share media, discussion groups, blogs, games
Sincronizao de todos os tipos de media
Slide 9
Requisitos No-funcionais Usabilidade: Sistema com interface
intuitiva, drag-and-drop para usurios, documentos e widgets; Os
usurios no devem precisar de mais de 3 cliques para realizar uma
operao. Extensibilidade: Extensvel a novas funcionalidades (widgets
e robots); Deve-se possibilitar a criao e deployment do novo plugin
em tempo de execuo (sem necessidade de reiniciar o servidor).
Slide 10
Requisitos No-funcionais Portabilidade: Deve ser possvel
acessar o sistema com o uso de dispositivos mveis (celulares,
tablets) com acesso a internet. Disponibilidade: O sistema deve
estar disponvel 99,999% do tempo, pois poder ser de utilizao crtica
para uma organizao cliente.
Slide 11
Requisitos No-funcionais Tolerante a falhas: Deve retornar ao
ar automaticamente quando algum erro ocorrer. Escalabilidade: O
sistema deve ser distribudo em diversas mquinas. Segurana: Permitir
comunicao segura entre os provedores de wave. Ter controle de
acesso dentro dos wavelets.
Slide 12
Requisitos No-funcionais Independncia de plataforma: As
tecnologias utilizadas no desenvolvimento do sistema deve estar
disponvel para uso em Linux, Windows e Mac OSX. Isso permitir aos
providers escolherem qual sistema operacional desejam utilizar.
Descentralizao: As partes do sistema (providers) devem funcionar de
forma independente. Desempenho: O sistema no deve demorar mais que
3 segundos para carregar uma tela.
Slide 13
Diagrama de componentes OhCircus specication
Slide 14
Google Wave Architecture
Slide 15
Componentes e conectores
Slide 16
Mdulo
Slide 17
Open Local Wave
Slide 18
Open Local Wave - Gadget
Slide 19
Open Remote Wave
Slide 20
Implantao
Slide 21
Modelo de dados
Slide 22
Decises Arquiteturais Linguagem para o Backend- Java Prs:
Independente de plataforma, Grande aceitao na comunidade,
Portabilidade. Contra: Desempenho. Requisitos afetados:
Portabilidade, Independncia de plataforma, Desempenho.
Slide 23
Decises Arquiteturais Utilizao de Java + Flex para implementao
do Frontend. Prs: Flexibilidade nas interfaces grficas e menor
tempo de desenvolvimento. Alternativa: Ajax Requisitos afetados:
Usabilidade, Extensibilidade, Portabilidade.
Slide 24
Decises Arquiteturais Utilizao do protocolo Jabber/XMPP Prs:
Comunicao descentralizada. Vrios servidores so utilizados para a
comunicao entre diversas entidades. No h um ponto central de falha.
Permite chamadas de voz e vdeo, colaborao, integraes, distribuio de
contedo e roteamento de dados XML. Permite autenticao e checagem de
integridade. Requisitos afetados: Descentralizao, Tolerante a
falhas, Escalabilidade, Segurana.
Slide 25
Decises Arquiteturais Utilizao do Transport Layer Security
(TLS) Prs: Permite o estabelecimento de uma conexo segura entre um
"cliente e um servidor". Assegura que a comunicao no alterada em
trnsito. Requisitos afetados: Segurana.
Slide 26
Decises Arquiteturais No-utilizao de um banco de dados
distribudo e no- relacional (BigTable like) Prs: Permite facilmente
evoluo do sistema (mudana do esquema dos dados), rpida manipulao de
dados e replicao de dados automtica quando definidos os clusters.
Contras: Tecnologia nova (reviso dos conceitos de armazenamento de
dados existentes), Adaptao de bibliotecas de terceiros para acesso
a os dados armazenados. Sistemas em desenvolvimento e com problemas
de ponto de falha graves (centralizao). No existe garantia de
integridade de dados (propriedades ACID). Requisitos afetados:
Escalabilidade, Tolerncia a falha, Descentralizado,
Disponibilidade.
Slide 27
Decises Arquiteturais Utilizao de banco de dados relacional
Prs: Garantia das propriedades ACID (Atomicity, Consistency,
Isolation, Durability), rpido acesso e manipulao de dados,
tecnologia madura e amplamente utilizada. Contras: Difcio
configurao de clusters para replicao de dados, alto custo de
manuteno (tempo e dinheiro), evoluo de esquema feita de forma
semi-automtica ou manual. Requisitos afetados: Escalabilidade,
Tolerncia a falha, Descentralizado, Disponibilidade.
Slide 28
Decises Arquiteturais Escolha do RDBMS: Escolha entre os RDBMS
mais utilizados pelo mercado: MySQL: Velocidade de manipulao de
dados, possibilidade de suporte pela empresa que criou (pago).
PostgreSQL Muitos plugins para domnios especficos como Data
Warehousing e Geo. Escolhido MySQL: Acesso aos dados um requisito
crtico do sistema.