google wave (arquitetura) ademir junior / felipe ferreira / fernando kakimoto
TRANSCRIPT
![Page 1: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/1.jpg)
Google Wave (Arquitetura)
Ademir Junior / Felipe Ferreira / Fernando Kakimoto
![Page 2: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/2.jpg)
Visão de Implantação
![Page 3: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/3.jpg)
Interfaces do Sistema
![Page 4: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/4.jpg)
Visão Física Cliente
Composto apenas pela máquina do usuário
![Page 5: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/5.jpg)
Visão Lógica Cliente
![Page 6: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/6.jpg)
Visão Física Provider
![Page 7: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/7.jpg)
Disponibilidade do Serviço Decisão
Como garantir que o serviço fique disponível mesmo em situações de falha ou de grande demanda
Restrição Sistema deve ficar disponível 99% do tempo
![Page 8: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/8.jpg)
Disponibilidade do Serviço Alternativas
Replicação/Redundância Uso de múltiplas instâncias com balanceamento de
carga entre as instâncias Servidor de Ponta dedicado
Uso de um servidor de alto desempenho dedicado Efeitos
Custo da solução através da aquisição de equipamentos adicionais
Expectativa do usuário em relação ao tempo de resposta no uso do sistema
![Page 9: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/9.jpg)
Armazenamento de Dados Decisão
Correspondente à forma como os dados (waves e informações de usuários) serão persistidos no sistema
Restrições Quando um dado é atualizado, este deve estar
imediatamente disponível à todos os usuários O sistema deverá permanecer disponível mesmo
em caso de falhas e atualizações O sistema será desenvolvido em Java
![Page 10: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/10.jpg)
Armazenamento de Dados Alternativas
Cassandra: Agrupa tecnologias do Dynamo Modelo de dados do Bigtable Eventually Consistent
Hbase Implementação open-source do Bigtable Sub-projeto do Apache Hadoop Desenvolvido em Java
![Page 11: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/11.jpg)
Armazenamento de Dados Alternativas (Cont.)
Hypertable Implementação open-source do Bigtable Pode ser integrado a diversos sistemas de arquivos Desenvolvido em C++
Efeitos Utilização de uma instância do Hadoop Distributed
File System Servidores para rodar os componentes do Hbase
![Page 12: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/12.jpg)
Visão Lógica Front-End
![Page 13: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/13.jpg)
Visão Lógica Server
![Page 14: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/14.jpg)
Controle de Concorrência Decisão
Resolução de conflitos durante a edição colaborativa de uma wave/wavelet por mais de um usuário ativo ao mesmo tempo.
Restrições Consistência: todos os usuários ativos deverão
estar com a versão atualizada do documento. Performance: baixa latência nas atualizações dos
dados.
![Page 15: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/15.jpg)
Controle de Concorrência Restrições (Cont.)
Disponibilidade: o documento deve estar disponível mesmo em caso de conflito.
Cliente Otimista: cliente sempre assume que o servidor aceitou a atualização dos dados.
Controle de versão dos documentos para o uso do play back.
![Page 16: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/16.jpg)
Controle de Concorrência Alternativas
Controle de concorrência Otimista Não bloqueia os recursos (lock-free). Modificações dos usuários são desfeitas em caso de
conflito. Lock
Para fazer qualquer modificação é necessário adquirir um lock do objeto.
Demora muito no tempo de resposta. Perigo de deadlock.
![Page 17: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/17.jpg)
Controle de Concorrência Alternativas (Cont.)
Timestamps Método não baseado em lock. Transações executadas pela ordem de timestamp. Problema na consistência dos dados.
Transformações operacionais (OT) Framework de controle de concorrência (lock-free). Suporte a edição colaborativa de documentos de texto
simples. Capacidade de resolução de conflito. Edição de documentos de forma estruturada em XML.
![Page 18: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/18.jpg)
Controle de Concorrência Efeitos
A escolha de transformações operacionais (OT) como controle de concorrência não terá nenhum impacto nos requisitos dos stakeholders.
![Page 19: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/19.jpg)
Sequência – Visualizar Wave
![Page 20: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/20.jpg)
Sequência – Atualizar Wave
![Page 21: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/21.jpg)
Sequência – Atualizar Wave Remota
![Page 22: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto](https://reader033.vdocument.in/reader033/viewer/2022051223/570638431a28abb8238f1adf/html5/thumbnails/22.jpg)
Google Wave (Arquitetura)
Ademir Junior / Felipe Ferreira / Fernando Kakimoto