OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA

INTEGRANTES: DAVID ALVAREZ LUIS ALVEAR OLGA AVALOS JUAN PABLO CHIMBORAZO

INTRODUCCIÓN (I)
MODELOS DE PROGRAMACIÓN. Llamada a procedimiento remoto (RPC), programa cliente llama a procedimiento de programas servidores. y Invocación a un método remoto (RMI), objeto de un proceso, invoca a métodos de otros procesos. y Basado en eventos, recibe notificaciones de eventos en otros
y

INTRODUCCIÓN (II)
y

MIDDLEWARE. Emplea protocolos basados en mensajes entre procesos para proporcionar abstracciones de un nivel mayor, tales como invocaciones remotas y eventos. Aplicaciones
RMI, RPC y eventos Protocolo petición respuesta Representación externa de datos Sistema operativo Capas de middleware

INTRODUCCIÓN (III)
y

MIDDLEWARE.
Transparencia frente a ubicación (no se necesita conocer la ubicación del procedimiento). Protocolos de comunicación (son independientes del protocolo de Transporte que use, petición-repuesta). Hardware de los computadores (se usa el empaquetado y desempaquetado de mensajes, oculta diferencias en HD, como el ordenamiento de los bits). Sistemas operativos.

COMUNICACIÓN ENTRE OBJETOS DISTRIBUIDOS

MODELO DE OBJETOS
Referencias a Objetos y Interfaces y Acciones y Excepciones y Compactación Automática de la memoria
y

OBJETOS DISTRIBUIDOS
y y y y

Pueden adoptar el modelo cliente ± servidor. Permiten cadena de invocación relacionada Los objetos pueden estar replicados Objetos cliente-servidor en diferentes procesos, promueve la encapsulación. - Métodos para protegerse contra accesos incorrectos - Ventaja para los sistemas heterogeneos en los que se pueden usar diferentes formatos de datos en diferentes lugares

MODELO DE OBJETOS DISTRIBUIDOS 

Referencia de Objeto Remoto Las referencias a los objetos remotos son análogas a las locales en cuanto a que: 1. El objeto remoto donde se recibe la invocación de método remoto se especifica mediante una referencia a objeto remoto

MODELO DE OBJETOS DISTRIBUIDOS
2.- Las referencias a objetos remotos pueden pasarse con argumentos y resultados de la invocación de métodos remotos Interfaz Remota Acciones Compactación Automática de memoria Excepciones 

  

CUESTIONES DE DISEÑO PARA RMI
A pesar de que las invocaciones locales se ejecutan exactamente una sola vez, pudiera no ser siempre este el caso para las invocaciones de métodos remotos. Se discutirán las alternativas y El nivel de transparencia deseable para RMI
y

CUESTIONES DE DISEÑO PARA RMI
y

Semántica de la invocación RMI: - Reintento del mensaje de petición. - Filtrado de duplicados - Retransmisión de resultados.

CUESTIONES DE DISEÑO PARA RMI
Semántica de invocación pudiera ser: y Fallos de omisión si se pierde la invocación o el mensaje con el resultado. y Fallos por caída cuando el servidor que contiene el objeto falla.

CUESTIONES DE DISEÑO PARA RMI
Semántica de invocación al menos una vez: y Fallos por caída cuando el servidor que contiene el objeto remoto falla. y Fallos arbitrarios: En caso donde el mensaje de invocación se retransmite, el objeto remoto puede recibirlo y ejecutar el método más de una vez, provocando que se almacenen o devuelvan valores posiblemente erróneos.

CUESTIONES DE DISEÑO PARA RMI
Semántica de invocación como máximo una vez: Previene fallos como y Fallos arbitrarios al asegurar que para cada RMI no se ejecuta el método más de una sola vez. y Fallos de omisión si se pierde la invocación o el mensaje con el resultado.

CUESTIONES DE DISEÑO PARA RMI
TRANSPARENCIA: Las invocaciones remotas son más vulnerables a fallos que las locales, puesto que involucran una red, otro computador, y otro proceso. Cualquiera que sea la semántica, siempre es posible que no se reciba resultado alguno, y en caso de fallo es imposible distinguir entre el fallo de la red o del proceso remoto.

CUESTIONES DE DISEÑO PARA RMI
Esto requiere que los objetos que hacen invocaciones remotas sean capaces de recuperarse de tales situaciones. La latencia de una invocación remota está en varios órdenes de magnitud mayor que la de una local

CUESTIONES DE DISEÑO PARA RMI
El consenso actual parece ser que las invocaciones remotas deben ser transparentes en el sentido que la sintaxis de la invocación remota sea la misma que en la invocación local, pero la diferencia entre objetos locales y remotos debe indicarse en sus interfaces.

IMPLEMENTACION DE RMI
Objetos y módulos involucrados en la invocación de métodos remotos
Cliente Objeto A Proxy para B Servidor
Esqueleto y despachador para la clase de B

Petición

Objeto B

Respuest a

Modulo de referencia remota

Modulo de comunicación

Modulo de comunicación

Modulo de referencia remota

IMPLEMENTACION DE RMI
y

Modulo de Comunicación
Es el encargado de transmitir los mensajes de Petición y respuesta entre el cliente y el servidor.

y

Modulo de Referencia Remota
Es responsable de traducir las referencias entre objetos locales y remotos, y de crear referencias a objetos remotos.

y

El software RMI
Es una capa entre los objetos del nivel de aplicación y los módulos de comunicación y de referencia remota y especifica los papeles que deben cumplir los siguientes elementos de middleware:
x Proxy x Distribuidor x Esqueleto

IMPLEMENTACION DE RMI
y

Generación de las clases para cada proxy, distribuidor y esqueleto
Estas clases se generan automáticamente mediante un compilador de interfaces.

y

Programas cliente y servidor
El Programa servidor contiene las clases para los distribuidores y esqueletos. El programa cliente contiene las clases para cada proxy.

IMPLEMENTACION DE RMI
y

Métodos factoría
Se emplea para hacer referencia a un método que crea objetos remotos

y

El enlazador(binder)
Se emplea por parte del servidor para registrar sus objetos remotos mediante su nombre y por parte de los clientes para buscarlos por el nombre.

y

Hilos del servidor
Para evitar que la ejecución de una invocación remota retrase la ejecución de otra.

IMPLEMENTACION DE RMI
y

Activación de Objetos Remotos
Se utiliza cuando las aplicaciones requieren que la información este disponible por largos periodos de tiempo pero los objetos no son utilizados durante todo ese tiempo. Un objeto se dice que esta activo cuando esta disponible para su invocación dentro de un proceso caso contrario se dice que esta pasivo pero puede activarse.

IMPLEMENTACION DE RMI
y

Almacenes de objetos persistentes
Un objeto persistente es aquel cuya vida esta garantizada entre procesos de activación. Estos almacenes administran cantidades muy grandes de objetos persistentes que se almacenan en el disco hasta ser usados. Requieren de una estrategia para decidir cuando desactivar un objeto. Existen 2 aproximaciones para saber si un objeto es persistente o no:
x El almacén mantiene algunas raíces persistentes y cualquier objeto alcanzable desde dichas raíces se define para ser persistente. x El almacén de objetos proporciona algunas clases sobre las cuales se basa la persistencia.

IMPLEMENTACION DE RMI
y

Ubicación de Objetos
Los objetos remotos pueden existir en un conjunto de procesos diferentes y posiblemente en computadores diferentes durante su periodo de vida. Por lo que para lo su invocación se requiere tanto una referencia a un objeto remoto como una dirección a donde enviar sus invocaciones. Para esto se utiliza un servicio de localización.

COMPACTACION AUTOMATICA DE MEMORIA
Mientras alguien posea una referencia a un objeto este debe seguir existiendo pero cuando un haya dicha referencia el se cobra ese objeto y se recupera la memoria. y El algoritmo distribuido de compactación automática de memoria de java se basa en el recuento de referencias.
y

COMPACTACION AUTOMATICA DE MEMORIA
y

y y y

Cuando un proceso obtiene una referencia a un objeto remoto se crea un proxy que permanecerá allí tanto tiempo como se necesario. El proceso donde vive este objeto deberá estar informado del nuevo proxy en el cliente. Cuando no haya dicho proxy en el cliente se informara al servidor. En ese momento el compactador de memoria distribuido trabaja en cooperación con el compactador de memoria local para la recuperación de memoria.

LLAMADA A UN PROCEDIMIENTO REMOTO

Introducción
Es muy similar a la invocación de un método remoto. y RPC se implementa usualmente sobre un protocolo petición-respuesta. y Se encuentra simplificado por la omisión de referencia a objetos remotos en los mensajes de petición.
y

Papel de los procedimientos de resguardo de cliente y servidor en RPC
Proceso cliente

Petición

Proceso servidor

Procedimiento de resguardo del cliente

Respuest a

Procedimiento de resguardo del cliente Procedimiento de servicio

Programa cliente

Modulo de comunicación

Modulo de comunicación

Distribuido r

Caso de estudio de Sun RPC
Diseñado para la comunicación cliente-servidor en el sistema de archivos Sun NTFS. y Sun RPC proporciona un leguaje de interfaz denominado XDR y un compilador de interfaces llamado rpcgen cuyo uso esta orientado al leguaje de programación c.
y

Caso de estudio de Sun RPC
y

Lenguaje de definición de interfaz
Sun XDR Puede utilizarse para definir una interfaz de servicio para Sun RPC especificando un conjunto de definiciones de procedimiento junto a las definiciones de tipos que la soportan.
x Sun RPC no permite identificar nombres de interfaces. x Una definición de procedimiento especifica una firma de un procedimiento en la que consta el tipo de resultado, nombre del procedimiento y el tipo de parámetro de entrada, y un numero de procedimiento. x Solo permite un parámetro de entrada. x Los parámetros de salida se devuelven como un solo resultado.

Caso de estudio de Sun RPC
y

Enlazado
Para esto Sun RPC lanza el servicio enlazador de puertos en un número de puerto bien conocido en cada computador.

y

Autenticación
Sun RPC proporciona campos adicionales en los mensajes de petición y respuesta los que permiten pasar información de autenticación entre el el cliente y el servidor.

y

Programas cliente y servidor
Un programa cliente importa la interfaz de servicio adecuado y llama a los procedimientos remotos, por ejemplo, leer y escribir. El programa de servidor consiste en los procedimientos de servidor, apoyados por los main, el despatcher y los procedimientos de cálculo de referencias, todos los cuales se emiten por rpcgen.

EVENTOS Y NOTIFICACIONES (I)
³La idea bajo el uso de eventos es que un objeto pueda reaccionar a un cambio que ocurre en otro objeto´. y Los eventos y las notificaciones son asíncronos. y Por ejemplo al manipular el mouse o una caja de texto , se ven como eventos que provocan cambios en los objetos.
y

EVENTOS Y NOTIFICACIONES (II)
y

y

y

y

Sistemas distribuidos basados en eventos, usan el paradigma publicasuscribe. Publica, el objeto que genera eventos publica el tipo de eventos que ofrece para su observación por otros. Suscribe, objetos que deseen recibir notificaciones, se suscriben a los que sean de su interés(registrar el interés). Ejemplos, añadir una forma a un dibujo, modificar un documento, entrar o dejar una sala, cambiar de lugar un objeto.

EVENTOS Y NOTIFICACIONES (III)
y

Características de los sistemas distribuidos basados en notificaciones.
Heterogéneos Permite hacer funcionar conjuntamente aquellos componentes del sistema distribuido que no han sido diseñados con características de interoperabilidad Se requiere que los objetos generadores de eventos publiquen los tipos de eventos que ofrecen Se necesita que otros objetos se suscriban a los eventos y proporcionen una interfaz para recibir las notificaciones.

EVENTOS Y NOTIFICACIONES (IV)
y

Características de los sistemas distribuidos basados en notificaciones.
Asíncronos Las notificaciones se envían de manera asíncrona a los suscriptores de ese objetos. Por ejemplo Mushroom (sistema distribuido para trabajo colaborativo), si un actor entra, esto se verá reflejado como un cambio en la interfaz y será de manera asíncrona, pues no se tiene la certeza de cuando se generarán los eventos.

SISTEMA SIMPLE DE UNA SALA DE CONTRATACIÓN.

EVENTOS Y NOTIFICACIONES (V)

EVENTOS Y NOTIFICACIONES (VI)
y

Los participantes en una notificación de eventos distribuida.
El objeto de interés, objeto que experimenta cambios de estado, como resultado de operaciones sobre él (los cambios pueden ser de interés para otros objetos). Por ejemplo si una persona entra en una habitación(O. interés), la operación consiste en añadir información sobre la nueva persona en el registro de la habitación.

EVENTOS Y NOTIFICACIONES (VII)
y

Los participantes en una notificación de eventos distribuida.
Evento, un evento aparece en un objeto de interés como resultado de la finalización de la ejecución de un método. Notificación, objeto que contiene información de un evento (tipo de evento, atributos). Atributos: - Identidad del O. de Interés. - Método que se invoca. - Instante en que ocurre (ó secuencia).

EVENTOS Y NOTIFICACIONES (IIX)
y

Los participantes en una notificación de eventos distribuida.
Suscriptor, objeto que se ha suscrito a algún evento en otro objeto (recibe notificaciones). Objetos observadores, su función es desacoplar un objeto de interés de sus suscriptores. Se puede tener muchos suscriptores con diferentes intereses, lo que haría complicado a un objeto.

EVENTOS Y NOTIFICACIONES (IX)
y

Los participantes en una notificación de eventos distribuida.
Anunciante, objeto que declara que generará notificaciones de tipos concretos de eventos. Puede ser: -Objeto de Interés -Observador

EVENTOS Y NOTIFICACIONES (X)
y

Los participantes en una notificación de eventos distribuida.

EVENTOS Y NOTIFICACIONES (XI)
y

Los participantes en una notificación de eventos distribuida. -Objeto de interés en el interior de un servicio de eventos, sin observador. - Objeto de interés en el interior de un servicio de eventos, con observador. - Objeto de interés fuera de un servicio de eventos, con observador.

EVENTOS Y NOTIFICACIONES (XII)
y

Los participantes en una notificación de eventos distribuida. -Reglas para los observadores. A pesar de que pudiera enviar las notificaciones directamente desde el objeto de interés al receptor, la tarea de procesar notificaciones puede dividirse entre los procesos observadores, los cuales tienen una variedad de papeles, por ejemplo:

EVENTOS Y NOTIFICACIONES (XII)
Encaminamiento, hace el trabajo de enviar las notificaciones a los suscriptores en representación de uno o varios objetos de interés. y Filtrado de notificaciones, puede aplicar filtros, basado en los contenidos de las notificaciones.
y

EVENTOS Y NOTIFICACIONES (XIII)
y

y

Patrones de eventos, cuando un objeto se suscribe, se puede especificar patrones sobre los cuales está interesado, un patrón especifica una relación entre varios eventos. Buzones de notificaciones, en ciertos escenarios se debe retrasar las notificaciones hasta que el suscriptor esté listo, en ese caso el observador almacenará las notificaciones en lugar del suscriptor.

EVENTOS Y NOTIFICACIONES (XIV)
y

Especificación de eventos distribuidos de JINI. Permite que un suscriptor en una JVM se suscriba y reciba notificaciones de otro JVM (la cual puede estar en otra PC).
Generadores de eventos. Oyentes de eventos remotos. Eventos remotos. Agentes terceros.

EVENTOS Y NOTIFICACIONES (XV)
y

Especificación de eventos distribuidos de JINI. Para enviar las notificaciones desde el generador de eventos al suscriptor se usa Java RMI (puede usar uno o más agentes terceros). De igual manera se suscribirse a los eventos. la usa para

EVENTOS Y NOTIFICACIONES (XVI)
RemoteEventListener, interfaz proporciona un método llamado notify. Es implementada por los suscriptores y los agentes terceros. y RemoteEvent (Clase): -Referencia a un generador de eventos. -Identificador de Eventos(tipo de eventos en el generador de eventos). -Número de Secuencia. -Objeto empaquetado, contiene información que necesite el receptor para identificar el evento y reaccionar a sju aparición.
y

EVENTOS Y NOTIFICACIONES (XVII)
y

EventGenerator, interfaz proporciona un método llamado register. Es implementada por los generadores de eventos, se usa para suscribirse a un evento del Objeto. -Register: Un identificador de eventos(Tipo). Objeto empaquetado(se devolverá con la notificación). Referencia remota a un objeto suscriptor. Periodo de duración de la suscripción (se pueden renovar).

CASO DE ESTUDIO JAVA RMI

CASO DE ESTUDIO JAVA RMI
y

Permite que los objetos invoquen métodos sobre objetos remotos, empleando la misma sintaxis que las invocaciones locales. El servidor proporciona adicionales al cliente. operaciones

y

y

Ejemplos de tecnología distribuida son Java RMI y CORBA.

y

Permiten que cualquier agente de la aplicacion distribuida pueda actuar directamente con objetos situados en host remotos.

Comunicacion entre Tecnologias de objetos distribuidos

Modelo de Objetos Distribuidos

Las interfacez remotas se definen para localizar al objeto remoto.

CASO DE ESTUDIO JAVA RMI
y 

Interfaces Remotas en JAVA RMI:
Los interfaces definen métodos, mientras que implementan los métodos definidos en los interfaces. las clases 

En una aplicación distribuida, se asume que algunas implementaciones residen en diferentes máquinas virtuales. Los argumentos se empaquetan a través de la interfaz serializable. 

CASO DE ESTUDIO JAVA RMI
y

Paso de parámetros y resultados:

Los parámetros de un método son parámetros de entrada y el resultado de un método es un único parámetro de salida. Donde se tiene: 
Paso

de objetos remotos.(Referencia)  Paso de objetos no remotos.(Crea nuevo objeto)

CASO DE ESTUDIO JAVA RMI
y

Descarga de Clases
Los objetos remotos se comuniquen mediante la invocación remota.

y

RMIregistry
Es el enlazador para Java RMI, contiene: //nombreComputador:puerto/nombreObjeto Clase Naming

CONSTRUCCIÓN DE PROGRAMAS C/S
y

Programa Servidor
Inicio

Método main Clase Sirviente Interfaz Registra y Desregistra 

Representa una forma como un objeto remoto que implementa la interfaz. Consta de un método main y una clase sirviente. RMI register El método main crea una instancia y lo enlaza en RMI register. RMI SecurityManager La clase sirviente implementa la interfaz. Clase UnicastRemoteObject Clase UnicastRemoteObject proporciona objetos remotos.

CONSTRUCCIÓN DE PROGRAMAS C/S
y

Programa Cliente:
Inicio Busca referencias remotas Establece un gestor de Seguridad A un objetos remoto se envían RMI Recibe un vector de referencia a objetos Registro del ultimo número de versión

Devolución de Llamada
El servidor debe informarse cuando termine de una conexión con un cliente.(Objeto de retrollamada.) y Necesita de una serie de RMI sincrónicas de los objetos en las lista.
y
Devolución de llamada.- El servidor notifica a los clientes acerca de nuevos eventos.

DISEÑO E IMPLEMENTACIÓN DE JAVA RMI
y

Empleo de la reflexión.-Pasa información en los mensajes con la clase Method.

y

Clases de java que dan soporte a RMI.
RemoteServer UnicastRemoteObject Activatable

Remote Object

Clase sirviente

RESUMEN
Los SD basados en eventos pueden emplearse para permitir que grupos distribuidos de objetos heterogéneos se comuniquen unos con otros. y Mientras que RMI lo único que necesita es implementar una interfaz para recibir las notificaciones y suscripciones a eventos.
y

Sign up to vote on this title
UsefulNot useful