Escolar Documentos
Profissional Documentos
Cultura Documentos
RMI significa Remote Mothod Invocation e permite fazer chamadas remotas a métodos remotos.
1) Uma interface que definirá os métodos que podem ser invocados remotamente (todos os métodos
devem lançar “RemoteException”)
2) Uma classe de implementação da interface remota que estenda a classe UnicastRemoteObject e que
tenha um construtor que lance “RemoteException”
3) As classes de Stub que serão geradas automaticamente pelo rmic (stubs são as implementações reais do
serviço, com detalhes de rede etc.)
4) Criar uma classe servidor e registrá-la no servidor RMI
5) Executar os programas necessários NO SERVIDOR
6) Criar uma classe cliente, que irá se conectar no servidor (com o mesmo nome de registro) e efetuará as
chamadas remotas
@Override
public void mensagemServidor(String mensagem) throws RemoteException {
System.out.println("Mensagem recebida do cliente: " + mensagem);
}
@Override
public Double somarRemotamente(Double valor1, Double valor2) throws RemoteException {
return (valor1 + valor2) ;
}
9) Criar o Server:
import java.rmi.Naming;
import java.rmi.RemoteException;
String nomeServicoRegistrado =
"rmi://localhost:1099/ServicoRemoto";
try {
Naming.rebind(
nomeServicoRegistrado,
servicoRemoto);
} catch (Exception e) {
e.printStackTrace();
}
11) Criar o Cliente (este irá acessar o serviço remoto e poderá ser distribuído para usuários que têm acesso a
rede onde está o servidor) . Criar uma classe chamada “ServicoCliente.java”
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
public ServicoCliente() {
}
try {
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
}
13) Agora será necessário abrir três terminais do DOS, para executar os processos separadamente. Faça o
seguinte:
a. Passos do SERVIDOR:
b. Passos DO CLIENTE (deve ser executado nos computadores clientes, que irão acessar o servidor
remoto, ou no próprio servidor, se for o caso.)
Atenção:
Para distribuir o programa para os clientes, será necessário enviar as seguintes classes:
ServicoCliente.class
ServicoImpl_Stub.class
ServicoRemoto.class