google wave (arquitetura) ademir junior / felipe ferreira / fernando kakimoto

22
Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto

Upload: pedro-de-mello

Post on 07-Apr-2016

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto

Google Wave (Arquitetura)

Ademir Junior / Felipe Ferreira / Fernando Kakimoto

Page 2: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto

Visão de Implantação

Page 3: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto

Interfaces do Sistema

Page 4: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto

Visão Física Cliente

Composto apenas pela máquina do usuário

Page 5: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto

Visão Lógica Cliente

Page 6: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto

Visão Física Provider

Page 7: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto

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

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

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

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

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

Visão Lógica Front-End

Page 13: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto

Visão Lógica Server

Page 14: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto

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

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

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

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

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

Sequência – Visualizar Wave

Page 20: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto

Sequência – Atualizar Wave

Page 21: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto

Sequência – Atualizar Wave Remota

Page 22: Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto

Google Wave (Arquitetura)

Ademir Junior / Felipe Ferreira / Fernando Kakimoto