0% encontró este documento útil (0 votos)
25 vistas7 páginas

Informe sobre Java RMI

RMI permite invocar métodos de objetos remotos en Java. Utiliza stubs y skeletons para comunicar objetos cliente y servidor. El cliente obtiene referencias a objetos remotos, y puede llamar a sus métodos de forma remota. Esto permite distribuir aplicaciones y recursos entre máquinas.

Cargado por

Yisel Saez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
25 vistas7 páginas

Informe sobre Java RMI

RMI permite invocar métodos de objetos remotos en Java. Utiliza stubs y skeletons para comunicar objetos cliente y servidor. El cliente obtiene referencias a objetos remotos, y puede llamar a sus métodos de forma remota. Esto permite distribuir aplicaciones y recursos entre máquinas.

Cargado por

Yisel Saez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

INFORME JAVA RMI

YISEL DEL CARMEN SAEZ CASTRO

UNIVERSIDAD COOPERATIVA DE COLOMBIA


SISTEMAS DISTRIBUIDOS
1. INTRODUCCION

El siguiente informe permitirá establecer el funcionamiento del paquete RMI de Java, los

componentes que emplea y su arquitectura. El RMI facilita utilizar los recursos de un

servidor, este mismo se comunica con un cliente.

La programación orientada a objetos se adapta de manera natural a la programación de

aplicaciones distribuidas. En la programación orientada a objetos, tareas parciales de un

problema pueden ser modeladas como entidades, que llamaremos objetos, que se

comunican entre ellos durante su ejecución. En consecuencia, el uso de programación

orientada a objetos resulta una evolución natural en el desarrollo de aplicaciones

distribuidas; de forma que tareas parciales, que ahora estarán ubicadas en distintas

máquinas, son modeladas como objetos que intercambian mensajes a través de la red.

RMI integra este concepto en el lenguaje de programación Java, de manera que el manejo

de objetos en aplicaciones distribuidas mantenga la semántica propia de los objetos

locales de Java. En consecuencia, RMI puede ser fácilmente integrada con otras APIs de

dicho lenguaje.

2. OBJETIVO

Entender la arquitectura y funcionamiento de Java RMI.

3. DESARROLLO

RMI (Java Remote Method Invocation), es el paquete de Java encargado de invocar un

método de forma remota, se caracteriza por ser un mecanismo estándar, realizando una

comunicación entre aplicaciones distribuidas. Es un ejemplo de un sistema de objetos

distribuidos [1].
Considérese una aplicación RMI donde un objeto servidor debe notificar a los procesos

participantes la ocurrencia de algún evento. Como ejemplos, en un chat, cuando un nuevo

participante entra, se avisa al resto de los participantes de este hecho; en un sistema de

subastas en tiempo real, cuando empiezan las ofertas, se debe avisar a los procesos

participantes. Esta característica también es útil en un juego en red cuando se informa a

los jugadores de la actualización del estado del juego.

Figura 1. Java RMI

Típicamente, una aplicación RMI está compuesta de un cliente y un servidor. El servidor

se encarga de crear los objetos remotos, hacerlos accesibles y permanecer a la espera de

llamadas para esos objetos remotos. El cliente debe conseguir referencias para esos

objetos remotos y, en ese momento, puede hacer uso de ellas para realizar llamadas

remotas. Las aplicaciones con objetos distribuidos necesitan:

 Localizar los objetos remotos: para ello pueden hacer uso de la utilidad de

búsqueda por nombres propia de RMI, rmiregistry.


 Comunicar con los objetos remotos: los detalles de la comunicación entre objetos

remotos quedan a cargo de RMI. Para el programador, la invocación remota de

métodos es como la estándar.

 Cargar el código de las clases para los objetos remotos: RMI permite no sólo el

paso de objetos completos hacia y desde los procesos remotos sino, además, la

descarga de las clases que implementan dichos objetos desde ubicaciones remotas.

La comunicación entre clientes y servidores no es directa, siempre media entre ambos

unos elementos suplentes que se conocen como stub y skeleton.

El stub actúa como un proxy local de un objeto remoto. Debe implementar las mismas

interfaces remotas que implementa el objeto al que representa.

Cuando un objeto local llama a un método de la interfaz remota de un objeto, esta llamada

se realiza en realidad sobre los métodos del stub local, desde donde se transmite hasta el

objeto remoto. Por lo tanto, no hay comunicación directa entre objetos locales y remotos,

sino que se realiza a través de los elementos suplentes. El stub se encarga de realizar la

conexión con la máquina virtual remota, enviar los argumentos para el método

especificado, esperar la respuesta y pasársela al objeto local. El skeleton es la

contrapartida del stub, es decir, actúa como proxy del objeto remoto en el lado servidor.

Se encarga de recibir las peticiones dirigidas al objeto servidor y devolver los resultados

a quien hizo la petición. En las versiones actuales del JDK (Java Development Kit) no es

necesaria la utilización de los elementos skeleton [2].

La invocación se compone de los siguientes pasos:

 Encapsulado (marshalling) de los parámetros (utilizando la funcionalidad de

serialización de Java).
 Invocación del método (del cliente sobre el servidor). El invocador se queda

esperando una respuesta.

 Al terminar la ejecución, el servidor serializa el valor de retorno (si lo hay) y lo

envía al cliente.

 El código cliente recibe la respuesta y continúa como si la invocación hubiera sido

local.

Arquitectura de Java RMI

La arquitectura RMI puede verse como un modelo de cuatro capas.

Figura 2. Arquitectura de Java RMI

Primera capa

La primera capa es la de aplicación y se corresponde con la implementación real de las

aplicaciones cliente y servidor

Segunda capa

La segunda capa es la capa proxy, o capa stub-skeleton. 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 tienen lugar en esta capa.

Tercera capa
La tercera capa es la de referencia remota, y es responsable del manejo de la parte

semántica de las invocaciones remotas. También es responsable de la gestión de la

replicación de objetos y realización de tareas específicas de la implementación con los

objetos remotos, como el establecimiento de las persistencias semánticas y estrategias

adecuadas para la recuperación de conexiones perdidas. En esta capa se espera una

conexión de tipo stream (stream-oriented connection) desde la capa de transporte.

Cuarta Capa

La cuarta capa es la responsable de realizar las conexiones necesarias y manejo del

transporte de los datos de una máquina a otra. El protocolo de transporte subyacente para

RMI es JRMP (Java Remote Method Protocol), que solamente es "comprendido" por

programas Java [3].

4. CONCLUSIONES

A manera de conclusión, desde mi punto de vista y según lo comprendido a partir de la

investigación realizada a Java RMI, puedo concluir que:

RMI es un paquete de Java el cual emplea la programación orientada a objetos y que

permite la invocación de métodos remotos en sistemas distribuidos, es decir, es un

middleware para que un objeto que se ejecuta en otro lugar use métodos de otro objeto

que se ejecuta en otro lugar, para así, utilizar recursos de un servidor para el cliente.

5. REFERENCIAS

[1] «Informe 4 Funcionamiento de RMI - Sistemas Distribuidos», StuDocu. [En línea].

Disponible en: [Link]

americas/sistemas-distribuidos/informe/informe-4-funcionamiento-de-

rmi/5175888/view. [Accedido: 12-oct-2019].


[2] «3. API RMI». [En línea]. Disponible en:

[Link]

[Accedido: 12-oct-2019].

[3] «Java Remote Method Invocation», Wikipedia, la enciclopedia libre. 07-ago-2019.

También podría gustarte