sommario:
- In Plain English
- Caso di Studio
le Organizzazioni che già hanno impiegato enterprise application integration (EAI) prodotti middleware per automatizzare i processi di business o di integrare i vari ambienti legacy probabilmente già familiarità con il concetto di orchestrazione. In questi sistemi, un insieme centralizzato di logica del flusso di lavoro facilita l’interoperabilità tra due o più applicazioni diverse. Un’implementazione comune dell’orchestrazione è il modello hub-and-spoke che consente a più partecipanti esterni di interfacciarsi con un motore di orchestrazione centrale.
Uno dei requisiti alla base della creazione di queste soluzioni era quello di accogliere la fusione di grandi processi aziendali. Con l’orchestrazione, diversi processi possono essere collegati senza dover riqualificare le soluzioni che originariamente automatizzavano i processi individualmente. L’orchestrazione colma questa lacuna introducendo una nuova logica del flusso di lavoro. Inoltre, l’uso dell’orchestrazione può ridurre significativamente la complessità degli ambienti delle soluzioni. La logica del flusso di lavoro viene astratta e mantenuta più facilmente rispetto a quando è incorporata all’interno di singoli componenti della soluzione.
Il ruolo dell’orchestrazione si allarga negli ambienti orientati ai servizi. Attraverso l’uso di estensioni che consentono di esprimere la logica dei processi aziendali tramite i servizi, l’orchestrazione può rappresentare ed esprimere la logica di business in una sede standardizzata basata sui servizi. Quando si costruiscono soluzioni orientate ai servizi, questo fornisce un mezzo estremamente attraente per alloggiare e controllare la logica che rappresenta il processo automatizzato.
L’orchestrazione sfrutta ulteriormente l’interoperabilità intrinseca richiesta dai progetti di servizio fornendo potenziali endpoint di integrazione nei processi. Un aspetto chiave del modo in cui l’orchestrazione è posizionata all’interno di SOA è il fatto che le orchestrazioni stesse esistono come servizi. Pertanto, basandosi sulla logica di orchestrazione standardizza la rappresentazione dei processi in un’organizzazione, pur affrontando l’obiettivo della federazione aziendale e promuovendo l’orientamento ai servizi.
Figura 6.32. Un’orchestrazione controlla quasi ogni aspetto di un’attività complessa.
Una specifica di settore primaria che standardizza l’orchestrazione è il Web Services Business Process Execution Language (WS-BPEL). Questo libro riconosce WS-BPEL come estensione chiave di seconda generazione e quindi utilizza i suoi concetti e la terminologia come base per una serie di discussioni relative alla modellazione dei processi aziendali.
Nota
WS-BPEL è il nome più recente dato a questa specifica, che è anche conosciuta come BPEL4WS e solo BPEL. Per una panoramica delle parti principali del linguaggio WS-BPEL e una discussione su come è avvenuto il cambio di nome, vedere il Capitolo 16.
In inglese
Dopo aver lavato con successo diverse auto insieme, Chuck, Bob, Jim e io decidiamo di avviare la nostra azienda. Formalizziamo i passaggi del nostro processo di lavaggio auto in modo da poter gestire diversi tipi di auto con diverse esigenze di pulizia.
Il nostro processo è quindi influenzato dai seguenti nuovi requisiti:
- Decidiamo di assumere un aiuto extra durante le ore di punta. Questo introduce fino a due membri aggiuntivi che si uniscono al nostro team.
- Poiché non abbiamo capitale di rischio per questo business, facciamo un accordo con una stazione di servizio locale. In cambio di utilizzare una parte del loro lotto per la nostra operazione di lavaggio auto, siamo d’accordo per dare una mano con i compiti di pompaggio del gas durante le ore di punta.
Il nostro semplice processo di lavaggio auto ora è diventato molto più complicato. Il processo non è più fisso in quanto può cambiare in un dato momento a causa di varie condizioni ed eventi.
- Quando arrivano i nostri lavoratori extra, l’assegnazione delle attività dell’intera squadra viene modificata.
- Quando il personale della stazione di servizio ha bisogno di aiuto extra, siamo obbligati a inviare uno o più membri del nostro team di lavaggio auto per assisterli.
Questi esempi si riferiscono a condizioni prevedibili che si verificano su base giornaliera. La nostra operazione è ulteriormente influenzata da alcuni vincoli:
- Se il nostro flusso di cassa scende al di sotto di un certo importo, non siamo in grado di permettersi lavoratori part-time.
- Se piove, tutto il lavoro viene sospeso (portando anche a una riduzione del flusso di cassa).
Questi vincoli introducono condizioni meno comuni, ma che dobbiamo sempre prendere in considerazione. Per adattarsi a queste potenziali situazioni, elaboriamo un piano che traccia il nostro processo espanso e fornisce processi alternativi per affrontare condizioni comuni e non comuni.
Questo piano è essenzialmente un flusso di lavoro che unisce i singoli passaggi con processi e sotto-processi partizionati per punti decisionali. Questo elaborato flusso di lavoro incorpora il nostro processo originale con il processo della stazione di servizio e il processo esteso risultante dall’arrivo dei nostri lavoratori part-time. Questo flusso di lavoro è essenzialmente un’orchestrazione che gestisce i singoli requisiti di processo e le risorse correlate, i partecipanti, gli eventi, le regole aziendali e le attività.
6.6.1. Protocolli aziendali e definizione del processo
La logica del flusso di lavoro che comprende un’orchestrazione può essere costituita da numerose regole, condizioni ed eventi aziendali. Collettivamente, queste parti di un’orchestrazione stabiliscono un protocollo aziendale che definisce come i partecipanti possono interagire per ottenere il completamento di un’attività aziendale. I dettagli della logica del flusso di lavoro incapsulata ed espressa da un’orchestrazione sono contenuti all’interno di una definizione di processo.
6.6.2. Servizi di processo e servizi partner
Identificati e descritti all’interno di una definizione di processo sono i partecipanti al processo consentiti. In primo luogo, il processo stesso è rappresentato come un servizio, risultando in un servizio di processo (che sembra essere un altro dei nostri modelli di servizio, come mostrato in Figura 6.33).
Figura 6.33. Un servizio di processo che coordina ed espone le funzionalità di tre servizi partner.
Altri servizi autorizzati a interagire con il servizio di processo sono identificati come servizi partner o link partner. A seconda della logica del flusso di lavoro, il servizio di processo può essere richiamato da un servizio partner esterno o può richiamare altri servizi partner (Figura 6.34).
Figura 6.34. Il servizio di processo, dopo essere stato richiamato per la prima volta da un servizio partner, richiama quindi un altro servizio partner.
6.6.3. Attività di base e attività strutturate
WS-BPEL suddivide la logica del flusso di lavoro in una serie di attività primitive predefinite. Le attività di base (receive, invoke, reply, throw, wait) rappresentano azioni fondamentali del flusso di lavoro che possono essere assemblate utilizzando la logica fornita dalle attività strutturate (sequence, switch, while, flow, pick). Il modo in cui queste attività possono essere utilizzate per esprimere l’effettiva logica dei processi aziendali è esplorato nel Capitolo 16.
6.6.4. Sequenze, flussi e collegamenti
Le attività di base e strutturate possono essere organizzate in modo che l’ordine in cui vengono eseguite sia predefinito. Una sequenza allinea gruppi di attività correlate in un elenco che determina un ordine di esecuzione sequenziale. Le sequenze sono particolarmente utili quando una parte della logica dell’applicazione dipende dal risultato di un’altra.
I flussi contengono anche gruppi di attività correlate, ma introducono diversi requisiti di esecuzione. Pezzi di logica dell’applicazione possono essere eseguiti contemporaneamente all’interno di un flusso, il che significa che non è necessariamente necessario che un insieme di attività attenda prima che un altro finisca. Tuttavia, il flusso stesso non termina fino a quando tutte le attività incapsulate non hanno completato l’elaborazione. Ciò garantisce una forma di sincronizzazione tra la logica dell’applicazione che risiede nei singoli flussi.
I collegamenti vengono utilizzati per stabilire dipendenze formali tra attività che fanno parte dei flussi. Prima che un’attività possa essere completata completamente, deve assicurarsi che tutti i requisiti stabiliti nei collegamenti in uscita siano soddisfatti. Allo stesso modo, prima che qualsiasi attività collegata possa iniziare, i requisiti contenuti all’interno di qualsiasi collegamento in entrata devono essere soddisfatti. Le regole fornite dai collegamenti sono anche indicate come dipendenze di sincronizzazione.
6.6.5. Orchestrazioni e attività
Come abbiamo definito in precedenza, un’attività è un termine generico che può essere applicato a qualsiasi unità logica di lavoro completata da una soluzione orientata ai servizi. L’ambito di una singola orchestrazione, quindi, può essere classificato come un’attività complessa e molto probabilmente di lunga durata.
6.6.6. Orchestrazione e coordinamento
L’orchestrazione, rappresentata da WS-BPEL, può utilizzare pienamente il framework di gestione del contesto WS-Coordination incorporando il tipo di coordinamento WS-BusinessActivity. Questa specifica definisce protocolli di coordinamento progettati per supportare attività complesse e di lunga durata.
6.6.7. Orchestrazione e SOA
La logica dei processi aziendali è alla base delle soluzioni di automazione. L’orchestrazione fornisce un modello di automazione in cui la logica di processo è centralizzata ma ancora estensibile e componibile (Figura 6.35). Attraverso l’uso di orchestrazioni, gli ambienti di soluzioni orientate ai servizi diventano intrinsecamente estensibili e adattabili. Le orchestrazioni stesse in genere stabiliscono un punto comune di integrazione per altre applicazioni, il che rende un’orchestrazione implementata un abilitatore di integrazione chiave.
Figura 6.35. Orchestrazione relativa ad altre parti di SOA.
Queste qualità portano ad una maggiore agilità organizzativa perché:
- La logica del flusso di lavoro incapsulata da un’orchestrazione può essere modificata o estesa in una posizione centrale.
- Posizionare un’orchestrazione centralmente può facilitare notevolmente la fusione dei processi aziendali astraendo il collante che lega insieme le corrispondenti soluzioni di automazione.
- Creando architetture di integrazione orientate ai servizi potenzialmente su larga scala, l’orchestrazione, a livello fondamentale, può supportare l’evoluzione di un’impresa federata in modo diverso.
L’orchestrazione è un ingrediente chiave per raggiungere uno stato di federazione all’interno di un’organizzazione che contiene varie applicazioni basate su piattaforme di calcolo disparate. I progressi nel middleware consentono ai motori di orchestrazione stessi di integrarsi completamente in ambienti orientati ai servizi.
Il concetto di orchestrazione orientata ai servizi sfrutta appieno tutti i concetti che abbiamo discusso finora in questo capitolo. Per molti ambienti, le orchestrazioni diventano il cuore di SOA.
Case Study
La serie di passaggi che abbiamo incluso in un’attività aziendale nel precedente esempio di case study ha dimostrato come TLS utilizzasse il protocollo WS-BusinessActivity per aggiungere la gestione del contesto e la gestione delle eccezioni a un’attività complessa di lunga durata. Anche se l’ambito di un’attività commerciale può costituire un processo aziendale, non fornisce a TLS un mezzo standard per esprimere la logica del flusso di lavoro sottostante. Per questo, TLS impiega un’orchestrazione WS-BPEL (Figura 6.36).
Figura 6.36. Il processo di invio degli ordini di acquisto TLS esteso gestito da un’orchestrazione e che coinvolge numerose organizzazioni potenziali partner.
L’orchestrazione stabilisce una logica di processo completa che comprende l’attività aziendale e la estende ulteriormente per governare ulteriori scenari di interazione con più servizi vendor. Ad esempio, quando un fornitore non può evadere un ordine, al fornitore successivo nella riga viene inviato lo stesso ordine di acquisto. Questo ciclo viene ripetuto fino a quando uno dei due fornitori può completare l’ordine nella sua interezza (entro determinate limitazioni di prezzo) o fino a quando tutti i fornitori sono stati interrogati. In quest’ultima situazione, il sistema valuta semplicemente l’offerta migliore sul tavolo applicando una formula che tiene conto del prezzo, della percentuale di ordine da riempire e dei termini di arretrato.
La logica di orchestrazione gestisce tutti gli aspetti del processo, incluso il coinvolgimento di più servizi partner vendor, nonché l’attività di business che inizia quando un PO viene elaborato.
SINTESI DEI PUNTI CHIAVE
- Un’orchestrazione esprime un corpo di logica dei processi aziendali che è tipicamente di proprietà di una singola organizzazione.
- Un’orchestrazione stabilisce un protocollo aziendale che definisce formalmente una definizione di processo aziendale.
- La logica del flusso di lavoro all’interno di un’orchestrazione è suddivisa in una serie di attività di base e strutturate che possono essere organizzate in sequenze e flussi.
- L’orchestrazione è stata definita il “cuore della SOA”, in quanto stabilisce un mezzo per centralizzare e controllare una grande quantità di logiche inter e intra-applicative attraverso un modello di servizio standardizzato.