Haciendo simple RMI

Estamos realizando una integración entre dos plataformas, y dado que, ambas son Java, se ejecutarán en el mismo segmento de red y necesitamos una integración fuerte, hemos optado en esta ocasión por usar RMI en detrimento de SOAP.

Hasta ahí, todo bien, el problema surge cuando las aplicaciones podrian ser desplegadas en cualquier servidor de aplicaciones. Cada servidor de aplicaciones tiene su propio mecanismo para la publicación de RMI( Jboss, Oc4j,Geronimo, IBM WebShare,Sun Java System Application Server …) que suele simplificar las cosas, pero que en nuestro caso dificulta la configuración del sistema.

Una posible solución es optar por no utilizar el mecanismo que ofrece el servidor de aplicaciones y crear de forma programática el registro RMI, esta opción requiere un poco mas de esfuerzo pero nos aisla de los problemas que puedan surgir al desplegar la aplicación.

Las siguentes lineas de código muestran como activar un registro RMI sin tener que utilizar los mecanismos que ofrecen Jboss, Oc4j o el comando rmiregistry

Registry registry = LocateRegistry.createRegistry(5432);

// creamos la instancia del Servidor
ServerRMI serverRMI=new ServerRMI();

// publicamos el servidor en el registro
registry.bind(«test», serverRMI);

La solución es realmente muy sencilla, os dejo un ejemplo cliente-servidor RMI.

Ejemplo RMI sencillo