TECNOLOGIA RMI
Enviado por geocaceres • 2 de Junio de 2013 • Examen • 1.316 Palabras (6 Páginas) • 323 Visitas
TECNOLOGIA RMI
Es un mecanismo que permite realizar llamadas a métodos de objetos remotos situados en distintas máquinas virtuales de Java, compartiendo así recursos y carga de procesamiento a través de varios sistemas.
Por medio de RMI, un programa Java puede exportar un objeto, lo que significa que éste queda accesible a través de la red y el programa permanece a la espera de peticiones en un puerto TCP. A partir de este momento, un cliente puede conectarse e invocar los métodos proporcionados por el objeto.
ARQUITECTURA RMI
CAPA DE APLICACIÓN:
Implementación real de las aplicaciones cliente y servidor.
Llamadas a alto nivel para acceder y exportar objetos remotos.
Se declaran métodos en una interfaz que herede de java.rmi.Remote.
Una vez que los métodos han sido implementados, el objeto debe ser exportado.
De forma implícita: si el objeto hereda de la clase UnicastRemoteObject (paquete java.rmi.server)
De forma explícita: con una llamada al método exportObject () del mismo paquete.
CAPA PROXY, O CAPA STUB – SKELETON:
Esta capa es la que interactúa directamente con la capa de aplicación. Todas las llamadas a objetos remotos y acciones junto con sus parámetros y retorno de objetos tienen lugar en esta capa.
CAPA DE REFERENCIA REMOTA:
Responsable del manejo de la parte semántica de las invocaciones remotas. También es responsable de la gestión de la replicación de objetos y realización de tareas específicas de la implementación con los objetos remotos, como el establecimiento de las persistencias semánticas y estrategias adecuadas para la recuperación de conexiones perdidas.
CAPA DE TRANSPORTE:
Es la responsable de realizar las conexiones necesarias y manejo del transporte de los datos de una máquina a otra. El protocolo de transporte subyacente para RMI es JRMP (Java Remote Method Protocol), que solamente es “comprendido” por programas Java.
ELEMENTOS RMI
Servidor.- Un programa de servidor típico crea algunos objetos remotos, hace referencias a estos objetos accesibles, y espera que los clientes invoquen métodos en estos objetos.
Cliente.- Un programa cliente típico obtiene una referencia remota a uno o más objetos remotos en un servidor y luego invoca métodos sobre ellos.
FUNCIONALIDAD RMI
Por medio de RMI, un programa Java puede exportar un objeto. A partir de esa operación este objeto está disponible en la red, esperando conexiones en un puerto TCP. Un cliente puede entonces conectarse e invocar métodos.
VENTAJAS
Hacer parte del estándar del lenguaje java
Aprovecha las ventajas del lenguaje java
Los detalles de comunicación son transparentes para el programador
Permite el desarrollo rápido y fácil de objetos distribuidos
Es una plataforma amigable para empezar en el área de aplicaciones distribuidas
DESVENTAJAS
No permiten la fácil integración con sistemas heredados
No es rápido
Tiene algunas limitaciones debido a su estrecha integración con Java; la principal de ellas es que esta tecnología no permite la interacción con aplicaciones escritas en otro lenguaje.
RPC
Llamada a Procedimiento Remoto es un protocolo que permite a un programa de ordenador ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambos. El protocolo es un gran avance sobre los sockets usados hasta el momento. De esta manera el programador no tenía que estar pendiente de las comunicaciones, estando éstas encapsuladas dentro de las RPC.
Las RPC son muy utilizadas dentro del paradigma cliente-servidor. Siendo el cliente el que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o función y enviando éste de vuelta el resultado de dicha operación al cliente.
Funcionamiento
La manera en que RPC 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".
Objetivos
• Proporcionar un middelware que simplifique el desarrollo de aplicaciones distribuidas.
• Evitar que programador tenga que interactuar directamente con el interfaz de Sockets.
• Abstraer (ocultar) los detalles relativos a la red.
• El Servidor ofrece procedimientos que el cliente llama como si fueran procedimientos locales.
• Se busca ofrecer un entorno de programación lo más similar posible a un entorno no distribuido.
• El sistema RPC oculta los detalles
...