Escolar Documentos
Profissional Documentos
Cultura Documentos
INVOCACIÓN REMOTA
INTEGRANTES:
DAVID ALVAREZ
LUIS ALVEAR
OLGA AVALOS
JUAN PABLO CHIMBORAZO
INTRODUCCIÓN (I)
MODELOS DE PROGRAMACIÓN.
Proxy
Objeto A para B Esqueleto y Objeto B
Petición despachador para
la clase de B
Respuesta
Respuesta
Procedimiento de Procedimiento de
resguardo del resguardo del
cliente cliente
Procedimiento
Programa cliente Modulo de Modulo de Distribuidor de servicio
comunicación comunicación
Caso de estudio de Sun RPC
Diseñ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.
Caso de estudio de Sun RPC
Lenguaje de definición de interfaz
◦ Sun XDR Puede utilizarse para definir una
interfaz de servicio para Sun RPC especificando
un conjunto de definiciones de procedimiento
junto a las definiciones de tipos que la soportan.
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.
Caso de estudio de Sun RPC
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.
EVENTOS Y NOTIFICACIONES
(I)
“La idea bajo el uso de eventos es que un
objeto pueda reaccionar a un cambio que
ocurre en otro objeto”.
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.
EVENTOS Y NOTIFICACIONES
(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.
EVENTOS Y NOTIFICACIONES
(III)
Características de los sistemas
distribuidos basados en notificaciones.
◦ Heterogéneos
Permite hacer funcionar conjuntamente aquellos
componentes del sistema distribuido que no han
sido diseñados con características de
interoperabilidad
Se requiere que los objetos generadores de eventos
publiquen los tipos de eventos que ofrecen
Se necesita que otros objetos se suscriban a los
eventos y proporcionen una interfaz para recibir
las notificaciones.
EVENTOS Y NOTIFICACIONES
(IV)
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.
EVENTOS Y NOTIFICACIONES
(V)
SISTEMA SIMPLE DE UNA SALA DE
CONTRATACIÓN.
EVENTOS Y NOTIFICACIONES
(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.
EVENTOS Y NOTIFICACIONES
(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).
EVENTOS Y NOTIFICACIONES
(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.
EVENTOS Y NOTIFICACIONES
(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
EVENTOS Y NOTIFICACIONES
(X)
Los participantes en una notificación
de eventos distribuida.
EVENTOS Y NOTIFICACIONES
(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.
EVENTOS Y NOTIFICACIONES
(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:
EVENTOS Y NOTIFICACIONES
(XII)
Encaminamiento, hace el trabajo de
enviar las notificaciones a los suscriptores
en representación de uno o varios objetos
de interés.
Filtrado de notificaciones, puede aplicar
filtros, basado en los contenidos de las
notificaciones.
EVENTOS Y NOTIFICACIONES
(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.
EVENTOS Y NOTIFICACIONES
(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.
EVENTOS Y NOTIFICACIONES
(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).
Los interfaces definen métodos, mientras que las clases implementan los
métodos definidos en los interfaces.
RMIregistry
Es el enlazador para Java RMI, contiene:
//nombreComputador:puerto/nombreObjeto
Clase Naming
CONSTRUCCIÓN DE
PROGRAMAS C/S
Programa Servidor Representa una forma como un objeto
remoto que implementa la interfaz.
Inicio Consta de un método main y una clase
sirviente.
El método main crea una instancia y
Método main RMI register
lo enlaza en RMI register.
La clase sirviente implementa la
Clase Sirviente RMI SecurityManager interfaz.
Remote Object
RemoteServer
Activatable UnicastRemoteObject
Clase sirviente
RESUMEN
Los 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.