Rmi

8
Engenharia de Computação Tópicos Especiais I Java RMI(Remote Method Invocation ) Prof. Jan Erik Natal, 2015.1

description

Programação Java Rmi

Transcript of Rmi

  • Engenharia de ComputaoTpicos Especiais I

    Java RMI(Remote Method Invocation )

    Prof. Jan Erik Natal, 2015.1

  • 2 / 8

    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.

  • 3 / 8

    Arquitetura do RMI

  • 4 / 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.

  • 5 / 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

  • 6 / 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.

  • 7 / 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..)

  • 8 / 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.