tecn. amb. distribuídos: modelos de comunicação em sistemas distribuídos 1 arquiteturas de...

27
cn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Upload: internet

Post on 17-Apr-2015

125 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

1

Arquiteturas de Sistemas Distribuídos:

Modelos de Comunicação

Alcides Calsavara

Page 2: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 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)

[T] Distributed Operating Systems. A. S. Tanenbaum. Prentice-Hall, 1995. ISBN 0-13-219908-4. (Seções 2.4 e 2.5)

Page 3: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

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: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

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: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

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: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

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: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

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: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

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: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

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: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

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: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

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: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

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: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

13

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 14: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

14

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 15: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

15

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 16: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

16

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 17: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

17

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 18: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

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.

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 19: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

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.

Abordagens: Ordenação por tempo global Ordenação por tempo consistente:

somente uma mensagem por vez é difundida

Page 20: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

20Chamada 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 21: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

21

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 22: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

22

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 23: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

23

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 24: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

24

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 25: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

25

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 26: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

26

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 27: Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos 1 Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação Alcides Calsavara

Tecn. Amb. Distribuídos: Modelos de Comunicação em Sistemas Distribuídos

27

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