1

Objetos Distribuídos com RMI

Java (2)

Remote Method Invocation (RMI)

O RMI é uma extensão de software à máquina virtual Java remota (JVM) que permite o envio de mensagens para objetos gerenciados por outra JVM. O Rmi propicia uma implementação natural do sistema distribuído em um ambiente Orientados a Objeto.

rmi

Objetos de uma determinada máquina poderão enviar mensagens através da rede para objetos presentes em outra máquina.

Implementação da Tecnologia

A partir deste momento vamos chamar de “receptor” ao local onde está o objeto que recebe as mensagens remotas e “transmissor” ao local de onde partem as mensagens remotas.

Quando pensamos em uma aplicação cliente-servidor, é comum que no programa servidor haja objetos receptores. Entretanto, é possível que haja uma situação em que objetos do programa cliente também sejam receptores; ou seja, que recebam mensagens vindas do programa servidor.

Assim, a especificação destes passos se refere aos objetos que recebem as mensagens remotas; estes podem estar no programa servidor ou no programa cliente.

Para cada classe que receber mensagens remotas (receptor), criar uma interface que contenha a especificação destes métodos.

A interface deverá ser especialização da interface Remote.

Os métodos deverão indicar que throws RemoteException (ou seja, podem disparar a exceção RemoteException)

Aplicação Servidor

Na aplicação servidor defino uma interface estendendo a classe Remote do pacote java.rmi.*.

Logo após crio a classe com a implementação dos métodos de nossa aplicação servidora. A Classe de Implementação dos métodos deve estender UnicastRemoteObject e implementar a interface do Servidor.

Por fim implementamos a classe responsável por publicar o Servidor RMI.

 Aplicação Cliente

Na aplicação cliente uso a mesma interface definida na aplicação servidor para estabelecer um contrato de comunicação entre as duas partes.

Por fim acesso a aplicação rmi através da Url: rmi://localhost/RmiServidor, onde RmiServidor foi o nome vinculado ao objeto Remoto, e assim consigo acessar aos métodos do meu objeto remoto.

Paulo R. Marinho

One Comment

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

88 − = 87