RMI permite que objetos en diferentes ordenadores interactúen en una red distribuida. Se implementa en tres capas: un stub en el cliente, una capa de referencia remota, y una capa de transporte. Esto permite invocar métodos de objetos remotos de forma transparente, preservando el modelo de objetos a través de la red. RMI ofrece ventajas como distribuir aplicaciones de forma transparente y realizar invocaciones remotas de forma eficiente, pero implica sobrecarga en la serialización de objetos y no permite fácil integración con sistemas hered
0 calificaciones0% encontró este documento útil (0 votos)
142 vistas12 páginas
RMI permite que objetos en diferentes ordenadores interactúen en una red distribuida. Se implementa en tres capas: un stub en el cliente, una capa de referencia remota, y una capa de transporte. Esto permite invocar métodos de objetos remotos de forma transparente, preservando el modelo de objetos a través de la red. RMI ofrece ventajas como distribuir aplicaciones de forma transparente y realizar invocaciones remotas de forma eficiente, pero implica sobrecarga en la serialización de objetos y no permite fácil integración con sistemas hered
RMI permite que objetos en diferentes ordenadores interactúen en una red distribuida. Se implementa en tres capas: un stub en el cliente, una capa de referencia remota, y una capa de transporte. Esto permite invocar métodos de objetos remotos de forma transparente, preservando el modelo de objetos a través de la red. RMI ofrece ventajas como distribuir aplicaciones de forma transparente y realizar invocaciones remotas de forma eficiente, pero implica sobrecarga en la serialización de objetos y no permite fácil integración con sistemas hered
RMI permite que objetos en diferentes ordenadores interactúen en una red distribuida. Se implementa en tres capas: un stub en el cliente, una capa de referencia remota, y una capa de transporte. Esto permite invocar métodos de objetos remotos de forma transparente, preservando el modelo de objetos a través de la red. RMI ofrece ventajas como distribuir aplicaciones de forma transparente y realizar invocaciones remotas de forma eficiente, pero implica sobrecarga en la serialización de objetos y no permite fácil integración con sistemas hered
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 12
Arquitectura RMI
ALVA VI CENTE IVAN
DE ANDA ARGELLES O. ADRI AN FI GUEROA PALMA DANI EL REVELO MEDI NA E. JOSIMAR Instituto Politcnico Nacional Escuela Superior de Ingeniera Mecnica y Elctrica Unidad Culhuacn Ingeniera de Software Qu es la arquitectura Remote Method Invocation (RMI)? Es una forma de que un programador, utilizando el lenguaje de programacin y entorno de desarrollo Java, puede escribir la programacin orientada a objetos en la que los objetos en diferentes ordenadores pueden interactuar en una red distribuida. RMI es la versin Java de lo que generalmente se conoce como una llamada a procedimiento remoto (RPC), pero con la capacidad de pasar uno o varios objetos, junto con la solicitud. 2 Se implementa en tres capas: 1) Un programa de cdigo auxiliar (stub) en el lado del cliente de la relacin cliente/servidor, y un esqueleto (skeleton) correspondiente del lado del servidor. El stub aparece al programa de llamada a ser el programa que se llama para un servicio. 2) Una capa de referencia remota (remote reference layer) que puede comportarse de manera diferente en funcin de los parmetros que se pasan por el programa de llamada. Por ejemplo, esta capa puede determinar si la solicitud es para llamar a un solo servicio a distancia o mltiples programas remotos como en una multidifusin. 3) Una capa de transporte (transport) de conexin, que establece y gestiona la solicitud. 3 Una peticin nica viaja hacia abajo a travs de las capas en un equipo y a travs de las capas en el otro extremo. 4 Sun llama a su objeto parmetro-mecanismo de elusin una serializacin de objetos. Una solicitud de RMI es una solicitud para invocar el mtodo de un objeto remoto. La solicitud tiene la misma sintaxis que una solicitud para invocar un mtodo de objeto en el mismo equipo (local). En general, el RMI est diseado para preservar el modelo de objetos y sus ventajas a travs de una red. 5 VENTAJAS DE RMI Permite distribuir una aplicacin de forma muy transparente, es decir, sin que el programador tenga que modificar apenas el cdigo. Las invocaciones remotas son ms eficientes que las peticiones va http que se usan con los CGIs o los Servlets. Permite el desarrollo rpido y fcil de objetos distribuidos. Es una plataforma amigable para empezar en el rea de aplicaciones distribuidas. La habilidad de descargar los bytecodes (o simplemente, cdigo) de una clase de un objeto si la clase no est definida en la mquina virtual del servidor. 6 DESVENTAJAS DE RMI El paso de parmetros por valor implica tiempo para hacer la serializacin, enviar los objetos serializados a travs de la red y luego volver a recomponer los objetos en el destino. No permite la fcil integracin con sistemas heredados Tiene algunas limitaciones debido a su estrecha integracin con Java; la principal de ellas es que esta tecnologa no permite la interaccin con aplicaciones escritas en otro lenguaje. 7 Ejemplo: 8 9 En primer lugar se escribe la interfaz remota del servidor Toda interfaz remota debe declararse como public y debe extender la interfaz java.rmi.Remote Debe definir los mtodos que sern accesibles remotamente Cada uno de estos mtodos debe manejar la excepcin java.rmi.RemoteException RMI utiliza el mecanismo de serializacin de objetos para transportar objetos entre mquinas virtuales El cdigo de la interfaz remota ejecutor es el siguiente: :package callback; import java.rmi.*; public interface ejecutor extends Remote{ public String ejecutar(Tarea t) ; throws RemoteException; } 10 El cdigo de la interfaz Tarea es el siguiente: package callback; import java.io.Serializable; public interface Tarea extends Serializable{ public String recado(); } 11 Referencias http://searchsoa.techtarget.com/definition/Remote-Method-Invocation http://www.eg.bucknell.edu/~cs379/DistributedSystems/rmi_tut.html http://www.javacoffeebreak.com/articles/javarmi/javarmi.html 12