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

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

description

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). - PowerPoint PPT Presentation

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

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

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

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

ComunicaçãoProtocolos de Camadas

21/04/23

Mater Christi

2

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

Roteiro Comunicação entre Processos Protocolos em Camadas Modelo Cliente-Servidor RPC

21/04/233

Mater Christi

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

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)

21/04/23

Mater Christi

4

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

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)

21/04/23

Mater Christi

5

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

Protocolos de Camadas Camadas, interfaces e protocolos do

modelo OSI.

7. Alto nível 6. Cria

mensagem: Como string de

bits5. Estabelece comunicação

4. Cria pacotes3. Roteamento

de rede2. Coloca:

header/footer tag +

checksum1. Transmiti bit

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

Protocolos em Camadas Uma mensagem típica como ela

aparece na rede.

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

Camada de Enlace Discussão entre um receptor e um emissor na

camada de enlace de dados.

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

Modelo Cliente-Servidor

21/04/23

Mater Christi

9

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

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

21/04/23

Mater Christi

10

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

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

21/04/23

Mater Christi

11

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

Modelo Cliente Servidor

21/04/23

Mater Christi

12

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

13

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

Modelo Cliente Servidor

21/04/23

Mater Christi

14

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

15

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

16

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

17

Endereçamento Bloqueio vs Sem bloqueio Bufferização vs Não Buferização Confiável vs Não confiável

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

Modelo Cliente Servidor

21/04/23

Mater Christi

18

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

19

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

20

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

21

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

22

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

23

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

24

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

Modelo Cliente Servidor

21/04/23

Mater Christi

25

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

26

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

27

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

Modelo Cliente Servidor

21/04/23

Mater Christi

28

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

29

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

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

Modelo Cliente Servidor

21/04/23

Mater Christi

30

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

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

Protocolos de Middleware

21/04/23

Mater Christi

31

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

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

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

Tipos de Comunicação Middleware visto como serviço

intermediário (distribuído) na comunicação de nível da aplicação

21/04/23

Mater Christi

33

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

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

21/04/23

Mater Christi

34

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

RPCRemote Procedure Call

21/04/23

Mater Christi

35

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

01/08/201336

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

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

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.

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

01/08/201338

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

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

01/08/201339

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

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

01/08/201340

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

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

01/08/201341

Stubs Cliente e ServidorExecuta 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

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

01/08/201342

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

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

Stubs Cliente e Servidor Princípio da RPC entre um programa

cliente e servidor.

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

Passos de uma chamada de procedimento remoto

1. Procedimento cliente chama o stub cliente em modo normal

2. Stub cliente constrói a mensagem, chamadas locais OS

3. OS do cliente envia mensagem para remoto OS

4. Remoto OS dá mensagem para stub servidor5. Stub descompacta os parâmetros, e chama o

servidor

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

Passos de uma chamada de procedimento remoto

1. Servidor não funciona, retorna resultado para o topo

2. Stub servidor empacota em mensagem, chamadas locais OS

3. OS do servidor envia a mensagem para o OS do cliente

4. OS do cliente dá a mensagem para stub cliente5. Stub descompacta resultado, retorna ao cliente

21/04/23

Mater Christi

45

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

Passando Valores por Parâmetro Passos envolvidos na computação

remota através do RPC