Você está na página 1de 9

1

Modelos de Comunicação em Sistemas Distribuídos

1 Modelos de Comunicação em Sistemas Distribuídos Prof. Leonardo Góes Modelos de Comunicação em SD

Prof. Leonardo Góes

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

Modelos de Comunicação em SD

Comunicação cliente-servidor Comunicação em grupo Chamada remota de procedimento Modelos de Comunicação em SD
3 Comunicação cliente-servidor Requisição 7 Cliente Servidor 6 Resposta 5 Requisição/Resposta Núcleo
3
Comunicação cliente-servidor
Requisição
7
Cliente
Servidor
6
Resposta
5
Requisição/Resposta
Núcleo
Núcleo
4
3
2
Enlace
Rede
Físico
1
Modelos de Comunicação em SD

1

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:

Heterogeneidade na representação de dados em computadores: » Uso de um formato externo comum » Inclusão

» Uso de um formato externo comum

» Inclusão de uma identificação de arquitetura na mensagem

Modelos de Comunicação em SD

Marshalling/Unmarshalling

Marshalling:

5

Processo de montagem dos dados para transmissão Linearização de uma coleção de itens de dados estruturados Tradução dos dados em formato externo

Unmarshalling: Processo inverso

dos dados em formato externo Unmarshalling: Processo inverso Tradução do formato externo para o local Restauração

Tradução do formato externo para o local Restauração dos itens de dados de acordo com sua estrutura

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

Descoberta de endereço via um servidor de nomes Problemas potenciais: transparência de localização,

Problemas potenciais: transparência de localização, sobrecarga, escalabilidade

Modelos de Comunicação em SD

2

Comunicação síncrona

7

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

Comunicação assíncrona

8

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.

 

Modelos de Comunicação em SD

Enfileiramento

9

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

Modelos de Comunicação em SD

3

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

(no nível núcleo) Mensagem de acknowledgement implícita na resposta do servidor Modelos de Comunicação em SD

Modelos de Comunicação em SD

11 Pacotes em protocolo C-S Código Tipo De Para Descrição REQ Request C S O
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
Modelos de Comunicação em SD

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

de procedimento remoto como se fosse local, ocultando entrada/saída de mensagens Modelos de Comunicação em SD

Modelos de Comunicação em SD

12

4

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

o processo A O processo A volta à sua execução normal após ter recebido o reply

Modelos de Comunicação em SD

13

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

do procedimento chamado, os parâmetros e o endereço de retorno são desempilhados Modelos de Comunicação em

Modelos de Comunicação em SD

14

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

conhecida do procedimento chamador e o valor desta cópia é reescrito na variável Modelos de Comunicação

Modelos de Comunicação em SD

5

16 Chamadas e mensagens em RPC Máquina do Cliente Máquina do Servidor 2 4 1
16
Chamadas e mensagens em RPC
Máquina do Cliente
Máquina do Servidor
2
4
1
empacota
desempacota
5
0
parâmetros
6
parâmetros
cliente
servidor
desempacota
empacota
7
11
resultados
resultados
10
8
Kernel
Kernel
3
transporte de mensagens
9
via rede
Modelos de Comunicação em SD
17 Funções dos Stubs Client stub intercepta a chamada empacota os parâmetros (marshalling) envia mensagem
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
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

recebido a mensagem de request O cliente pára após ter enviado a mensagem de request Modelos

Modelos de Comunicação em SD

6

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

Modelos de Comunicação em SD

da execução Semânticas de chamada: pelo menos um no máximo um exatamente um Modelos de Comunicação

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

cliente são destruídas expiração: servidor estabele um timeout para confirmação Modelos de Comunicação em SD

Modelos de Comunicação em SD

21 Comunicação em grupo Tolerância a falhas baseada na replicação R R R de serviços
21
Comunicação em grupo
Tolerância a falhas
baseada na replicação
R
R
R
de serviços
Localização de objetos
R
E
R
em serviços distribuídos
R
R
R
Melhor desempenho via
E
Processo
que envia mensage
replicação de dados
R
Processo
que recebe mensag
Múltipla atualização
Modelos de Comunicação em SD

7

Tipos de grupos

22

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

Modelos de Comunicação em SD

Endereçamento de grupo

23

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

Modificações no grupo

24

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.

Modelos de Comunicação em SD

8

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

o grupo GetReply: aguarda resposta de todos os membros do grupo após um GroupSend Modelos de

Modelos de Comunicação em SD

25

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

para o grupo. Garantia de consistência do grupo Facilidade de programação Modelos de Comunicação em SD

Modelos de Comunicação em SD

26

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:

por tempo global Ordenação por tempo consistente : somente uma mensagem por vez é difundida Modelos

somente uma mensagem por vez é difundida

Modelos de Comunicação em SD

9