sistemas distribuídos aula 4: modelos de comunicação

36
Sistemas Distribuídos Aula 4: Modelos de Comunicação

Upload: elisa-de-lacerda-fragoso

Post on 07-Apr-2016

372 views

Category:

Documents


16 download

TRANSCRIPT

Page 1: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Sistemas Distribuídos

Aula 4: Modelos de Comunicação

Page 2: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Relembrando o modelo OSI

Page 3: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Protocolos de Middleware

Page 4: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Middleware É uma camada de software de distribuição que

abstrai a complexidade e a heterogeneidade do ambiente distribuído sobre uma rede com diversas tecnologias, arquiteturas de máquinas, sistemas operacionais e linguagens de programação;

Possui o objetivo de projetar, programar e gerenciar aplicações distribuídas através do provimento de um simples, consistente e integrado ambiente para programação distribuída;

Diferentes plataformas de middleware suportam diferentes modelos de programação.

Page 5: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Middleware Baseado em Objetos Um dos mais populares modelos de middleware; Ambiente de programação

Distribuição + orientação a objetos; Utilização de IDL´s;

Serviços A comunicação poderá ser síncrona ou

assíncrona; Assume a utilização de um transporte confiável

Protocolo TCP.

Page 6: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Transmissão de DadosDados em programas são estruturados enquanto

que mensagens carregam informação seqüencial: Necessidade de linearização/restauração de dados;

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

Page 7: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Marshalling/UnmarshallingMarshalling:

Linearização de uma coleção de itens de dados estruturados;

Unmarshalling: Tradução do formato externo para o local; Restauração dos itens de dados de acordo com

sua estrutura.

Page 8: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Comunicação SíncronaPrimitiva SEND:

Processo cliente aguarda enquanto o núcleo envia a mensagem para o processo servidor bloqueia o cliente;

Primitiva RECEIVE: Processo servidor aguarda até que o núcleo

receba uma mensagem endereçada para aquele processo;

Page 9: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Comunicação AssíncronaPrimitiva SEND:

Processo cliente aguarda somente enquanto a mensagem é copiada para o buffer do núcleo não bloqueia o cliente;

Primitiva RECEIVE: Processo servidor aguarda por uma mensagem

bloqueia o servidor; Processo servidor apenas comunica ao núcleo

que espera receber uma mensagem não bloqueia o servidor;

Page 10: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Comunicação por Sockets Fornece “pontos finais” (endpoints) para a

comunicação entre processos (end-to-end); Deve ser ligado a uma porta local; O par de Sockets :

(endereço_IP_local:porta_local,endereço_IP_remoto:porta_remota) identifica unicamente

umacomunicação

Page 11: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Portas Um destino de mensagem especificado por inteiro

pequeno (16 bits); Qualquer processo pode mandar uma mensagem

para uma porta; Protocolos usam a combinação endereço_IP:porta; Portas IANA (Internet Assigned Numbers

Authority)/ICANN (Internet Corporation for Assigned Names and Numbers): Conhecidas: 1 – 1023 Registradas: 1024 – 49151 Dinâmicas ou privadas: 49152 - 65535

Page 12: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Comunicação em SDs

Comunicação Cliente-ServidorRPCComunicação de Objetos DistribuídosComunicação em Grupo

Page 13: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Comunicação Cliente-Servidor (1)

Núcleo

cliente

Núcleo

servidor

Requisição

Resposta

Rede

Page 14: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Comunicação Cliente-Servidor (2)Código Tipo De Para DescriçãoREQ Pedido Cliente Servido

rO cliente deseja um serviço

REP Resposta Servidor Cliente Resposta do servidor para o cliente

ACK Reconhecimento

------- --------- O pacote anterior chegou

AYA Você está vivo? Cliente Servidor

Pergunta se o servidor não parou

IAA Eu estou vivo Servidor Cliente O servidor não parouTA Tente

novamenteServidor Cliente O servidor está

lotadoAU Endereço

desconhecidoServidor Cliente Nenhum processo

está usando aquele endereço

Page 15: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Protocolo Pedido-RespostaTambém chamado de Request-Reply (RR)Utilizado na comunicação cliente-servidor;Primitivas:

DoOperation - clientes invocam operações remotas

GetRequest - servidor adquire os pedidos de Serviços

SendReply – envia resposta

Page 16: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Chamada de ProcedimentosRemotos(RPC)

Comunicação baseada em operações de entrada/saída;

Abstração fraca onde vários problemas devem ser tratados pelo programador;

RPC objetiva permitir chamada de procedimento remoto como se fosse local, ocultando entrada/saída de mensagens;

Utiliza o protocolo de Pedido-Resposta; Integração relativamente transparente com

linguagens de programação, que inclui uma notação para definir interfaces (“IDL”);

Page 17: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Funcionamento do RPC 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 18: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Implementação do RPC Etapas:

Processamento de interface; Manipulação da comunicação; Ligação.

Page 19: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Processamento de Interface (1) Integração dos mecanismos de RPC com os

programas cliente e servidor escritos em uma linguagem de programação convencional;

Cliente e servidor assinalam o mesmo identificador de procedimento para cada procedimento na interface;

Utilização de stubs para comunicação;

Page 20: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Processamento de Interface (2)

cliente servidor

Requisição

Resposta

Rede

stub stub

Page 21: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Manipulação da Comunicação Módulo da comunicação usa protocolo pedido-

reposta para troca de mensagens entre cliente e servidor;

res = srv.Soma(a,b)

Cliente

res=request(srv,msg)

Servidor

res = Soma(a,b)

reply(clt,res)

SendReplyGetRequest

Page 22: Sistemas Distribuídos Aula 4: Modelos de Comunicação

LigaçãoO mecanismo possui um binder para

resolução de nomes permitindo ligação dinâmica e transparência de localização.

Page 23: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Procedimentos para Comunicação usando RPC (1)

Passo 1: Stub do cliente:1- Intercepta a chamada;2- Realiza o marshalling (empacota os parâmetros);3- Envia mensagem de solicitação (request) ao servidor.

Passo 2: Stub do Servidor4- Recebe a mensagem de request; 5. Realiza o unmarshalling (desempacota os parâmetros);6. Chama o procedimento, passando os parâmetros;7. Empacota o resultado;8. Envia mensagem de reply ao cliente;

Page 24: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Procedimentos para Comunicação usando RPC (2)

Passo 3: Stub do cliente: 9. Recebe a mensagem de resposta (reply) 10. Desempacota o resultado 11. Passa o resultado para o cliente

Page 25: Sistemas Distribuídos Aula 4: Modelos de Comunicação

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: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Falha do Servidor - RPCProcedimento normal:

recebe mensagem de request; executa procedimento; envia mensagem de reply;

A falha pode ocorrer: após a execução antes da execução

Page 27: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Falha do Cliente - RPC O servidor torna-se um “órfão” Soluções:

terminação do servidor pela máquina do cliente reencarnação do cliente: toda computação

remota anterior é destruída reencarnação “suave” do cliente: somente as

computações remotas referentes àquele cliente são destruídas

expiração: servidor estabelece um timeout para confirmação

Page 28: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Exemplo de Produto RPCProduto DCE -> Distributed Computing

EvironmentDesenvolvido pela OSF (Open Software

Foundation) --> The Open GroupInicialmente foi projetado para a

plataforma de sistema operacional UNIX e depois portado para a plataforma Windows.

Page 29: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Aplicação Cliente/Servidorusando RPC

Aplicação

IDL

Compilador IDL

Header Sever StubClient StubClient Code Server Code

#include #include

Compilador C Compilador C Compilador C Compilador C

Client.obj StubServer.objStubClient.obj Servidor.obj

Linker LinkerClient.exe Server.exe

Page 30: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Comunicação de Objetos DistribuídosUm objeto encapsula dados;Operações são chamadas de métodos;Métodos são disponibilizados através de

uma interface;Um objeto pode implementar diversas

interfaces;

Page 31: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Comunicação de Objetos Distribuídos

2-16

Page 32: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Comunicação em Grupo 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;

Processo Receptor

Processo Transmissor

Page 33: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Classificação dos GruposCom relação á 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

Com relação á Organização: Peer: todos os processos tomam decisão Hierárquico: a decisão é centralizada

Page 34: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Endereçamento de Grupo Multicast

Um processo envia uma mensagem simultânea para todos os membros do grupo.

Broadcast Um processo envia uma mensagem para todas

as máquinas e somente as dos membros do grupo a assimila.

Unicast Um processo envia uma mensagem para todos

os membros do grupo uma por vez.

Page 35: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Controles e Atualizações no GrupoControle

centralizado servidor de grupo

descentralizado acordo entre os membros do grupo

Operações: Entrada de um membro: atualizar estado Saída de um membro:

Se involuntária, como por exemplo, uma parada no sistema, todos os membros restantes devem notar sua saída

Page 36: Sistemas Distribuídos Aula 4: Modelos de Comunicação

Por onde estudar ?Notas de Aula;Andrew Tanenbaum

Capítulo 2 - Páginas 57 a 98Sites:

http://dsonline.computer.org;