RMI

INTRODUCCIÓN
La gran mayoría de los sistemas empresariales hoy en día requieren de RMI , esto se debe tanto a distancias geográficas como a requerimientos de computo, ya que sería iluso pensar que las necesidades de computo de toda una empresa fueran satisfechas por una sola computadora y/o servidor. 

Resultado de imagen para rmi

¿QUÉ ES?

RMI ("Remote Method Invocation") y algunas alternativas como CORBA y COM son mecanismos para invocar /ejecutar procedimientos remotos en computadoras/servidores distribuidos.

FUNCIONAMIENTO
RMI ("Remote Method Invocation") es el mecanismo ofrecido en Java que permite a un procedimiento (método, clase,aplicación o como guste llamarlo) poder ser invocado remotamente. Una de las ventajas al diseñar un procedimiento con RMI es interoperabilidad , ya que RMI forma parte de todo JDK , por ende, cualquier plataforma que tenga acceso a un JDK también tendrá acceso a estos procedimientos (método, clase,aplicación o como guste llamarlo), esto a diferencia del clásico CORBA que requiere de otros criterios.(más sobre esto en CORBA ).

- Nivel de resguardo/ esquelet (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.

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
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.

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]

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.

Resultado de imagen para rmi

CONCLUSIÓN
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.

Referencias

Raúl Perez. (26 de 11 de 2017). Cómputo Distribuido Mediante RMI. Obtenido de RMI_x: http://cs.mty.itesm.mx/profesores/raul.perez/DAW/RMI-1.pdf
Víctor J. Sosa Sosa. (26 de 11 de 2017). RMI Remote Method Invocation. Obtenido de DAAI_RMI: http://www.tamps.cinvestav.mx/~vjsosa/clases/sd/DAAI_RMI.pdf

Comentarios

Entradas populares