Está en la página 1de 4

dispersin-reunir

En el ejemplo, el procesamiento de rdenes introducidas en los modelos anteriores, cada elemento de orden que no es actualmente en la accin podra ser suministrada por una de las mltiples proveedores externos. Sin embargo, la proveedores pueden o no tener el artculo respectivo en stock(a) s mismos, pueden cobrar un precio diferente y pueden ser capaces de suministrar la parte en una fecha diferente. Para llenar el orden en el mejor manera posible, debemos pedir presupuestos de todos los proveedores y decidir cul nos proporciona el mejor trmino para el elemento solicitado. Cmo se mantiene el flujo global mensaje cuando tiene un mensaje para ser enviado a mltiples receptores, cada uno de los cuales puede enviar una respuesta? La solucin debe permitir la flexibilidad en la determinacin de los destinatarios del mensaje. Podemos podr fijar la lista de proveedores aprobados centralmente o podemos dejar cualquier proveedor interesado participar en la "oferta". Dado que no tenemos control (o poco) sobre los destinatarios, debemos ser preparado para recibir respuestas de algunos, pero no todos los destinatarios. Estos cambios en las bases de licitacin no debe afectar a la integridad estructural de la solucin. La solucin no debe ocultar el nmero y la identidad de los destinatarios individuales de cualquier el procesamiento posterior. Encapsulacin de la distribucin del mensaje localmente mantiene otra componentes independientes de la ruta de los mensajes individuales. Tambin tenemos que coordinar el flujo de mensajes posteriores. La solucin ms fcil podra ser para cada uno destinatario para enviar la respuesta a un canal y dejar que los componentes posteriores frente a la resolucin de los mensajes individuales. Sin embargo, esto requiere los siguientes componentes a tener en cuenta la mensaje que se enva a varios destinatarios. Tambin podra ser ms difcil para los componentes posteriores a procesar los mensajes individuales sin tener ningn conocimiento sobre la lgica de enrutamiento que tiene ha aplicado. Tiene sentido para combinar la lgica de enrutamiento, los destinatarios y el postprocesamiento de los mensajes individuales en un componente lgico. Utilice un dispersin-reunir que transmite un mensaje a varios destinatarios y re-agrega las respuestas de nuevo en un solo mensaje.

El dispersin-reunir las rutas de un mensaje de solicitud al un nmero de destinatarios. A continuacin, utiliza un Agregador de recoger las respuestas y los destilar en un nico mensaje de respuesta. Hay dos variantes de la Dispersin-deduzco que utilizan diferentes mecanismos para enviar los mensajes de solicitud a los destinatarios: Distribucin a travs de una lista de destinatarios permite la dispersin-reunir para controlar la lista de destinatarios sino que requiere de la dispersin-reunir para estar al tanto de canal de mensajes de cada destinatario. De subasta Dispersin-Reunir utilizar un canal de publicacin-suscripcin para transmitir la solicitud a cualquier participante interesado. Esta opcin permite que la dispersin-Reunir a utilizar un solo canal, pero al Al mismo tiempo cede el control.

La solucin comparte similitudes con el Procesador de mensajes compuestos. En lugar de utilizar un divisor, emitimos el mensaje completo a todas las partes implicadas mediante un canal de publicacin-suscripcin. Nosotros lo ms probable es agregar la direccin del remitente para que todas las respuestas pueden ser procesados a travs de una sola canal. Al igual que con el procesador de mensajes compuestos, las respuestas se agregan en funcin definida reglas de negocio. En el ejemplo, el Agregador podra tomar las mejores ofertas de proveedores que pueden llenar la orden. La agregacin de las respuestas puede ser ms difcil con un dispersin-reunir, en comparacin con el procesador de mensajes compuestos porque podemos no saber cuntos beneficiarios participan en la interaccin. Tanto el Dispersin-Reunir y el procesador de mensajes compuestos Coloque con un solo mensaje a varios destinatarios y combinar los mensajes de respuesta individuales de nuevo

en un solo mensaje utilizando un procesador de mensajes Compuesto. El procesador de mensajes compuestos realiza la tarea de sincronizar mltiples actividades paralelas. Si las actividades individuales tienen muy diversas cantidades de tiempo presente resultados en el tratamiento posterior que se celebra a pesar de que muchas subtareas (o incluso todos menos uno) se han completado. Esta consideracin debe sopesarse contra la simplicidad y encapsulacin del Dispersin-Reunir trae. Un compromiso entre las dos opciones puede ser un agregador en cascada. Este diseo permite que las tareas posteriores a ser iniciados con slo un subconjunto de los resultados estn disponibles.

Ejemplo: Combinacin de patrones


Ahora podemos usar la dispersin-reunir para poner en prctica el widget y el ejemplo de procesamiento de pedidos gadget. Podemos combinar el Dispersin-Reunir con el Procesador de mensajes compuestos para procesar el orden cada entrada, la secuencia en trminos individuales y luego pasar cada artculo para una oferta, y luego agregar las ofertas para cada artculo en una respuesta oferta combinada, y por ltimo agregar las respuestas de todas las ofertas en un completo citar. Este es un ejemplo muy real cmo mltiples patrones de integracin se pueden combinar en una Solucin completa. La composicin de los patrones individuales en los patrones ms grandes nos permite discutir la solucin a un nivel ms alto de abstraccin. Tambin nos permite modificar los detalles de la aplicacin sin afectar a otros componentes.

La combinacin de un dispersin-reunir y un procesador de mensajes compuestos

Este ejemplo tambin muestra la versatilidad de la agregador. La solucin utiliza dos agregadores de bastante diferentes propsitos. El primer agregador (parte del dispersinreunir) elige la mejor oferta del un nmero de vendedores. Este agregador puede no requerir una respuesta de todos los vendedores (la velocidad puede es ms importante que un precio bajo), pero puede requerir un complejo algoritmo para combinar las respuestas.

Por ejemplo, la orden puede contener 100 reproductores y el proveedor de menor precio tiene slo 60 Widgets en stock. El agregador tiene que ser capaz de decidir si acepta esta oferta y llenar la restantes 40 elementos de otro proveedor. El segundo Aggregator (parte del mensaje redactado Procesador) podra ser ms sencillo, ya que simplemente concatena todas las respuestas recibidas desde la primera Aggregator. Sin embargo, este agregador necesita para asegurarse de que todas las respuestas son, de hecho, recibi y tiene que hacer frente a condiciones de error como la falta de respuestas a los tems.

También podría gustarte