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.

Slides:



Advertisements
Apresentações semelhantes
Presenter’s Notes Some Background on the Barber Paradox
Advertisements

Laboratório de Sistemas Distribuídos (LSD) – Universidade Federal de Campina Grande (UFCG)EELA Grid School – December 04, 2006 Enhancing SegHidro/BRAMS.
Sistemas Operacionais II N Aula prática Java Sockets, RPC e RMI Eduardo Bezerra.
Chapter Six Pipelining
1998 Morgan Kaufmann Publishers Mario Côrtes - MO401 - IC/Unicamp- 2004s2 Ch5A-1 Chapter Five The Processor: Datapath and Control.
Java Remote Method Invocation Java RMI
Sistemas distribuídos
Marco A. S. Reis EJB Acesso Remoto Marco A. S. Reis
Invocação Remota de Procedimentos (RPC) Alexandre Bragança 2001 DEI / ISEP.
Padrão de Projeto Interpreter
Projeto de Sistemas de Software Luana Lachtermacher
Orientação a Objetos: Modificador Final para Métodos e Classes
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.
1 Java: Tratamento de Exceções Alcides Calsavara.
Comunicação Distribuída
Desenvolvimento de Aplicações Distribuídas
Sistemas Distribuídos Introdução: Modelos de Arquitetura de Sistemas Distribuídos Instituto de Informática – UFG Verão 2005 Baseado em: Coulouris, Cap.
A.4. Trabalhando com elementos de biblioteca STL – Standard Template Libraby Disponibiliza um conjunto de classes templates, provendo algoritmos eficientes.
Ronaldo Celso Messias Correia
Invocação de Métodos Remotos RMI
Container Managed Persistent Bean Kellyton Brito Projeto Compose
GT Processo Eletrônico SG Documentos Eletrônicos Segunda reunião – 28/08/2009 Interlegis.
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
Building a fuzzy ontology plugin for Protégé
Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes.
Uniform Resource Identifier (URI). Uniform Resource Identifiers Uniform Resource Identifiers (URI) ou Identificador de Recursos Uniforme provê um meio.
Protocolo HTTP.
18/11/2004 TECNOLOGIAS DE MIDDLEWARE Introdução ao WSDL. Concretização num Projecto de LBS. André Barbosa.
SECEX SECRETARIA DE COMÉRCIO EXTERIOR MINISTÉRIO DO DESENVOLVIMENTO, INDUSTRIA E COMÉRCIO EXTERIOR BRAZILIAN EXPORTS STATISTICAL DEPURATION SYSTEM Presentation.
Usando Java no Oracle Por Edson Almeida Junior
Concorrência em Java Threads em Java.
Fazendo e Brincando: Confecção de Materiais para as Aulas de Inglês
Threads, Gerenciamento de Threads Pool de Threads, Grupo de Threads Variáveis Locais à Threads.
Sincronização com Locks. Locks É um mecanismo de sincronização de processos/threads em que estas devem ser programadas de modo que seus efeitos sobre.
JAVA Linguagem Ambiente de Desenvolvimento
Webots Pedro Pinheiro 12 de Novembro de Webots Pedro Pinheiro 12 de Novembro de 2004 Prepared by: Pedro Pinheiro.
Definição do MoC Subjacente a Aplicação Prof. Dr. César Augusto Missio Marcon Parcialmente extraído de trabalhos de Axel Jantch, Edward Lee e Alberto Sangiovanni-Vincentelli.
Java em Redes de Computadores
Knowledge Extraction from the Web (ISEWO)
Lecture 2 Properties of Fluids Units and Dimensions 1.
Chamada Remota de Procedimentos
AspectJ — Programação orientada a aspectos em Java Sérgio Soares e Paulo Borba Centro de Informática Universidade Federal de Pernambuco.
Desenvolvimento de Aplicações CORBA
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Remote Method Invocation RMI
Concorrência e Java RMI
Instituto de Engenharia de Sistemas e Computadores Investigação e Desenvolvimento em Lisboa Ontology Building Process: The Wine Domain João Graça, Márcio.
Objetos Distribuídos Nazareno Andrade.
Capítulo 1. static import  A importação estática pode ser utilizado quando queremos acessar métodos ou atributos estáticos de uma outra classe.  Através.
Tipos Especiais de Listas
Alisson Rafael Appio SOP aplicado em um jogo tipo de corrida usando a arquitetura cliente e servidor Alisson Rafael Appio
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
RELATÓRIO CEMEC 06 COMPARAÇÕES INTERNACIONAIS Novembro 2013.
IEEE PES General Meeting, Tampa FL June 24-28, 2007 Conferência Brasileira de Qualidade de Energia Santos, São Paulo, Agosto 5-8, Chapter 8: Procedure.
RMI - JAVA.
Java Kickstart, day 2 Semelhanças com linguagem C.
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
RMI (Remote Method Invocation) Bruno Edson Plínio Tadeu
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
RMI Java Remote Method Invocation em Java. Introdução Java Remote Method Invocation (Java RMI) permite desenvolver sistemas distribuídos baseados em Java.
Sistemas Distribuídos Prof. Marcus Rodrigues
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
Programação em Java RMI - Remote Method Invocation Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
Remote Method Invocation
Introduction to density estimation Modelação EcoLÓGICA
Transcrição da apresentaçã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 cliente método f da classe C em execução JVM servidor método g objeto da classe S chamada remota

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 Server Registry ClientStubSkeleton communication actual perceived get an object reference object reference is published naming service 2 1 3

Componentes em execução f de C g de S S_SkelS_Stub Socket Cliente Socket Servidor Naming Registry Socket Cliente Socket Servidor chamda remota de g clienteservidor main cria bind lookup

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

Compilação S.java javac S.class rmic S_Skel.classS_Stub.class C.java javac C.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", " ); On the server side: Put stubs and classes at the indicated place

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