Download Corba

Document related concepts
no text concepts found
Transcript
Arquitectura de Objetos Distribuidos
Patrón de diseño
BROKER
CONTEXTO

AMBIENTE
 Sistema distribuido
 (Hetérogeneo)

COMPONENTES


desacoplados
Interactúan por invocaciones de
servicio remotos
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
2
PROBLEMA


COMUNICACION
Mecanismo de comunicación entre
procesos en SD
Operaciones en tiempo
de ejecución
Debe conocer la
ubicacón de los
servidores
Servicios para añadir,
quitar, intercambiar,
activar y localizar
componentes
Sistemas
distribuidos
=

Esconder detalles del
sistema e implementación
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
Sistemas
centralizados
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Cuenta {
public String nombreUsuario();
public float balance();
public void retiro(float amt);
}
3
EJEMPLO

Sistemas de información (CIS)

Mantener información

Hoteles

Resutaurantes

Eventos …
Acceso desde WWW

Continuos cambios y crecimiento

Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
4
SOLUCION
Introducir un componente BROKER que implemente la
funcionalidad de los problemas anteriores, para lograr
desacoplamiento y transparencia en la comunicación entre el
cliente y el servidor
CLIENTE
Patrón de diseño broker
SERVIDOR
Análisis y Diseño Orienteado a Objetos
5
Estructura del Broker
Formado por seis tipos de componentes:






Clientes
Servidores
Brokers
Puentes
Proxy del lado del cliente
Proxy del lado del servidor
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
6
HETEROGENEIDAD
¿Cómo lo logra?
MARSHLLIN
G
: Servidor
Registra
servidores
Interoperar
con otros
BROKERS
Registra
con el
Broker
UNMARSHALLIN
G
PROXY
: Broker
SERVIDOR
PROXY
inicializar CLIENTE
* ] mientras esteActivo() ]
registrarServicio()
actualizarRepositorio()
confirmacion()
Envía
solicitude
s
Localiza al
servidor
* ] mientras esteActivo() ]
Envía
solicitud
INTERMEDIARIOS
Transmite
 Cliente
– Broker
resultados
 Servidory- Broker
excepciones
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
Ejecuta
el
servicio
MARSHLLIN
G
Avisa de la
disponibilidad
de sus
servicios
7
:Cliente
: ProxyCliente
:Broker
: ProxyServidor
: Servidor
llamarServidor()
enviarSolicitud()
empaquetaDatos()
enviarSolicitud()
localizaServidor()
llamarServicio()
desempaqueta()
ejecutaServicio()
empaquetaDatos()
enviaRespuesta()
localizaCliente()
regresar()
resultado()
Patrón de diseño broker
desempaqueta()
Análisis y Diseño Orienteado a Objetos
8
:Broker A
: Puente A
:Puente B
:Broker B
enviarSolicitud()
localizarServidor()
enviarMensaje()
empaquetarDatos()
enviarMensaje()
desempaquetarDatos()
enviarSolicitud()
localizarServidor()
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
9
Diagrama de Clases
ProxyCliente
* Transfiere mensajes
Broker
Transfiere mensajes
ProxyServidor
empaquetarDatos()
desempaquetarDatos()
llamarServicio()
enviarRespuesta()
*
actualizarRepositorio()
registrarServicio()
confirmacion()
localizarCliente()
localizarServidor()
enviarSolicitud()
enviarRespuesta()
empaquetarDatos()
desempaquetarDatos()
enviarSolicitud()
regreso()
*
*
Llamadas
Llamadas
Cliente
Puente
*
llamarServidor()
Patrón de diseño broker
Servidor
Usa APIs
empaquetarDatos()
desempaquetarDatos()
enviarMensaje()
transmitirMensaje()
Usa APIs
Análisis y Diseño Orienteado a Objetos
*
inicializar()
registrarServicio()
ejecutarServicio()
10
CORBA



Common Object Request Broker Architecture
Estándar de objetos distribuidos desarrollado
por el Object Management Group (OMG).
Da un marco general para construir sistemas
que involucran objetos distribuidos.


Independencia de Lenguaje.
Independencia de Plataforma.
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
11
Servicios de CORBA

ORB. Provee los medios para:



Enviar y recibir llamadas a métodos
remotos incluyendo argumentos
Localizar objetos por su nombre
Servicios de seguridad
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
12
ORB




Media entre el cliente y el objeto en
cuestión
Controla las llamadas a métodos remotos
Transparencias (facilidad de localización
de objetos, invocación de manera
tradicional)
La administración de objetos remotos:
Cliente llama un método a través del Stub
 El ORB genera la petición, y se activa la implementación
 La implementación comunica que está activa y disponible
 Se recoge la petición y se pasa a través de skeleton a la
impementacion
del Análisis
objeto
solicitado
Patrón de
diseño broker
y Diseño
Orienteado a Objetos
 El objeto devuelve un resultado al cliente a través del ORB

13
Control de peticiones ORB
Máquina Servidor
Máquina Cliente
Cliente
Objeto
ORB
Llamada
a método
Cliente
Implementación
Stub
BOA
Skeleton
ORB
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
Gestión de una llamada sobre un objeto remoto
14
Componentes de CORBA

Compiladores de IDL generan los Stubs del
cliente y los Skeletons del lado del servidor

El Stub realiza solicitudes en nombre del cliente

El Skeleton entrega la solicitud a la
implementación del objeto Corba

IIOP, Protocolo binario para cominicación entre
ORB’s

BOA (Basic Object Adapter), sirven como
pegamento entre la implementación del objeto
Corba y el ORB.
ResponsabilidadesAnálisis
(Registro
dea Objetos
objetos, genereración 15
y Diseño Orienteado
de referencias, llamada directas a objetos)
 de diseño broker
Patrón
IDL: Interface Definition Language



Lenguaje para definición de interfaces de
objetos remotos que es independiente del
lenguaje de implementación.
La OMG ha definido como convertir
interfaces IDL en código C, C++, Java,
Smalltalk, COBOL, etc.
IDL es un lenguaje declarativo basado en
C++
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
16
Ejemplo IDL
module OS{
exception DivisionCero
{
float op1;
float op2;
}
interface Calculadora
{
float add (in float x1, in float x2);
float div (in float x1, in float x2)
raises (DivisionCero);
}
};
Nota: Parametros tipo in son pasados por valor
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
17
Ejemplo IDL
module OS{
module services {
interface Server {
readonly attribute string serverName;
boolean init (in string sName);
};
interface Printable {
boolean print (in string header);
};
interface PrintServer : Server {
boolean printThis (in Printable p);
};
};
};
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
18
RMI vs. CORBA




RMI es sólo Java, CORBA es independiente
del lenguaje. Hay compiladores de interfaces
CORBA para C, C++, Java, Cobol, etc.
CORBA es adecuado cuando se requiere
integrar sistemas legados
CORBA es mas maduro y complejo. Tiene
mayor aceptación en aplicaciones
corporativas
RMI permite migrar objetos a otra JVM
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
19
VALORACION





VENTAJAS
Transparencia en
ubicación
Cambio y extensibilidad
de componentes
Portabilidad del sistema
broker
Interoperabilidad entre
diferentes sistemas
broker
Reusabilidad
Patrón de diseño broker



DESVENTAJAS
Eficiencia Restringida
Baja tolerancia a fallos
Prueba y debbuging
Análisis y Diseño Orienteado a Objetos
20
Tarea


Realizar un ejemplo de un IDL ( libre) en donde se
definan los dos tipos de parametros que se pueden
pasar.
Compilar con una versión de CORBA y analizar el
código que genera.


A que lado ( cliente y servidor) de la aplicación le
corresponde cada código generado. Justificar.
Que diferencia existe entre Basic Object Adaptery
el Portable Object Adapter(POA)

Que ventajas ofrece cada uno.
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
21
Bibliografía


Pattern Design
Alex Chaffee, Bruce Martín. And
Introduction to CORBA
Patrón de diseño broker
Análisis y Diseño Orienteado a Objetos
22