Protocolo Request-Reply

Documentos relacionados
Cliente-servidor Código móvel Agentes de software Processos pares. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Sistemas Distribuídos

Capítulo IV Comunicação entre processos

AULA ANTERIOR: MODELOS FUNDAMENTAIS

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

Sistemas Distribuídos Capítulo 8 - Aula 14

Sistemas Distribuídos

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

O que é um sistema distribuído?

Departamento de Informática

Sistemas Distribuídos. Coulouris Capítulo 4

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

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Objetos Distribuídos. Nazareno Andrade

Comunicação. Parte II

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

SISTEMAS DISTRIBUÍDOS

Remote Procedure Calls. Mário Antonio Meireles Teixeira

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

COMUNICAÇÃO ENTRE PROCESSOS

Comunicação em Sistemas Distribuídos

PROGRAMA DE DISCIPLINA

Sistemas Distribuídos RPC

Sistemas Distribuídos

Capítulo IV Comunicação entre processos

Distributed Systems Principles and Paradigms

Sistemas Distribuídos

Sistemas Distribuídos

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla

Sistemas Distribuídos

1 a. Sumário. 1. Conceitos Básicos a. Invocação remota (RPC/RMI) b. Semântica de invocação remota c. Invocação remota de métodos (RMI)

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Sistemas Distribuídos


Arquitetura de um sistema é a especificação de sua estrutura e de seus componentes

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Redes de Computadores

Fundamentos de Sistemas Operacionais

Modelos Fundamentais. Carlos Ferraz.

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Objetos e Componentes Distribuídos: EJB

Sistemas Distribuídos

Sistemas Distribuídos

Firewall - Inspeção com estado. (Stateful Inspection)

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

Capítulo V Sistemas de Objectos Distribuídos

Integração IP/ATM. Características das redes atuais

Programação concorrente (processos e threads)

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

REDES DE COMPUTADORES

Visão do Usuário da DSM

UNIVERSIDADE. Sistemas Distribuídos

Questão 1. Benefícios. Benefícios. Desafios. Desafios. 1. Quais são os desafios e benefícios em potencial da computação distribuída?

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

trabalho Heitor Oliveira,Rafael Aleixo,Alex Rodrigues September 2013

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos

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

Prof. Marcelo Cunha Parte 6

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

Capítulo 3. A camada de enlace de dados

Camada de Enlace. OSI x IEEE. Arquitetura IEEE 802. Redes. Nível de Enlace: Controle de Erros e Fluxo Multiplexação

Modelos de Sistemas Distribuídos O Modelo Cliente-Servidor

Aula 5 Camada de rede (TCP/IP):

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

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços

SISTEMAS DISTRIBUIDOS

Arquitectura de Sistemas Paralelos e Distribuídos Modelos de Sistemas

Novos Protocolos de Streaming MMTP e SCTP

Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1

Conceitos de Sistemas Distribuídos

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

Engenharia de Confiança. Helena Macedo Reis Luis Fernando de Souza Moro

INTRODUÇÃO AOS SISTEMAS DISTRIBUÍDOS. Prof. Cesar Augusto Tacla

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular SISTEMAS DISTRIBUÍDOS Ano Lectivo 2012/2013

Resumo das Propriedades de UDP e de TCP

Compiladores. Conceitos Básicos

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

Serviços de Comunicações Capítulo 3

Remote Procedure Call

TM X SM. Replicação de Variáveis Compartilhadas. Protocolo de Atualização Síncrono ORCA

Lição 4 Fundamentos da programação

Fragmentos das máquinas de estados finitos do RDT 2.2 (fonte: Kurose)

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede

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

Sockets e Threads em Java

Programação Paralela OO. projeto ProActive www-sop.inria.fr/oasis/proactive/home.html

O Modelo Síncrono BSP para Computação Paralela

Sistemas Distribuídos

Compiladores I Prof. Ricardo Santos (cap 1)

Aula 12: Memória: Barramentos e Registradores

SSC-0742 PROGRAMAÇÃO CONCORRENTE. Aula 04 Revisão de Arquiteturas Paralelas -Parte 2 Prof. Jó Ueyama e Julio Cezar Estrella

Arquitetura de sistemas distribuídos

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares

Invocação Remota MC704

Curso Sistemas Operacionais Distribuídos

Transcrição:

n n n n Protocolo Request-Reply Modelo de Objeto Remoto Semânticas de Invocação Remota Arquitetura de Invocação Remota Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Introdução Características de programação encontradas na middleware: Provisão de transparência de localização; Independência dos detalhes dos protocolos de comunicação, sistema operacional e hardware; Uso de diferentes linguagens de programação. Obs.: RMI é usado de forma genérica para designar invocação remota de métodos. Não confundir com Java RMI. DAINF/UTFPR 2

Middleware Aplicações Java RMI, RPC, CORBA, Web Services Protocolo Request- Reply Representação Externa de Dados Middleware Sistema Operacional DAINF/UTFPR 3

Protocolo Request- Reply Normalmente, síncrono e razoavelmente confiável Síncrono - processo cliente bloqueia até que uma resposta chegue do servidor. Confiável: Reply serve como um ack. Novo Request do mesmo cliente = ack do reply anterior. DAINF/UTFPR 4

Primi0vas do Protocolo Request- Reply Client Server dooperation (espera) (continuação) Request message Reply message getrequest seleciona objeto executa método sendreply DAINF/UTFPR 5

Primi0vas do Protocolos Request- Reply dooperation public byte[] dooperation (RemoteObjectRef o, int methodid, byte[] arguments) getrequest Usada pelo servidor para obter a requisição de um cliente. public byte[] getrequest() sendreply public void sendreply (byte[] reply, InetAddress clienthost, int clientport) DAINF/UTFPR 6

Estrutura da Mensagem Tipo_Mensagem ID_Mensagem ReferenciaObjetoRemoto ID_Metodo Argumentos int (0 = Request, 1= Reply) int Referencia int ou Nome_Metodo array de bytes [CDK01] DAINF/UTFPR 7

Modelo de Falhas dooperation configura temporizador para esperar resposta. Opções após timeout: Indicar ao cliente uma falha no servidor; Retransmitir o pedido antes de caracterizar a falha. Descarta Requests duplicados. Mensagens Reply perdidas Servidor deve analisar a operação para evitar a reexecução da mesma ao receber request duplicado. A execução da operação é necessária para obter um resultado a menos que este esteja armazenado. DAINF/UTFPR 8

Modelo de Falhas Operação idempotente: Pode ser executada repetidamente que produzirá sempre o mesmo resultado. Não precisa tomar medidas especiais para evitar dupla execução. Operação não idempotente. DAINF/UTFPR 9

Modelo de Falhas Histórico: Utilizado em servidores que precisam retransmitir resultados sem executar novamente as operações. Estrutura que contém registros de mensagens reply transmitidas. Cada entrada contém um requestid, uma mensagem e o ID do cliente para qual a mensagem foi enviada. Problema: Custo de memória. DAINF/UTFPR 10

Modelo de Falhas Problema de crescimento do histórico Como clientes só podem processar um pedido de cada vez, servidor pode interpretar cada pedido como um ack do reply anterior. Histórico guarda apenas o último reply enviado para cada cliente. Muitos clientes Quando um processo cliente termina, ele não envia um ack do último reply recebido. Mensagens são descartadas após um limitado período de tempo. DAINF/UTFPR 11

Modelo de Objeto Distribuído A Invocação remota Invocação local B C E Invocação remota F D [CDK01] DAINF/UTFPR 12

Conceitos Fundamentais Referência de objetos remotos Todo objeto pode receber invocações de métodos contato que os invocadores tenham acesso a sua referência. Identificador que referencia um único objeto em todo o SD. Endereço IP Número Porta Data e Hora de criação Número objeto Interface do objeto DAINF/UTFPR 13

Semân0cas de Invocação Remota A semântica depende das garantias de entrega: Retransmissão da mensagem request Até que a resposta seja recebida ou que seja assumida falha no servidor. Filtragem de requests duplicados no servidor. Retransmissão dos resultados. Deve- se ou não manter um histórico dos resultados para possível retransmissão. DAINF/UTFPR 14

Semân0cas de Invocação Remota Medidas de Tolerância a Falhas Retransmite request Filtra mensagens duplicadas Executa método novamente ou retransmite o reply Semântica de Invocação Não Não se aplica Não se aplica Maybe Sim Não Executa método novamente At-least-once Sim Sim Retransmite reply At-most-once DAINF/UTFPR 15

Semân0cas de Invocação Remota Maybe Nenhuma medida de tolerância a falhas é aplicada. Sofre de falhas em canais de comunicação e processos. Invocador não é capaz de saber se o método foi ou não executado. O resultado pode ter sido perdido. Crash pode ter ocorrido no processo que abriga o objeto logo após a execução do método. Timeout no cliente - não há retransmissão. Útil apenas quando falhas ocasionais são aceitáveis. DAINF/UTFPR 16

Semân0cas de Invocação Remota At Least Once Invocador recebe o resultado significando que o método foi executado pelo menos uma vez ou recebe uma exceção. Retransmissões de request mascaram falhas de omissão. Sofre de falhas arbitrárias. Quando invocação é retransmitida, método pode ser executado mais de uma vez podendo armazenar ou retornar valores incorretos. Aceitável se objetos em um servidor forem projetados de forma que todos os métodos em suas interfaces remotas sejam idempotentes. Sun RPC fornece chamadas com semântica at- least- once. DAINF/UTFPR 17

Semân0cas de Invocação Remota At Most Once Usa todas as medidas possíveis para tolerância a falhas. Invocador recebe o resultado esperado (método foi executado apenas uma vez) ou, então, recebe uma exceção. Retransmissão de request. Filtragem de requests duplicados e retransmissão da resposta garante que o método não idempotente seja executado uma única vez Java RMI e CORBA empregam a semântica at- most- once. CORBA permite que a semântica maybe possa ser aplicada para métodos que não retornam resultados. DAINF/UTFPR 18

Arquitetura de Invocação Remota Cliente Servidor objeto A proxy para B Request skeleton para B objeto remoto B Reply Módulo de Referência Remota Módulo de Comunicação Módulo de Comunicação Módulo de Referência Remota DAINF/UTFPR 19

Arquitetura de Invocação Remota Serviço de nomes (Binder) Mantém tabela que mapeia nomes em referências de objetos. Utilizado pelos servidores para registrar seus objetos por nome. Cliente faz leitura (lookup) na tabela do binder para obter a referência de objeto remoto antes de fazer a invocação. Exemplos: RMIregistry, CORBA Naming Service. DAINF/UTFPR 20

Garbage Collector Distribuído O GCD assegura que se não existe mais uma referência local ou remota de um objeto, este será destruído, liberando espaço em memória. Em algumas linguagens, como Java, o GCD pode ser realizado automaticamente pelo próprio compilador. Em outras linguagens, como o C++, o GCD deve ser implementado pelo programador, explicitamente. O GCD trabalha em cooperação com o GC local. DAINF/UTFPR 21

Algoritmo GCD Usa semântica de invocação at- most- once. Tolera falhas de comunicação em processos cliente Servidores arrendam (lease) seus objetos aos clientes por um limitado período de tempo. Para cada lease, o servidor mantém um identificador do cliente e o tempo do lease. O período do lease começa quando o cliente adiciona uma referência Termina quando o tempo do lease expirar ou quando o cliente remove a referência. DAINF/UTFPR 22

Referências Bibliográficas Coulouris, George; Dollimore, Jean; Kindberg, Tim. Distributed Systems: concepts and design. Third Edition. Addison- Wesley 2001. Coulouris, George; Dollimore, Jean; Kindberg, Tim; tradução João Tortello. Sistemas Distribuídos: conceitos e projeto. 4. ed. Bookman 2007. DAINF/UTFPR 23