Compartir a través de


Creación de un servicio de itinerarios personalizado mediante una orquestación de BizTalk

El marco de itinerarios que forma parte del kit de herramientas de ESB de Microsoft BizTalk admite la ejecución de pasos de itinerario mediante orquestaciones. Puede implementar un servicio de itinerarios personalizado como orquestación de Microsoft BizTalk Server en función de sus requisitos funcionales, lo que puede incluir lo siguiente:

  • Varias invocaciones de servicio (como se muestra en instalación y ejecución del ejemplo de Scatter-Gather)

  • Mediación de protocolos y correlación de mensajes (por ejemplo, HTTP-MQSeries)

  • Decisiones de enrutamiento complejas basadas en el enriquecimiento de mensajes de orígenes de datos externos

  • Lógica de procesamiento de negocios

    Cada servicio de itinerario implementado mediante una orquestación BizTalk Server es responsable de lo siguiente:

  • Control de excepciones y errores mediante el marco de control de excepciones ESB o controladores de excepciones personalizados opcionales que admiten la reenvío (itinerarios unidireccionales)

  • Avanzar el itinerario y publicar mensajes salientes a través de BizTalk Server para que el siguiente paso del servicio de itinerario pueda ejecutarse

Para crear un servicio de itinerario personalizado mediante una orquestación de BizTalk Server

  1. Cree un nuevo proyecto de BizTalk Server que contenga una nueva orquestación; por ejemplo, MyCustomeItineraryService.odx.

  2. Agregue referencias a los siguientes ensamblados:

    • Microsoft.Practices.ESB.Itinerary

    • Microsoft.Practices.ESB.Itinerary.Schemas

    • Microsoft.Practices.ESB.ExceptionHandling

    • Microsoft.Practices.ESB.ExceptionHandling.Faults

  3. Defina un puerto de recepción enlazado directo lógico y una forma de recepción activada en la orquestación.

  4. Defina un filtro de suscripción para activar la orquestación desde el contexto del itinerario del mensaje para que la orquestación ejecute el paso MyCustomItineraryService . En el código siguiente se muestra un ejemplo de un filtro adecuado.

    (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceName   
        == "MyCustomItineraryService")   
    && (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceState == "Pending")  
    && (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceType   
        == "Orchestration")  
    
  5. Defina una orquestación de tipo Microsoft.Practices.ESB.Itinerary.ItineraryStep. Agregue una actividad de expresión a la orquestación que rellena esta variable, como se muestra en el código siguiente.

    // Retrieve the current itinerary step.  
    itinerary = new Microsoft.Practices.ESB.Itinerary.SerializableItineraryWrapper();  
    step = new Microsoft.Practices.ESB.Itinerary.SerializableItineraryStepWrapper();  
    
    itinerary.Itinerary = Microsoft.Practices.ESB.Itinerary.ItineraryOMFactory.Create(InboundMessage);  
    step.ItineraryStep = itinerary.Itinerary.GetItineraryStep(InboundMessage);  
    
    
  6. Agregue la implementación personalizada al itinerario que crea el mensaje saliente para los pasos siguientes del itinerario; por ejemplo, OutboundMsg.

  7. Avance el itinerario mediante la siguiente actividad de expresión que usa el contexto del mensaje de entrada.

    OutboundMessage(*) = InboundMessage(*);   
    itinerary.Itinerary.Advance(OutboundMessage, itineraryStep.ItineraryStep);  
    
  8. Envíe el mensaje saliente con el itinerario actualizado a través de un puerto de envío enlazado directo para activar el siguiente servicio de itinerario.

    Para obtener más información sobre cómo implementar un servicio de itinerarios personalizado mediante orquestaciones de BizTalk Server, consulte Instalación y ejecución del ejemplo de rampa de itinerario e instalación y ejecución del ejemplo de Scatter-Gather.