Comunicação. Parte II



Documentos relacionados
Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Dados em programas são estruturados, enquanto que mensagens carregam informação seqüencial: Linearização x Restauração de dados Requisição

Distributed Systems Principles and Paradigms

3. Comunicação em Sistemas Distribuídos

Comunicação. Carlos A. G. Ferraz 25/6/2003. Sistemas Distribuídos 1. Tópicos. Camadas. Transmissão de dados. Marshalling/Unmarshalling.

Sistemas Distribuídos e Redes de Sensores

Sistemas Distribuídos. Coulouris Capítulo 4

Sistemas Distribuídos

Comunicação em Sistemas Distribuídos

Sistemas Distribuídos Modelo Cliente-Servidor

Sistemas distribuídos:comunicação

Sistemas Distribuídos RPC

Sistemas Distribuídos Grupos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

UNIVERSIDADE. Sistemas Distribuídos

Nomes e Endereçamento. Nomes e Endereçamento. Paradigmas em Sistemas Distribuídos. Paradigmas em Sistemas Distribuídos

Comunicação em Sistemas Distribuídos

Tópicos em Sistemas Distribuídos. Modelos de Comunicação


SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUIDOS

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Sistemas Distribuídos Comunicação. Edeyson Andrade Gomes

Sistemas Distribuídos Arquiteturas Middlewares

SISTEMAS DISTRIBUÍDOS

Programação Distribuída

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Remote Procedure Call

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Sistemas Operacionais Distribuídos e de Redes

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Visão do Usuário da DSM

Considerações no Projeto de Sistemas Cliente/Servidor

Comunicação em Sistemas Distribuídos

Sistemas Cliente-Servidor

Arquitetura de Sistemas Operativos

Sistemas Distribuídos e Infraestrutura. SO: todas as aulas em if677/2014-2/

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes.

Grupos de Processos (Comunicação Grupal)

Sistemas Distribuídos

Serviços Web: Introdução

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Modelos de Arquiteturas. Prof. Andrêza Leite

Sistemas Distribuídos

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

RMI: Uma Visão Conceitual

Sistemas Distribuídos Aula 15

Sistemas Distribuídos

Arquitecturas Tolerantes a faltas em Sistemas Distribuídos

UFG - Instituto de Informática

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Paradigma Cliente/Servidor

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Desenvolvimento Cliente-Servidor 1

Programação distribuída e paralela (C. Geyer) RPC 1

Programação de Sistemas

Programação de Sistemas

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Sistemas Distribuídos

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos

Sistemas Distribuídos

Modelos Fundamentais. Carlos Ferraz.

SISTEMAS OPERACIONAIS

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Ciência de Computadores Sistemas Distribuídos e Móveis

Introdução ao Modelos de Duas Camadas Cliente Servidor

MODELO CLIENTE SERVIDOR

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Redes de Computadores

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon

Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos. Aleardo Manacero Jr.

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos

Sistemas Distribuídos 59. Sistemas Distribuídos 61. "Receive não-bloqueante:

Protocolos Hierárquicos

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Sistemas Distribuídos

Características Carlos Ferraz

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular SISTEMAS DISTRIBUIDOS Ano Lectivo 2015/2016


Sincronização de Processos (5) Troca de Mensagens

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos

ARP. Tabela ARP construída automaticamente. Contém endereço IP, endereço MAC e TTL

Transcrição:

Comunicação Parte II Carlos Ferraz 2002

Tópicos Comunicação Cliente-Servidor RPC Comunicação de objetos distribuídos Comunicação em Grupo Transações Atômicas Comunicação Stream 2

Comunicação cliente-servidor Requisição 7 Cliente Resposta Servidor 6 5 Requisição/Resposta Núcleo Núcleo 4 3 2 Enlace Rede 1 Físico 3

Comunicação cliente-servidor (cont) Código Tipo De Para Des crição REQ Request C S O cliente deseja um serviço REP Reply S C Resposta do servidor para o cliente ACK Ackowledgment x y O pacote anterior chegou AYA Are you alive? C S Investiga se o servidor não parou IAA I am alive S C O servidor não parou TA Try again S C O servidor está lotado AU Address unknown S C Nenhum processo está usando aquele endereço 4

Protocolo Pedido-Resposta Request-Reply (RR) Típico na interação cliente-servidor Primitivas: DoOperation - clientes invocam operações remotas remotas GetRequest - servidor adquire os pedidos de serviços serviços SendReply 5

Chamada de Procedimentos Remotos (RPC) Comunicação baseada em operações de entrada/saída: abstração fraca, sujeito a erros erros Ideal: programar um sistema distribuído como se como se fosse centralizado RPC objetiva permitir chamada de procedimento procedimento remoto como se fosse local, ocultando entrada/saída de mensagens 6

RPC: Remote Procedure Call Protocolo Pedido-Resposta (RR) Outros protocolos Request (R) usado quando não há retorno de valor e cliente não pede confirmação cliente não bloqueia Request-Reply-Acknowledge Reply (RRA) cliente ack resposta do servidor Integração relativamente transparente com linguagens linguagens de programação, que inclui uma notação notação para definir interfaces ( IDL ) 7

RPC: Visão geral Um processo A chama um procedimento p de um de um processo B, entrando em estado de espera O processo B passa a executar o procedimento procedimento p, e ao seu término faz um reply reply para o processo A O processo A volta à sua execução normal após após ter recebido o reply 8

Chamadas de procedimento O procedimento chamador, que já tem suas suas variáveis locais empilhadas, empilha os parâmetros da chamada e o endereço de retorno retorno O procedimento chamado aloca suas variáveis variáveis locais No retorno do procedimento chamado, os parâmetros e o endereço de retorno são desempilhados 9

RPC: considerações em função da distribuição Mantida a semântica de chamadas de procedimentos convencionais, mas... evitar passagem de endereço e variáveis globais novos tipos de erros Incl.: tratamento de exceções (ex.: atraso de comunicação! comunicação! timeout) 10

RPC: Implementação Suporte a RPC: Processamento de interface Manipulação da comunicação Ligação segue... 11

RPC: processamento de interface Integração dos mecanismos de RPC com os programas cliente e servidor escritos em uma uma linguagem de programação convencional convencional Cliente e servidor assinalam o mesmo identificador de procedimento para cada procedimento na interface 12

RPC: processamento de interface Stubs (no cliente e no servidor): transparência de transparência de acesso tratamento de algumas exceções no local marshalling unmarshalling C stub S stub rede 13

RPC: manipulação da comunicação Módulo de comunicação usa protocolo pedidoresposta para troca de mensagens entre cliente e servidor Mensagem de aplicação encapsulada em um request/reply cliente servidor res = srv.soma(a,b) res = Soma(a,b) res=request(srv,msg) reply(clt,res) DoOperation GetRequest SendReply 14

RPC: ligação O mecanismo possui um binder para resolução resolução de nomes, permitindo Ligação dinâmica Transparência de localização 15

Chamadas e mensagens em RPC Máquina do Cliente Máquina do Servidor 2 4 1 empacota 0 desempacota 5 parâmetros parâmetros cliente desempacota empacota 11 7 resultados resultados 10 8 6 servidor Kernel Kernel 3 9 transporte de mensagens via rede 16

Funções dos Stubs Client stub 1. intercepta a chamada 2. empacota os parâmetros (marshalling) 3. envia mensagem de request ao servidor (através do núcleo) Server stub 4. recebe a mensagem de request (através do núcleo) 5. desempacota os parâmetros (unmarshalling) 6. chama o procedimento, passando os parâmetros 7. empacota o resultado 8. envia mensagem de reply ao cliente (através do núcleo) Client stub 9. recebe a mensagem de reply (através do núcleo) 10. desempacota o resultado 11. passa o resultado para o cliente 17

RPC: Passagem de Parâmetros 2-8 Distributed Systems: Principles and Paradigms, Chapter 02 Tanenbaum and van Steen 2002 18

Especificação de Parâmetros e Geração de Stub a) Um procedimento b) A mensagem correspondente Distributed Systems: Principles and Paradigms, Chapter 02 Tanenbaum and van Steen 2002 19

RPC Assíncrono a) Interação cliente-servidor em um RPC tradicional b) Interação usando RPC assíncrono Distributed Systems: Principles and Paradigms, Chapter 02 Tanenbaum and van Steen 2002 20

Construção de um Cliente e um de Servidor 2-14 Distributed Systems: Principles and Paradigms, Chapter 02 Tanenbaum and van Steen 2002 21

Binding um Cliente a um Servidor em DCE Distributed Systems: Principles and Paradigms, Chapter 02 Tanenbaum and van Steen 2002 22

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 cliente é perdida O servidor pára após ter recebido a mensagem mensagem de request O cliente pára após ter enviado a mensagem de mensagem de request 23

Falha do servidor Passos normais: recebe mensagem de request executa procedimento envia mensagem de reply Falha pode ocorrer: após a execução antes da execução Semânticas de chamada: pelo menos uma vez no máximo uma vez exatamente uma vez 24

Falha do cliente 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 remota anterior é destruída reencarnação suave do cliente: somente as computações remotas referentes àquele cliente são são destruídas expiração: servidor estabelece um timeout para confirmação 25

Objetos Distribuídos 2-16 Distributed Systems: Principles and Paradigms, Chapter 02 Tanenbaum and van Steen 2002 26

Comunicação em grupo E R R R R R E R R R R Processo que envia mensagem Processo que recebe mensagem " Tolerância a falhas baseada baseada na replicação de de serviços " Localização de objetos em em serviços distribuídos " Melhor desempenho via replicação de dados Múltipla atualização 27

Tipos de grupos Visibilidade: Aberto: um processo fora do grupo consegue enviar enviar mensagens para o grupo todo Fechado: somente processos do grupo enviam mensagens para o grupo todo Organização: Peer: todos os processos tomam decisão Hierárquico: decisão é centralizada 28

Endereçamento de grupo Multicast: um processo envia uma mensagem mensagem simultânea e somente para os membros do grupo Broadcast: um processo envia uma mensagem mensagem para todas as máquinas e somente somente as que contêm um membro do grupo a grupo a assimila Unicast: um processo envia uma mensagem para para todos os membros do grupo em série 29

Modificações no grupo Controle centralizado: servidor de grupo Controle descentralizado: acordo entre os membros Operações: Entrada de um membro: atualizar estado Saída de um membro: se involuntária (ex: parada), parada), todos os membros restantes devem notar sua notar sua saída 30

Atomicidade Uma mensagem enviada ao grupo deve ser recebida por todos os seus membros ou por nenhum deles Situação: o enviador pode parar enquanto está enquanto está enviando a mensagem para o o grupo Garantia de consistência do grupo Facilidade de programação 31

Transações Atômicas A 100 0 B 300 250 50 100 150??? C D 0 150 100 150 0150 0 32

Propriedades das Transações Atômicas Propriedades ACID Atomicidade: tudo-ou-nada Consistência: uma transação leva o sistema de de um estado consistente a outro estado consistente Isolamento: transações concorrentes não interferem umas nas outras Duração: terminada uma transação, as mudanças são permanentes 33

Comunicação Stream com QoS Reserva de recurso (RSVP) em um sistema distribuído Distributed Systems: Principles and Paradigms, Chapter 02 Tanenbaum and van Steen 2002 34

Mecanismos de Sincronização (1) Sincronização explícita no nível de dados (na aplicação) aplicação) Distributed Systems: Principles and Paradigms, Chapter 02 Tanenbaum and van Steen 2002 35

Mecanismos de Sincronização (2) Sincronização no nível de middleware 2-41 Distributed Systems: Principles and Paradigms, Chapter 02 Tanenbaum and van Steen 2002 36