1 Arquiteturas de Sistemas Distribudos Modelos de Comunicao
1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
2 Referência Básica [C] Distributed Systems: Concepts and Design. G. Coulouris, J. Dollimore, T. Kindberg. Addison-Wesley, 1994. ISBN 0 -201 -62433 -8. (Capítulos 4 e 5) n [T] Distributed Operating Systems. A. S. Tanenbaum. Prentice-Hall, 1995. ISBN 0 -13 -219908 -4. (Seções 2. 4 e 2. 5) n Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
3 Conteúdo n Elementos básicos de comunicação n n n n Transmissão de dados Endereçamento Sincronismo Enfileiramento (Bufferização) Confiabilidade Comunicação cliente-servidor Comunicação em grupo Chamada remota de procedimento Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
4 Comunicação cliente-servidor Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
5 Transmissão de dados n n Dados em programas são estruturados enquanto que mensagens carregam informação sequencial: » Linearização/Restauração de dados Heterogeneidade na representação de dados em computadores: » Uso de um formato externo comum » Inclusão de uma identificação de arquitetura na mensagem Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
6 Marshalling/Unmarshalling n Marshalling: Linearização de uma coleção de itens de dados estruturados n Tradução dos dados em formato externo n n Unmarshalling: Tradução do formato externo para o local n Restauração dos itens de dados de acordo com sua estrutura n Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
7 Endereçamento n Esquemas: Endereçamento máquina. processo n Endereçamento máquina. id-local n Descoberta de endereço via broadcasting (difusão) n Descoberta de endereço via um servidor de nomes n n Problemas potenciais: transparência de localização, sobrecarga, escalabilidade Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
8 Comunicação síncrona n n Primitiva send é bloqueante: processo cliente aguarda enquanto o núcleo envia a mensagem para o processo servidor. Primitiva receive é bloqueante: processo servidor aguarda até que o núcleo receba uma mensagem endereçada para aquele processo. Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
9 Comunicação assíncrona n n Primitiva send não é bloqueante: o processo cliente aguarda somente enquanto a mensagem é copiada para o buffer do núcleo. Primitiva receive pode ser: n bloqueante: o processo servidor aguarda por uma mensagem. n não bloqueante: o processo servidor simplesmente comunica o núcleo que espera receber uma mensagem. Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
10 Enfileiramento n n n Situações: n Send ocorre antes de Receive n Um cliente faz um Send enquanto o servidor ainda atende a outro cliente Solução trivial: clientes devem insistir. . . Solução pragmática: mailbox (uma fila de mensagens controlada pelo núcleo): n mailbox criado a pedido do servidor n mensagens endereçadas ao mailbox Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
11 Confiabilidade n n Mensagens se perdem, atrasam, duplicam. Abordagens: n Send tem semântica não confiável: as aplicações devem garantir entrega de mensagens (ex: timeout) n Mensagem de acknowledgement enviada pelo servidor (no nível núcleo) n Mensagem de acknowledgement implícita na resposta do servidor Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
12 Pacotes em protocolo C-S Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
13 Comunicação em grupo n n Tolerância a falhas baseada na replicação de serviços Localização de objetos em serviços distribuídos Melhor desempenho via replicação de dados Múltipla atualização Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
14 Tipos de grupos n Visibilidade: Aberto: um processo fora do grupo consegue enviar mensagens para o grupo todo n Fechado: somente processos do grupo enviam mensagens para o grupo todo n n Organização: Peer: todos os processos tomam decisão n Hierárquico: decisão é centralizada n Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
15 Endereçamento de grupo n n n Multicast: um processo envia uma mensagem simultânea e somente para os membros do grupo. Broadcast: um processo envia uma mensagem para todas as máquinas e somente as que contêm um membro do grupo a assimila. Unicast: um processo envia uma mensagem para todos os membros do grupo em série. Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
16 Modificações no grupo Controle centralizado: servidor de grupo n Controle descentralizado: acordo entre os membros n Operações: n Entrada de um membro: atualizar estado n Saída de um membro: se involuntária (ex: parada), todos os membros restantes devem notar sua saída. n Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
17 Primitivas de comunicação Group. Send: envia mensagem para todos os membros do grupo n Group. Receive: aguarda mensagem enviada a todo o grupo n Get. Reply: aguarda resposta de todos os membros do grupo após um Group. Send n Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
18 Atomicidade Uma mensagem enviada ao grupo deve ser recebida por todos os seus membros ou por nenhum deles. n Situação: o enviador pode parar enquanto está enviando a mensagem para o grupo. n Garantia de consistência do grupo n Facilidade de programação n Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
19 Ordenação de mensagens Todas as mensagens enviadas a um grupo devem chegar a todos os processos na mesma ordem. n Abordagens: n Ordenação por tempo global n Ordenação por tempo consistente: somente uma mensagem por vez é difundida n Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
Chamada de Procedimentos Remotos (RPC) n n n Comunicação baseada em operações de entrada/saída: abstração fraca, sujeito a erros Ideal: programar um sistema distribuído como se fosse centralizado RPC objetiva permitir chamada de procedimento remoto como se fosse local, ocultando entrada/saída de mensagens Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 20
21 Visão geral Um processo A chama um procedimento p de um processo B, entrando em estado de espera n O processo B passa a executar o procedimento p, e ao seu término faz um reply para o processo A n O processo A volta à sua execução normal após ter recebido o reply n Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
22 Chamadas de procedimento n n n O procedimento chamador, que já tem suas variáveis locais empilhadas, empilha os parâmetros da chamada e o endereço de retorno O procedimento chamado aloca suas variáveis locais No retorno do procedimento chamado, os parâmetros e o endereço de retorno são desempilhados Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
23 Modos de parâmetros n n n Valor: procedimento chamado recebe uma cópia de uma variável conhecida do procedimento chamador Referência: procedimento chamado recebe o endereço de uma variável conhecida do procedimento chamador Cópia/Reescrita: procedimento chamador recebe uma cópia de uma variável conhecida do procedimento chamador e o valor desta cópia é reescrito na variável Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
24 Funções dos Stubs n n n Client stub n intercepta a chamada n empacota os parâmetros (marshalling) n envia mensagem de request ao servidor (através do núcleo) Server stub n recebe a mensagem de request (através do núcleo) n desempacota os parâmetros (unmarshalling) n chama o procedimento, passando os parâmetros n empacota o resultado n envia mensagem de reply ao cliente (através do núcleo) Client stub n recebe a mensagem de reply (através do núcleo) n desempacota o resultado n passa o resultado para o cliente Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
25 Falhas em RPC n n n O cliente não é capaz de localizar o servidor A mensagem de request do cliente para o servidor é perdida A mensagem de reply do servidor para o cliente é perdida O servidor pára após ter recebido a mensagem de request O cliente pára após ter enviado a mensagem de request Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
26 Falha do servidor n n n Passos normais: n recebe mensagem de request n executa procedimento n envia mensagem de reply Falha pode ocorrer: n após a execução n antes da execução Semânticas de chamada: n pelo menos um n no máximo um n exatamente um Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
27 Falha do cliente n n O servidor torna-se um “órfão” Soluções: n exterminação do servidor pela máquina do cliente n reencarnação do cliente: toda computação remota é destruída n "reencarnação" suave do cliente: somentes as computações remotas referentes a aquele cliente são destruídas n expiração: servidor estabele um timeout para confirmação Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos
- Slides: 27