Middleware - avellano.usal.esavellano.usal.es/~luis/aso/doc/aso03.pdf · disco o para ser...
Transcript of Middleware - avellano.usal.esavellano.usal.es/~luis/aso/doc/aso03.pdf · disco o para ser...
1
USAL-DIA Ampliación de Sistemas Operativos 3.1
Middleware
� Introducción� Representación externa de datos y empaquetado� Protocolos de petición respuesta� Comunicación en grupo� Comunicación entre objetos distribuidos� Llamada a un procedimiento remoto� Eventos y notificaciones� Caso de estudio: Java RMI
USAL-DIA Ampliación de Sistemas Operativos 3.2
Introducción: capas de middleware
Aplicaciones, servicios
Capas de 0LGGOHZDUH
Protocolo petición-respuesta
Empaquetado y representación externa de datos
UDP y TCP
RMI y RPC
2
USAL-DIA Ampliación de Sistemas Operativos 3.3
Representación externa de datos y empaquetado (I)
� “Aplanado” de estructuras de datos� Estructura de datos (programas en ejecución) � Secuencia de bytes
(mensajes)
� Problemas� Estructuras con distintos tipos de datos primitivos
� Representación de números en coma flotante� Códigos para representar caracteres (ASCII, Unicode)
� Ordenación de números enteros (big-endian, litte-endian)
USAL-DIA Ampliación de Sistemas Operativos 3.4
Representación externa de datos y empaquetado (II)
� Posibilidades� Los valores se convierte a un formato externo acordado antes de la
transmisión y se revierten al formato local en la recepción
� Los valores se transmiten según el formato del emisor, junto con una indicación del formato utilizado, y el receptor los convierte si es necesario
� Representación externa de los datos� Estándar acordado para la representación de estructuras de datos y valores
primitivos
� Empaquetado (����������)� Tomar una colección de ítemes de datos y ensamblarlos de un modo
adecuado para la transmisión de un mensaje
� Desempaquetado (�����������)� Generar lo valores primitivos desde la representación de datos externa y
reconstruir las estructuras de datos
3
USAL-DIA Ampliación de Sistemas Operativos 3.5
Posibilidades de rep. ext. datos y empaquetado
� XDR� eXternal Data Representation
� RFC1832
� Sun NFS
� CORBA CDR� Common Data Representation
� Definido en CORBA 2.0
� Object Management Group (OMG)
� Serialización de objetos en Java RMI � Java Object Serializacion Specification
USAL-DIA Ampliación de Sistemas Operativos 3.6
Tipos en CORBA CDR
� Puede representar todos los tipos de datos que se pueden utilizar como argumentos o como resultados en las invocaciones remotas de CORBA� Tipos primitivos
� Short (16 bits), long (32 bits), unsigned short, unsigned long, float (32 bits), double (64 bits), char, boolean, octet (8 bits) y any
� Tipos compuestos
7LSR� 5HSUHVHQWDFLyQ
VHTXHQFH longitud (unsigned long-entero largo sin signo-) seguida de los elementos en orden.
VWULQJ longitud (unsigned long) seguida de los caracteres en orden (también puede tener caracteres anchos-2bytes-).
DUUD\ elementos de la cadena en orden (no se especifica la longitud porque es fija).VWUXFW en el orden de declaración de los componentes.HQXPHUDWHG unsigned long (los valores son especificados por el orden declarado).XQLRQ etiqueta de tipo seguida por el miembro seleccionado.
4
USAL-DIA Ampliación de Sistemas Operativos 3.7
Mensaje CDR CORBA
La forma aplanada representa una estructura 3HUVRQD con el valor: { <<Pérez>>, <<Madrid>>, 1934}
0–34–78–1112–15
16–1920-23
24–27
5
"Pére""z___"
6"Madr"
”id__"
1934
���� ��� �������� �� ����������� 4 bytes
������������������������ ���
������ ���������
<<�����>>
������ ���������
<<�������>>
�����������
USAL-DIA Ampliación de Sistemas Operativos 3.8
Empaquetado en CORBA: IDL
� Generación automática del empaquetado a partir de las especificaciones de los tipos de datos de los ítemes que tienen que ser transmitidos en un mensaje
� CORBA IDL (Interface Definition Language)
� Interfaz del compilador CORBA
struct Personastring nombre;string lugar;long año;
};
5
USAL-DIA Ampliación de Sistemas Operativos 3.9
Serialización de objetos en Java (I)
� En Java RMI, tanto los objetos como los datos primitivos pueden ser pasados como argumentos y resultados de la invocación de métodos
� Objeto = instancia de una clase Java
public class Persona implements Serializable {private String nombre;private String lugar;private int año;public Persona(String unNombre, String unLugar, int unAño) {nombre = unNombre;lugar = unLugar;año = unAño;
};
USAL-DIA Ampliación de Sistemas Operativos 3.10
Serialización de objetos en Java (II)
� Serialización � Consiste en “aplanar” un objeto o un conjunto relacionado de objetos
para obtener una forma lineal adecuada para ser almacenada en disco o para ser transmitida en un mensaje, por ejemplo como argumento o resultado de un RMI
� Deserialización � Consiste en restablecer el estado de un objeto o un conjunto de
objetos desde su estado lineal
6
USAL-DIA Ampliación de Sistemas Operativos 3.11
Serialización de objetos en Java (III)
Persona p = new Persona(“Pérez”, “Madrid”, 1934);
Resultado simplificado
��������������������
Persona
3
1934
Número de versión de 8-bytes
int año
5 Pérez
java.lang.String nombre:
6 Madrid
java.lang.String lugar:
����� � ���
������ ������ ���� ��!�������"������
�!���� ����� �������� �������"������������������ ��
������� ������ "������������������ ��
•Serialización•Crear una instancia de la clase ObjectOutputStream•Invocar al método writeObject, pasando Persona como argumento
•Deserialización•Crear una instancia de la clase ObjectInputStream•Invocar al método readObject
USAL-DIA Ampliación de Sistemas Operativos 3.12
Protocolo petición-respuesta (I)
0HQVDMH
6HUYLGRU&OLHQWH
KD]2SHUDFLRQ
(espera)
(continuación)
0HQVDMH
UHVSXHVWD
GDPH3HWLFLRQSHWLFLyQ
ejecución del método sobre
el objeto seleccionado
HQYLD5HVSXHVWD
7
USAL-DIA Ampliación de Sistemas Operativos 3.13
Protocolo petición-respuesta (II)
SXEOLF�E\WH>�@�KD]2SHUDFLRQ �5HPRWH2EMHFW5HI R��LQW�LG0HWRGR��E\WH>�@�DUJXPHQWRV�
envía un mensaje de petición al objeto remoto y recibe la respuesta.Los argumentos especifican el objeto remoto, el método a invocar y losargumentos de ese método.
SXEOLF�E\WH>�@�GDPH3HWLFLRQ����
adquiere una petición del cliente a través del puerto del servidor.
SXEOLF�YRLG�HQYLD5HVSXHVWD�E\WH>�@�UHVSXHVWD��,QHW$GGUHVV�KRVW&OLHQWH��LQW�SXHUWR&OLHQWH��
envía el mensaje de respuesta al cliente a su dirección de Internet y a su puerto.
tipoMensaje
idPeticion
referenciaObjeto
idMetodo
argumentos
��� #$�%����� ��� �&%�'�������(
���
'�����)�*� �'�+
��� ��������
,,� ����� ��������
USAL-DIA Ampliación de Sistemas Operativos 3.14
Modelo de fallos del protocolo petición-respuesta (I)
� Tiempo de espera límite� Eliminación de mensajes de petición duplicados� Pérdida de mensajes de respuesta� Historial
8
USAL-DIA Ampliación de Sistemas Operativos 3.15
Modelo de fallos del protocolo petición-respuesta (II)
USAL-DIA Ampliación de Sistemas Operativos 3.16
Modelo de fallos: idempotencia
� Operación idempotente� Operación que puede ser llevada
a cabo repetidamente con el mismo efecto que si hubiera sido ejecutada exactamente una sola vez
9
USAL-DIA Ampliación de Sistemas Operativos 3.17
Modelo de fallos: historial
� Historial o histórico� Estructura que contiene el
registro de los mensajes de respuesta que han sido transmitidos
� El propósito es permitir que el servidor pueda retransmitir los mensajes de respuesta cuando los clientes lo soliciten
� Problemas del coste de almacenamiento
USAL-DIA Ampliación de Sistemas Operativos 3.18
Semánticas de invocación
������������������ �����+����� -��.��� ��������"� � ���
'��������������������*��������� ���
/��������������� ����
'��*� ����������� ���������������������������������������
No
Sí
Sí
No procede
No
Sí
No procede
Reejecutar el procedimiento
Retransmitir respuesta 0�����.��������"��
1�����������"��
����������
10
USAL-DIA Ampliación de Sistemas Operativos 3.19
Protocolos de intercambio de RPC: R
� Protocolo de petición (R: ��2���)� P.ej. RPCs asíncronas� Semántica “pudiera ser”
USAL-DIA Ampliación de Sistemas Operativos 3.20
Protocolos de intercambio de RPC: RR
� Protocolo de petición-respuesta (RR: ��2���3�����)
� Programación de ������� y reintentos
� Semántica “al menos una vez”, si no se filtran los reintentos
� Semántica “como máximo una vez” si se filtran los reintentos
11
USAL-DIA Ampliación de Sistemas Operativos 3.21
Protocolos de intercambio de RPC: RRA
� Protocolo de petición-respuesta (RRA: ��2���3�����3� 4��5�������� �����)
� Semántica “como máximo una vez”
� Útil para gestión de historial
USAL-DIA Ampliación de Sistemas Operativos 3.22
Comunicación en grupo: utilización
� Tolerancia a fallos basada en servicios replicados� Ejecución de las mismas operaciones en todos los servidores, de
forma que sean consistentes
� Búsqueda de los servidores de descubrimiento en redes espontáneas
� Mejores prestaciones basadas en datos replicados� Gestión de actualizaciones
� Propagación de las notificaciones de eventos� Descubrimiento de nuevos servicios (Jini)
Operaciones de multidifusión: Multidifusión IP
12
USAL-DIA Ampliación de Sistemas Operativos 3.23
Fiabilidad y orden en multidifusión
� Tolerancia a fallos basada en la replicación de servicios� Todas las operaciones o ninguna � fiabilidad total
� Búsqueda de los servidores de descubrimiento en redes espontáneas� Alguna constestación � fiabilidad 1
� Mejores prestaciones mediante datos replicados� No son necesarias todas las contestaciones �fiabilidad m de n
� Propagación de las notificaciones de eventos� Podría ser necesario el reparto ordenado de varias multidifusiones
Tema 5: Coordinación y acuerdo entre procesos
USAL-DIA Ampliación de Sistemas Operativos 3.24
Comunicación entre objetos distribuidos
� El modelo de objetos� Objetos distribuidos� El modelo de objetos distribuido� Cuestiones de diseño para RMI� Implementación de RMI� Compactación automática de memoria
13
USAL-DIA Ampliación de Sistemas Operativos 3.25
El modelo de objetos (I)
� Programas orientados a objeto (p. ej. Java, C++)� Consta de conjuntos de objetos que interaccionan entre ellos
� Objeto = datos o atributos + métodos
� Comunicación entre objetos � invocación de métodos pasándole argumentos y recibiendo resultados
� Posibilidad de que el lenguaje permita la definición de objetos en los que las variables de sus instancias estén accesibles de modo directo � no permitido en sistemas distribuidos
USAL-DIA Ampliación de Sistemas Operativos 3.26
El modelo de objetos (II)
� Referencia a objetos� Se puede acceder a objetos mediante referencias de objetos� Invocar métodos � referencia a objetos + nombre del método +
argumentos� Las referencias a objetos puede ser asignadas a variables, pasadas
como argumentos y devueltas como resultados de métodos
� Interfaces� Definición de las signaturas de un conjunto de métodos sin especificar
su implementación� Tipos de sus argumentos� Valores devueltos� Excepciones
� Un objeto proporciona una interfaz particular si su clase contiene código que implementa los métodos de esa interfaz
� En Java una clase puede implementar varias interfaces y los métodos de una interfaz pueden ser implementados por cualquier clase
14
USAL-DIA Ampliación de Sistemas Operativos 3.27
El modelo de objetos (II)
� Acciones� Una acción se inicia en un objeto que invoca un método de otro objeto
� Puede cambiar el estado del receptor� Pueden tener lugar más invocaciones sobre métodos de otros objetos
� Excepciones� Forma limpia de tratar las condiciones de error sin complicar el código
� Cada cabecera de método lista explícitamente como excepciones las condiciones de error que pudiera encontrar, permitiendo a los usuarios del método tratar con ellas (����5, �� �)
� Compactación automática de memoria
USAL-DIA Ampliación de Sistemas Operativos 3.28
Objetos distribuidos
� Estado de un objeto = valores de sus variables de instancia
� Programa � partes separadas = objetos� Distribución física de objetos en un S.D � extensión natural
� Arquitectura cliente servidor es el caso más normal
� RMI � un cliente hace una petición que implica la invocación a un método de un objeto ubicado en otro nodo
� Cadenas de invocaciones � los objetos en los servidores pueden ser clientes de objetos de otros servidores
� Encapsulación � el estado de un objeto es sólo accesible para los métodos del objeto � no es posible que los métodos no autorizados actúen sobre el estado de un objeto
15
USAL-DIA Ampliación de Sistemas Operativos 3.29
El modelo de objetos distribuidos (I)
� Invocaciones de métodos remotas� Invocaciones de métodos locales� Objetos remotos: B,F
remota localInvocación
remotaInvocación
Invocación
Invocación
Invocaciónlocal
localA B
C
D
EF
USAL-DIA Ampliación de Sistemas Operativos 3.30
El modelo de obj. dist. (II): Referencia a objetos remotos
� Referencia a objeto remoto:� Identificador que puede usarse a lo largo de todo un sistema
distribuido para referirse a un objeto remoto particular único
direcciónInternet
númerode puerto
tiempo número deobjeto
interfaz de objeto remoto
67����� 67����� 67����� 67�����
16
USAL-DIA Ampliación de Sistemas Operativos 3.31
El modelo de obj. dist. (III): Interfaces remotas
� La clase de un objeto remoto implementa los métodos de su interfaz remota
� Los objetos en otros procesos pueden invocar solamente los métodos que pertenezcan a su interfaz remota
remotaInterfaz
m1m2m3
m4m5m6
Datos
Implementación
Objeto remoto
{ de los métodos
� CORBA IDL� Interfaces Java
USAL-DIA Ampliación de Sistemas Operativos 3.32
El modelo de objetos distribuidos (IV)
� Acciones en un sistema de objetos distribuido� Se inicia mediante la invocación de un método
� Cuando una invocación cruza los límites de un proceso o un computado, se emplea RMI
� Compactación automática de memoria� Cooperación entre el compactador automático de memoria local y un
módulo adicional para posibilitar su funcionamiento distribuido
� Excepciones� Fallos por
� Timeouts� Propios del método remoto invocado
17
USAL-DIA Ampliación de Sistemas Operativos 3.33
Cuestiones de diseño RMI (I)
� Semántica de la invocación RMI� “Pudiera ser”
� “Al menos una vez”
� “Cómo máximo una vez”
USAL-DIA Ampliación de Sistemas Operativos 3.34
Cuestiones de diseño RMI (II)
� Transparencia� Ocultación del empaquetado
� Ocultación del paso de mensajes
� Invocación de método local y remoto idénticas
� Imposibilidad de distinguir fallo de red o fallo del proceso remoto, independientemente de la semántica utilizada � recuperación de esta situación por los objetos invocantes
� Latencia de una invocación remota >> latencia de invocación local �minimización de interacciones remotas
18
USAL-DIA Ampliación de Sistemas Operativos 3.35
Implementación de RMI
Objeto A remoto BEsqueleto yPetición
Proxy para B
Respuesta
Módulo deMódulo de Módulo de Módulo decomunicacióncomunicaciónreferencia remota referencia remota
para la clase de B
distribuidor
ObjetoCliente Servidor
USAL-DIA Ampliación de Sistemas Operativos 3.36
Implementación de RMI: Módulo de comunicación
� Realizan el protocolo de petición-respuesta� Proporcionan una semántica de invocación� En el servidor selecciona el distribuidor para la clase del
objeto que se invoca, pasando su referencia local, que se obtiene del módulo de referencia remota en respuesta al identificador de objeto remoto en el mensaje de petición
19
USAL-DIA Ampliación de Sistemas Operativos 3.37
Impl. de RMI: Módulo de referencia remota
� Traduce las referencias entre objetos locales y remotos, y crea las referencias a objetos remotos
� Tabla de objetos remotos � correspondencia entre referencias a objetos locales en ese proceso y las referencias a objetos remotos� Entradas por cada objeto remoto implementado por el proceso� Una entrada para cada ����� local
� Acciones� Cuando se pasa un objeto remoto por primera vez, como argumento o
resultado, se le pide al MRR que cree una referencia a un objetoremoto, que se añade a la tabla
� Cuando llega una referencia a un objeto remoto, en un mensaje de P o R, se le pide al MRR la referencia al objeto local correspondiente, que se referirá a un proxy o a un objeto remoto
USAL-DIA Ampliación de Sistemas Operativos 3.38
Impl. de RMI: El software de RMI (I)
� Proxy� Hace que la invocación al método remoto sea transparente para los
clientes ocultando� Detalles de referencia al objeto remoto� Empaquetado de los argumentos� Desempaquetado de los resultados
� Envío y recepción de los mensajes desde el cliente
� Hay uno por cada objeto remoto del que el cliente disponga de una referencia de objeto remoto� Implementa los métodos de la interfaz remota del objeto al que representa
20
USAL-DIA Ampliación de Sistemas Operativos 3.39
Impl. de RMI: El software de RMI (II)
� Distribuidor� Cada servidor tiene un distribuidor para cada clase que represente a
un objeto remoto� Recibe el mensaje de petición desde el módulo de comunicación.
� �������� � Selección del método apropiado del esqueleto� Pasa el mensaje de petición al esqueleto
� Esqueleto� Cada servidor tiene un esqueleto para cada clase que represente a un
objeto remoto� Implementa los métodos de la interfaz remota para
• Desempaqueta los argumentos del mensaje de petitición• Invocar al método correspondiente con el objeto remoto• Espera finalización• Empaqueta el resultado, en un mensaje de respuesta
USAL-DIA Ampliación de Sistemas Operativos 3.40
Impl. de RMI: Generación de las clase para
� Proxy� Distribuidor � Esqueleto
� Compilador de interfaces� CORBA IDL
� Interfaces � Por ejemplo en Java: rmic
21
USAL-DIA Ampliación de Sistemas Operativos 3.41
Impl. de RMI: Programas cliente y servidor
� El programa servidor contiene:� Clases
� Distribuidores� Esqueletos� Implementaciones de las clases de todos los objetos remotos a los que da
soporte
� Sección de inicialización� Método main en Java y C++
• Creación de al menos uno de los objetos remotos• Otros pueden ser creados a petición de los clientes
– Objeto/método factoría• Registrar objetos remotos en un enlazador (binder)
� El programa cliente contiene:� Clases de cada proxy para todos los objetos remotos que invoque� Utilización de un enlazador para buscar las referencias a métodos
remotos
USAL-DIA Ampliación de Sistemas Operativos 3.42
Impl. de RMI: El enlazador (binder)
� Modo de obtener referencia a un objeto remoto para al menos uno de los objetos remotos alojados en el servidor
� Servicio separado que gestiona una tabla� Nombre textual – referencia a objeto remoto
� Los servidores registran sus objetos remotos mediante un nombre
� Los clientes buscan la referencia a objeto remoto por nombre
22
USAL-DIA Ampliación de Sistemas Operativos 3.43
Impl. de RMI: Hilos del servidor
� Necesidad de que la ejecución de una invocación remota no retrase a otras
� Servidores multihilo� Cada invocación remota � un hilo
� Desarrollo adicional
� Control de las ejecuciones concurrentes
USAL-DIA Ampliación de Sistemas Operativos 3.44
Impl. de RMI: Activación de objetos remotos (I)
� Ejemplo inetd � lanzamiento bajo demanda � Objeto remoto
� activo � Disponible para su invocación en el interior de un proceso en ejecución
� pasivo� No está activo actualmente pero puede activarse� Consta de
• La implementación de sus métodos
• Su estado en forma empaquetada
23
USAL-DIA Ampliación de Sistemas Operativos 3.45
Impl. de RMI: Activación de objetos remotos (II)
� Activación� Creación de un objeto activo desde el objeto pasivo
[ Nueva instancia de su clase[ Iniciación de sus variables de instancia desde el estado almacenado[ Un objeto pasivo puede activarse bajo demanda
� Un activador es responsable de� Registrar los objetos pasivos que están disponibles para su activación
[ Nombres de servidores + URL o nombre de archivo de objeto pasivo
� Arrancar procesos de servicio con nombre y activar los objetos remotos de su interior
� Mantener la pista de las ubicaciones de los servidores de los objetos remotos que ya han sido activados
� CORBA: repositorio de implementación� Java RMI: activador en cada computador servidor
USAL-DIA Ampliación de Sistemas Operativos 3.46
Impl. de RMI: Almacenes de objetos persistentes
� Objeto persistente� Su vida se encuentra garantizada entre procesos de activación
� Gestionados por almacenes de objetos persistentes, que almacenansus estado en forma empaquetada� Servicio de objetos persistente CORBA� Persistent Java
� Estrategia para decidir la desactivación de objetos
24
USAL-DIA Ampliación de Sistemas Operativos 3.47
Impl. de RMI: Ubicación de objetos
� Migración� Distinto proceso
� Distinto nodo
� Servicio de localización
direcciónInternet
númerode puerto
tiempo número deobjeto
interfaz de objeto remoto
67����� 67����� 67����� 67�����
USAL-DIA Ampliación de Sistemas Operativos 3.48
Compactación automática de memoria
� Recuperación de memoria cuando nadie tenga una referencia a un objeto remoto o local� Información de creación/eliminación de proxys en clientes
� Concesiones en Jini
25
USAL-DIA Ampliación de Sistemas Operativos 3.49
Llamada a procedimiento remoto
Programa
Petición
Respuesta
Módulo deMódulo de comunicacióncomunicación Distribuidor
Procedimiento
Procedimiento deresguardo del
Proceso cliente Proceso servidor
de serviciocliente
cliente
Procedimiento deresguardo del
servidor
USAL-DIA Ampliación de Sistemas Operativos 3.50
Sun RPC
� RFC 1831� Sistema de archivos en red Sun NFS � Sun RPC = ONC RPC (Open Network Computing)� Se proporciona como parte de sistemas UNIX� UDP o TCP� Semántica “al menos una vez”� Posibilidad de ����� ���� Lenguaje de definición de interfaz: variante XDR� Compilador de interfaces: rpcgen � lenguaje C
26
USAL-DIA Ampliación de Sistemas Operativos 3.51
Sun RPC: Lenguaje de definición de interfaz (I)
� Sun XDR� Número de programa + número de versión en lugar de
nombre de interfaz� Número de programa � autoridad central� Definición de procedimiento � signatura y número de
procedimiento� Sólo un parámetro de entrada� Sólo un parámetro de salida
USAL-DIA Ampliación de Sistemas Operativos 3.52
Sun RPC: Lenguaje de definición de interfaz (II)
������18�%�&$$$9������+�����:�����+� ����1� ��"�9������+�����1�������1� ��"�9������+�����������9��� ��;���� <
����������9 ��� �+��=�18>9
?9��� ������������ ���� <
:�����+� ����1� ��"� +91�������1� ��"������ ���9;����������9
?9
��� ������������� <:�����+� ����1� ��"� +91�������1� ��"������ ���9�������������9
?9
�����������-0':@�1'0A:�)�<"���������'-:)��<
"�����-0':@�#���������� ����(%&9 &;�������#�����������(%79 7
?%79?�%�BBBB9
27
USAL-DIA Ampliación de Sistemas Operativos 3.53
Sun RPC: Compilador de interfaces
� rpcgen� Procedimiento de resguardo del cliente (���)
� Procedimiento main del servidor, el distribuidor y el procedimiento de resguardo del servidor (���)
� Procedimientos de empaquetado y desempaquetado XDR para su empleo por el el distribuidor y los ���� de cliente y el servidor
USAL-DIA Ampliación de Sistemas Operativos 3.54
Sun RPC: enlazado
� Enlazador de puerto (�����������( � proceso portmap� Arrancado en un número de puerto bien conocido de cada
computador (/etc/services � 111)
� Gestiona un tabla con (rpcinfo –p)� Número de programa � Número de versión � Número de puerto en uso
28
USAL-DIA Ampliación de Sistemas Operativos 3.55
Sun RPC: autenticación
� Mensajes RPC con campos adicionales para información de autenticación entre cliente y servidor
� UNIX: uid + gid� Construcción de mecanismos de control de accesos a partir
de la información de autenticación� Protocolos de autenticación
� Ninguno
� UNIX
� Clave compartida para firmar mensajes RPC
� Kerberos� RFC 2203
USAL-DIA Ampliación de Sistemas Operativos 3.56
Eventos y notificaciones
� Un objeto puede reaccionar a un cambio que ocurre en otro objeto
� Paradigma publica-suscribe� Publicación de eventos que se ofrecen para la observación por otros
objetos �anunciante
� Suscripción si se desea recibir algún tipo de evento � registrar el interés por un tipo de evento � subscriptor
� Notificaciones o anuncios � Objetos que representan los eventos
� Características de S.D. Basados en eventos� Heterogéneos
� Asíncronos
29
USAL-DIA Ampliación de Sistemas Operativos 3.57
Sistema simple de una sala de contratación
Computador del tratante
Proveedor deinformación
Tratante
Fuenteexterna
Fuenteexterna
Proveedor deinformación
Tratante
TratanteTratante
Notificación
Notificación
Notificación
Notificación
NotificaciónNotificación
Notificación
NotificaciónNotificación
Notificación
Computador del tratante Computador del tratante
Computador del tratante
USAL-DIA Ampliación de Sistemas Operativos 3.58
Tipos de eventos
� Tipos� Atributos
� Nombre o identificador
� Operación
� Parámetros
� Tiempo o número de secuencia
30
USAL-DIA Ampliación de Sistemas Operativos 3.59
Objetos y notificación de eventos (I)
SuscriptorObservadorObjeto de interés
Servicio de eventos
Objeto de interés
Objeto de interés Observador
Suscriptor
Suscriptor
3.
1.
2. Notificación
Notificación
Notificación
Notificación
USAL-DIA Ampliación de Sistemas Operativos 3.60
Objetos y notificación de eventos (II)
� El objeto de interés� Experimenta cambios de estado, como resultado de las operaciones que se
invocan sobre él
� 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 sobre un evento
� Suscriptor� Objeto que se ha suscrito a algún tipo de evento en otro objeto
� Objetos observadores� Objeto que desacopla un objeto de interés de sus suscriptores
� Anunciantes� Objeto que declara que generará notificaciones de tipos concretos de eventos
31
USAL-DIA Ampliación de Sistemas Operativos 3.61
Semántica de reparto
� Multidifusión IP� No hay garantías de que cualquier suscriptor reciba un mensaje de
notificación concreto
� Multidifusión fiable
� Envío fiable a un servidor� Multidifusión no fiable� Recuperación de notificaciones perdidas desde el servidor
USAL-DIA Ampliación de Sistemas Operativos 3.62
Objetos observadores
� Encaminamiento
� Filtrado de notificaciones
� Patrones de eventos� Relación entre varios eventos
� Buzones de notificación