Ensayo Sistemas Distribuidos: RMI
RMI
Introducción:
En este ensayo hablaremos sobre el método de invocación
remoto o por su siglas en inglés RMI,, veremos las funcionalidades que tiene y
las utilidades por las cuales es usado, además así sabremos como poder implementarlo
en nuestros proyectos, y dentro de su estructura veremos cómo funciona para Cliente-Servidor,
además veremos cómo esta tecnología se enmarca en la idea de permitir
colaboración entre objetos “Remotos” que permiten su colaboración.
Desarrollo:
Para empezar definiremos lo que es RMI, es un mecanismo
que nos permite llamar a los métodos remotos que están situados en una o varias
máquinas virtuales de java por sus siglas en ingles JVM, comparten procesamientos a través de varios sistemas. Esto se
refiere a que en vez de crear una instancia u objeto, puede llegar a que se
ligue un objeto remoto con un representante local, el cual se conoce como stub.
El stub es el que acepta los mensajes que se le envían y a su vez este lo envía
al objeto remoto. Se invoca el método para que en los objetos remotos se envían
de regreso al stub local.
La idea de esta arquitectura es tener un objeto cliente,
donde podamos completar un requerimiento de datos, este cliente a su vez prepara el
requerimiento que envía a un objeto ubicado en un servidor
Esta arquitectura puede verse desde 4 capas:
Capa de aplicación: Cualquier aplicación que quiera que sus métodos estén
disponibles para su acceso por clientes remotos debe declarar dichos métodos en
una interfaz que extienda ‘java.rmi.Remote.’, cuando los objetos han sido
implementados el objeto debe ser exportado.
Capa de resguardo o
stub: Esta capa es la que
interactúa directamente con la capa de aplicación. Todas las llamadas a objetos
remotos y acciones junto con sus parámetros y retorno de objetos la cual es
dirigida a un objeto proxy al cual se le conoce como resguardo.
Capa de referencia
remota: Esta capa es la que gestiona
las referencias a los objetos de servicios remotos y realiza las tareas específicas de la
implementación con los objetos remotos. En esta capa se espera una conexión de
tipo stream, desde la capa de transporte.
Capa de Transporte: Esta capa es la que
se encarga de la conexión entre procesos, transmitiendo los datos que
representa la llamada a la máquina remota de Java, el protocolo de transporte para
RMI es JRMP (Java Remote Method Protocol), que solamente es “comprendido” por
programas Java.
El cliente debe manipular objetos que están en el
servidor, para esto el cliente debe tener qué puede hacer con estos objetos. Esto
se expresa en una interfaz que reside en el cliente y el servidor. Para esto
ambos lados deben implementar la interfaz Product.java.
Estas dos partes fundamentales son:
Servidor: Crea referencias para hacerlos accesibles, y espera a que
el cliente los invoque.
Aquí hay una capa que funciona para el servidor la cual es la capa esqueleto que se utiliza
para interactuar con la capa de resguardo del cliente.
En el lado del servidor debemos implementar la clase que
en efecto efectúa la tarea del método.
Cliente: Obtiene una referencia a objetos remotos en el servidor,
y los invoca.
Para que no haya problemas de seguridad, el programa
cliente debería instalar un administrador de seguridad para controlar la
actividad del stub cargado dinámicamente.
Para crear un objeto remoto, se define una interfaz, y el
objeto remoto será una clase que implemente dicha interfaz.
Interfaz Remota
Una interfaz Java es una clase que se utiliza como
plantilla para otras clases, hereda de la clase de java ‘remote’ la cual
permite implementar la interfaz con el RMI
Conclusión:
Puedo concluir que este tipo de arquitectura es muy
similar al de Cliente-Servidor pues además de que el servidor trata de
responderle al Cliente haciendo proceso, estos proceso se manejan en capaz sin
embargo el RMI con la interfaz remota es
más útil pues al ser métodos que tienen objetos remotos, hace que sea más fácil
de utilizar pues no tienes que preocuparte por pasar parámetros donde puede
perderse información, además que no es difícil implementarlo.
Referencias:
Universidad Técnica Federico Santa María (26/11/2017)
RMI: Remote Method Invocation (Invocación Remota de
Métodos), obtenido de:
Universidad Autónoma de México (26/11/2017)
RMI de Java, obtenido de:
Enrique Medina Montenegro (2003)
PROGRAMACIÓN DISTRIBUIDA CON RMI, obtenido de:
M. L Liu (2004)
API de Java RMI, obtenido de:
Computación Distribuida ,
Fundamentos y Aplicaciones
Comentarios
Publicar un comentario