1 / 46

Redes e Sistemas Distribuídos II – Cód. 30127

Redes e Sistemas Distribuídos II – Cód. 30127. Prof. MSc. Ronnison Reges Vidal. Comunicação. Protocolos de Camadas. Roteiro. Comunicação entre Processos Protocolos em Camadas Modelo Cliente-Servidor RPC. Comunicação Entre Processos (CEP).

yael
Download Presentation

Redes e Sistemas Distribuídos II – Cód. 30127

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Redes e Sistemas Distribuídos II – Cód. 30127 Prof. MSc. Ronnison Reges Vidal

  2. Comunicação Protocolos de Camadas Mater Christi

  3. Roteiro • Comunicação entre Processos • Protocolos em Camadas • Modelo Cliente-Servidor • RPC Mater Christi

  4. Comunicação Entre Processos (CEP) • CEP em Sistemas Distribuídos é sempre baseada em troca de mensagens. Não existe memória ou clock compartilhados. • 3 modelos de comunicação: • RPC: Remote Procedure Calls (Chamada de Procedimento Remoto, oculta a comprexidade da troca de mensagens) • MOM: Message-Oriented Middleware (Middleware Orientado a Mensagem, como e-mail) • Data Streaming (Fluxo de Dados, para aplicações multimídias) Mater Christi

  5. Termos mais usados na CEP • Multicast: enviar para múltiplos receptores • Protocolos Orientados a Conexão: Há a necessidade de estabelecer conexão (i.e. Socket) antes da troca de mensagens (por exemplo, Transmission Control Protocol (TCP) ou Universal Datagram Protocol (UDP) • TCP: lento mas seguro quanto a perda de dados • UPD: rápido mas pode haver perda de dados • Protocolos sem conexão: por exemplo, troca de e-mail • Checksum: técnica comum para validar os dados recebidos • OSI: Modelo Open Systems Interconnection (Baseado em pacotes) Mater Christi

  6. Protocolos de Camadas • Camadas, interfaces e protocolos do modelo OSI. 7. Alto nível 6. Cria mensagem: Como string de bits 5. Estabelece comunicação 4. Cria pacotes 3. Roteamento de rede 2. Coloca: header/footer tag + checksum 1. Transmiti bit

  7. Protocolos em Camadas • Uma mensagem típica como ela aparece na rede.

  8. Camada de Enlace • Discussão entre um receptor e um emissor na camada de enlace de dados.

  9. Modelo Cliente-Servidor Mater Christi

  10. Modelo Cliente Servidor • Sobrecarga de Camadas • A cada mensagem enviada deve ser processado meia dúzia de camadas cada qual com seu cabeçalho • Para sistemas distribuídos amplos não há muitos problemas • O fator limitante são as linhas de processamento para sistemas distribuídos localmente • Sobrecarga de protocolos Mater Christi

  11. Modelo Cliente Servidor • Solução – Modelo cliente/servidor • Estrutura o sistema operacional como um grupo de processos cooperantes, chamados de servidores, que oferecem serviços aos usuários, chamados de clientes • Cliente e servidor • Executam mesmo microkernel • Execução de um processo, de vários clientes, de vários clientes ou uma mistura de ambos Mater Christi

  12. Modelo Cliente Servidor • Baseado em um protocolo de solicitação / resposta simples , sem conexão. • O cliente envia uma mensagem de solicitação para o servidor solicitando algum serviço • O servidor faz o trabalho e devolve os dados pedidos ou de um código de erro indicando porque o trabalho não pode ser realizada Mater Christi

  13. Modelo Cliente Servidor Mater Christi

  14. Modelo Cliente Servidor • Vantagem: simplicidade • O cliente envia uma solicitação e recebe uma resposta • Nenhuma conexão deve ser estabelecida antes de usar ou desfeita depois • A mensagem de resposta serve como aviso de recepção para a solicitação Mater Christi

  15. Modelo Cliente Servidor • Vantagem: Eficiência • A pilha de protocolo é mais curta • Assumindo que todas as máquinas são idênticos, são necessárias apenas três níveis de protocolo • Solicitação e Resposta • enlace de dados • físicos Mater Christi

  16. Modelo Cliente Servidor • Exemplo de cliente e servidor em C • http://www.e-reading-lib.com/chapter.php/143358/41/Tanenbaum_-_Distributed_operating_systems.html • Exemplo de cliente e servidor em Java • Deitel: Como programar Mater Christi

  17. Modelo Cliente Servidor • Endereçamento • Bloqueio vs Sem bloqueio • Bufferização vs Não Buferização • Confiável vs Não confiável Mater Christi

  18. Modelo Cliente Servidor • Endereçamento • Utilização de código de máquina e processo • Utilizar processos aleatórios e localizá-los por broadcast • Utilizar um servidor de nomes e localizar os clientes em tempo de execução Mater Christi

  19. Modelo Cliente Servidor • Endereçamento • Envio de mensagens do cliente ao servidor • O endereço é da máquina ou do processo? • Endereços de Rede – Processo único • Endereços de Processos – utiliza dois identificadores: Máquina e para o processo Mater Christi

  20. Modelo Cliente Servidor • Endereçamento • Problemas • transparência é um dos principais objetivos da construção de um sistema distribuído • suponha que o servidor de arquivos normalmente é executado na máquina X • abordagem alternativa consiste em atribuir a cada processo de um endereço único que não contém um número da máquina incorporado Mater Christi

  21. Modelo Cliente Servidor • Endereçamento • abordagem alternativa consiste em atribuir a cada processo de um endereço único que não contém um número da máquina incorporado • ter um processo de alocação de endereço centralizada que simplesmente mantém um contador • A desvantagem deste sistema é que os componentes centralizados como este não escalam para sistemas de grande porte e, portanto, deve ser evitado Mater Christi

  22. Modelo Cliente Servidor • Endereçamento • outro método de atribuição de identificadores de processo é deixar que cada processo escolher seu próprio identificador de um grande espaço de endereço escasso • Pacote de difusão – envia para todas as máquinas Mater Christi

  23. Modelo Cliente Servidor • Endereçamento • Embora este sistema é transparente , mesmo com o cache, a difusão coloca carga extra no sistema • carga adicional pode ser evitada , proporcionando uma máquina adicional para mapear de alto nível (ou seja , ASCII ) para nomes de endereços da máquina Mater Christi

  24. Modelo Cliente Servidor Mater Christi

  25. Modelo Cliente Servidor • Primitivas de Bloqueio vs Sem bloqueio • Primitivas de bloqueio ou Primitivas síncronas • Primitivas de não-bloqueio ou Primitivas assíncronas • Quando um processo chama send ele especifica um destino e um buffer para enviar para esse destino • Enquanto a mensagem está sendo enviada, o processo de envio é bloqueado (ou seja, suspenso). A instrução após a chamada para send não é executada até que a mensagem foi enviada completamente Mater Christi

  26. Modelo Cliente Servidor • Primitivas de Bloqueio vs Sem bloqueio • Uma alternativa são as primitivas sem bloqueio • Se send é sem bloqueio, ele retorna o controle para o chamador imediatamente, antes que a mensagem seja enviada Mater Christi

  27. Modelo Cliente Servidor Mater Christi

  28. Modelo Cliente Servidor • Primitivas de Bloqueio vs Sem bloqueio • A vantagem deste sistema é que o processo envio pode continuar a computação em paralelo com a transmissão de mensagens, em vez de ter o processador ir ocioso • Desvantagem • O enviador não pode modificar a mensagem no buffer até que a mensagem tenha sido enviada Mater Christi

  29. Modelo Cliente Servidor • Primitivas de Bloqueio vs Sem bloqueio • Há duas formas • Cópia interna no buffer do kernel, permitindo que o processo continue • Interromper o enviador quando a mensagem tiver sido enviada • Problemas de sincronização de comunicação Mater Christi

  30. Modelo Cliente Servidor • Primitivas de Bloqueio vs Sem bloqueio • Envio com bloqueio • CPU permanece ocioso durante a transmissão • Envio sem bloqueio com cópia • CPU desperdiça tempo com a cópia extra • Envio sem bloqueio com interrupção • Torna a programação difícil Mater Christi

  31. Protocolos de Middleware Mater Christi

  32. Protocolos de Middleware • Um modelo de referência adaptado para comunicação em rede.

  33. Tipos de Comunicação • Middleware visto como serviço intermediário (distribuído) na comunicação de nível da aplicação Mater Christi

  34. Tipos de Comunicação • Comunicação Síncrona e Assíncrona • Comunicação Persistente • Armazena a comunicação pelo tempo necessário(por exemplo, mail delivery) • Comunicação Transiente • A mensagem é armazenada enquanto o emissor e o receptor estão funcionando. • Comunicação Discreta • Comunicação por Fluxo Mater Christi

  35. RPC Remote Procedure Call Mater Christi

  36. RPC • Troca de mensagem entre processos • Birrel e Nelson (1984) • Executar chamadas a procedimentos localizados em outras máquinas • Remote Procedure Call – RPC • Máquinas diferentes – Espaços de endereço diferentes • Parâmetros e resultados necessitam ser transportados • Alguma ou ambas as máquinas podem quebrar

  37. Chamada de Procedimento Convencional (a) Passagem de parâmetros em uma chamada de procedimento local: a pilha antes da chamada a read (b) A pilha enquanto o procedimento está rodando.

  38. Stubs Cliente e Servidor • Stub Cliente • Pedaço do código que transforma informações (parâmetros) vindas de procedimentos locais em mensagens • Stub Servidor • Pedaço do código que transforma requisições vindas da rede em chamadas de procedimento locais

  39. Stubs Cliente e Servidor • Transparência ao procedimento de chamada • Tipo de interface entre o código de usuário e o sistema operacional local • Stub cliente • Método Análogo • Empacotamento de parâmetros • Envio ao servidor • Bloqueio em espera a resposta

  40. Stubs Cliente e Servidor • Stub servidor tipicamente chama o procedimento “receive” e está bloqueado esperando as mensagem que virão • Stub servidor desempacota os parâmetros e chama o procedimento servidor normalmente

  41. Stubs Cliente e Servidor • Executa a operação e retorna o resultado • Empacota o resultado em uma mensagem • Chama o procedimento “send” retornando o resultado ao cliente • Chama o procedimento “receive” esperando novas requisições

  42. Stubs Cliente e Servidor • A menssagem é copiada para o buffer de espera e o processo cliente é desbloqueado • Stub cliente inspeciona a mensagem e desempacota o resultado copiando o para o procedimento que o chamou • O procedimento sabe que o dado está disponível, mas não tem ideia que foi processado remotamente

  43. Stubs Cliente e Servidor • Princípio da RPC entre um programa cliente e servidor.

  44. Passos de uma chamada de procedimento remoto • Procedimento cliente chama o stub cliente em modo normal • Stub cliente constrói a mensagem, chamadas locais OS • OS do cliente envia mensagem para remoto OS • Remoto OS dá mensagem para stub servidor • Stub descompacta os parâmetros, e chama o servidor

  45. Passos de uma chamada de procedimento remoto • Servidor não funciona, retorna resultado para o topo • Stub servidor empacota em mensagem, chamadas locais OS • OS do servidor envia a mensagem para o OS do cliente • OS do cliente dá a mensagem para stub cliente • Stub descompacta resultado, retorna ao cliente Mater Christi

  46. Passando Valores por Parâmetro • Passos envolvidos na computação remota através do RPC

More Related