Vous êtes sur la page 1sur 16

Alfredo Zambrana R.

La base fundamental del RMI es el RPC. De manera fcil de explicar, el RPC (llamado remoto de procesamiento) es procesar de manera remota algn segmento de cdigo (utilizando una CPU, Memoria, Stack, etc), necesario localmente, sin salir del procesamiento local.

RMI es un paquete de JAVA que permite manejar objetos (y sus respectivos mtodos) de manera remota, para utilizar los recursos de un servidor de manera transparente para el usuario local.

Un servidor, que crea algunos objetos remotos, crea referencias para hacerlos accesibles, y espera a que el cliente los invoque. Un cliente, que obtiene una referencia a objetos remotos en el servidor, y los invoca.

Tiene un modelo de 4 capas:

La primera capa es la de aplicacin y se corresponde con la implementacin real de las aplicaciones cliente y servidor. Aqu tienen lugar las llamadas a alto nivel para acceder y exportar objetos remotos. Cualquier aplicacin que quiera que sus mtodos estn disponibles para su acceso por clientes remotos debe declarar dichos mtodos en una interfaz que extienda java.rmi.Remote. Dicha interfaz se usa bsicamente para "marcar" un objeto como remotamente accesible. Una vez que los mtodos han sido implementados, el objeto debe ser exportado

La capa 2 es la capa proxy, o capa stubskeleton. Esta capa es la que interacta directamente con la capa de aplicacin. Todas las llamadas a objetos remotos y acciones junto con sus parmetros y retorno de objetos tienen lugar en esta capa

La capa 3 es la de referencia remota, y es responsable del manejo de la parte semntica de las invocaciones remotas. Tambin es responsable de la gestin de la replicacin de objetos y realizacin de tareas especficas de la implementacin con los objetos remotos, como el establecimiento de las persistencias semnticas y estrategias adecuadas para la recuperacin de conexiones perdidas. En esta capa se espera una conexin de tipo stream (stream-oriented connection) desde la capa de transporte.

La capa 4 es la de transporte. Es la responsable de realizar las conexiones necesarias y manejo del transporte de los datos de una mquina a otra. El protocolo de transporte subyacente para RMI es JRMP (Java Remote Method Protocol), que solamente es "comprendido" por programas Java.

La manera en que RMI (y RPC en general) logra hacer esto, es por medio de lo que se conoce como STUBs. En el caso del STUB servidor, se conoce como SKELETON. Estos Stubs y Skeletons permiten que al momento de ser invocada la funcin remota esta pueda ser "simulada localmente"

Un stub es un trozo de cdigo usado como sustituto de alguna otra funcionalidad. Un stub puede simular el comportamiento de cdigo existente (tal como un procedimiento en una mquina remota) o ser el sustituto temporal para un cdigo an no desarrollado.

Para la comunicacin entre el servidor y el cliente, se trabaja con interfaces, que deben ser implementadas por el servidor y/o cliente, para que los STUBs puedan realizar la transparencia para ambos. Adems esto evita que deba existir una definicin local real de la clase remota, vale decir, en el cliente solo debe estar definida la interface, no la clase remota.

Otro punto importante en RMI, es el como se produce la conectividad entre el cliente y servidor. Para esto se ocupa una herramienta de JAVA, llamada RMI Registry. El RMI Registry puede estar localizado en un lugar distinto al servidor, y se encarga de registrar un determinado objeto y asignarle un servidor que se encargar de procesar dicho objeto.

El funcionamiento general es: Se ejecuta el RMI Registry, en algn lugar de la red. El servidor que desea manejar un objeto, se registra en dicho servidor, El RMI Registry registra el par: OBJETO/SERVIDOR El cliente que necesita utilizar un determinado objeto, hace una consulta al RMI Registry, quien devuelve el STUB listo para la comunicacin

http://profesores.elo.utfsm.cl/~agv/elo330/ 2s05/projects/CesarVasquez/sitio_web/que_ es.html www.slideshare.net/mejiaff/ejemplo-javarmi http://es.wikipedia.org/wiki/Java_Remote_Me thod_Invocation

Vous aimerez peut-être aussi