Leggere in inglese

Condividi tramite


Orchestrazioni

Le orchestrazioni sono processi aziendali eseguibili che possono sottoscrivere (ricevere) e pubblicare messaggi (invia) tramite il database MessageBox. Inoltre possono creare nuovi messaggi. I messaggi vengono ricevuti usando la sottoscrizione e l'infrastruttura di routing descritti in Ciclo di vita di un messaggio. Quando vengono compilate le sottoscrizioni per le orchestrazioni, viene attivata una nuova istanza e il messaggio viene recapitato. Nel caso di sottoscrizioni istanza, invece, l'istanza viene riattivata, se necessario, e il messaggio viene quindi recapitato. Quando i messaggi vengono inviati da un'orchestrazione, vengono pubblicati in MessageBox nello stesso modo in cui un messaggio che arriva a un indirizzo di ricezione con le proprietà appropriate viene inserito nel database per l'utilizzo nel routing.

I messaggi creati in un'orchestrazione devono essere inseriti nel database MessageBox e a essi deve fare riferimento l'istanza di orchestrazione, ma non devono essere pubblicati perché non sono stati ancora inviati. Il servizio secondario XLANG/s chiama l'API Agente messaggi per inserire i messaggi direttamente. Il motore di orchestrazione può così inserire il corpo del messaggio in MessageBox e far sì che venga associato direttamente all'istanza di orchestrazione in esecuzione. La persistenza del messaggio creato nel database MessageBox è coordinata con i punti di persistenza nell'orchestrazione come un'ulteriore ottimizzazione delle operazioni di database.

Il binding è il concetto delle orchestrazioni per cui la pubblicazione e la sottoscrizione sembrano comportarsi in modo diverso. Le porte di orchestrazione sono porte logiche che descrivono un'interazione. Queste porte logiche devono essere associate a una porta fisica affinché i messaggi vengano recapitati ma questo processo di binding consiste semplicemente nella configurazione delle sottoscrizioni per il routing dei messaggi.

Quattro sono le opzioni di base per il binding di queste porte:

  • Specifica ora (le porte vengono specificate direttamente nell'orchestrazione)

  • Specifica in seguito (le porte vengono specificate al momento della distribuzione)

  • Utilizzo di una porta di trasmissione dinamica in cui l'indirizzo viene impostato nel codice di orchestrazione

  • Creazione di un binding diretto dall'orchestrazione al database MessageBox o a un'altra orchestrazione

Distribuzione delle orchestrazioni

Quando un binding viene specificato in fase di progettazione, la porta fisica che corrisponde ai parametri configurati nell'orchestrazione viene creata al momento della distribuzione dell'orchestrazione. Quando il è configurato in fase di distribuzione, qualsiasi porta che corrisponde ai requisiti della porta logica può essere associata alla porta di orchestrazione. Per il binding dinamico, viene creata una porta fisica come con l'opzione Specifica ora ma si tratta di una porta di trasmissione dinamica senza informazioni configurate sull'indirizzo.

Può generare confusione il fatto che, nonostante una porta di trasmissione in un'orchestrazione sia associata a una porta di trasmissione fisica, ciò non impedisce che il messaggio venga recapitato ad altri sottoscrittori. Vale a dire, se un'altra porta di trasmissione dispone di una sottoscrizione, tramite i suoi filtri, per il messaggio che viene inviato alla porta associata, entrambe le porte di trasmissione ricevono il messaggio. Il binding crea semplicemente la sottoscrizione così che il messaggio inviato dall'orchestrazione corrisponda sempre ai criteri per la porta di trasmissione associata. Analogamente, la porta di orchestrazione associata a una porta di ricezione crea la sottoscrizione appropriata in base al tipo di messaggio e all'ID porta di ricezione. Le sottoscrizioni garantiscono che i messaggi in uscita e fuori dall'orchestrazione vengano recapitati alle porte associate, ma i messaggi continuano a passare attraverso lo stesso meccanismo di pubblicazione e sottoscrizione descritto in precedenza.

L'opzione di binding probabilmente meno compresa, mal utilizzata o sottoutilizzata è il binding diretto. il binding diretto consente a un'orchestrazione di pubblicare messaggi nel database MessageBox con varie proprietà di routing analogamente al modo in cui i messaggi vengono pubblicati dagli indirizzi di ricezione. Nella messaggistica diretta semplice, il messaggio viene pubblicato in MessageBox e le sue proprietà innalzate di livello devono essere indirizzate come qualsiasi altro messaggio pubblicato ricevuto in BizTalk Server. Ciò consente a qualsiasi sottoscrittore di ricevere questo messaggio ma richiede che esista almeno un sottoscrittore. In caso contrario l'orchestrazione riceverà un errore di routing.

Un'altra opzione per il binding diretto consiste nell'utilizzo delle porte a correlazione automatica. Le porte a correlazione automatica sono le porte che creano un token di correlazione univoco e che utilizzano solo quel token nella correlazione dei messaggi tra le istanze. Una porta a correlazione automatica viene utilizzata più comunemente per chiamare o avviare un'orchestrazione che passa un parametro di porta. Nell'orchestrazione chiamata, la porta può essere utilizzata per inviare un messaggio, mentre nell'orchestrazione chiamante la stessa porta può essere utilizzata per ricevere un messaggio. Poiché la porta ha un token di correlazione univoco, il messaggio viene reinstradato all'orchestrazione chiamante. Le porte a correlazione automatica fungono da canali di comunicazione privati tra le istanze di orchestrazione.

L'opzione finale consiste nell'utilizzare l'orchestrazione di un partner in cui, sia nell'orchestrazione chiamante che in quella chiamata, la porta è configurata utilizzando lo stesso tipo di porta condivisa e, nella configurazione della porta, viene selezionata la stessa porta. Sia in Orch1 che in Orch2, ad esempio, è selezionata Orch2.MyDirectPort. Questo tipo di binding imposta una sottoscrizione per l'orchestrazione di ricezione basata sul tipo di orchestrazione di invio, sul nome della porta e sul nome dell'operazione, assicurando nuovamente che i messaggi vengano instradati all'istanza corretta.

Tutte le opzioni di messaggistica diretta utilizzano il modello di pubblicazione e sottoscrizione sottostante. La differenza tra queste opzioni è data dalle proprietà utilizzate per la creazione di sottoscrizioni e per il routing e dai casi di utilizzo che contribuiscono a risolvere.

Un problema comune che si verifica quando nelle orchestrazioni vengono utilizzate porte associate direttamente è il fatto che un'orchestrazione può pubblicare un messaggio che ha anche sottoscritto. Un'orchestrazione è, ad esempio, configurata per essere attivata da un messaggio PurchaseOrder. Questa orchestrazione utilizza una porta diretta per pubblicare il messaggio PurchaseOrder in MessageBox. Oltre a ricevere il messaggio come previsto, tuttavia, viene avviata un'altra istanza di un'orchestrazione perché anch'essa disponeva di una sottoscrizione per i messaggi PurchaseOrder. L'elaborazione entra in un ciclo infinito e uno sviluppatore potrebbe non rendersi subito conto di cosa è successo.

Correlation

La correlazione nelle orchestrazioni è il meccanismo per la ricezione di messaggi correlati nella stessa istanza di orchestrazione in esecuzione. In Progettazione orchestrazioni uno sviluppatore segue questa procedura generale per utilizzare una correlazione:

  • Definisce un tipo di correlazione che include le proprietà innalzate di livello utilizzate per correlare i messaggi.

  • Definisce un set di correlazioni che è un'istanza del tipo di correlazione appena definito.

  • Per le porte di trasmissione e di ricezione, specifica se iniziano o seguono un determinato set di correlazioni.

    Le sottoscrizioni istanza entrano in gioco all'avvio di un set di correlazioni, come avviene quando vengono create sottoscrizioni per tutte quelle porte che seguono questo set di correlazioni per ricevere i messaggi. Poiché il tipo di correlazione definisce le proprietà da utilizzare per la correlazione, il motore di orchestrazione può estrarre queste proprietà dal messaggio inviato o ricevuto dall'azione di avvio. Questi valori vengono quindi utilizzati per definire le sottoscrizioni per tutte le azioni restanti che seguono questo set di correlazioni.

    È importante che le proprietà innalzate di livello dei messaggi ricevuti in BizTalk Server e che devono essere utilizzati in una correlazione siano definite correttamente e innalzate di livello al contesto del messaggio. La maggior parte delle proprietà viene innalzata di livello quando un componente del disassembler in una pipeline estrae i valori alla ricezione iniziale del messaggio. Per questo motivo, non è possibile utilizzare la pipeline di ricezione pass-through per ricevere i messaggi che devono essere correlati a un'istanza in esecuzione di un'orchestrazione. Questo problema si verifica quando si utilizza l'adapter di ricezione SOAP per ricevere i messaggi correlati poiché la pipeline pass-through è il valore predefinito per la pipeline di ricezione quando si utilizza la Pubblicazione guidata servizi Web.

Vedere anche

Elementi
Creazione di orchestrazioni mediante Progettazione orchestrazioni