Modelo de llamadas a procedimientos remotos El modelo de paso de mensajes funciona bien para protocolos básicos de red y para aplicaciones de red básicas. Cuando las aplicaciones crecen en complejidad, resulta necesario un nivel de abstracción mayor para la programación distribuida. En particular, resultaría deseable tener un paradigma que permitiera que el software distribuido se programase de una manera similar a las aplicaciones convencionales que se ejecutan sobre un único procesador. El modelo RPC (Remote Procedure Call) Utilizando este modelo, la comunicación entre dos procesos se realiza utilizando un concepto similar al de una llamada a un procedimiento local, que resulta familiar a los programadores de aplicaciones.
ING. MSC. EUCLIDES PANDURO PADILLA 2
Modelo de llamadas a procedimientos remotos En un programa que sólo implica a un único proceso, una llamada a un procedimiento del tipo func(arg l, arg2) implica un salto en el flujo de ejecución al código de dicho procedimiento
ING. MSC. EUCLIDES PANDURO PADILLA 3
Modelo de llamadas a procedimientos remotos Una llamada a un procedimiento remoto implica dos procesos independientes, que pueden residir en máquinas diferentes. Un proceso, A que quiere realizar una petición a otro proceso, B invoca a un procedimiento de B, pasando junto a la llamada una lista de valores de argumentos. Como en el caso de la llamada a procedimientos locales, una llamada a un procedimiento remoto dispara una acción predefinida en un procedimiento proporcionado por B. Al finalizar el procedimientos, el proceso B de vuelve un valor al proceso A
ING. MSC. EUCLIDES PANDURO PADILLA 4
Modelo de llamadas a procedimientos remotos
ING. MSC. EUCLIDES PANDURO PADILLA 5
Modelo de llamadas a procedimientos remotos Para utilizar RPC e implementar nuestro sistema de subastas procederemos de la siguiente forma: El programa de subastas proporciona un procedimiento remoto para que cada participante se registre y otro procedimiento para que éstos hagan pujas. Cada programa participante proporciona los siguientes procedimientos remotos: 1. el que permite al subastador llamar al participante para anunciar el comienzo de una sesión. 2. el que permite al subastador informar al participante de la puja mas alta, y 3. el que permite al subastador anuncie el final de la sesión.
ING. MSC. EUCLIDES PANDURO PADILLA 6
Paradigma de objetos distribuidos
ING. MSC. EUCLIDES PANDURO PADILLA 7
Invocación a métodos remotos - RMI. La invocación de métodos remotos (Remóte Method Invocation RMI) es el equivalente en orientación a objetos de las llamadas a procedimientos remotos. En este modelo, un proceso invoca métodos de un objeto, el cual reside en un ordenador remoto. Los argumentos se pueden pasar con la invocación, y se puede de volver un valor cuando el método ha concluido.
ING. MSC. EUCLIDES PANDURO PADILLA 8
Invocación a métodos remotos - RMI. El programa de subastas proporciona un método remoto para que cada participante se registre y otro método para que éstos hagan pujas. Cada programa participante proporciona los siguientes métodos remotos: 1. el que permite al subastador llamar al participante para anunciar el comienzo de una sesión 2. el que permite al subastador informar al participante de la puja más alta, y 3. el que permite que el subastador anuncie el final de la sesión.
ING. MSC. EUCLIDES PANDURO PADILLA 9
Invocación a métodos remotos - RMI.
ING. MSC. EUCLIDES PANDURO PADILLA 10
Basado en Object Request Broker - ORB Redirige la petición al objeto apropiado que proporciona dicho servicio. El ORB puede funcionar también como mediador para objetos heterogéneos, permitiendo la interacción entre objetos implementados usando diferentes API y/o ejecutando sobre diferentes plataformas. La implementación del sistema de subastas usando un ORB es similar a la que usa RMI. Con la excepción de que cada objeto (subastador y participantes) deben registrarse en el ORB y son, en realidad, invocados por este mismo. Cada participante solicita peticiones al objeto subastador para registrarse para la sesión y hacer pujas.
ING. MSC. EUCLIDES PANDURO PADILLA 11
Basado en Object Request Broker - ORB A través del ORB, el subastador invoca los métodos de cada participante para anunciar el comienzo de la sesión, actualizar el estado de las pujas, y anunciar el final de la sesión. Este paradigma es la base de la arquitectura CORBA (Common Object Requesr Broker Architecture). Herramientas bajo esta plataforma son: Visibroker de Inspire, Java IDL, Orbix de IONA y TAO. Las tecnologías basadas en componentes como Microsft COM, Microsoft DCOM, Java Bean, y Enterprice Java Beans, también están basadas en este peradigma
ING. MSC. EUCLIDES PANDURO PADILLA 12
Basado en Object Request Broker - ORB
ING. MSC. EUCLIDES PANDURO PADILLA 13
Espacios de Objetos Quizás el más abstracto de los paradigmas orientados a objetos, el paradigma de Espacio de Objetos que asume la existencia de entidades lógicas conocidas como espacias de objetos. Los participantes en una aplicación convergen en un espacio de objetos común. Un suministrador coloca objetos como entidades dentro de un espacio de objetos, y los solicitantes que se subscriben al espacio pueden acceder a dichas entidades. Proporciona un espacio virtual o sala de reunión entre suministradores y solicitantes de recursos de red, como objetos
ING. MSC. EUCLIDES PANDURO PADILLA 14
Espacios de Objetos Para el sistema de subastas, todos los participantes así como el suministrador de servicios se suscribirían al mismo espacio de objetos. Cada participante depositaría un objeto en el espacio de objetos para registrarse en la sesión y para ser notificado del comienzo de la misma. Al comienzo de la sesión, el subastador deposita otro objeto en el espacio de objetos. El objeto contiene información sobre el elemento a subastar así como el histórico de las pujas. Un participante que desee realizar una puja tomará el objeto del espacio y, si así lo quiere, añadirá una nueva puja en el objeto antes de devolverlo al espacio de objetos. Al final de la sesión el subastador retirará el objeto del espacio y contactará con el participante con la mayor puja. ING. MSC. EUCLIDES PANDURO PADILLA 15 Espacios de Objetos
ING. MSC. EUCLIDES PANDURO PADILLA 16
Agentes Móviles Es un programa u objeto transportable. En este paradigma, un agente se lanza desde un determinado ordenador. El agente entonces viaja de forma autónoma de un ordenador a otro de acuerdo con un itinerario que posee. En cada parada, el agente accede a los recursos o servicios necesarios y realiza las tareas correspondientes para completar su misión El paradigma ofrece la abstracción de programa a u objeto transportable. En lugar de intercambio de mensajes, los datos son transportados por el programa/objeto mientras el propio objeto se transfiere entre los participantes.
ING. MSC. EUCLIDES PANDURO PADILLA 17
Agentes Móviles
ING. MSC. EUCLIDES PANDURO PADILLA 18
Agentes Móviles Sistema de subastas. En comienzo, cada participante lanza un agente móvil hacia el subastador. El agente transporta la identidad, incluyendo la dirección de red, del participante al que representa. Una vez que la sesión ha comenzado el subastador lanza un agente móvil que transporta el itinerario de los participantes, así como la mayor puja. El agente móvil circula entre los participantes y el subastador hasta que finalice la sesión, en cuyo instante el subastador lanza el agente para dar un recorrido más entre todos los participantes para comunicar el resultado.
ING. MSC. EUCLIDES PANDURO PADILLA 19
Paradigmas de servicios de red Es una extensión del paradigma de invocación de métodos remotos. La diferencia es que los objetos de servicio se registran en un directorio global. Los servicios se pueden registrar y localizar usando un único identificador global. Para nuestros sistema de subastas. Es la misma que bajo el paradigma RMI excepto que el subastador se registra en el servicio de directorio, permitiendo que los participantes lo localicen.
ING. MSC. EUCLIDES PANDURO PADILLA 20
Paradigmas de servicios de red Los participantes proporcionan un método callback que permite que el subastador anuncie el comienzo y el final de la sesión y que actualice el estado de la misma. La tecnología Jini de Java esta basado en este paradigma. El protocolo SOAP aplica este paradigma a los servicios WEB.
ING. MSC. EUCLIDES PANDURO PADILLA 21
Paradigmas de servicios de red
ING. MSC. EUCLIDES PANDURO PADILLA 22
Paradigmas de servicios de red Trabajo corporativo basad en ordenador, los procesos participan en grupo en una sesión colaborativa. Cada proceso hace contribuciones a todos o parte del grupo. Permite a cada participante leer y escribir datos sobre una visualización compartida. Este paradigma es la base de un gran número de programas groupware como Lotus QuickPlane. Interfaces de programación de aplicaciones como: Java Shared Data Toolkit. Aplicaciones como SMART Board, netmeeting, groove