Condividi tramite


Definizione di processi di business

Lo scambio di messaggi tra sistemi diversi è una parte necessaria per risolvere i problemi che BizTalk Server risolvere. Il reale obiettivo è, tuttavia, quello di definire ed eseguire processi di business basati sulle applicazioni. Il motore di BizTalk Server usa orchestrazioni per definire la logica di questi processi aziendali. e il Motore regole di business per creare e valutare i gruppi di regole di business. In questa sezione vengono descritti le orchestrazioni e il Motore regole di business.

Utilizzo delle orchestrazioni

È possibile implementare la logica di un processo di business automatico direttamente in un linguaggio quale Microsoft Visual Basic o Microsoft Visual C#. Tuttavia, le operazioni di creazione, mantenimento e gestione di processi di business complessi in linguaggi di programmazione tradizionali possono risultare impegnative. A differenza dei predecessori, BizTalk Server adotta un approccio diverso. consentendo a gestori di business o sviluppatori di definire un processo di business a livello grafico. Questa operazione può risultare più rapida rispetto alla creazione diretta del processo in un linguaggio di programmazione e può facilitare la comprensione e la modifica del processo. I processi di business creati in questo modo possono essere monitorati più facilmente mediante la tecnologia Monitoraggio attività di business (BAM).

Per uno sviluppatore, la creazione di un'orchestrazione si basa su tre strumenti principali: l'editor BizTalk per la creazione di XML Schema, BizTalk Mapper per la definizione delle traduzioni tra tali schemi e l'orchestrazione Designer per specificare la logica dei processi aziendali. Tutti questi strumenti sono ospitati in Visual Studio, offrendo un ambiente coerente per gli sviluppatori. In questa sezione vengono descritte le funzionalità di ciascuno strumento e le modalità di interazione.

Creazione di schemi: Editor BizTalk

Le orchestrazioni usano documenti XML, ciascuno dei quali è conforme a uno schema XML. L'Editor BizTalk consente agli sviluppatori di definire questi schemi, in base ai quali vengono essenzialmente creati la struttura e i tipi delle informazioni di un documento usando il linguaggio XSD (XML Schema Definition).

Non è semplice creare schemi XSD non elaborati senza il supporto di alcuno strumento. Per agevolare questo passaggio necessario, l'Editor BizTalk consente agli utenti, per lo più sviluppatori, di creare uno schema mediante la definizione degli elementi costitutivi in una gerarchia grafica. È possibile importare schemi esistenti anche da file o servizi Web accessibili. Qualunque sia il metodo di acquisizione, gli schemi vengono usati come base per le mappe BizTalk.

Mapping tra schemi: BizTalk Mapper

In genere, un'orchestrazione che implementa un processo di business riceve alcuni documenti e ne invia altri. Parte delle informazioni contenute nei documenti ricevuti viene spesso trasferita nei documenti inviati, dopo aver subito alcune trasformazioni. Il processo di evasione di un ordine può ad esempio includere la ricezione di un ordine per la fornitura di un determinato numero di articoli e la restituzione di un messaggio di rifiuto per alcuni motivi. Le informazioni contenute nell'ordine, ad esempio l'identificatore della richiesta e la quantità ordinata, possono essere copiati dai campi del messaggio di ordine ricevuto nei campi del messaggio di rifiuto. È possibile usare BizTalk Mapper per definire una trasformazione, ossia una mappa, da un documento a un altro.

Mapping tra schemi

Come illustrato nella figura riportata sopra, ogni mappa viene espressa come correlazione grafica tra due schemi XML in base alla quale viene definita una relazione tra gli elementi presenti negli schemi. Il World Wide Web Consortium (W3C) ha definito la trasformazione XSLT (Extensible Stylesheet Language Transformation) come metodo standard per esprimere questi tipi di trasformazioni tra xml Schema e quindi le mappe in BizTalk Server vengono implementate come trasformazioni XSLT.

La trasformazione definita in una mappa può essere semplice, ad esempio la copia di valori da un documento a un altro senza alcuna variazione. Tali operazioni di copia diretta di dati vengono indicate con un collegamento, visualizzato in BizTalk Mapper come una linea che collega gli elementi appropriati dello schema di origine con i corrispondenti elementi dello schema di destinazione. È possibile definire anche trasformazioni più complesse mediante l'utilizzo di functoid. Un functoid è costituito da un blocco di codice eseguibile in grado di definire mapping arbitrariamente complessi tra schemi XML. Come illustrato nella figura riportata sopra, il functoid viene rappresentato in BizTalk Mapper come una casella sulla linea che collega gli elementi da trasformare. Poiché alcune di queste trasformazioni sono abbastanza comuni, BizTalk Server include una serie di functoid predefiniti. e raggruppati in categorie, tra cui:

  • Functoid matematici, che eseguono operazioni di somma, moltiplicazione e divisione dei valori presenti nei campi del documento di origine memorizzando il relativo risultato in un campo del documento di destinazione.

  • Functoid di conversione, che consentono di convertire un valore numerico nell'equivalente ASCII e viceversa.

  • Functoid logici, che consentono di determinare se un elemento o un attributo deve essere creato nel documento di destinazione in base a un confronto logico tra valori specificati nel documento di origine. È possibile confrontare tali valori per verificare se sono uguali, se uno è maggiore o minore dell'altro e così via.

  • Functoid cumulativi, che consentono di calcolare medie, somme o altri valori ricavati da vari campi del documento di origine e quindi di memorizzare il risultato in un unico campo del documento di destinazione.

  • Functoid di database, che possono accedere alle informazioni memorizzate in un database.

    È inoltre possibile creare functoid personalizzati direttamente in XSLT o usando linguaggi abilitati per .NET quali Visual C# e Visual Basic. I functoid possono anche essere combinati in sequenze, in modo che l'output di un functoid sia sovrapposto all'input di un altro.

    È indispensabile disporre di un metodo per la definizione dello schema XML di un documento, nonché di un meccanismo per il mapping di informazioni tra documenti con schemi diversi. La risoluzione di questi due problemi è affidata all'Editor BizTalk e a BizTalk Mapper. La definizione di schemi e mappe, tuttavia, costituisce solo una parte del processo. È necessario specificare anche la logica di business in base alla quale verranno usati gli schemi e richiamate le mappe.

Definizione della logica di business: orchestrazione Designer

Un processo di business è costituito da un set di azioni che consentono congiuntamente di soddisfare alcune importanti esigenze aziendali. Con BizTalk Server, uno sviluppatore può usare il Designer orchestrazione per definire queste azioni graficamente. Anziché esprimere i passaggi usando un linguaggio di programmazione, è possibile creare un'orchestrazione collegando in modo logico una serie di forme. In Progettazione orchestrazioni sono incluse le seguenti forme:

  • La forma Ricezione, che consente all'orchestrazione di ricevere messaggi. Una forma Ricezione può includere un filtro per la definizione dei tipi di messaggi da ricevere e può essere configurata anche per l'avvio di una nuova istanza di un'orchestrazione all'arrivo di un nuovo messaggio.

  • La forma Trasmissione, che consente all'orchestrazione di inviare messaggi.

  • La forma Porta, che definisce la modalità di trasmissione dei messaggi. Ogni istanza di una forma Porta è collegata a una forma Trasmissione o a una forma Ricezione. A ciascuna porta sono associati un tipo, che definisce elementi quali i tipi di messaggi che la porta può ricevere, una direzione di trasmissione o di ricezione e un binding, che determina la modalità di invio o ricezione di un messaggio, ad esempio mediante la specifica di un determinato URL o di altre informazioni.

  • La forma Decisione, che rappresenta un'istruzione if-then-else che consente a un'orchestrazione di eseguire diverse attività in base a condizioni Boolean. Per specificare questa istruzione condizionale, è possibile usare l'Editor espressioni integrato in Progettazione orchestrazioni.

  • La forma Ciclo, che controlla l'esecuzione ripetuta di un'azione quando alcune condizioni sono impostate su true.

  • La forma Costruisci messaggio, che consente la generazione di un messaggio.

  • La forma Trasforma, che consente il trasferimento di informazioni da un documento a un altro e la relativa trasformazione mediante il richiamo di mappe definite con BizTalk Mapper.

  • La forma Azioni parallele, che consente a uno sviluppatore di specificare l'esecuzione parallela, anziché in sequenza, di più operazioni. La forma successiva viene eseguita solo dopo il completamento di tutte le azioni parallele.

  • La forma Ambito, che consente il raggruppamento di operazioni in transazioni e la definizione di gestori di eccezioni per la gestione degli errori. Sono supportate sia le transazioni atomiche tradizionali sia le transazioni a esecuzione prolungata. A differenza delle transazioni atomiche, quelle a esecuzione prolungata si basano sulla compensazione della logica anziché sul rollback per la gestione di eventi imprevisti.

  • La forma Assegnazione messaggio, che consente l'assegnazione di valori alle variabili di orchestrazione. Queste variabili consentono di memorizzare le informazioni sullo stato usate dall'orchestrazione, ad esempio un messaggio creato o una stringa di caratteri.

    Nella figura riportata di seguito è illustrata un'orchestrazione creata in Progettazione orchestrazioni usando alcune di queste forme. In questo semplice esempio, viene ricevuto un messaggio, viene presa una decisione in base al contenuto del messaggio e, a seguito di tale decisione, viene eseguito uno dei due percorsi. Le orchestrazioni che risolve problemi reali possono essere notevolmente più complesse di questo; per semplificare l'uso di questi diagrammi più complessi, l'Designer orchestrazione include la possibilità di eseguire lo zoom avanti e indietro. Gli sviluppatori possono visualizzare solo le parti di un'orchestrazione a cui sono attualmente interessati.

    Immagine che mostra un'orchestrazione creata nella Designer orchestrazione usando alcune di queste forme.

    Dopo la definizione di un'orchestrazione, il gruppo di forme e interrelazioni viene convertito nel linguaggio MSIL (Microsoft Intermediate Language) usato da Common Language Runtime (CLR) di .NET Framework. Infine, il gruppo di forme definite da uno sviluppatore di BizTalk Server si trasforma in un semplice assembly standard abilitato per .NET. Quando necessario, è inoltre possibile aggiungere a un'orchestrazione codice esplicito chiamando un oggetto COM o .NET dall'interno di una forma.

Ruolo dei servizi Web

Consentendo alle applicazioni di scambiare documenti XML tramite SOAP, i servizi Web svolgono un ruolo significativo in relazione alle piattaforme di integrazione. Per accedere a un servizio Web esterno, l'autore di un'orchestrazione può usare l'opzione Aggiungi riferimento Web in Visual Studio insieme all'adattatore Servizi Web per richiamare direttamente le operazioni. Analogamente, BizTalk Server fornisce una pubblicazione guidata servizi Web che può generare un progetto di servizio Web ASP.NET esponendo una o più operazioni di un'orchestrazione come servizi Web chiamabili SOAP. Queste due opzioni consentono agli sviluppatori sia di accedere a servizi Web esistenti dall'interno di un processo di business sia di esporre le funzionalità di un'orchestrazione come servizio Web per altri processi di business.

  • L'introduzione di servizi Web può avere un notevole impatto anche sulle modalità di definizione dei processi di business. Si consideri, ad esempio, il caso di due organizzazioni che interagiscono usando servizi Web. Affinché l'interazione sia efficace, è necessario che ciascuna entità conosca il processo di business usato dall'altra. Se entrambe le organizzazioni usano BizTalk Server, questo non è un problema importante. È possibile usare strumenti come la tecnologia di gestione dei partner commerciali per distribuire queste informazioni. Se invece le organizzazioni usano prodotti diversi, è utile avere a disposizione strumenti per descrivere gli aspetti dei processi di business in un modo non specifico del fornitore.

    A tale scopo, Microsoft, IBM e altri fornitori hanno creato il linguaggio BPEL (Business Process Execution Language). Un processo aziendale definito tramite l'Designer orchestrazione può essere esportato in BPEL e BizTalk Server può anche importare i processi definiti in BPEL. Benché il linguaggio sia utile per descrivere e condividere le parti di un processo di business visibili esternamente, BPEL è più incentrato sulla risoluzione di questo problema che sull'esecuzione di processi di business completi tra più piattaforme. È anche importante comprendere che BPEL è interamente basato su servizi Web, mentre BizTalk Server e altri prodotti che supportano questo linguaggio offrono altro. Ad esempio, BizTalk Server supporta il mapping tra diversi XML Schema, la chiamata di metodi in oggetti locali e altre funzionalità non disponibili in BPEL. Per una serie di motivi, BPEL non è quindi un linguaggio completo per la definizione dei processi di business. Poiché il processo di standardizzazione di BPEL avviato da OASIS (Organization for the Advancement of Structured Information Standards) non è ancora completato, è difficile poter considerare questo linguaggio una tecnologia matura.

  • Le orchestrazioni rappresentano lo strumento fondamentale per la creazione dei processi di business in BizTalk Server. Alcuni aspetti delle orchestrazioni, tuttavia, variano con maggiore frequenza rispetto ad altri. In particolare, l'aspetto caratterizzato da maggiore variabilità è costituito dalle decisioni incorporate in un processo di business, ossia le regole di business. Esempi di regole possono essere l'aumento del limite di spesa da EUR 100.000 a EUR 500.000 per un manager che ottiene una promozione oppure la riduzione del limite di ordine massimo da 100 unità a sole 10 unità per un cliente costantemente in ritardo con i pagamenti. È possibile specificare e aggiornare queste regole usando il motore regole business.

Utilizzo del Motore regole di business

Progettazione orchestrazioni, insieme all'Editor BizTalk e a BizTalk Mapper, fornisce un metodo efficace per definire un processo di business e le relative regole. Per la definizione e la modifica delle regole di business può tuttavia essere utile uno strumento più semplice. A tale scopo, in BizTalk Server è disponibile il Motore regole di business (BRE). Mentre gli sviluppatori usano per lo più il Motore regole di business, gli utenti più orientati al business possono creare e modificare set di regole di business usando uno strumento denominato Creazione regole di business.

Il Motore regole di business può essere utile quando è necessario valutare un set di regole di business particolarmente complesso. Decidere se concedere un prestito, ad esempio, può implicare l'utilizzo di un ampio set di regole in base alla solidità creditizia del cliente, al reddito e ad altri fattori. In modo analogo, decidere se vendere una polizza di assicurazione sulla vita può dipendere da diversi fattori, tra cui l'età, il sesso e lo stato di salute del richiedente. Pur essendo possibile esprimere tutte queste regole sotto forma di istruzioni condizionali usando, ad esempio, la forma Decisione di un'orchestrazione, il processo di implementazione potrebbe rivelarsi piuttosto complesso. Per processi di questo tipo che prevedono un utilizzo intensivo delle regole, il Motore regole di business garantisce una notevole semplificazione delle attività da eseguire.

Il Motore regole di business consente infatti agli sviluppatori di modificare le regole in modo semplice e rapido in base alle necessità. Per comprendere l'importanza di tale strumento, è utile ricordare le operazioni necessarie per modificare una regola di business implementata in un'orchestrazione. Uno sviluppatore deve prima aprire l'orchestrazione in Visual Studio, modificare le forme appropriate (e forse gli oggetti .NET o COM che richiamano), quindi compilare e distribuire l'assembly modificato. Per effettuare queste operazioni, è necessario anche arrestare e riavviare l'applicazione BizTalk in cui è inclusa l'orchestrazione. Se la regola di business viene invece implementata usando il Motore regole di business, può essere modificata senza dover ricompilare o riavviare alcunché. È sufficiente modificare la regola desiderata usando Creazione regole di business, quindi ridistribuire il nuovo set di regole. La modifica ha effetto immediato. Inoltre, mentre le orchestrazioni vengono in genere create e gestite dagli sviluppatori, le regole di business sono leggibili al punto che, in alcuni casi, possono essere modificate dai business analyst senza alcun intervento da parte del personale tecnico.

Il creatore di un set di regole di business inizia in genere usando Creazione regole di business per definire un vocabolario utile per specificare tali regole. Ogni termine del vocabolario fornisce un nome descrittivo per alcune informazioni, ad esempio Numero spedizione, Quantità di articoli massima o Limite di approvazione. È possibile impostare ciascuno di questi termini su una costante oppure eseguirne il mapping a un determinato elemento o attributo di qualche schema XML (e quindi di un messaggio in arrivo), al risultato di una query SQL eseguita a un database o perfino a un valore di un oggetto .NET.

Dopo aver definito un vocabolario, è possibile creare criteri di business che usano tale vocabolario usando Creazione regole di business. Ogni criterio può contenere una o più regole di business. Una regola usa i termini definiti in un vocabolario insieme agli operatori logici Maggiore di, Minore di, Uguale a e altri per definire la modalità di funzionamento di un processo di business. Una regola di business può definire in che modo i valori contenuti in un documento XML ricevuto devono avere effetto sui valori creati in un documento XML inviato o in che modo i valori ricevuti devono avere effetto sul valore che verrà scritto in un database.

Per eseguire un criterio di business, un'orchestrazione usa una forma CallRules. La forma crea un'istanza del Motore regole di business, specifica i criteri da eseguire, quindi passa le informazioni necessarie per questi criteri, ad esempio un documento XML ricevuto. Il bre può essere richiamato anche a livello di codice usando un oggetto . Modello a oggetti basato su NET, che consente di essere chiamato dalle applicazioni che non usano BizTalk Server. In altri termini, le applicazioni Windows Form, il software che espone servizi Web e qualsiasi altro strumento creato in base a .NET Framework possono usare il Motore regole di business potenzialmente ogni volta che si rende necessario per la risoluzione di un problema.

I vocabolari e le regole di business possono rivelarsi molto più complessi e potenti di quanto riportato nei semplici esempi descritti. Tuttavia, la base del Motore regole di business è costituita della definizione di un vocabolario e dalla successiva definizione di set di regole che usano tale vocabolario.

Vedere anche

Motore di messaggistica di BizTalk Server