OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA
Transcript of OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA
![Page 1: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/1.jpg)
OBJETOS DISTRIBUIDOS E OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTAINVOCACIÓN REMOTA
INTEGRANTES:DAVID ALVAREZLUIS ALVEAROLGA AVALOSJUAN PABLO
CHIMBORAZO
![Page 2: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/2.jpg)
INTRODUCCIÓN (I)INTRODUCCIÓN (I)MODELOS DE PROGRAMACIÓN.
Llamada a procedimiento remoto (RPC), programa cliente llama a procedimiento de programas servidores.
Invocación a un método remoto (RMI), objeto de un proceso, invoca a métodos de otros procesos.
Basado en eventos, recibe notificaciones de eventos en otros objetos.
![Page 3: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/3.jpg)
INTRODUCCIÓN (II)INTRODUCCIÓN (II)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 demiddleware
![Page 4: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/4.jpg)
INTRODUCCIÓN (III)INTRODUCCIÓN (III)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.◦ Utilización de diversos lenguajes de programación.
![Page 5: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/5.jpg)
COMUNICACIÓN ENTRE COMUNICACIÓN ENTRE OBJETOS DISTRIBUIDOSOBJETOS DISTRIBUIDOS
![Page 6: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/6.jpg)
MODELO DE OBJETOSMODELO DE OBJETOSReferencias a ObjetosInterfacesAccionesExcepcionesCompactación Automática de la
memoria
![Page 7: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/7.jpg)
OBJETOS DISTRIBUIDOSOBJETOS DISTRIBUIDOSPueden adoptar el modelo cliente – servidor.Permiten cadena de invocación relacionadaLos objetos pueden estar replicadosObjetos 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
![Page 8: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/8.jpg)
MODELO DE OBJETOS MODELO DE OBJETOS DISTRIBUIDOSDISTRIBUIDOS
![Page 9: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/9.jpg)
Referencia de Objeto RemotoLas 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
![Page 10: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/10.jpg)
MODELO DE OBJETOS MODELO DE OBJETOS DISTRIBUIDOSDISTRIBUIDOS
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
![Page 11: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/11.jpg)
CUESTIONES DE DISEÑO CUESTIONES DE DISEÑO PARA RMIPARA RMIA 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
El nivel de transparencia deseable para RMI
![Page 12: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/12.jpg)
CUESTIONES DE DISEÑO CUESTIONES DE DISEÑO PARA RMIPARA RMISemántica de la invocación RMI:
- Reintento del mensaje de petición.
- Filtrado de duplicados- Retransmisión de
resultados.
![Page 13: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/13.jpg)
CUESTIONES DE DISEÑO CUESTIONES DE DISEÑO PARA RMIPARA RMISemántica de invocación pudiera
ser:Fallos de omisión si se pierde la
invocación o el mensaje con el resultado.
Fallos por caída cuando el servidor que contiene el objeto falla.
![Page 14: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/14.jpg)
CUESTIONES DE DISEÑO CUESTIONES DE DISEÑO PARA RMIPARA RMISemántica de invocación al menos una
vez:Fallos por caída cuando el servidor que
contiene el objeto remoto falla.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.
![Page 15: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/15.jpg)
CUESTIONES DE DISEÑO CUESTIONES DE DISEÑO PARA RMIPARA RMISemántica de invocación como
máximo una vez: Previene fallos como
Fallos arbitrarios al asegurar que para cada RMI no se ejecuta el método más de una sola vez.
Fallos de omisión si se pierde la invocación o el mensaje con el resultado.
![Page 16: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/16.jpg)
CUESTIONES DE DISEÑO CUESTIONES DE DISEÑO PARA RMIPARA RMITRANSPARENCIA:
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.
![Page 17: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/17.jpg)
CUESTIONES DE DISEÑO CUESTIONES DE DISEÑO PARA RMIPARA 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
![Page 18: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/18.jpg)
CUESTIONES DE DISEÑO CUESTIONES DE DISEÑO PARA RMIPARA 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.
![Page 19: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/19.jpg)
Petición
Respuesta
Objeto A
Proxy para B Objeto
B
Esqueleto y despachador para la clase de B
Modulo de comunicación
Modulo de comunicación
Modulo de referencia remota
Modulo de referencia remota
IMPLEMENTACION DE RMIIMPLEMENTACION DE RMI
Objetos y módulos involucrados en la invocación de métodos remotosCliente Servido
r
![Page 20: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/20.jpg)
IMPLEMENTACION DE RMIIMPLEMENTACION DE RMIModulo de Comunicación
◦ Es el encargado de transmitir los mensajes de Petición y respuesta entre el cliente y el servidor.
Modulo de Referencia Remota◦ Es responsable de traducir las referencias entre
objetos locales y remotos, y de crear referencias a objetos remotos.
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: Proxy Distribuidor Esqueleto
![Page 21: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/21.jpg)
IMPLEMENTACION DE RMIIMPLEMENTACION DE RMIGeneración de las clases para cada
proxy, distribuidor y esqueleto◦Estas clases se generan
automáticamente mediante un compilador de interfaces.
Programas cliente y servidor◦El Programa servidor contiene las
clases para los distribuidores y esqueletos.
◦El programa cliente contiene las clases para cada proxy.
![Page 22: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/22.jpg)
IMPLEMENTACION DE RMIIMPLEMENTACION DE RMIMétodos factoría
◦Se emplea para hacer referencia a un método que crea objetos remotos
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.
Hilos del servidor◦Para evitar que la ejecución de una
invocación remota retrase la ejecución de otra.
![Page 23: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/23.jpg)
IMPLEMENTACION DE RMIIMPLEMENTACION DE RMIActivació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.
![Page 24: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/24.jpg)
IMPLEMENTACION DE RMIIMPLEMENTACION DE RMIAlmacenes 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: El almacén mantiene algunas raíces persistentes
y cualquier objeto alcanzable desde dichas raíces se define para ser persistente.
El almacén de objetos proporciona algunas clases sobre las cuales se basa la persistencia.
![Page 25: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/25.jpg)
IMPLEMENTACION DE RMIIMPLEMENTACION DE RMIUbicació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.
![Page 26: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/26.jpg)
COMPACTACION COMPACTACION AUTOMATICA DE MEMORIAAUTOMATICA DE MEMORIAMientras 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.
El algoritmo distribuido de compactación automática de memoria de java se basa en el recuento de referencias.
![Page 27: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/27.jpg)
COMPACTACION COMPACTACION AUTOMATICA DE MEMORIAAUTOMATICA DE MEMORIACuando 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.
![Page 28: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/28.jpg)
LLAMADA A UN LLAMADA A UN PROCEDIMIENTO REMOTOPROCEDIMIENTO REMOTO
![Page 29: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/29.jpg)
IntroducciónIntroducciónEs muy similar a la invocación de
un método remoto.RPC se implementa usualmente
sobre un protocolo petición-respuesta.
Se encuentra simplificado por la omisión de referencia a objetos remotos en los mensajes de petición.
![Page 30: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/30.jpg)
Papel de los procedimientos Papel de los procedimientos de resguardo de cliente y de resguardo de cliente y servidor en RPCservidor en RPC
Petición
Respuesta
Procedimiento de resguardo
del cliente
Procedimiento de
servicioModulo de comunicación
Modulo de comunicación
Programa cliente
Distribuidor
Proceso cliente
Proceso servidor
Procedimiento de resguardo
del cliente
![Page 31: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/31.jpg)
Caso de estudio de Sun Caso de estudio de Sun RPCRPCDiseñado para la comunicación
cliente-servidor en el sistema de archivos Sun NTFS.
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.
![Page 32: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/32.jpg)
Caso de estudio de Sun Caso de estudio de Sun RPCRPCLenguaje 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. Sun RPC no permite identificar nombres de
interfaces. 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.
Solo permite un parámetro de entrada. Los parámetros de salida se devuelven como un solo
resultado.
![Page 33: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/33.jpg)
Caso de estudio de Sun Caso de estudio de Sun RPCRPC Enlazado
◦ Para esto Sun RPC lanza el servicio enlazador de puertos en un número de puerto bien conocido en cada computador.
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.
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.
![Page 34: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/34.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (I)(I)“La idea bajo el uso de eventos es
que un objeto pueda reaccionar a un cambio que ocurre en otro objeto”.
Los eventos y las notificaciones son asíncronos.
Por ejemplo al manipular el mouse o una caja de texto , se ven como eventos que provocan cambios en los objetos.
![Page 35: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/35.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (II)(II)Sistemas distribuidos basados en
eventos, usan el paradigma publica-suscribe.
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.
![Page 36: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/36.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (III)(III)Características de los sistemas
distribuidos basados en notificaciones.◦ HeterogéneosPermite 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.
![Page 37: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/37.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (IV)(IV)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.
![Page 38: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/38.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (V)(V)
SISTEMA SIMPLE DE UNA SALA DE CONTRATACIÓN.
![Page 39: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/39.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (VI)(VI)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.
![Page 40: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/40.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (VII)(VII)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).
![Page 41: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/41.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (IIX)(IIX)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.
![Page 42: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/42.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (IX)(IX)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
![Page 43: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/43.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (X)(X)Los participantes en una
notificación de eventos distribuida.
![Page 44: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/44.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (XI)(XI)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.
![Page 45: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/45.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (XII)(XII)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:
![Page 46: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/46.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (XII)(XII)Encaminamiento, hace el
trabajo de enviar las notificaciones a los suscriptores en representación de uno o varios objetos de interés.
Filtrado de notificaciones, puede aplicar filtros, basado en los contenidos de las notificaciones.
![Page 47: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/47.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (XIII)(XIII)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.
![Page 48: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/48.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (XIV)(XIV)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.
![Page 49: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/49.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (XV)(XV)
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 la usa para suscribirse a los eventos.
![Page 50: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/50.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (XVI)(XVI)
RemoteEventListener, interfaz proporciona un método llamado notify. Es implementada por los suscriptores y los agentes terceros.
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.
![Page 51: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/51.jpg)
EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (XVII)(XVII)
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).
![Page 52: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/52.jpg)
CASO DE ESTUDIO JAVA CASO DE ESTUDIO JAVA RMIRMI
![Page 53: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/53.jpg)
Permite que los objetos invoquen métodos sobre objetos remotos, empleando la misma sintaxis que las invocaciones locales.
El servidor proporciona operaciones adicionales al cliente.
Ejemplos de tecnología distribuida son Java RMI y CORBA.
CASO DE ESTUDIO JAVA CASO DE ESTUDIO JAVA RMIRMI
![Page 54: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/54.jpg)
Comunicacion entre Comunicacion entre Tecnologias de objetos Tecnologias de objetos distribuidosdistribuidos
Permiten que cualquier agente de la aplicacion distribuida pueda actuar directamente con objetos situados en host remotos.
![Page 55: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/55.jpg)
Modelo de Objetos Modelo de Objetos DistribuidosDistribuidos
Las interfacez remotas se definen para localizar al objeto remoto.
![Page 56: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/56.jpg)
Interfaces Remotas en JAVA RMI:
Los interfaces definen métodos, mientras que las clases implementan los métodos definidos en los interfaces.
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 CASO DE ESTUDIO JAVA RMIRMI
![Page 57: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/57.jpg)
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 CASO DE ESTUDIO JAVA RMIRMI
![Page 58: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/58.jpg)
Descarga de ClasesLos objetos remotos se comuniquen mediante la invocación remota.
RMIregistryEs el enlazador para Java RMI, contiene: //nombreComputador:puerto/nombreObjetoClase Naming
CASO DE ESTUDIO JAVA CASO DE ESTUDIO JAVA RMIRMI
![Page 59: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/59.jpg)
Programa Servidor
CONSTRUCCIÓN DE CONSTRUCCIÓN DE PROGRAMAS C/SPROGRAMAS C/S
Representa una forma como un objeto remoto que implementa la interfaz. Consta de un método main y una clase sirviente.El método main crea una instancia y lo enlaza en RMI register.La clase sirviente implementa la interfaz.
Clase UnicastRemoteObject proporciona objetos remotos.
Inicio
Método main
Clase Sirviente
RMI register
Interfaz Clase UnicastRemoteObject
RMI SecurityManager
Registra y Desregistra
![Page 60: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/60.jpg)
Programa Cliente:
CONSTRUCCIÓN DE CONSTRUCCIÓN DE PROGRAMAS C/SPROGRAMAS C/S
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
![Page 61: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/61.jpg)
Devolución de LlamadaDevolución de Llamada
El servidor debe informarse cuando termine de una conexión con un cliente.(Objeto de retrollamada.)
Necesita de una serie de RMI sincrónicas de los objetos en las lista.
Devolución de llamada.- El servidor notifica a los clientes acerca de nuevos eventos.
![Page 62: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/62.jpg)
Empleo de la reflexión.-Pasa información en los mensajes con la clase Method.
Clases de java que dan soporte a RMI.
DISEÑO E IMPLEMENTACIÓN DISEÑO E IMPLEMENTACIÓN DE JAVA RMIDE JAVA RMI
Remote Object
RemoteServer
Activatable UnicastRemoteObject
Clase sirviente
![Page 63: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA](https://reader036.fdocuments.mx/reader036/viewer/2022081418/5571f38549795947648e2b9a/html5/thumbnails/63.jpg)
RESUMENRESUMENLos SD basados en eventos
pueden emplearse para permitir que grupos distribuidos de objetos heterogéneos se comuniquen unos con otros.
Mientras que RMI lo único que necesita es implementar una interfaz para recibir las notificaciones y suscripciones a eventos.