Java RMI. Alcides Calsavara

Documentos relacionados
SISTEMAS DISTRIBUÍDOS

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

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

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

Invocação de Métodos Remotos

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

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

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

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Sistemas Distribuídos

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

INF01018 Aula Prática 2 RMI Remote Method Invocation

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

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

UNIVERSIDADE. Sistemas Distribuídos

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

Adriano Reine Bueno Rafael Barros Silva

Invocação Remota MC704

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)

Sistemas Distribuídos

Capítulo V Sistemas de Objectos Distribuídos

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

Invocação de Métodos em Objectos Remotos

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

APÊNDICE A EXEMPLO DE APLICAÇÃO

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

Sistemas Distribuídos Métodos de Invocação Remota II. Prof. MSc. Hugo Souza

Middleware de Aplicações Paralelas/Distribuídas

Capítulo 4. Packages e interfaces

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Sistemas Distribuídos: Conceitos e Projeto Java RMI

Comunicação usando soquetes.

Sistemas Distribuídos RPC Remote Procedure Call

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

Sistemas Distribuídos Métodos de Invocação Remota IV. Prof. MSc. Hugo Souza

Licenciatura em Engenharia Informática PROVA DE TESTE PRÁTICO Sistemas Distribuídos I 2º Semestre, 2005/2006

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

Objetos Distribuídos. Nazareno Andrade

Desenvolvimento de Aplicações Java/CORBA

RMI/JNDI - Fundamentos

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

RMI: Uma Visão Conceitual

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

Sistemas Distribuídos

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

JLANSCHOOL - APLICAÇÃO DA TECNOLOGIA JAVA RMI NO DESENVOLVIMENTO DE UM SOFTWARE DE GERÊNCIA DE LABORATÓRIO DE COMPUTADORES

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Sistemas Distribuídos

Java. Disciplina: Programação Modular Prof. Marco Túlio de Oliveira Valente

Programação Orientada a Objetos em Java. Threads Threads Threads. Threads

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve

Programação com sockets (em Java)

UNIVERSIDADE. Sistemas Distribuídos

J2EE. J2EE - Surgimento

Enterprise Java Beans

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Computação Paralela. Uma framework para aplicações concorrentes João Luís Ferreira Sobral Departamento do Informática Universidade do Minho

EJB. Session Beans. J2EE (C. Geyer) Introdução a SessionBean 1

Objetos Distribuídos em Java

Programação Concorrente/Paralela em Java

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

INE Sistemas Distribuídos

RMI RMI-IIOP Java IDL (CORBA) Helder da Rocha

Programação Orientada a Objetos. Pacotes e CLASSPATH: Definifdo e Usando Pacotes

(Aula 17) Threads em Java

Exercício programa para MAC5796

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

Java RMI Remote Method Invocation

Um pouco do Java. Prof. Eduardo

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Acesso a Bancos de Dados em Java (JDBC)

THREADS EM JAVA. George Gomes Cabral

Java. Marcio de Carvalho Victorino

CAPÍTULO 7 JAVA 7.1 CARACTERÍSTICAS DA LINGUAGEM

Invocação de Métodos em Objectos Remotos

Introdução à Linguagem Java

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Remote Method Invocation (RMI)

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

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

Transcrição:

Java RMI Alcides Calsavara

Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância de uma classe Java) situado em outra máquina virtual JVM, usando a mesma sintaxe e com a mesma facilidade de se chamar um método local. Transparência de acesso e de localização.

Esquema geral JVM servidor JVM cliente método f da classe C em execução chamada remota objeto da classe S método g

Remote Method Invocation Facility to call methods remotely Similar to RPC - Remote Procedure Call High-level communication abstraction The RMI mechanism provides: control transfer between caller and called parameters cans be exchanged class definitions can be exchanged RMI support in Java provides: A specific API compilation support tools runtime support

General scenario object reference is published Server Skeleton 1 Registry perceived actual 3 communication naming service get an object reference 2 Client Stub

Componentes em execução cliente servidor f de C g de S chamda remota de g cria S_Stub S_Skel bind main lookup Socket Cliente Socket Servidor Naming Naming Socket Cliente Socket Servidor Registry

Hierarquia de classes e interfaces Interface Remote Classe UnicastRemoteObject extends Interface R assinatura de g extends implements Classe S implementação de g

Compilação S.java javac S.class rmic C.java javac C.class S_Skel.class S_Stub.class

Comandos Compilação: javac S.java rmic S javac C.java Execução (3 processos): rmiregistry java S java C

A Java RMI example // file icalendar.java // specifies a date server interface import java.rmi.* ; public interface icalendar extends Remote { java.util.date getdate () throws RemoteException ; }

The RMI date server // file CalendarImpl.java // the date server implementation import java.util.date; import java.rmi.*; import java.rmi.registry.*; import java.rmi.server.*; //...

The RMI date server public class CalendarImpl extends UnicastRemoteObject implements icalendar { public CalendarImpl() throws RemoteException {} public Date getdate () throws RemoteException { return new Date (); }

The RMI date server public static void main(string args[]) { CalendarImpl cal; try { cal = new CalendarImpl(); LocateRegistry.createRegistry(1099); Naming.bind("rmi:///CalendarImpl", cal); System.out.println("Ready!"); } catch (Exception e) { e.printstacktrace(); } }

The RMI date client // file CalendarUser.java import java.util.date; import java.rmi.*; public class CalendarUser { // constructor public CalendarUser() {}

The RMI date client public static void main(string args[]) { long t1=0,t2=0; Date date; icalendar remotecal; try { remotecal = (icalendar) Naming.lookup ("rmi://some.host.com/calendarimpl"); } t1 = remotecal.getdate().gettime(); t2 = remotecal.getdate().gettime();

The RMI date client catch (Exception e) { e.printstacktrace(); } System.out.println ("This RMI call took + (t2-t1) + " milliseconds"); } // main } // class CalendarUser

RMI naming service Very simple Manages pairs [name, object reference] names are keys to get references there is no domain notion Implementation Only one registry per process Defaults to TCP/IP port 1099 Applications can register names only in a registry running on its host Registry server can be launched manually or inside the program

Naming service method calls To create a registry at port 1099: LocateRegistry.createRegistry (1099); To bind a name to a reference: Naming.bind ("rmi:///someobj", objref); To resolve a name: obj = (objclass) Naming.lookup ("rmi://some.host/someobj");

Dynamic class loaders To dynamic load classes used by a running program or applet from the local disks or the network Three kinds of class loaders: Default class loader: to load the classes needed by the JVM (CLASSPATH variable). Applet class loader: to download applets and additional classes from the applet server. RMI class loader: to download from the remote server host all the classes (stubs, skeletons, parameters) to allow the RMI calls.

Setting the RMI class loader On the client side: // launch the RMI security manager System.setSecurityManager ( new RMISecurityManager () ); // set a system property System.getProperties ().put ( "java.rmi.server.codebase", "http://some.where/java/classes/ ); On the server side: Put stubs and classes at the indicated place

Building apps with RMI Interface source code rmic compiler rmic compiler server source code Skeleton Stub client source code javac compiler javac compiler Server bytecode Client bytecode