viernes, 21 de noviembre de 2014

RMI (REMOTE METHOD INVOCATION)




Definición
Es un mecanismo ofrecido por Java para invocar un método de manera remota.
Forma parte del entorno estándar de ejecución de Java y proporciona un mecanismo simple para la comunicación de servidores en aplicaciones distribuidas basadas exclusivamente en Java.



Características y Estructura de RMI

Características
*Facilidad de uso en la programación  por estar específicamente diseñado para  JAVA.
*  Proporciona paso de objetos por referencia.
      *Recolección de basura distribuida.

*Paso de tipos arbitrarios.

Invocación
1)  Encapsulado  de los parámetros.
2)  Invocación del método (del cliente con el servidor). El invocador se queda esperando una respuesta.
3)  Al terminar la ejecución, el servidor serializa el valor de retorno y lo envía al cliente.
4)  El código cliente recibe la respuesta y continúa como si la invocación hubiera sido local.
Arquitectura
Puede verse como un modelo de cuatro capas.
Primera Capa: es la de aplicación y corresponde con la implementación real de las aplicaciones cliente y servidor.
Segunda Capa: es la que interactúa directamente con la capa de aplicación. Se encuentran  las llamadas a objetos remotos y acciones junto con sus parámetros y retornos de objetos.
Tercera Capa: es la de referencia remota, y es responsable del manejo de la parte semántica de las invocaciones remotas. Es responsable de la replicación de objetos. 
 Cuarta Capa: es la de transporte; es la responsable de realizar las conexiones necesarias y manejo del transporte de los datos de una máquina a otra.


Arquitectura de RMI



Skeleton y Stub
Dota a clientes y servidores de una interfaz que les permite localizar objetos remotos para invocar sus métodos como si fueran locales.
El API java RMI
Es una interfaz de programación de aplicaciones provistas por los creadores del lenguaje java, y que da a los programadores los medios para desarrollar aplicaciones Java.
LA API de Java provee un conjunto de clases utilitarias para efectuar toda clase de tareas dentro de un programa.

Interfaces y Clases RMI
Implementa 5 paquetes. 
             Java.rmi: contiene Clases, Interfaces y Excepciones vistas por los   clientes.          
 Java.rmi.server: Contiene clases, Interfaces y Excepciones vistas por los servidores.
Java.rmi.registry: Contiene Clases, Interfaces y Excepciones útiles para localizar y registrar objetos remotos.
 Java.rmi.dgc: Contiene  Clases, Interfaces y Excepciones para la recolección de basura.
Java.rmi.activation: Contiene Clases, Interfaces y Excepciones para la activación de objetos remotos.

Definición
Es un servidor simple que permite que una aplicación vea los objetos lo cuales están siendo importados por un RMI.
Una vez que se tiene un objeto que está siendo exportado por un servidor que utiliza métodos de RMI, la comunicación es entonces como una simple llamada a métodos de un objeto que puede existir en una máquina diferente.
Características
 Este  setup requiere algunos parámetros de localización de los objetos remotos.
Es fácil llamar a objetos remotos si  se tiene su ubicación.
 Una vez que el objeto ha sido localizado, usarlo de manera remota es relativamente fácil.
 Para poder inicializar  objetos remotos, hay que utilizar los servicios de registry.
Desarrollo de Aplicaciones Distribuidas
Componentes
Clientes: Conducen el flujo de la aplicación. Localizan e invocan métodos ofertados como remotos por los servidores.
 Servidores: Conjunto de objetos de ofrecen interfaces remotas públicas cuyos métodos pueden ser invocados por clientes de cualquier procesador de la plataforma.
 Registro: Servicio estático que se establece en cada nudo, en el que se registran los servidores con un nombre, y donde los clientes los localizan.

Conceptos
  Objeto remoto:
      Objeto cuyos métodos pueden invocarse desde otras máquinas virtuales.
      Descrito por una o más interfaces Remotas en las que se declaran los métodos que pueden ser invocados por objetos desde otras máquinas virtuales.

Para mas informacion ver  Presentacion RMI ubicada en la parte derecha de la pantalla.
 
   En el suiguinte enlace se muestra un video de un ejemplo con objetos y con datos primitivos
y en el suiguiente enlace puedes descargar el ejemplo RMI




No hay comentarios.:

Publicar un comentario