Aula 08 - Paradigmas da comunicação - os modelos de comunicação - Miguel Rodrigo Alsina
Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides...
Transcript of Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides...
![Page 1: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/1.jpg)
Modelos de Comunicação em SD
1
Modelos de Comunicação emSistemas Distribuídos
Alcides Calsavara
![Page 2: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/2.jpg)
Modelos de Comunicação em SD
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)
[T] Distributed Operating Systems. A. S. Tanenbaum. Prentice-Hall, 1995. ISBN 0-13-219908-4. (Seções 2.4 e 2.5)
![Page 3: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/3.jpg)
Modelos de Comunicação em SD
3
Conteúdo
Elementos básicos de comunicação Transmissão de dados Endereçamento Sincronismo Enfileiramento (Bufferização) Confiabilidade
Comunicação cliente-servidor Comunicação em grupo Chamada remota de procedimento
![Page 4: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/4.jpg)
Modelos de Comunicação em SD
4
Comunicação cliente-servidor
Cliente
Núcleo Núcleo
Rede
Requisição
RespostaServidor
Requisição/Resposta
1
2
3
4
5
6
7
Enlace
Físico
![Page 5: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/5.jpg)
Modelos de Comunicação em SD
5
Transmissão de dados
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
![Page 6: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/6.jpg)
Modelos de Comunicação em SD
6
Marshalling/Unmarshalling
Marshalling: Linearização de uma coleção de itens de
dados estruturados Tradução dos dados em formato externo
Unmarshalling: Tradução do formato externo para o local Restauração dos itens de dados de acordo
com sua estrutura
![Page 7: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/7.jpg)
Modelos de Comunicação em SD
7
Endereçamento Esquemas:
Endereçamento máquina.processo Endereçamento máquina.id-local Descoberta de endereço via broadcasting
(difusão) Descoberta de endereço via um servidor de
nomes Problemas potenciais: transparência de
localização, sobrecarga, escalabilidade
![Page 8: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/8.jpg)
Modelos de Comunicação em SD
8
Comunicação síncrona
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.
![Page 9: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/9.jpg)
Modelos de Comunicação em SD
9
Comunicação assíncrona Primitiva send não é bloqueante: o processo
cliente aguarda somente enquanto a mensagem é copiada para o buffer do núcleo.
Primitiva receive pode ser: bloqueante: o processo servidor aguarda
por uma mensagem. não bloqueante: o processo servidor
simplesmente comunica o núcleo que espera receber uma mensagem.
![Page 10: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/10.jpg)
Modelos de Comunicação em SD
10
Enfileiramento Situações:
Send ocorre antes de Receive 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): mailbox criado a pedido do servidor mensagens endereçadas ao mailbox
![Page 11: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/11.jpg)
Modelos de Comunicação em SD
11
Confiabilidade
Mensagens se perdem, atrasam, duplicam. Abordagens:
Send tem semântica não confiável: as aplicações devem garantir entrega de mensagens (ex: timeout)
Mensagem de acknowledgement enviada pelo servidor (no nível núcleo)
Mensagem de acknowledgement implícita na resposta do servidor
![Page 12: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/12.jpg)
Modelos de Comunicação em SD
12
Pacotes em protocolo C-SCódigo Tipo De Para Descrição
REQ Request C S O cliente deseja umserviço
REP Reply S C Resposta do servidor parao cliente
ACK Ackowledgment x y O pacote anterior chegou
AYA Are you alive? C S Investiga de o servidornão parou
IAA I am alive S C O servidor não parou
TA Try again S C O servidor está lotado
AU Address unknown S C Nenhum processo estáusando aquele endereço
![Page 13: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/13.jpg)
Modelos de Comunicação em SD
13Chamada de Procedimentos Remotos (RPC)
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
![Page 14: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/14.jpg)
Modelos de Comunicação em SD
14
Visão geral
Um processo A chama um procedimento p de um processo B, entrando em estado de espera
O processo B passa a executar o procedimento p, e ao seu término faz um reply para o processo A
O processo A volta à sua execução normal após ter recebido o reply
![Page 15: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/15.jpg)
Modelos de Comunicação em SD
15
Chamadas de procedimento
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
![Page 16: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/16.jpg)
Modelos de Comunicação em SD
16
Modos de parâmetros 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
![Page 17: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/17.jpg)
Modelos de Comunicação em SD
17
Chamadas e mensagens em RPC
Máquina do Cliente Máquina do Servidor
Kernel Kernel
cliente servidor
empacotaparâmetros
desempacotaresultados
desempacotaparâmetros
empacotaresultados
transporte de mensagensvia rede
12
3
4
0 56
7
8
9
1011
![Page 18: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/18.jpg)
Modelos de Comunicação em SD
18
Funções dos Stubs Client stub
intercepta a chamada empacota os parâmetros (marshalling) envia mensagem de request ao servidor (através do núcleo)
Server stub recebe a mensagem de request (através do núcleo) desempacota os parâmetros (unmarshalling) chama o procedimento, passando os parâmetros empacota o resultado envia mensagem de reply ao cliente (através do núcleo)
Client stub recebe a mensagem de reply (através do núcleo) desempacota o resultado passa o resultado para o cliente
![Page 19: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/19.jpg)
Modelos de Comunicação em SD
19
Falhas em RPC
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
![Page 20: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/20.jpg)
Modelos de Comunicação em SD
20
Falha do servidor Passos normais:
recebe mensagem de request executa procedimento envia mensagem de reply
Falha pode ocorrer: após a execução antes da execução
Semânticas de chamada: pelo menos um no máximo um exatamente um
![Page 21: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/21.jpg)
Modelos de Comunicação em SD
21
Falha do cliente O servidor torna-se um “órfão” Soluções:
exterminação do servidor pela máquina do cliente reencarnação do cliente: toda computação remota
é destruída "reencarnação" suave do cliente: somentes as
computações remotas referentes a aquele cliente são destruídas
expiração: servidor estabele um timeout para confirmação
![Page 22: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/22.jpg)
Modelos de Comunicação em SD
22
Comunicação em grupo
ER R
R
R
R R
R R
E
R
Processo que envia mensagem
Processo que recebe mensagem
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
![Page 23: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/23.jpg)
Modelos de Comunicação em SD
23
Tipos de grupos Visibilidade:
Aberto: um processo fora do grupo consegue enviar mensagens para o grupo todo
Fechado: somente processos do grupo enviam mensagens para o grupo todo
Organização: Peer: todos os processos tomam decisão Hierárquico: decisão é centralizada
![Page 24: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/24.jpg)
Modelos de Comunicação em SD
24
Endereçamento de grupo
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.
![Page 25: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/25.jpg)
Modelos de Comunicação em SD
25
Modificações no grupo
Controle centralizado: servidor de grupo Controle descentralizado: acordo entre
os membros Operações:
Entrada de um membro: atualizar estado Saída de um membro: se involuntária (ex:
parada), todos os membros restantes devem notar sua saída.
![Page 26: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/26.jpg)
Modelos de Comunicação em SD
26
Primitivas de comunicação
GroupSend: envia mensagem para todos os membros do grupo
GroupReceive: aguarda mensagem enviada a todo o grupo
GetReply: aguarda resposta de todos os membros do grupo após um GroupSend
![Page 27: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/27.jpg)
Modelos de Comunicação em SD
27
Atomicidade Uma mensagem enviada ao grupo deve
ser recebida por todos os seus membros ou por nenhum deles.
Situação: o enviador pode parar enquanto está enviando a mensagem para o grupo.
Garantia de consistência do grupo Facilidade de programação
![Page 28: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara.](https://reader036.fdocument.pub/reader036/viewer/2022062418/552fc105497959413d8c03df/html5/thumbnails/28.jpg)
Modelos de Comunicação em SD
28
Ordenação de mensagens
Todas as mensagens enviadas a um grupo devem chegar a todos os processos na mesma ordem.
Abordagens: Ordenação por tempo global Ordenação por tempo consistente:
somente uma mensagem por vez é difundida