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

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

Redes e Sistemas Distribuídos II – Cód

Apresentações semelhantes


Apresentação em tema: "Redes e Sistemas Distribuídos II – Cód"— Transcrição da apresentação:

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

2 07/04/2017 Comunicação Protocolos de Camadas Mater Christi

3 Roteiro Comunicação entre Processos Protocolos em Camadas
07/04/2017 Roteiro Comunicação entre Processos Protocolos em Camadas Modelo Cliente-Servidor RPC Mater Christi

4 Comunicação Entre Processos (CEP)
07/04/2017 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 ) Data Streaming (Fluxo de Dados, para aplicações multimídias) Mater Christi

5 Termos mais usados na CEP
07/04/2017 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 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
07/04/2017 Modelo Cliente-Servidor Mater Christi

10 Modelo Cliente Servidor
07/04/2017 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
07/04/2017 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
07/04/2017 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
07/04/2017 Modelo Cliente Servidor Mater Christi

14 Modelo Cliente Servidor
07/04/2017 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
07/04/2017 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
07/04/2017 Modelo Cliente Servidor Exemplo de cliente e servidor em C Exemplo de cliente e servidor em Java Deitel: Como programar Mater Christi

17 Modelo Cliente Servidor
07/04/2017 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
07/04/2017 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
07/04/2017 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
07/04/2017 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
07/04/2017 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
07/04/2017 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
07/04/2017 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
07/04/2017 Modelo Cliente Servidor Mater Christi

25 Modelo Cliente Servidor
07/04/2017 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
07/04/2017 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
07/04/2017 Modelo Cliente Servidor Mater Christi

28 Modelo Cliente Servidor
07/04/2017 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
07/04/2017 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
07/04/2017 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
07/04/2017 Protocolos de Middleware Mater Christi

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

33 07/04/2017 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
07/04/2017 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 07/04/2017 RPC Remote Procedure Call Mater Christi

36 RPC Troca de mensagem entre processos Birrel e Nelson (1984)
01/08/2013 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
01/08/2013 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
01/08/2013 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
01/08/2013 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
01/08/2013 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
01/08/2013 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
07/04/2017 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


Carregar ppt "Redes e Sistemas Distribuídos II – Cód"

Apresentações semelhantes


Anúncios Google