OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA

63
OBJETOS DISTRIBUIDOS E OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA INVOCACIÓN REMOTA INTEGRANTES: DAVID ALVAREZ LUIS ALVEAR OLGA AVALOS JUAN PABLO CHIMBORAZO

Transcript of OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA

Page 1: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA

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

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

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

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

COMUNICACIÓN ENTRE COMUNICACIÓN ENTRE OBJETOS DISTRIBUIDOSOBJETOS DISTRIBUIDOS

Page 6: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA

MODELO DE OBJETOSMODELO DE OBJETOSReferencias a ObjetosInterfacesAccionesExcepcionesCompactación Automática de la

memoria

Page 7: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA

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

MODELO DE OBJETOS MODELO DE OBJETOS DISTRIBUIDOSDISTRIBUIDOS

Page 9: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

LLAMADA A UN LLAMADA A UN PROCEDIMIENTO REMOTOPROCEDIMIENTO REMOTO

Page 29: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA

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

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

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

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

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

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

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

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

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

EVENTOS Y NOTIFICACIONES EVENTOS Y NOTIFICACIONES (V)(V)

SISTEMA SIMPLE DE UNA SALA DE CONTRATACIÓN.

Page 39: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA

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

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

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

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

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

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

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

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

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

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

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

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

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

CASO DE ESTUDIO JAVA CASO DE ESTUDIO JAVA RMIRMI

Page 53: OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA

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

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

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

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

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

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

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

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

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

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

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.