martes, 11 de octubre de 2016

RMI

¿Qué es RMI?

Es una implementación independiente de la plataforma JAVA, la cual permite que tanto los objetos remotos como las aplicaciones cliente, residan en sistemas heterogéneos. Sin embargo es necesario resaltar que el lenguaje no es independiente, tanto el objeto servidor RMI como el objeto cliente tienen que ser escritos en Java.

* para un programador Java el uso de RMI le resultara muy natural por que ya no tiene que aprender una tecnología totalmente diferente.

Objetivos de RMI

Proporcionar una lógica de intercambio de información (middleware) para el desarrollo de aplicaciones distribuidas manteniendo el estilo de programación utilizado en Java:
  • Mecanismos para crear servidores y objetos cuyos métodos se puedan invocar remotamente.
  • Mecanismos que permiten a los clientes localizar los objetos remotos.
Arquitectura RMI

A través de la siguiente podemos entender como se estructura una solución RMI.


De acuerdo a la ilustracion tenemos lo siguiente:

Nivel de transporte: en esta capa gestiona todo lo referente a las comunicaciones
Nivel de gestión de referencias remotas: trata los aspectos relacionados con el comportamiento esperado de las referencias remotas (mecanismos de recuperación, etc.)
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.
Ventajas y desventajas de RMI

Ventajas
  • En entorno Java permite distribuir una aplicación de forma muy transparente, sin realizar demasiados cambios ene el código.
  • Las invocaciones remotas son mas eficientes que las peticiones via http que se usan con CGIs o son servlets.
Desventajas
  • Se consume tiempo para realizar la serialización y descerialización de parámetros.
  • Solo funciona con Java.


No hay comentarios:

Publicar un comentario