Implementar patrones de diseño en orquestaciones
En esta sección se describen los patrones comunes para programar BizTalk Server, así como los patrones de integración empresarial. Se puede aprovechar un solo patrón o combinar varios patrones para diseñar su proceso empresarial y, posteriormente, implementar el diseño mediante el uso de las formas del Diseñador de orquestaciones de BizTalk.
Patrones de diseño
A continuación se describe brevemente cada patrón y se incluyen vínculos a otros temas o ejemplos en los que se muestra cómo implementar los patrones mediante el Diseñador de orquestaciones de BizTalk.
Agregador
El patrón de agregación es el patrón para recibir información de varios orígenes y consolidarla en un solo mensaje. Para obtener un ejemplo de este patrón, vea Aggregate.odx en agregador (BizTalk Server ejemplo).
Llamar a canalizaciones desde una orquestación.
Ahora puede llamar a canalizaciones de envío y recepción desde sus orquestaciones. Esto permite reutilizar las canalizaciones y contribuye a mantener una orquestación desacoplada desde las fases de canalización. Para obtener un ejemplo de este patrón, vea Aggregate.odx en agregador (BizTalk Server ejemplo). Otro ejemplo es CMP.odx en procesador de mensajes compuestos (BizTalk Server ejemplo). Consulte también Uso de expresiones para ejecutar canalizaciones.
Procesador de mensaje compuesto
Procesador de mensaje compuesto es el patrón para procesar elementos individuales desde un mensaje de intercambio agregado o por lotes. Para obtener un ejemplo de este patrón, vea CMP.odx en procesador de mensajes compuestos (BizTalk Server ejemplo).
Enrutador basado en contenido
El enrutador basado en contenido es el patrón para determinar el destinatario de un mensaje basado en parte del contenido del mensaje. Para ver un ejemplo de este patrón, consulte CBRSample (BizTalk Server Sample).
Enrutador dinámico
El enrutador dinámico es un patrón para determinar la dirección de destino y el protocolo de transporte basado en el resultado del procesamiento de mensajes. Puede usar un puerto de envío dinámico o una forma de vínculo de rol para implementar este patrón. Para obtener un ejemplo de este patrón, consulte ReceiveSend.odx en SendMail. Otro ejemplo es SupplierProcess.odx en PartyResolution (BizTalk Server Sample).
Tratamiento de errores
BizTalk Server permite designar un control automatizado de los mensajes con errores como alternativa al comportamiento predeterminado de colocar los mensajes con errores en la cola de suspensión. Puede enrutar los mensajes con error a un puerto de suscripción para elaborar un informe o procesarlos. Para obtener un ejemplo de este patrón, vea ResubmitLogic.odx en Control de errores (carpeta de ejemplos de BizTalk Server).
Controlador de excepciones y compensación
Puede usar un controlador de excepciones y una forma Iniciar excepción o una forma expresión para el control de excepciones. Por ejemplo, puede colocar el código siguiente en la forma Expresión para iniciar la excepción:
excp = new System.Exception();
throw(excp);
Puede usar un bloque de compensación y una forma De compensación para realizar la compensación en las transacciones que se han confirmado. Para obtener un ejemplo de este patrón, vea UpdateContact.odx en Compensación (BizTalk Server Ejemplo). Otro ejemplo es en Excepciones personalizadas.
Agente de mensajes
El patrón de agente de mensajes determina el destino de un mensaje y controla el flujo de mensajes. Para obtener más información, consulte Procesamiento en la orquestación OrderBroker.
Filtro de mensajes
El patrón de filtro de mensajes selecciona los mensajes que cumplen criterios concretos de procesamiento. Puede implementar este patrón agregando la expresión de filtro a una forma de recepción activada. Para obtener más información, vea Usar filtros con la forma recibir mensaje.
Traductor de mensajes
El patrón traductor de mensajes convierte un mensaje de un formato a otro. Puede implementar este patrón mediante un mapa de BizTalk con una forma Transformar en una orquestación. Para obtener un ejemplo de este patrón, vea HelloOrchestration.odx en HelloWorld (BizTalk Server Sample).
Convoy paralelo
El patrón de convoy paralelo permite agrupar varios elementos individuales para obtener algo que un elemento individual no puede obtener por sí solo. El conjunto de elementos relacionados puede llegar en cualquier orden, pero BizTalk Server debe recibir todos ellos antes de empezar el proceso.
Dispersión y recopilación
El patrón de dispersión y recopilación permite enviar mensajes a varios destinatarios y recibir los mensajes de cada destinatario. Para implementar este patrón, puede usar el patrón divisor y de agregación. Use el patrón Aggregator para ensamblar los resultados mediante el patrón Splitter y colocarlos en una forma Acciones paralelas .
Convoy secuencial
El patrón de convoy secuencial permite agrupar varios elementos individuales para obtener algo que un elemento individual no puede obtener por sí solo. Un convoy secuencial es un conjunto de elementos relacionados que tienen un orden predefinido. Aunque los elementos no tienen que ser exactamente iguales, BizTalk Server debe recibir los elementos en un orden secuencial.
Divisor
El patrón divisor toma un único mensaje y lo divide en varios mensajes.
Suspender con reintento
El patrón de suspensión con reintento permite a la orquestación suspender un mensaje cuando hay un error. La suspensión ocurre dentro de un bucle, de modo que la orquestación se suspende, se solicita intervención y, a continuación, se vuelve a intentar repetir la operación un número fijo de veces.