O documento discute diversos modelos de comunicação em sistemas distribuídos, incluindo comunicação cliente-servidor, transmissão de dados, endereçamento, sincronismo, confiabilidade, chamada remota de procedimentos e comunicação em grupo.
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
Modelos de Comunicação em Sistemas Distribuídos
1. Modelos de Comunicação em SD
1
Modelos de Comunicação em
Sistemas Distribuídos
Módulo 3
Alcides Calsavara
2. Modelos de Comunicação em SD
2
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
4. Modelos de Comunicação em SD
4
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
5. Modelos de Comunicação em SD
5
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
6. Modelos de Comunicação em SD
6
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
7. Modelos de Comunicação em SD
7
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.
8. Modelos de Comunicação em SD
8
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.
9. Modelos de Comunicação em SD
9
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
10. Modelos de Comunicação em SD
10
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
11. Modelos de Comunicação em SD
11
Pacotes em protocolo C-S
Código Tipo De Para Descrição
REQ Request C S O cliente deseja um
serviço
REP Reply S C Resposta do servidor para
o cliente
ACK Ackowledgment x y O pacote anterior chegou
AYA Are you alive? C S Investiga de o servidor
nã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
12. Modelos de Comunicação em SD
12
Chamada 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
13. Modelos de Comunicação em SD
13
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
14. Modelos de Comunicação em SD
14
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
15. Modelos de Comunicação em SD
15
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
16. Modelos de Comunicação em SD
16
Chamadas e mensagens em RPC
Máquina do Cliente Máquina do Servidor
Kernel Kernel
cliente servidor
empacota
parâmetros
desempacota
resultados
desempacota
parâmetros
empacota
resultados
transporte de mensagens
via rede
1
2
3
4
0 5
6
7
8
9
10
11
17. Modelos de Comunicação em SD
17
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
18. Modelos de Comunicação em SD
18
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
19. Modelos de Comunicação em SD
19
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
20. Modelos de Comunicação em SD
20
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
21. Modelos de Comunicação em SD
21
Comunicação em grupo
E
R 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
22. Modelos de Comunicação em SD
22
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
23. Modelos de Comunicação em SD
23
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.
24. Modelos de Comunicação em SD
24
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.
25. Modelos de Comunicação em SD
25
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
26. 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.
Situação: o enviador pode parar
enquanto está enviando a mensagem
para o grupo.
Garantia de consistência do grupo
Facilidade de programação
27. 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.
Abordagens:
Ordenação por tempo global
Ordenação por tempo consistente:
somente uma mensagem por vez é
difundida