Arquitectura de Java RMI


Nivel de resguardo/ esqueleto (proxy/skeleton) que se encarga del aplanamiento (serialización) de los parámetros.
-          Proxy: resguardo local. Cuando un cliente realiza una invocación remota, en realidad hace una invocación de un método del resguardo local.
-          Esqueleto (skeleton): recibe las peticiones de los clientes, realiza la invocación del método y devuelve los resultados.
Nivel de gestión de referencias remotas: interpreta y gestiona las referencias a los objetos de servicio remoto.
Nivel de transporte: se encarga de las comunicaciones y de establecer las conexiones necesarias.
SERVICIO DE DIRECTORIOS
-          Se pueden utilizar diferentes servicios de directorios para registrar un objeto distribuido.
-          El registro RMI, rmiregistry, es un servicio de directorios sencillo proporcionado por SDK (Java Software Development Kit).
-          El soporte para RMI en Java está basado en las interfaces y clases definidas en los paquetes:
·         Java.rmi
·         Java.rmi.server

CARACTERÍSTICAS DE JAVA RMI
-          Se basa en una interfaz remota Java (heredada de la clase Java Remote).
-          Es necesario tratar mayor número de excepciones que en el caso de innovación de métodos locales.
·         Errores en la comunicación entre los procesos (fallos de acceso, fallos de conexión)
·         Problemas asociados a la invocación de métodos remotos(no encontrar el objeto, el resguardo o el esqueleto)
·         Los métodos deben especificar la excepción RemoteException.

DESARROLLO DE APLICACIONES RMI

REGISTRO DEL SERVICIO
-          Antes de arrancar el cliente y el servidor, se debe arrancar el programa rmiregistry en el servidor para el servicio de nombres  rmiregistry en el servidor para el servicio de nombres. El puerto que utiliza el rmiregistry por defecto es el 1099.
rmiregistry [port_number]



COMPARACIÓN DE RMI Y SOKETS
-          Los sokets están más cercanos al sistema operativo, lo que implica una menor sobrecarga de ejecución.
-          rmi proporciona mayor abstracción, lo que facilita el desarrollo de software.
-          Los sokets suelen ser independientes de plataforma y lenguaje.


CONCLUSIONES



Java RMI esencialmente permite que objetos JAVA distribuidos en distintas máquinas puedan comunicarse entre sí, enviarse mensajes, ejecutar código remoto, etc. sin que el programador tenga que preocuparse del proceso de construir paquetes, gestionar problemas de conexión, controlar errores, etc., intenta simular que el programa está trabajando siempre con objetos en la máquina local.


Por: Ana Karenn Lara Hernandez