JAVA RMIThe Java Remote Method Invocation |
|
MENU
|
¿Que es RMI?Antes de responder esta fundamental pregunta, debemos remontarnos a la base misma de rmi, vale decir, lo que es conocido como Remote Procedure Calling (RPC)¿Que es RPC? Una definicón formal de RPC seria: de un programa distribuido a través de espacios de direcciones disjuntas." Para que se entienda mejor, el llamado remoto de procesamiento es, procesar de manera remota algun segmento de código (utilizando una CPU, Memoria, Stack, etc, remotos), necesario localmente, sin salir del procesamiento local. Este tema es bastante mas complicado de lo que parece, ya que hay que tener en cuenta una serie de detalles y problemas, como por ejemplo:
¿Que es RMI? RMI es un paquete de JAVA que permite manejar objetos (y sus respectivos metodos) de manera remota, para utilizar los recursos de un servidor de manera transparente para el usuario local. 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 función remota esta pueda ser "simulada localmente" Para la comunicación 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. Además esto evita que deba existir una definición 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:
|