La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Patrón de diseño BROKER

Presentaciones similares


Presentación del tema: "Patrón de diseño BROKER"— Transcripción de la presentación:

1 Patrón de diseño BROKER
Arquitectura de Objetos Distribuidos Patrón de diseño BROKER

2 Análisis y Diseño Orienteado a Objetos
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

3 PROBLEMA Mecanismo de comunicación entre procesos en SD
COMUNICACION Mecanismo de comunicación entre procesos en SD Operaciones en tiempo de ejecución Esconder detalles del sistema e implementación Debe conocer la ubicacón de los servidores Servicios para añadir, quitar, intercambiar, activar y localizar componentes Sistemas distribuidos = Sistemas centralizados import java.rmi.Remote; import java.rmi.RemoteException; public interface Cuenta { public String nombreUsuario(); public float balance(); public void retiro(float amt); } Patrón de diseño broker Análisis y Diseño Orienteado a Objetos

4 Análisis y Diseño Orienteado a Objetos
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

5 Análisis y Diseño Orienteado a Objetos
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 SERVIDOR Patrón de diseño broker Análisis y Diseño Orienteado a Objetos

6 Análisis y Diseño Orienteado a Objetos
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

7 ¿Cómo lo logra? HETEROGENEIDAD Registra con el Broker
Interoperar con otros BROKERS UNMARSHALLING MARSHLLING Registra servidores PUENTE PROXY SERVIDOR PROXY CLIENTE Envía solicitudes Ejecuta el servicio Localiza al servidor INTERMEDIARIOS Cliente – Broker Servidor - Broker Envía solicitud MARSHLLING Transmite resultados y excepciones Avisa de la disponibilidad de sus servicios Patrón de diseño broker Análisis y Diseño Orienteado a Objetos

8 Análisis y Diseño Orienteado a Objetos
llamarServidor() enviarSolicitud() empaquetaDatos() enviarSolicitud() localizaServidor() llamarServicio() desempaqueta() ejecutaServicio() empaquetaDatos() enviaRespuesta() localizaCliente() regresar() resultado() desempaqueta() Patrón de diseño broker Análisis y Diseño Orienteado a Objetos

9 Análisis y Diseño Orienteado a Objetos
enviarSolicitud() localizarServidor() enviarMensaje() empaquetarDatos() enviarMensaje() desempaquetarDatos() enviarSolicitud() localizarServidor() Patrón de diseño broker Análisis y Diseño Orienteado a Objetos

10 Análisis y Diseño Orienteado a Objetos
Diagrama de Clases Patrón de diseño broker Análisis y Diseño Orienteado a Objetos

11 Análisis y Diseño Orienteado a Objetos
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

12 Análisis y Diseño Orienteado a Objetos
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

13 Análisis y Diseño Orienteado a Objetos
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 objeto solicitado El objeto devuelve un resultado al cliente a través del ORB Patrón de diseño broker Análisis y Diseño Orienteado a Objetos

14 Control de peticiones ORB
Máquina Cliente Máquina Servidor Cliente Objeto ORB Llamada a método Cliente Implementación O R B Stub BOA Skeleton Gestión de una llamada sobre un objeto remoto Patrón de diseño broker Análisis y Diseño Orienteado a Objetos

15 Análisis y Diseño Orienteado a Objetos
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. Responsabilidades (Registro de objetos, genereración de referencias, llamada directas a objetos) Patrón de diseño broker Análisis y Diseño Orienteado a Objetos

16 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

17 Análisis y Diseño Orienteado a Objetos
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

18 Análisis y Diseño Orienteado a Objetos
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

19 Análisis y Diseño Orienteado a Objetos
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

20 Análisis y Diseño Orienteado a Objetos
VALORACION VENTAJAS Transparencia en ubicación Cambio y extensibilidad de componentes Portabilidad del sistema broker Interoperabilidad entre diferentes sistemas broker Reusabilidad DESVENTAJAS Eficiencia Restringida Baja tolerancia a fallos Prueba y debbuging Patrón de diseño broker Análisis y Diseño Orienteado a Objetos

21 Análisis y Diseño Orienteado a Objetos
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

22 Análisis y Diseño Orienteado a Objetos
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


Descargar ppt "Patrón de diseño BROKER"

Presentaciones similares


Anuncios Google