Arquitetura-Google-Wave-Parte2

Propaganda
Google Wave (Arquitetura)
Ademir Junior / Felipe Ferreira / Fernando Kakimoto
Visão de Implantação
Interfaces do Sistema
Visão Física

Cliente

Composto apenas pela máquina do usuário
Visão Lógica

Cliente
Visão Física

Provider
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
Disponibilidade do Serviço

Alternativas

Replicação/Redundância


Servidor de Ponta dedicado


Uso de múltiplas instâncias com balanceamento de carga entre as
instâncias
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
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
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
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
Visão Lógica

Front-End
Visão Lógica

Server
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.
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.
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.
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.
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.
Sequência – Visualizar Wave
Sequência – Atualizar Wave
Sequência – Atualizar Wave Remota
Google Wave (Arquitetura)
Ademir Junior / Felipe Ferreira / Fernando Kakimoto
Download