Você está na página 1de 8

Engenharia de Computao

Tpicos Especiais I

Java RMI(Remote Method Invocation )

Prof. Jan Erik Natal, 2015.1

Introduo
Java RMI um mecanismo para permitir a invocao de
mtodos que residem em diferentes mquinas virtuais Java (JVM).
O JVM pode estar em diferentes mquinas ou podem estar na
mesma mquina. Em ambos os casos, o mtodo pode ser
executado em um endereo diferente do processo de chamada.
Java RMI um mecanismo de chamada de procedimento remoto
orientada a objetos. Ou seja, RMI usa RPC (Remote Procedure Call)
de uma maneira mais fcil, pois abstrai o cdigo da parte de
comunicao.
Sua funcionalidade similar ao CORBA, porm mais simples
pois no precisa lidar com diferentes linguagens de programao.
Com RMI os objetos podem ser transferidos de servidores
remotos para o cliente em tempo de execuo de forma segura, pois
ele tipicamente cliente-servidor.

2/8

Arquitetura do RMI

3/8

Java RMI
Para os projetos/programas utilizando RMI, geralmente as implementaes
so divididas em 3 partes:
1. Um projeto que implemente um classe de interface Java que herde a
classe remota do RMI e que contenha a estrutura de todos os mtodos
remotos desejados.
2. Um projeto que implemente o Servidor RMI (Registry e rebind) e que
instancie a classe com os mtodos remoto e no mesmo projeto, uma
classe

com

os

mtodos

remotos

declarados

na

interface

implementados.
3. Um projeto que implemente o Cliente RMI (Registry e lookup) utilizando
os mtodos remotos implementados no projeto do Servidor.

4/8

Passo 1 - Interface RMI dos mtodos


Crie um novo projeto, por exemplo com o nome RMIInterfaces
Crie um classe Interface Java, por exemplo com o nome RMIInterfaces
Herde a classe Remote do pacote java.rmi.* (extends Remote)
Implemente as estruturas dos mtodos remotos.

Construa o projeto e crie o RMIInterfaces.jar

5/8

Passo 2 - Servidor e Mtodos remotos


Crie um novo projeto, por exemplo com o nome RMIServer
Crie um classe Java, por exemplo com o nome RMIServerImplementation

Herde a classe UnicastRemoteObject do pacote java.rmi.server.* (extends


UnicastRemoteObject) e que implemente (implements) RMIInterfaces.
Implemente todos os mtodos remotos que foram declarados na interface.

6/8

Passo 2 continuao...
Dever ser criado a classe construtora RMIServerImplementation()
Em bibliotecas, importe o arquivo criado no passo 1: RMIInterfaces.jar

Crie um classe Java Principal para o Servidor: RMIServer.


Use os mtodos de Servidor RMI (Registry e rebind) em uma determinado
porta de comunicao (exemplo: 1060, 1099, etc..)

7/8

Passo 3 - Cliente
Crie um novo projeto, por exemplo com o nome RMICliente
Crie um classe Java Principal, por exemplo com o nome RMICliente
Em bibliotecas, importe o arquivo criado no passo 1: RMIInterfaces.jar
Use os mtodos de Cliente RMI (Registry e lookup), informando o nome do

Servidor RMI e da porta escolhida. Use os mtodos remotos.

8/8

Você também pode gostar