PATRONES DE SISTEMAS DISTRIBUIDOS
PATRN DE ARQUITECTURA BROKER
BROKER
Es un patrn de arquitectura que se utiliza para
estructurar sistemas de software distribuidos con
componentes desacoplados que interactan por
invocaciones de servicios remotos.
El componente broker es responsable de
coordinar la comunicacin; tanto de
enviar/reenviar las peticiones, asi como de
transmitir los resultados y las excepciones.
EJEMPLO
supongamos que estamos desarrollando un
sistema de informacin para la ciudad diseado
para correr en un rea amplia de trabajo.
Algunas computadoras en la red contienen uno o
ms servicios de informacin acerca de los
eventos, restaurantes, hoteles ,monumentos
histricos, y transportacin pblica
Se tienen computadoras terminales conectadas a la red.
Los turistas a travs de la ciudad pueden obtener informacin en la cual estn interesados desde las terminales usando un explorador web.
El software soporta la obtencin de informacin en lnea de los servidores apropiados y la muestra en la pantalla.
La informacin se obtendr a travs de la red y no se mantiene en las terminales.
Esperamos que el sistema cambie y/o crezca
continuamente as que los servicios individuales
deben estar desacoplados uno del otro.
Adems el software de la terminal debe ser capaz
de usar los servicios sin tener que conocer su
localizacin. Esto nos permitir mover, replicar o
migrar servicios.
CONTEXTO
Su medio ambiente es un sistema distribuido y
posiblemente heterogneo con diferentes
componentes cooperativos independientes.
PROBLEMA
Construir un sistema de software complejo como unconjunto de componentes desacoplados e inter-operativos, en lugar de una aplicacin monoltica.
Esto resulta en mayor flexibilidad, mantenimiento yposibilidad de cambio.
Al hacer la particin de funcionalidad en componentesindependientes el sistema llegara a serpotencialmente distribuible y escalable.
Sin embargo cuando componentes distribuidos secomunican unos con otros, se necesitan algunasformas especiales de comunicacin entre procesos.
Si los componentes manejan la comunicacin
ellos mismos, el sistema resultante enfrenta
dependencias y limitaciones.
Por ejemplo el sistema ser dependiente del
mecanismo de comunicacin usado, y los clientes
deben conocer la localizacin de los servidores, y
en muchos casos la solucin es limitada a slo un
lenguaje de programacin.
Los servicios para agregar, remover, intercambiaractivar y localizar componentes tambin sonrequeridos. Las aplicaciones que usan estos serviciosno deben depender de detalles especficos del sistemapara garantizar la portabilidad, incluso dentro de unared heterognea.
Desde el punto de vista del desarrollador no debehaber diferencia entre el desarrollo de software parasistemas centralizados y desarrollar para sistemasdistribuidos. Una aplicacin que usa un objeto debeslo ver la interface ofrecida, por lo que no debenecesitar saber nada acerca de la implementacin delos detalles del objeto o acerca de su localizacin fsica
SOLUCION
Introduzca un componente broker para llevar a
cabo un mejor desacoplamiento entre los clientes
y servidores.
Los servidores se registran ellos mismos con el
broker y hacen sus servicios disponibles para los
clientes a travs de interfaces-mtodo.
Los clientes usan la funcionalidad de los
servidores enviando peticiones va el broker.
La tarea del broker incluye localizar el servidor
apropiado, transmitir las peticiones al servidor y
transmitir los resultados y excepciones de regreso
al cliente.
Usando el patrn broker una aplicacin puede
acceder a servicios distribuidos, simplemente
enviando llamadas de mensaje al objeto
apropiado, en lugar de enfocarse a la
comunicacin entre procesos de bajo nivel.
Adems la arquitectura del broker es flexible, y
permite cambio dinmico: adicin, borrado y
relocalizacin objetos.
El patrn broker reduce la complejidad envuelta
en el desarrollo de aplicaciones destruidas,
porque hace la distribucin transparente para el
desarrollador.
Esto lo realiza introduciendo un modelo objetos
en el cual los servicios distribuidos son
encapsulados dentro de objetos. As lo sistemas
broker ofrecen un camino para la integracin de
dos tecnologas basicas: distribucin y tecnologa
de objetos.
Tambin extiende el modelo de objetos de
aplicaciones simples a aplicaciones distribuidas,
consistentes de componentes desacoplados que
pueden correr en mquinas heterogneas y que
pueden ser escritas en diferentes lenguajes de
programacin.
El patrn Broker se utiliza para balancear las
siguientes fuerzas:
Los componentes deben ser capaces de accesar a los
servicios provedos por otros a travs de invocaciones
de servicios remotos transparentes en ubicacin.
Se necesita intercambiar, aadir y quitar componentes
en tiempo de ejecucin.
La arquitectura debe esconder los detalles especficos
de implementacin del sistema de los usuarios de
componentes y servicios.
ELEMENTOS:
1. Servidor
2. Clientes
3. Brokers
4. Puentes Bridge
5. Proxies del lado del Cliente
6. Proxies del lado del Servidor
SERVIDOR
Un servidor implementa objetos que exponen su funcionalidad a travs de interfaces que consisten de operaciones y atributos.
Las interfaces estn disponibles a travs de un lenguaje de definicin de interfaz (IDL) o un estndar binario.
Hay dos tipos de servidores:
1. Los servidores que ofrecen servicios comunes a muchos dominios de aplicacin.
2. Los servidores que implementan una funcionalidad especfica para un dominio de aplicacin particular.
CLIENTES
Los clientes son aplicaciones que acceden los servicios de, al
menos, un servidor.
Para invocar servicios remotos, los clientes envan
solicitudes al broker. Despus que la operacin se ha
ejecutado, los clientes reciben respuestas o excepciones del
broker. La interaccin entre clientes y servidores se basa en
un modelo dinmico, lo cual significa que los servidores
tambin pueden actuar como clientes.
Los clientes no necesitan conocer la ubicacin de los
servidores que acceden; esto es importante porque permite
la agregacin de nuevos servicios, y el movimiento de los
servicios existentes a otras ubicaciones, an mientras el
sistema este ejecutndose.
BROKER
Un broker es un mensajero, responsable de
la transmisin de solicitudes de clientes a
servidores, as como de la transmisin de
respuestas.
Localiza al receptor de una solicitud
basndose en un sistema de
identificadores nicos.
PROXIES DEL LADO DEL CLIENTE
Representan una capa adicional entre los clientes y
el broker, para proveer transparencia en el sentido que
un objeto remoto aparece como local ante el cliente, es
decir esconden los detalles de implementacin.
PROXIES DEL LADO DEL SERVIDOR
Son responsables de recibir solicitudes,
desempaquetar los mensajes de entrada,
el unmarshaling de los parmetros,
llamar al servicio apropiado, y el
marshaling de resultados y excepciones
antes de enviarlos al cliente.
Marshaling : transformar la representacion
en memoria de un objeto a un formato
apropiado para almacenaje o transmision.
PUENTES
Los puentes son componentes opcionales
utilizados para esconder los detalles de
implementacin cuando dos brokers
interoperan.
Supngase que un sistema Broker se ejecuta en
una red heterognea. Si se transmiten solicitudes
sobre la red, se deben comunicar brokers
diferentes independientemente de las redes y de
los sistemas operativos utilizados.
USOS
CORBA: El patrn broker fue usado para
especificar la Common Object Request Broker
Architecture definida por el Object Management
Group. CORBA es una tecnologa orientada a
objetos para objetos distribuidos en sistemas
heterogneos. Orbix, de IONA Technologies, usa
la variante de comunicacin directa.
SOM/DSOM de IBM: Es un sistema broker
compatible con CORBA que implementa la
interoperabilidad combinando el IDL de CORBA
con un protocolo binario.
OLE de Microsoft: Define un formato estndar
binario para exponer y acceder a las interfaces del
servidor.
RMI de Sun: Tecnologa para la invocacin remota de
mtodos para la plataforma Java.
ATM-P de Siemens: Es la implementacin de la
variante de paso de mensajes en sistemas de
telecomunicaciones basados en Asynchronous Transfer
Mode (ATM).