Condividi tramite


Creazione di un servizio di itinerario personalizzato attraverso un'orchestrazione BizTalk

Il framework di itinerario che fa parte di Microsoft BizTalk ESB Toolkit supporta l'esecuzione di passaggi di itinerario tramite orchestrazioni. È possibile implementare un servizio di itinerario personalizzato come orchestrazione di Microsoft BizTalk Server in base ai requisiti funzionali, che possono includere quanto segue:

  • Chiamate a più servizi (come illustrato nell'esempio di installazione ed esecuzione del Scatter-Gather)

  • Mediazione del protocollo e correlazione dei messaggi (ad esempio, HTTP-MQSeries)

  • Decisioni di routing complesse basate sull'arricchimento dei messaggi da origini dati esterne

  • Logica di elaborazione aziendale

    Ogni servizio di itinerario implementato tramite un'orchestrazione di BizTalk Server è responsabile delle operazioni seguenti:

  • Gestione delle eccezioni e degli errori utilizzando il framework di gestione delle eccezioni ESB o gestori di eccezioni personalizzati opzionali che supportano la reinvio (itinerari unidirezionali)

  • Avanzamento dell'itinerario e pubblicazione di messaggi in uscita tramite BizTalk Server in modo che il passaggio successivo del servizio di itinerario possa essere eseguito

Per creare un servizio di itinerario personalizzato usando un'orchestrazione di BizTalk Server

  1. Creare un nuovo progetto BizTalk Server contenente una nuova orchestrazione; Ad esempio, MyCustomeItineraryService.odx.

  2. Aggiungere riferimenti agli assembly seguenti:

    • Microsoft.Practices.ESB.Itinerary

    • Microsoft.Practices.ESB.Itinerary.Schemas

    • Microsoft.Practices.ESB.ExceptionHandling

    • Microsoft.Practices.ESB.ExceptionHandling.Faults

  3. Definire una porta di ricezione con associazione diretta logica e una forma di ricezione attivata nell'orchestrazione.

  4. Definire un filtro di sottoscrizione per attivare l'orchestrazione dal contesto dell'itinerario del messaggio in modo che l'orchestrazione esegua la fase MyCustomItineraryService. Il codice seguente illustra un esempio di filtro appropriato.

    (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceName   
        == "MyCustomItineraryService")   
    && (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceState == "Pending")  
    && (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceType   
        == "Orchestration")  
    
  5. Definire un'orchestrazione di tipo Microsoft.Practices.ESB.Itinerary.ItineraryStep. Aggiungere un'attività di espressione all'orchestrazione che popola questa variabile, come illustrato nel codice seguente.

    // 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. Aggiungere l'implementazione personalizzata all'itinerario che crea il messaggio in uscita per i passaggi successivi dell'itinerario; ad esempio OutboundMsg.

  7. Portare avanti l'itinerario usando la seguente attività di espressione che utilizza il contesto del messaggio proveniente dal messaggio in arrivo.

    OutboundMessage(*) = InboundMessage(*);   
    itinerary.Itinerary.Advance(OutboundMessage, itineraryStep.ItineraryStep);  
    
  8. Inviare il messaggio in uscita con l'itinerario aggiornato tramite una porta di trasmissione diretta per attivare il servizio di itinerario successivo.

    Per altre informazioni sull'implementazione di un servizio di itinerario personalizzato tramite orchestrazioni di BizTalk Server, vedere Installazione ed esecuzione dell'esempio on-ramp dell'itinerario e Installazione ed esecuzione dell'esempio di Scatter-Gather.