Ejemplo básico
Arquitectura
Cliente Servidor
Cliente.java
Cliente.java Servidor.java
Servidor.java
Stub
Stub Skeleton
Skeleton
RMI RMI
Internet
Arquitectura
Cliente (Remote)
(Remote) Servidor
Interface
Interface
Cliente.java
Cliente.java Servidor.java
Servidor.java
rmic
Stub
Stub Skeleton
Skeleton
RMI Registry
Leyenda:
manual
manual
RMI RMI
generado
generado
Internet
infraestructra
infraestructra
El interfaz rmi
Métodos con tipos básicos, que
implementan Serializable, o que
implementan Remote
RemoteDate.java
RemoteDate.java
package p4;
import java.rmi.*;
import java.util.Date;
/* Constructor */
public Date getRemoteDate() throws java.rmi.RemoteException;
Nota:
1.- se asume que todos los .java están en el mismo directorio
2.- en Java 1.5, rmic no se genera RemoteDateImpl_Skel.class, sino que se crea
dinámicamente y se usa cuando se necesita. Usa protocolo rmi 1.2.
Para garantizar portabilidad, la opción –vcompat usa el protocolo rmi antiguo
Máquinas distintas
Si el cliente y el servidor están en
máquinas distintas:
El rmiregistry corre en la máquina del
servidor
El .java del cliente cambia
Por ejemplo: lookup(arg[0]) hará que el cliente
se invoque así:
DateClient //x.y.z.k/RemoteDate
IP del servidor