A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Distribuídos

Apresentações semelhantes


Apresentação em tema: "Sistemas Distribuídos"— Transcrição da apresentação:

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

2 Relembrando o modelo OSI

3 Protocolos de Middleware

4 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.

5 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.

6 Transmissão de Dados Dados 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;

7 Marshalling/Unmarshalling
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.

8 Comunicação Síncrona Primitiva SEND: Primitiva RECEIVE:
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;

9 Comunicação Assíncrona
Primitiva 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;

10 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 uma comunicação

11 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:

12 Comunicação em SDs Comunicação Cliente-Servidor RPC
Comunicação de Objetos Distribuídos Comunicação em Grupo

13 Comunicação Cliente-Servidor (1)
Núcleo cliente servidor Requisição Resposta Rede

14 Comunicação Cliente-Servidor (2)
Código Tipo De Para Descrição REQ Pedido Cliente Servidor O cliente deseja um serviço REP Resposta Resposta do servidor para o cliente ACK Reconhecimento O pacote anterior chegou AYA Você está vivo? Pergunta se o servidor não parou IAA Eu estou vivo O servidor não parou TA Tente novamente O servidor está lotado AU Endereço desconhecido Nenhum processo está usando aquele endereço

15 Protocolo Pedido-Resposta
També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

16 Chamada de Procedimentos Remotos(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”);

17 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;

18 Implementação do RPC Etapas: Processamento de interface;
Manipulação da comunicação; Ligação.

19 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;

20 Processamento de Interface (2)
cliente servidor Requisição Resposta Rede stub

21 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) GetRequest SendReply

22 Ligação O mecanismo possui um binder para resolução de nomes permitindo ligação dinâmica e transparência de localização.

23 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 Servidor 4- 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;

24 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

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;

26 Falha do Servidor - RPC Procedimento normal: A falha pode ocorrer:
recebe mensagem de request; executa procedimento; envia mensagem de reply; A falha pode ocorrer: após a execução antes da execução

27 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

28 Exemplo de Produto RPC Produto DCE -> Distributed Computing Evironment Desenvolvido pela OSF (Open Software Foundation) --> The Open Group Inicialmente foi projetado para a plataforma de sistema operacional UNIX e depois portado para a plataforma Windows.

29 Aplicação Cliente/Servidor usando RPC
IDL Compilador IDL Header Sever Stub Client Stub Client Code Server Code #include Compilador C Client.obj StubServer.obj StubClient.obj Servidor.obj Linker Client.exe Server.exe

30 Comunicação de Objetos Distribuídos
Um 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;

31 Comunicação de Objetos Distribuídos
2-16

32 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

33 Classificação dos Grupos
Com 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

34 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.

35 Controles e Atualizações no Grupo
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

36 Por onde estudar ? Notas de Aula; Andrew Tanenbaum Sites:
Capítulo 2 - Páginas 57 a 98 Sites:


Carregar ppt "Sistemas Distribuídos"

Apresentações semelhantes


Anúncios Google