Introducción RMI (Remote Method Invocation)
RMI hace posible que un Objeto Java pueda invocar métodos de otro Objeto Java que se encuentra en otro Ordenador bajo el control de una Máquina Virtual Java diferente.
Esto es posible gracias a la arquitectura Cliente/Servidor. Cuando el Cliente invoca a un método remoto, tiene que seguir un camino a través de las siguientes capas:
| CLIENTE |
SERVIDOR |
PAPEL A DESEMPEÑAR |
Aplicación |
Aplicación |
- Son las dos aplicaciones Java corriendo bajo el control de diferentes Máquinas virtuales
|
| Capa de stubs |
Capa de esqueletos |
- Estas capas se comportan como Objetos sustitutos en cada lado ocultando la lejanía de la llamada del método
- De esta forma se pueden llamar a los métodos remotos de la misma forma que se llaman a los métodos locales
- El Objeto stub es un sustituto local del objeto remoto
|
| Capa de referencia remota |
Capa de Referencia remota |
- Maneja el empaquetamiento de una llamada de método, así como sus parámetros y valores devueltos para su transporte en la Red
|
| Capa de transporte |
Capa de Transporte |
- Es la conexión real a la red de un sistema a otro
|
Cuando una aplicación cliente hace una llamada a un método de un Objeto remoto
- la llamada se pasa a la Capa de stubs y de ahí a la Capa de referencia remota la cual empaqueta los argumentos en caso necesario y los pasa al servidor por medio de la Capa de transporte
- el empaquetado de los argumentos consiste en la serialización de éstos de forma transparente para el desarrollador
Cuando el Servidor recibe una llamada a un método de un Objeto remoto
- la Capa de referencia Remota desempaqueta los argumentos y los pasa a la Capa de esqueletos y desde aquí se comunica con el método del Objeto remoto en el Servidor
- el desempaquetado de los argumentos consiste en la serialización de éstos de forma transparente para el desarrollador
- finalmente si el método tiene algún valor de retorno, éste es devuelto de forma serializada hacia el Cliente
Infosintesis Solutions Group, S.L.
Formación, asesoramiento y desarrollo de proyectos informáticos