Ja he comentat en algun altre POST sobre RMI. Simplement, una tecnologia desenvolupada per Java per a desenvolupar aplicacions distribuïdes.
Aquí un exemple de codi:
Interfície del Servidor: IMaster.java
public void put(String clau, String valor) throws java.rmi.RemoteException;
public String get(String clau) throws java.rmi.RemoteException;
}
Implementació del Servidor: Master.java
private Hashtable dades=new Hashtable();
public Master() throws java.rmi.RemoteException {
super();
}
public void put(String clau, String valor) throws java.rmi.RemoteException {
dades.put(clau,valor);
}
public String get(String clau) throws java.rmi.RemoteException {
return “”+dades.get( clau );
}
}
Classe que posa en el servidor de noms la instancia del Servidor: MasterServer.java
public MasterServer() { // El metodo constructor
try {
IMaster c = new Master();
Naming.rebind(“rmi://localhost:1099/MasterServer”, c);
System.out.println(“Instanciat Master!!!!”);
} catch (Exception e) { System.out.println(“Problema: ” + e); }
}
public static void main(String args[]) {
new MasterServer();
}
}
Classe Clienta que crida la classe Servidora: Slave.java
public Slave() throws java.rmi.RemoteException {
super();
try {
IMaster server = (IMaster) Naming.lookup(“rmi://localhost:1099/MasterServer”);
} catch (Exception ex) { ex.printStackTrace(); }
}
}
Atenció, per a executar això:
/jdk1.5.0_09/bin/rmic Master
// Executem el servidor de noms (en el servidor!!!!)
/jdk1.5.0_09/bin/rmiregistry
//Executem el servidor
/jdk1.5.0_09/bin/java MasterServer
//Executem el client
/jdk1.5.0_09/bin/java Client
En les últimes versions de Java ja no cal generar ni stubs ni skeletons.