Sistemas Distribuídos

Documentos relacionados
Sistemas Distribuídos

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

Sistemas Distribuídos

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

SISTEMAS DISTRIBUÍDOS

Principais conceitos de CORBA

JavaTM RMI - Remote Method Invocation

Chamada Remota de Procedimento (RPC)

RMI e RPC. RPC significou um passo muito grande em direcção à

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

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

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

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)

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Sistemas Distribuídos Aula 10

Sistemas Distribuídos: Conceitos e Projeto RPC e RMI

Chamada Remota de Métodos. Marco Túlio de Oliveira Valente

Chamada Remota de Procedimento (RPC)

Java RMI - Remote Method Invocation. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1

Sistemas Distribuídos

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Teste-Tipo de Sistemas Distribuídos RPC, RMI, Web Services Guia de resolução

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

Sistemas Operacionais II

UFG - Instituto de Informática

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Java RMI - Remote Method Invocation. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1

Sistemas Distribuídos e Redes de Sensores

Sistemas Distribuídos

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

INTRODUÇÃO. RPC x RMI

Invocação de Métodos Remotos

Exemplo de Aplicação Distribuída Serviço de Nomes Gerente de Segurança. Callbacks. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Sistemas Operacionais II

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

Sistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21

Grupo I [5,5v] Considere o seguinte código que ilustra uma componente programática de um sistema de RPC, neste caso do SUN-RPC.

STD29006 Sistemas Distribuídos

Invocação Remota MC704

Sistemas Paralelos e Distribuídos /2004 Curso: Matemática /Informática Sistemas Distribuídos /2004 Curso: Ensino da Informática

Java RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Sistemas Distribuídos RPC Remote Procedure Call

Infra-Estrutura de Software

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha

Comunicação entre Processos

COMPUTAÇÃO DISTRIBUÍDA

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

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Aspectos para Construção de Aplicações Distribuídas

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

Número: Nome: Página 1 de 7. Duração da prova: 1h30m. Grupo I [7] Considere o seguinte excerto (incompleto) de um programa cliente em SUN RPC:

UNIVERSIDADE. Sistemas Distribuídos

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Projecto hipotético para resolvermos hoje

Sistemas Distribuídos

Sistemas de Objectos Distribuídos

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

LEIC/LERC 2010/11 1º Teste de Sistemas Distribuídos

LEIC/LERC 2007/08 Exame de Época Especial de Sistemas Distribuídos

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Grupo I [7v] b) [0,3] Em que componente do sistema de RPC será utilizado o campo identificador de operação?

Java Spaces Exemplos

Sistemas Distribuídos 2013/14

Sistemas Distribuídos

Sistemas Distribuídos

Protocolo Request-Reply

Sistemas Distribuídos

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Resumo das Propriedades de UDP e de TCP

LEIC/LERC 2008/09 1º Exame de Sistemas Distribuídos

Introdução a CORBA. Renato Cerqueira. Departamento de Informática, PUC-Rio

Java RMI. Alcides Calsavara

Cliente. Servidor. Núcleo do ORB. Depende do adaptador Interface proprietária. Independe de ORB Depende das definições IDL.

Universidade Federal de Pernambuco Centro de Informática Recife - Pernambuco

Sistemas Operacionais Distribuídos e de Redes

Remote Method Invocation (RMI)

Trabalho Final de Mestrado Profissional

Sistemas Distribuídos

Sistemas Distribuídos INF

Invocação de Métodos em Objectos Remotos

Instituto Superior de Engenharia de Lisboa

COMPUTAÇÃO DISTRIBUÍDA

COMUNICAÇÃO ENTRE PROCESSOS

COMPUTAÇÃO DISTRIBUÍDA

Remote Procedure Calls. Mário Antonio Meireles Teixeira

Laboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Common Object Request Broker Architecture

Vamos fazer um pequeno experimento

Transcrição:

Chamada Remota de Procedimento março de 2019

RPC: motivação A B send (B, &pedido) receive (B, &resposta) como facilitar esse padrão tão comum? encapsulamento de detalhes de comunicação criação, envio e recebimento de mensagens empacotamento de argumentos tratamento de reenvio, etc

RPC: motivação A B send (B, &pedido) receive (B, &resposta) receive (*, &pedido) trata pedido send (B, &resposta) serviço escrito como uma função qualquer

RPC: abstração A B res = f(a,b) originalmente: ênfase em transparência programa distribuído com mesma organização que programa local tratamento automático de empacotamento e desempacotamento

RPC: modelo de execução tradicional A B res = f(a,b) chamador permanece bloqueado até chegada de resposta analogia direta com caso local modelo utilizado largamente em redes locais servidores de arquivos

RPC referência clássica A. Birrell and B. Nelson. 1984. Implementing remote procedure calls. ACM Transactions on Computer Systems, 2(1), 39-59.

RPC: implementação camada de aplicação res = f(a,b) camada de aplicação stub cliente stub serv. stubs intermediam comunicação

RPC: implementação A res=foo(a, b) --> void foo (int a, float b) { marshall req send (A, request) receive (B, &resp) unmarshall resp return val } B receive (*, &request) unmarshall request res = foo(val1, val2) marshall res send(a, response)

RPC: implementação tradicional geração automática de stubs cliente e servidor a partir de interface introdução de IDLs

RPC: especificação de interfaces exemplo Sun RPC: struct intpair { int a; int b; }; program ADD_PROG { version ADD_VERS { int ADD(intpair) = 1; } = 1; } = 0x23451111; pré-compilador (no caso rpcgen) geração de stub cliente e stub servidor, com chamadas à biblioteca RPC marshalling unmarshalling comunicação na rede arquivo de interface para cliente

RPC: empacotamento de dados (1) problemas com representações diferentes e alinhamento de dados surgimento de protocolos e formatos padronizados biblioteca XDR, formato ASN.1 (ISO),... codificações com tipo expĺıcito X impĺıcito

RPC: empacotamento de dados (2) referências de memória não fazem sentido empacotamento de estruturas complexas? possibilidade do programador definir empacotamentos referências voltam a fazer sentido no contexto de objetos distribuídos! callbacks

Localização de Servidores binding problema semelhante ao de localização de destinatário de mensagem, mas agora com abstração de mais alto nível uso de bases de dados centralizadas uso de bases de dados por máquina

Sun RPC

Java RMI utilização de características da linguagem interfaces x classes interface Remote define propriedades comuns a todos os objetos remotos usada nas declarações do cliente exceção RemoteException classe UnicastRemoteObject implementa funcionalidade básica de objeto remoto estendida pela implementação do objeto servidor carga dinâmica (download) de stubs e de implementações de argumentos

Java RMI Interface package example.hello; import java.rmi.remote; import java.rmi.remoteexception; public interface Hello extends Remote { String sayhello() throws RemoteException; }

Java RMI Cliente package example.hello; import java.rmi.registry.locateregistry; import java.rmi.registry.registry; public class Client { private Client() {} public static void main(string[] args) { String host = (args.length < 1)? null : args[0]; try { Registry registry = LocateRegistry.getRegistry(host); Hello stub = (Hello) registry.lookup("hello"); String response = stub.sayhello(); System.out.println("response: " + response); } catch (Exception e) { System.err.println("Client exception: " + e.tostring()); e.printstacktrace(); } } }

Java RMI Servidor package example.hello; import java.rmi.registry.registry; import java.rmi.registry.locateregistry; import java.rmi.remoteexception; import java.rmi.server.unicastremoteobject; public class Server implements Hello { public Server() {} public String sayhello() { return "Hello, world!"; } public static void main(string args[]) { try { Server obj = new Server(); Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0); } } // Bind the remote object s stub in the registry Registry registry = LocateRegistry.getRegistry(); registry.bind("hello", stub); System.err.println("Server ready"); } catch (Exception e) { System.err.println("Server exception: " + e.tostring()); e.printstacktrace(); }

SOAP RPC: protocolo textual

SOAP RPC <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:getprice xmlns:ns1="urn:xmethods-bnpricecheck" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <isbn xsi:type="xsd:string">0596000686</isbn> <title xsi:type="xsd:string">java And Web Services</isbn> </ns1:getprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Protocolos textuais e binários verbosidade x simplicidade

RPC: falhas e semântica transparência preconizada inicialmente quebra diante da possibilidade de falhas diferença para chamadas locais classificação em diferentes modelos: exatamente uma vez, no máximo uma vez, no mínimo uma vez importância de chamadas idempotentes tratamento de exceções

Trabalho: RPC com Lua luarpc construção dinâmica de stubs registerservant (idl, servantobject) waitincomingrequests () createproxy (idl, ip, port)

RPC e bloqueio proposta original simula chamada local: bloqueio da linha executora