You are on page 1of 31

Middleware

] ] ] ] ] ] ] ] Introduccin Representacin externa de datos y empaquetado Protocolos de peticin respuesta Comunicacin en grupo Comunicacin entre objetos distribuidos Llamada a un procedimiento remoto Eventos y notificaciones Caso de estudio: Java RMI

USAL-DIA

Ampliacin de Sistemas Operativos 3.1

Introduccin: capas de middleware

Aplicaciones, servicios RMI y RPC Protocolo peticin-respuesta Empaquetado y representacin externa de datos UDP y TCP

0LGGOHZDUH

Capas de

USAL-DIA

Ampliacin de Sistemas Operativos 3.2

Representacin externa de datos y empaquetado (I)


] Aplanado de estructuras de datos
\ Estructura de datos (programas en ejecucin) Secuencia de bytes (mensajes)

] Problemas
\ \ \ \ Estructuras con distintos tipos de datos primitivos Representacin de nmeros en coma flotante Cdigos para representar caracteres (ASCII, Unicode) Ordenacin de nmeros enteros (big-endian, litte-endian)

USAL-DIA

Ampliacin de Sistemas Operativos 3.3

Representacin externa de datos y empaquetado (II)


] Posibilidades
\ Los valores se convierte a un formato externo acordado antes de la transmisin y se revierten al formato local en la recepcin \ Los valores se transmiten segn el formato del emisor, junto con una indicacin del formato utilizado, y el receptor los convierte si es necesario

] Representacin externa de los datos


\ Estndar acordado para la representacin de estructuras de datos y valores primitivos

] Empaquetado (PDUVKDOOLQJ)
\ Tomar una coleccin de temes de datos y ensamblarlos de un modo adecuado para la transmisin de un mensaje

] Desempaquetado (XQPDUVKDOOLQJ)
\ Generar lo valores primitivos desde la representacin de datos externa y reconstruir las estructuras de datos
USAL-DIA Ampliacin de Sistemas Operativos 3.4

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)

] Serializacin de objetos en Java RMI


\ Java Object Serializacion Specification

USAL-DIA

Ampliacin de Sistemas Operativos 3.5

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
Uv Srrrhpvy

rrpr

vt

hh p rrhrq v

longitud (unsigned long-entero largo sin signo-) seguida de los elementos en orden. longitud (unsigned long) seguida de los caracteres en orden (tambin puede tener caracteres anchos-2bytes-). elementos de la cadena en orden (no se especifica la longitud porque es fija). en el orden de declaracin de los componentes. unsigned long (los valores son especificados por el orden declarado). etiqueta de tipo seguida por el miembro seleccionado.
Ampliacin de Sistemas Operativos 3.6

USAL-DIA

Mensaje CDR CORBA


1RWDV VREUH OD UHSUHVHQWDFLyQ /RQJLWXG GHO VWULQJ
<<3pUH]>>

3RVLFLyQ HQ OD VHFXHQFLD 4 bytes GH E\WHV 5 03 47 811 1215 1619 20-23 2427 "Pre" "z___" 6 "Madr" id__" 1934

/RQJLWXG GHO VWULQJ


<<0DGULG>>

8QVLJQHG ORQJ

La forma aplanada representa una estructura Qrh con el valor: { <<Prez>>, <<Madrid>>, 1934}

USAL-DIA

Ampliacin de Sistemas Operativos 3.7

Empaquetado en CORBA: IDL


] Generacin automtica 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)
struct Persona string nombre; string lugar; long ao; };

] Interfaz del compilador CORBA

USAL-DIA

Ampliacin de Sistemas Operativos 3.8

Serializacin de objetos en Java (I)


] En Java RMI, tanto los objetos como los datos primitivos pueden ser pasados como argumentos y resultados de la invocacin de mtodos ] Objeto = instancia de una clase Java
public class Persona implements Serializable { private String nombre; private String lugar; private int ao; public Persona(String unNombre, String unLugar, int unAo) { nombre = unNombre; lugar = unLugar; ao = unAo; };
USAL-DIA Ampliacin de Sistemas Operativos 3.9

Serializacin de objetos en Java (II)


] Serializacin
\ 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

] Deserializacin
\ Consiste en restablecer el estado de un objeto o un conjunto de objetos desde su estado lineal

USAL-DIA

Ampliacin de Sistemas Operativos 3.10

Serializacin de objetos en Java (III)


Persona p = new Persona(Prez, Madrid, 1934);
Resultado simplificado
9DORUHV VHULDOL]DGRV Persona Nmero de versin de 8-bytes 3 1934 int ao 5 Prez java.lang.String nombre: 6 Madrid java.lang.String lugar: ([SOLFDFLyQ 1RPEUH GH OD FODVH Q~PHUR GH YHUVLyQ 1~PHUR WLSR \ QRPEUH GH ODV YDULDEOHV GH LQVWDQFLD 9DORUHV GH ODV YDULDEOHV GH LQVWDQFLD

Serializacin Crear una instancia de la clase ObjectOutputStream Invocar al mtodo writeObject, pasando Persona como argumento Deserializacin Crear una instancia de la clase ObjectInputStream Invocar al mtodo readObject
USAL-DIA Ampliacin de Sistemas Operativos 3.11

Protocolo peticin-respuesta (I)

8yvrr

Trvq

uhPrhpv

Hrhwr rvpvy qhrQrvpv

(espera)
Hrhwr rrh

ejecucin del mtodo sobre el objeto seleccionado


rvhSrrh

(continuacin)

USAL-DIA

Ampliacin de Sistemas Operativos 3.12

Protocolo peticin-respuesta (II)


iyvpirbduhPrhpv SrrPiwrpSrs vvqHrqirbdhtr

enva un mensaje de peticin al objeto remoto y recibe la respuesta. Los argumentos especifican el objeto remoto, el mtodo a invocar y los argumentos de ese mtodo.
iyvpirbdqhrQrvpv0

adquiere una peticin del cliente a travs del puerto del servidor.
iyvpvqrvhSrrhirbdrrhDr6qqru8yvrrvr8yvrr0

enva el mensaje de respuesta al cliente a su direccin de Internet y a su puerto.

tipoMensaje idPeticion referenciaObjeto idMetodo argumentos

LQW  LQW

3HWLFLyQ  5HVSXHVWD

5HPRWH2EMHFW5HI LQW R 0HWKRG  FDGHQD GH E\WHV

USAL-DIA

Ampliacin de Sistemas Operativos 3.13

Modelo de fallos del protocolo peticin-respuesta (I)


] ] ] ]

Tiempo de espera lmite Eliminacin de mensajes de peticin duplicados Prdida de mensajes de respuesta Historial

USAL-DIA

Ampliacin de Sistemas Operativos 3.14

Modelo de fallos del protocolo peticin-respuesta (II)

USAL-DIA

Ampliacin de Sistemas Operativos 3.15

Modelo de fallos: idempotencia

] Operacin idempotente
\ Operacin que puede ser llevada a cabo repetidamente con el mismo efecto que si hubiera sido ejecutada exactamente una sola vez

USAL-DIA

Ampliacin de Sistemas Operativos 3.16

Modelo de fallos: historial

] Historial o histrico
\ Estructura que contiene el registro de los mensajes de respuesta que han sido transmitidos \ El propsito es permitir que el servidor pueda retransmitir los mensajes de respuesta cuando los clientes lo soliciten \ Problemas del coste de almacenamiento

USAL-DIA

Ampliacin de Sistemas Operativos 3.17

Semnticas de invocacin

0HGLGDV GH WROHUDQFLD D IDOORV 5HWUDQVPLVLyQ GH )LOWUDGR PHQVDMH GH SHWLFLyQ GH GXSOLFDGRV No S S No procede No S

6HPiQWLFDV GH LQYRFDFLyQ

5HHMHFXFLyQ GHO SURFHGLPLHQWR R UHWUDQVPLVLyQ GH OD UHVSXHVWD No procede 3XGLHUD VHU

Reejecutar el procedimiento $O PHQRV XQD YH] Retransmitir respuesta &RPR Pi[LPR XQD YH]

USAL-DIA

Ampliacin de Sistemas Operativos 3.18

Protocolos de intercambio de RPC: R

] Protocolo de peticin (R: UHTXHVW) ] P.ej. RPCs asncronas ] Semntica pudiera ser

USAL-DIA

Ampliacin de Sistemas Operativos 3.19

Protocolos de intercambio de RPC: RR

] Protocolo de peticin-respuesta (RR: UHTXHVWUHSO\) ] Programacin de WLPHRXWV y reintentos ] Semntica al menos una vez, si no se filtran los reintentos ] Semntica como mximo una vez si se filtran los reintentos

USAL-DIA

Ampliacin de Sistemas Operativos 3.20

10

Protocolos de intercambio de RPC: RRA

] Protocolo de peticin-respuesta (RRA: UHTXHVWUHSO\ DFNQRZOHGJHPHQW UHSO\) ] Semntica como mximo una vez ] til para gestin de historial

USAL-DIA

Ampliacin de Sistemas Operativos 3.21

Comunicacin en grupo: utilizacin


] Tolerancia a fallos basada en servicios replicados
\ Ejecucin de las mismas operaciones en todos los servidores, de forma que sean consistentes

] Bsqueda de los servidores de descubrimiento en redes espontneas ] Mejores prestaciones basadas en datos replicados
\ Gestin de actualizaciones

] Propagacin de las notificaciones de eventos


\ Descubrimiento de nuevos servicios (Jini)

Operaciones de multidifusin: Multidifusin IP

USAL-DIA

Ampliacin de Sistemas Operativos 3.22

11

Fiabilidad y orden en multidifusin


] Tolerancia a fallos basada en la replicacin de servicios
\ Todas las operaciones o ninguna fiabilidad total

] Bsqueda de los servidores de descubrimiento en redes espontneas


\ Alguna constestacin fiabilidad 1

] Mejores prestaciones mediante datos replicados


\ No son necesarias todas las contestaciones fiabilidad m de n

] Propagacin de las notificaciones de eventos


\ Podra ser necesario el reparto ordenado de varias multidifusiones

Tema 5: Coordinacin y acuerdo entre procesos

USAL-DIA

Ampliacin de Sistemas Operativos 3.23

Comunicacin entre objetos distribuidos


] ] ] ] ] ] El modelo de objetos Objetos distribuidos El modelo de objetos distribuido Cuestiones de diseo para RMI Implementacin de RMI Compactacin automtica de memoria

USAL-DIA

Ampliacin de Sistemas Operativos 3.24

12

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 + mtodos \ Comunicacin entre objetos invocacin de mtodos pasndole argumentos y recibiendo resultados \ Posibilidad de que el lenguaje permita la definicin de objetos en los que las variables de sus instancias estn accesibles de modo directo no permitido en sistemas distribuidos

USAL-DIA

Ampliacin de Sistemas Operativos 3.25

El modelo de objetos (II)


] Referencia a objetos
\ Se puede acceder a objetos mediante referencias de objetos \ Invocar mtodos referencia a objetos + nombre del mtodo + argumentos \ Las referencias a objetos puede ser asignadas a variables, pasadas como argumentos y devueltas como resultados de mtodos

] Interfaces
\ Definicin de las signaturas de un conjunto de mtodos sin especificar su implementacin
[ Tipos de sus argumentos [ Valores devueltos [ Excepciones

\ Un objeto proporciona una interfaz particular si su clase contiene cdigo que implementa los mtodos de esa interfaz \ En Java una clase puede implementar varias interfaces y los mtodos de una interfaz pueden ser implementados por cualquier clase
USAL-DIA Ampliacin de Sistemas Operativos 3.26

13

El modelo de objetos (II)


] Acciones
\ Una accin se inicia en un objeto que invoca un mtodo de otro objeto
[ Puede cambiar el estado del receptor [ Pueden tener lugar ms invocaciones sobre mtodos de otros objetos

] Excepciones
\ Forma limpia de tratar las condiciones de error sin complicar el cdigo \ Cada cabecera de mtodo lista explcitamente como excepciones las condiciones de error que pudiera encontrar, permitiendo a los usuarios del mtodo tratar con ellas (WKURZFDWFK)

] Compactacin automtica de memoria

USAL-DIA

Ampliacin de Sistemas Operativos 3.27

Objetos distribuidos
Estado de un objeto = valores de sus variables de instancia Programa partes separadas = objetos Distribucin fsica de objetos en un S.D extensin natural Arquitectura cliente servidor es el caso ms normal RMI un cliente hace una peticin que implica la invocacin a un mtodo de un objeto ubicado en otro nodo \ Cadenas de invocaciones los objetos en los servidores pueden ser clientes de objetos de otros servidores \ Encapsulacin el estado de un objeto es slo accesible para los mtodos del objeto no es posible que los mtodos no autorizados acten sobre el estado de un objeto \ \ \ \ \

USAL-DIA

Ampliacin de Sistemas Operativos 3.28

14

El modelo de objetos distribuidos (I)


] Invocaciones de mtodos remotas ] Invocaciones de mtodos locales ] Objetos remotos: B,F

Invocacin remota A B

in c ac Invo l loca

C Invocacin local Invocacin remota E D F

Invocacin local

USAL-DIA

Ampliacin de Sistemas Operativos 3.29

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
 ELWV direccin Internet  ELWV nmero de puerto  ELWV tiempo  ELWV nmero de objeto interfaz de objeto remoto

USAL-DIA

Ampliacin de Sistemas Operativos 3.30

15

El modelo de obj. dist. (III): Interfaces remotas


] La clase de un objeto remoto implementa los mtodos de su interfaz remota ] Los objetos en otros procesos pueden invocar solamente los mtodos que pertenezcan a su interfaz remota
Objeto remoto Datos

Interfaz remota

{
] CORBA IDL ] Interfaces Java
USAL-DIA

m1 m2 m3

Implementacin

de los mtodos

m4 m5 m6

Ampliacin de Sistemas Operativos 3.31

El modelo de objetos distribuidos (IV)


] Acciones en un sistema de objetos distribuido
\ Se inicia mediante la invocacin de un mtodo \ Cuando una invocacin cruza los lmites de un proceso o un computado, se emplea RMI

] Compactacin automtica de memoria


\ Cooperacin entre el compactador automtico de memoria local y un mdulo adicional para posibilitar su funcionamiento distribuido

] Excepciones
\ Fallos por
[ Timeouts [ Propios del mtodo remoto invocado

USAL-DIA

Ampliacin de Sistemas Operativos 3.32

16

Cuestiones de diseo RMI (I)


] Semntica de la invocacin RMI
\ Pudiera ser \ Al menos una vez \ Cmo mximo una vez

USAL-DIA

Ampliacin de Sistemas Operativos 3.33

Cuestiones de diseo RMI (II)


] Transparencia
\ Ocultacin del empaquetado \ Ocultacin del paso de mensajes \ Invocacin de mtodo local y remoto idnticas \ Imposibilidad de distinguir fallo de red o fallo del proceso remoto, independientemente de la semntica utilizada recuperacin de esta situacin por los objetos invocantes \ Latencia de una invocacin remota >> latencia de invocacin local minimizacin de interacciones remotas

USAL-DIA

Ampliacin de Sistemas Operativos 3.34

17

Implementacin de RMI

Cliente Proxy Objeto A para B

Servidor Peticin
Esqueleto y distribuidor para la clase de B

Objeto remoto B

Respuesta

Mdulo de Mdulo de referencia remota comunicacin

Mdulo de comunicacin

Mdulo de referencia remota

USAL-DIA

Ampliacin de Sistemas Operativos 3.35

Implementacin de RMI: Mdulo de comunicacin


] Realizan el protocolo de peticin-respuesta ] Proporcionan una semntica de invocacin ] En el servidor selecciona el distribuidor para la clase del objeto que se invoca, pasando su referencia local, que se obtiene del mdulo de referencia remota en respuesta al identificador de objeto remoto en el mensaje de peticin

USAL-DIA

Ampliacin de Sistemas Operativos 3.36

18

Impl. de RMI: Mdulo 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 SUR[\ 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 objeto remoto, que se aade 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 Ampliacin de Sistemas Operativos 3.37

Impl. de RMI: El software de RMI (I)


] Proxy
\ Hace que la invocacin al mtodo remoto sea transparente para los clientes ocultando
[ [ [ [ Detalles de referencia al objeto remoto Empaquetado de los argumentos Desempaquetado de los resultados Envo y recepcin 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 mtodos de la interfaz remota del objeto al que representa

USAL-DIA

Ampliacin de Sistemas Operativos 3.38

19

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 peticin desde el mdulo de comunicacin.
[ LG0HWRGR Seleccin del mtodo apropiado del esqueleto [ Pasa el mensaje de peticin al esqueleto

] Esqueleto
\ Cada servidor tiene un esqueleto para cada clase que represente a un objeto remoto
[ Implementa los mtodos de la interfaz remota para Desempaqueta los argumentos del mensaje de petiticin Invocar al mtodo correspondiente con el objeto remoto Espera finalizacin Empaqueta el resultado, en un mensaje de respuesta

USAL-DIA

Ampliacin de Sistemas Operativos 3.39

Impl. de RMI: Generacin de las clase para


] Proxy ] Distribuidor ] Esqueleto ] Compilador de interfaces
\ CORBA IDL

] Interfaces
\ Por ejemplo en Java: rmic

USAL-DIA

Ampliacin de Sistemas Operativos 3.40

20

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 [ Mtodo main en Java y C++ Creacin de al menos uno de los objetos remotos Otros pueden ser creados a peticin de los clientes Objeto/mtodo factora Registrar objetos remotos en un enlazador (binder)

\ Seccin de inicializacin

] El programa cliente contiene:


\ Clases de cada proxy para todos los objetos remotos que invoque \ Utilizacin de un enlazador para buscar las referencias a mtodos remotos
USAL-DIA Ampliacin de Sistemas Operativos 3.41

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

USAL-DIA

Ampliacin de Sistemas Operativos 3.42

21

Impl. de RMI: Hilos del servidor


] Necesidad de que la ejecucin de una invocacin remota no retrase a otras ] Servidores multihilo
\ Cada invocacin remota un hilo

] Desarrollo adicional ] Control de las ejecuciones concurrentes

USAL-DIA

Ampliacin de Sistemas Operativos 3.43

Impl. de RMI: Activacin de objetos remotos (I)


] Ejemplo inetd lanzamiento bajo demanda ] Objeto remoto
\ activo
[ Disponible para su invocacin en el interior de un proceso en ejecucin

\ pasivo
[ No est activo actualmente pero puede activarse [ Consta de La implementacin de sus mtodos Su estado en forma empaquetada

USAL-DIA

Ampliacin de Sistemas Operativos 3.44

22

Impl. de RMI: Activacin de objetos remotos (II)


] Activacin
[

\ Creacin de un objeto activo desde el objeto pasivo


[

Nueva instancia de su clase Iniciacin 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 estn disponibles para su activacin


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 implementacin ] Java RMI: activador en cada computador servidor

USAL-DIA

Ampliacin de Sistemas Operativos 3.45

Impl. de RMI: Almacenes de objetos persistentes


] Objeto persistente
\ Su vida se encuentra garantizada entre procesos de activacin \ Gestionados por almacenes de objetos persistentes, que almacenan sus estado en forma empaquetada
[ Servicio de objetos persistente CORBA [ Persistent Java

] Estrategia para decidir la desactivacin de objetos

USAL-DIA

Ampliacin de Sistemas Operativos 3.46

23

Impl. de RMI: Ubicacin de objetos


 ELWV direccin Internet  ELWV nmero de puerto  ELWV tiempo  ELWV nmero de objeto interfaz de objeto remoto

] Migracin
\ Distinto proceso \ Distinto nodo

] Servicio de localizacin

USAL-DIA

Ampliacin de Sistemas Operativos 3.47

Compactacin automtica de memoria


] Recuperacin de memoria cuando nadie tenga una referencia a un objeto remoto o local
\ Informacin de creacin/eliminacin de proxys en clientes

] Concesiones en Jini

USAL-DIA

Ampliacin de Sistemas Operativos 3.48

24

Llamada a procedimiento remoto

Proceso cliente Peticin

Proceso servidor

Programa cliente

Procedimiento de resguardo del cliente

Respuesta

Procedimiento de resguardo del servidor

Mdulo de comunicacin

Mdulo de comunicacin

Procedimiento de servicio

Distribuidor

USAL-DIA

Ampliacin de Sistemas Operativos 3.49

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 Semntica al menos una vez Posibilidad de EURDGFDVW Lenguaje de definicin de interfaz: variante XDR Compilador de interfaces: rpcgen lenguaje C

USAL-DIA

Ampliacin de Sistemas Operativos 3.50

25

Sun RPC: Lenguaje de definicin de interfaz (I)


] Sun XDR ] Nmero de programa + nmero de versin en lugar de nombre de interfaz ] Nmero de programa autoridad central ] Definicin de procedimiento signatura y nmero de procedimiento ] Slo un parmetro de entrada ] Slo un parmetro de salida

USAL-DIA

Ampliacin de Sistemas Operativos 3.51

Sun RPC: Lenguaje de definicin de interfaz (II)


FRQVW 0$;  W\SHGHI LQW ,GHQWLILFDGRU$UFKLYR W\SHGHI LQW $SXQWDGRU$UFKLYR W\SHGHI LQW /RQJLWXG VWUXFW 'DWRV ^ LQW ORQJLWXG FKDU EXIHU>0$;@ ` VWUXFW DUJXPHQWRV(VFULEH ^ ,GHQWLILFDGRU$UFKLYR I $SXQWDGRU$UFKLYR SRVLFLyQ 'DWRV GDWRV `

VWUXFW DUJXPHQWRV/HH ^ ,GHQWLILFDGRU$UFKLYR I $SXQWDGRU$UFKLYR SRVLFLyQ /RQJLWXG ORQJLWXG ` SURJUDP /(((6&5,%($5&+,92 ^ YHUVLRQ 9(56,21 ^ YRLG (6&5,%( DUJXPHQWRV(VFULEH  'DWD /(( DUJXPHQWRV/HH  `  ` 

 

USAL-DIA

Ampliacin de Sistemas Operativos 3.52

26

Sun RPC: Compilador de interfaces


] rpcgen
\ Procedimiento de resguardo del cliente (VWXE) \ Procedimiento main del servidor, el distribuidor y el procedimiento de resguardo del servidor (VWXE) \ Procedimientos de empaquetado y desempaquetado XDR para su empleo por el el distribuidor y los VWXEV de cliente y el servidor

USAL-DIA

Ampliacin de Sistemas Operativos 3.53

Sun RPC: enlazado


] Enlazador de puerto (SRUW PDSSHU proceso portmap
\ Arrancado en un nmero de puerto bien conocido de cada computador (/etc/services 111) \ Gestiona un tabla con (rpcinfo p)
[ Nmero de programa [ Nmero de versin [ Nmero de puerto en uso

USAL-DIA

Ampliacin de Sistemas Operativos 3.54

27

Sun RPC: autenticacin


] Mensajes RPC con campos adicionales para informacin de autenticacin entre cliente y servidor ] UNIX: uid + gid ] Construccin de mecanismos de control de accesos a partir de la informacin de autenticacin ] Protocolos de autenticacin
\ \ \ \ \ Ninguno UNIX Clave compartida para firmar mensajes RPC Kerberos RFC 2203

USAL-DIA

Ampliacin de Sistemas Operativos 3.55

Eventos y notificaciones
] Un objeto puede reaccionar a un cambio que ocurre en otro objeto ] Paradigma publica-suscribe
\ Publicacin de eventos que se ofrecen para la observacin por otros objetos anunciante \ Suscripcin si se desea recibir algn tipo de evento registrar el inters por un tipo de evento subscriptor

] Notificaciones o anuncios
\ Objetos que representan los eventos

] Caractersticas de S.D. Basados en eventos


\ Heterogneos \ Asncronos

USAL-DIA

Ampliacin de Sistemas Operativos 3.56

28

Sistema simple de una sala de contratacin


Computador del tratante Tratante Notificacin Fuente externa Computador del tratante Notificacin Proveedor de informacin Notificacin Tratante

Notificacin

Notificacin Notificacin Computador del tratante

Notificacin Computador del tratante Notificacin

Proveedor de informacin Notificacin Tratante Fuente externa Notificacin Tratante

USAL-DIA

Ampliacin de Sistemas Operativos 3.57

Tipos de eventos
] Tipos ] Atributos
\ \ \ \ Nombre o identificador Operacin Parmetros Tiempo o nmero de secuencia

USAL-DIA

Ampliacin de Sistemas Operativos 3.58

29

Objetos y notificacin de eventos (I)

Servicio de eventos Objeto de inters 1. Objeto de inters 2. Objeto de inters 3. Observador Notificacin Suscriptor Notificacin Notificacin Suscriptor Suscriptor

Notificacin Observador

USAL-DIA

Ampliacin de Sistemas Operativos 3.59

Objetos y notificacin de eventos (II)


] El objeto de inters
\ Experimenta cambios de estado, como resultado de las operaciones que se invocan sobre l

] Evento
\ Aparece en un objeto de inters como resultado de la finalizacin de la ejecucin de un mtodo

] Notificacin
\ Objeto que contiene informacin sobre un evento

] Suscriptor
\ Objeto que se ha suscrito a algn tipo de evento en otro objeto

] Objetos observadores
\ Objeto que desacopla un objeto de inters de sus suscriptores

] Anunciantes
\ Objeto que declara que generar notificaciones de tipos concretos de eventos

USAL-DIA

Ampliacin de Sistemas Operativos 3.60

30

Semntica de reparto
] Multidifusin IP
\ No hay garantas de que cualquier suscriptor reciba un mensaje de notificacin concreto

] Multidifusin fiable ] Envo fiable a un servidor ] Multidifusin no fiable ] Recuperacin de notificaciones perdidas desde el servidor

USAL-DIA

Ampliacin de Sistemas Operativos 3.61

Objetos observadores
] Encaminamiento ] Filtrado de notificaciones ] Patrones de eventos
\ Relacin entre varios eventos

] Buzones de notificacin

USAL-DIA

Ampliacin de Sistemas Operativos 3.62

31

You might also like