Transcript
- Slide 1
- 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.
- Slide 29
- Obrigado!