1 Modelos de Comunicao em Sistemas Distribudos Mdulo
1 Modelos de Comunicação em Sistemas Distribuídos Módulo 3 Alcides Calsavara Modelos de Comunicação em SD
2 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 Modelos de Comunicação em SD
3 Comunicação cliente-servidor Modelos de Comunicação em SD
4 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 Modelos de Comunicação em SD
5 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 Modelos de Comunicação em SD
6 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 Modelos de Comunicação em SD
7 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. Modelos de Comunicação em SD
8 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. Modelos de Comunicação em SD
9 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 Modelos de Comunicação em SD
10 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 Modelos de Comunicação em SD
11 Pacotes em protocolo C-S Modelos de Comunicação em SD
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 Modelos de Comunicação em SD 12
13 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 Modelos de Comunicação em SD
14 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 Modelos de Comunicação em SD
15 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 Modelos de Comunicação em SD
Chamadas e mensagens em RPC Máquina do Cliente 0 1 cliente 11 Máquina do Servidor 2 empacota parâmetros 4 desempacota parâmetros desempacota resultados 10 empacota resultados 8 Kernel 5 6 servidor 7 Kernel 3 9 Modelos de Comunicação em SD transporte de mensagens via rede 16
17 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 Modelos de Comunicação em SD
18 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 Modelos de Comunicação em SD
19 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 Modelos de Comunicação em SD
20 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 Modelos de Comunicação em SD
21 Comunicação em grupo n n Modelos de Comunicação em SD 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
22 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 Modelos de Comunicação em SD
23 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. Modelos de Comunicação em SD
24 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 Modelos de Comunicação em SD
25 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 Modelos de Comunicação em SD
26 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 Modelos de Comunicação em SD
27 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 Modelos de Comunicação em SD
- Slides: 27