|
||
|
|
| Conheça o Plugfeed | » Início » Desenvolvimento » Invocação de Métodos Remotos - RMI --> |
|
Avaliação:
![]() ![]() ![]() ![]() | Publicado em: 22/04/2007Invocação de Métodos Remotos - RMI
Dayvid Lima Desenvolvedor Java há mais de 5 anos, atualmente consultor java em empresa multinacional utilizando recursos avançados da tecnologia J2EE com servidores de aplicação em plataforma Solaris para gerenciamento de redes e integração de sistemas.
Invocação de Métodos Remotos - RMI
As aplicações do RMI compreendem frequentemente dois programas separados, um servidor e um cliente. Um programa servidor cria alguns objetos remotos, faz referência a esses objetos, e aguarda os "clients" invocarem os métodos desses objetos. Enquanto que um programa cliente obtém uma referência remota ao objetos criados pelo servidor e invoca os métodos desses objetos. Entendendo o funcionamento A seguinte ilustração descreve uma aplicação distribuída RMI que utiliza o "RMI registry" para obter uma referência a um objeto remoto. O servidor chama o "registry" para associar (bind) um nome com um objeto remoto. O cliente olha o objeto remoto por seu nome no "registry" do servidor, e invoca então um método nele. A ilustração mostra também que o sistema do RMI utiliza um web server existente para carregar definições da classe, do servidor ao cliente e do cliente ao servidor, para objetos quando necessário.
Criando aplicações distribuídas usando o RMI Utilizar RMI para desenvolver uma aplicação distribuída envolve estas etapas gerais:
Para nossa aplicação modelo iremos criar uma classe servidora que irá conter um método que será invocado remotamente através da utilização de RMI, para isso iremos precisar de alguns arquivos: Como sempre vamos aos códigos fontes, para esse as explicações serão inseridas na forma de comentários dentro dos próprios arquivos (assim pouparemos espaço aqui). Ola.java import java.rmi.Remote; public interface Ola extends Remote {
import java.rmi.Naming; public class OlaImpl extends UnicastRemoteObject implements Ola { // precisamos definir um construtor pois o default não public String showMsg(String msg) { public static void main(String args[]) { try { // Aqui registramos o objeto obj como "OlaServidor" System.out.println("Servidor carregado no registry");
public class Client { public static void main(String[] args) { String msg = "minha mensagem";
2 - Compilando o código fonte. Agora vamos compilar os códigos fonte, para isso basta digitar: Além da compilação básica devemos criar uma classe do tipo Stub para a classe que será acessada remotamente, para criar essa classe devemos rodar o comando:
Para que as classes possam ser acessadas via rede, precisamos inicializar o servidor de rmi através do comando:
Agora vamos rodar nossa aplicação, vamos abrir dois prompts do DOS, no primeiro colocamos o server para rodar com o comando: Com o servidor rodando vamos para a outra janela do DOS e rodamos o client com o comando:
Essa é uma forma muito utilizada para criar aplicações distribuídas, embora esse artigo pareça simples, ele demonstra a base para esse tipo de comunicação. Artigos relacionados
Paula <paulabs27@yahoo.com.br>
Muito boa a explicação!
Mesmo quem não tem muita noção sobre o assunto, consegue entender e depois desenrolar. Parabéns Dayvid! Você tem mesmo o dom de ensinar. ![]() ![]() ![]() ![]() ![]() Dayvid
Olá Paula,
Obrigado pelo elogio. Dayvid ![]() ![]() ![]() ![]() ![]() Vânia Aguiar Moura <vamoura@msn.com>
Artigo muito escalarecedor e didático. Parabéns Dayvid!
![]() ![]() ![]() ![]() ![]() Antonio
Esse artigo é de grande ajuda, para quem tem que desenvolver aplicações de Ivocação de Método Remoto.
![]() ![]() ![]() ![]() ![]() Raphael Feichas <feichas@gmail.com>
Muito boa a explicação, consegui entender esse lance de rmi!
Valeu ´s ![]() ![]() ![]() ![]() ![]() Gilmar <liukangil@gmail.com>
Muito bom mesmo o artigo.
Voce saberia algo sobre telerobotica com rmi. ![]() ![]() ![]() ![]() ![]() Emerson
Abordou de maneira simples um assunto complexo.
Parabéns... ![]() ![]() ![]() ![]() ![]() janaina martins <jana_mistica@hotmail.com>
adoraria saber mais estou ajudando um amigo a faser o trabalho sobre RMI e queria saber mais sobre o assunto e pedir que me mostre algo que tenho a participaçao da linux tambem
ate breve ![]() ![]() ![]() ![]() ![]() FELIPE <fgs4ntos@hotmail.com>
LEGAL .. BOA INICIATIVA .. POIS ENCONTRAMOS POUCO MATIRIAL SOBRE
![]() ![]() ![]() ![]() ![]() carlos <augusto.dev@gmail.com>
olá dayvid, parabens pelo artigo.
Cara fiz uma pequena mudança pro aplicativo rodar em JVM diferentes: na linha onde tem ("//127.0.0.1/OlaServidor") troquei por ("rmi://192.168.1.4:1099/OlaServidor"). O ip 192.168.1.4 é o da maquina da rede onde o server está rodando. 1099 é a porta padrao. Funcionou blz. ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
|
|