Professional Documents
Culture Documents
] ] ] ] ] ] ] ] 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
Aplicaciones, servicios RMI y RPC Protocolo peticin-respuesta Empaquetado y representacin externa de datos UDP y TCP
0LGGOHZDUH
Capas de
USAL-DIA
] 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
] 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
] CORBA CDR
\ Common Data Representation \ Definido en CORBA 2.0 \ Object Management Group (OMG)
USAL-DIA
\ 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
3RVLFLyQ HQ OD VHFXHQFLD 4 bytes GH E\WHV 5 03 47 811 1215 1619 20-23 2427 "Pre" "z___" 6 "Madr" id__" 1934
8QVLJQHG ORQJ
La forma aplanada representa una estructura Qrh con el valor: { <<Prez>>, <<Madrid>>, 1934}
USAL-DIA
USAL-DIA
] Deserializacin
\ Consiste en restablecer el estado de un objeto o un conjunto de objetos desde su estado lineal
USAL-DIA
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
8yvrr
Trvq
uhPrhpv
(espera)
Hrhwr rrh
(continuacin)
USAL-DIA
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
LQW LQW
3HWLFLyQ 5HVSXHVWD
USAL-DIA
Tiempo de espera lmite Eliminacin de mensajes de peticin duplicados Prdida de mensajes de respuesta Historial
USAL-DIA
USAL-DIA
] 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
] 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
Semnticas de invocacin
6HPiQWLFDV GH LQYRFDFLyQ
Reejecutar el procedimiento $O PHQRV XQD YH] Retransmitir respuesta &RPR Pi[LPR XQD YH]
USAL-DIA
] Protocolo de peticin (R: UHTXHVW) ] P.ej. RPCs asncronas ] Semntica pudiera ser
USAL-DIA
] 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
10
] Protocolo de peticin-respuesta (RRA: UHTXHVWUHSO\ DFNQRZOHGJHPHQW UHSO\) ] Semntica como mximo una vez ] til para gestin de historial
USAL-DIA
] Bsqueda de los servidores de descubrimiento en redes espontneas ] Mejores prestaciones basadas en datos replicados
\ Gestin de actualizaciones
USAL-DIA
11
USAL-DIA
USAL-DIA
12
USAL-DIA
] 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
] 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)
USAL-DIA
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
14
Invocacin remota A B
in c ac Invo l loca
Invocacin local
USAL-DIA
USAL-DIA
15
Interfaz remota
{
] CORBA IDL ] Interfaces Java
USAL-DIA
m1 m2 m3
Implementacin
de los mtodos
m4 m5 m6
] Excepciones
\ Fallos por
[ Timeouts [ Propios del mtodo remoto invocado
USAL-DIA
16
USAL-DIA
USAL-DIA
17
Implementacin de RMI
Servidor Peticin
Esqueleto y distribuidor para la clase de B
Objeto remoto B
Respuesta
Mdulo de comunicacin
USAL-DIA
USAL-DIA
18
] 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
\ 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
19
] 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
] Interfaces
\ Por ejemplo en Java: rmic
USAL-DIA
20
\ Seccin de inicializacin
] Los servidores registran sus objetos remotos mediante un nombre ] Los clientes buscan la referencia a objeto remoto por nombre
USAL-DIA
21
USAL-DIA
\ pasivo
[ No est activo actualmente pero puede activarse [ Consta de La implementacin de sus mtodos Su estado en forma empaquetada
USAL-DIA
22
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
[
\ 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
USAL-DIA
USAL-DIA
23
] Migracin
\ Distinto proceso \ Distinto nodo
] Servicio de localizacin
USAL-DIA
] Concesiones en Jini
USAL-DIA
24
Proceso servidor
Programa cliente
Respuesta
Mdulo de comunicacin
Mdulo de comunicacin
Procedimiento de servicio
Distribuidor
USAL-DIA
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
25
USAL-DIA
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
26
USAL-DIA
USAL-DIA
27
USAL-DIA
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
USAL-DIA
28
Notificacin
USAL-DIA
Tipos de eventos
] Tipos ] Atributos
\ \ \ \ Nombre o identificador Operacin Parmetros Tiempo o nmero de secuencia
USAL-DIA
29
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
] 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
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
Objetos observadores
] Encaminamiento ] Filtrado de notificaciones ] Patrones de eventos
\ Relacin entre varios eventos
] Buzones de notificacin
USAL-DIA
31