PDF de programación - Middleware - Broker

Imágen de pdf Middleware - Broker

Middleware - Brokergráfica de visualizaciones

Publicado el 27 de Junio del 2018
802 visualizaciones desde el 27 de Junio del 2018
2,4 MB
20 paginas
Creado hace 7a (29/04/2016)
Middleware – Broker
© Fernando Berzal, [email protected]

Middleware – Broker

 Proxies
 El patrón de diseño BROKER

 Servicio de nombres vs. Intermediario
 Escenarios de uso.
 Diseño, implementación y pruebas.
 Beneficios y limitaciones
 Variantes

 CORBA [Common Object Request Broker Architecture]

 Llamada a un método en CORBA
 Diseño de un ORB [Object Request Broker]

1

Proxies

Distribución

Proxies

Distribución

2

3

Broker

El patrón de diseño Broker se utiliza para organizar
sistemas distribuidos con componentes desacoplados que
interaccionan realizando invocaciones remotas a servicios.

El broker es el responsable de coordinar la comunicación
(reenviar solicitudes & transmitir resultados o excepciones).

EJEMPLOS
 Microsoft OLE

[Object Linking and Embedding]

 OMG CORBA

[Common Object Request Broker Architecture]

Broker

4

5

Broker

Broker

Broker como servicio de nombres

6

7

Broker

Broker como servicio de nombres

Broker

Broker como intermediario

8

9

Broker

Broker como intermediario

Broker

Diagrama de clases completo

10

11

Broker

Broker

12

13

Broker

ESCENARIO I: Registro de un servicio

Broker

ESCENARIO II: Invocación de un servicio local

14

15

Broker

ESCENARIO III: Interacción entre brokers vía puentes

16

Broker

 Útil para sistemas de información complejos,

que evolucionan y crecen con el tiempo:
el broker se encarga de que podamos acceder a los
distintos servicios del sistema sin necesidad de
conocer su localización.

 Las arquitecturas basadas en el uso de brokers nos

permiten replicar y migrar servicios.

 Si la arquitectura define los protocolos de

comunicación utilizados, se pueden construir sistemas
distribuidos heterogéneos con componentes
independientes que cooperan entre sí.

17

Broker

Requisitos

 Mecanismo de comunicación entre procesos

[IPC: Inter-Process Communication].

 Servicios para añadir, eliminar, intercambiar,

activar y localizar componentes (que deberían ser
independientes de los detalles específicos del sistema
para garantizar su portabilidad y interoperabilidad en
entornos heterogéneos).

18

Broker

Implementación

1. Definir el modelo de objetos (diseño OO

de la interacción entre clientes y servidores).
2. Determinar el nivel de interoperabilidad:

 API, a nivel del código fuente (mayor portabilidad).
 ABI, a nivel binario (mayor rendimiento).
3. Diseñar el API/ABI ofrecido por el broker.
4. Ocultar detalles de implementación mediante proxies

(tanto para clientes como para servidores).

5. Diseñar el broker en sí…
6. Desarrollar compiladores de IDL
[Interface Definition Language].

19

Broker

Diseño del broker

 Protocolo de interacción con los proxies (C & S).
 Puentes (routing de mensajes a otros brokers).
 Protocolo de intercambio de solicitudes y respuestas.
 Marshalling/unmarshalling (en el broker o en los proxies).
 Buffers de mensajes para comunicación asíncrona.
 Directorio de servicios (IDs → direcciones físicas).
 Invocación de métodos estática (en tiempo de

compilación) vs. dinámica (en tiempo de ejecución,
requiere el uso de registros de servidores).

 Gestión de errores (tanto en los servicios a los

que se accede como en las comunicaciones).

20

Broker

Pruebas

21

Broker

Ventajas (frente a una arquitectura monolítica)

 Mayor flexibilidad, mantenibilidad y adaptabilidad.

 Mayor escalabilidad (posibilidad de distribución).

 Servidores invisibles a los clientes (p.ej. migración).

 Portabilidad (API/ABI del middleware independiente
del sistema operativo o de la red de comunicación).

 Interoperabilidad entre brokers (facilita la construcción

de sistemas distribuidos heterogéneos).

 Componentes reutilizables (interfaces públicas)

22

Broker

Posibles inconvenientes/limitaciones
 El broker se convierte en un punto crítico de la
arquitectura (si falla, el sistema se viene abajo).

 Rendimiento (al ocultar detalles de implementación,

algunas optimizaciones no se pueden aprovechar).

 Si los componentes manejan directamente la

comunicación, el sistema puede ser dependiente del
mecanismo de comunicación utilizado, limitado a una
única plataforma de programación y perder la
transparencia con respecto a la localización de los
servicios.

 La realización de labores de prueba y depuración

puede ser más compleja.

23

Broker

Variantes
COMUNICACIÓN DIRECTA
[DIRECT COMMUNICATION BROKER SYSTEM]

 Comunicación directa entre cliente y servidor:

El broker se emplea para establecer la conexión entre
cliente y servidor. Una vez establecida la conexión, el
broker no vuelve a intervenir.

 Resuelve algunos problemas de eficiencia asociados al

uso de brokers.

24

Broker

Variantes
TRADER [BROKER SYSTEM]

 La solicitud del cliente no se envía a un servidor

particular, sino a un servicio (no solicita el
identificador de un servidor, sino el de un servicio).

 El broker controla qué servidores ofrecen qué servicios

(e independiza al cliente del proveedor del servicio).

25

Broker

Variantes
ADAPTER [BROKER SYSTEM]

 La interfaz del servidor con el broker se oculta con una

capa adicional controlada por el propio broker:
el adaptador [adapter].

 Si clientes y servidores se encuentran en el mismo

sistema que el broker, el adaptador permite la
comunicación directa entre clientes y servidores
(p.ej. usando memoria compartida, mucho más rápida
que un mecanismo de comunicación entre procesos).

26

Broker

Variantes
CALLBACK [BROKER SYSTEM]

 Implementación de sistemas reactivos (dirigidos y

controlados por eventos, a los que se reacciona).

 El broker no distingue entre clientes y servidores:

cuando sucede un evento, el broker invoca el método
“callback” de cualquier componente que se haya
registrado para recibir notificaciones del evento.

 Más sobre esto cuando lleguemos a los sistemas de

tipo publish/subscribe…

27

Broker

Variantes
MESSAGE PASSING [BROKER SYSTEM]

 Cada mensaje incluye un identificador que el servidor

utiliza para determinar qué acción realizar.

 Los mensaje contienen metadatos además de los

datos [payload]: tipo de mensaje, estructura y otros
atributos que pueda necesitar el servidor.

 Usado en sistemas en los que se transmiten

principalmente datos, más que solicitudes de servicio.

28

CORBA

Common Object Request Broker Architecture
https://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture

29

CORBA

IDL Stub

IDL Skel

ORB

Interface

Object
Adapter

ORB Core

GIOP/IIOP

ORB [Object Request Broker]
http://www.dre.vanderbilt.edu/~schmidt/PDF/ORB-patterns.pdf

30

CORBA

1: Call method

7: Convert message to method on object
implementation

6: Demultiplex message
to destination interface

2: Convert method

to encoded
message

5: Demultiplex message to

destination object

3: Send message to

remote server

4: Receive message

from client

Llamada a un método en CORBA

31

CORBA

Llamada a un método en CORBA, e.g. TAO

32

CORBA

Diseño de un ORB

Extension
Interface

Publisher-
Subscriber

Domain
Object

Active
Object

Remote
Operation

Evictor

Component
Configurator

Adapter

Interceptor

Interpreter

Adapter

Bridge

Layers

Thread-
Specific
Storage

Interpreter

Proxy

Factory
Method

Facade

Activator

Monitor
Object

Acceptor-
Connector

Forwarder/

Receiver

Wrapper Facade

Component
Configurator

Strategy

Leader/Followers

Abstract
Factory

Reactor

Wrapper Facade

Broker

Half/Sync-
Half/Async

33

CORBA

Diseño de un ORB

34

CORBA

Pattern
Layers

Wrapper Façade

Problem
Structuring broker internal design to enable reuse & clean
separation of concerns
Encapsulating low-level system functions to enhance portability

Reactor
Acceptor-Connector

Demuxing broker core events efficiently

Managing broker connections efficiently

Half-Sync/Half-Async

Enhancing broker scalability by processing requests concurrently

Monitor Object

Efficiently synchronize the Half-Sync/Async request queue

Strategy

Interchanging internal broker mechanisms transparently

Abstract Factory

Component
Configurator

Broker

Consolidating broker mechanisms [i.e. strategies]
into groups of semantically compatible strategies
Decoupling component interfaces from their implementations &
Reconfiguring components without having to shutdown & restart.

Defining the broker’s base-line architecture

35

CORBA

Diseño de un ORB
“Broker pattern language”

CORBA

Diseño de un ORB
“Broker pattern language”

Monitor
Object

Half-Sync/
Half-Async

Layers

Wrapper
Facade

Acceptor-
Connector

Reactor

Acceptor-
Connector

Leader/
Followers

Component
Configurator

Abstract
Factory

Strategy

Broker

36

37

CORBA

Implementaciones “open source”

 TAO (C++)

http://www.dre.vanderbit.edu/TAO

 JacORB (Java)

http://www.jacorb.org

Bibliografía

 Frank Buschmann, Regine Meunier,

Hans Rohnert, Peter Sommerlad & Michael Stal:
Pattern-Oriented Software Architecture.
Volume 1: A System of Patterns
Wiley, 1996. ISBN 0471958697

38

39
  • Links de descarga
http://lwp-l.com/pdf12184

Comentarios de: Middleware - Broker (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad