Una metodologia di analisi e confronto per strumenti BPM
Una metodologia di analisi e confronto per strumenti BPM
Una metodologia di analisi e confronto per strumenti BPM
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
POLITECNICO DI MILANO<br />
Facoltà <strong>di</strong> Ingegneria dell’Informazione<br />
POLO REGIONALE DI COMO<br />
Corso <strong>di</strong> Laurea Specialistica in<br />
Ingegneria Informatica<br />
<strong>Una</strong> <strong>metodologia</strong> <strong>di</strong> <strong>analisi</strong> e<br />
<strong>confronto</strong> <strong>per</strong> <strong>strumenti</strong> <strong>BPM</strong><br />
Relatore: Prof. Giuseppe Pozzi<br />
Correlatore: Prof. Marco Brambilla<br />
Tesi <strong>di</strong> Laurea <strong>di</strong>: Vanoni Davide<br />
matr. 707679<br />
Anno Accademico 2008-2009
POLITECNICO DI MILANO<br />
Facoltà <strong>di</strong> Ingegneria dell’Informazione<br />
POLO REGIONALE DI COMO<br />
Master of Science in<br />
Computer Engineering<br />
A methodology for analysis and<br />
comparison for <strong>BPM</strong> tools<br />
Su<strong>per</strong>visor: Prof. Giuseppe Pozzi<br />
Assistant Su<strong>per</strong>visor: Prof. Marco Brambilla<br />
Master Graduation Thesis by: Vanoni Davide<br />
Student Id. number 707679<br />
Academic Year 2008-2009
A Martina
Abstract<br />
Business Process Management (<strong>BPM</strong>) aims at describing, managing, executing,<br />
controlling, and storing business processes inside an organization,<br />
helping the organization to achieve its mission-critical goals.<br />
Even though many vendors supply <strong>BPM</strong> tools, there is no rigorous<br />
methodology available today to evaluate and to compare such tools.<br />
This thesis proposes an evaluation method for <strong>BPM</strong> tools. The method<br />
derives from an extended version of the business process life cycle described<br />
by van der Aalst. The extended version proposed here includes several facets<br />
affecting the usability of the tool, the targeted users, its compliance with<br />
<strong>BPM</strong> standards and recommendations (<strong>BPM</strong>N, X-PDL, BPEL).<br />
This thesis considers several entries for every category of assessment of<br />
the framework. The evaluation framework covers all the major aspects of<br />
the <strong>BPM</strong> fields. After having defined the framework for the assessment, such<br />
a framework is applied to <strong>di</strong>fferent <strong>BPM</strong> tools. By applying the framework,<br />
the thesis achieve two main goals: the first one is that of validating the<br />
suitability of the assessment framework; the second one is that of taking a<br />
snapshot of the current situation of the <strong>BPM</strong> toolsavailableonthemarket.<br />
Finally the thesis shows the results of the analysis, by applying the proposed<br />
methodology to the (52) most popular tools and then by considering<br />
in detail some of them (21).
Sommario<br />
Il Business Process Management è una <strong>di</strong>sciplina il cui scopo è quello <strong>di</strong><br />
descrivere, gestire, eseguire e controllare i processi <strong>di</strong> business presenti all’interno<br />
<strong>di</strong> un’organizzazione con il fine <strong>di</strong> aiutare l’organizzazione a <strong>per</strong>seguire<br />
i propri obiettivi <strong>di</strong> business.<br />
Sebbene numerosi produttori propongono le loro soluzioni <strong>BPM</strong>, non<br />
esiste ad oggi una <strong>metodologia</strong> rigorosa <strong>per</strong> valutare e confrontare queste<br />
soluzioni.<br />
La tesi propone un metodo <strong>di</strong> valutazione <strong>per</strong> gli <strong>strumenti</strong> <strong>BPM</strong>. Il<br />
metodo deriva dalla versione estesa del modello <strong>di</strong> ciclo <strong>di</strong> vita <strong>di</strong> un processo<br />
<strong>di</strong> business descritto da van der Aaslt. La versione estesa proposta include<br />
aspetti che riguardano l’usabilità dello strumento, gli utenti target a cui lo<br />
strumento è rivolto, la sua conformità con gli standard e le raccomandazioni<br />
<strong>BPM</strong> (<strong>BPM</strong>N, X-PDL, BPEL).<br />
La tesi definisce <strong>di</strong>verse voci <strong>per</strong> ogni categoria del modello <strong>di</strong> valutazione<br />
e <strong>analisi</strong>. Il metodo <strong>di</strong> valutazione copre tutti i maggiori aspetti <strong>di</strong> uno<br />
strumento <strong>BPM</strong>. Dopo aver definito la <strong>metodologia</strong> <strong>di</strong> valutazione, questa<br />
viene poi applicata a <strong>di</strong>versi <strong>strumenti</strong> <strong>BPM</strong>. Con l’applicazione pratica del<br />
modello <strong>di</strong> valutazione proposto, la tesi raggiunge due principali obiettivi: il<br />
primo è quello <strong>di</strong> valutare l’adeguatezza del modello <strong>di</strong> valutazione proposto;<br />
il secondo è quello <strong>di</strong> catturare un’istantanea della corrente situazione degli<br />
<strong>strumenti</strong> <strong>BPM</strong> presenti sul mercato.<br />
Infine la tesi mostra i risultati dell’<strong>analisi</strong>, applicando la <strong>metodologia</strong> <strong>di</strong><br />
valutazione ai (52) più popolari <strong>strumenti</strong> <strong>BPM</strong> e quin<strong>di</strong> considerandone in<br />
dettaglio solo alcuni (21).
Ringraziamenti<br />
Ringrazio il Prof. Giuseppe Pozzi e il Prof. Marco Brambilla <strong>per</strong> la loro<br />
<strong>di</strong>sponibilià durante lo svolgimento dell’attività <strong>di</strong> tesi. A loro va tutta la<br />
mia gratitu<strong>di</strong>ne. Ringrazio i miei genitori <strong>per</strong> avermi dato l’opportunità<br />
<strong>di</strong> stu<strong>di</strong>are e <strong>di</strong> conseguire un titolo <strong>di</strong> laurea in ingegneria (sforzo non da<br />
poco da parte loro). Ringrazio tutte quelle <strong>per</strong>sone che nel corso degli anni<br />
accademici mi hanno dato l’opportunità <strong>di</strong> applicare sul campo lavorativo<br />
le competenze apprese durante gli stu<strong>di</strong>. Infine ringrazio Martina. Sei stata<br />
la mia forza durante i miei momenti <strong>di</strong> sconforto.<br />
V
In<strong>di</strong>ce<br />
Abstract I<br />
Sommario III<br />
Ringraziamenti V<br />
1 Introduzione 1<br />
1.1 Processi <strong>di</strong> business, <strong>BPM</strong> e sistemi <strong>BPM</strong> . . . . . . . . . . . 1<br />
1.2 Motivazione e obiettivi della tesi . . . . . . . . . . . . . . . . 4<br />
1.3 Struttura della tesi . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
2 Stato dell’Arte 7<br />
2.1 Processi <strong>di</strong> business . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
2.1.1 Classificazione dei processi <strong>di</strong> business . . . . . . . . . 8<br />
2.1.2 Componenti <strong>di</strong> un processo <strong>di</strong> business . . . . . . . . . 11<br />
2.2 Business Process Management . . . . . . . . . . . . . . . . . . 12<br />
2.2.1 Definizione <strong>di</strong> Business Process Management . . . . . 13<br />
2.2.2 Workflow . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
2.2.3 Web Service . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
2.2.4 Sistemi <strong>BPM</strong>S . . . . . . . . . . . . . . . . . . . . . . 37<br />
3 Standard degli Strumenti <strong>BPM</strong> 41<br />
3.1 Standard grafici <strong>per</strong> la modellazione . . . . . . . . . . . . . . 42<br />
3.1.1 Notazione <strong>BPM</strong>N . . . . . . . . . . . . . . . . . . . . . 46<br />
3.2 Standard dei formati <strong>di</strong> interscambio . . . . . . . . . . . . . . 63<br />
3.2.1 XML Process Definition Language . . . . . . . . . . . 65<br />
3.3 Standard <strong>di</strong> esecuzione dei processi <strong>di</strong> business . . . . . . . . 70<br />
4 Analisi degli Strumenti <strong>BPM</strong> 79<br />
4.1 Obiettivi dell’<strong>analisi</strong> . . . . . . . . . . . . . . . . . . . . . . . 80<br />
4.2 Scelta degli <strong>strumenti</strong> <strong>BPM</strong> da analizzare . . . . . . . . . . . 80<br />
VII
4.3 Processo <strong>di</strong> business <strong>di</strong> riferimento . . . . . . . . . . . . . . . 86<br />
4.4 Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione . . . . . . . . . . . 92<br />
4.4.1 Conformità agli standard . . . . . . . . . . . . . . . . 93<br />
4.4.2 Modellazione del processo <strong>di</strong> business . . . . . . . . . 97<br />
4.4.3 Configurazione <strong>di</strong> un sistema <strong>BPM</strong> . . . . . . . . . . . 102<br />
4.4.4 Attivazione del processo <strong>di</strong> business . . . . . . . . . . 108<br />
4.4.5 Analisi del processo <strong>di</strong> business . . . . . . . . . . . . . 113<br />
4.4.6 Usabilità dello strumento <strong>BPM</strong> . . . . . . . . . . . . . 118<br />
4.4.7 Utenti target <strong>per</strong> l’utilizzo dello strumento <strong>BPM</strong> . . . 121<br />
4.4.8 Riepilogo del framework <strong>di</strong> <strong>analisi</strong> proposto . . . . . . 125<br />
5 Valutazione dei Singoli Strumenti <strong>BPM</strong> 129<br />
5.1 Adobe LiveCycle Enterprise E<strong>di</strong>tion . . . . . . . . . . . . . . 130<br />
5.2 AgilePoint <strong>BPM</strong>S . . . . . . . . . . . . . . . . . . . . . . . . . 134<br />
5.3 Avantage <strong>BPM</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . 137<br />
5.4 Billfish <strong>BPM</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . 139<br />
5.5 BizAgi <strong>BPM</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . 142<br />
5.6 Business Process Visual Architect . . . . . . . . . . . . . . . . 145<br />
5.7 e<strong>BPM</strong>N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149<br />
5.8 Genexus <strong>BPM</strong>S . . . . . . . . . . . . . . . . . . . . . . . . . . 152<br />
5.9 IBM WebSphere Dynamic Process E<strong>di</strong>tion . . . . . . . . . . . 154<br />
5.10 iGrafx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157<br />
5.11 Intalio Enterprise E<strong>di</strong>tion . . . . . . . . . . . . . . . . . . . . 160<br />
5.12 j<strong>BPM</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164<br />
5.13 Lombar<strong>di</strong> BluePrint . . . . . . . . . . . . . . . . . . . . . . . 167<br />
5.14 Metastorm <strong>BPM</strong> . . . . . . . . . . . . . . . . . . . . . . . . . 170<br />
5.15 Oracle <strong>BPM</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173<br />
5.16 Process360 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177<br />
5.17 ProcessPAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180<br />
5.18 Questetra <strong>BPM</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . 182<br />
5.19 Savvion <strong>BPM</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . 184<br />
5.20 Tibco Business Stu<strong>di</strong>o . . . . . . . . . . . . . . . . . . . . . . 187<br />
5.21 YAWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191<br />
6 Risultati della Analisi Comparativa 193<br />
6.1 In<strong>di</strong>viduazione Strumenti <strong>BPM</strong>S . . . . . . . . . . . . . . . . 194<br />
6.2 Analisi Comparativa dei <strong>BPM</strong>S In<strong>di</strong>viduati . . . . . . . . . . 196<br />
6.2.1 Completezza Rispetto alle Funzionalità . . . . . . . . 196<br />
6.2.2 Target <strong>di</strong> Utenti <strong>di</strong> Riferimento . . . . . . . . . . . . . 200<br />
6.2.3 Usabilità . . . . . . . . . . . . . . . . . . . . . . . . . 203<br />
VIII
6.2.4 Conformità agli standard <strong>BPM</strong> . . . . . . . . . . . . . 207<br />
6.3 Esito della valutazione comparativa . . . . . . . . . . . . . . . 210<br />
7 Conclusioni e <strong>di</strong>rezioni future <strong>di</strong> ricerca 215<br />
7.1 Valutazione del framework <strong>di</strong> <strong>analisi</strong> . . . . . . . . . . . . . . 215<br />
7.2 Direzioni future <strong>di</strong> ricerca . . . . . . . . . . . . . . . . . . . . 216<br />
Bibliografia 219<br />
A Risultati dettagliati dell’<strong>analisi</strong> degli <strong>strumenti</strong> <strong>BPM</strong> 223<br />
B Analisi degli <strong>strumenti</strong> <strong>BPM</strong> 231
Capitolo 1<br />
Introduzione<br />
Il capitolo presenta il contesto, gli obiettivi e la struttura <strong>di</strong> questa tesi.<br />
Esso mette in risalto la rilevanza <strong>di</strong> avere un metodo <strong>di</strong> valutazione <strong>per</strong> i<br />
prodotti <strong>di</strong> Business Process Management.<br />
1.1 Processi <strong>di</strong> business, <strong>BPM</strong> e sistemi <strong>BPM</strong><br />
Ogni organizzazione possiede dei processi <strong>di</strong> business. Questi processi <strong>di</strong><br />
business sono una sequenza controllata <strong>di</strong> attività che portano alla creazione<br />
<strong>di</strong> un bene o servizio. Il grado <strong>di</strong> organizzazione <strong>di</strong> questi processi <strong>di</strong> business<br />
determina il successo <strong>di</strong> un’organizzazione [34]. Per esempio, un appropriato<br />
processo <strong>di</strong> pubblicità può incrementare il bacino <strong>di</strong> clienti potenziali<br />
dell’organizzazione oppure un idoneo processo manifatturiero assicura che il<br />
prodotto sia <strong>di</strong> alta qualità, ad un prezzo ragionevole e rispetti i tempi <strong>di</strong><br />
mercato. Questo incrementa <strong>di</strong> conseguenza la sod<strong>di</strong>sfazione del cliente e<br />
rende l’organizzazione competitiva sul mercato.<br />
I processi <strong>di</strong> business possono essere visti come un insieme <strong>di</strong> attività collegate<br />
e correlate tra <strong>di</strong> loro che vengono progettate <strong>per</strong> acquisire un certo<br />
input e trasformarlo in uno specifico output [21]. Per esempio, pren<strong>di</strong>amo in<br />
considerazione il processo <strong>di</strong> business <strong>di</strong> un’agenzia assicurativa nella quale<br />
un cliente richiede <strong>di</strong> stipulare un contratto <strong>di</strong> assicurazione. Questo processo<br />
<strong>di</strong> business è composto da attività che riguardano: il controllare la<br />
cre<strong>di</strong>bilità del cliente, ottenere le sue informazioni, calcolare il suo salario<br />
mensile, e molte altre. Tutte queste attività sono collegate le une con le altre,<br />
in modo tale che esse accadano nel giusto momento e nel giusto or<strong>di</strong>ne.<br />
L’input <strong>di</strong> questo processo <strong>di</strong> business è la richiesta del cliente e l’output è<br />
il contratto firmato della polizza assicurativa.
2 Capitolo 1. Introduzione<br />
Fattori come la globalizzazione, le opportunità <strong>di</strong> e-business, l’instabilità<br />
politica porta ad un mercato caratterizzato da incertezza nel quale un’organizzazione<br />
deve costantemente adattarsi. Se un’organizzazione non cambia e<br />
non si adatta al suo ambiente, allora deve affrontare il rischio <strong>di</strong> essere esclusa<br />
dal mercato [4]. Quin<strong>di</strong> i cambiamenti organizzativi sono fondamentali <strong>per</strong><br />
la sopravvivenza <strong>di</strong> un’organizzazione. Tra<strong>di</strong>zionalmente vengono in<strong>di</strong>viduati<br />
due tipologie <strong>di</strong> cambiamenti: quelli rivoluzioanari e quelle evolutivi. I<br />
primi sono i cambiamenti <strong>di</strong> tipo ra<strong>di</strong>cale che si concretizzano nei progetti <strong>di</strong><br />
reingegnerizzazione dei processi <strong>di</strong> business e che cambiano completamente<br />
le modalità o<strong>per</strong>ative <strong>di</strong> un’organizzazione. Il secondo tipo <strong>di</strong> cambiamento<br />
è invece più graduale e <strong>per</strong>mette un’adattamento delle modalità o<strong>per</strong>ative<br />
in base all’evolversi della situazione del mercato. Entrambi questi tipi <strong>di</strong><br />
cambiamenti necessitano delle tecniche e metodologie <strong>per</strong> la loro gestione.<br />
Il Business Process Management è un metodo che facilita la gestione dei<br />
cambiamenti che deve affrontare un’organizzazione. In particolare, il Business<br />
Process Management (<strong>BPM</strong>) è una <strong>di</strong>sciplina gestionale che si occupa<br />
<strong>di</strong> descrivere e gestire i processi <strong>di</strong> business in un organizzazione. L’obiettivo<br />
del Business Process Management è quello <strong>di</strong> raggiungere gli obiettivi<br />
dell’organizzazione allineando i processi <strong>di</strong> business con questi obiettivi e<br />
migliorando <strong>di</strong> continuo questi processi.<br />
Nell’era dell’impresa <strong>di</strong>gitale la gestione dei processi <strong>di</strong> business viene<br />
coa<strong>di</strong>uvata me<strong>di</strong>ante l’utilizzo <strong>di</strong> sistemi software che sono in grado <strong>di</strong> gestire<br />
una grande quantità <strong>di</strong> informazioni: i sistemi <strong>BPM</strong> (<strong>BPM</strong>S). I Business<br />
Process Management System sono il risultato della convergenza <strong>di</strong> <strong>di</strong>versi<br />
trend sulla gestione delle informazioni che sono apparsi nel corso degli anni<br />
come viene illustrato in figura 1.1. La figura mostra che i sistemi informativi<br />
sono composti da <strong>di</strong>versi livelli. Il centro è formato dall’infrastruttura<br />
del sistema, che consiste dell’hardware e del sistema o<strong>per</strong>ativo che <strong>per</strong>mette<br />
all’hardware <strong>di</strong> funzionare. Il secondo livello consiste <strong>di</strong> applicazioni generiche<br />
che vengono utilizzate largamente all’interno <strong>di</strong> un’organizzazione. Ad<br />
esempio tra queste troviamo i Database Management System. Il terzo livello<br />
consiste <strong>di</strong> applicazioni specifiche del dominio <strong>di</strong> applicazione. Queste<br />
applicazioni vengono usate solamente entro specifiche tipologie <strong>di</strong> organizzazioni.<br />
Il quarto livello consiste <strong>di</strong> applicazioni sviluppate specificatamente<br />
<strong>per</strong> la singola organizzazione. Nel corso degli anni ’60 il secondo e terzo livello<br />
non esisteva. Di fatto le organizzazioni <strong>di</strong>sponevano <strong>di</strong> applicativi fatti<br />
su misura incentrati sui dati che erano in esecuzione su sistemi o<strong>per</strong>ativi<br />
specifici dell’hardware a <strong>di</strong>sposizione. Con il passare del tempo il numero<br />
e la complessità delle applicazioni specifiche del dominio e della singola organizzazione<br />
aumentò. Questo fatto fu dovuto alla necessità <strong>di</strong> supportare
1.1. Processi <strong>di</strong> business, <strong>BPM</strong> e sistemi <strong>BPM</strong> 3<br />
Figura 1.1: Livelli <strong>di</strong> un sistema informativo<br />
più tipi <strong>di</strong> attività e <strong>di</strong> utenti. Inoltre l’avvento del Web ha richiesto che<br />
queste applicazioni fossero accessibili <strong>di</strong>rettamente sia ai clienti che ai partner<br />
<strong>di</strong> business. Il trend mutò dal programmare le applicazioni al’integrare<br />
le applicazioni esistenti. Nel corso degli anni ’70 e ’80 i sistemi informativi<br />
continuavano ad essere incentrate sui dati. L’attenzione sulla tecnologia<br />
IT era incentrata sullo storage, recu<strong>per</strong>o e presentazione dell’informazione<br />
vista prima <strong>di</strong> tutto come dati. Solo a partire dagli anni ’90 si iniziò a porre<br />
l’enfasi sui processi. La necessità <strong>di</strong> adeguare continuamente i processi <strong>di</strong><br />
business <strong>di</strong> un organizzazione al mutare delle esigenze del mercato, portò<br />
alla creazione <strong>di</strong> metodologie in grado <strong>di</strong> comporre e riutilizzare le applicazioni<br />
esistenti considerandole come una sequenza <strong>di</strong> attività. Il trend dei<br />
sistemi informativi passò da essere orientato ai dati ad essere orientato ai<br />
processi. Il risultato dell’evoluzione dei trend citati ha portato alla nascita<br />
dei moderni sistemi <strong>BPM</strong>.<br />
I sistemi <strong>BPM</strong> sono sistemi software che <strong>per</strong>mettono <strong>di</strong> definire i processi<br />
<strong>di</strong> business me<strong>di</strong>ante l’utilizzo <strong>di</strong> notazioni adatte allo scopo, <strong>di</strong> metterli<br />
in esecuzione e <strong>di</strong> controllarne l’esito. Il supporto <strong>di</strong> questi sistemi <strong>di</strong>venta<br />
cruciale in termini <strong>di</strong> competitività sul mercato <strong>per</strong> l’organizzazione. Infatti<br />
<strong>per</strong>mettono sia <strong>di</strong> gestire attività che devono essere svolte da agenti<br />
umani sia <strong>di</strong> automatizzare completamente altre attività, aumentando così<br />
l’efficienza <strong>di</strong> un processo <strong>di</strong> business. Essi sono composti da <strong>di</strong>versi <strong>strumenti</strong><br />
che <strong>per</strong>mettono un completo supporto al <strong>BPM</strong>. Per questo motivo<br />
sono anche definiti <strong>BPM</strong> suite [16]. Obiettivo primario dei <strong>BPM</strong>S è gestire<br />
un processo <strong>di</strong> business. Un processo <strong>di</strong> business può essere visto come uno
4 Capitolo 1. Introduzione<br />
opiù workflow che collaborano tra <strong>di</strong> loro al fine <strong>di</strong> raggiungere un obiettivo<br />
comune. Un workflow è l’automazione <strong>di</strong> una sequenza <strong>di</strong> attività. Il<br />
concetto <strong>di</strong> workflow viene definito dal Workflow Management Coalition. Il<br />
WfMC è un consorzio formato da sviluppatori, analisti e ricercatori che si<br />
occupano <strong>di</strong> definire degli standard <strong>per</strong> la gestione dei processi <strong>di</strong> business<br />
e dei relativi workflow. Tra questi standard il WfMC ha definito lo standard<br />
XPDL che è un linguaggio che ha come scopo quello <strong>di</strong> definire una<br />
rappresentazione univoca del modello <strong>di</strong> processo <strong>di</strong> business in modo tale<br />
che possa essere interpretato da <strong>di</strong>versi sistemi <strong>BPM</strong>. Esistono altri enti e<br />
consorzi che hanno definito standard nell’ambito dei sistemi <strong>BPM</strong>. Uno <strong>di</strong><br />
questi èl’Object Management Group che ha definito uno standard <strong>per</strong> la<br />
modellazione grafica <strong>di</strong> un processo <strong>di</strong> business: la notazione <strong>BPM</strong>N (Business<br />
Process Management Notation). Un altro ancora èilconsorzioOASIS<br />
(Organization for the Advancement of Structured Information Standards)<br />
che ha definito lo standard BPEL (Business Process Execution Language).<br />
BPEL è uno standard <strong>di</strong> esecuzione che <strong>per</strong>mette al processo <strong>di</strong> business <strong>di</strong><br />
essere eseguito in<strong>di</strong>fferentemente su tutti gli <strong>strumenti</strong> <strong>BPM</strong> che supportano<br />
questo standard. L’adozione <strong>di</strong> questi standard da parte degli <strong>strumenti</strong><br />
<strong>BPM</strong> è importante dal punto <strong>di</strong> vista dell’intero<strong>per</strong>abilità. Oltre agli <strong>strumenti</strong><br />
che devono supportare gli standard descritti, un sistema <strong>BPM</strong> deve<br />
presentare uno strumento che metta in esecuzione il processo <strong>di</strong> business descritto.<br />
Questo strumento è il <strong>BPM</strong> engine che <strong>per</strong>mette <strong>di</strong> assegnare l’esecuzione<br />
<strong>di</strong> un’attività del workflow ad uno specifica risorsa. <strong>Una</strong> volta che<br />
il processo <strong>di</strong> business è in esecuzione, lo strumento <strong>BPM</strong> deve fornire uno<br />
strumento <strong>per</strong> poter monitorare lo stato del processo e raccogliere metriche<br />
sulle prestazioni della sua esecuzione. Questi componenti sono il Business<br />
Activity Monitoring (BAM) e il Business Cockpit. Vedremo in dettaglio nel<br />
corso dei capitoli successivi i componenti <strong>di</strong> un sistema <strong>BPM</strong>.<br />
1.2 Motivazione e obiettivi della tesi<br />
Esistono numerose soluzioni <strong>di</strong> <strong>strumenti</strong> <strong>BPM</strong> presenti sul mercato [19].<br />
Queste soluzioni non sono tutte uguali. Infatti alcune <strong>di</strong> queste forniscono<br />
solamente gli <strong>strumenti</strong> <strong>per</strong> la modellazione dei processi <strong>di</strong> business. Altre<br />
ancora non forniscono gli <strong>strumenti</strong> <strong>di</strong> <strong>analisi</strong> del processo <strong>di</strong> business.<br />
In base allo specifico progetto <strong>BPM</strong> che si deve realizzare, nasce la necessità<br />
<strong>di</strong> poter scegliere lo strumento <strong>BPM</strong> adatto alle proprie necessità.<br />
Attualmente la letteratura non propone un metodo scientifico <strong>per</strong> valutare<br />
i <strong>di</strong>fferenti <strong>strumenti</strong> <strong>BPM</strong>. Lo scopo <strong>di</strong> questa tesi è appunto quello <strong>di</strong><br />
definire un framework <strong>di</strong> <strong>analisi</strong> e valutazione <strong>di</strong> questi <strong>strumenti</strong> <strong>BPM</strong>. La
1.3. Struttura della tesi 5<br />
definizione del framework <strong>di</strong> <strong>analisi</strong> porterà all’in<strong>di</strong>viduazione e alla conseguente<br />
definizione delle varie categorie <strong>di</strong> <strong>analisi</strong> che caratterizzano uno<br />
strumento <strong>BPM</strong>. <strong>Una</strong> volta che questo framework sarà completato, verrà applicato<br />
a <strong>di</strong>versi <strong>strumenti</strong> <strong>BPM</strong> presenti sul mercato con un duplice scopo:<br />
primo, testare la bontà del framework <strong>di</strong> <strong>analisi</strong> e <strong>di</strong> valutazione; secondo,<br />
scattare una panoramica delle <strong>di</strong>verse soluzioni <strong>BPM</strong> che il mercato offre e<br />
in<strong>di</strong>viduare le soluzioni <strong>BPM</strong> migliori <strong>per</strong> categoria.<br />
1.3 Struttura della tesi<br />
La tesi è strutturata nel modo seguente.<br />
Il capitolo due mostra lo stato dell’arte dei sistemi <strong>BPM</strong>S: si descrivono<br />
le varie tipologie <strong>di</strong> processi, i concetti fondamentali quale quello <strong>di</strong> workflow<br />
e web service. Inoltre viene illustrata la struttura funzionale <strong>di</strong> un sistema<br />
<strong>BPM</strong>S.<br />
Il capitolo tre illustra le varie tipologie <strong>di</strong> standard dei <strong>BPM</strong>S: standard<br />
<strong>di</strong> modellazione, standard dei formati <strong>di</strong> interscambio e standard dei formati<br />
<strong>di</strong> esecuzione. In particolare verranno presi in considerazione gli attuali<br />
standard de facto: <strong>BPM</strong>N, XPDL e BPEL4WS / BPEL4PEOPLE.<br />
Il capitolo quattro descrive il framework <strong>di</strong> <strong>analisi</strong> e valutazione proposto,<br />
descrivendo tutte le categorie <strong>di</strong> <strong>analisi</strong> in<strong>di</strong>viduate.<br />
Nel capitolo cinque vengono illustrati i risultati dell’applicazione del<br />
framework <strong>per</strong> strumento <strong>BPM</strong>.<br />
Il capitolo sei consiste in un’<strong>analisi</strong> comparativa tra i vari risultati trovati.<br />
Verranno in<strong>di</strong>viduati gli <strong>strumenti</strong> <strong>BPM</strong> migliori sui quali verrà illustrata<br />
nello specifico l’<strong>analisi</strong> <strong>per</strong> categoria.<br />
Nelle conclusioni si riassumono le valutazioni finali sul framework <strong>di</strong> <strong>analisi</strong><br />
e valutazione creato e verranno delineate le linee guida <strong>per</strong> le prospettive<br />
future <strong>di</strong> ricerca.<br />
Nell’appen<strong>di</strong>ce A si riportano i risultati delle valutazioni <strong>per</strong> categoria.<br />
L’appen<strong>di</strong>ce B mostra i risultati dell’<strong>analisi</strong> comparativa <strong>per</strong> tutti gli<br />
<strong>strumenti</strong> <strong>BPM</strong>.
6 Capitolo 1. Introduzione
Capitolo 2<br />
Stato dell’Arte<br />
Il capitolo mostra lo stato dell’arte dei sistemi <strong>BPM</strong>S. Verrà prima illustrato<br />
il concetto <strong>di</strong> processo <strong>di</strong> business (par. 2.1). Poi verranno illustrate le varie<br />
tecnologie alla base <strong>di</strong> un <strong>BPM</strong>S: workflow e web service (par. 2.2.2 e par.<br />
2.2.3). Infine verranno illustrate le varie architetture a supporto <strong>di</strong> un <strong>BPM</strong>S<br />
(par. 2.2.4).<br />
7
8 Capitolo 2. Stato dell’Arte<br />
2.1 Processi <strong>di</strong> business<br />
Ogni prodotto <strong>di</strong> qualsiasi natura che una compagnia immette sul mercato è<br />
il risultato <strong>di</strong> una serie <strong>di</strong> attività che sono state eseguite <strong>per</strong> la sua creazione.<br />
La tecnologia dell’informazione, in particolare nei sistemi informativi aziendali,<br />
gioca un ruolo chiave nella gestione <strong>di</strong> queste attività e <strong>per</strong>mette la loro<br />
esecuzione coor<strong>di</strong>nata. In molte compagnie sussiste ancora il gap tra aspetti<br />
<strong>di</strong> business organizzativi e tecnologia dell’informazione presente [2]. Il su<strong>per</strong>amento<br />
<strong>di</strong> questo gap <strong>per</strong>mette <strong>di</strong> fornire le basi tecniche <strong>per</strong> la creazione<br />
rapida <strong>di</strong> nuove funzionalità che portano alla realizzazione <strong>di</strong> nuovi prodotti<br />
<strong>per</strong>mettendo quin<strong>di</strong> alla compagnia <strong>di</strong> essere sempre competitiva sul mercato.<br />
Strumento chiave affinché questo sia possibile è considerare queste<br />
attività tutte appartenenti ad uno o più processi <strong>di</strong> business. Per questo<br />
motivo possiamo definire un processo <strong>di</strong> business come un insieme <strong>di</strong> attività<br />
eseguite in coor<strong>di</strong>nazione con l’ambiente organizzativo e tecnico che<br />
<strong>per</strong>mette <strong>di</strong> dare loro un’organizzazione e aumentare la comprensione delle<br />
loro relazioni. Queste attività insieme realizzano un obiettivo <strong>di</strong> business<br />
(business goal). Possono essere eseguite <strong>di</strong>rettamente da un agente umano<br />
(manualmente oppure aiutato da un sistema informativo) oppure possono<br />
essere attivate automaticamente senza il suo coinvolgimento. Ogni processo<br />
<strong>di</strong> business viene attivato da una singola organizzazione ma potrebbe anche<br />
interagire con processi <strong>di</strong> business eseguiti da altre organizzazioni.<br />
2.1.1 Classificazione dei processi <strong>di</strong> business<br />
I processi <strong>di</strong> business possono definire sia strategie <strong>di</strong> business ad alto livello<br />
sia processi <strong>di</strong> business o<strong>per</strong>ativi [44]. Tra questi due estremi esistono <strong>di</strong>fferenti<br />
livelli che caratterizzano un processo <strong>di</strong> business (figura 2.1). Al livello<br />
più in alto un processo <strong>di</strong> business serve <strong>per</strong> descrivere la strategia della<br />
compagnia, definendo la rotta da seguire a lungo termine <strong>per</strong> sviluppare un<br />
vantaggio competitivo sostenibile sul mercato.<br />
Al secondo livello dello schema, la strategia <strong>di</strong> business viene decomposta<br />
in obiettivi o<strong>per</strong>ativi <strong>di</strong> business. Questi obiettivi possono essere organizzati<br />
in modo tale che ognuno possa essere ulteriormente decomposto in sottoobiettivi.<br />
Al terzo livello si trovano i processi <strong>di</strong> business organizzativi. Questi<br />
sono processi ad alto livello che tipicamente vengono specificati in forma<br />
testuale dai loro input, dai loro output, dai loro risultati attesi e dalle loro<br />
<strong>di</strong>pendenze con gli altri processi <strong>di</strong> business organizzativi.
2.1. Processi <strong>di</strong> business 9<br />
Per questi tre livelli sono <strong>di</strong>sponibili delle tecniche informali e semiformali<br />
che <strong>per</strong>mettono <strong>di</strong> descrivere in forma testuale e <strong>per</strong> mezzo <strong>di</strong> <strong>di</strong>agrammi<br />
la strategia della compagnia, i suoi obiettivi e i suoi processi <strong>di</strong> business<br />
organizzativi.<br />
Al <strong>di</strong> sotto <strong>di</strong> questi livelli esistono i processi <strong>di</strong> business detti o<strong>per</strong>ativi.<br />
A <strong>di</strong>fferenza <strong>di</strong> quelli organizzativi caratterizzati da funzionalità <strong>di</strong> business<br />
ad alto livello, in questi processi vengono definite nel dettaglio le loro attività<br />
e le relazioni tra <strong>di</strong> esse ma non viene definito alcun tipo <strong>di</strong> implementazione.<br />
Questi ultimi sono le basi dei processi <strong>di</strong> business implementati poichè<br />
essi contengono le informazioni sull’esecuzione delle attività dei processi e<br />
sull’ambiente tecnico e organizzativo sul quale essi sono in esecuzione.<br />
Nel corso della trattazione <strong>di</strong>scuteremo del ruolo dei sistemi informatici<br />
che hanno nella descrizione e nella esecuzione dei processi <strong>di</strong> business<br />
o<strong>per</strong>ativi.<br />
Un altro tipo <strong>di</strong> classificazione riguarda il grado <strong>di</strong> relazione che un processo<br />
<strong>di</strong> business ha con un altro. Un processo <strong>di</strong> business che non ha nessun<br />
tipo <strong>di</strong> legame con un altro viene detto intraorganizzativo. Questi tipi <strong>di</strong><br />
processi hanno come obiettivo primario quello <strong>di</strong> snellire i processi interni<br />
eliminando le attività che non portano valore al processo. Viene definito uno<br />
schema delle risorse dell’organizzazione a cui vengono sistematicamente assegnate<br />
delle attività del processo in base alla loro competenza. I tra<strong>di</strong>zionali<br />
sistemi <strong>di</strong> gestione dei workflow che vedremo più avanti sono adatti allo<br />
scopo. Quando invece un processo necessita <strong>di</strong> interagire con un altro allora<br />
si parla <strong>di</strong> coreografie <strong>di</strong> processi. In questo caso processi facenti parte <strong>di</strong><br />
una coreografie necessitano <strong>di</strong> tutta una serie <strong>di</strong> tecnologie abilitanti al loro<br />
scopo. Queste tecnologie riguardano i protocolli <strong>di</strong> comunicazione, il formato<br />
dei dati scambiato e il definire una rappresentazione comune dei vari processi<br />
<strong>di</strong> business. Vedremo nel paragrafo 2.2.3 un para<strong>di</strong>gma architetturale<br />
adatto a questo scopo (SOA).<br />
Un altro tipo <strong>di</strong> classificazione può essere fatto sulla base del loro grado<br />
<strong>di</strong>:<br />
• automazione<br />
• ripetizione<br />
• strutturazione<br />
Per quanto riguarda il grado <strong>di</strong> automazione esistono processi <strong>di</strong> business<br />
che non richiedono l’intervento umano. In questo caso si parla <strong>di</strong> processi<br />
<strong>di</strong> business pienamente automatizzati. Un esempio sono le tecnologie<br />
EAI (Enterprise Application Integration) il cui compito è quello <strong>di</strong> integrare
10 Capitolo 2. Stato dell’Arte<br />
Figura 2.1: Livelli dei processi <strong>di</strong> business: dalla strategia <strong>di</strong> business ai processi <strong>di</strong><br />
business implementati
2.1. Processi <strong>di</strong> business 11<br />
sistemi informatici eterogenei rendendo questa integrazione trasparente all’intervento<br />
umano. Esistono poi processi che non possono essere in alcun<br />
modo automatizzati ma richiedono necessariamente l’intervento umano. Un<br />
esempio sono tutte quelle applicazioni che richiedono l’inserimento <strong>di</strong> dati<br />
in una maschera al fine <strong>di</strong> portare a termine un’o<strong>per</strong>azione. Molti processi<br />
<strong>di</strong> business invece richiedono sia attività <strong>di</strong> tipo manuale sia attività <strong>di</strong>tipo<br />
automatiche. Quin<strong>di</strong> sono state sviluppate delle tecnologie che <strong>per</strong>mettono<br />
<strong>di</strong> gestire e sincronizzare entrambi i tipi <strong>di</strong> attività.<br />
Rispetto al grado <strong>di</strong> ripetizione è possibile valutare quale tipo <strong>di</strong> tecnologia<br />
èpiùadatta a supportare un determinato processo <strong>di</strong> business. Nei<br />
processi <strong>di</strong> business dove il grado <strong>di</strong> ripetizione è alto sono richieste tecnologie<br />
che <strong>per</strong>mettano la modellazione e l’esecuzione automatica dei processi.<br />
Questo tipo <strong>di</strong> tecnologie comportano un investimento <strong>di</strong> una certa consistenza<br />
ma consentono la corretta esecuzione dei processi ad alta ripetitività.<br />
Esistono invece dei processi che invece sono caratterizzati da uno scarso o<br />
nullo grado <strong>di</strong> ripetitività. Questi processi vengono definiti processi <strong>di</strong> business<br />
collaborativi. In questi processi l’utilizzo delle tecnologie <strong>di</strong> supporto<br />
non ha come obiettivo quello <strong>di</strong> ottimizzare l’efficienza ma quello <strong>di</strong> monitorare<br />
il processo e <strong>di</strong> scoprire eventuali relazioni causali tra i vari task <strong>di</strong><br />
progetto. Gli <strong>strumenti</strong> che andremo ad analizzare <strong>per</strong>mettono <strong>di</strong> gestire<br />
entrambi i tipi <strong>di</strong> processi descritti.<br />
Per ultimo si ha una classificazione dei processi <strong>di</strong> business in base al<br />
loro grado <strong>di</strong> strutturazione. Si definisce workflow <strong>di</strong> produzione, un processo<br />
<strong>di</strong> business il cui modello descrive <strong>per</strong>fettamente le sue attività i vincoli<br />
tra queste in modo completo. In questo modo il processo si definisce completamente<br />
strutturato. Ad esempio in questi processi sono definiti tutti i<br />
vincoli decisionali del processo in modo che nessun tipo <strong>di</strong> decisione possa<br />
essere presa da parte <strong>di</strong> un intervento umano. Questi tipi <strong>di</strong> processi, inoltre,<br />
sono altamente ripetibili. I sistemi tra<strong>di</strong>zionali <strong>di</strong> gestione dei workflow sono<br />
adatti a supportarli. Si definisce invece attività ad hoc, un processo che non<br />
necessita <strong>di</strong> essere definito completamente in quanto deve dare una certa<br />
flessibilità all’o<strong>per</strong>atore umano <strong>di</strong> poter gestire parti del processo in base<br />
alla sue competenze. Quin<strong>di</strong> questi processi sono caratterizzati da un basso<br />
livello <strong>di</strong> strutturazione e da un alto livello <strong>di</strong> flessibilità. Anche <strong>per</strong> questi<br />
tipi <strong>di</strong> processi esistono tecnologie in grado <strong>di</strong> supportarli.<br />
2.1.2 Componenti <strong>di</strong> un processo <strong>di</strong> business<br />
Descriviamo ora le parti costituenti <strong>di</strong> un processo <strong>di</strong> business. Definiamo<br />
con il termine “caso” (case) la produzione <strong>di</strong> un particolare prodotto. Og-
12 Capitolo 2. Stato dell’Arte<br />
ni caso richiede che un “processo” (process) venga eseguito. Un processo<br />
consiste in un insieme <strong>di</strong> “task” che devono essere espletate ai fini del suo<br />
completamento e <strong>di</strong> un insieme <strong>di</strong> con<strong>di</strong>zioni (con<strong>di</strong>tion) che determinano<br />
l’or<strong>di</strong>ne delle attività. Un task può essere considerato come un processo che<br />
non può essere <strong>di</strong>viso ulteriormente e che viene svolto nel suo insieme da<br />
una “risorsa” (resource). Chiamiamo “attività” l’esecuzione <strong>di</strong> un task da<br />
parte <strong>di</strong> una risorsa. <strong>Una</strong> risorsa è il nome generico che viene assegnato ad<br />
una <strong>per</strong>sona, macchina o gruppo <strong>di</strong> <strong>per</strong>sone e macchine che possono eseguire<br />
attività specifiche. Ciò non significa che una risorsa necessariamente debba<br />
portare a termina l’attività <strong>per</strong> la quale è stata assegnata. Tuttavia con il<br />
suo assegnamento essa <strong>di</strong>venta responsabile dell’esito <strong>di</strong> tale attività. Due<br />
opiù task che devono essere eseguiti seguendo un determinato or<strong>di</strong>ne sono<br />
chiamati “sequenza”. Quando è necessario scegliere tra due o più task<strong>per</strong><br />
il proseguimento del flusso <strong>di</strong> processo ci troviamo nel caso <strong>di</strong> “selezione”<br />
tra più task. Ci sono task che possono anche essere eseguiti “in parallelo”.<br />
Questi ultimi devono essere completati ad esempio prima che il task successivo<br />
possa entrare in esecuzione. Questo caso è chiamato “sincronizzazione”.<br />
È possibile ripetere l’esecuzione <strong>di</strong> più task durante l’esecuzione <strong>di</strong> un processo.<br />
Questa o<strong>per</strong>azione è chiamata “iterazione”. Ricapitolando possiamo<br />
identificare quattro meccanismi <strong>di</strong> base nella struttura <strong>di</strong> un flusso <strong>di</strong> un<br />
processo:<br />
• sequenza<br />
• selezione<br />
• parallelizzazione<br />
• iterazione<br />
è Gli <strong>strumenti</strong> che andremo ad analizzare si occupano della modellazione <strong>di</strong><br />
questi meccanismi e dell’esecuzione <strong>di</strong> questi processi <strong>di</strong> business. I sistemi<br />
informatici offrono la possibilità <strong>di</strong> gestire questi processi <strong>di</strong> business ed in<br />
particolare quelli che vanno sotto il nome <strong>di</strong> Business Process Management<br />
System (<strong>BPM</strong>S). Nel paragrafo 2.2 illustreremo i concetti <strong>di</strong> questi sistemi.<br />
2.2 Business Process Management<br />
Il paragrafo illustra prima <strong>di</strong> tutto la definizione <strong>di</strong> Business Process Management<br />
(par. 2.2.1). Poi presenta il concetto <strong>di</strong> workflow (par. subsec:Workflow),<br />
i modelli che lo definiscono e l’architettura dei sistemi che<br />
lo gestiscono. Verrà trattata l’architettura dei Web Service (par. 2.2.3).
2.2. Business Process Management 13<br />
I Web service sono la tecnologia che viene impiegata <strong>per</strong> gestire processi<br />
<strong>di</strong> tipo business to business. Infine il paragrafo illustra concettualmente la<br />
struttura <strong>di</strong> un sistema <strong>BPM</strong> (<strong>BPM</strong>S) (par 2.2.4).<br />
2.2.1 Definizione <strong>di</strong> Business Process Management<br />
Il Business Process Management è il risultato della convergenza <strong>di</strong> <strong>di</strong>verse<br />
<strong>di</strong>scipline, tra le quali troviamo: modellizzazione dei processi <strong>di</strong> business,<br />
la gestione della qualità, la computazione <strong>di</strong>stribuita, la gestione dei workflow<br />
e la reingegnerizzazione dei processi <strong>di</strong> business [34]. Esistono <strong>di</strong>verse<br />
definizioni <strong>di</strong> Business Process Management. Secondo Horak [10], il Business<br />
Process Management è<br />
Business Process Management (<strong>BPM</strong>) è un approccio sistematico<br />
e strutturato <strong>per</strong> analizzare, migliorare, controllare e gestire<br />
i processi <strong>di</strong> business con lo scopo <strong>di</strong> migliorare la qualità dei<br />
prodotti e dei servizi.<br />
Un’altra definizione <strong>di</strong> <strong>BPM</strong> è quella data da Weske [43]:<br />
Un <strong>BPM</strong> è un sistema il cui scopo è quello <strong>di</strong> supportare<br />
i processi <strong>di</strong> business utilizzando meto<strong>di</strong>, tecniche e software<br />
<strong>per</strong> progettare, mettere in esecuzione, controllare e analizzare<br />
i processi o<strong>per</strong>ativi che coinvolgono esseri umani, organizzazioni,<br />
applicazioni, documenti e altre fonti <strong>di</strong> informazione.<br />
L’ultima definizione che citeremo è quella data da Gartner [15]:<br />
Un sistema <strong>BPM</strong> è un sistema composto da servizi e <strong>strumenti</strong><br />
che supportano in modo esplicito la gestione del processo<br />
<strong>di</strong> business (<strong>analisi</strong>, definizione, esecuzione, monitoraggio e<br />
amministrazione).<br />
Dall’unione delle tre definizioni <strong>di</strong> Business Process Management è possibile<br />
ricavarne una che descrive in modo completo un sistema <strong>BPM</strong>:<br />
Business Process Management è una <strong>di</strong>sciplina gestionale che<br />
utilizza un approccio sistematico e strutturato con il fine <strong>di</strong><br />
supportare la gestione esplicita <strong>di</strong> un processo <strong>di</strong> business utilizzando<br />
meto<strong>di</strong>, tecniche e <strong>strumenti</strong>, che coinvolgono esseri<br />
umani, organizzazioni, applicazioni, documenti e altre fonti <strong>di</strong><br />
informazione, con lo scopo <strong>di</strong> raggiungere gli obiettivi <strong>di</strong> business<br />
dell’organizzazione allineando i processi <strong>di</strong> business a questi<br />
obiettivi.
14 Capitolo 2. Stato dell’Arte<br />
Nel paragrafo 2.2.4 descriveremo i componenti <strong>di</strong> un sistema <strong>BPM</strong> in<br />
riferimento alla definizione data <strong>di</strong> <strong>BPM</strong>.<br />
2.2.2 Workflow<br />
Secondo il Workflow Management Coalition (WfMC), un workflow è l’automazione<br />
<strong>di</strong> un processo <strong>di</strong> business in tutto o in parte durante la quale<br />
documenti, informazioni e tasks vengono passati da un partecipante ad un<br />
altro affinchè si possa raggiungere un obiettivo comune, utilizzando un insieme<br />
predefinito <strong>di</strong> regole. Un workflow può essere visto come un componente<br />
<strong>di</strong> un processo <strong>di</strong> business, in quanto consiste in una sequenza <strong>di</strong><br />
attività specifiche <strong>di</strong> una particolare applicazione attuate attraverso insiemi<br />
<strong>di</strong> istruzioni predefiniti, coinvolgendo sia procedure automatizzate che manuali.<br />
Per questo si <strong>di</strong>fferenzia da un <strong>BPM</strong> che invece riguarda la definizione,<br />
l’esecuzione e la gestione <strong>di</strong> un processo <strong>di</strong> business in<strong>di</strong>pendentemente dalle<br />
applicazioni che praticamente svolgono i task del processo. Un workflow<br />
viene descritto attraverso tre modelli:<br />
• Modello <strong>di</strong> processo<br />
• Modello informativo<br />
• Modello organizzativo<br />
Per descrivere i tre modelli verranno utilizzati due modelli <strong>per</strong> descrivere<br />
i workflow: quello del Workflow Management Coalition [18] e il modello<br />
WIDE (Workflow on Intelligent and Distributed database Environment) [5].<br />
Di seguito la descrizione dei tre modelli. L’utilizzo <strong>di</strong> questi due modelli<br />
e della loro terminologia non fa <strong>per</strong>dere <strong>di</strong> generalità la descrizione dei tre<br />
modelli che costituiscono il workflow.<br />
Modello <strong>di</strong> processo<br />
Utilizziamo la terminologia utilizzata dal Workflow Management System <strong>per</strong><br />
definire un workflow e metterlo in relazione con un processo <strong>di</strong> business. In<br />
figura 2.2 lo schema della terminologia utilizzata <strong>per</strong> i vari componenti e le<br />
relazioni tra <strong>di</strong> essi.<br />
I componenti fondamentali <strong>di</strong> un workflow sono:<br />
• Processo: un processo è definito come la rappresentazione formale <strong>di</strong><br />
un processo <strong>di</strong> business in modo tale che la sua manipolazione sia possibile<br />
<strong>per</strong> mezzo <strong>di</strong> un workflow management system (WfMS). Questo
2.2. Business Process Management 15<br />
è composto da un insieme <strong>di</strong> attività, da relazioni tra queste attività.<br />
da criteri <strong>di</strong> inizio e terminazione del processo e da informazioni<br />
circa le singole attività, i partecipanti, i documenti e i dati relativi,<br />
applicazioni software richieste.<br />
• Partecipante <strong>di</strong> WF: un partecipante <strong>di</strong> un workflow è una risorsa<br />
che esegue il lavoro associato ad una particolare istanza <strong>di</strong> task.<br />
Il lavoro viene generalmente si riferisce ad un elemento <strong>di</strong> task contenuto<br />
all’interno della work list del partecipante. Questo può essere<br />
una risorsa umana, un’applicazione software, una parte specifica <strong>di</strong><br />
hardware in grado <strong>di</strong> eseguire un task.<br />
• Work list: ogni partecipante del workflow ha la sua lista <strong>di</strong> task da<br />
eseguire. Questa work list può anche essere assegnata ad un gruppo <strong>di</strong><br />
agenti (lista con<strong>di</strong>visa). La work list è gestita da un workflow engine e<br />
appartiene all’interfaccia tra il workflow engine e il gestore della work<br />
list.<br />
Figura 2.2: Terminologia utilizzata dal Workflow Management Coalition <strong>per</strong> descrivere<br />
i componenti <strong>di</strong> un workflow<br />
Per quanto concerne la descrizione <strong>di</strong> un processo sottoforma <strong>di</strong> modello,<br />
il Workflow Management Coalition ha definito gli elementi costituenti questo<br />
modello che ora an<strong>di</strong>amo a descrivere. Il modello così proposto viene preso<br />
come riferimento <strong>per</strong> lo sviluppo <strong>di</strong> linguaggi <strong>di</strong> modellazione <strong>per</strong> workflow:
16 Capitolo 2. Stato dell’Arte<br />
• Processo: vista formalizzata <strong>di</strong> un processo <strong>di</strong> business, rappresentato<br />
come un insieme coor<strong>di</strong>nato <strong>di</strong> attività connesse tra loro in modo<br />
da raggiungere un obiettivo comune.<br />
• Sotto processo: processo che viene attivato da un altro processo<br />
(istanziato) e che rappresenta parte del processo totale.<br />
• Blocco <strong>di</strong> attività: un insieme <strong>di</strong> attività contenute della definizione<br />
<strong>di</strong> processo che con<strong>di</strong>vidono una o più proprietà che <strong>per</strong>mettono al<br />
workflow management software <strong>di</strong> svolgere alcune azioni rispetto a<br />
questo gruppo. Ad ogni singola attività viene assegnato uno stato.<br />
• Deadline: un vincolo <strong>di</strong> schedulazione temporale che richiede che una<br />
certa attività venga completata in un certo intervallo <strong>di</strong> tempo.<br />
• Instradamento (Routing): è come vengono connesse tra loro i<br />
<strong>di</strong>versi blocchi <strong>di</strong> attività. Sono possibili due tipi <strong>di</strong> instradamento:<br />
– Sequenziale: le attività vengono eseguite in sequenza sotto un<br />
singolo thread <strong>di</strong> esecuzione (le con<strong>di</strong>zioni <strong>di</strong> AND-split e ANDjoin<br />
non avvengono con questo instradamento)<br />
– Parallelo: due o più istanze <strong>di</strong> attività vengono eseguite in parallelo<br />
all’interno del workflow, dando origine a thread multipli <strong>di</strong><br />
controllo. Le attività possono essere attivate in parallelo (AND)<br />
oppure può essere scelto una o più attività da eseguire contemporaneamente<br />
(OR). Quando da un’attività parte l’esecuzione<br />
coor<strong>di</strong>nata <strong>di</strong> più attività si parla <strong>di</strong> “attivazione parallela” .<br />
Quando invece da più attività si torna ad una solo si parla <strong>di</strong><br />
“sincronizzazione”. Nelle figure da 2.3 a 2.6 i quattro possibili<br />
casi.<br />
• Ciclo: ripetizione <strong>di</strong> una stessa attività o <strong>di</strong> una sequenza <strong>di</strong> attività<br />
finchè non viene sod<strong>di</strong>sfatta una determinata con<strong>di</strong>zione.<br />
• Pre-post con<strong>di</strong>zioni: una pre-con<strong>di</strong>zione è un’espressione logica che<br />
viene valutata dal workflow engine <strong>per</strong> decidere se iniziare un’istanza <strong>di</strong><br />
un particolare processo. In modo opposto una post-con<strong>di</strong>zione è un’espressione<br />
logica che viene valutata dal workflow engine <strong>per</strong> decidere<br />
un’istanza <strong>di</strong> un particolare processo può definirsi completata.<br />
Per poter descrivere un modello <strong>di</strong> workflow vengono utilizzati <strong>di</strong>versi<br />
linguaggi <strong>di</strong> modellazione. Nel paragrafo 2.2.2 vengono descritte le reti <strong>di</strong><br />
Petri come formalismo <strong>di</strong> base <strong>per</strong> descrivere i processi <strong>di</strong> workflow. Al
2.2. Business Process Management 17<br />
Figura 2.3: Attivazione parallela <strong>di</strong> attivit à da eseguire in parallelo<br />
Figura 2.4: Sincronizzazione parallela <strong>di</strong> tutte le attivit à<br />
Figura 2.5: Attivazione con<strong>di</strong>zionale <strong>di</strong> una o pi ù attivit à<br />
Figura 2.6: Sincronizzazione parallela <strong>di</strong> tutte le attivit à attivate dalle con<strong>di</strong>zione
18 Capitolo 2. Stato dell’Arte<br />
modello grafico delle reti <strong>di</strong> Petri si ispirano la maggior parte dei linguaggi<br />
<strong>di</strong> modellazione dei processi esistenti.<br />
Reti <strong>di</strong> Petri<br />
Le reti <strong>di</strong> Petri sono dei modelli matematici utilizzati <strong>per</strong> descrivere i sistemi<br />
<strong>di</strong>stribuiti <strong>di</strong> tipo <strong>di</strong>screto, <strong>per</strong> i quali sono fondamentali le conseguenze locali<br />
delle o<strong>per</strong>azioni e l’influenza locale degli stati degli oggetti [8]. In questa sede<br />
non descriveremo il formalismo matematico <strong>di</strong> questo modello (<strong>per</strong> il quale<br />
si rimanda a [36]), ma cercheremo <strong>di</strong> descrivere l’utilizzo delle reti <strong>di</strong> Petri<br />
<strong>per</strong> descrivere i processi <strong>di</strong> workflow.<br />
Le reti <strong>di</strong> Petri sono utili <strong>per</strong> la modellizzazione <strong>di</strong> sistemi il cui comportamento<br />
è dominato da un flusso <strong>di</strong> informazioni, oggetti, da logiche <strong>di</strong><br />
controllo e così via, cioè da tutte quelle o<strong>per</strong>azioni caratterizzate da un dare<br />
e da un ricevere. <strong>Una</strong> rete <strong>di</strong> Petri viene visualizzata come un grafo <strong>di</strong>retto<br />
avente due tipi <strong>di</strong> no<strong>di</strong>: i posti, rappresentati da un cerchio, e da transizioni,<br />
rappresentati da rettangoli. Le reti <strong>di</strong> Petri sono un grafo bipartito<br />
cioè l’insieme dei suoi vertici si può partizionare in due sottoinsiemi tali che<br />
ogni vertice <strong>di</strong> una <strong>di</strong> queste due parti è collegato solo a vertici dell’altra. In<br />
particolare il modello delle reti <strong>di</strong> Petri si fonda su questi concetti <strong>di</strong> base:<br />
• Un posto (place) rappresenta uno o più oggetti. Ogni oggetto è sempre<br />
in qualche stato.<br />
• <strong>Una</strong> transizione (transition) rappresenta uno o più o<strong>per</strong>azioni, che sono<br />
solo possibili a degli stati specifici degli oggetti e che cambiano lo stato<br />
<strong>di</strong> uno specifico oggetto.<br />
• <strong>Una</strong> regola <strong>di</strong> occorrenza (occurrence rule) determina sotto quali stati<br />
<strong>di</strong> un oggetto un transizione sia in grado <strong>di</strong> attivare (fire - con<strong>di</strong>zione <strong>di</strong><br />
attivazione) l’o<strong>per</strong>azione rispettiva e in che modo lo stato <strong>di</strong> un oggetto<br />
cambia a seguito <strong>di</strong> questa attivazione. Gli elementi che vengono<br />
utilizzati <strong>per</strong> definire le regole <strong>di</strong> occorrenza sono i token (figura 2.7).<br />
Infatti una transizione viene attivata se e solo se ogni posto <strong>di</strong> ingresso<br />
contiene almeno un token. La sua attivazione comporta il consumo del<br />
token presente nei posti in ingresso e la conseguente produzione <strong>di</strong> un<br />
token nel posto in uscita della transizione.<br />
• Il principio <strong>di</strong> località <strong>per</strong>mette <strong>di</strong> circoscrivere l’azione della con<strong>di</strong>zione<br />
<strong>di</strong> attivazione <strong>di</strong> una transizione e il cambiamento <strong>di</strong> stato<br />
causato da questa solo a quei posti che sono <strong>di</strong>rettamente connessi<br />
alla transizione attraverso un arco. Al contrario, lo stato <strong>di</strong> un posto
2.2. Business Process Management 19<br />
influenza solo le transizioni poste nelle imme<strong>di</strong>ate vicinanze del posto,<br />
e può solo cambiare dall’attivazione (firing) <strong>di</strong> queste transizioni.<br />
Figura 2.7: Attivazione <strong>di</strong> una transizione<br />
La figura 2.8 mostra un esempio <strong>di</strong> modello classico <strong>di</strong> rete <strong>di</strong> Petri.<br />
Questo modello contiene delle limitazioni che non lo rendono adatto <strong>per</strong> de-<br />
Figura 2.8: Esempio <strong>di</strong> modello classico <strong>di</strong> rete <strong>di</strong> Petri<br />
scrivere un processo <strong>di</strong> workflow. Innanzitutto non è possibile <strong>di</strong>stinguere<br />
i vari token gli uni dagli altri. Questo fatto limita i token ad avere tutti<br />
la stessa semantica. Poi questo modello non è in grado <strong>di</strong> descrivere i<br />
vari aspetti temporali del flusso <strong>di</strong> processo: infatti esiste un unico aspetto<br />
temporale espresso dall’or<strong>di</strong>ne degli archi. Inoltre questo modello tende<br />
a crescere velocemente <strong>di</strong> <strong>di</strong>mensione rendendo la sua gestione complessa.<br />
Per su<strong>per</strong>are questi limiti è stato definito un modello più avanzato delle reti<br />
<strong>di</strong> Petri: le reti <strong>di</strong> Petri ad alto livello. Queste <strong>per</strong>mettono <strong>per</strong>mettono <strong>di</strong><br />
su<strong>per</strong>are le limitazioni del modello classico introducendo tre estensioni:
20 Capitolo 2. Stato dell’Arte<br />
1. Reti <strong>di</strong> Petri colorate<br />
2. Estensione temporale<br />
3. Supporto alla gerarchia<br />
In particolare, le reti <strong>di</strong> Petri colorate <strong>per</strong>mettono <strong>di</strong> assegnare ai vari token<br />
un valore con il quale il token rappresenta una particolare con<strong>di</strong>zione<br />
delle regola dell’occorrenza (figura 2.2.2). L’estensione temporale <strong>per</strong>mette<br />
<strong>di</strong> definire un timestamp su ogni token (figura 2.2.2). Il timestamp rappresenta<br />
l’istante <strong>di</strong> tempo durante il quale il token può essere utilizzato dalla<br />
transizione. Con questa estensione è possibile introdurre il concetto <strong>di</strong> ritardo<br />
nell’esecuzione del flusso del processo. Infine il supporto alla gerarchia<br />
<strong>per</strong>mette <strong>di</strong> ridurre la complessità delle reti <strong>di</strong> Petri aumentando il grado<br />
<strong>di</strong> leggibilità del processo descritto. Il supporto alla gerarchia introduce il<br />
concetto <strong>di</strong> sotto-processo che è alla base a sua volta del concetto <strong>di</strong> riuso<br />
dei processi (figura 2.2.2).<br />
Figura 2.9: Estensione reti <strong>di</strong> Petri colorate<br />
Il modello delle reti <strong>di</strong> Petri ad alto livello può essere utilizzato <strong>per</strong><br />
descrivere i processi <strong>di</strong> workflow. Questo formalismo <strong>per</strong>mette in particolare<br />
<strong>di</strong> descrivere il modello del processo <strong>di</strong> workflow ma non il suo corrispettivo<br />
modello informativo e organizzativo.<br />
Un processo <strong>di</strong> workflow deve essere delimitato da uno stato <strong>di</strong> inizio<br />
e da uno stato <strong>di</strong> terminazione. Gli elementi che fanno parte delle reti <strong>di</strong><br />
Petri devono essere contestualizzati ai workflow. I token possono assumere<br />
i seguenti ruoli:<br />
• un oggetto fisico, ad esempio un prodotto;<br />
• un artefatto informativo, ad esempio un messaggio;<br />
• una collezione <strong>di</strong> oggetti, ad esempio un magazzino <strong>di</strong> componenti;<br />
• un in<strong>di</strong>catore <strong>di</strong> stato, ad esempio lo stato in cui si trova il processo;
2.2. Business Process Management 21<br />
Figura 2.10: Estensione temporale rete <strong>di</strong> Petri<br />
Figura 2.11: Supporto alla gerarchia <strong>di</strong> una rete <strong>di</strong> Petri
22 Capitolo 2. Stato dell’Arte<br />
• un in<strong>di</strong>catore <strong>di</strong> una con<strong>di</strong>zione, ad esempio la presenza <strong>di</strong> un token<br />
può in<strong>di</strong>care il raggiungimento <strong>di</strong> una con<strong>di</strong>zione<br />
Un posto può assumere il ruolo <strong>di</strong>:<br />
• un tipo <strong>di</strong> mezzo <strong>di</strong> comunicazione, ad esempio una linea telefonica;<br />
• un buffer, ad esempio una coda;<br />
• una locazione geografica, ad esempio un luogo specifico dell’organizzazione;<br />
• un possibile stato o con<strong>di</strong>zione, ad esempio un possibile stato in cui si<br />
trova un ascensore;<br />
<strong>Una</strong> transizione può assumere il ruolo <strong>di</strong>:<br />
• un evento, ad esempio l’inizio <strong>di</strong> un’o<strong>per</strong>azione;<br />
• una trasformazione <strong>di</strong> un oggetto, ad esempio l’aggiornamento <strong>di</strong> un<br />
database;<br />
• il trasporto <strong>di</strong> un oggetto, ad esempio l’invio <strong>di</strong> un file;<br />
Per quanto riguarda l’instradamento del flusso <strong>di</strong> processo (routing), le reti<br />
<strong>di</strong> Petri <strong>per</strong>mettono <strong>di</strong> definire quattro tipologie riguardanti i workflow:<br />
1. Sequenze <strong>di</strong> task.<br />
2. Instradamento parallelo, caratterizzato da un componente <strong>di</strong> tipo ANDsplit<br />
all’inizio e <strong>di</strong> tipo AND-join al termine.<br />
3. Instradamento selettivo, caratterizzato da un componente <strong>di</strong> tipo ANDsplit<br />
all’inizio e <strong>di</strong> tipo AND-join al termine.<br />
4. Instradamento iterativo, che può essere <strong>di</strong> tipo repeat-until o <strong>di</strong> tipo<br />
while-do.<br />
Un processo viene definito come un collezione <strong>di</strong> task, con<strong>di</strong>zioni, sottoprocessi<br />
e relazioni. L’attivazione delle varie transizioni lungo il processo<br />
avviene me<strong>di</strong>ante l’utilizzo <strong>di</strong> <strong>di</strong>versi trigger (figura 2.2.2) che sono stati<br />
definiti appositamente <strong>per</strong> il contesto dei processi <strong>di</strong> workflow:<br />
• Automatici (Automatic): il task viene attivato automanticamente non<br />
appena viene abilitato a farlo. Questo trigger viene utilizzato quando<br />
i task sono gestiti <strong>di</strong>rettamente dal sistema e non richiedono alcun<br />
intervento umano.
2.2. Business Process Management 23<br />
• Utente (User): il task viene attivato da parte <strong>di</strong> un partecipante umano<br />
al processo<br />
• Messaggio (Message): rappresenta un evento esterno che abilita l’esecuzione<br />
<strong>di</strong> un task.<br />
• Tempo (Time): il task viene attivato <strong>per</strong> mezzo <strong>di</strong> un evento temporale.<br />
Figura 2.12: Tipologie <strong>di</strong> trigger <strong>di</strong> una rete <strong>di</strong> Petri che descrive un workflow<br />
Dopo aver descritto come le reti <strong>di</strong> Petri si adattano al contesto dei processi<br />
<strong>di</strong> workflow, mostriamo un esempio <strong>di</strong> processo <strong>di</strong> workflow modellizzato<br />
tramite le reti <strong>di</strong> Petri (figura 2.2.2). Il processo <strong>di</strong> workflow descritto<br />
riguarda il processo <strong>di</strong> prenotazione <strong>di</strong> una vacanza presso un’agenzia <strong>di</strong><br />
viaggio.<br />
Per ulteriori approfon<strong>di</strong>menti si consiglia [35], [36] e [8].<br />
Modello informativo<br />
Il modello informativo <strong>di</strong> un workflow descrive le informazioni ricevute, mo<strong>di</strong>ficate<br />
o prodotte da un workflow. Secondo il modello WIDE, il modello<br />
informativo <strong>di</strong> un workflow può essere definito in tre <strong>di</strong>verse modalità:<br />
1. attraverso uno schema variabili del workflow;<br />
2. attraverso un database con<strong>di</strong>viso con altri workflow;<br />
3. attraverso documenti che vengono scambiati tra i <strong>di</strong>versi workflow.<br />
Nel primo caso viene definito nel workflow uno schema delle variabili che<br />
hanno visibilità solo all’interno della particolare istanza del workflow. Le<br />
istanze del workflow non possono avere accesso alle variabili <strong>di</strong> un’altra<br />
istanza: ognuna <strong>di</strong> queste possiede una propria copia dello schema delle
24 Capitolo 2. Stato dell’Arte<br />
Figura 2.13: Esempio <strong>di</strong> processo <strong>di</strong> workflow descritto me<strong>di</strong>ante rete <strong>di</strong> Petri: il caso<br />
dell’agenzia <strong>di</strong> viaggio
2.2. Business Process Management 25<br />
variabili del workflow. Di solito queste variabili vengono definite al momento<br />
della definizione del task a cui queste si riferiscono.<br />
Nel secondo caso, la definizione <strong>di</strong> uno schema delle variabili potrebbe includere<br />
delle definizioni riguardo a dei dati che devono rimanere <strong>per</strong>sistenti.<br />
Questi dati devono poter essere con<strong>di</strong>visi dai vari partecipanti del workflow e<br />
anche da altri workflow. Inoltre, questi dati <strong>per</strong>sistenti possono anche essere<br />
definiti all’infuori della definizione del workflow. Questi dati possono essere<br />
scambiati con altri workflow e tra i vari task del workflow me<strong>di</strong>ante la loro<br />
manipolazione o recu<strong>per</strong>o. La semantica <strong>di</strong> queste o<strong>per</strong>azioni deve essere<br />
<strong>di</strong>chiarata all’atto <strong>di</strong> definizione del processo <strong>di</strong> workflow. Possono anche<br />
essere utilizzati dei database esterni con<strong>di</strong>visi e in<strong>di</strong>pendenti dal particolare<br />
WfMS utilizzato; hanno accesso a questi database i vari partecipanti durante<br />
l’esecuzione del workflow. Nel caso <strong>di</strong> utilizzo <strong>di</strong> database esterni, questi dati<br />
possono essere definiti con una notazione <strong>di</strong>sponibile nel campo delle basi <strong>di</strong><br />
dati, come ad esempio <strong>di</strong> <strong>di</strong>agrammi entità-relazione (<strong>di</strong>agrammi E-R).<br />
Nel terzo caso, l’insieme <strong>di</strong> informazioni che vengono utilizzate in maniera<br />
esplicita dal workflow, oppure le informazioni che vengono create e/o mo<strong>di</strong>ficate<br />
da un utente <strong>per</strong> portare a termine un task, vengono descritte attraverso<br />
degli elementi <strong>di</strong> tipo documento. Questi elementi possono essere definiti <strong>di</strong>rettamente<br />
nel workflow attraverso l’utilizzo <strong>di</strong> form oppure possono essere<br />
creati da <strong>strumenti</strong> esterni al workflow. I documenti creati da <strong>strumenti</strong><br />
esterni possono essere documenti <strong>di</strong> testo, immagini, ecc. Invece attraverso<br />
la definizione del workflow, i documenti vengono definiti sottoforma <strong>di</strong> form.<br />
Le form sono quin<strong>di</strong> un insieme <strong>di</strong> campi <strong>di</strong> dati associati ad un determinato<br />
task del workflow che, una volta compilati, vengono salvati nella form stessa<br />
oppure vengono associati ad attributi presenti nelle tabelle <strong>di</strong> database con<strong>di</strong>visi.<br />
I WfMS possono generare automaticamente queste form ai partire<br />
dai campi <strong>di</strong> dati.<br />
Oltre alle modalità <strong>di</strong> rappresentazione delle informazioni che abbiamo<br />
descritto, esiste un ulteriore aspetto che caratterizza i workflow che sono<br />
in evoluzione: l’aspetto temporale delle informazioni. Nei workflow questo<br />
tipo <strong>di</strong> informazione può essere utilizzata <strong>per</strong> molteplici scopi: un utilizzo<br />
tipico, ad esempio, è il monitoraggio dell’arrivo <strong>di</strong> un certo istante <strong>di</strong><br />
tempo. Queste con<strong>di</strong>zioni temporali possono essere espresse attraverso le<br />
informazioni temporali. In particolare queste con<strong>di</strong>zioni possono essere:<br />
• con<strong>di</strong>zioni istantanee: determina quando una determinata azione deve<br />
essere eseguita.<br />
• con<strong>di</strong>zioni <strong>di</strong> intervallo: servono <strong>per</strong> testare se un certo intervallo <strong>di</strong><br />
tempo è trascorso da un altro evento.
26 Capitolo 2. Stato dell’Arte<br />
• con<strong>di</strong>zioni temporali <strong>per</strong>io<strong>di</strong>che: servono <strong>per</strong> verificare se delle con<strong>di</strong>zioni<br />
temporali <strong>per</strong>io<strong>di</strong>che vengono sod<strong>di</strong>sfatte da un certo istante<br />
<strong>di</strong> tempo.<br />
Esempi <strong>di</strong> utilizzo delle informazioni temporali è la gestione delle eccezioni:<br />
ad esempio si possono definire eccezioni che devo essere sollevate in un particolare<br />
istante <strong>di</strong> tempo, oppure possono essere definite con<strong>di</strong>zioni <strong>di</strong> scadenza<br />
sull’esecuzione <strong>di</strong> un particolare task.<br />
Modello organizzativo<br />
Il modello organizzativo <strong>di</strong> un workflow deve descrivere:<br />
• la struttura dell’organizzazione;<br />
• il partecipante al processo <strong>di</strong> workflow;<br />
• l’autorizzazione che ha un partecipante <strong>per</strong> eseguire una determinata<br />
attività del processo <strong>di</strong> workflow.<br />
Sfruttiamo il modello WIDE [5] <strong>per</strong> descrivere le caratteristiche <strong>di</strong> un modello<br />
organizzativo <strong>di</strong> un workflow. L’utilizzo della terminologia <strong>di</strong> questo<br />
modello non influisce minimamente sui concetti generali che descrivono il<br />
modello organizzativo <strong>di</strong> un workflow.<br />
Nel modello <strong>di</strong> workflow WIDE, un partecipante ad un processo <strong>di</strong> workflow<br />
viene chiamato agente. Con l’entità agente possono essere descritte<br />
ulteriori sotto-entità:<br />
• Attore (Actor): è una risorsa <strong>di</strong> esecuzione in<strong>di</strong>viduale. Può essere<br />
umano oppure un agente software. Un Attore può essere specificato<br />
utilizzando <strong>di</strong>versi attributi tra cui la sua <strong>di</strong>sponibilità.<br />
• Gruppo (Group): è un insieme <strong>di</strong> attori che possiedono comuni caratteristiche<br />
(ad esempio appartengono tutti ad una particolare unità<br />
dell’organizzazione).<br />
• Funzione <strong>di</strong> organizzazione (Organization function): descrive una funzione<br />
che può essere eseguita da un gruppo o da un attore in<strong>di</strong>viduale.<br />
Viene assegnato un attibuto <strong>di</strong> tipo capacità <strong>di</strong> esecuzione (skill).<br />
La struttura <strong>di</strong> un’organizzazione viene specificata attraverso le relazioni che<br />
vengono definite tra queste entità.
2.2. Business Process Management 27<br />
Il modello organizzativo viene utilizzato dal WfMS <strong>per</strong> indentificare un<br />
particolare agente coinvolto nel processo <strong>di</strong> workflow. Affichè questo sia possibile,<br />
ogni agente viene caratterizzato da un identificativo univoco. Questo<br />
<strong>per</strong>mette <strong>di</strong> sa<strong>per</strong>e quale partecipante sta eseguendo un determinato task.<br />
Infine il modello organizzativo <strong>di</strong> un processo <strong>di</strong> workflow defisce i meccanismi<br />
<strong>di</strong> autorizzazione dei vari agenti. Ogni task del workflow deve essere<br />
eseguito da agenti autorizzati. Per questo c’è la necessità <strong>di</strong> specificare quali<br />
agenti possono eseguire i vari task. In questo modo, gli agenti possono monitorare<br />
i task <strong>di</strong> loro competenza che devono essere eseguiti e <strong>di</strong> verificare se<br />
ci sono azioni da intraprendere. A questo proposito si introduce il concetto<br />
<strong>di</strong> ruolo. Un ruolo è una descrizione generica delle entità acuiè <strong>per</strong>messo<br />
eseguire uno specifico task. I ruoli vengono definiti separatamente dagli<br />
agenti e dalla struttura organizzativa e possono riferirsi ad un uno o più task<br />
del workflow. Il concetto <strong>di</strong> ruolo porta a due vantaggi:<br />
1. in<strong>di</strong>pendenza tra i partecipanti <strong>di</strong> un workflow e la definizione del<br />
processo;<br />
2. fornire un metodo <strong>per</strong> bilanciare il carico <strong>di</strong> lavoro.<br />
L’associazione tra ruoli e partecipanti (o attori) del processo viene eseguita<br />
quando vengono definite le informazioni <strong>di</strong> autorizzazione <strong>per</strong> quel partecipante,<br />
cioè l’insieme <strong>di</strong> ruoli che possono essere eseguiti da quel particolare<br />
partecipante. Inoltre è possibile associare un insieme <strong>di</strong> vincoli ai <strong>di</strong>versi<br />
ruoli in modo tale da regolare l’accesso e la manipolazione delle informazioni<br />
ad ogni partecipante appartenente cui sono associati questi ruoli.<br />
Dal punto <strong>di</strong> vista della progettazione del workflow esistono due ruoli <strong>di</strong><br />
base:<br />
1. il progettista del workflow: definisce le specifiche dei processi <strong>di</strong> workflow,intermini<strong>di</strong>schemi<strong>di</strong>workflow;<br />
2. l’amministratore del workflow: è incaricato alla gestione del workflow.<br />
Definisce la struttura <strong>di</strong> una specifica organizzazione e gli attori che<br />
partecipano all’esecuzione <strong>di</strong> un processo <strong>di</strong> workflow.<br />
Dal punto <strong>di</strong> vista dell’esecuzione del workflow esistono i seguenti tre ruoli:<br />
1. l’esecutore dell’istanza <strong>di</strong> workflow: è l’agente che inizia il caso <strong>di</strong><br />
workflow;<br />
2. il responsabile dell’istanza <strong>di</strong> workflow: l’agente che ha la responsabilità<br />
finale sul risultato dell’istanza <strong>di</strong> workflow;
28 Capitolo 2. Stato dell’Arte<br />
3. l’esecutore del task: l’agente che sta eseguendo un task.<br />
Grazie al modello organizzativo appena descritto, un WfMS èingrado<br />
<strong>di</strong> assegnare task ai vari partecipanti del workflow in fase <strong>di</strong> esecuzione.<br />
Questo assegnamento può essere effettuato sia me<strong>di</strong>ante uno scheduler, dove<br />
l’engine dello scheduler assegna il task al miglior partecipante <strong>di</strong>sponibile<br />
del ruolo associato al task secondo la policy <strong>di</strong> assegnamento, oppure viene<br />
fatto <strong>di</strong>rettamente da un utente. Nel primo caso si parla <strong>di</strong> assegnamento<br />
automatico dei task; nel secondo caso si parla assegnamento manuale che<br />
potrebbe essere assistito dal calcolatore nell’identificazione delle priorità e<br />
dei casi critici). La necessità <strong>di</strong>entrambelemodalità <strong>di</strong> assegnamento dei<br />
task emerge in tutte quelle situazioni in cui il task viene assegnato ad un<br />
gruppo <strong>di</strong> partecipanti e, allo stesso tempo, non vi è il bisogno <strong>di</strong> schedulare<br />
in anticipo chi deve eseguire quel determinato task.<br />
Sistemi <strong>di</strong> gestione <strong>di</strong> workflow (WfMS)<br />
In questo paragrafo descriveremo la struttura <strong>di</strong> un sistema <strong>di</strong> gestione <strong>di</strong><br />
workflow. <strong>Una</strong> generica architettura <strong>di</strong> sistema <strong>di</strong> gestione dei workflow<br />
<strong>per</strong>mette <strong>di</strong> gestire i vari sottosistemi necessari <strong>per</strong> la progettazione e l’attuazione<br />
dei workflow sia <strong>di</strong> sistema che quelli ad interazione umana (fig.<br />
2.14). L’architettura contiene i seguenti sottosistemi e ruoli:<br />
Figura 2.14: Schema base <strong>di</strong> un workflow management system
2.2. Business Process Management 29<br />
• Workflow Modelling che fornisce i mezzi <strong>per</strong> poter modellare i processi<br />
<strong>di</strong> business.<br />
• Workflow Model Repository che si occupa <strong>di</strong> immagazzinare i modelli<br />
<strong>di</strong> workflow che sono stati creati.<br />
• Workflow Engine è responsabile del’attuazione dei processi <strong>di</strong> workflow.<br />
Esso in particolare <strong>per</strong>mette la creazione e l’attuazione <strong>di</strong> un’istanza<br />
<strong>di</strong> workflow quando questa viene richiesta.<br />
Il workflow engine si comporta <strong>di</strong>versamente in base alla tipologia <strong>di</strong> workflow<br />
che deve istanziare. Nel caso <strong>di</strong> workflow <strong>di</strong> sistema esso manda avanti<br />
il flusso <strong>di</strong> workflow secondo quanto è stato definito nel modello <strong>di</strong> workflow,<br />
occupandosi <strong>di</strong>rettamente del trasferimento <strong>di</strong> dati tra le applicazioni<br />
coinvolte nel processo. Nel caso invece <strong>di</strong> workflow ad interazione umana,<br />
l’istanza <strong>di</strong> workflow contiene sia applicazioni invocate automaticamente sia<br />
interazioni umane. Queste interazioni umane vengono eseguite utilizzando<br />
una Graphical User Interface. Inoltre la conoscenza delle abilità e delle competenze<br />
dei partecipanti al processo <strong>per</strong>mette al workflow engine <strong>di</strong> assegnare<br />
correttamente i task a chi ha le competenze <strong>per</strong> portarlo a termine.<br />
L’architettura sopra descritta è un modello generico <strong>di</strong> architettura dei<br />
wfms. <strong>Una</strong> descrizione più completaè stata fornita dalla Workflow Management<br />
Coalition, la quale descrizione è <strong>di</strong>ventata un punto <strong>di</strong> riferimento<br />
nella progettazione <strong>di</strong> questo tipo <strong>di</strong> architetture. La figura 2.15 illustra i vari<br />
componenti <strong>di</strong> questa architettura <strong>di</strong> riferimento. Il componente centrale <strong>di</strong><br />
questa architettura è il Workflow Enactment Service che nella terminologia<br />
del WfMC rappresenta il Workflow Engine prima descritto. Quest’ultimo<br />
comunica con gli altri sottosistemi <strong>per</strong> mezzo <strong>di</strong> interfacce.<br />
Il sottosistema Process Definition Tools rappresenta gli <strong>strumenti</strong> <strong>per</strong><br />
mezzo i quali è possibile modellare i processi. Esso è connesso al Workflow<br />
Enactment Service <strong>per</strong> mezzo dell’Interfaccia 1. L’obiettivo <strong>di</strong> tale interfaccia<br />
è <strong>di</strong> <strong>per</strong>mettere agli <strong>strumenti</strong> <strong>di</strong> modellazione prodotti dai vari vendors<br />
<strong>di</strong> rappresentare i processi <strong>di</strong> business in una forma standard. In particolare<br />
l’interfaccia suggerisce l’utilizzo <strong>di</strong> un linguaggio basato su XML chiamato<br />
XPDL, XML Process Definition Language. Definiremo più avanti questo<br />
tipo <strong>di</strong> linguaggio. Il sottosistema Workflow Client Applications <strong>per</strong>mette<br />
l’interazione con i partecipanti umani del processo quando viene attivato un<br />
workflow ad interazione umana. L’obiettivo dell’interfaccia 2 è quello <strong>di</strong> <strong>per</strong>mettere<br />
la comunicazione delle applicazioni client <strong>di</strong> vendors <strong>di</strong>fferenti con<br />
il Workflow Enactment Service. Il sottosistema Invoked Applications rappresenta<br />
l’insieme <strong>di</strong> applicazioni che <strong>per</strong>mettono <strong>di</strong> svolgere specifici task
30 Capitolo 2. Stato dell’Arte<br />
Figura 2.15: Architettura <strong>di</strong> un workflow management system secondo WfMC<br />
del processo. L’interfaccia 3 con il sottosistema centrale definisce degli standard<br />
<strong>di</strong> comunicazione che <strong>per</strong>mettono l’intero<strong>per</strong>abilità <strong>di</strong> quest’ultimo con<br />
l’invocazione <strong>di</strong> applicazioni installate su piattaforme software eterogenee.<br />
Il sottosistema Other Workflow Enactement Services rappresenta il gruppo<br />
<strong>di</strong> altri Workflow engine che <strong>per</strong> mezzo dell’interfaccia 4 possono interagire<br />
tra loro grazie dei protocolli <strong>di</strong> scambio dati comuni. Il sottosistema Administration<br />
and Monitoring Tools contiene gli <strong>strumenti</strong> che <strong>per</strong>mettono<br />
<strong>di</strong> amministratore l’esecuzione <strong>di</strong> un workflow e <strong>di</strong> tenerne monitorato lo<br />
stato. Anche questi <strong>strumenti</strong> devono interfacciarsi al workflow engine e lo<br />
fanno <strong>per</strong> mezzo dell’interfaccia 5 che rappresenta un’interfaccia generica<br />
implementata con <strong>di</strong>verse tecniche.<br />
Gli <strong>strumenti</strong> <strong>BPM</strong>S che andremo ad analizzare sono il risultato <strong>di</strong> <strong>di</strong>versi<br />
componenti che seguono logicamente lo schema architetturale appena descritto.<br />
L’implementazione <strong>di</strong> questo modello architetturale ha subito delle<br />
evoluzioni in base all’affiorare <strong>di</strong> nuove tecnologie e necessità <strong>di</strong> integrazione<br />
tra i vari processi <strong>di</strong> business. Descriviamo ora come è stato implementato<br />
questo modello architetturale nei tra<strong>di</strong>zionali workflow management<br />
system. In seguito nel prossimo paragrafo descriveremo la loro evoluzione<br />
nelle architetture orientate ai servizi.<br />
Nei tra<strong>di</strong>zionali workflow management system vi è una separazione tra<br />
tempo <strong>di</strong> costruzione (build time) e tempo <strong>di</strong> esecuzione (run time) <strong>di</strong> un<br />
processo <strong>di</strong> workflow (figura 2.16). In particolare a tempo <strong>di</strong> costruzione<br />
il processo viene definito attraverso uno strumento <strong>di</strong> modellazione grafica<br />
mentre a tempo <strong>di</strong> esecuzione una istanza del processo viene eseguita dal<br />
workflow engine. In base al tipo <strong>di</strong> workflow management system utiliz-
2.2. Business Process Management 31<br />
Figura 2.16: Separazione tra tempo <strong>di</strong> costruzione e tempo <strong>di</strong> esecuzione <strong>di</strong> un processo<br />
<strong>di</strong> workflow<br />
zato, il modello <strong>di</strong> workflow viene rappresentato da uno script scritto nel<br />
linguaggio <strong>di</strong> workflow <strong>di</strong> quel sistema. I modelli <strong>di</strong> workflow così definiti<br />
vengono salvati in un database oppure in un repository <strong>di</strong> modelli <strong>di</strong> workflow.<br />
Quando un processo <strong>di</strong> business richiede l’esecuzione <strong>di</strong> un particolare<br />
workflow, il workflow engine crea un istanza <strong>di</strong> quest’ultimo e lo mette in<br />
esecuzione. <strong>Una</strong> volta in esecuzione l’istanza del processo è totalmente in<strong>di</strong>pendente<br />
dalla definizione del modello <strong>di</strong> processo in quanto non sussiste<br />
alcun collegamento tra i due. Questa situazione porta a non poter cambiare<br />
la struttura <strong>di</strong> un’istanza <strong>di</strong> un flusso <strong>di</strong> workflow mentre questa è<br />
in esecuzione facendo delle mo<strong>di</strong>fiche sul modello del processo stesso. Per<br />
quest’ultima esigenza sono stati teorizzati dei sistemi <strong>di</strong> workflow “flessibili”.<br />
Come è intuibile dal nome questi sistemi <strong>per</strong>mettono <strong>di</strong> cambiare la<br />
struttura del flusso <strong>di</strong> un workflow in esecuzione agendo sulla definizione del<br />
suo modello. Questo <strong>per</strong>mette <strong>di</strong> adattare il workflow in esecuzione in quei<br />
scenari <strong>di</strong> processi <strong>di</strong> business caratterizzati da ambienti altamente <strong>di</strong>namici.<br />
Con<strong>di</strong>zione affinchè sia possibile adattare <strong>di</strong>namicamente un workflow<br />
in esecuzione è che il workflow in esecuzione sia coerente con il workflow<br />
mo<strong>di</strong>ficato (relazione <strong>di</strong> continuità).<br />
Fino ad ora abbiamo parlato delle architetture <strong>per</strong> gestire e mettere<br />
in esecuzione dei workflow. Come abbiamo già <strong>di</strong>scusso, il risultato <strong>di</strong> un<br />
processo <strong>di</strong> business <strong>di</strong>pende dall’esecuzione coor<strong>di</strong>nata <strong>di</strong> vari workflow e<br />
dalla collaborazione con altri processi <strong>di</strong> business. Obiettivo del prossimo<br />
paragrafo è quello <strong>di</strong> <strong>di</strong>scutere l’ evoluzione <strong>di</strong> tali architetture descrivendo<br />
i Web Service.<br />
2.2.3 Web Service<br />
SOA (Service Oriented Architecture) è una forma particolare <strong>di</strong> sistema <strong>di</strong>stribuito.<br />
Un sistema <strong>di</strong>stribuito (<strong>di</strong>stributed system) consiste <strong>di</strong> vari agenti
32 Capitolo 2. Stato dell’Arte<br />
software <strong>di</strong>stinti che devono lavorare insieme <strong>per</strong> svolgere alcuni compiti.<br />
Questi agenti in un sistema <strong>di</strong>stribuito non o<strong>per</strong>ano nello stesso ambiente<br />
<strong>di</strong> calcolo quin<strong>di</strong> devono comunicare <strong>per</strong> mezzo <strong>di</strong> uno stack <strong>di</strong> protocolli<br />
hardware/software su una rete. Motivare <strong>per</strong>chè <strong>di</strong>co questo<br />
Questo modello architetturale <strong>per</strong>mette la creazione <strong>di</strong> sistemi residenti<br />
su una rete focalizzando l’attenzione sul concetto <strong>di</strong> servizio (service). Con<br />
il termine “servizio” viene in<strong>di</strong>cata un’applicazione residente su un sistema<br />
progettato secondo le specifiche SOA. In questi sistemi infatti sono presenti<br />
una o più applicazioni, chiamate appunto servizi, ben definite ed in<strong>di</strong>pendenti<br />
l’una dall’altra che risiedono su più calcolatori all’interno <strong>di</strong> una rete.<br />
Ogni servizio mette a <strong>di</strong>sposizione una certa funzionalità e può utilizzare<br />
quelle che gli altri servizi mettono a <strong>di</strong>sposizione realizzando in questo modo<br />
applicazioni <strong>di</strong> maggiore complessità. L’architettura SOA non è legata<br />
ad una specifica tecnologia ma contiene semplicemente delle proprietà che<br />
devono essere rispettate da servizi che compongono il sistema. Le proprietà<br />
che un servizio deve rispettare sono:<br />
• essere realizzato in modo da da <strong>per</strong>metterne la composizione con altri.<br />
La creazione <strong>di</strong> applicazioni o servizi più complessi attraverso la composizione<br />
<strong>di</strong> servizi viene definita con il termine <strong>di</strong> “orchestrazione <strong>di</strong><br />
servizi” (Service Orchestration)<br />
• fornire un’interfaccia <strong>di</strong> tipo a grana grossa (coarse-grained), cioè deve<br />
mettere a <strong>di</strong>sposizione un limitato numero <strong>di</strong> funzionalità inquanto<br />
questo <strong>per</strong>mette <strong>di</strong> avere una complessità bassa del programma <strong>di</strong><br />
controllo. Tale bassa complessità favorisce l’interazione con gli altri<br />
servizi attraverso scambi <strong>di</strong> messaggi<br />
• essere debolmente accoppiato con altri servizi (loosely coupled), cioè le<br />
<strong>di</strong>pendenze con altri servizi devono essere in numero limitato rendendo<br />
il sistema flessibile e facilmente mo<strong>di</strong>ficabile<br />
• essere ben definito, completo ed in<strong>di</strong>pendente dal contesto o dallo stato<br />
degli altri servizi<br />
• essere ricercabile e recu<strong>per</strong>abile <strong>di</strong>namicamente attraverso la sua interfaccia<br />
e richiamato a tempo <strong>di</strong> esecuzione<br />
• essere definito da un’interfaccia ed in<strong>di</strong>pendente dall’implementazione<br />
• essere reso <strong>di</strong>sponibile sulla rete attraverso la pubblicazione della sua<br />
interfaccia ed accessibile in modo trasparente rispetto alla sua collocazione.
2.2. Business Process Management 33<br />
Il funzionamento <strong>di</strong> una SOA è basata sull’interazione <strong>di</strong> tre attori:<br />
• Service Provider<br />
• Service Consumer<br />
• Service Registry<br />
Il Service Provider è quell’entità che mette a <strong>di</strong>sposizione un qualche<br />
servizio. Tale servizio <strong>per</strong> poter essere trovato da altre entità nella rete<br />
deve prima essere “pubblicato”. A tale fine il Service Provider comunica<br />
al Service Registry le informazioni relative al servizio <strong>per</strong>chè vengano memorizzate.<br />
Il Service Registry possiede quin<strong>di</strong> tutte le informazioni (come<br />
URL o modalità <strong>di</strong> accesso) <strong>di</strong> tutti i servizi <strong>di</strong>sponibili. Nel momento in<br />
cui un Service Consumer dovrà utilizzare un servizio farà richiesta delle informazioni<br />
ad esso relative al Service Registry. Con queste informazioni il<br />
Service Consumer potrà comunicare <strong>di</strong>rettamente con il Service Provider ed<br />
utilizzare il servizio. Tutte queste informazioni passano attraverso quella<br />
che viene genericamente definita rete <strong>di</strong> comunicazione che può ad esempio<br />
essere una rete intranet oppure la stessa Internet. In figura 2.17 uno schema<br />
riassuntivo.<br />
Figura 2.17: Relazioni <strong>di</strong> interazione tra i vari attori <strong>di</strong> un SOA<br />
I Web Service sono una tipologia <strong>di</strong> applicazioni web che coo<strong>per</strong>ano fra<br />
loro attraverso lo scambio <strong>di</strong> messaggi, in<strong>di</strong>pendentemente dalla piattaforma<br />
sulla quale si trovano. Ognuna <strong>di</strong> queste applicazioni viene chiamato Web
34 Capitolo 2. Stato dell’Arte<br />
Service del quale il Web Services Architecture Working Group dà laseguente<br />
definizione [42]:<br />
un Web Service è un’applicazione software identificata da un<br />
URI (Uniform Resource Identifier), le cui interfacce pubbliche e<br />
collegamenti sono definiti e descritti come documenti XML, in<br />
un formato comprensibile <strong>per</strong> la macchina (spec.WSDL). La sua<br />
definizione può essere ricercata da altri agenti software situati su<br />
una rete, i quali possono interagire <strong>di</strong>rettamente con il Web Service,<br />
con le modalità specificate nella sua definizione, utilizzando<br />
messaggi basati su XML (SOAP) scambiati attraverso protocolli<br />
Internet (tipicamente HTTP).<br />
Stando alla sua definizione, le tecnologie su cui si basano i Web Service<br />
sono:<br />
• XML, eXtensible Markup Language<br />
• SOAP, Simple Object Access Protocol<br />
• WSDL, Web Services Description Language<br />
• UDDI, Universal Description, Discovery and Integration<br />
Attraverso l’utilizzo <strong>di</strong> questi ed altri standard, i Web Services rendono<br />
possibile la coo<strong>per</strong>azione e la comunicazione, attraverso il web, <strong>di</strong> più applicazioni<br />
(servizi) che mettono a <strong>di</strong>sposizione alcune funzionalità e, allo stesso<br />
tempo, utilizzano quelle rese <strong>di</strong>sponibili da altre. Si può cioè ricercare e invocare<br />
servizi che possono essere composti <strong>per</strong> formare un’applicazione <strong>per</strong><br />
l’utente finale, <strong>per</strong> abilitare transazioni <strong>di</strong> business o <strong>per</strong> creare nuovi Web<br />
Services.<br />
I vantaggi offerti dai Web Services sono:<br />
• in<strong>di</strong>pendenza dalla piattaforma, in quanto possono comunicare anche<br />
se si trovano su piattaforme in<strong>di</strong>pendenti<br />
• in<strong>di</strong>pendenza dall’implementazione del servizio: l’interfaccia che un<br />
web service presenta sulla rete è in<strong>di</strong>pendente dal software che implementa<br />
tale servizio<br />
• riuso dell’infrastruttura grazie all’utilizzo <strong>di</strong> SOAP come protocollo<br />
<strong>per</strong> scambiarsi messaggi in quanto esso fa uso del protocollo HTTP<br />
• riuso del software
2.2. Business Process Management 35<br />
Il legame con l’architettura SOA sta nel fatto che, sfruttando al meglio tutte<br />
le caratteristiche della tecnologia dei Web Services, il sistema che si ottiene<br />
implementa proprio un’architettura orientata ai servizi. Dal punto <strong>di</strong> vista<br />
dei <strong>BPM</strong>S, questo tipo <strong>di</strong> architettura viene utilizzato <strong>per</strong> implementare processi<br />
<strong>di</strong> business basati su attività che richiedono servizi <strong>di</strong>versi e <strong>di</strong>stribuiti<br />
nella rete.<br />
Caratteristiche dei Web Service<br />
Definiamo meglio le tecnologie costituenti un Web Service.<br />
XML, eXtensible Markup Language, è un metalinguaggio derivato da<br />
SGML (Standard Generalization Markup Language) [39]. Il termine metalinguaggio<br />
sta ad in<strong>di</strong>care che è un linguaggio <strong>per</strong> mezzo del quale è possibile<br />
definire altri linguaggi. È basato sull’utilizzo <strong>di</strong> marcatori dalla cui<br />
<strong>per</strong>sonalizzazione è possibile creare nuovi linguaggi (marcatori o tag) ed èin<strong>di</strong>pendentemente<br />
dalle varie piattaforme. L’utilizzo <strong>di</strong> questo metalinguaggio<br />
<strong>per</strong>mette la creazione <strong>di</strong> documenti strutturati e flessibili che vengono<br />
utilizzati sulla rete <strong>per</strong> lo scambio dei dati. Il contenuto <strong>di</strong> un documento<br />
XML è costituito da marcatori e dati strutturati secondo un or<strong>di</strong>ne logico<br />
determinato da una struttura ad albero. Il formato del documento è testuale<br />
e questo <strong>per</strong>mette all’utente <strong>di</strong> accedervi <strong>di</strong>rettamente in lettura. Inoltre un<br />
documento XML memorizza i dati all’interno <strong>di</strong> una struttura gerarchica<br />
che rappresenta le relazioni esistenti fra <strong>di</strong> essi, senza curarsi della loro rappresentazione<br />
visuale in quanto questi dati potranno poi essere visualizzati<br />
in molti mo<strong>di</strong> <strong>di</strong>fferenti. Dato che XML è un metalinguaggio e che quin<strong>di</strong> è<br />
possibile derivare dei linguaggi da questo, è necessario <strong>per</strong> ragioni <strong>di</strong> intero<strong>per</strong>abilità<br />
che questi linguaggi derivati vengano definiti in modo strutturato<br />
da un meccanismo che li descriva in termini <strong>di</strong> elementi presenti, <strong>di</strong> struttura<br />
e <strong>di</strong> relazioni fra questi elementi. Per questo sono state create delle<br />
tecnologie <strong>per</strong> assolvere questo compito e sono Document Type Definition,<br />
XML-Schema e XML Namespace. Grazie a questi meccanismi è possibile<br />
validare i documenti scritti in un linguaggio derivato da XML <strong>per</strong> mezzo <strong>di</strong><br />
parser.<br />
WSDL, ovvero Web Services Description Language, è un linguaggio<br />
basato su XML usato <strong>per</strong> descrivere in maniera completa un Web Service<br />
[41]. Di preciso un documento WSDL fornisce informazioni riguardanti<br />
l’interfaccia del Web Service in termini <strong>di</strong>:<br />
• servizi offerti dal Web Service<br />
• URL ad essi associato
36 Capitolo 2. Stato dell’Arte<br />
• mo<strong>di</strong> <strong>per</strong> l’invocazione<br />
• parametri accettati in ingresso e modalità con cui debbono essere<br />
passati<br />
• formato dei risultati restituiti<br />
• formato dei messaggi<br />
In altri termini un documento WSDL fornisce la descrizione relativa ad un<br />
Web Service in termini <strong>di</strong>:<br />
• cosa fa<br />
• come comunica<br />
• dove si trova<br />
Attraverso tale documento si può quin<strong>di</strong> conoscere tutti i dettagli <strong>per</strong> poter<br />
invocare correttamente il servizio.<br />
SOAP, Simple Object Access Protocol, è un protocollo <strong>di</strong> trasmissione<br />
<strong>di</strong> messaggi in formato XML [40]. SOAP mette a <strong>di</strong>sposizione un meccanismo<br />
semplice, ma allo stesso tempo solido, che <strong>per</strong>mette ad una applicazione<br />
<strong>di</strong> mandare un messaggio XML ad un’altra applicazione. Un messaggio è costituito<br />
da una trasmissione in un senso, dal mittente al ricevente, ma si possono<br />
avere uno o più messaggi che definiscono così iltipo<strong>di</strong>comunicazione<br />
che stiamo stabilendo (<strong>per</strong> completezza: One-way, Request-response, Solicitresponse,<br />
Notification). SOAP è un protocollo ad alto livello ed ècompletamente<br />
in<strong>di</strong>pendente dal protocollo <strong>di</strong> trasmissione sottostante, che può<br />
essere in<strong>di</strong>fferentemente HTTP (Hy<strong>per</strong>text Transfer Protocol), JMS(Java<br />
Message Service), SMTP (Simple Mail Transfer Protocol) e altri. Tra questi<br />
il più usatoè quello HTTP.<br />
UDDI, Universal Description, Discovery and Integration, è un linguaggio<br />
basato su XML che utilizza SOAP <strong>per</strong> le comunicazione da o verso<br />
l’esterno[26]. Esso rappresenta la tecnologia <strong>per</strong> mezzo la quale si definisce<br />
un meccanismo comune <strong>per</strong> pubblicare e trovare informazioni sui Web Services,<br />
in base alla loro descrizione WSDL. Ciò che UDDI mette a <strong>di</strong>sposizione<br />
è un registro nel quale è possibile accedere, attraverso opportune funzioni,<br />
<strong>per</strong><br />
• pubblicare servizi che un’azienda rende <strong>di</strong>sponibili<br />
• cercare aziende che mettono a <strong>di</strong>sposizione un certo tipo <strong>di</strong> servizio
2.2. Business Process Management 37<br />
• avere informazioni “Human Readable” circa in<strong>di</strong>rizzi, contatti o altro<br />
relativi l’azienda<br />
• avere informazioni tecniche “Machine Readable”, cioè interpretabili<br />
ed utilizzabili dalla macchina, relative ad un servizio in modo tale da<br />
poter effettuare la connessione<br />
Un registro UDDI è costituito in realtà da un database <strong>di</strong>stribuito, cioè<br />
da molti registri <strong>di</strong>stribuiti sulla rete, ognuno dei quali si trova sul server<br />
<strong>di</strong> un’azienda che contribuisce allo sviluppo <strong>di</strong> questo archivio pubblico, e<br />
connessi fra loro.<br />
2.2.4 Sistemi <strong>BPM</strong>S<br />
Nel paragrafo 2.2.1 abbiamo dato la definizione <strong>di</strong> <strong>BPM</strong>. Questa definizione<br />
afferma che un <strong>BPM</strong> supporta in modo esplicito la gestione del processo <strong>di</strong><br />
business. Questo significa che i processi <strong>di</strong> business devono essere definiti<br />
in modo esplicito. Processi <strong>di</strong> business impliciti sono insiti nei pattern <strong>di</strong><br />
lavoro degli impiegati <strong>di</strong> un’organizzazione o nella logica applicativa delle<br />
applicazioni. Rendere i processi <strong>di</strong> business espliciti richiede che un modello<br />
<strong>di</strong> processo <strong>di</strong> business debba essere prodotto nel quale i processi <strong>di</strong> business<br />
possano essere definiti in maniera precisa. Questo modello dovrebbe essere<br />
analizzato e migliorato se necessario. Deve essere possibile decidere se implementare<br />
il modello con o senza un supporto IT, e se rendere <strong>di</strong>sponibile<br />
all’esterno dell’organizzazione il processo <strong>di</strong> business. Quando viene implementato<br />
un processo <strong>di</strong> business senza il supporto IT devono essere create<br />
nuove politiche e pattern <strong>di</strong> lavoro a cui i partecipanti del processo <strong>di</strong> business<br />
devono adeguarsi. Nel caso il supporto IT sia <strong>di</strong>sponibile, il modello<br />
del processo <strong>di</strong> business viene reso eseguibile e deve essere progettato un<br />
ambiente <strong>di</strong> esecuzione in grado <strong>di</strong> supportarlo. L’ambiente <strong>di</strong> esecuzione <strong>di</strong><br />
un processo <strong>di</strong> business consiste <strong>di</strong> un engine <strong>di</strong> esecuzione del processo <strong>di</strong><br />
business. Questo deve essere in grado <strong>di</strong>:<br />
• eseguire i processi <strong>di</strong> business eseguibili<br />
• gestire le modalità <strong>di</strong> interazione del processo che gli utenti utilizzano<br />
<strong>per</strong> interagire con i modelli eseguibili del processo <strong>di</strong> business<br />
• gestire le funzionalità definite nel processo <strong>di</strong> business<br />
Un modello <strong>di</strong> processo <strong>di</strong> business eseguibile può essere tradotto in<br />
co<strong>di</strong>ce ed essere eseguito da un engine <strong>di</strong> esecuzione del processo <strong>di</strong> business.<br />
Gli utenti possono interagire con i processi <strong>di</strong> business in esecuzione
38 Capitolo 2. Stato dell’Arte<br />
e i manager possono monitorarli e controllarli. I processi <strong>di</strong> business in esecuzione<br />
e quelli terminati possono essere analizzati <strong>per</strong> trovare margini <strong>di</strong><br />
miglioramento, creando un ciclo continuo <strong>di</strong> miglioramento del processo <strong>di</strong><br />
business.<br />
Le o<strong>per</strong>azioni citate possono essere racchiuse in un ciclo <strong>di</strong> vita <strong>di</strong> un<br />
processo <strong>di</strong> business [44]. La figura 2.18 mostra lo schema del ciclo <strong>di</strong> vita<br />
<strong>di</strong> un processo <strong>di</strong> business e i corrispettivi componenti <strong>di</strong> un sistema <strong>BPM</strong>.<br />
Il ciclo <strong>di</strong> vita <strong>di</strong> un processo <strong>di</strong> business è <strong>di</strong>viso in fasi che sono collegate le<br />
Figura 2.18: Ciclo <strong>di</strong> vita <strong>di</strong> un processo <strong>di</strong> business e corrispettivi componenti del<br />
sistema <strong>BPM</strong><br />
une con le altre. Le fasi sono organizzate in una struttura ciclica, mostrando<br />
le loro <strong>di</strong>pendenze logiche. Queste <strong>di</strong>pendenze non implicano il rispettare<br />
uno stretto or<strong>di</strong>ne temporale <strong>per</strong> l’esecuzione delle fasi. Infatti molte attività<br />
<strong>di</strong> progetto e <strong>di</strong> sviluppo vengono condotte durante ciascuna <strong>di</strong> queste fasi.<br />
Le fasi <strong>di</strong> un processo <strong>di</strong> business possono essere mappate nelle corrispettive<br />
metodologie e tecnologie che formano i componenti <strong>di</strong> un sistema<br />
<strong>di</strong> Business Process Management (<strong>BPM</strong>S). Descriviamo ora queste fasi e le<br />
loro corrispettive funzionalità.<br />
Progettazione In questa fase i processi <strong>di</strong> business vengono identificati,<br />
rivisti, validati e rappresentati con dei modelli <strong>di</strong> processi <strong>di</strong> business. La<br />
notazione grafica esprime i modelli <strong>di</strong> processi <strong>di</strong> business in modo esplicito.<br />
Tecniche <strong>di</strong> modellazione <strong>di</strong> un processo <strong>di</strong> business come la validazione,<br />
simulazione e la verifica vengono utilizzate durante questa fase. Per quan-
2.2. Business Process Management 39<br />
to concerne le tecniche <strong>di</strong> modellazione e validazione, gli <strong>strumenti</strong> <strong>BPM</strong><br />
mettono a <strong>di</strong>sposizione un ambiente <strong>di</strong> modellazione che <strong>per</strong>mette <strong>di</strong> descrivere<br />
il processo <strong>di</strong> business con un determinato formalismo (vedremo alcuni<br />
<strong>di</strong> essi nel capitolo 3) e <strong>di</strong> validare il modello. Le tecniche <strong>di</strong> simulazione<br />
possono essere utilizzate <strong>per</strong> supportare la validazione del modello. Infatti<br />
tramite la simulazione è possibile scoprire quelle sequenze <strong>di</strong> esecuzione che<br />
mostrano dei bottleneck prestazionali durante la loro esecuzione e <strong>di</strong> verificare<br />
la correttezza del loro comportamento. La maggior parte dei sistemi<br />
<strong>BPM</strong> forniscono un ambiente <strong>di</strong> simulazione che può essere usato in questa<br />
fase.<br />
Configurazione <strong>Una</strong> volta che il modello del processo <strong>di</strong> business viene<br />
progettato e verificato, il processo <strong>di</strong> business deve essere implementato.<br />
Un sistema <strong>BPM</strong> fornisce dei componenti software de<strong>di</strong>cati a questo scopo.<br />
Questi componenti si occupano <strong>di</strong> fornire le informazioni tecniche necessarie<br />
che facilitano l’attivazione del processo nel <strong>BPM</strong>S. Il sistema <strong>BPM</strong><br />
deve essere configurato secondo l’ambiente organizzativo e in base ai processi<br />
<strong>di</strong> business che devono essere messi in esecuzione. La configurazione<br />
deve includere sia le interazioni degli utilizzatori del sistema con esso sia<br />
l’integrazione dei sistemi software esistenti con il <strong>BPM</strong>S. La configurazione<br />
<strong>di</strong> un <strong>BPM</strong>S potrebbe coinvolgere aspetti transazionali quin<strong>di</strong> deve essere<br />
configurato in modo tale da garantire l’applicazione delle proprietà ACID<br />
richieste dalle transazioni definite nel processo <strong>di</strong> business. Inoltre in questa<br />
fase devono essere raccolte le informazioni necessarie circa i requisiti minimi<br />
<strong>di</strong> risorse che il sistema <strong>BPM</strong>S richiede <strong>per</strong> la sua esecuzione. <strong>Una</strong> volta<br />
terminata la configurazione, l’implementazione del processo <strong>di</strong> business<br />
deve essere testata. A livello <strong>di</strong> processo, vengono effettuati dei test <strong>di</strong> integrazione<br />
o <strong>di</strong> <strong>per</strong>formance che sono importanti <strong>per</strong> in<strong>di</strong>viduare potenziali<br />
problemi a tempo <strong>di</strong> esecuzione del processo.<br />
Attivazione Terminata la fase <strong>di</strong> configurazione, le istanze dei processi <strong>di</strong><br />
business possono essere attivate. La fase <strong>di</strong> attivazione del processo riguarda<br />
tutti gli aspetti coinvolti nell’esecuzione del processo. All’inizio della fase <strong>di</strong><br />
attivazione, le istanze dei processi <strong>di</strong> business vengono inizializzate in modo<br />
da sod<strong>di</strong>sfare i requisiti <strong>di</strong> business <strong>di</strong> un’organizzazione. L’iniziazione <strong>di</strong><br />
un’istanza <strong>di</strong> un processo tipicamente segue un determianto evento (ad esempio<br />
il ricevimento <strong>di</strong> un or<strong>di</strong>ne spe<strong>di</strong>to da un cliente). Un sistema <strong>BPM</strong> deve<br />
essere in grado <strong>di</strong> controllare attivamente l’esecuzione delle istanze e fornire<br />
meccanismi <strong>per</strong> l’orchestrazione <strong>di</strong> queste istanze, in modo da garantire che<br />
le attività <strong>di</strong> processo vengono eseguiti secondo i vincoli <strong>di</strong> esecuzione spec-
40 Capitolo 2. Stato dell’Arte<br />
ificati nel modello <strong>di</strong> processo. Un altro componente importanti del <strong>BPM</strong>S<br />
<strong>di</strong> questa fase è quello che <strong>per</strong>mette il monitoraggio <strong>per</strong> visualizzare lo stato<br />
delle istanze dei processi <strong>di</strong> business. Il monitoraggio del processo èun<br />
meccanismo importante <strong>per</strong> fornire informazioni accurate sullo stato delle<br />
esecuzioni. Il <strong>BPM</strong>S deve essere in grado <strong>di</strong> raccogliere i dati significativi<br />
sull’esecuzione delle istanze <strong>di</strong> business, tipicamente sottoforma <strong>di</strong> file <strong>di</strong> log.<br />
Questi file <strong>di</strong> log consistono <strong>di</strong> insiemi or<strong>di</strong>nati <strong>di</strong> record che in<strong>di</strong>cano eventi<br />
che sono accaduti durante le varie esecuzioni. Queste informazioni sono la<br />
base <strong>per</strong> valutare i processi nella fase <strong>di</strong> <strong>analisi</strong>.<br />
Analisi La fase <strong>di</strong> <strong>analisi</strong> utilizza le informazioni <strong>di</strong>sponibili <strong>per</strong> valutare<br />
e migliorare i modelli dei processi <strong>di</strong> business e le loro implementazioni.<br />
I <strong>BPM</strong>S utilizzano i file <strong>di</strong> log raccolti nella fase precedente <strong>per</strong> valutarli<br />
utilizzando sistemi quali i business activity monitoring e i business cockpit.<br />
Questi ultimi utilizzano tecniche <strong>di</strong> data mining <strong>per</strong> cercare <strong>di</strong> identificare la<br />
qualità <strong>di</strong> un modello <strong>di</strong> processo <strong>di</strong> business e il grado <strong>di</strong> adeguatezza rispetto<br />
l’ambiente <strong>di</strong> esecuzione. Il business activity monitoring (BAM) serve a<br />
identificare quali attività del processo <strong>di</strong> business ad esempio consumano<br />
più risorse oppure non sono state completate in base ai vincoli previsti dal<br />
modello <strong>di</strong> processo <strong>di</strong> business. Queste <strong>analisi</strong> vengono effettuate a tempo<br />
<strong>di</strong> esecuzione in modo da intervenire <strong>di</strong>rettamente sull’istanza del processo.<br />
Il business cockpit,invece, si occupa <strong>di</strong> analizzare i dati raccolti a posteriori<br />
rispetto l’esecuzione del processo. Lo scopo <strong>di</strong> questo strumento è quello <strong>di</strong><br />
mettere in relazione i vari dati prodotti da varie istanze dello stesso processo<br />
<strong>di</strong> business in modo da identificare quelle parti del modello che devono<br />
essere migliorate.
Capitolo 3<br />
Standard degli Strumenti<br />
<strong>BPM</strong><br />
In questo capitolo verranno illustrati gli standard applicabili agli <strong>strumenti</strong><br />
<strong>BPM</strong>. Come vedremo, questi possono essere <strong>di</strong> tre tipologie: standard<br />
grafici <strong>di</strong> modellazione, standard <strong>per</strong> i formati <strong>di</strong> interscambio dei modelli<br />
dei processi <strong>di</strong> business e standard <strong>di</strong> esecuzione dei processi <strong>di</strong> business.<br />
La conformità agli standard è una caratteristica chiave <strong>di</strong> ogni strumento<br />
<strong>BPM</strong>, in quanto gli consente <strong>di</strong> poter interagire con altri <strong>strumenti</strong> <strong>BPM</strong><br />
in un linguaggio che sia comune ad entrambi. Inoltre l’importanza <strong>di</strong> avere<br />
degli standard ben definiti <strong>per</strong>mette <strong>di</strong> dare uniformità alla rappresentazione<br />
<strong>di</strong> un processo <strong>di</strong> business e <strong>di</strong> unificare le molteplici soluzioni descrittive già<br />
esistenti. Tra le proposte <strong>di</strong> standard che citeremo, tratteremo in maniera<br />
più approfon<strong>di</strong>ta gli standard che vengono presi in considerazione ai fini del<br />
nostro stu<strong>di</strong>o <strong>di</strong> <strong>analisi</strong>: <strong>BPM</strong>N, XPDL, BPEL4WS, BPEL4PEOPLE.
42 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
3.1 Standard grafici <strong>per</strong> la modellazione<br />
Gli standard grafici <strong>per</strong>mettono agli utenti <strong>di</strong> esprimere sotto forma <strong>di</strong> <strong>di</strong>agramma<br />
il flusso informativo, i punti <strong>di</strong> decisione e i ruoli dei processi <strong>di</strong><br />
business. Rispetto alle altre tipologie <strong>di</strong> standard, gli standard grafici sono<br />
quelli più human-readable e facili da comprendere senza che siano necessarie<br />
conoscenze tecniche specifiche. Tra gli standard più importanti troviamo:<br />
• Business Process Management Notation (<strong>BPM</strong>N)<br />
• Activity Diagram UML<br />
• Event-driven Process Chain (EPC)<br />
Tra questi standard grafici, Business Process Management Notation èlo<br />
standard scelto ai fini della nostra <strong>analisi</strong> in quanto attualmente lo standard<br />
<strong>di</strong> modellazione più utilizzato tra i vari produttori <strong>di</strong> <strong>strumenti</strong> <strong>BPM</strong>.<br />
Business Process Management Notation sarà l’oggetto del paragrafo 3.1.1.<br />
Ve<strong>di</strong>amo ora brevemente gli altri due standard grafici citati.<br />
Activity Diagram UML<br />
Unified Modeling Language è un linguaggio <strong>di</strong> modellazione visuale, orientato<br />
agli oggetti e polivalente ideato dall’ Object Management Group. Il<br />
linguaggio contiene <strong>di</strong>verse notazioni orientate agli oggetti <strong>per</strong> mezzo delle<br />
quali è possibile definire tutti gli attributi e i comportamenti degli oggetti<br />
modellizzati [31]. Esempi <strong>di</strong> queste notazioni possono essere:<br />
• Use Case Diagram: <strong>per</strong>mettono <strong>di</strong> documentare ad alto livello i requisiti<br />
dell’utente<br />
• Sequence Diagram: <strong>per</strong>mettono <strong>di</strong> documentare la sequenza del flusso<br />
del programma<br />
Oltre a queste notazioni, UML mette a <strong>di</strong>sposizione gli Activity Diagram<br />
che sono una notazione adatta a descrivere i processi <strong>di</strong> business. Infatti gli<br />
Activity Diagram visualizzano sequenze <strong>di</strong> azioni che devono essere eseguite,<br />
includendo la descrizione del flusso <strong>di</strong> controllo e del flusso dei dati tra<br />
attività.<br />
Per descrivere le caratteristiche <strong>di</strong> un Activity Diagram, pren<strong>di</strong>amo in<br />
considerazione l’esempio descritto da [8] e illustrato in figura 3.1. L’esempio<br />
mostra un processo <strong>di</strong> business che consiste nell’attività <strong>di</strong> ven<strong>di</strong>ta <strong>di</strong> hardware<br />
<strong>di</strong> computer. All’interno del rettangolo dell’attività troviamo la notazione<br />
grafica che consiste <strong>di</strong> no<strong>di</strong> e archi rappresentanti il comportamento
3.1. Standard grafici <strong>per</strong> la modellazione 43<br />
Figura 3.1: Esempio <strong>di</strong> processo descritto con un Activity Diagram tratto da [8]<br />
interno del processo. Un Activity Diagram possiede due tipi <strong>di</strong> no<strong>di</strong> <strong>per</strong> il<br />
flusso <strong>di</strong> controllo:<br />
1. no<strong>di</strong> <strong>di</strong> azione: rappresentano i task che costituiscono il processo <strong>di</strong><br />
business. Le attività rappresentano l’esecuzione coor<strong>di</strong>nata <strong>di</strong> azioni.<br />
Vengono rappresentati come rettangoli arrotondati.<br />
2. no<strong>di</strong> <strong>di</strong> controllo: <strong>per</strong>mettono <strong>di</strong> realizzare la coor<strong>di</strong>nazione tra azioni.<br />
La struttura <strong>di</strong> controllo più importanteè la sequenza. Nella sequenza<br />
un’azione può iniziare la sua esecuzione quando un’altra azione<br />
termina la sua esecuzione.<br />
La semantica delle attività viene descritta <strong>per</strong> mezzo dei token flow. Questi<br />
possono essere <strong>di</strong> tipo control token se sono anonimi e non <strong>di</strong>stinguibili;<br />
sono, invece, <strong>di</strong> tipo object token se si riferiscono ad oggetti <strong>di</strong> dati. Il fluire<br />
dei token lungo gli archi <strong>di</strong> controllo <strong>per</strong>mette <strong>di</strong> determinare le <strong>di</strong>pendenze<br />
nell’esecuzione delle azioni. Un’azione può iniziare la sua esecuzione quando i<br />
token sono <strong>di</strong>sponibili nei suoi archi in entrata e provengono da tutte le azioni<br />
che precedono quella corrente. Quando l’azione inizia la sua esecuzione, i<br />
token vengono rimossi dagli archi in entrata e posti in quelli in uscita. A<br />
questo punto l’azione può definirsi terminata (ve<strong>di</strong> figura 3.2). All’inizio e<br />
al termine del processo notiamo due no<strong>di</strong> <strong>di</strong> controllo particolari: il nodo<br />
iniziale, il quale in<strong>di</strong>ca l’inizio dell’attività, e il nodo finale che in<strong>di</strong>ca la<br />
fine del flusso <strong>di</strong> controllo. Nel flusso <strong>di</strong> controllo le azioni possono essere<br />
eseguite al verificarsi <strong>di</strong> determinate con<strong>di</strong>zioni. Questo fatto corrisponde<br />
alla struttura <strong>di</strong> controllo chiamata XOR-split che consiste in una scelta<br />
<strong>di</strong> tipo esclusivo sulla prossima attività che deve entrare in esecuzione. La<br />
figura 3.3 mostra le tre varie tipologie <strong>di</strong> no<strong>di</strong> decisionali:
44 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
Figura 3.2: Flusso <strong>di</strong> token tra azioni<br />
1. No<strong>di</strong> decisionali (decision node): in uscita escono tanti archi quante<br />
sono le possibilità <strong>di</strong> esecuzione.<br />
2. No<strong>di</strong> <strong>di</strong> unione (merge node): l’azione ha <strong>di</strong>versi no<strong>di</strong> in entrata ma<br />
solo uno in uscita.<br />
3. No<strong>di</strong> combinati: sono no<strong>di</strong> che racchiudono sia quelli decisionali che<br />
quelli <strong>di</strong> unione.<br />
Figura 3.3: Notazione dei no<strong>di</strong> decisionali<br />
Oltre al flusso <strong>di</strong> controllo <strong>di</strong> tipo esclusivo, gli Activity Diagram mettono a<br />
<strong>di</strong>sposizione la possibilità <strong>di</strong> definire flussi <strong>di</strong> controllo <strong>di</strong> tipo concorrente.<br />
Questi flussi possono essere definiti me<strong>di</strong>ante le notazioni <strong>di</strong> fork e join. La<br />
fork consiste nell’avere un solo arco <strong>di</strong> controllo in entrata e <strong>di</strong>versi archi<br />
in uscita. Questo <strong>per</strong>mette <strong>di</strong> eseguire in parallelo <strong>di</strong>verse azioni. La join<br />
consiste nell’avere più archi in entrata e solo uno in uscita. Questo consente<br />
<strong>di</strong> sincronizzare tutte le azioni precedenti quella corrente. La fork/join combinata<br />
è l’unione dei due flussi <strong>di</strong> controllo appena descritti. La figura 3.4<br />
mostra i flussi <strong>di</strong> controllo concorrenti.<br />
I componenti dell’Activity Diagram appena descritti sono gli elementi <strong>di</strong><br />
base <strong>di</strong> questa notazione. Per una panoramica completa dei componenti <strong>di</strong><br />
un Activity Diagram si consiglia [13].
3.1. Standard grafici <strong>per</strong> la modellazione 45<br />
Figura 3.4: Notazione dei no<strong>di</strong> decisionali<br />
Event-driven Process Chain (EPC)<br />
Event-driven process chain è una <strong>metodologia</strong> <strong>di</strong> modellazione ideata da<br />
SAP [8]. Questa <strong>metodologia</strong> consiste <strong>di</strong> descrivere il processo <strong>di</strong> business<br />
da <strong>di</strong>versi punti <strong>di</strong> vista:<br />
• Entità responsabili del processo e loro relazioni: descrive le entità<br />
responsabili coinvolte nel processo <strong>di</strong> business, i loro output e le loro<br />
relazioni <strong>di</strong> comunicazione sottoforma <strong>di</strong> <strong>di</strong>agrammi <strong>di</strong> interazione.<br />
• Flusso funzionale: il <strong>di</strong>agramma descrive le attività appartenenti al<br />
processo <strong>di</strong> business che devono essere eseguite. A <strong>di</strong>fferenza del precedente<br />
<strong>di</strong>agramma, nel flusso funzionale il punto <strong>di</strong> vista è la sequenza<br />
<strong>di</strong>namica delle attività.<br />
• Flusso <strong>di</strong> output: questo <strong>di</strong>agramma descrive le relazioni tra gli output<br />
prodotti dalle attività del processo <strong>di</strong> business.<br />
• Flusso informativo: il <strong>di</strong>agramma mostra gli oggetti <strong>di</strong> informazione<br />
utilizzati durante il processo <strong>di</strong> business (ad esempio <strong>per</strong> scambiarsi<br />
dati tra attività).<br />
<strong>Una</strong> volta definite tutte le viste del modello <strong>di</strong> processo <strong>di</strong> business si ricava<br />
il cosiddetto modello <strong>di</strong> processo <strong>di</strong> business consolidato che altro non èche<br />
l’unione delle viste del processo definite precedentemente.<br />
<strong>Una</strong> event-driven process chain consiste dei seguenti elementi (figura<br />
3.5):<br />
• Funzioni: rappresentano i blocchi <strong>di</strong> base. Rappresentano una attività<br />
che deve essere eseguita.<br />
• Eventi: descrivono la situazione prima e dopo l’esecuzione <strong>di</strong> una funzione.<br />
Le funzioni sono collegate da eventi. Un evento potrebbe corrispondere<br />
ad una post-con<strong>di</strong>zione <strong>di</strong> una funzione e agire come una<br />
pre-con<strong>di</strong>zione <strong>di</strong> un’altra funzione.
46 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
• Connettori logici: possono essere utilizzati <strong>per</strong> collegare le attività<br />
agli eventi (AND, XOR, OR). In questo modo si specifica il flusso <strong>di</strong><br />
processo.<br />
Figura 3.5: Elementi della notazione event-drive process chain<br />
Un esempio <strong>di</strong> processo <strong>di</strong> business modellizzato tramite <strong>metodologia</strong> EPC<br />
è quello <strong>di</strong> figura 3.6. Per ulteriori approfon<strong>di</strong>menti sul modello si consiglia<br />
[37].<br />
3.1.1 Notazione <strong>BPM</strong>N<br />
Business Process Model and Notation, <strong>BPM</strong>N, è una notazione <strong>di</strong> modellazione<br />
<strong>per</strong> processi <strong>di</strong> business definito dall’Object Management Group<br />
(OMG), che mira a <strong>di</strong>ventare uno standard de facto tra i vari standard<br />
grafici <strong>di</strong> modellazione <strong>di</strong> processi <strong>di</strong> business. La notazione nasce dall’esigenza<br />
<strong>di</strong> creare un linguaggio <strong>di</strong> modellazione che fosse in grado <strong>di</strong> eliminare<br />
il gap tecnico esistente tra le descrizioni dei processi <strong>di</strong> business <strong>per</strong> mezzo<br />
<strong>di</strong> <strong>di</strong>agrammi <strong>di</strong> flusso e le descrizioni <strong>di</strong> quest’ultime in un linguaggio <strong>di</strong><br />
esecuzione (paragrafo 3.3). Per mezzo <strong>di</strong> questa notazione è infatti possibile<br />
mappare la descrizione visuale <strong>di</strong> un processo <strong>di</strong> business, descritta <strong>di</strong>rettamente<br />
dagli analisti <strong>di</strong> business, nel linguaggio <strong>di</strong> esecuzione appropriato<br />
[28].<br />
La modellazione del processo <strong>di</strong> business viene utilizzata <strong>per</strong> comunicare<br />
una vasta varietà <strong>di</strong> informazioni ad un altrettanto vasto insieme <strong>di</strong> entità.<br />
Per questo motivo <strong>BPM</strong>N è stato ideato in modo da creare <strong>di</strong>verse tipologie<br />
<strong>di</strong> modelli <strong>di</strong> business end to end. Secondo OMG, questi processi possono<br />
essere classificati come:<br />
1. Processi privati (interni)<br />
2. Processi pubblici (pubblici)<br />
3. Processi <strong>di</strong> collaborazione (globali)<br />
I processi privati sono i processi interni a specifiche organizzazioni e sono<br />
quei tipi <strong>di</strong> processi che vengono definiti workflow. Se vengono utilizzate le
3.1. Standard grafici <strong>per</strong> la modellazione 47<br />
Figura 3.6: Esempio <strong>di</strong> processo EPC
48 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
swimlanes <strong>per</strong> la loro rappresentazione allora il flusso <strong>di</strong> sequenza (sequence<br />
flow) del processo privato è contenuto all’interno <strong>di</strong> un singolo pool e non<br />
può attraversare i confini <strong>di</strong> questo pool. Tuttavia è possibile un interazione<br />
tra processi privati <strong>di</strong> business utilizzando il flusso <strong>di</strong> messaggi (message<br />
flow). La figura 4.3 mostra un esempio <strong>di</strong> processo <strong>di</strong> business privato.<br />
Figura 3.7: Esempio <strong>di</strong> processo privato descritto in <strong>BPM</strong>N tratto da [28]<br />
I processi astratti rappresentano le interazioni tra i processi <strong>di</strong> business<br />
privati e altri processi o partecipanti. Solo quelle attività che vengono utilizzate<br />
all’infuori dei processi <strong>di</strong> business privati con i meccanismi <strong>di</strong> controllo<br />
<strong>di</strong> flusso appropriati vengono incluse nei processi astratti. Tutte le altre attività<br />
interne dei processi <strong>di</strong> business privati non vengono incluse nei processi<br />
astratti. Per questo motivo un processo astratto mostra al mondo esterno<br />
la sequenza <strong>di</strong> messaggi che sono richiesti <strong>per</strong> interagire con quel processo <strong>di</strong><br />
business. I processi astratti sono contenuti all’interno <strong>di</strong> un pool e possono<br />
essere modellizzati separatamente o all’interno <strong>di</strong> un <strong>di</strong>agramma <strong>BPM</strong>N più<br />
grande <strong>per</strong> mostrare il flusso <strong>di</strong> messaggi tra le attività dei processi astratti<br />
e le altre entità. Se il processo astratto è nello stesso <strong>di</strong>agramma del suo<br />
corrispondente processo privato allora le attività che sono in comune ad<br />
entrambi i processi possono essere associate. La figura 4.4 un esempio <strong>di</strong><br />
processo astratto con notazione <strong>BPM</strong>N.<br />
Figura 3.8: Esempio <strong>di</strong> processo astratto descritto in <strong>BPM</strong>N tratto da [28]<br />
Un processo <strong>di</strong> collaborazione raffigura le interazioni tra due o più entità<br />
<strong>di</strong> business. Queste interazioni vengono definite come una sequenza <strong>di</strong>
3.1. Standard grafici <strong>per</strong> la modellazione 49<br />
attività che rappresentano le modalità <strong>di</strong> scambio <strong>di</strong> messaggi tra le entità<br />
coinvolte. Il processo <strong>di</strong> collaborazione può essere mostrato come due o<br />
più processi astratti comunicanti tra <strong>di</strong> loro. All’interno <strong>di</strong> un processo astratto,<br />
le attività <strong>per</strong> i partecipanti che collaborano tra loro possono essere<br />
considerate come i punti <strong>di</strong> contatto tra i partecipanti. I processi eseguibili<br />
<strong>di</strong> collaborazione hanno molte più attività e dettagli rispetto ai processi<br />
astratti come è possibile vedere in figura 4.5.<br />
Un <strong>di</strong>agramma <strong>BPM</strong>N (chiamato <strong>di</strong>agramma BPD) può essere modellizzato<br />
rispetto a <strong>di</strong>fferenti punti <strong>di</strong> vista dei partecipanti del processo. Infatti<br />
ogni processo <strong>di</strong> business contiene due o più attori, i quali possiedono <strong>di</strong>fferenti<br />
punti <strong>di</strong> vista a secondo <strong>di</strong> come vengono coinvolti all’interno del processo.<br />
Alcune attività potranno essere interne rispetto ad un partecipante<br />
mentre altre potrebbero risultare esterne a quel particolare partecipante.<br />
Questa <strong>di</strong>fferenze <strong>di</strong> punti <strong>di</strong> vista delle attività risulta importante a tempo<br />
<strong>di</strong> esecuzione del processo, in quanto <strong>per</strong>mette al partecipante <strong>di</strong> monitorare<br />
lo stato delle sue attività anche se <strong>di</strong> fatto il <strong>di</strong>agramma rimane lo stesso <strong>per</strong><br />
tutti i partecipanti. In figura 4.5 infatti il processo <strong>di</strong> business presenta due<br />
punti <strong>di</strong> vista: uno del paziente e l’altro dell’ufficio del dottore. In questo<br />
<strong>di</strong>agramma vengono mostrate le attività <strong>di</strong>entrambiipartecipantialprocesso<br />
ma, quando il processo viene posto in esecuzione, ogni partecipante<br />
avrà il controllo solo delle attività che lo riguardano <strong>di</strong>rettamente. L’obiettivo<br />
del Open Management Group è quello <strong>di</strong> creare una notazione semplice<br />
e facilmente adottabile dagli analisti <strong>di</strong> business. Inoltre questa notazione<br />
deve essere in grado <strong>di</strong> gestire contemporaneamente la raffigurazione <strong>di</strong> processi<br />
<strong>di</strong> business complessi e il loro mapping verso i linguaggi <strong>di</strong> esecuzione<br />
<strong>BPM</strong>. Per vedere come <strong>BPM</strong>N risolve entrambi i problemi descriveremo le<br />
componenti grafiche <strong>di</strong> un <strong>di</strong>agramma <strong>BPM</strong>N sfruttando la <strong>di</strong>visione in due<br />
gruppi suggerita da OMG. Il primo gruppo contiene gli elementi <strong>di</strong> base<br />
della notazione con i quali è possibile creare dei modelli della maggior parte<br />
dei processi <strong>di</strong> business. Il secondo gruppo, oltre a contenere gli elementi<br />
del primo, contiene inoltre una serie <strong>di</strong> formalismi grafici che consistono <strong>di</strong><br />
risolvere situazioni <strong>di</strong> modellazione complesse.<br />
Il primo gruppo degli elementi <strong>di</strong> base della notazione contiene 11 formalismi<br />
grafici <strong>per</strong> mezzo dei quali è possibile descrivere la maggior parte<br />
dei processi <strong>di</strong> business. Questi formalismi grafici sono <strong>di</strong>visi in 4 categorie:<br />
1. Oggetti <strong>di</strong> flusso (Flow Objects)<br />
2. Oggetti <strong>di</strong> connessione (Connecting Objects)<br />
3. Swimlanes
50 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
Figura 3.9: Esempio <strong>di</strong> processo <strong>di</strong> collaborazione descritto in <strong>BPM</strong>N tratto da [28]
3.1. Standard grafici <strong>per</strong> la modellazione 51<br />
4. Artefatti (Artifacts)<br />
In particolare gli oggetti <strong>di</strong> flusso sono <strong>di</strong>visi in:<br />
• Eventi<br />
• Attività<br />
• Gateways<br />
Gli oggetti <strong>di</strong> connessione in:<br />
• Flusso <strong>di</strong> sequenza (Sequence Flow)<br />
• Flusso <strong>di</strong> messaggio (Message Flow)<br />
• Associazione (Association)<br />
Le swimlanes si <strong>di</strong>vidono in<br />
• Pools<br />
• Lanes<br />
Infine gli artefatti, che vengono utilizzati <strong>per</strong> fornire informazioni ulteriori<br />
circa il processo, sono:<br />
• Oggetto <strong>di</strong> dati (Data Object)<br />
• Gruppo (Group)<br />
• Annotazione (Annotation)<br />
Ve<strong>di</strong>amo questi oggetti grafici in particolare.<br />
Evento Un evento è qualcosa che accade durante il corso del processo<br />
<strong>di</strong> business. Questi eventi influiscono sull’esito del flusso del processo e<br />
solitamente sono caratterizzati da una causa (trigger) e da un effetto (result).<br />
Vengono rappresentati <strong>per</strong> mezzo <strong>di</strong> un cerchio e ne esistono tre <strong>di</strong> base: gli<br />
eventi <strong>di</strong> inizio, interme<strong>di</strong> al processo e <strong>di</strong> fine (figura 4.6).<br />
Attività Attivitàè un termine generico <strong>per</strong> in<strong>di</strong>care il lavoro che svolge<br />
un qualche entità. Un’attività può essere atomica o composta. I tipi <strong>di</strong><br />
attività che fanno parte del modello <strong>di</strong> processo sono tre: il processo, il<br />
sottoprocesso e il task. I task e i sotto-processi sono rappresentati con un<br />
rettangolo arrotondato mentre i processi sono contenuti nei pool (figura 4.7).
52 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
Figura 3.10: Evento <strong>BPM</strong>N<br />
Figura 3.11: Attività <strong>BPM</strong>N
3.1. Standard grafici <strong>per</strong> la modellazione 53<br />
Gateway Un gateway viene utilizzato <strong>per</strong> controllare la <strong>di</strong>vergenza e<br />
la convergenza <strong>di</strong> un flusso <strong>di</strong> sequenza. Quin<strong>di</strong> determinerà le o<strong>per</strong>azioni<br />
<strong>di</strong> branching, <strong>di</strong> forking, <strong>di</strong> merging e <strong>di</strong> joining dei vari <strong>per</strong>corsi <strong>di</strong> flusso.<br />
Viene rappresentato come un rombo (figura 3.12).<br />
Figura 3.12: Gateway <strong>BPM</strong>N<br />
Flusso <strong>di</strong> sequenza Un flusso <strong>di</strong> sequenza viene utilizzato <strong>per</strong> mostrare<br />
l’or<strong>di</strong>ne con cui vengono eseguite le attività all’interno del processo (figura<br />
3.13).<br />
Figura 3.13: Flusso <strong>di</strong> sequenza <strong>BPM</strong>N<br />
Flusso <strong>di</strong> messaggio Un flusso <strong>di</strong> messaggio viene utilizzato <strong>per</strong> mostrare<br />
il flusso <strong>di</strong> messaggi tra due partecipanti che sono preparati a spe<strong>di</strong>rli e a<br />
riceverli (figura 3.14).<br />
Figura 3.14: Flusso <strong>di</strong> messaggio <strong>BPM</strong>N<br />
Associazione Un’associazione viene utilizzata <strong>per</strong> associare informazione<br />
con gli oggetti <strong>di</strong> flusso. Oggetti testuali e grafici non <strong>di</strong> flusso possono essere<br />
associati con quelli <strong>di</strong> flusso. Un’associazione può avere una <strong>di</strong>rezione <strong>per</strong>
54 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
in<strong>di</strong>care il destinatario delle informazioni che trasporta se opportuno (figura<br />
3.15).<br />
Figura 3.15: Associazione <strong>BPM</strong>N<br />
Pool Un pool rappresenta un partecipante in un processo. Inoltre serve<br />
anche da contenitore grafico <strong>per</strong> partizionare un insieme <strong>di</strong> attività daaltri<br />
pool (figura 3.16).<br />
Figura 3.16: Pool <strong>BPM</strong>N<br />
Lane Un lane rappresenta una sotto-partizione all’interno del pool che<br />
si estende <strong>per</strong> l’intera lunghezza del pool sia in orizzontale che in verticale.<br />
Viene utilizzato <strong>per</strong> organizzare e categorizzare le attività (figura 3.17).<br />
Figura 3.17: Lane <strong>BPM</strong>N<br />
Oggetto <strong>di</strong> dati Un oggetto <strong>di</strong> dati non ha alcun effetto sul flusso <strong>di</strong><br />
sequenza o <strong>di</strong> messaggio ma fornisce informazioni circa quelle attività che<br />
richiedono <strong>di</strong> essere eseguite oppure cosa essere producono (figura 3.18).
3.1. Standard grafici <strong>per</strong> la modellazione 55<br />
Figura 3.18: Oggetto <strong>di</strong> dati <strong>BPM</strong>N<br />
Gruppo Un gruppo rappresenta un insieme <strong>di</strong> attività appartenenti<br />
ad una singola categoria. Questo tipo <strong>di</strong> gruppo non influisce sul flusso <strong>di</strong><br />
sequenza delle attività all’interno del gruppo. Dato che le categorie possono<br />
essere utilizzate <strong>per</strong> scopi <strong>di</strong> documentazione o <strong>di</strong> <strong>analisi</strong>, i gruppi rappresentano<br />
l’unico modo <strong>per</strong> visualizzarle all’interno del <strong>di</strong>agramma (figura 3.19).<br />
Figura 3.19: Gruppo <strong>BPM</strong>N<br />
Annotazione Le annotazioni testuali sono un meccanismo <strong>per</strong> il modellista<br />
<strong>per</strong> fornire ulteriori informazioni a chi leggere il <strong>di</strong>agramma BPD<br />
(figura 3.20).<br />
Con questi elementi è possibile descrivere la maggior parte dei processi<br />
<strong>di</strong> business. Se volessimo dettagliare ulteriormente il <strong>di</strong>agramma con<br />
delle specifiche del processo <strong>di</strong> business, questo richiederebbe l’utilizzo <strong>di</strong><br />
una notazione più avanzata che <strong>BPM</strong>N prevede. Mostriamo gli elementi<br />
più importanti <strong>per</strong> la notazione avanzata. Per un quadro completo si<br />
consiglia[28].
56 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
Figura 3.20: Annotazione <strong>BPM</strong>N<br />
Tipologia <strong>di</strong> eventi Gli eventi possono avere una <strong>di</strong>mensione <strong>di</strong> flusso<br />
e una <strong>di</strong>mensione riguardante la loro tipologia. Per quanto riguarda la prima<br />
<strong>di</strong>mensione essi si <strong>di</strong>vidono in (figura 3.21):<br />
• Eventi <strong>di</strong> inizio: in<strong>di</strong>cano che un particolare processo ha inizio. Vengono<br />
rappresentati con un cerchio.<br />
• Eventi interme<strong>di</strong>: influiscono sull’andamento del flusso <strong>di</strong> processo ma<br />
non iniziano ne terminano il processo. Vengono rappresentati con un<br />
doppio cerchio.<br />
• Eventi <strong>di</strong> fine: in<strong>di</strong>cano la terminazione <strong>di</strong> un processo. Vengo rappresentati<br />
con un cerchio il cui bordo è in grassetto.<br />
Figura 3.21: Dimensione <strong>di</strong> flusso degli eventi <strong>BPM</strong>N<br />
Per quanto riguarda la loro tipologia essi possono essere <strong>di</strong> tipo “catching”<br />
se reagiscono a un qualche trigger che li metta in esecuzione oppure possono<br />
essere <strong>di</strong> tipo “throwing” se creano un qualche risultato. Ogni tipo <strong>di</strong> evento<br />
è in<strong>di</strong>cato da un simbolo che ne identifica la funzione. Gli eventi <strong>di</strong> catching<br />
vengono in<strong>di</strong>cati con il simbolo non riempito mentre quelli <strong>di</strong> throwing con<br />
il simbolo riempito. La figura 3.22 mostra le varie tipologie <strong>di</strong> eventi. In<br />
particolare:<br />
• eventi <strong>di</strong> tipo “message”: in<strong>di</strong>cano che un messaggio è arrivato da<br />
parte <strong>di</strong> un partecipante oppure è il risultato dell’evento
3.1. Standard grafici <strong>per</strong> la modellazione 57<br />
• eventi <strong>di</strong> tipo “timer”: sono solo <strong>di</strong> tipo catching e rimangono in ascolto<br />
<strong>di</strong> un trigger temporale che decide il momento della loro esecuzione<br />
• eventi <strong>di</strong> tipo “error”: in<strong>di</strong>cano che si è verificato un errore all’interno<br />
del flusso <strong>di</strong> processo. Possono essere solo interme<strong>di</strong> o <strong>di</strong> fine<br />
• eventi <strong>di</strong> tipo “cancel”: vengono utilizzati <strong>per</strong> annullare gli effetti <strong>di</strong><br />
una transazione <strong>di</strong> business definita all’interno <strong>di</strong> un sotto-processo<br />
• eventi <strong>di</strong> tipo “compensation”: vengono utilizzati <strong>per</strong> la gestione delle<br />
eccezioni che possono verificarsi all’interno <strong>di</strong> un processo e servono<br />
<strong>per</strong> effettuare compensazione<br />
• eventi <strong>di</strong> tipo “con<strong>di</strong>tional”: questi eventi si attivano quando una<br />
con<strong>di</strong>zione <strong>di</strong>venta vera<br />
• eventi <strong>di</strong> tipo “link”: rappresentano un meccanismo grazie al quale è<br />
possibile collegare due sezioni <strong>di</strong> un processo. Vengono utilizzati <strong>per</strong><br />
creare situazioni cicliche oppure <strong>per</strong> evitare lunghe sequenze <strong>di</strong> flusso<br />
• eventi <strong>di</strong> tipo “signal”: viene inviato un segnale all’interno del processo<br />
che viene <strong>di</strong>ffuso in modalità broadcast a tutti i partecipanti<br />
a <strong>di</strong>fferenza dei messaggi che hanno una sorgente e un destinatario<br />
definiti<br />
• eventi <strong>di</strong> tipo “terminate”: vengono utilizzati <strong>per</strong> terminare imme<strong>di</strong>atamente<br />
tutte le attività all’interno <strong>di</strong> un processo<br />
• eventi <strong>di</strong> tipo “multiple”: in<strong>di</strong>cano l’esistenza <strong>di</strong> molteplici trigger<br />
riguardanti l’evento.<br />
Tipologia <strong>di</strong> attività Le attività si <strong>di</strong>vidono in: task, processo o<br />
sotto-processo. In particolare:<br />
• un task rappresenta un’unità atomica <strong>di</strong> attività che è inclusa all’interno<br />
<strong>di</strong> un processo. Viene utilizzato quando l’attività non è<br />
ulteriormente decomponibile (figura 3.23).<br />
• un sotto-processo è un’attività composta che viene inclusa all’interno<br />
<strong>di</strong> un processo. Graficamente può essere visualizzata completamente<br />
(figura 3.25) oppure viene visualizzata in modalità “collassata” (figura<br />
3.24) con il simbolo “+” che sta ad in<strong>di</strong>care questa tipologia.
58 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
Figura 3.22: Tipologie degli eventi <strong>BPM</strong>N
3.1. Standard grafici <strong>per</strong> la modellazione 59<br />
Figura 3.23: Attività atomica <strong>BPM</strong>N<br />
Figura 3.24: Sotto-processo “collassato” <strong>BPM</strong>N<br />
Figura 3.25: Sotto-processo esteso <strong>BPM</strong>N
60 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
Tipologie <strong>di</strong> gateway Come è possibile notare in figura 3.26, esistono<br />
<strong>di</strong>verse tipologie <strong>di</strong> gateway. In particolare:<br />
• Gateway esclusivi: definiscono una scelta da fare nel flusso <strong>di</strong> processo.<br />
Questa scelta può essere basata su dati oppure su evento.<br />
• Gateway inclusivi: definiscono una o più scelte che vengono prese nel<br />
flusso <strong>di</strong> processo. La scelta <strong>di</strong> un <strong>per</strong>corso nel flusso <strong>di</strong> processo non<br />
esclude le altre.<br />
• Gateway complessi: sono stati definiti <strong>per</strong> trattare quelle situazioni<br />
che non è possibile affrontare con gli altri tipi <strong>di</strong> gateway. Ad esempio<br />
l’unione <strong>di</strong> più gateway.<br />
• Gateway paralleli: definiscono l’esecuzione <strong>di</strong> più attività in parallelo.<br />
Figura 3.26: Tipologie <strong>di</strong> gateway <strong>BPM</strong>N<br />
Tipologie <strong>di</strong> flussi <strong>di</strong> sequenza La notazione <strong>BPM</strong>N definisce <strong>di</strong>versi<br />
flussi <strong>di</strong> sequenza del processo <strong>di</strong> business. Abbiamo già descritto due<br />
tipologie <strong>di</strong> flussi <strong>di</strong> sequenza: il flusso normale e il flusso <strong>di</strong> messaggio. Oltre<br />
a queste due tipologie ne esistono altre:<br />
• Flusso <strong>di</strong> default: viene utilizzato nelle decisioni <strong>di</strong> flusso <strong>di</strong> processo,<br />
sia inclusive che esclusive, e stabilisce quale sia la con<strong>di</strong>zione <strong>di</strong> flusso <strong>di</strong>
3.1. Standard grafici <strong>per</strong> la modellazione 61<br />
default. Il suo simbolo è caratterizzato dall’avere uno slash <strong>di</strong>agonale<br />
all’inizio della linea (figura 3.27).<br />
• Flusso <strong>di</strong> eccezione: viene utilizzato <strong>per</strong> definire le deviazioni del flusso<br />
<strong>di</strong> processo rispetto al flusso normale. Queste eccezioni dal normale<br />
flusso <strong>di</strong> processo vengono attivate me<strong>di</strong>ante l’utilizzo <strong>di</strong> un evento<br />
interme<strong>di</strong>o (figura 3.28).<br />
• Flusso con<strong>di</strong>zionale: è un flusso <strong>di</strong> sequenza avente un espressione<br />
con<strong>di</strong>zionale che viene valutata a runtime <strong>per</strong> determinare quale flusso<br />
dovrà seguire il processo (figura 3.29).<br />
Figura 3.27: Flusso <strong>di</strong> default <strong>BPM</strong>N<br />
Figura 3.28: Flusso <strong>di</strong> eccezione <strong>BPM</strong>N<br />
Figura 3.29: Flusso con<strong>di</strong>zionale <strong>BPM</strong>N<br />
Transazioni La notazione <strong>per</strong>mette <strong>di</strong> definire parti del processo come<br />
transazioni. Nella notazione <strong>BPM</strong>N una transazione è un sotto-processo che<br />
contiene un flusso <strong>di</strong> processo che è sottoposto ai meccanismi <strong>di</strong> gestione delle
62 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
transazioni. Nella notazione <strong>BPM</strong>N una transazione viene rappresentata<br />
con doppio riquadro come mostra la figura 3.30. Per gestire il fallimento <strong>di</strong><br />
una transazione, <strong>BPM</strong>N <strong>per</strong>mette <strong>di</strong> modellizzare il meccanismo <strong>di</strong> compensazione<br />
(figura 3.31). Questo <strong>per</strong>mette al flusso <strong>di</strong> processo interno ad una<br />
transazione <strong>di</strong> deviare dal flusso normale in modo tale da rendere consistente<br />
il risultato della transazione.<br />
Figura 3.30: Transazione <strong>BPM</strong>N<br />
Figura 3.31: Compensazione <strong>BPM</strong>N<br />
Versioni <strong>BPM</strong>N considerate e <strong>di</strong>fferenze<br />
Ai fini della valutazione degli <strong>strumenti</strong> <strong>BPM</strong>, vengono considerate tutte le<br />
versioni della notazione <strong>BPM</strong>N. Queste sono sostanzialmente due: la versione<br />
1.x (1.1, 1.2) e la versione 2.x (2.0). Nonostante la versione 2.0 della<br />
notazione sia ancora in fase <strong>di</strong> approvazione da parte del Object Management<br />
Group, questa viene già implementata in alcuni <strong>strumenti</strong> <strong>BPM</strong> come<br />
vedremo nel capitolo 5. Per questo motivo anche questa versione della no-
3.2. Standard dei formati <strong>di</strong> interscambio 63<br />
tazione verrà presa in considerazione nella nostra <strong>analisi</strong>. La versione 2.x<br />
della notazione nasce dall’esigenza <strong>di</strong> semplificare la notazione 1.x e allo stesso<br />
tempo estende il suo potere descrittivo. Infatti es<strong>per</strong>imenti circa l’utilizzo<br />
della versione 1.x hanno <strong>di</strong>mostrato che meno del 20% degli elementi della<br />
notazione viene regolarmento utilizzato, alcuni costrutti non vengono mai<br />
utilizzati nei modelli analizzati e il modello <strong>di</strong> processo <strong>di</strong> business me<strong>di</strong>o<br />
contiene meno <strong>di</strong> 10 elementi <strong>BPM</strong>N [25]. La specifica <strong>BPM</strong>N 2.0 estende<br />
le funzionalità <strong>di</strong> <strong>BPM</strong>N 1.2 in molte aree [29]:<br />
• Formalizza le semantiche <strong>di</strong> esecuzione <strong>per</strong> tutti gli elementi <strong>BPM</strong>N<br />
• Definisce un meccanismo <strong>di</strong> estensione sia <strong>per</strong> quanto riguarda il modello<br />
<strong>di</strong> processo sia <strong>per</strong> gli elementi grafici<br />
• Perfeziona la composizione e correlazione tra eventi<br />
• Estende la definizione delle interazioni umane<br />
• Definisce un modello <strong>per</strong> la coreografia tra processi<br />
Inoltre, questa nuova versione della specifica risolve anche le inconsistenze e<br />
le ambiguità della versione 1.x della notazione. Per una trattazione esaustiva<br />
delle mo<strong>di</strong>fiche introdotte nella versione 2.0 si consiglia [29].<br />
3.2 Standard dei formati <strong>di</strong> interscambio<br />
La necessità <strong>di</strong> avere dei formati standard <strong>di</strong> interscambio <strong>di</strong> processi <strong>di</strong><br />
business nasce quando una definizione <strong>di</strong> processo <strong>di</strong> business deve essere<br />
trasferita da uno strumento <strong>BPM</strong> ad un altro. Questo trasferimento richiede<br />
che lo strumento <strong>BPM</strong>, dal quale la definizione del processo <strong>di</strong> business<br />
deve essere trasferita, la esporti in un file che sia conforme ad un formato<br />
<strong>di</strong> interscambio tale che lo strumento <strong>BPM</strong> che lo riceve sia in grado <strong>di</strong><br />
importare la definizione del processo <strong>di</strong> business correttamente. Inizialmente<br />
molti produttori definivano un loro formato <strong>di</strong> interscambio in modo tale da<br />
trasferire le definizioni dei processi <strong>di</strong> business da una versione all’altra dei<br />
loro <strong>strumenti</strong> <strong>BPM</strong>. Quando invece è sorta, da parte degli utenti degli<br />
<strong>strumenti</strong> <strong>BPM</strong>, la necessità <strong>di</strong> trasferire il processo <strong>di</strong> business descritto da<br />
uno strumento <strong>BPM</strong> <strong>di</strong> un produttore a quello <strong>di</strong> un altro produttore, allora<br />
è nata anche l’esigenza <strong>di</strong> definire un formato comune.<br />
Secondo [24], gli standard <strong>di</strong> interscambio dei processi <strong>di</strong> business sono<br />
necessari principalmente <strong>per</strong> due scopi:
64 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
1. tradurre gli standard grafici che descrivono i processi <strong>di</strong> business in<br />
standard <strong>di</strong> esecuzione<br />
2. <strong>per</strong>mettere il trasferimento dei modelli dei processi <strong>di</strong> business tra<br />
<strong>strumenti</strong> <strong>BPM</strong> <strong>di</strong> <strong>di</strong>versi produttori<br />
Attualmente esistono due standard <strong>di</strong> interscambio significativi:<br />
1. Business Process Definition Metamodel (BPDM)<br />
2. XML Process Definition Language (XPDL)<br />
Il secondo standard <strong>di</strong> formato <strong>di</strong> interscambio citato sarà l’argomento del<br />
paragrafo 3.2.1. Infatti è lo standard <strong>di</strong> interscambio che pren<strong>di</strong>amo in<br />
considerazione in quanto <strong>di</strong>ventato standard de facto tra i produttori <strong>di</strong><br />
<strong>strumenti</strong> <strong>BPM</strong>.<br />
Descriviamo brevemente il formato BPDM. Business Process Definition<br />
Metamodel è un formato proposto dal Object Management Group (OMG).<br />
Secondo gli autori del formato, BPDM è in grado <strong>di</strong> rappresentare e <strong>di</strong><br />
modellizzare i processi <strong>di</strong> business in maniera in<strong>di</strong>pendente dalla notazione<br />
o dalla <strong>metodologia</strong> utilizzata, uniformandoli in un unico formato [27]. Come<br />
si evince dal nome del formato stesso, questo èinrealtà un meta-modello<br />
che serve <strong>per</strong> descrivere gli elementi comuni presenti nelle definizioni dei<br />
processi <strong>di</strong> business. Secondo l’Object Management Group:<br />
Il meta-modello alla base <strong>di</strong> BPDM descrive i processi <strong>di</strong> business<br />
in maniera molto generale e fornisce una sintassi XML <strong>per</strong><br />
immagazzinare e trasferire i modelli dei processi <strong>di</strong> business tra<br />
i vari <strong>strumenti</strong> <strong>BPM</strong> e le varie infrastrutture. Molti <strong>strumenti</strong><br />
<strong>BPM</strong>, metodologie e tecnologie possono quin<strong>di</strong> mappare il loro<br />
modo <strong>di</strong> descrivere, capire e implementare i processi <strong>di</strong> business<br />
verso e attraverso BPDM.[27]<br />
Di fatto un meta-modello è un modello astratto che contiene gli elementi<br />
<strong>di</strong> base caratterizzanti <strong>di</strong>versi linguaggi <strong>di</strong> modellazione. Questo significa<br />
che BPDM lavora come un traduttore tra <strong>di</strong>versi linguaggi standar<strong>di</strong>zzati<br />
entro una comune piattaforma. La figura 3.32 mostra i linguaggi correnti<br />
che BPDM è in grado <strong>di</strong> tradurre.<br />
Allo stato attuale, BPDM non viene utilizzato da nessun strumento<br />
<strong>BPM</strong>. Le motivazioni dello scarso interesse <strong>di</strong> questo formato e della sua<br />
mancata implementazione in nessuno strumento <strong>BPM</strong> <strong>di</strong>sponibile sono dovute<br />
al fatto che viene definito uno standard <strong>di</strong> interscambio complesso da utilizzare<br />
e non user-friendly [22].
3.2. Standard dei formati <strong>di</strong> interscambio 65<br />
Figura 3.32: Meccanismo <strong>di</strong> interscambio BPDM<br />
3.2.1 XML Process Definition Language<br />
XML Process Definition Language è lo standard <strong>di</strong> interscambio proposto<br />
dal Workflow Management Coalition (WfMC) ed è <strong>di</strong>ventato lo standard de<br />
facto tra i produttori <strong>di</strong> <strong>strumenti</strong> <strong>BPM</strong>. Secondo gli autori del formato [45],<br />
l’obiettivo <strong>di</strong> XPDL è quello <strong>di</strong> <strong>di</strong>ventare lo standard <strong>per</strong> la rappresentazione<br />
e lo scambio delle definizioni dei processi <strong>di</strong> business tra <strong>strumenti</strong> <strong>BPM</strong> <strong>di</strong><br />
<strong>di</strong>versi produttori che utilizzano <strong>di</strong>fferenti tecniche <strong>di</strong> modellazione oppure<br />
tra <strong>strumenti</strong> che hanno altri scopi <strong>di</strong> applicazione, come ad esempio l’engine<br />
<strong>di</strong> esecuzione, il cui scopo non è quello <strong>di</strong> descrivere un processo <strong>di</strong> business<br />
ma quello <strong>di</strong> metterlo in esecuzione. La figura 3.33 mostra le possibilità<br />
<strong>di</strong> interscambio <strong>di</strong> processi descritti in XPDL con <strong>di</strong>versi <strong>strumenti</strong> <strong>BPM</strong> e<br />
componenti <strong>di</strong> questi.<br />
La sintassi <strong>di</strong> XPDL viene definita da un documento XML Schema. I<br />
principali concetti su cui si basa il linguaggio sono gli stessi del modello <strong>di</strong><br />
workflow descritto dal WfMC e ripreso nel capitolo precedente:<br />
• package<br />
• applicazioni<br />
• partecipanti<br />
• campi<strong>di</strong>datietipi<strong>di</strong>dati<br />
• processi <strong>di</strong> workflow<br />
• attività<br />
• transizioni
66 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
Figura 3.33: Interscambio <strong>di</strong> processi <strong>di</strong> business descritti in XPDL con <strong>di</strong>versi <strong>strumenti</strong>
3.2. Standard dei formati <strong>di</strong> interscambio 67<br />
Questi sono i concetti <strong>di</strong> base che fanno parte del meta-modello <strong>di</strong> XDPL.<br />
La figura 3.34 mostra le relazioni <strong>di</strong> questi elementi con il meta-modello.<br />
Questi elementi fanno parte dell’insieme minimale <strong>di</strong> costrutti nel dominio<br />
dei workflow che il linguaggio XPDL mette a <strong>di</strong>sposizione e che sono con<strong>di</strong>visi<br />
da tutti gli <strong>strumenti</strong> <strong>BPM</strong>. Uno strumento <strong>BPM</strong> avrà necessità <strong>di</strong><br />
salvare in formato XPDL anche altri dati non presenti nei costrutti base<br />
del linguaggio. Per questo motivo, XPDL mette a <strong>di</strong>sposizione tre tipi <strong>di</strong><br />
elementi che <strong>per</strong>mettono <strong>di</strong> aggiugere informazione relativa al particolare<br />
strumento <strong>BPM</strong>:<br />
1. Attributi estesi: possono essere utilizzati in tutti gli elementi <strong>di</strong> XPDL.<br />
Essi contengono informazioni specifiche del particolare strumento <strong>BPM</strong><br />
che non possono essere rappresentate me<strong>di</strong>ante gli elementi standard.<br />
Questi attributi vengono rappresentati da coppie <strong>di</strong> tipo nome-valore.<br />
2. Parametri formali: vengono utilizzati <strong>per</strong> rappresentare i parametri <strong>di</strong><br />
input e output dei processi e delle applicazioni <strong>di</strong> workflow. Questi<br />
parametri vengono rappresentati me<strong>di</strong>ante un identificatore univoco e<br />
un attributo che definisce la semantica del parametro passato.<br />
3. Riferimenti esterni: possono essere utilizzati con i tipi <strong>di</strong> dato, i partecipanti<br />
e le applicazioni. Un riferimento esterno in<strong>di</strong>ca l’URI <strong>di</strong> un<br />
documento <strong>di</strong> specifica esterno al contesto, il quale potrebbe essere un<br />
XML Schema. Questi riferimenti vengono spesso utilizzati <strong>per</strong> riferirsi<br />
ai servizi offerti dai Web Service.<br />
An<strong>di</strong>amo a descrivere nel dettaglio gli elementi costituenti il linguaggio.<br />
Package Il package è l’elemento ra<strong>di</strong>ce <strong>di</strong> ogni documento XPDL. Esso<br />
ha la funzione <strong>di</strong> contenitore dove immagazzinare processi <strong>di</strong> workflow<br />
multipli e informazioni con<strong>di</strong>vise circa i campi <strong>di</strong> dati, la <strong>di</strong>chiarazione <strong>di</strong><br />
applicazioni e la specifica dei partecipanti.<br />
Applicazione L’elemento Application include tutte le informazioni<br />
necessarie <strong>per</strong> invocare le o<strong>per</strong>azioni che deve svolgere un’applicazione. Questa<br />
può essere inclusa o in un package o in un elemento <strong>di</strong> processo <strong>di</strong> workflow.<br />
Nel primo caso avrà scope globale mentre nel secondo caso avrà scope<br />
locale nel processo dove questa è stata definita.<br />
Partecipante I partecipanti rappresentano le risorse che possono essere<br />
eseguire le attività <strong>di</strong> un processo <strong>di</strong> workflow. Le informazioni rilevanti
68 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
Figura 3.34: Meta-modello del linguaggio XPDL
3.2. Standard dei formati <strong>di</strong> interscambio 69<br />
sui partecipanti vengono definite nell’elemento Participant, che èelemento<br />
figlio <strong>di</strong> un package oppure <strong>di</strong> un processo <strong>di</strong> workflow. Se un partecipante<br />
viene <strong>di</strong>chiarato in un package allora ha scope globale mentre se viene<br />
<strong>di</strong>chiarato in un processo <strong>di</strong> workflow ha scope locale nel processo dove è<br />
stato definito. Le politiche <strong>di</strong> assegnazione delle attività ai partecipanti<br />
vengono definite in ogni attività.<br />
Campi<strong>di</strong>datietipo<strong>di</strong>dati I campi <strong>di</strong> dati (Data Fields) rappresentano<br />
le variabili che catturano i dati rilevanti del workflow. Possono<br />
essere utilizzati ad esempio <strong>per</strong> specificare le con<strong>di</strong>zioni <strong>di</strong> deadline delle attività<br />
oppure come parametri che devono essere scambiati tra le attività del<br />
processo. Ogni campo <strong>di</strong> dato possiede un identificatore e un attritubo che<br />
ne in<strong>di</strong>ca il nome. Questi campi <strong>di</strong> dati possono avere <strong>di</strong>versi tipi. XPDL<br />
definisce nove tipi <strong>di</strong> dati (figura 3.35). Altri tipi possono essere definiti.<br />
Figura 3.35: Tipi <strong>di</strong> dato XPDL<br />
Processo <strong>di</strong> workflow Un processo <strong>di</strong> workflow viene definito dall’elemento<br />
Workflow-Process che è figlio dell’elemento Package. Questo elemento<br />
agisce come container <strong>per</strong> gli altri elementi che sono rilevanti alla descrizione<br />
<strong>di</strong> un processo <strong>di</strong> workflow. Il flusso <strong>di</strong> controllo <strong>di</strong> un processo <strong>di</strong> workflow<br />
viene definito da attività e transizioni tra queste.<br />
Attività Il lavoro che deve essere eseguito all’interno <strong>di</strong> un processo<br />
<strong>di</strong> workflow viene definito da un insieme <strong>di</strong> attività che sono elementi figlio<br />
dell’elemento Workflow Process. Un’attività rappresenta un task che viene<br />
eseguito nel processo <strong>di</strong> workflow. La sua esecuzione potrebbe coinvolgere
70 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
campi <strong>di</strong> dati, partecipanti e applicazioni. Le attività possono essere raggruppate<br />
in blocchi. In questo caso da un punto <strong>di</strong> vista del processo <strong>di</strong><br />
workflow questi blocchi vengono considerate delle singole attività.<br />
Transizioni Le transizioni definiscono le con<strong>di</strong>zioni che mettono in<br />
esecuzione le attività durante l’esecuzione <strong>di</strong> un workflow. Essi rappresentano<br />
il flusso <strong>di</strong> controllo attraverso archi <strong>di</strong>retti tra i no<strong>di</strong> <strong>di</strong> attività inun<br />
processo <strong>di</strong> workflow.<br />
La versioni considerate ai fini della nostra <strong>analisi</strong> sono 3: la versione<br />
1.0, la versione 2.0 e la versione 2.1. Le versioni 2.0 e 2.1 del linguaggio<br />
non mostrano cambiamenti significativi in quanto appartengono alla stessa<br />
famiglia <strong>di</strong> versione. Invece la versione 2.x del linguaggio contiene miglioramenti<br />
nella definizione dei suoi elementi e introduce elementi nuovi rispetto<br />
la versione 1.0. Tuttavia la versione 2.x mantiene la retrocompatibilità con<br />
la versione 1.x.<br />
Per ulteriori informazioni sul linguaggio XPDL e <strong>per</strong> visionare esempi <strong>di</strong><br />
utilizzo si rimanda a [45].<br />
3.3 Standard <strong>di</strong> esecuzione dei processi <strong>di</strong> business<br />
Gli standard <strong>di</strong> esecuzione <strong>per</strong>mettono ai processi <strong>di</strong> business progettati<br />
<strong>di</strong> essere <strong>di</strong>strubuiti nei sistemi <strong>BPM</strong> e <strong>di</strong> essere eseguiti dai <strong>BPM</strong> engine.<br />
Attualmente esiste uno standard che viene utilizzato da <strong>di</strong>versi produttori<br />
<strong>di</strong> <strong>strumenti</strong> <strong>BPM</strong>: BPEL4WS detto anche brevemente BPEL.<br />
BPEL4WS è un linguaggio basato su XML <strong>per</strong> specificare processi <strong>di</strong><br />
business nel contesto dei Web Service [1] specificato dal consorzio OASIS<br />
(Organization for the Advancement of Structured Information Standards).<br />
Per questa ragione, BPEL4WS viene utilizzato insieme alle tecnologie che<br />
compongono i Web Service, come Web Service Execution Language (WSDL)<br />
descritte in 2.2.3, <strong>per</strong>mettendo <strong>di</strong> fatto <strong>di</strong> definire il processo <strong>di</strong> business in<br />
base alle invocazioni dei Web Service esistenti e al tipo <strong>di</strong> interazione del<br />
processo con i partecipanti esterni.<br />
Dal punto <strong>di</strong> vista dei creatori del linguaggio BPEL4WS, i processi <strong>di</strong><br />
business possono essere descritti come [1]:<br />
• Processi <strong>di</strong> business eseguibili: modelli che descrivono i dettagli e il<br />
comportamento <strong>di</strong> un partecipante all’interazione <strong>di</strong> business.<br />
• Protocolli <strong>di</strong> business: descrizioni che specificano le modalità <strong>di</strong> scambio<br />
<strong>di</strong> messaggi tra le parti coinvolte nel protocollo, senza rivelare il
3.3. Standard <strong>di</strong> esecuzione dei processi <strong>di</strong> business 71<br />
comportamenteo interno e i dettagli del processo. Le descrizioni del<br />
processo <strong>per</strong> i protocolli <strong>di</strong> business vengono chiamati processi astratti.<br />
Dalle due descrizioni si evince che la logica completa <strong>di</strong> un processo <strong>di</strong> business<br />
viene descritta me<strong>di</strong>ante un processo eseguibile mentre le procedure<br />
<strong>di</strong> scambio dei messaggi tra i partecipanti vengono modellizzate me<strong>di</strong>ante i<br />
processi astratti. Un processo <strong>di</strong> business scritto in BPEL4WS consiste in<br />
due tipi <strong>di</strong> file:<br />
1. Il file BPEL4WS, co<strong>di</strong>ficato in XML, in<strong>di</strong>ca la definizione stateful del<br />
processo, includendo le sue attività, i link ai partner, le variabili e gli<br />
event handler.<br />
2. I file Web Service Definition Language (WSDL) specificano le interfacce<br />
Web Service stateless che sono <strong>di</strong> interesse al processo definito<br />
nel file BPEL.<br />
Gli elementi <strong>di</strong> base <strong>di</strong> un documento BPEL4WS, strutturati in sintassi<br />
XML, sono stati largamente influenzati dai concetti descriventi i Web Service<br />
[23]:<br />
• Roles dei partecipanti del processo<br />
• Port Types richiesti dai partecipanti<br />
• Orchestration, rappresenta l’attuale flusso <strong>di</strong> processo<br />
• Correlation information, definisce come i messaggi possono essere instradati<br />
alle corrette istanze <strong>di</strong> composizione<br />
Le attività BPEL4WS possono essere attività <strong>di</strong> base oppure attività strutturate:<br />
le prime corrispondono ai componenti del processo <strong>di</strong> business.<br />
Queste attività sono realizzate attraverso le interazioni tra Web Service (ad<br />
esempio attraverso invocazioni <strong>di</strong> o<strong>per</strong>azioni WSDL). Le attività strutturate,<br />
invece, ricordano le strutture <strong>di</strong> controllo dei linguaggi <strong>di</strong> programmazione<br />
convenzionali. Essi costituiscono la parte orientata al blocco <strong>di</strong> una descrizione<br />
BPEL4WS. BPEL4WS specifica inoltre gli handler <strong>per</strong> gli eventi e<br />
le situazioni <strong>di</strong> failure: BPEL4WS <strong>per</strong>mette <strong>di</strong> definire le attività <strong>per</strong> gestire<br />
questi eventi.<br />
L’esecuzione del processo viene racchiusa dall’elemento ¡flow¿ e l’or<strong>di</strong>ne<br />
<strong>di</strong> esecuzione tra le attività del processo viene gestito dagli elementi ¡link¿.<br />
Questi assumono un ruolo chiave durante la conversione tra un modello <strong>di</strong><br />
processo <strong>di</strong> business, descritto in un linguaggio <strong>di</strong> modellazione (ad esempio<br />
<strong>BPM</strong>N), e un processo eseguibile. Mostriamo ora la struttura <strong>di</strong> base <strong>di</strong> un<br />
processo <strong>di</strong> business descritto in BPEL4WS:
72 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
<br />
?<br />
+<br />
<br />
*<br />
?<br />
<br />
+<br />
<br />
<br />
?<br />
+<br />
<br />
?<br />
+<br />
from-spec?<br />
<br />
<br />
?<br />
+<br />
<br />
?<br />
<br />
*
3.3. Standard <strong>di</strong> esecuzione dei processi <strong>di</strong> business 73<br />
activity<br />
<br />
?<br />
activity<br />
<br />
<br />
?<br />
<br />
*<br />
?<br />
+<br />
<br />
?<br />
+<br />
<br />
...<br />
<br />
*<br />
<br />
(<br />
duration-expr<br />
|<br />
deadline-expr<br />
)?<br />
<br />
duration-expr<br />
?<br />
...<br />
<br />
<br />
activity<br />
<br />
Per una descrizione accurata del linguaggio si rimanda a [1].<br />
Uno degli svantaggi <strong>di</strong> BPEL4WS èquellochenontieneinconsider-
74 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
azione l’interazione tra processo e interfaccia utente, cioè non tiene in considerazione<br />
il comportamento degli agenti umani che interagiscono con il<br />
processo. Per questo motivo è stata definita un’estensione del linguaggio<br />
BPEL4WS che tiene in considerazione questo aspetto: BPEL4PEOPLE<br />
[11]. Questa estensione del linguaggio BPEL4WS introduce un insieme <strong>di</strong> elementi<br />
che estendono gli elementi BPEL4WS e <strong>per</strong>mette la modellazione <strong>di</strong><br />
interazioni umane, che potrebbero riguardare semplici approvazioni oppure<br />
scenari complessi come la separazione <strong>di</strong> task tra agenti umani.<br />
BPEL4PEOPLE si fonda principalmente sui seguenti concetti:<br />
• Definizione <strong>di</strong> ruoli umani generici relativi al processo: questi ruoli<br />
generici vengono assegnati a singoli agenti umani o a gruppi <strong>di</strong> essi e<br />
definiscono quali azioni questi agenti possono intraprendere con l’istanza<br />
<strong>di</strong> processo in esecuzione. Sono presenti tre tipi <strong>di</strong> ruoli umani<br />
generici relativi al processo:<br />
1. Process initiator<br />
2. Process stakeholders<br />
3. Business administrators<br />
Il process initiator è l’agente umano associato all’attivazione dell’istanza<br />
del processo a tempo <strong>di</strong> creazione. Viene determinato automaticamente<br />
dal sistema e deve esserne presente almeno uno a tempo <strong>di</strong><br />
esecuzione. I process stakeholders sono gli agenti umani che possono<br />
influenzare il progresso dell’istanza del processo. Ad esempio possono<br />
aggiungere un documento ad-hoc oppure mandare avanti un task. I<br />
business administratos sono gli agenti umani a cui è <strong>per</strong>messo eseguire<br />
azioni <strong>di</strong> tipo amministrativo sul processo <strong>di</strong> business, ad esempio la<br />
gestione delle deadline mancate. Un amministratore <strong>di</strong> processo ha<br />
interesse <strong>di</strong> tutte le istanze <strong>di</strong> un particolare tipo <strong>di</strong> processo e non<br />
solo <strong>di</strong> uno.<br />
• Assegnamento <strong>di</strong> risorse umane a task specifici: Per determinare quale<br />
agente umano sia responsabile <strong>per</strong> l’esecuzione <strong>di</strong> un determinato processo,<br />
un task umano oppure <strong>per</strong> l’assegnazione <strong>di</strong> un particolare ruolo,<br />
questo deve essere assegnato al task dall’engine <strong>di</strong> esecuzione del<br />
processo.<br />
• Scambio <strong>di</strong> dati ad-hoc: I processi possono avere dati ad-hoc riguardanti<br />
attività umane. Gli agenti umani devono essere in grado <strong>di</strong> manipolarli<br />
e <strong>di</strong> propagarli verso nuove attività che possono essere sia umane<br />
oppure <strong>di</strong> sistema.
3.3. Standard <strong>di</strong> esecuzione dei processi <strong>di</strong> business 75<br />
L’attività umana (People Activity) è l’attività <strong>di</strong> base utilizzata <strong>per</strong> integrare<br />
le interazioni umane con i processi BPEL4WS. Vi possono essere<br />
quattro tipi <strong>di</strong> integrazione come mostra la figura 3.36:<br />
Figura 3.36: Tipologie <strong>di</strong> integrazione delle interazioni umane con delle attività umane<br />
1. Nel primo caso in figura 3.36, il task umano (inline human task) risiede<br />
all’interno dell’attività umana e la sua esecuzione è limitata entro<br />
quella particolare attività <strong>di</strong> quel particolare processo.<br />
2. Nel secondo caso in figura 3.36, il task umano può essere utilizzato<br />
più volte <strong>per</strong> <strong>di</strong>fferenti istanze <strong>di</strong> attività umane, favorendone il riuso,<br />
sempre nello stesso processo.<br />
3. Nel terzo caso in figura 3.36, ve<strong>di</strong>amo com l’attività umana può integrare<br />
un task umano presente nello stesso ambiente <strong>di</strong> esecuzione ma<br />
che non fa parte del processo. BPEL4PEOPLE <strong>per</strong>mette <strong>di</strong> definire le<br />
modalità <strong>di</strong> comunicazione tra il processo e un task umano che non fa<br />
parte del processo ma è presente nello stesso ambiente <strong>di</strong> esecuzione.<br />
4. Nel quarto caso in figura 3.36, il task umano risiede in un altro ambiente<br />
<strong>di</strong> esecuzione rispetto a quello dove è presente il processo. In<br />
questo caso l’attività umana del processo invoca il task umano me<strong>di</strong>ante<br />
i protocolli tipici dei Web Services.<br />
Gli elementi <strong>di</strong> tipo BPEL4PEOPLE vengono in<strong>di</strong>cati da tag che mostrano<br />
come intestazione ¡b4p:¿ in un file BPEL4PEOPLE. Il seguente co<strong>di</strong>ce<br />
mostra la struttura base dell’estensione BPEL4PEOPLE in un file BPEL4WS:
76 Capitolo 3. Standard degli Strumenti <strong>BPM</strong><br />
<br />
...<br />
<br />
<br />
<br />
<br />
<br />
...<br />
?<br />
?<br />
+<br />
...<br />
<br />
<br />
?<br />
+<br />
...<br />
<br />
<br />
?<br />
+<br />
...<br />
<br />
<br />
/b4p:humanInteractions><br />
<br />
...<br />
<br />
...<br />
<br />
<br />
...
3.3. Standard <strong>di</strong> esecuzione dei processi <strong>di</strong> business 77<br />
<br />
<br />
...<br />
<br />
Per ulteriori approfon<strong>di</strong>menti sulla sintassi del linguaggio si consiglia<br />
[11].
78 Capitolo 3. Standard degli Strumenti <strong>BPM</strong>
Capitolo 4<br />
Analisi degli Strumenti <strong>BPM</strong><br />
Il capitolo descrive l’obiettivo dell’<strong>analisi</strong> oggetto della presente tesi, la<br />
<strong>metodologia</strong> proposta e i criteri <strong>di</strong> selezione degli <strong>strumenti</strong> <strong>BPM</strong> che saranno<br />
in seguito analizzati.
80 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
4.1 Obiettivi dell’<strong>analisi</strong><br />
L’obiettivo <strong>di</strong> questa <strong>analisi</strong> consiste nel fornire una valutazione oggettiva<br />
dei vari <strong>strumenti</strong> <strong>BPM</strong> presenti sul mercato, prendendone in considerazione<br />
i vari aspetti. Questa valutazione nasce da una duplice esigenza. La prima<br />
è <strong>di</strong> definire un framework <strong>di</strong> valutazione in modo tale da poter valutare in<br />
maniera oggettiva uno strumento <strong>BPM</strong>; questa <strong>analisi</strong> dovrebbe mettere in<br />
risalto le caratteristiche <strong>di</strong> uno strumento <strong>BPM</strong>, in modo tale da poter valutare<br />
se esso risulti idoneo <strong>per</strong> gli obiettivi <strong>di</strong> un progetto <strong>BPM</strong> che si intende<br />
realizzare. La seconda esigenza è <strong>di</strong> scattare un’istantanea delle soluzioni<br />
<strong>BPM</strong> presenti sul mercato (sia commerciali che open source) e applicare il<br />
metodo <strong>di</strong> valutazione definito in modo da far emergere gli <strong>strumenti</strong> <strong>BPM</strong><br />
che <strong>di</strong>mostrino <strong>di</strong> essere più completi, sia dal punto <strong>di</strong> vista delle funzionalità<br />
che sotto altri aspetti (ad esempio l’usabilità), rispetto ai loro concorrenti.<br />
Il risultato delle <strong>analisi</strong> è una classificazione <strong>di</strong> questi <strong>strumenti</strong> <strong>BPM</strong> che<br />
può essere sfruttata da chiunque abbia necessità <strong>di</strong> dover modellizzare e<br />
mettere in esecuzione un processo <strong>di</strong> business, così da scegliere lo strumento<br />
più idoneo alle proprie esigenze e a quelle del proprio processo <strong>di</strong> business.<br />
4.2 Scelta degli <strong>strumenti</strong> <strong>BPM</strong> da analizzare<br />
Il presente paragrafo illustra le modalità con cui sono stati selezionati gli<br />
<strong>strumenti</strong> <strong>BPM</strong> oggetto dell’<strong>analisi</strong>.<br />
Il primo problema che è stato riscontrato nell’affrontare questo tipo<br />
<strong>di</strong> <strong>analisi</strong> è la scelta degli <strong>strumenti</strong> da esaminare. Attualmente esistono<br />
una molteplicità <strong>di</strong> soluzioni <strong>BPM</strong> nel mercato e il loro numero sembra<br />
aumentare [19]. Queste soluzioni <strong>BPM</strong> si <strong>di</strong>fferenziano in base al tipo <strong>di</strong><br />
processi <strong>di</strong> business che devono gestire. Il tipo <strong>di</strong> processi <strong>di</strong> business può<br />
essere definito in base alla loro complessità e alla loro pre<strong>di</strong>cibilità [8]. La<br />
complessità <strong>di</strong> un processo consiste nello stabilire se esiste o meno una certa<br />
ripetitibilità delle attività componenti il processo e se seguono determinate<br />
regole <strong>di</strong> coor<strong>di</strong>namento. Processi con attività ripetibili sono più facilmente<br />
gestibili rispetto a processi aventi attività che non hanno un pattern definito<br />
<strong>di</strong> esecuzione. La pre<strong>di</strong>cibilità <strong>di</strong> un processo può essere <strong>di</strong> quattro tipi:<br />
1. Unframed: il processo non è associato ad un modello esplicito <strong>di</strong> processo.<br />
Un esempio <strong>di</strong> questi processi sono quelli collaborativi che vengono<br />
gestiti dai sistemi <strong>di</strong> groupware <strong>per</strong>chè non offrono la possibilità<br />
<strong>di</strong> mo<strong>di</strong>ficare questi tipi <strong>di</strong> processi.
4.2. Scelta degli <strong>strumenti</strong> <strong>BPM</strong> da analizzare 81<br />
2. Ad hoc framed: il processo è associato ad un modello esplicito <strong>di</strong><br />
processo. Tuttavia viene eseguito una volta sola. Un esempio <strong>di</strong> questi<br />
processi sono i scientific workflows.<br />
3. Loosely framed: il processo è associato ad un modello esplicito <strong>di</strong> processo<br />
e ad un insieme <strong>di</strong> vincoli. Il flusso <strong>di</strong> processo segue dei <strong>per</strong>corsi<br />
prestabiliti che <strong>per</strong>ò non sono rigi<strong>di</strong>, ma <strong>per</strong>mettono al processo <strong>di</strong> deviare<br />
entro certi limiti. Queste deviazioni vengono gestite da sistemi<br />
<strong>di</strong> case handling.<br />
4. Tightly framed: il processo è associato ad un modello esplicito <strong>di</strong><br />
processo ed è consistente con questo.<br />
Un altro fattore che <strong>per</strong>mettere la <strong>di</strong>stinzione tra processi <strong>di</strong> business è<br />
il loro grado <strong>di</strong> automazione. Questa <strong>di</strong>stinzione porta a classificare i processi<br />
in tre categorie: Person to Person (P2P), Person to Application (P2A)<br />
e Application to Application (A2A). I processi P2P richiedono l’intervento<br />
umano <strong>per</strong> poter essere eseguiti. I sistemi software che gestiscono questi tipi<br />
<strong>di</strong> processi sono i sistemi groupware. I processi P2A sono quelli che contengono<br />
attività che in parte deve essere eseguite da agenti umani e in parte<br />
da agenti software. I sistemi che gestiscono questi sistemi sono tipicamente<br />
i sistemi <strong>di</strong> workflow. I processi A2A consistono <strong>di</strong> attività che vengono eseguite<br />
esclusivamente da agenti software. I sistemi che gestiscono i processi<br />
A2A sono tipicamente sistemi EAI (Enterprise Application Integration), sistemi<br />
che amministrano le transazioni e web service. La <strong>di</strong>stinzione <strong>di</strong> questi<br />
tre processi non è netta ma è caratterizzata da un continuum lungo il quale<br />
si collocano varie tipologie <strong>di</strong> sistemi <strong>di</strong> workflow (ve<strong>di</strong> figura 4.1).<br />
Figura 4.1: Il continuum <strong>di</strong> automazione dei processi <strong>di</strong> business<br />
Se mettiamo in correlazione il grado <strong>di</strong> pre<strong>di</strong>cibilità <strong>di</strong> un processo con<br />
il suo grado <strong>di</strong> automazione, otteniamo il grafico <strong>di</strong> figura 4.2 che mostra le<br />
varie categorie <strong>di</strong> prodotti <strong>per</strong> la gestione dei processi risultanti.
82 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
Figura 4.2: Tipologie <strong>di</strong> processi e i relativi <strong>strumenti</strong> <strong>di</strong> gestione<br />
Della classificazione dei vari sistemi <strong>di</strong> gestione dei processi appena fatta,<br />
siamo interessati agli <strong>strumenti</strong> che gestiscono processi P2A. Da questa<br />
preliminare scelta, abbiamo deciso <strong>di</strong> affrontare il processo <strong>di</strong> selezione degli<br />
<strong>strumenti</strong> <strong>BPM</strong> in due fasi. La prima fase ha preso in considerazione 53<br />
<strong>strumenti</strong> <strong>BPM</strong> che andremo ad elencare:<br />
1. ActiveVOS<br />
2. Adobe Livecycle ES<br />
3. AgilePoint <strong>BPM</strong>S<br />
4. Appian Enterprise<br />
5. Aptitute <strong>BPM</strong>S<br />
6. ARIS Process Performance Manager<br />
7. AuraPortal <strong>BPM</strong>S<br />
8. Avantage <strong>BPM</strong><br />
9. Billfish <strong>BPM</strong><br />
10. BizAgi Process Modeler<br />
11. BizFlow <strong>BPM</strong>
4.2. Scelta degli <strong>strumenti</strong> <strong>BPM</strong> da analizzare 83<br />
12. <strong>BPM</strong> one<br />
13. Business Process Visual Architect<br />
14. Comprehend<br />
15. Cordys Business O<strong>per</strong>ations Platform<br />
16. e<strong>BPM</strong>N<br />
17. EMC <strong>BPM</strong>S<br />
18. expressFlow<br />
19. Flexo<strong>BPM</strong><br />
20. Fujitsu Interstage <strong>BPM</strong><br />
21. Genexus <strong>BPM</strong> Suite<br />
22. IBM WebSphere Dynamic Process E<strong>di</strong>tion<br />
23. iGrafx<br />
24. Intalio Enterprise E<strong>di</strong>tion<br />
25. Integrify 4.5 request management software<br />
26. InterSystems Ensemble<br />
27. iPB - interactive Process Builder<br />
28. j<strong>BPM</strong><br />
29. K2 Blackpearl<br />
30. Lombar<strong>di</strong> Teamworks<br />
31. M3O <strong>BPM</strong>S<br />
32. Metastorm <strong>BPM</strong><br />
33. OmniFlow<br />
34. Open ModelSphere<br />
35. openwork<br />
36. Oracle <strong>BPM</strong> Suite
84 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
37. Polymita Business Suite<br />
38. Process360, with Insight360<br />
39. QPR ProcessGuide<br />
40. Questetra <strong>BPM</strong> Suite<br />
41. RunMyProcess<br />
42. SAP NetWeaver <strong>BPM</strong> and SAP NetWeaver BRM<br />
43. Savvion BusinessManager<br />
44. Select Architect<br />
45. SEQUENCE <strong>BPM</strong><br />
46. Singularity Process Platform<br />
47. Skelta <strong>BPM</strong>.NET<br />
48. Smart<strong>BPM</strong> Suite<br />
49. Tibco iProcess<br />
50. TLM Reconciliations, TLM Web Connect<br />
51. Ultimus Adaptive <strong>BPM</strong> Suite<br />
52. webMethods <strong>BPM</strong>S<br />
53. YAWL<br />
Di questi <strong>strumenti</strong> è stato raccolto ed analizzato tutto il materiale<br />
<strong>di</strong>sponibile dai produttori. Il fine <strong>di</strong> questa <strong>analisi</strong> è quello <strong>di</strong> poter fare<br />
una prima selezione a grana grossa, in modo da in<strong>di</strong>viduare gli <strong>strumenti</strong> su<br />
i quali vale la pena applicare il metodo <strong>di</strong> valutazione. I criteri <strong>di</strong> selezione<br />
valutati a pari peso nella selezione, sono stati:<br />
1. quantità <strong>di</strong> informazione messa a <strong>di</strong>sposizione dal produttore sullo<br />
strumento <strong>BPM</strong><br />
2. possibilità <strong>di</strong> poter testare una versione <strong>di</strong> prova dello strumento<br />
3. valutazioni precedenti fatte da altri valutatori (come, ad esempio,<br />
Gartner Group [19])
4.2. Scelta degli <strong>strumenti</strong> <strong>BPM</strong> da analizzare 85<br />
Al termine <strong>di</strong> questa prima fase sono stati in<strong>di</strong>viduati gli <strong>strumenti</strong> su<br />
cui si concentrerà la valutazione. Come più avanti ricorderemo, alcuni <strong>strumenti</strong><br />
che ci sono stati forniti non contengono tutte le funzionalità cheinvece<br />
sarebbero <strong>di</strong>sponibili comprando la licenza completa del prodotto. Per<br />
questo motivo, i componenti <strong>di</strong> uno strumento <strong>BPM</strong> che non è stato possibile<br />
testare <strong>di</strong>rettamente, sono valutati in base a quanto <strong>di</strong>chiarato dal<br />
produttore. Gli <strong>strumenti</strong> <strong>BPM</strong> in<strong>di</strong>viduati sono i seguenti:<br />
1. Adobe LiveCycle ES<br />
2. AgilePoint <strong>BPM</strong>S<br />
3. Avantage <strong>BPM</strong><br />
4. BillFish <strong>BPM</strong><br />
5. BizAgi <strong>BPM</strong><br />
6. BP Visual Architect<br />
7. e<strong>BPM</strong>N<br />
8. Genexus <strong>BPM</strong>S<br />
9. IBM WebSphere Dynamic Process Ed<br />
10. iGrafx<br />
11. Intalio EE<br />
12. j<strong>BPM</strong><br />
13. Lombar<strong>di</strong> BluePrint<br />
14. Metastorm <strong>BPM</strong><br />
15. Oracle <strong>BPM</strong><br />
16. Process360<br />
17. ProcessPAD<br />
18. Questetra <strong>BPM</strong><br />
19. Savvion <strong>BPM</strong><br />
20. Tibco BS<br />
21. YAWL
86 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
<strong>Una</strong> volta in<strong>di</strong>viduati questi <strong>strumenti</strong>, è stato applicato il modello <strong>di</strong><br />
valutazione descritto nel paragrafo 4.4 e i dati sono stati registrati in appositi<br />
fogli <strong>di</strong> calcolo descriventi il modello <strong>di</strong> valutazione e poi successivamente<br />
rielaborati. Ogni strumento <strong>BPM</strong> è stato installato in un ambiente <strong>di</strong> test<br />
compatibile con i suoi requisiti ed è stato testato implementando il processo<br />
<strong>BPM</strong>N <strong>di</strong> riferimento che descriveremo nel paragrafo 4.3. Quin<strong>di</strong> possiamo<br />
affermare che <strong>per</strong> ogni strumento <strong>BPM</strong> considerato, è stato portato a<br />
termine un caso <strong>di</strong> stu<strong>di</strong>o, il quale ha <strong>per</strong>messo <strong>di</strong> determinare i valori <strong>di</strong><br />
valutazione.<br />
4.3 Processo <strong>di</strong> business <strong>di</strong> riferimento<br />
Il processo <strong>di</strong> business scelto come riferimento <strong>per</strong> la valutazione <strong>di</strong> uno strumento<br />
<strong>BPM</strong> riguarda un processo <strong>di</strong> votazione tramite e-mail. Questo processo<br />
è descritto nella documentazione della specifica della notazione <strong>BPM</strong>N<br />
da parte del WfMC [28]. In figura 4.3 viene mostrato il processo. Il modello<br />
descritto mira a risolvere dei problemi inerenti ad un processo <strong>di</strong> votazione<br />
<strong>per</strong> mezzo <strong>di</strong> e-mail <strong>per</strong> prendere delle decisioni sulla risoluzione <strong>di</strong> <strong>di</strong>versi<br />
problemi. Il punto <strong>di</strong> vista <strong>di</strong> questo processo è quello del manager della lista<br />
dei problemi e della <strong>di</strong>scussione che la coinvolge. Da questo punto <strong>di</strong> vista i<br />
membri votanti del gruppo <strong>di</strong> lavoro sono considerati come dei partecipanti<br />
esterni del processo che comunicano con il manager <strong>per</strong> mezzo <strong>di</strong> messaggi.<br />
An<strong>di</strong>amo a descrivere le varie parti che compongono questo modello.<br />
Il processo inizia con un evento temporale <strong>di</strong> inizio che viene impostato<br />
affinché il processo inizi ogni venerdì (figura 4.4). Il manager riceve la lista<br />
dei problemi (issue list), passa in rassegna la lista <strong>per</strong> determinare se vi<br />
siano dei problemi pronti ad essere <strong>di</strong>scussi ed essere messi sotto votazione.<br />
Se esistono, allora una decisione deve essere presa su questi <strong>per</strong> mezzo <strong>di</strong> un<br />
processo <strong>di</strong> <strong>di</strong>scussione mentre se non esistono il processo termina.<br />
Il task “Discussion Cycle” è un sotto-processo ciclico che rappresenta il<br />
task <strong>di</strong> <strong>di</strong>scussione (figura 4.5). Questo sotto-processo possiede due flussi<br />
in entrata in cui uno proviene da una decisione che viene fatta a valle del<br />
processo e che fa parte quin<strong>di</strong> <strong>di</strong> un ciclo all’interno del processo. An<strong>di</strong>amo a<br />
dettagliare il sotto-processo “Discussion Cycle”. Il sotto-processo incomincia<br />
con il manager della lista che annuncia via e-mail la presenza <strong>di</strong> problemi<br />
su cui è necessario prendere una decisione. Poiché questo task invia un messaggio<br />
verso i partecipanti esterni, un message flow parte dal sotto-processo<br />
“Discussion Cycle” verso i membri votanti. Dopo il primo task seguono tre<br />
<strong>per</strong>corsi paralleli separati (fork) che si sincronizzano al termine del sottoprocesso.<br />
Il primo <strong>per</strong>corso inizia con un task la cui durata è sette giorni
4.3. Processo <strong>di</strong> business <strong>di</strong> riferimento 87<br />
Figura 4.3: Processo <strong>di</strong> riferimento riguardante votazione tramite e-mail
88 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
Figura 4.4: Inizio del processo<br />
Figura 4.5: Sotto processo “Discussion Cycle”
4.3. Processo <strong>di</strong> business <strong>di</strong> riferimento 89<br />
e consiste nella moderazione la <strong>di</strong>scussione via e-mail. Dopo sette giorni<br />
l’evento interme<strong>di</strong>o temporale termina il task <strong>per</strong> iniziare un task <strong>di</strong> revisione<br />
sullo stato della <strong>di</strong>scussione. Il secondo <strong>per</strong>corso contiene un evento<br />
temporale interme<strong>di</strong>o e un task. Dopo sei giorni un messaggio <strong>di</strong> avviso <strong>di</strong><br />
scadenza del tempo utile <strong>per</strong> inviare il voto viene spe<strong>di</strong>to ai partecipanti<br />
votanti. Il terzo <strong>per</strong>corso inizia con un task <strong>per</strong> mezzo del quale il manager<br />
della lista dei problemi controlla il calendario <strong>per</strong> vedere se è fissato un incontro<br />
<strong>per</strong> una conferenza. Il risultato <strong>di</strong> questo task sarà un aggiornamento<br />
della variabile booleana “ConCall”. Questa variabile servirà <strong>per</strong> scegliere il<br />
flusso <strong>di</strong> <strong>per</strong>corso da intraprendere all’arrivo nel gateway esclusivo. La prima<br />
scelta segue il flusso <strong>di</strong> default mentre il secondo, con valore “vero” della<br />
variabile concall, porta ad un evento temporale interme<strong>di</strong>o al termine del<br />
quale vi è il task <strong>di</strong> moderazione della <strong>di</strong>scussione nella conferenza. <strong>Una</strong><br />
volta terminati questi tre <strong>per</strong>corsi appena descritti, i loro flussi <strong>di</strong> processo<br />
si riuniscono in un gateway <strong>di</strong> unione (merging gateway) e, impostando il<br />
valore della variabile booleana “DiscussionOver”, si assegna un valore alla<br />
variabile <strong>di</strong> terminazione del ciclo.<br />
Il secondo sotto-processo inizia con un task che coinvolge il manager del<br />
processo (figura 4.6). Esso deve inviare ai partecipanti la segnalazione che<br />
esiste una lista <strong>di</strong> problemi da votare (sempre con un flusso <strong>di</strong> messaggio).<br />
Dopo questo task viene presentata una fork dalla quale partono quattro<br />
flussi <strong>di</strong> progetto da eseguire in parallelo. Il primo flusso porta ad una decisione<br />
che determina se è eventualmente <strong>di</strong>sponibile una conferenza <strong>per</strong> la<br />
prossima settimana. Il secondo e terzo flusso delle fork lavorano allo stesso<br />
modo delle attività nel sotto-ciclo precedente eccetto <strong>per</strong> il task “moderate<br />
e-mail <strong>di</strong>scussion”. Questo task infatti non è connesso ad un evento temporale<br />
interme<strong>di</strong>o. Questo non è necessario in quanto l’intero sottoprocesso è<br />
interrotto dopo sette giorni attraverso un evento temporale interme<strong>di</strong>o. Il<br />
quarto flusso è un ciclo infinito. La politica del gruppo <strong>di</strong> lavoro èchei<br />
membri votanti possono votare più <strong>di</strong> una volta su una questione, nel senso<br />
che possono cambiare idea quante volte desiderano nel corso della settimana.<br />
Il primo task nel ciclo riceve un messaggio dal partecipante esterno me<strong>di</strong>ante<br />
un flusso <strong>di</strong> messaggio in entrata. La terminazione del ciclo infinito èdovuto<br />
ad un evento temporale interme<strong>di</strong>o che sancirà la terminazione del tempo<br />
utile <strong>per</strong> esprimere il proprio voto da parte dei partecipanti. I task rimanenti<br />
si attiveranno allo scatenarsi <strong>di</strong> questo evento temporale: il primo si<br />
occupa <strong>di</strong> preparare i risultati della votazione mentre il secondo si occu<strong>per</strong>à<br />
dell’invio dei risultati ai membri votanti.<br />
La figura 4.7 mostra la parte finale <strong>di</strong> questo processo, che include un<br />
complesso insieme <strong>di</strong> decisioni e cicli. L’ultima parte del processo comincia
90 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
Figura 4.6: Sotto processo “Collect Votes”
4.3. Processo <strong>di</strong> business <strong>di</strong> riferimento 91<br />
Figura 4.7: Parte finale del processo <strong>di</strong> riferimento
92 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
mostrando quattro gateway decisionali che interagiscono tra loro portando<br />
alla creazione <strong>di</strong> cicli con le attività precedenti. Il primo nodo decisionale<br />
chiamato “Did enough members vote?” è necessario in quanto si richiede che<br />
almeno due terzi dei partecipanti alla votazione abbia effettivamente espresso<br />
il proprio voto. Se meno dei due terzi dei membri votanti ha votato allora<br />
le questioni non possono essere risolte. In questo caso il flusso <strong>di</strong> processo<br />
converge nel successivo nodo decisionale “Have the members been warned?”.<br />
Se la risposta è affermativa allora i membri con <strong>di</strong>ritto <strong>di</strong> voto che non hanno<br />
votato <strong>per</strong>dono la loro possibilità <strong>di</strong> votare e viene rifatto il conteggio dei<br />
voti escludendo i non votanti. Se la risposta è negativa allora è necessario<br />
che il sotto processo “Collect votes” venga ripetuto. A questo punto se tutte<br />
le questioni sono state risolte allora il processo termina. Altrimenti un’altra<br />
decisione è richiesta. Per la votazione sulle questioni rimanenti vengono<br />
fatti due tentativi. Durante il primo si riducono le soluzioni possibili <strong>per</strong><br />
una questione limitando la scelta alle due soluzioni più votate. Quin<strong>di</strong> i<br />
votanti che hanno espresso con il loro voto la preferenza verso una soluzione<br />
non inclusa tra le due devono rivotare ritornando al task “Announce Issues<br />
for Votes” descritto precedentemente. Se questo invece è il secondo tentativo<br />
allora viene ripetuto il sotto-ciclo “Discussion cycle” <strong>per</strong> una nuova<br />
<strong>di</strong>scussione sulle questioni rimanenti e una nuova votazione.<br />
4.4 Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione<br />
Il paragrafo descrive in dettaglio il modello <strong>di</strong> valutazione proposto e le sue<br />
categorie <strong>di</strong> <strong>analisi</strong>.<br />
Per in<strong>di</strong>viduare un modello <strong>di</strong> valutazione dello strumento <strong>BPM</strong>, siamo<br />
partiti dal ciclo <strong>di</strong> vita <strong>di</strong> un prodotto <strong>BPM</strong> proposto da van der Aaslt[38].<br />
Abbiamo precedentemente descritto questo ciclo <strong>di</strong> vita che ricor<strong>di</strong>amo essere<br />
composto da quattro fasi: progettazione <strong>di</strong> processo, configurazione del<br />
sistema, attivazione del processo e <strong>analisi</strong>. Ognuna <strong>di</strong> queste quattro fasi è<br />
importante <strong>per</strong> un sistema <strong>BPM</strong>.<br />
Nella valutazione <strong>di</strong> uno strumento <strong>BPM</strong>, queste quattro fasi non sono<br />
state ritenute sufficienti ai fini della valutazione. Innanzitutto manca una<br />
valutazione dello strumento <strong>BPM</strong> circa la sua conformità agli standard. Per<br />
questo motivo, la prima estensione del ciclo <strong>di</strong> vita <strong>di</strong> van der Aaslt èproprio<br />
quella <strong>di</strong> aggiungere tale elemento <strong>di</strong> valutazione. Un’altra categoria <strong>di</strong> valutazione<br />
aggiunta è stata quella inerente l’usabilità del prodotto. L’usabilitàè<br />
quella <strong>di</strong>sciplina che, in riferimento all’informatica, <strong>per</strong>mette <strong>di</strong> determinare<br />
quanto è usabile un determinato prodotto, cioè seilprodottosiasemplice
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 93<br />
da apprendere e da utilizzare, appagando la cosidetta user ex<strong>per</strong>ience del<br />
prodotto[33].<br />
Infine è stata introdotta un ulteriore estensione al ciclo <strong>di</strong> vita <strong>di</strong> un<br />
<strong>BPM</strong>. Infatti sono stati presi in considerazione gli utenti target a cui il<br />
particolare prodotto <strong>BPM</strong> in valutazione è rivolto. Come vedremo, sono stati<br />
in<strong>di</strong>viduati tre tipi <strong>di</strong> utenti target: gli analisti <strong>di</strong> business, gli sviluppatori<br />
e gli analisti-sviluppatori. Questa valutazione <strong>per</strong>mette <strong>di</strong> orientare meglio<br />
l’utente finale nella scelta dello strumento <strong>BPM</strong> che deve acquisire.<br />
In totale come è possibile notare in figura 4.8, sono state in<strong>di</strong>viduate<br />
7 categorie <strong>di</strong> valutazione <strong>per</strong> uno strumento <strong>BPM</strong>. Per ognuna <strong>di</strong> queste<br />
categorie, sono state in<strong>di</strong>viduate alcune voci <strong>di</strong> valutazione a cui viene assegnato<br />
un valore pesato in base all’importanza <strong>di</strong> quella voce <strong>per</strong> quella<br />
categoria. Alla fine della valutazione si possono estrarre i dati <strong>per</strong> categoria<br />
e confrontare gli <strong>strumenti</strong> <strong>BPM</strong> tra <strong>di</strong> loro in tutte le categorie. Nel paragrafo<br />
seguente viene descritto in dettaglio il modello <strong>di</strong> valutazione appena<br />
proposto.<br />
4.4.1 Conformità agli standard<br />
In questa categoria <strong>di</strong> <strong>analisi</strong> verrà valutata la conformità rispettoatre<br />
tipi <strong>di</strong> standard dello strumento <strong>BPM</strong>. Per quanto concerne lo standard <strong>di</strong><br />
modellazione grafica viene considerato <strong>BPM</strong>N nelle sue 3 versioni <strong>di</strong>sponibili.<br />
Per quanto riguarda il formato <strong>di</strong> interscambio della descrizione del processo<br />
<strong>di</strong> business tra i vari <strong>strumenti</strong> viene preso in considerazione X-PDL nelle<br />
sue 3 versioni <strong>di</strong>sponibili. Infine, come formati <strong>di</strong> esecuzione, vengono presi<br />
in considerazione i formati BPEL4WS e BPEL4PEOPLE.<br />
Conformità alla notazione <strong>BPM</strong>N<br />
L’<strong>analisi</strong> <strong>di</strong> conformità alla notazione <strong>BPM</strong>N viene svolta implementando il<br />
processo <strong>di</strong> riferimento descritto nella documentazione della specifica della<br />
notazione [28] e nel paragrafo 4.3. Vengono presi in considerazione gli <strong>strumenti</strong><br />
che <strong>di</strong>chiarano la conformità alle varie versioni delle notazioni (<strong>BPM</strong>N<br />
1.0, 1.1, 2.0). Le <strong>di</strong>fferenze tra le varie versioni della notazione sono state<br />
già evidenziate nel capitolo precedente. Tuttavia questo processo mette<br />
in risalto le varie caratteristiche della notazione e <strong>per</strong>mette <strong>di</strong> fornire una<br />
valutazione circa la conformità <strong>di</strong> questi <strong>strumenti</strong> <strong>BPM</strong> a questa notazione.<br />
Dal punto <strong>di</strong> vista dell’<strong>analisi</strong> cercheremo <strong>di</strong> capire quanto <strong>di</strong> questo<br />
processo è possibile descrivere con ogni strumento <strong>BPM</strong> che supporta la<br />
notazione. Per valutare la loro conformità sono stati in<strong>di</strong>viduati 45 elementi<br />
della notazione che devono essere presenti affinché lo strumento <strong>BPM</strong> preso
94 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
Figura 4.8: Modello <strong>di</strong> valutazione proposto <strong>per</strong> gli <strong>strumenti</strong> <strong>BPM</strong> a partire dal modello<br />
<strong>di</strong> van der Aaslt[38]: le sette categorie <strong>di</strong> valutazione
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 95<br />
in considerazione possa <strong>di</strong>rsi completamente conforme alla notazione. In<br />
tabella 4.1 vengono mostrati i vari elementi presi in considerazione:<br />
Tabella 4.1: Elementi della notazione <strong>BPM</strong>N presi in considerazione<br />
Event Con<strong>di</strong>tional Flow<br />
Start event Default Flow<br />
Interme<strong>di</strong>ate event Exception Flow<br />
End event Message Flow<br />
None event Compensation Association<br />
Message event Data Object<br />
Timer event Fork<br />
Error event Join<br />
Cancel event Exclusive gateway<br />
Compensation event Data Based exclusive gateway<br />
Link event Event Based exclusive gateway<br />
Terminate event Inclusive gw<br />
Signal event Complex gw<br />
Multiple event Parallel gw<br />
Con<strong>di</strong>tional event Activity Looping<br />
Task (Atomic) Sequence Flow Looping<br />
Collapsed Sub Process Multiple Instances<br />
Expended Sub Process Process Break<br />
Gateway Transaction<br />
Sequence Flow Group<br />
Off Page Connector Text Annotation<br />
Association<br />
Lanes<br />
Pool<br />
Inoltre il processo <strong>di</strong> business considerato rappresenta il processo <strong>di</strong> riferimento<br />
anche <strong>per</strong> quei <strong>strumenti</strong> <strong>BPM</strong> che non supportano la notazione,<br />
<strong>per</strong>mettendo così <strong>di</strong> portare a termine il caso d’uso anche <strong>per</strong> questi <strong>strumenti</strong>.<br />
Conformità a XPDL, BPEL4WS e BPEL4PEOPLE<br />
La conformità ai linguaggi <strong>di</strong> interscambio XPDL e poi quelli <strong>di</strong> esecuzione<br />
BPEL4WS e BPEL4PEOPLE sono un parametro chiave nella valutazione<br />
<strong>di</strong> questa categoria. Abbiamo già <strong>di</strong>scusso nei capitoli precedenti dell’importanza<br />
<strong>di</strong> una standar<strong>di</strong>zzazione ai fini dell’intero<strong>per</strong>abilità tra <strong>strumenti</strong><br />
e piattaforme <strong>di</strong> gestione dei processi <strong>di</strong> business <strong>di</strong>versi.
96 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
Per quanto riguarda il linguaggio <strong>di</strong> interscambio XPDL, viene verificata<br />
la conformità del linguaggio nelle sue 3 versione (1.0, 2.0 e 2.1) secondo<br />
le specifiche rilasciate dal Workflow Management Coalition (WfMC).<br />
La verifica <strong>di</strong> conformità si base sia su quanto <strong>di</strong>chiarato esplicitamente dal<br />
produttore sia da una verifica del file generato. Oltre al supporto al linguaggio,<br />
viene in particolare verificata la possibilità <strong>di</strong> importare ed esportare le<br />
descrizioni dei processi <strong>di</strong> business salvati in questo formato.<br />
Lo stesso proce<strong>di</strong>mento viene applicato <strong>per</strong> i formati <strong>di</strong> esecuzione BPEL4WS<br />
e BPEL4PEOPLE. Questi ultimi saranno importanti ai fini della valutazione<br />
del grado <strong>di</strong> intero<strong>per</strong>abilità <strong>di</strong> un’applicazione generata da un modello <strong>di</strong><br />
processo <strong>di</strong> business con altre applicazioni o servizi esterni (ad es. Web<br />
service).<br />
Tabella riassuntiva della valutazione della fase <strong>di</strong> valutazione sulla<br />
conformità agli standard dello strumento <strong>BPM</strong><br />
Abbiamo descritto i 12 fattori <strong>di</strong> valutazione che abbiamo preso in considerazione<br />
<strong>per</strong> quanto concerne la valutazione sulla conformità agli standard.<br />
In tabella 4.2 schematizziamo questi fattori in<strong>di</strong>cando i valori che possono<br />
assumere.<br />
Tabella 4.2: Tabella valutazione conformità agli standard<br />
A)Conformità agli standard<br />
A.1) Conformità <strong>BPM</strong>N1.1 0...1<br />
A.2) Conformità <strong>BPM</strong>N1.2 0...1<br />
A.3) Conformità <strong>BPM</strong>N2.0 0...1<br />
A.4) Conformità X-PDL 1.0 SI/NO<br />
A.5) Conformità X-PDL 2.0 SI/NO<br />
A.6) Conformità X-PDL 2.1 SI/NO<br />
A.7) Importazione X-PDL SI/NO<br />
A.8) Esportazione X-PDL SI/NO<br />
A.9) Conformità BPEL4WS SI/NO<br />
A.10) Conformità BPEL4PEOPLE SI/NO<br />
A.11) Importazione BPEL4WS / BPEL4PEOPLE SI/NO<br />
A.12) Esportazione BPEL4WS / BPEL4PEOPLE SI/NO
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 97<br />
4.4.2 Modellazione del processo <strong>di</strong> business<br />
Nella fase <strong>di</strong> modellazione, il processo <strong>di</strong> business viene descritto me<strong>di</strong>ante<br />
o le notazioni viste precedentemente(<strong>BPM</strong>N, XPDL, ecc.) o <strong>per</strong> mezzo<br />
<strong>di</strong> notazioni proprie dello strumento <strong>BPM</strong> considerato. In questa sezione<br />
verranno presi in considerazione dei fattori riguardanti la fase <strong>di</strong> modellazione<br />
<strong>di</strong> un processo <strong>di</strong> business. An<strong>di</strong>amo a descrivere questi elementi <strong>di</strong><br />
valutazione.<br />
Modello informativo<br />
Il modello informativo <strong>di</strong> un workflow rappresenta le informazioni riguardanti<br />
il processo <strong>di</strong> business e i tipi <strong>di</strong> dati che vengono scambiati tra i vari attori<br />
del processo. Con questo modello vengono definiti i dati che un task riceve<br />
in ingresso e i dati prodotti al termine della sua esecuzione. In uno strumento<strong>BPM</strong><strong>di</strong>solitoquestomodellopuò<br />
essere definito durante la fase <strong>di</strong><br />
modellazione grafica, impostando <strong>di</strong>rettamente nelle proprietà dell’elemento<br />
i dati in ingresso e in uscita, oppure può essere definito successivamente<br />
alla fase <strong>di</strong> modellazione. Inoltre questo modello definisce le modalità <strong>di</strong><br />
interazione del sistema con una sorgente <strong>di</strong> dati esterna come può essere un<br />
DBMS (database management system). Ad esempio nel processo <strong>di</strong> riferimento<br />
considerato, il modello informativo potrebbe definire il formato con<br />
cui deve essere trasmesso un voto da parte dei votanti oppure quello della<br />
lista dei problemi (issue list) che viene <strong>di</strong>stribuita tra i partecipanti.<br />
Modello organizzativo<br />
Il modello organizzativo descrive le risorse del processo e in quale relazione<br />
sono tra loro. La conoscenza delle varie abilità <strong>di</strong> ogni risorsa <strong>per</strong>mette al<br />
workflow engine <strong>di</strong> poter assegnare le attività allarisorsachehalapossibilità<br />
<strong>di</strong> portarlo a termine con maggiore efficienza ed efficacia rispetto alle<br />
altre risorse. Inoltre <strong>per</strong>mette <strong>di</strong> assegnare specifiche risorse a specifici task.<br />
Ad esempio, un task il cui compito è quello <strong>di</strong> approvare un determinato<br />
pagamento, deve necessariamente essere assegnato alla risorsa che detiene i<br />
<strong>di</strong>ritti <strong>di</strong> approvare una simile attività. Questo fattore <strong>di</strong> valutazione <strong>per</strong>mette<br />
<strong>di</strong> comprendere se lo strumento <strong>BPM</strong> analizzato consente la definizione<br />
<strong>di</strong> tale modello.<br />
Modello <strong>di</strong> transazione<br />
Il modello <strong>di</strong> transazione definisce le modalità con cui vengono trattate<br />
quelle parti <strong>di</strong> processo <strong>di</strong> business che devono essere considerate come delle
98 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
transazioni. Queste parti del modello devono essere soggette alle proprietà<br />
cosiddette ACID (atomicità, coerenza, isolamento, durabilità) e devono<br />
fornire dei meccanismi cosiddetti <strong>di</strong> rollback nel caso sia necessario annullare<br />
la transazione. Per fare questo devono essere implementati dei meccanismi <strong>di</strong><br />
cancellazione o <strong>di</strong> “failure” della transazione. Le proprietà ACID derivano<br />
dal mondo dei database e sono state applicate ai processi <strong>di</strong> business in<br />
quanto essi contengono attività che accedono a risorse con<strong>di</strong>vise contenenti<br />
dati <strong>per</strong>sistenti, e quin<strong>di</strong> soggette a semantica transazionale. In particolare,<br />
le proprietà <strong>di</strong> atomicità e <strong>di</strong> isolamento possono essere applicate con<br />
grande utilità ai processi <strong>di</strong> business (o in parte <strong>di</strong> essi) [17]. Nel caso <strong>di</strong> una<br />
transazione, se un’attività si interrompe, le precedenti attività della stessa<br />
transazione devono poter essere in grado <strong>di</strong> eseguire un roll-back eseguendo<br />
le loro transazioni <strong>di</strong> compensazione. Uno strumento <strong>BPM</strong> deve poter dare<br />
la possibilità <strong>di</strong> definire il comportamento <strong>di</strong> una transazione <strong>per</strong> sotto-parti<br />
del processo stesso.<br />
Gestione delle eccezioni<br />
La gestione delle eccezioni è un importante funzionalità <strong>di</strong> un sistema <strong>BPM</strong>,<br />
il quale deve poter dare la possibilità <strong>di</strong> definire come gestire queste eccezioni.<br />
Diversi sono i casi in cui è necessario gestire le eccezioni. Ad esempio un<br />
utente che interagisce con un processo <strong>di</strong> business deve fornire dei dati al<br />
processo me<strong>di</strong>ante delle interfacce (form, email, ecc.). Oltre alla normale<br />
interazione con i processi <strong>di</strong> business (che si riduce all’immisione <strong>di</strong> informazione<br />
nelle form), l’intervento umano potrebbe essere anche necessario<br />
<strong>per</strong> risolvere le eccezioni, in quanto non tutte le eccezioni possono essere<br />
gestite in modo automatico. Gli utenti devono essere avvisati quando le eccezioni<br />
necessitano del loro intervento. Eccezioni <strong>di</strong> tipo sincrono e asincrono<br />
richiedono meccanismi <strong>di</strong>fferenti. Se un eccezione avviene in modo sincrono<br />
durante l’esecuzione <strong>di</strong> un’attività <strong>di</strong> workflow, l’utente può essere avvisato<br />
imme<strong>di</strong>atamente mentre sta eseguendo quella attività; se invece avviene in<br />
modo asincrono la notifica avviene all’esterno del flusso <strong>di</strong> processo [3]. In<br />
entrambi i casi gli <strong>strumenti</strong> <strong>BPM</strong> devono fornire delle metodologie <strong>per</strong> la<br />
gestione <strong>di</strong> queste eccezioni. In particolare devono definire come cambia il<br />
flusso <strong>di</strong> processo una volta risolta l’eccezione, il quale o può essere mantenuto<br />
oppure mo<strong>di</strong>ficato [6]. Nel primo caso gestire l’eccezione e mantenere<br />
il flusso <strong>di</strong> esecuzione comporta azioni quali:<br />
• cambiare il ruolo o la risorsa richiesta <strong>per</strong> una attività<br />
• cambiare i vincoli (<strong>per</strong> esempio la deadline) <strong>per</strong> una attività
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 99<br />
• aggiungere utenti o risorse alle attività<br />
Nel secondo caso, invece, gestire l’eccezione e mo<strong>di</strong>ficare il <strong>per</strong>corso <strong>di</strong> esecuzione<br />
comporta azioni quali:<br />
• Salvare il progresso dell’istanza <strong>di</strong> processo<br />
• Ripetere un’attività<br />
• Scambiare gli utenti assegnati <strong>per</strong> una attività<br />
• Scegliere un’alternativa esistente <strong>per</strong> l’esecuzione<br />
• Saltare l’esecuzione <strong>di</strong> una attività<br />
• Interrom<strong>per</strong>e l’istanza <strong>di</strong> un’attività oppure quella <strong>di</strong> un intero processo<br />
La presenza o meno della possibilità <strong>di</strong> poter definire la gestione delle eccezioni<br />
è un criterio <strong>di</strong> valutazione dello strumento <strong>BPM</strong>.<br />
Riuso<br />
Il fattore riuso è un fattore importante in quanto <strong>per</strong>mette <strong>di</strong> non riscrivere<br />
da zero soluzioni che sono già state trovate in precedenza nella modellazione<br />
<strong>di</strong> un flusso <strong>di</strong> processo <strong>di</strong> business. Infatti, se da un punto <strong>di</strong> vista dell’ingegneria<br />
del software il riuso <strong>di</strong> componenti software è un metodo <strong>per</strong> migliorare<br />
l’efficienza e la qualità del processo <strong>di</strong> progettazione, lo stesso accade nella<br />
modellazione dei processi <strong>di</strong> business dove il riuso migliora l’efficienza e la<br />
qualità dei modelli dei processi <strong>di</strong> business. Sono stati in<strong>di</strong>viduati tre tipi<br />
<strong>di</strong> componenti <strong>di</strong> riuso:<br />
• processi definiti completamente da riadattare<br />
• processi parzialmente definiti da riadattare<br />
• template <strong>di</strong> processi da <strong>per</strong>sonalizzare e/o adattare<br />
Il primo componente riguarda il riuso <strong>di</strong> processi <strong>di</strong> business che sono stati<br />
completamente modellizzati e che magari sono già entrati in esecuzione. I<br />
I processi così definiti vengono riutilizzati o come sotto-processi <strong>di</strong> processi<br />
più gran<strong>di</strong> oppure vengono mo<strong>di</strong>ficati alcuni task o gateway in modo da<br />
adattarlo alle nuove specifiche <strong>di</strong> processo. Il secondo componente riguarda<br />
il riuso <strong>di</strong> processi parzialmente definiti. Questi possono riguardare parti<br />
<strong>di</strong> flusso <strong>di</strong> processo ricorrente e in qualche modo standar<strong>di</strong>zzato. Ad esempio,<br />
due processi <strong>di</strong> business <strong>di</strong>fferenti possono contenere al loro interno
100 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
una sequenza <strong>di</strong> task che <strong>per</strong>mette <strong>di</strong> svolgere un’o<strong>per</strong>azione standar<strong>di</strong>zzata<br />
all’interno <strong>di</strong> quella particolare organizzazione (un particolare processo <strong>di</strong><br />
approvazione tipo dell’organizzazione, ecc.) Il terzo componente riguarda<br />
la <strong>per</strong>sonalizzazione e/o l’adattamento <strong>di</strong> template <strong>di</strong> processi. Lo strumento<br />
<strong>BPM</strong> potrebbe fornire all’utente dei template base <strong>di</strong> workflow che<br />
<strong>per</strong>mettono <strong>di</strong> progettare dei flussi tipici del processo quali cicli, procedure<br />
<strong>di</strong> compensazione, gestione delle eccezioni, ecc.<br />
Se uno strumento <strong>BPM</strong> <strong>per</strong>mette il riuso dei vari componenti descritti<br />
allora deve anche essere in grado <strong>di</strong> affrontare tre categorie <strong>di</strong> problemi<br />
definiti da [14]:<br />
• Problemi <strong>di</strong> consistenza: avvengono quando due elementi <strong>di</strong> modelli<br />
<strong>di</strong> processi <strong>di</strong> business <strong>di</strong>fferenti hanno lo stesso identificatore ma non<br />
rappresentano lo stesso concetto<br />
• Problemi <strong>di</strong> ridondanza: avvengono quando due elementi rappresentano<br />
lo stesso concetto ma hanno <strong>di</strong>fferenti identificatori<br />
• Problemi <strong>di</strong> residuo: avvengono quando un elemento <strong>di</strong>viene parte <strong>di</strong><br />
un modello <strong>di</strong> processo <strong>di</strong> business composto, non <strong>per</strong>chè necessario ai<br />
fini del processo composto, ma <strong>per</strong>chè faceva parte <strong>di</strong> un componente<br />
<strong>di</strong> questo modello <strong>di</strong> business.<br />
Affinché sia possibile il riuso, questi processi devono essere memorizzati<br />
in un repository <strong>di</strong> modelli <strong>di</strong> processo che descriveremo nella fase <strong>di</strong><br />
configurazione.<br />
Tipizzazione <strong>di</strong> elementi del modello<br />
In questa categoria <strong>di</strong> valutazione sono stati considerati tre fattori:<br />
• Possibilità <strong>di</strong> definire delle politiche sull’assegnazione delle attività<br />
• Tipizzazione delle attività e loro riuso<br />
• Possibilità <strong>di</strong> definire semantiche <strong>per</strong>sonalizzate <strong>per</strong> elementi <strong>di</strong> tipo<br />
gateway<br />
Il primo, “possibilità <strong>di</strong> definire delle politiche sull’assegnazione delle<br />
attività”, riguarda il fatto <strong>di</strong> poter definire sulle singole attività delle regole<br />
sull’assegnazione <strong>di</strong> risorse.<br />
Il secondo, “tipizzazione delle attività e loro riuso”, riguarda la possibilità<br />
<strong>di</strong> poter definire attività <strong>per</strong>sonalizzate nel modello (inteso come elementi<br />
nuovi), definendone il comportamento (ad esempio me<strong>di</strong>ante a delle
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 101<br />
regole che possono essere definite da un linguaggio <strong>di</strong> programmazione) e<br />
<strong>per</strong>mettendone il salvataggio <strong>per</strong> un possibile riuso dell’attività definita.<br />
Il terzo, “possibilità <strong>di</strong> definire semantiche <strong>per</strong>sonalizzate <strong>per</strong> elementi<br />
<strong>di</strong> tipo gateway”, riguarda il fatto <strong>di</strong> poter definire delle semantiche <strong>per</strong>sonalizzate<br />
<strong>per</strong> gli elementi <strong>di</strong> tipo gateway. Queste semantiche definiscono il<br />
comportamento del flusso <strong>di</strong> processo durante i no<strong>di</strong> <strong>di</strong> scelta del <strong>per</strong>corso.<br />
Uno strumento <strong>BPM</strong> dovrebbe dare la possibilità <strong>di</strong> poter tipizzare gli<br />
elementi sopra descritti.<br />
Supporto ai linguaggi <strong>di</strong> programmazione, <strong>di</strong>chiarativi e basati su<br />
regole <strong>di</strong> business<br />
Il supporto ai linguaggi <strong>di</strong> programmazione, <strong>di</strong>chiarativi e basati su regole<br />
<strong>per</strong>mette <strong>di</strong> dettagliare e <strong>per</strong>sonalizzare il funzionamento <strong>di</strong> un determinato<br />
task definito nel modello. In particolare i linguaggi <strong>di</strong> programmazione<br />
<strong>per</strong>mettono <strong>di</strong> definire la logica <strong>di</strong> funzionamento <strong>di</strong> una determinata attività<br />
(questi possono essere C, C++, Java, ecc). Questi servono <strong>per</strong> definire la<br />
logica o<strong>per</strong>ativa <strong>per</strong> quei task che sono completamente automatizzati. I<br />
linguaggi <strong>di</strong>chiarativi come SQL <strong>per</strong>mettono <strong>di</strong> definire le interazioni con i<br />
sistemi esterni (in questo caso DBMS) oppure <strong>di</strong> definire delle regole logiche<br />
allo svolgimento del flusso del processo. I linguaggi basati invece su regole<br />
<strong>di</strong> business come CLIPS, <strong>per</strong>mettono <strong>di</strong> definire le regole <strong>di</strong> business che<br />
governano un processo. Le regole <strong>di</strong> business possono essere modellizzate in<br />
tre mo<strong>di</strong>:<br />
• Utilizzando regole <strong>di</strong> business implicite: tutte le regole <strong>di</strong> business vengono<br />
modellizzate in un modello <strong>di</strong> processo <strong>di</strong> business, tipicamente<br />
come punti decisionali nel processo. Per esempio una compagnia assicurativa<br />
avente come regola <strong>di</strong> business quella <strong>di</strong> far pagare un prezzo<br />
più alto alle <strong>per</strong>sone al <strong>di</strong> sotto dei 23 anni è rappresentato in figura<br />
4.9. In questo caso cambiare la regola <strong>di</strong> business significa cambiare il<br />
modello <strong>di</strong> processo <strong>di</strong> business.<br />
• Utilizzando regole <strong>di</strong> business esplicite: le regole <strong>di</strong> business nel modello<br />
del processo <strong>di</strong> business vengono modellizzate solo come riferimento<br />
alla regola <strong>di</strong> business. Le regole stesse <strong>di</strong> business vengono salvate in<br />
un repository e gestite separatamente. In figura 4.10 viene mostrata<br />
la stessa situazione con l’utilizzo esplicito <strong>di</strong> regole <strong>di</strong> business.<br />
• Utilizzando regole <strong>di</strong> business <strong>per</strong> modellizzare completamente il processo<br />
<strong>di</strong> business: in questo caso il processo <strong>di</strong> business non viene
102 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
modellizzato in un modello <strong>di</strong> processo <strong>di</strong> business ma viene completamente<br />
realizzato me<strong>di</strong>ante regole <strong>di</strong> business esplicite. Queste regole <strong>di</strong><br />
business verranno poi eseguite da un motore <strong>di</strong> esecuzione delle regole<br />
(business rules engine).<br />
Delle tre situazioni illustrate la seconda èquellachepiù <strong>di</strong> tutte sta aumentando<br />
la propria importanza. Fare un uso esplicito delle regole <strong>di</strong> business<br />
causa il loro riuso e facilita la loro gestione. Data l’importanza delle con-<br />
Figura 4.9: Esempio <strong>di</strong> utilizzo <strong>di</strong> regole <strong>di</strong> business implicite<br />
siderazioni fatte, si è deciso <strong>di</strong> assegnare una valutazione <strong>per</strong> l’utilizzo <strong>di</strong><br />
tutti e tre i linguaggi.<br />
Tabella riassuntiva della valutazione della fase <strong>di</strong> modellazione del<br />
processo <strong>di</strong> business<br />
Abbiamo descritto i 13 fattori <strong>di</strong> valutazione che abbiamo preso in considerazione<br />
<strong>per</strong> quanto concerne la fase <strong>di</strong> modellazione. In tabella 4.3<br />
schematizziamo questi fattori in<strong>di</strong>cando i valori che possono assumere:<br />
4.4.3 Configurazione <strong>di</strong> un sistema <strong>BPM</strong><br />
Nella fase <strong>di</strong> configurazione, un sistema <strong>BPM</strong> viene configurato in modo da<br />
poter eseguire il processo <strong>di</strong> business. In questa categoria <strong>di</strong> <strong>analisi</strong> dello<br />
strumento <strong>BPM</strong> sono stati inclusi fattori riguardanti la configurazione sia<br />
dello strumento <strong>di</strong> modellazione sia quella dell’applicazione che viene generata<br />
me<strong>di</strong>ante esso. Inoltre sono stati presi in considerazione fattori quali la<br />
security e l’intero<strong>per</strong>abilità sia dello strumento <strong>di</strong> modellazione del processo<br />
<strong>di</strong> business che dell’applicazione generata. Inoltre sempre in termini <strong>di</strong>
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 103<br />
Figura 4.10: Esempio <strong>di</strong> utilizzo <strong>di</strong> regole <strong>di</strong> business esplicite<br />
Tabella 4.3: Tabella valutazione modellazione processo <strong>di</strong> business<br />
B)Modellazione del processo<br />
B.1) Modello informativo SI/NO<br />
B.2) Modello organizzativo SI/NO<br />
B.3) Modello <strong>di</strong> transazione SI/NO<br />
B.4) Gestione delle eccezioni SI/NO<br />
B.5) Riutilizzo <strong>di</strong> processi completi da adattare SI/NO<br />
B.6) Riutilizzo <strong>di</strong> frammenti <strong>di</strong> processi da adattare SI/NO<br />
B.7) Template <strong>di</strong> processi da <strong>per</strong>sonalizzare/adattare SI/NO<br />
B.8) Definizione <strong>di</strong> politiche sull’assegnazione delle attività SI/NO<br />
B.9) Tipizzazione delle attività e loro riuso SI/NO<br />
B.10) Semantiche <strong>per</strong>sonalizzate <strong>per</strong> elementi <strong>di</strong> tipo gateway SI/NO<br />
B.11) Supporto linguaggi programmazione SI/NO<br />
B.12) Interpretazione dei linguaggi <strong>di</strong>chiarativi SI/NO<br />
B.13) Supporto linguaggi basati su regole SI/NO
104 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
riuso visti nella categoria precedente, viene presa in considerazione la presenza<br />
o meno <strong>di</strong> un sistema <strong>di</strong> gestione del versionamento sia dei modelli <strong>di</strong><br />
business sia delle varie applicazioni generate da queste. Di seguito verranno<br />
presentate nel dettaglio le categorie considerate.<br />
Richiesta <strong>di</strong> risorse minime da parte del sistema <strong>BPM</strong><br />
In questa categoria <strong>di</strong> <strong>analisi</strong> vengono prese in considerazione due aspetti<br />
caratterizzanti la richiesta <strong>di</strong> risorse <strong>per</strong> l’esecuzione del sistema <strong>BPM</strong>:<br />
1. quantità <strong>di</strong> memoria RAM minima richiesta<br />
2. quantità <strong>di</strong> spazio richiesto su memoria secondaria (hard <strong>di</strong>sk)<br />
Entrambi i fattori sono importanti da un punto <strong>di</strong> vista della configurazione<br />
dello strumento <strong>BPM</strong> <strong>per</strong>chè forniscono delle in<strong>di</strong>cazioni sulle risorse minime<br />
da assegnare al calcolatore. Inoltre <strong>per</strong>mettono <strong>di</strong> dare delle in<strong>di</strong>cazioni<br />
su un eventuale pianificazione delle capacità <strong>di</strong> calcolo quando si presenta<br />
la necessità <strong>di</strong> prendere in considerazione delle architetture <strong>di</strong> calcolo <strong>di</strong>stribuite<br />
dove l’intero sistema <strong>BPM</strong> deve entrare in produzione. Dal punto <strong>di</strong><br />
vista della valutazione, <strong>per</strong> quanto riguarda l’utilizzo della memoria RAM<br />
viene assegnato un punteggio in base a quanta ne occorre secondo la seguente<br />
scala <strong>di</strong> valutazione: da 0 a 512MB punteggio 1, da 512MB a 1GB punteggio<br />
0,75, da 1GB a 2GB punteggio 0,5, da 2GB a 4GB punteggio 0,25, 4GB+<br />
punteggio 0. Invece <strong>per</strong> quanto riguarda la quantità <strong>di</strong> memoria secondaria<br />
richiesta viene definita la seguente scala <strong>di</strong> valutazione: da 0 a 2GB punteggio<br />
1, da 2GBMB a 4GB punteggio 0,75, da 4GB a 6GB punteggio 0,5, da<br />
6GB a 8GB punteggio 0,25, da 8GB+ punteggio 0.<br />
Multipiattaforma<br />
Un strumento <strong>BPM</strong> <strong>per</strong> essere multipiattaforma deve essere in grado <strong>di</strong><br />
essere eseguito in tutte le sue parti da almeno due sistemi o<strong>per</strong>ativi <strong>di</strong>fferenti.<br />
Perchè questo sia possibile esistono due <strong>di</strong>verse possibilità:<br />
• avere più versioni in base al sistema o<strong>per</strong>ativo, quin<strong>di</strong> il software viene<br />
scritto e compilato tante volte quanti sono i sistemi o<strong>per</strong>ativi su i quali<br />
deve entrare in esecuzione<br />
• essere scritto <strong>per</strong> una piattaforma cross-platform come ad esempio la<br />
piattaforma JRE (Java Runtime Environment) e quin<strong>di</strong> essere scritti in<br />
linguaggio Java che rispecchia il cosiddetto para<strong>di</strong>gma WORE (Write<br />
Once, Run Everywhere)
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 105<br />
L’essere multipiattaforma è importante da un punto <strong>di</strong> vista dell’utilizzo dello<br />
strumento <strong>BPM</strong> in quanto non vincola l’utilizzatore finale a dover lavorare<br />
su un calcolatore avente un particolare sistema o<strong>per</strong>ativo. Questo fattore<br />
potrebbe anche incidere sui costi <strong>di</strong> acquisizione del prodotto <strong>BPM</strong> stesso,<br />
in quanto bisogna anche prendere in considerazione i costi <strong>di</strong> acquisizione <strong>di</strong><br />
licenze <strong>di</strong> sistemi o<strong>per</strong>ativi o <strong>di</strong> hardware supportato dal prodotto, ma non<br />
presente dove lavora l’utilizzatore finale. Questo potrebbe essere un fattore<br />
<strong>di</strong>scriminante nella scelta se adottare o meno quel particolare strumento.<br />
Utilizzo <strong>di</strong> Database Management System (DBMS)<br />
L’utilizzo <strong>di</strong> un Database Management System da parte <strong>di</strong> uno strumento<br />
<strong>BPM</strong> è un fattore importante in quanto in<strong>di</strong>ca che i dati trattati dal <strong>BPM</strong><br />
non vengono trattati salvandoli in un file ma vengono gestiti appunto da un<br />
DBMS. In questa sede non ci soffermeremo in particolare sui vantaggi dell’utilizzare<br />
un DBMS in generale. Invece andremo a valutare l’impatto che<br />
un loro utilizzo hanno nei confronti <strong>di</strong> un sistema <strong>BPM</strong>. Innanzitutto la necessità<br />
<strong>di</strong> DBMS comporta dei costi aggiuntivi all’acquisizione <strong>di</strong> un sistema<br />
<strong>BPM</strong> in quanto quasi sempre sono software <strong>di</strong> terzi produttori. Inoltre la<br />
loro presenza comporta una ulteriore fase <strong>di</strong> configurazione del sistema <strong>BPM</strong><br />
in quanto deve essere preparato il database composto da tabelle specifiche<br />
sulle quali andranno salvati i dati <strong>di</strong> lavoro del sistema <strong>BPM</strong>. Di contro,<br />
l’utilizzo <strong>di</strong> un DBMS <strong>per</strong>mette <strong>di</strong> immagazzinare i dati in modo separato<br />
dal particolare sistema <strong>BPM</strong> utilizzato, migliorando l’efficienza della loro<br />
gestione. Possiamo elencare alcuni vantaggi derivati dall’utilizzo <strong>di</strong> questi<br />
sistemi:<br />
• i dati non sono duplicati<br />
• l’accesso ai dati avviene in base a privilegi fissati dal DBMS<br />
• i vincoli <strong>di</strong> consistenza possono essere fissati all’interno del DBMS<br />
• l’accesso concorrente ai dati è controllato dal DBMS che gestisce la<br />
mutua esclusione dei programmi<br />
L’utilizzo <strong>di</strong> un DBMS <strong>per</strong>mette <strong>di</strong> salvare in maniera sistematica i modelli<br />
<strong>di</strong> processi <strong>di</strong> business che sono stati progettati e le applicazioni da cui<br />
essi derivano. In particolare un ulteriore fattore <strong>di</strong> valutazione preso in<br />
considerazione è la presenza o meno della possibilità <strong>di</strong> fare un mapping<br />
<strong>di</strong>retto tra i dati definiti nel modello informativo del processo <strong>di</strong> business<br />
e le tabelle associate a quel particolare processo nel database. In entrambi
106 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
i casi, il parametro <strong>di</strong> valutazione è la presenza o meno del DBMS e del<br />
mapping dei dati del processo definito.<br />
Gestione delle versioni<br />
Questo fattore valuta se lo strumento <strong>BPM</strong> e l’applicazione da esso generato<br />
interagiscono con un sistema <strong>di</strong> gestione delle versioni. Un sistema <strong>di</strong><br />
versionamento <strong>per</strong>mette <strong>di</strong> tenere traccia delle <strong>di</strong>verse versioni <strong>di</strong> modelli <strong>di</strong><br />
processo e <strong>di</strong> applicazioni generati da questo. I vantaggi nell’utilizzo <strong>di</strong> un<br />
sistema <strong>di</strong> versionamento sono le seguenti:<br />
• tenere traccia <strong>di</strong> tutte le versioni dei processi <strong>di</strong> business<br />
• supportare l’esecuzione <strong>di</strong> versioni <strong>di</strong>fferenti dello stesso processo <strong>di</strong><br />
business allo stesso momento<br />
• aggiornare un processo <strong>di</strong> business e alterare <strong>di</strong> conseguenza le istanze<br />
<strong>di</strong> esecuzione <strong>di</strong> quel particolare processo<br />
Il sistema <strong>di</strong> versionamento può essere o meno del produttore del sistema<br />
<strong>BPM</strong> e può appoggiarsi o meno ad un DBMS <strong>di</strong> terze parti.<br />
Security<br />
La security è un fattore importante durante la valutazione <strong>di</strong> un sistemi.<br />
Per questo parametro <strong>di</strong> valutazione viene considerata o meno la presenza<br />
<strong>di</strong> <strong>di</strong>versi aspetti quali:<br />
• un sistema <strong>di</strong> autenticazione dello strumento <strong>BPM</strong><br />
• un sistema <strong>di</strong> cifratura dello strumento<br />
• la generazione dei file <strong>di</strong> log sull’utilizzo dello strumento<br />
• un controllo sull’accesso dell’applicazione generata basato sui ruoli<br />
• un sistema <strong>di</strong> autenticazione dell’applicazione generata<br />
• storage sicuro dei dati<br />
Partiamo dall’ultimo fattore. Abbiamo visto poc’anzi il ruolo <strong>di</strong> un DBMS<br />
associato ad uno strumento <strong>BPM</strong>. Un aspetto <strong>di</strong> cui non abbiamo fatto<br />
menzione è l’elevato grado <strong>di</strong> sicurezza che quest’ultimo consente ai dati<br />
memorizzati nei suoi database. Esistono altre modalità <strong>per</strong> mettere al sicuro<br />
i dati. Ad esempio se il sistema <strong>BPM</strong> non utilizza un DBMS <strong>per</strong> gestire i
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 107<br />
dati, potrebbe utilizzare un proprio sistema <strong>per</strong> mettere al sicuro i file <strong>di</strong> dati<br />
contenenti le descrizioni dei processi <strong>di</strong> business. Tuttavia il DBMS risulta<br />
essere più affidabile in quanto contiene dei meccanismi <strong>di</strong> ripristino in caso <strong>di</strong><br />
<strong>di</strong>sastro che <strong>per</strong>mettono il recu<strong>per</strong>o spesso totale dei dati. Quin<strong>di</strong> possiamo<br />
affermare che se un sistema <strong>BPM</strong> interagisce con un DBMS <strong>per</strong> la gestione<br />
dei dati, allora questo fattore <strong>di</strong> valutazione assume automaticamente un<br />
valore positivo. Negli altri casi si deve valutare caso <strong>per</strong> caso.<br />
Per quanto riguarda i fattori <strong>di</strong> sicurezza inerenti all’utilizzo dello strumento<br />
<strong>BPM</strong>, abbiamo preso in considerazione tre aspetti. Il primo valuta la<br />
presenza o meno <strong>di</strong> un sistema <strong>di</strong> cifratura dello strumento. Questo sistema<br />
<strong>di</strong> cifratura, se presente, deve poter salvare i dati del modello del processo<br />
<strong>di</strong> business utilizzando un algoritmo <strong>di</strong> cifratura. Questo <strong>per</strong>mette <strong>di</strong> poter<br />
dare accesso e <strong>di</strong> rendere intellegibili i suoi dati solo alle <strong>per</strong>sone che hanno<br />
il <strong>di</strong>ritto <strong>di</strong> lettura e/o scrittura su quei dati. Un altro fattore preso in<br />
considerazione è la presenza <strong>di</strong> un sistema <strong>di</strong> autenticazione dello strumento<br />
<strong>BPM</strong> in modo da poter assegnare delle credenziali <strong>di</strong> accesso allo strumento<br />
e definire dei ruoli sull’utilizzo dello stesso, nel senso <strong>di</strong> stabilire chi può<br />
fare cosa. Quest’ultimo aspetto è importante nel caso <strong>di</strong> sistema <strong>BPM</strong> i cui<br />
<strong>strumenti</strong> vengono utilizzati in un ambiente <strong>di</strong>stribuito. Anche l’o<strong>per</strong>azione<br />
<strong>di</strong> generazione dei file <strong>di</strong> log è molto importante <strong>per</strong>chè <strong>per</strong>mette <strong>di</strong> valutare<br />
autenticazioni non lecite allo strumento <strong>BPM</strong> oppure <strong>di</strong> verificare quali siano<br />
state le cause <strong>di</strong> determinati errori nel suo utilizzo.<br />
Infine sono stati presi in considerazione i fattori <strong>di</strong> sicurezza riguardanti<br />
l’applicazione generata dal modello del processo <strong>di</strong> business. Vengono valutati<br />
due aspetti: uno il controllo dell’accesso all’applicazione basato sui<br />
ruoli, l’altro la presenza <strong>di</strong> un sistema <strong>di</strong> autenticazione dell’applicazione.<br />
Di quest’ultimo aspetto ovviamente solo gli utenti interessati al processo devono<br />
poter accedere. Il primo invece consiste nel fornire l’accesso ai vari task<br />
<strong>di</strong> processo solo a quelle <strong>per</strong>sone autorizzate, in modo da rispettare il modello<br />
organizzativo definito in fase <strong>di</strong> modellazione del processo <strong>di</strong> business.<br />
Infatti abbiamo visto che questo modello può essere utilizzato <strong>per</strong> definire i<br />
vari attori dei vari task <strong>di</strong> processo. Un sistema <strong>di</strong> controllo sull’accesso del<br />
giusto attore al giusto task <strong>di</strong> processo garantisce l’integrità <strong>di</strong> esecuzione<br />
del processo in base a quanto è stato stabilito in fase <strong>di</strong> modellazione.<br />
Intero<strong>per</strong>abilità<br />
Questo fattore valuta l’intero<strong>per</strong>abilità dello strumento <strong>BPM</strong> e delle applicazioni<br />
generate con questo con dei sistemi esterni. Valutazioni positive<br />
possono essere date quando lo strumento <strong>di</strong> modellazione ad esempio in-
108 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
teragisce con <strong>strumenti</strong> esterni <strong>per</strong> estendere le proprie funzionalità ocome<br />
abbiamo visto prima <strong>per</strong> interagire con dei DBMS. Da parte dello strumento<br />
<strong>di</strong> modellazione, può essere importante intero<strong>per</strong>are con <strong>strumenti</strong> esterni<br />
in modo da aumentare le proprie caratteristiche <strong>di</strong> modellazione. Ad esempio<br />
vi sono <strong>strumenti</strong> <strong>di</strong> modellazione che interagiscono con altri nella<br />
costruzione dell’applicazione. Ad esempio l’interfaccia web dell’applicazione<br />
(ove presente) può richiedere lo sviluppo con <strong>strumenti</strong> in<strong>di</strong>pendenti dallo<br />
strumento <strong>di</strong> modellazione <strong>BPM</strong>. Da parte dell’applicazione generata dal<br />
modello <strong>di</strong> processo <strong>di</strong> business, questa può essere stata ideata in modo da<br />
dover interagire con dei sistemi esterni. Ad esempio deve essere in grado<br />
<strong>di</strong> collaborare con dei DBMS dai quali deve poter fare delle query in modo<br />
da estrarre i dati dalle tabelle e poterli utilizzare nel flusso <strong>di</strong> processo.<br />
Inoltre quando si parla <strong>di</strong> intero<strong>per</strong>abilità <strong>di</strong> un’applicazione generata da<br />
un modello <strong>di</strong> processo <strong>di</strong> business, entrano in gioco i concetti <strong>di</strong> orchestrazione<br />
e coreografia dei processi (concetti descritti nei capitoli precedenti)<br />
che in<strong>di</strong>cano se l’applicazione sia stata progettata <strong>per</strong> interagire con gli altri<br />
processi e servizi espondendo la propria interfaccia contenente le proprie<br />
funzionalità e i risultati delle sue esecuzioni. Ad esempio questo può essere<br />
fatto descrivendo l’applicazione con un linguaggio <strong>di</strong> esecuzione appropriato<br />
come ad esempio il BPEL4WS visto precedentemente.<br />
Tabella riassuntiva della valutazione della fase <strong>di</strong> configurazione <strong>di</strong><br />
un sistema <strong>BPM</strong><br />
Abbiamo descritto i 15 fattori <strong>di</strong> valutazione che abbiamo preso in considerazione<br />
<strong>per</strong> quanto concerne la fase <strong>di</strong> configurazione. In tabella 4.4<br />
schematizziamo questi fattori in<strong>di</strong>cando i valori che possono assumere:<br />
4.4.4 Attivazione del processo <strong>di</strong> business<br />
La fase <strong>di</strong> attivazione del processo <strong>di</strong> business consiste in metodologie e<br />
in <strong>strumenti</strong> il cui scopo è quello <strong>di</strong> supportare l’esecuzione del processo.<br />
In questa fase è presente il <strong>BPM</strong> engine che è quel componente software<br />
il cui compito è quello <strong>di</strong> gestire il flusso <strong>di</strong> processo. Tra i suoi compiti<br />
ricor<strong>di</strong>amo l’allocazione <strong>di</strong> risorse alle varie attività, l’in<strong>di</strong>viduazione e la<br />
gestione <strong>di</strong> situazioni anomale e lo scambio <strong>di</strong> dati tra gli attori partecipanti<br />
al processo. Non tutti gli <strong>strumenti</strong> <strong>BPM</strong> che andremo a valutare consentono<br />
l’esecuzione dei processi. Per questi ultimi la valutazione ovviamente non<br />
verrà eseguita.
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 109<br />
Tabella 4.4: Tabella valutazione configurazione <strong>di</strong> sistema<br />
C) Configurazione sistema <strong>BPM</strong><br />
C.1) Min RAM richiesta 0...1<br />
C.2) Min HD richiesto 0...1<br />
C.3) Multipiattaforma SI/NO<br />
C.4) Utilizzo DBMS SI/NO<br />
C.5) Intero<strong>per</strong>abilità dello strumento con sistemi esterni SI/NO<br />
C.6) Gestione del versionamento del modello <strong>di</strong> processo SI/NO<br />
C.7) Gestione del versionamento dell’applicazione SI/NO<br />
C.8) Sistema <strong>di</strong> cifratura dello strumento SI/NO<br />
C.9) Sistema <strong>di</strong> autenticazione dello strumento SI/NO<br />
C.10) Generazione <strong>di</strong> file <strong>di</strong> log sull’utilizzo SI/NO<br />
C.11) Controllo dell’accesso all’applicazione generata basato sui ruoli SI/NO<br />
C.12) Sistema <strong>di</strong> autenticazione dell’applicazione SI/NO<br />
C.13) Intero<strong>per</strong>abilità dell’applicazione con sistemi esterni SI/NO<br />
C.14) Storage sicuro dei dati SI/NO<br />
C.15) Mapping dei dati su DBMS esterni SI/NO<br />
Simulazione<br />
Questo fattore determina la presenza o meno della funzionalità <strong>di</strong>simulare<br />
il processo <strong>di</strong> business in modo da verificarne la correttezza dal punto<br />
<strong>di</strong> vista comportamentale e prestazionale. Infatti la simulazione può essere<br />
utilizzata sia <strong>per</strong> verificare se un processo <strong>di</strong> business si comporta nel<br />
modo atteso sia <strong>per</strong> valutare la capacità <strong>di</strong> essere conforme a certi requisiti<br />
prestazionali quali tempi <strong>di</strong> throughput, livelli <strong>di</strong> servizio e utilizzazione<br />
delle risorse, parametri che sono stati definiti in fase <strong>di</strong> <strong>analisi</strong> dei requisiti<br />
del processo <strong>di</strong> business. Ad esempio, quando versioni <strong>di</strong>fferenti dello stesso<br />
processo devono essere modellizzate, esse possono essere simulate <strong>per</strong> essere<br />
scelte prima che esse entrino nell’ambiente <strong>di</strong> produzione. Gli <strong>strumenti</strong> <strong>di</strong><br />
simulazione possono aiutare a determinare i costi delle attività in<strong>di</strong>viduali<br />
o anche dell’intero processo. Inoltre possono essere utilizzati <strong>per</strong> calcolare i<br />
tempi minimi e massimi <strong>di</strong> esecuzione del processo. La simulazione è utile<br />
in quanto è <strong>di</strong>fficile fare delle pre<strong>di</strong>zioni sul carico <strong>di</strong> lavoro effettivo che<br />
dovrà affrontare un processo <strong>di</strong> business ed èancorapiùcomplesso determinare<br />
quali attività <strong>di</strong> questo processo sono influenzati maggiormente dalla<br />
mancanza <strong>di</strong> conoscenza certa del carico <strong>di</strong> lavoro.<br />
Quando viene simulato un processo <strong>di</strong> business, un numero <strong>di</strong> casi devono<br />
essere preparati ed inseriti nel modello eseguibile <strong>di</strong> business. Inoltre lo<br />
stesso ambiente dove il processo sarà in esecuzione, viene simulato. L’ambi-
110 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
ente simulato, che include risorse, servizi e i loro caricamenti, può essere impostato<br />
in base all’es<strong>per</strong>ienza dell’utente o in base a dati storici <strong>di</strong> esecuzione.<br />
Esistono due tipi <strong>di</strong> <strong>strumenti</strong> <strong>di</strong> simulazione: quelli tra<strong>di</strong>zionali, che <strong>per</strong>mettono<br />
l’utilizzo solo <strong>di</strong> parametri definiti dall’utente, e quelli più innovativi<br />
che invece simulano i modelli <strong>di</strong> processo prendendo in considerazione anche<br />
i dati storici. Questi ultimi sono da preferire a quelli tra<strong>di</strong>zionali in quanto<br />
prendono in considerazione[20]:<br />
• il carico che caratterizza le risorse ed i servizi (possibilmente causati<br />
dall’esecuzione <strong>di</strong> <strong>di</strong>fferenti processi)<br />
• il carico sull’ambiente <strong>di</strong> esecuzione del prodotto <strong>BPM</strong><br />
• l’impatto dei cambiamenti che un processo provoca nei confronti degli<br />
altri <strong>strumenti</strong><br />
• dati storici, <strong>per</strong>tanto si elimina la necessità che l’utente generi dei dati<br />
casuali<br />
• deviazioni rispetto a me<strong>di</strong>a dei tempi <strong>di</strong> esecuzione, comportamento<br />
dell’ambiente <strong>di</strong> esecuzione e risorse<br />
In particolare nella valutazione vengono presi in considerazione nella fase<br />
<strong>di</strong> attivazione del processo due fattori:<br />
1. Disponibilità della simulazione<br />
2. Possibilità <strong>di</strong> <strong>per</strong>sonalizzare la configurazione della simulazione<br />
Il primo assegna un valore positivo nel caso lo strumento <strong>BPM</strong> preveda la<br />
possibilità <strong>di</strong> poter effettuare una simulazione. Il secondo valuta la possibilità<br />
<strong>di</strong> poter <strong>per</strong>sonalizzare la configurazione dello strumento <strong>di</strong> simulazione<br />
nei mo<strong>di</strong> descritti sopra, cioè sia immettendo dei parametri definiti<br />
dall’utente sia inserendo dati storici presi dalle esecuzioni <strong>di</strong> processi <strong>di</strong> business<br />
simili, in modo da rendere il carico <strong>di</strong> lavoro della simulazione molto<br />
simile a quello dello stesso processo messo in esecuzione da un <strong>BPM</strong> engine.<br />
Generazione <strong>di</strong> prototipi<br />
Questo fattore valuta la possibilità che il sistema <strong>BPM</strong> possa generare dei<br />
prototipi del processo <strong>di</strong> business. I prototipi <strong>di</strong> un processo <strong>di</strong> business<br />
rappresentano le interfacce con cui il processo interagisce con l’utente nelle<br />
attività orientate all’intervento umano. Generalmente questi prototipi vengono<br />
creati utilizzando <strong>strumenti</strong> <strong>di</strong> parti terze che creano interfacce <strong>di</strong> tipi
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 111<br />
<strong>di</strong>verse (ad. esempio sottoforma <strong>di</strong> moduli stand alone o moduli incorporati<br />
in interfacce Web). In particolare si valuta sia la presenza <strong>di</strong> un meccanismo<br />
<strong>di</strong> generazione automatica dei prototipi a partire dalle attività e dai dati<br />
definiti nel modello <strong>di</strong> processo <strong>di</strong> business sia del grado <strong>di</strong> configurabilitàdei<br />
prototipi stessi generati. Infatti alcuni prodotti <strong>BPM</strong> <strong>per</strong>mettono <strong>di</strong> generare<br />
un prototipo a partire da un’interfaccia standard non <strong>per</strong>sonalizzabile<br />
che racchiude tutti i campi dei dati definiti da una certa attività. Mentre<br />
altri <strong>strumenti</strong> <strong>BPM</strong> <strong>per</strong>mettono, <strong>per</strong> mezzo <strong>di</strong> parametri, <strong>di</strong> <strong>per</strong>sonalizzare<br />
i prototipi, ad esempio associare al prototipo la lista delle attività che ogni<br />
utente deve completare e i collegamenti alle applicazioni che servono <strong>per</strong><br />
completare queste attività. Un punteggio viene asseganto a questo fattore<br />
(da 0 a 1) in base a quanti parametri <strong>di</strong> <strong>per</strong>sonalizzazione dei prototipi mette<br />
a <strong>di</strong>sposizione lo strumento <strong>BPM</strong>.<br />
<strong>BPM</strong> engine<br />
L’engine <strong>di</strong> esecuzione dei processi <strong>di</strong> business incluso nelle suite <strong>BPM</strong> èresponsabile<br />
dell’esecuzione dei modelli eseguibili dei processi <strong>di</strong> business. Se i<br />
processi <strong>di</strong> business devono essere eseguiti in maniera efficiente allora la loro<br />
esecuzione deve essere ottimizzata secondo alcuni criteri misurabili, quali<br />
i costi, tempo <strong>di</strong> esecuzione del processo o sod<strong>di</strong>sfazione dell’utente finale.<br />
Questo può essere fatto attraverso il raggiungimento <strong>di</strong> una configurazione<br />
ottima del sistema, l’assegnamento delle risorse e l’adattamento <strong>di</strong>namico<br />
del processo [7]. Inoltre la struttura del processo <strong>di</strong> business può anche essere<br />
cambiata. Questo accade quando l’esecuzione del processo <strong>di</strong> business<br />
mostra inefficienza e quando l’<strong>analisi</strong> <strong>di</strong> questo mostra margini sostanziali<br />
<strong>di</strong> miglioramento. Infine l’engine <strong>di</strong> business si occupa del calcolo delle KPI<br />
(che vedremo nei paragrafi successivi) in quanto deve fare in modo che il<br />
processo venga eseguito nel modo più efficiente possibile. Quando un processo<br />
<strong>di</strong> business viene eseguito, l’engine <strong>BPM</strong> crea un’istanza del processo<br />
stesso assegnandoli dei valori iniziali alle sue variabili. Questa istanza viene<br />
eseguita utilizzando sia i dati passati al processo sia i dati generati dalle<br />
attività del processo. Quando l’istanza <strong>di</strong> processo viene completata oppure<br />
trascorre un <strong>per</strong>iodo temporale definito dall’utente, questa viene cancellata,<br />
deallocando le risorse che erano state assegnate all’istanza <strong>per</strong> la sua<br />
corretta esecuzione. Durante l’esecuzione del processo, l’engine <strong>BPM</strong> deve<br />
essere in grado <strong>di</strong> poter generare dei file <strong>di</strong> log in modo tale da tenere traccia<br />
delle informazioni relative al processo quali valori <strong>di</strong> KPI, informazioni sugli<br />
utenti, sulle attività e sui tempi <strong>di</strong> esecuzione. Per mettere in esecuzione<br />
un processo, il <strong>BPM</strong> engine deve essere in grado <strong>di</strong> selezionare le attività in
112 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
modo tale da poter determinare le risorse e gli <strong>strumenti</strong> richieste, la loro<br />
attivazione e terminazione.<br />
Durante l’esecuzione, l’engine <strong>BPM</strong> deve determinare quali attori (umani<br />
o <strong>di</strong> sistema) devono eseguire una certa attività. Questa scelta può essere<br />
fatta secondo <strong>di</strong>verse modalità:<br />
• secondo regole <strong>di</strong> business (business rules) predefinite dal progettista<br />
del progetto<br />
• secondo delle priorità (certe attività possono avere priorità <strong>di</strong> esecuzione<br />
più alta rispetto ad altre e quin<strong>di</strong> essere eseguite rispetto ad<br />
altre a priorità più bassa)<br />
• secondo dei ruoli definiti <strong>per</strong> le attività in base alle risorse <strong>di</strong>sponibili<br />
<strong>per</strong> eseguirle<br />
• secondo eventi (infatti al verificarsi <strong>di</strong> un evento, l’attività può essere<br />
eseguita da attori <strong>di</strong>versi invece che essere eseguita dagli attori<br />
predefiniti <strong>per</strong> quella attività)<br />
Un’altra funzionalità che dovrebbe caratterizzare un <strong>BPM</strong> engine èla<br />
sua capacità nel gestire le eccezioni che potrebbero essere sollevate durante<br />
l’esecuzione <strong>di</strong> un processo <strong>di</strong> business. Infatti non tutti i processi <strong>di</strong> business<br />
vengono eseguiti come sono stati definiti ma circa l’80% del tempo viene<br />
speso dal <strong>BPM</strong> engine <strong>per</strong> gestire le eccezioni e le situazioni <strong>di</strong> failures, in<br />
modo da assicurare un’esecuzione affidabile del processo <strong>di</strong> business [17].<br />
Secondo [9], esistono tre tipi <strong>di</strong>versi <strong>di</strong> failures in un ambiente <strong>di</strong> workflow<br />
che sono ancora rilevanti in un ambiente <strong>BPM</strong> e che dovrebbero essere gestite<br />
da un <strong>BPM</strong> engine:<br />
1. Failure dell’engine <strong>di</strong> esecuzione dei processi <strong>di</strong> business: questo porta<br />
ad una terminazione anomala dell’esecuzione del processo <strong>di</strong> business.<br />
Per questo il <strong>BPM</strong> engine deve essere in grado <strong>di</strong> salvare gli stati <strong>di</strong><br />
esecuzione <strong>di</strong> un processo in un database <strong>di</strong> processo. Il salvataggio <strong>di</strong><br />
questi dati <strong>per</strong>mette <strong>di</strong> ripristinare lo stato <strong>di</strong> esecuzione <strong>di</strong> un processo<br />
<strong>di</strong> business a seguito <strong>di</strong> una failure dell’engine stesso.<br />
2. Failure dell’attività: questa failure avviene all’interno dell’attività stessa.<br />
Può essere <strong>di</strong> tre tipi: il primo viene causato da una failure dell’applicazione<br />
e porta ad una terminazione anomala dell’attività. In questo<br />
caso il <strong>BPM</strong> engine deve implementare un meccanismo <strong>di</strong> rollback, in<br />
modo da rimuovere tutti i risultati inconsistenti delle esecuzioni dei<br />
processi, e un meccanismo <strong>di</strong> esecuzione avanzata, il quale <strong>per</strong>mette
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 113<br />
<strong>di</strong> riprendere l’esecuzione dell’attività dal punto <strong>di</strong> consistenza più vicino.<br />
Il secondo tipo <strong>di</strong> failure è <strong>di</strong> tipo semantico: il <strong>BPM</strong> engine<br />
deve essere in grado <strong>di</strong> applicare le regole <strong>per</strong> gestire le eccezioni che<br />
sono state definite in fase <strong>di</strong> modellazione. Il terzo tipo sono le eccezioni<br />
comportamentali: queste sono il risultato dell’esecuzione non<br />
or<strong>di</strong>nata <strong>di</strong> attività <strong>di</strong> processo. Il <strong>BPM</strong> engine in questo caso deve introdurre<br />
dei meccanismi <strong>per</strong> attivare dei trigger in modo da ristabilire<br />
a posteriori l’or<strong>di</strong>ne <strong>di</strong> esecuzione delle attività.<br />
3. Failure <strong>di</strong> comunicazione: avviene quando vi sono problemi <strong>di</strong> comunicazione<br />
(scambio <strong>di</strong> dati) tra il prodotto <strong>BPM</strong> e le attività del processo.<br />
Ad esempio questo può avvenire quando un’attività deve salvare dei<br />
dati in qualche tabella <strong>di</strong> database e il dato passato dal processo al<br />
DBMS non è in un formato valido. Il <strong>BPM</strong> engine deve essere in grado<br />
<strong>di</strong> gestire tali situazioni.<br />
La valutazione del <strong>BPM</strong> engine riguarda innanzitutto la presenza <strong>di</strong><br />
questo strumento nel prodotto <strong>BPM</strong> in esame e nella versione <strong>di</strong> valutazione<br />
del prodotto stesso. Due sono i fattori importanti in questa valutazione:<br />
1. la presenza <strong>di</strong> un <strong>BPM</strong> engine associato al prodotto in valutazione<br />
2. possibilità <strong>di</strong> eseguire il processo su altri <strong>BPM</strong> engine<br />
Quest’ultimo caso presume che gli engine considerati siano in grado <strong>di</strong> leggere<br />
correttamente i formati <strong>di</strong> esecuzione dei vari modelli <strong>di</strong> processi <strong>di</strong><br />
business quale, ad esempio, BPEL4WS.<br />
Tabella riassuntiva della valutazione della fase <strong>di</strong> attivazione del<br />
processo <strong>di</strong> business<br />
Abbiamo descritto i 6 fattori <strong>di</strong> valutazione che abbiamo preso in considerazione<br />
<strong>per</strong> quanto concerne la fase <strong>di</strong> attivazione. In tabella 4.5 schematizziamo<br />
questi fattori in<strong>di</strong>cando i valori che possono assumere:<br />
4.4.5 Analisi del processo <strong>di</strong> business<br />
Questa fase del ciclo <strong>di</strong> vita <strong>di</strong> un <strong>BPM</strong> èquellache<strong>per</strong>mette<strong>di</strong>analizzare<br />
l’esecuzione <strong>di</strong> un processo <strong>di</strong> business. In questa categoria <strong>di</strong> valutazione<br />
si cerca <strong>di</strong> valutare o meno la presenza <strong>di</strong> <strong>strumenti</strong> importanti ai fini dell’<strong>analisi</strong><br />
<strong>di</strong> un processo <strong>di</strong> business. Questi <strong>strumenti</strong> come vedremo tra breve<br />
possono essere <strong>di</strong> tipo attivo o passivo in base se mostrano dati relativi al<br />
processo in tempo reale o a processo concluso. Entrambi gli <strong>strumenti</strong> sono
114 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
Tabella 4.5: Tabella valutazione attivazione processo <strong>di</strong> business<br />
D)Attivazione del processo <strong>di</strong> business<br />
D.1) Disponibilità della simulazione SI/NO<br />
D.2) Possibilità <strong>di</strong> <strong>per</strong>sonalizzare la configurazione della simulazione SI/NO<br />
D.3) Generazione automatica dei prototipi SI/NO<br />
D.4) Grado <strong>di</strong> configurabilità dei prototipi 0...1<br />
D.5) <strong>BPM</strong> Engine associato SI/NO<br />
D.6) Possibilità <strong>di</strong> eseguire il processo su altri <strong>BPM</strong> engine SI/NO<br />
<strong>di</strong> fondamentale importanza a due categorie <strong>di</strong> utenti: gli analisti <strong>di</strong> business<br />
e gli analisti-sviluppatori. I primi dall’utilizzo <strong>di</strong> questi <strong>strumenti</strong> possono<br />
estrarre informazioni utili ai fini del miglioramento del processo <strong>di</strong> business<br />
a livello concettuale mentre i secon<strong>di</strong> possono utilizzare questi <strong>strumenti</strong><br />
<strong>per</strong> analizzare le problematiche prestazionali dei processi, che poi verranno<br />
corrette nelle future revisioni <strong>di</strong> implementazione dei processi stessi.<br />
Monitoraggio della simulazione<br />
Un sistema <strong>di</strong> monitoraggio della simulazione <strong>per</strong>mette <strong>di</strong> evidenziare quali<br />
siano i bottleneck durante l’esecuzione <strong>di</strong> un processo all’interno <strong>di</strong> un simulatore.<br />
Se quest’ultimo fosse dotato <strong>di</strong> parametri precisi sul carico <strong>di</strong> lavoro<br />
allora il sistema <strong>di</strong> monitoraggio mostrerà dei valori abbastanza fedeli a quelli<br />
ottenuti quando il processo <strong>di</strong> business verrà eseguito in produzione. La<br />
valutazione in questo caso consiste nella presenza o meno dello strumento.<br />
Business Cockpit<br />
Un business cockpit è uno strumento che fa parte <strong>di</strong> quella classe <strong>di</strong> applicazioni<br />
che prendono il nome <strong>di</strong> applicazioni <strong>di</strong> “Business Process Intelligence”.<br />
Queste applicazioni supportano i processi <strong>di</strong> business e le decisioni<br />
sull’IT sia in tempo reale che offline con l’obiettivo <strong>di</strong> migliorare la qualità<br />
dei processi <strong>di</strong> business [32]. Un sistema <strong>di</strong> business cockpit o<strong>per</strong>a secondo le<br />
modalità <strong>di</strong> warehousing dei dati e o<strong>per</strong>a con tecniche <strong>di</strong> data mining sui dati<br />
<strong>di</strong> processi messi in esecuzione: quin<strong>di</strong> o<strong>per</strong>ano un monitoraggio passivo dei<br />
processi <strong>di</strong> business utilizzando tecnologie <strong>di</strong> tipo pull <strong>per</strong> recu<strong>per</strong>are i dati.<br />
I processi <strong>di</strong> business si <strong>di</strong>fferenziano <strong>per</strong> determinate caratteristiche quali<br />
i volumi <strong>di</strong> carico, il coinvolgimento <strong>di</strong> più compagnie durante l’esecuzione,<br />
il fatto che forniscono valori <strong>di</strong> business che impattano significativamente<br />
sull’andamento della compagnia in quanto sono relativi alle ven<strong>di</strong>te, agli acquisti,<br />
ai profitti e ai ricavati. Queste caratteristiche richiedono dei rispettivi
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 115<br />
requisiti in modo da essere valutati da <strong>strumenti</strong> <strong>di</strong> <strong>analisi</strong> dei processi quali<br />
il business cockpit. Questi requisiti prendono il nome <strong>di</strong> in<strong>di</strong>catori del livello<br />
<strong>di</strong> business. Questi in<strong>di</strong>catori <strong>per</strong>mettono agli analisti <strong>di</strong> business <strong>di</strong><br />
analizzare e <strong>di</strong> migliorare costantemente il processo <strong>di</strong> business in esame.<br />
Affinchè un business cockpit possa analizzare le caratteristiche <strong>di</strong> un processo<br />
<strong>di</strong> business attraverso i corrispettivi in<strong>di</strong>catori deve possedere le seguenti<br />
caratteristiche:<br />
• deve essere progettato in modo tale che un analista <strong>di</strong> business possa<br />
facilmente definire ed estrarre le metriche a livello <strong>di</strong> business dai dati<br />
in esecuzione, nascondendo i dettagli del processo<br />
• deve fornire un’<strong>analisi</strong> semantica dei dati in modo tale che gli analisti<br />
<strong>di</strong> business possano definire nuovi concetti e visualizzare i dati secondo<br />
questi concetti<br />
• deve <strong>per</strong>mettere agli analisti <strong>di</strong> business <strong>di</strong> creare una grande varietà<br />
<strong>di</strong> report sui dati <strong>di</strong> esecuzione del processo e determinare il modo<br />
migliore <strong>di</strong> presentare questi dati<br />
Un business cockpit visualizza i dati <strong>di</strong> esecuzione <strong>di</strong> un processo secondo<br />
<strong>di</strong>fferenti punti <strong>di</strong> vista. Ogni punto <strong>di</strong> vista rappresenta l’entità del processo<br />
che viene preso in considerazione dall’analista <strong>di</strong> business. Nell’<strong>analisi</strong> a<br />
livello <strong>di</strong> business sono stati in<strong>di</strong>viduati i seguenti punti <strong>di</strong> vista:<br />
• Processi: mostra informazioni inerenti un processo specifico oppure un<br />
insieme <strong>di</strong> processi<br />
• Risorse: mostra i dati relativi ad una risorsa in<strong>di</strong>viduale oppure ad un<br />
gruppo <strong>di</strong> risorse. <strong>Una</strong> risorsa può essere umana oppure un componente<br />
software che partecipa all’esecuzione delle attività del processo<br />
• Servizi: mostra i dati relativi ai servizi invocati durante l’esecuzione del<br />
processo in modo da realizzare attività in<strong>di</strong>viduali definite del processo<br />
Per ogni punto <strong>di</strong> vista descritto, il business cockpit presenta le informazioni<br />
statistiche e informazioni aventi valore orientato al business quali costi e<br />
ricavi. Inoltre deve <strong>per</strong>mettere <strong>di</strong> aggregare questi dati <strong>per</strong> poter ricavare<br />
informazione utile da <strong>di</strong>verse prospettive (ad esempio temporali).<br />
Nella valutazione <strong>di</strong> questo fattore pren<strong>di</strong>amo in considerazione tre parametri<br />
1. Presenza <strong>di</strong> un business cockpit<br />
2. Configurabilità business cockpit
116 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
3. Livello <strong>di</strong> dettaglio business cockpit<br />
Il primo valuta la presenza o meno dello strumento nello strumento <strong>BPM</strong><br />
in esame. La sua presenza influenzerà la valutazione dell’utente analista<br />
<strong>di</strong> business, che vedremo nel corso del capitolo. Il grado <strong>di</strong> configurabilità<br />
riguarda la possibilità <strong>di</strong> definire in<strong>di</strong>catori del livello <strong>di</strong> business e report<br />
<strong>per</strong>sonalizzati in modo tale che possano fornire informazioni significative<br />
circa il particolare processo <strong>di</strong> business preso in considerazione. Per quanto<br />
concerne l’ultimo parametro, è importante comprendere a che livello <strong>di</strong> dettaglio<br />
possono essere mostrati i dati in particolare in riferimento ai punti <strong>di</strong><br />
vista e alle prospettive <strong>di</strong> cui abbiamo appena <strong>di</strong>scusso.<br />
Console <strong>di</strong> amministrazione <strong>di</strong> un processo<br />
La console <strong>di</strong> amministrazione <strong>di</strong> un processo consente <strong>di</strong> configurare l’esecuzione<br />
<strong>di</strong> un processo <strong>di</strong> business che deve essere eseguito. Le mo<strong>di</strong>fiche che<br />
vengono effettuate riguardano solo i processi correnti in esecuzione e non il<br />
modello <strong>di</strong> processo <strong>di</strong> business da cui essi derivano. Questo fattore della<br />
valutazione si occupa appunto <strong>di</strong> valutare la presenza <strong>di</strong> un simile strumento<br />
icuicompitisono:<br />
• gestire l’evoluzione dell’istanza <strong>di</strong> processo rispetto al modello <strong>di</strong> processo<br />
<strong>di</strong> business. Questa evoluzione del processo può avvenire: cambiando<br />
il ruolo o la risorsa richiesta <strong>per</strong> una attività, cambiare i ruoli<br />
agli utenti, cambiare la struttura organizzativa, cambiare le pre-con<strong>di</strong>zioni<br />
aggiungendone un’altra o aggiungendo dei pre-requisiti, eliminare le <strong>di</strong>ramazioni<br />
problematiche del processo aggiungendone altre, aggiungere<br />
o rimuovere attività<br />
• aggiungere gestori <strong>di</strong> eccezioni e rimuoverne altri<br />
• canbiare le regole <strong>di</strong> business<br />
• cambiare la struttura delle attività<br />
• cambiare il bilanciamento <strong>di</strong> workload tra gli utenti<br />
La presenza o meno <strong>di</strong> tale console <strong>di</strong> amministrazione riguarda la valutazione<br />
<strong>di</strong> questo fattore.<br />
Monitoraggio attività del processo<br />
Un sistema <strong>di</strong> monitoraggio dell’attività <strong>di</strong> processo, detto anche BAM<br />
(Business Activity Monitoring), <strong>per</strong>mette <strong>di</strong> monitorare l’andamento delle
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 117<br />
attività dei processi in esecuzione in tempo reale. Permette <strong>di</strong> visualizzare<br />
quali attività non sono state ancora eseguite e quali invece sono state eseguite<br />
e da chi, quali attività violano qualche vincolo <strong>di</strong> esecuzione generando<br />
delle eccezioni, lo stato generale del processo e le eventuali anomalie che<br />
possono portare all’in<strong>di</strong>viduazione <strong>di</strong> eventuali bottleneck nel processo. Il<br />
monitoraggio avviene in tempo reale ed è solitamente l’amministratore o il<br />
responsabile del processo ad accedere a queste informazioni. Per questo motivo<br />
il monitoraggio <strong>di</strong> un BAM viene detto anche monitoraggio attivo <strong>di</strong> un<br />
processo <strong>di</strong> business in quanto utilizza tecnologie <strong>di</strong> tipo push <strong>per</strong> poter visualizzare<br />
i dati del processo <strong>di</strong> business in esecuzione in tempo reale. Questo<br />
viene fatto monitorando i file <strong>di</strong> log generati dallo strumento <strong>BPM</strong>, raccogliendo<br />
metriche <strong>di</strong> <strong>per</strong>formance come ad esempio il tempo <strong>di</strong> esecuzione<br />
<strong>di</strong> un processo e calcolando le KPI definite. Tipicamente tutte queste informazioni<br />
vengono visualizzate in una dashboard. Dal punto <strong>di</strong> vista della<br />
valutazione è importante valutare la presenza o meno <strong>di</strong> questo strumento in<br />
quanto questo influenza la valutazione dell’utente analista-programmatore<br />
che vedremo successivamente, oltre che determinare il grado <strong>di</strong> completezza<br />
<strong>di</strong> una suite <strong>BPM</strong>.<br />
Monitoraggio degli in<strong>di</strong>catori KPI<br />
I KPI, o Key Performance In<strong>di</strong>cator, sono in<strong>di</strong>catori che possono caratterizzare<br />
o il singolo processo <strong>di</strong> business in esecuzione oppure possono riferirsi<br />
a gruppi <strong>di</strong> processi <strong>di</strong> business. Questi in<strong>di</strong>catori dovrebbero possedere un<br />
valore obiettivo desiderato da mantenere o da raggiungere, in modo che durante<br />
il monitoraggio, sia attivo che passivo, sia possibile confrontare il valore<br />
KPI desiderato da quello ottenuto dal processo in esecuzione. I KPI possono<br />
essere definiti <strong>per</strong> misurare le caratteristiche delle istanze <strong>di</strong> processo,<br />
del processo, delle risorse o delle o<strong>per</strong>azioni <strong>di</strong> business nel loro complesso.<br />
Esempi <strong>di</strong> KPI <strong>di</strong> interesse possono essere la quantità <strong>di</strong> esecuzioni terminate<br />
senza errori <strong>di</strong> un processo <strong>di</strong> business rispetto alla quantità totale<br />
delle esecuzioni del processo, oppure la quantità <strong>di</strong> risorse umane impiegate<br />
<strong>per</strong> terminare un certo processo <strong>di</strong> business rispetto alla quantità <strong>di</strong>risorse<br />
<strong>di</strong>sponibili.<br />
Un sistema <strong>di</strong> monitoraggio in tempo reale <strong>per</strong>mette <strong>di</strong> avere sempre<br />
una visione completa dei KPI definiti <strong>per</strong> il processo e <strong>di</strong> monitorare i suoi<br />
valori. Il criterio <strong>di</strong> valutazione mira a mostrare la presenza o meno <strong>di</strong> questo<br />
strumento che spesso completa un sistema BAM precedentemente descritto.
118 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
Tabella riassuntiva della valutazione della fase <strong>di</strong> <strong>analisi</strong> del processo<br />
<strong>di</strong> business<br />
Abbiamo descritto i 7 fattori <strong>di</strong> valutazione che abbiamo preso in considerazione<br />
<strong>per</strong> quanto concerne la fase <strong>di</strong> <strong>analisi</strong>. In tabella 4.6 schematizziamo<br />
questi fattori in<strong>di</strong>cando i valori che possono assumere:<br />
Tabella 4.6: Tabella valutazione <strong>analisi</strong> processo <strong>di</strong> business<br />
E)Analisi processo <strong>di</strong> business<br />
E.1) Strumenti <strong>di</strong> monitoraggio della simulazione del processo SI/NO<br />
E.2) Presenza <strong>di</strong> un business cockpit SI/NO<br />
E.3) Configurabilità business cockpit 0...1<br />
E.4) Livello <strong>di</strong> dettaglio business cockpit 0...1<br />
E.5) Console <strong>di</strong> amministrazione del processo SI/NO<br />
E.6) Monitoraggio attività <strong>di</strong> processo (BAM) SI/NO<br />
E.7) Monitoraggio <strong>di</strong> In<strong>di</strong>catori <strong>di</strong> KPI SI/NO<br />
4.4.6 Usabilità dello strumento <strong>BPM</strong><br />
Nell’ingegneria informatica l’usabilità è la <strong>di</strong>sciplina che stabilisce gli standard<br />
<strong>di</strong> progettazione <strong>di</strong> un software dal punto <strong>di</strong> vista dell’es<strong>per</strong>ienza dell’utente.<br />
Non è sufficiente che l’utente possieda un determinato software ma<br />
deve essere messo nella possibilità <strong>di</strong> utilizzarlo al meglio. Questa categoria<br />
<strong>di</strong> <strong>analisi</strong> è stata appunto pensata <strong>per</strong> tenere in considerazione l’aspetto<br />
dell’es<strong>per</strong>ienza utente nella valutazione dello strumento <strong>BPM</strong>, estendendo<br />
quin<strong>di</strong> le categorie <strong>di</strong> valutazione del ciclo <strong>di</strong> vita <strong>di</strong> un <strong>BPM</strong> definito in<br />
precedenza. Come vedremo in dettaglio i dati <strong>di</strong> questa <strong>analisi</strong> si riferiscono<br />
ai casi <strong>di</strong> stu<strong>di</strong>o che sono stati effettuati nella valutazione degli <strong>strumenti</strong>.<br />
In questo paragrafo an<strong>di</strong>amo a delinearne i contenuti.<br />
Facilità <strong>di</strong> download<br />
Questo parametro <strong>di</strong> valutazione è stato pensato <strong>per</strong> valutare l’es<strong>per</strong>ienza<br />
utente <strong>per</strong>cepita durante la fase <strong>di</strong> download del prodotto dal sito web del<br />
produttore. Sono stati presi in considerazione due fattori:<br />
• <strong>di</strong>fficoltà nel re<strong>per</strong>ire il prodotto in versione trial<br />
• <strong>di</strong>fficoltà nella fase <strong>di</strong> download del prodotto
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 119<br />
Nel primo caso la richiesta <strong>di</strong> valutazione del prodotto ha portato a delle<br />
<strong>di</strong>fficoltà nel re<strong>per</strong>irlo. Queste <strong>di</strong>fficoltà sono dovute, ad esempio, al fatto <strong>di</strong><br />
dover fare richiesta esplicita al produttore invece <strong>di</strong> poter fare la richiesta<br />
attraverso un meccanismo automatizzato.<br />
Il secondo caso riguarda invece le <strong>di</strong>fficoltà <strong>di</strong> effettuare l’o<strong>per</strong>azione <strong>di</strong><br />
download del prodotto come la compilazione <strong>di</strong> form più o meno lunghi,<br />
server del produttore down, lentezza nell’effettuare il download.<br />
Facilità <strong>di</strong> installazione<br />
Questo parametro cerca <strong>di</strong> dare una valutazione al grado <strong>di</strong> facilità <strong>di</strong>installazione<br />
del prodotto. Vi sono prodotti la cui installazione non richiede<br />
la presenza <strong>di</strong> componenti aggiuntivi affinchè lo strumento <strong>BPM</strong> funzioni<br />
mentre altri richiedono la presenza <strong>di</strong> applicazioni terze e <strong>di</strong> particolari configurazioni<br />
della macchina affinchè possano essere installati. In quest’ultimo<br />
caso, il processo <strong>di</strong> installazione del sistema <strong>BPM</strong> può rivelarsi complesso<br />
agli utenti meno es<strong>per</strong>ti.<br />
Facilità <strong>di</strong> appren<strong>di</strong>mento<br />
Questo parametro valuta il grado <strong>di</strong> semplicità nell’apprendere l’utilizzo<br />
dello strumento <strong>BPM</strong> e delle sue funzionalità. È un parametro che viene<br />
valutato a seguito del caso <strong>di</strong> stu<strong>di</strong>o effettuato sullo strumento. In particolare<br />
come metro <strong>di</strong> valutazione si tiene in considerazione il tempo che è<br />
stato necessario <strong>per</strong> implementare il modello <strong>di</strong> riferimento correttamente.<br />
Questo è un fattore <strong>di</strong> usabilità parecchio importante ai fini della valutazione<br />
in quanto determina il successo o meno del prodotto <strong>per</strong> gli utenti che non<br />
hanno competenze informatiche specifiche (come gli analisti <strong>di</strong> business).<br />
Facilità <strong>di</strong> utilizzo dello strumento <strong>di</strong> modellazione<br />
Questo parametro valuta l’es<strong>per</strong>ienza utente nell’utilizzare lo strumento <strong>di</strong><br />
modellazione. Diversi fattori possono influenzare questa valutazione:<br />
• <strong>di</strong>fficoltà nel posizionare gli elementi nel modello a causa <strong>di</strong> vincoli<br />
grafici troppo stringenti<br />
• <strong>di</strong>fficoltà nell’in<strong>di</strong>viduare gli elementi con cui costruire il modello<br />
• <strong>di</strong>fficoltà nel specificare le proprietà <strong>di</strong> un elemento del modello
120 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
Facilità nel generare l’applicazione<br />
Questo fattore in<strong>di</strong>ca il grado <strong>di</strong> <strong>di</strong>fficoltà nel generare un’applicazione funzionante<br />
a partire dal modello <strong>di</strong> processo. Ci sono <strong>strumenti</strong> <strong>BPM</strong> che una<br />
volta definiti tutti i parametri del modello generano automaticamente l’applicazione<br />
che potrà essere subito messa in esecuzione. Altri ancora <strong>per</strong>mettono<br />
il controllo completo nella generazione dell’applicazione, richiedendo<br />
esplicitamente <strong>di</strong> dover progettare ad esempio le form <strong>per</strong> l’inserimento dei<br />
dati in input. Infine ci sono <strong>strumenti</strong> <strong>BPM</strong> che non consentono proprio la<br />
generazione del modello. Dalla <strong>di</strong>fficoltà con cui si genera e dalle competenze<br />
richieste <strong>per</strong> poterla generare deriva il punteggio <strong>per</strong> questo fattore.<br />
Grado <strong>di</strong> <strong>per</strong>sonalizzazione dello strumento<br />
Questo fattore in<strong>di</strong>ca quanto lo strumento <strong>BPM</strong> è <strong>per</strong>sonalizzabile da parte<br />
dell’utente. Si tiene conto sia dello strumento <strong>di</strong> modellazione, prendendo<br />
in considerazione ad esempio la possibilità o meno <strong>di</strong> poter aggiugere<br />
degli elementi <strong>per</strong>sonalizzati nel modello oppure <strong>di</strong> poter mo<strong>di</strong>ficare la <strong>di</strong>sposizione<br />
degli <strong>strumenti</strong> nell’ambiente <strong>di</strong> modellazione, sia degli <strong>strumenti</strong><br />
<strong>di</strong> gestione, <strong>analisi</strong> e messa in esecuzione del processo <strong>di</strong> business.<br />
Utilizzo prima <strong>di</strong> essere produttivi<br />
Questo fattore viene calcolato in base al tempo che è stato necessario <strong>per</strong><br />
apprendere le funzionalità dello strumento in modo da essere produttivi<br />
con esso. <strong>Una</strong> curva <strong>di</strong> appren<strong>di</strong>mento dello strumento molto lunga in<strong>di</strong>ca<br />
che lo strumento contiene una molteplicità <strong>di</strong> funzioni che vanno prima<br />
comprese <strong>per</strong> poterlo utilizzare oppure che lo strumento è stato mal progettato<br />
dal punto <strong>di</strong> vista dell’usabilità. In entrambi i casi questo porta ad<br />
una valutazione negativa dello strumento dal punto <strong>di</strong> vista dell’es<strong>per</strong>ienza<br />
dell’utente. Uno strumento ben progettato porta un utente a modellare e<br />
mettere in esecuzione un processo <strong>di</strong> business in breve tempo.<br />
Disponibilità <strong>di</strong> documentazione<br />
La <strong>di</strong>sponibilità <strong>di</strong> documentazione è un fattore fondamentale nell’appren<strong>di</strong>mento<br />
dello strumento <strong>BPM</strong>. Le risorse possono provenire da risorse online,<br />
documentazione elettronica inclusa nello strumento <strong>BPM</strong>, esempi <strong>di</strong> casi<br />
d’uso e tutorial. È chiaro come la presenza o meno <strong>di</strong> documentazione influenzi<br />
gli altri fattori <strong>di</strong> usabilità fin’ora utilizzati. Inoltre questo fattore<br />
non valuta solo la presenza o meno <strong>di</strong> documentazione ma anche la sua reale<br />
efficacia.
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 121<br />
Utilizzo dell’engine<br />
Questo fattore in<strong>di</strong>ca la facilità <strong>di</strong> installazione, configurazione ed utilizzo<br />
del <strong>BPM</strong> engine ove questo sia <strong>di</strong>sponibile. La valutazione <strong>di</strong> questo<br />
fattore prende in considerazione il tempo impiegato sia <strong>per</strong> la sua corretta<br />
installazione e configurazione sia il tempo impiegato <strong>per</strong> poter eseguire<br />
correttamente il modello <strong>di</strong> processo <strong>di</strong> business preso in considerazione.<br />
Tabella riassuntiva della valutazione dell’usabilità del processo <strong>di</strong><br />
business<br />
Abbiamo descritto i 9 fattori <strong>di</strong> valutazione che abbiamo preso in considerazione<br />
<strong>per</strong> quanto concerne l’usabilità <strong>di</strong> un sistema <strong>BPM</strong>. In tabella 4.7<br />
schematizziamo questi fattori in<strong>di</strong>cando i valori che possono assumere.<br />
Tabella 4.7: Tabella valutazione usabilità strumento <strong>BPM</strong><br />
F)Usabilità dellostrumento<strong>BPM</strong><br />
F.1) Facilità <strong>di</strong> download 0...1<br />
F.2) Facilità <strong>di</strong> installazione 0...1<br />
F.3) Facilità <strong>di</strong> appren<strong>di</strong>mento 0...1<br />
F.4) Facilità <strong>di</strong> utilizzo dello strumento <strong>di</strong> modellazione 0...1<br />
F.5) Facilità nel generare l’applicazione 0...1<br />
F.6) Grado <strong>di</strong> <strong>per</strong>sonalizzazione dello strumento 0...1<br />
F.7) Utilizzo prima <strong>di</strong> essere produttivi 0...1<br />
F.8) Disponibilità <strong>di</strong> documentazione SI/NO<br />
F.9) Utilizzo dell’engine 0...1<br />
4.4.7 Utenti target <strong>per</strong> l’utilizzo dello strumento <strong>BPM</strong><br />
Questa categoria <strong>di</strong> valutazione mira a comprendere a quale target <strong>di</strong> utenti<br />
è rivolto lo strumento <strong>BPM</strong>. Sono state in<strong>di</strong>viduate tre categorie <strong>di</strong> utenti<br />
tipo <strong>di</strong> uno strumento <strong>BPM</strong>: l’analista <strong>di</strong> business, gli sviluppatori e gli<br />
analisti-sviluppatori. Di seguito andremo a caratterizzare le categorie <strong>di</strong><br />
utenti appena citate.<br />
Analisti <strong>di</strong> business<br />
Il ruolo <strong>di</strong> un’analista <strong>di</strong> business è quello <strong>di</strong> essere un es<strong>per</strong>to nell’analizzare<br />
il contesto entro il quale deve raccogliere i requisiti <strong>per</strong> poter modellizzare
122 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
un processo <strong>di</strong> business; questo viene fatto al fine <strong>di</strong> creare un processo exnovo,<br />
<strong>di</strong> ottimizzarne uno già esistente, definire un modello informativo ad<br />
alto livello ed uno organizzativo, definire i requisiti prestazionali del processo<br />
<strong>di</strong> business, controllare lo stato del processo in esecuzione, analizzare<br />
a posteriori i risultati ottenuti dall’esecuzione del processo <strong>di</strong> business. È<br />
una figura che non sempre possiede competenze informatiche. Per questo<br />
motivo un strumento <strong>BPM</strong> <strong>per</strong> venire incontro a tale figura professionale<br />
deve presentare funzionalità tali da poter <strong>per</strong>mettere la documentazione e<br />
la progettazione del processo ad alto livello, la sua verifica <strong>di</strong> funzionamento<br />
durante l’esecuzione, ed essere in grado <strong>di</strong> interagire con sistemi esterni<br />
(ERP, sistemi <strong>di</strong> gestione <strong>di</strong> progetto,ecc.) che vengono abitualmente utilizzati<br />
da un analista <strong>di</strong> business. Dal punto <strong>di</strong> vista della valutazione dello<br />
strumento <strong>BPM</strong> vengono presi in considerazione quattro fattori:<br />
1. Possibilità <strong>di</strong> generare della documentazione riguardante il processo <strong>di</strong><br />
business<br />
2. Presenza dello strumento <strong>di</strong> progettazione ad alto livello<br />
3. Presenza <strong>di</strong> un sistema <strong>di</strong> verifica a livello semantico del modello <strong>di</strong><br />
business progettato<br />
4. Possibilità <strong>di</strong> interazione con sistemi esterni che supportano la gestione<br />
del processo <strong>di</strong> business<br />
Nel primo caso, un sistema <strong>BPM</strong> dovrebbe essere in grado <strong>di</strong> generare della<br />
documentazione che descriva sia il modello del processo <strong>di</strong> business progettato<br />
con una tecnica ad alto livello, in modo che sia comprensibile da<br />
ogni attore interessato al processo, sia che descriva i risultati <strong>di</strong> esecuzione<br />
del processo, come ad esempio l’aderenza ai KPI definiti nel processo. Nel<br />
secondo caso deve essere presente un e<strong>di</strong>tor che <strong>per</strong>metta all’analista <strong>di</strong> business<br />
<strong>di</strong> poter descrivere il processo <strong>di</strong> business utilizzando un linguaggio ad<br />
alto livello. Questo modello deve poter essere verificato a livello semantico.<br />
Inoltre, come è stato già detto, lo strumento <strong>BPM</strong> deve essere in grado <strong>di</strong><br />
interagire con gli <strong>strumenti</strong> che supportano la progettazione e l’<strong>analisi</strong> del<br />
processo <strong>di</strong> business.<br />
Sviluppatori<br />
Il ruolo degli sviluppatori nel contesto del business process management è<br />
quello <strong>di</strong> progettare gli automatismi caratterizzanti le attività del sistema<br />
<strong>di</strong> un processo <strong>di</strong> business, implementarli e verificarne la correttezza. Uno
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 123<br />
strumento <strong>BPM</strong> rivolto a questa categoria <strong>di</strong> utenti è caratterizzato dall’avere<br />
un elevato grado <strong>di</strong> <strong>per</strong>sonalizzazione dei prototipi generati dal modello<br />
<strong>di</strong> processo <strong>di</strong> business. Infatti lo sviluppatore possiede le capacità <strong>di</strong>poter<br />
estendere le funzionalità <strong>di</strong> un componente del modello <strong>di</strong> processo, venendo<br />
incontro ad esigenze specifiche <strong>di</strong> modellazione. Le capacità caratterizzanti<br />
questa tipologia <strong>di</strong> utenza sono quelle della progettazione e programmazione<br />
informatica. Diversi sono i fattori che ci fanno capire che lo strumento <strong>BPM</strong><br />
in questione sia un strumento adatto <strong>per</strong> gli utenti <strong>di</strong> tipo sviluppatori: uno<br />
fra tutti è la possibilità <strong>di</strong> poter sviluppare la logica <strong>di</strong> un attività <strong>di</strong> processo<br />
con un certo linguaggio <strong>di</strong> programmazione. Un altro fattore è quello <strong>di</strong><br />
dover creare delle interrogazioni verso il database oppure <strong>di</strong> dover definire<br />
me<strong>di</strong>ante un linguaggio formale delle regole <strong>di</strong> business. Per quanto concerne<br />
uno strumento <strong>BPM</strong>, affermiamo che questo sia de<strong>di</strong>cato ad un utente<br />
<strong>di</strong> tipo sviluppatore se:<br />
• Possiede degli <strong>strumenti</strong> che <strong>per</strong>mettano la progettazione del prototipo<br />
del processo <strong>di</strong> business in un linguaggio <strong>di</strong> programmazione<br />
<strong>di</strong> riferimento<br />
• Possiede gli <strong>strumenti</strong> necessari <strong>per</strong> l’implementazione del modello<br />
progettato con un determinato linguaggio <strong>di</strong> programmazione<br />
• Possiede un sistema <strong>per</strong> poter effettuare una verifica semantica del<br />
modello <strong>di</strong> processo <strong>di</strong> business implementato (ad. esempio type checking<br />
sui dati)<br />
Analisti-sviluppatori<br />
Il ruolo degli analisti-sviluppatori è quello <strong>di</strong> tradurre il modello <strong>di</strong> processo<br />
<strong>di</strong> business, descritto ad alto livello da un’analista <strong>di</strong> business, con un formalismo<br />
che sia comprensibile da un sistema <strong>BPM</strong> in modo da generare la<br />
versione eseguibile del processo stesso. Con questo formalismo deve essere in<br />
grado <strong>di</strong> descrivere oltre al modello <strong>di</strong> processo anche il modello informativo<br />
e il modello organizzativo. Inoltre l’analista-sviluppatore, a <strong>di</strong>fferenza dello<br />
sviluppatore, possiede quelle conoscenze <strong>di</strong> gestione dei processi <strong>di</strong> business<br />
che gli <strong>per</strong>mettono <strong>di</strong> poter valutare l’andamento del processo in esecuzione e<br />
<strong>di</strong> poter apportare delle mo<strong>di</strong>fiche qualora il processo non rispetti dei vincoli<br />
prestazionali prestabiliti. Inoltre ha le competenze necessarie <strong>per</strong> gestire a<br />
livello tecnico un’esecuzione del processo attraverso sistemi <strong>di</strong> monitoraggio<br />
descritti precedentemente. Nella valutazione <strong>di</strong> un sistema <strong>BPM</strong> consideriamo<br />
le seguenti caratteristiche come quelle che <strong>per</strong>mettono <strong>di</strong> definire se il<br />
sistema <strong>BPM</strong> considerato è adatto alla tipologia <strong>di</strong> utente descritta:
124 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
• Presenza <strong>di</strong> un sistema <strong>di</strong> documentazione che <strong>per</strong>metta <strong>di</strong> produrre<br />
della documentazione circa il processo <strong>di</strong> business nel particolare formalismo<br />
scelto.<br />
• Presenza <strong>di</strong> un sistema <strong>di</strong> progettazione che <strong>per</strong>metta <strong>di</strong> tradurre la<br />
descrizione ad alto livello <strong>di</strong> un processo <strong>di</strong> business nel formalismo<br />
scelto.<br />
• Possibilità <strong>di</strong> generare l’eseguibile del processo a partire dalla sua descrizione<br />
formale e <strong>di</strong> poterlo <strong>di</strong>stribuire al <strong>BPM</strong> engine <strong>per</strong> la sua<br />
esecuzione<br />
• Presenza <strong>di</strong> un sistema <strong>di</strong> verifica semantica del processo descritto (ad<br />
esempio controllo della correttezza dei vincoli del processo)<br />
Tabella riassuntiva della valutazione degli utenti target <strong>per</strong> l’utilizzo<br />
dello strumento <strong>BPM</strong><br />
Abbiamo descritto gli 11 fattori <strong>di</strong> valutazione che abbiamo preso in considerazione<br />
<strong>per</strong> quanto concerne la valutazione degli utenti target <strong>per</strong> l’utilizzo<br />
dello strumento <strong>BPM</strong>. In tabella 4.8 schematizziamo questi fattori in<strong>di</strong>cando<br />
i valori che possono assumere:<br />
Tabella 4.8: Tabella valutazione utenti target<br />
G)Utenti target<br />
Analisti <strong>di</strong> business<br />
G.1) Documentazione SI/NO<br />
G.2) Progettazione SI/NO<br />
G.3) Verifica SI/NO<br />
G.4) Intero<strong>per</strong>abilità SI/NO<br />
Sviluppatori<br />
G.5) Progettazione SI/NO<br />
G.6) Implementazione SI/NO<br />
G.7) Verifica SI/NO<br />
Analisti-sviluppatori<br />
G.8) Documentazione SI/NO<br />
G.9) Progettazione SI/NO<br />
G.10) Implementazione SI/NO<br />
G.11) Verifica SI/NO
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 125<br />
4.4.8 Riepilogo del framework <strong>di</strong> <strong>analisi</strong> proposto<br />
Nella tabella seguente viene mostrato un riepilogo del framework <strong>di</strong> <strong>analisi</strong><br />
proposto <strong>per</strong> la valutazione <strong>di</strong> uno strumento <strong>BPM</strong>:<br />
Tabella 4.9: Framework <strong>di</strong> <strong>analisi</strong> proposto - Categoria A e B<br />
A)Conformità agli standard<br />
A.1) Conformità <strong>BPM</strong>N1.1 0...1<br />
A.2) Conformità <strong>BPM</strong>N1.2 0...1<br />
A.3) Conformità <strong>BPM</strong>N2.0 0...1<br />
A.4) Conformità X-PDL 1.0 SI/NO<br />
A.5) Conformità X-PDL 2.0 SI/NO<br />
A.6) Conformità X-PDL 2.1 SI/NO<br />
A.7) Importazione X-PDL SI/NO<br />
A.8) Esportazione X-PDL SI/NO<br />
A.9) Conformità BPEL4WS SI/NO<br />
A.10) Conformità BPEL4PEOPLE SI/NO<br />
A.11) Importazione BPEL4WS / BPEL4PEOPLE SI/NO<br />
A.12) Esportazione BPEL4WS / BPEL4PEOPLE SI/NO<br />
B)Modellazione del processo<br />
B.1) Modello informativo SI/NO<br />
B.2) Modello organizzativo SI/NO<br />
B.3) Modello <strong>di</strong> transazione SI/NO<br />
B.4) Gestione delle eccezioni SI/NO<br />
B.5) Riutilizzo <strong>di</strong> processi completi da adattare SI/NO<br />
B.6) Riutilizzo <strong>di</strong> frammenti <strong>di</strong> processi da adattare SI/NO<br />
B.7) Template <strong>di</strong> processi da <strong>per</strong>sonalizzare/adattare SI/NO<br />
B.8) Definizione <strong>di</strong> politiche sull’assegnazione delle attività SI/NO<br />
B.9) Tipizzazione delle attività e loro riuso SI/NO<br />
B.10) Semantiche <strong>per</strong>sonalizzate <strong>per</strong> elementi <strong>di</strong> tipo gateway SI/NO<br />
B.11) Supporto linguaggi programmazione SI/NO<br />
B.12) Interpretazione dei linguaggi <strong>di</strong>chiarativi SI/NO<br />
B.13) Supporto linguaggi basati su regole SI/NO
126 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong><br />
Tabella 4.10: Framework <strong>di</strong> <strong>analisi</strong> proposto - Categoria C e D<br />
C)Configurazione sistema <strong>BPM</strong><br />
C.1) Min RAM richiesta 0...1<br />
C.2) Min HD richiesto 0...1<br />
C.3) Multipiattaforma SI/NO<br />
C.4) Utilizzo DBMS SI/NO<br />
C.5) Intero<strong>per</strong>abilità dello strumento con sistemi esterni SI/NO<br />
C.6) Gestione del versionamento del modello <strong>di</strong> processo SI/NO<br />
C.7) Gestione del versionamento dell’applicazione SI/NO<br />
C.8) Sistema <strong>di</strong> cifratura dello strumento SI/NO<br />
C.9) Sistema <strong>di</strong> autenticazione dello strumento SI/NO<br />
C.10) Generazione <strong>di</strong> file <strong>di</strong> log sull’utilizzo SI/NO<br />
C.11) Controllo dell’accesso all’applicazione generata basato sui ruoli SI/NO<br />
C.12) Sistema <strong>di</strong> autenticazione dell’applicazione generata SI/NO<br />
C.13) Intero<strong>per</strong>abilità dell’applicazione generata con sistemi esterni SI/NO<br />
C.14) Storage sicuro dei dati SI/NO<br />
C.15) Mapping dei dati su DBMS esterni SI/NO<br />
D)Attivazione del processo <strong>di</strong> business<br />
D.1) Disponibilità della simulazione SI/NO<br />
D.2) Possibilità <strong>di</strong> <strong>per</strong>sonalizzare la configurazione della simulazione SI/NO<br />
D.3) Generazione automatica dei prototipi SI/NO<br />
D.4) Grado <strong>di</strong> configurabilità dei prototipi 0...1<br />
D.5) <strong>BPM</strong> Engine associato SI/NO<br />
D.6) Possibilità <strong>di</strong> eseguire il processo su altri <strong>BPM</strong> engine SI/NO
4.4. Categorie <strong>di</strong> <strong>analisi</strong> e criteri <strong>di</strong> valutazione 127<br />
Tabella 4.11: Framework <strong>di</strong> <strong>analisi</strong> proposto - Categoria E e F<br />
E)Analisi processo <strong>di</strong> business<br />
E.1) Strumenti <strong>di</strong> monitoraggio della simulazione del processo SI/NO<br />
E.2) Presenza <strong>di</strong> un business cockpit SI/NO<br />
E.3) Configurabilità business cockpit 0...1<br />
E.4) Livello <strong>di</strong> dettaglio business cockpit 0...1<br />
E.5) Console <strong>di</strong> amministrazione del processo SI/NO<br />
E.6) Monitoraggio attività <strong>di</strong> processo (BAM) SI/NO<br />
E.7) Monitoraggio <strong>di</strong> In<strong>di</strong>catori <strong>di</strong> KPI SI/NO<br />
F)Usabilità dello strumento <strong>BPM</strong><br />
F.1) Facilità <strong>di</strong> download 0...1<br />
F.2) Facilità <strong>di</strong> installazione 0...1<br />
F.3) Facilità <strong>di</strong> appren<strong>di</strong>mento 0...1<br />
F.4) Facilità <strong>di</strong> utilizzo dello strumento <strong>di</strong> modellazione 0...1<br />
F.5) Facilità nel generare l’applicazione 0...1<br />
F.6) Grado <strong>di</strong> <strong>per</strong>sonalizzazione dello strumento 0...1<br />
F.7) Utilizzo prima <strong>di</strong> essere produttivi 0...1<br />
F.8) Disponibilità <strong>di</strong> documentazione SI/NO<br />
F.9) Utilizzo dell’engine 0...1<br />
G)Utenti target<br />
Tabella 4.12: Framework <strong>di</strong> <strong>analisi</strong> proposto - Categoria G<br />
Analisti <strong>di</strong> business<br />
G.1) Documentazione SI/NO<br />
G.2) Progettazione SI/NO<br />
G.3) Verifica SI/NO<br />
G.4) Intero<strong>per</strong>abilità SI/NO<br />
Sviluppatori<br />
G.5) Progettazione SI/NO<br />
G.6) Implementazione SI/NO<br />
G.7) Verifica SI/NO<br />
Analisti-sviluppatori<br />
G.8) Documentazione SI/NO<br />
G.9) Progettazione SI/NO<br />
G.10) Implementazione SI/NO<br />
G.11) Verifica SI/NO
128 Capitolo 4. Analisi degli Strumenti <strong>BPM</strong>
Capitolo 5<br />
Valutazione dei Singoli<br />
Strumenti <strong>BPM</strong><br />
In questo capitolo vengono mostrati i risultati dell’applicazione del framework<br />
<strong>di</strong> <strong>analisi</strong> descritto nel capitolo 4. Per ognuno dei 21 <strong>strumenti</strong> appartenente<br />
alla lista degli <strong>strumenti</strong> analizzati in dettaglio (si veda il paragrafo<br />
4.2), il relativo paragrafo riassume i dati piú significativi.<br />
Ogni paragrafo del presente capitolo include al proprio termine un <strong>di</strong>agramma<br />
tipo “radar” (del tipo <strong>di</strong> quello riportato in Figura 5.2), che descrive<br />
le valutazioni riassuntive <strong>per</strong> ogni gruppo <strong>di</strong> valutazione dello strumento in<br />
esame (categorie da A a F , si vedano le Tabelle da 4.2 a 4.7): poiché la<br />
categoria G non é facilmente quantificabile, essa rimane esclusa da tali <strong>di</strong>agrammi.<br />
I risultati dettagliati delle valutazioni sono presenti nelle tabelle<br />
presenti nell’appen<strong>di</strong>ce A (da tabella A.1 a tabella A.7).
130 Capitolo 5. Valutazione dei Singoli Strumenti <strong>BPM</strong><br />
5.1 Adobe LiveCycle Enterprise E<strong>di</strong>tion<br />
Lo strumento considerato è Adobe LiveCycle Enterprise E<strong>di</strong>tion versione 9.0.<br />
Tale suite comprende numerosi componenti che coprono la maggior parte<br />
delle funzionalità tipiche <strong>di</strong> un sistema <strong>BPM</strong>.<br />
A. Conformità agli standard<br />
Adobe LiveCycle Enterprise E<strong>di</strong>tion mostra una conformità rispetto allo<br />
standard <strong>di</strong> interscambio X-PDL 2.0. Per quanto riguarda la modellazione,<br />
questo strumento <strong>BPM</strong> utilizza un proprio linguaggio. A <strong>di</strong>fferenza <strong>di</strong><br />
<strong>BPM</strong>N, ad esempio, non è possibile definire eventi interme<strong>di</strong> tra i task.<br />
Non è presente un supporto allo standard <strong>di</strong> esecuzione BPEL4WS.<br />
B. Modellazione <strong>di</strong> processo<br />
Adobe LiveCycle Enterprise E<strong>di</strong>tion <strong>per</strong>mette <strong>di</strong> definire un modello informativo,<br />
un modello organizzativo, <strong>per</strong>mette <strong>di</strong> gestire le eccezioni e <strong>di</strong><br />
definire le transazioni. Supporta il linguaggio <strong>di</strong> programmazione Java, con<br />
il quale è possibile creare dei componenti che tipizzano le attività e<strong>per</strong>mettono<br />
<strong>di</strong> definire elementi <strong>di</strong> tipo gateway con semantiche <strong>per</strong>sonalizzate, e<br />
il linguaggio Adobe Flex, con il quale è possibile creare interfacce custom<br />
dell’applicazione. È inoltre possibile definire delle politiche sull’assegnazione<br />
alle risorse delle attività. La figura 5.1 mostra la possibilità <strong>di</strong> definire un<br />
modello informativo e <strong>di</strong> assegnare risorse alle attività.<br />
C. Configurazione <strong>di</strong> sistema<br />
I risultati ottenuti mostrano che lo strumento <strong>BPM</strong> richiede una quantità <strong>di</strong><br />
risorse abbastanza consistente come requisito minimo <strong>per</strong> poter funzionare<br />
correttamente. È uno strumento multipiattaforma scritto in Java e richiede<br />
la piattaforma j2ee <strong>per</strong> poter funzionare. Lo strumento è in grado <strong>di</strong> intero<strong>per</strong>are<br />
con sistemi DBMS sui quali <strong>per</strong>mette <strong>di</strong> mappare il modello informativo<br />
del processo. Inoltre l’applicazione generata dal modello <strong>di</strong> processo<br />
<strong>di</strong> business può intero<strong>per</strong>are anch’essa con <strong>strumenti</strong> esterni. Per quanto<br />
riguarda la security, Adobe LiveCycle Enterprise E<strong>di</strong>tion consente <strong>di</strong> utilizzare<br />
un sistema <strong>di</strong> cifratura, un sistema <strong>di</strong> autenticazione sia dello strumento<br />
sia dell’applicazione generata e <strong>per</strong>mette <strong>di</strong> effettuare lo storage sicuro dei<br />
dati su DBMS. Inoltre è presente un sistema <strong>di</strong> gestione delle versioni dei<br />
modelli <strong>di</strong> processo creati.
5.1. Adobe LiveCycle Enterprise E<strong>di</strong>tion 131<br />
Figura 5.1: Definizione modello informativo e assegnazione delle risorse alle attività<br />
Adobe LiveCycle Enterprise E<strong>di</strong>tion<br />
D. Attivazione del processo<br />
Il prodotto possiede un <strong>BPM</strong> engine dove è possibile fare il deployment<br />
dell’applicazione <strong>di</strong>rettamente dallo strumento <strong>di</strong> modellazione del processo<br />
<strong>di</strong> business. Non possiede uno strumento <strong>per</strong> simulare il processo prima del<br />
rilascio.<br />
E. Analisi del processo<br />
Adobe LiveCycle Enterprise E<strong>di</strong>tion possiede degli <strong>strumenti</strong> <strong>di</strong> <strong>analisi</strong> del<br />
processo mentre è in esecuzione che <strong>per</strong>mettono sia <strong>di</strong> monitorare le sue<br />
prestazioni <strong>per</strong> mezzo dei KPI definiti sia <strong>di</strong> monitorare l’intera esecuzione<br />
dell’istanza del processo <strong>di</strong> business. Inoltre è presente una console <strong>per</strong> la<br />
gestione dei processi che sono stati caricati sul server.<br />
F. Usabilità dello strumento<br />
I risultati ottenuti mostrano che Adobe LiveCycle Enterprise E<strong>di</strong>tion è uno<br />
strumento <strong>BPM</strong> caratterizzato da una usabilità me<strong>di</strong>ocre. L’utilizzo <strong>di</strong><br />
Adobe LiveCycle Enterprise E<strong>di</strong>tion è subor<strong>di</strong>nato da una curva <strong>di</strong> appren<strong>di</strong>mento<br />
bassa in quanto richiede che l’utente <strong>di</strong>sponga <strong>di</strong> conoscenze pregresse<br />
abbastanza approfon<strong>di</strong>te circa il linguaggio Java e Adobe Flex. Infatti uno
132 Capitolo 5. Valutazione dei Singoli Strumenti <strong>BPM</strong><br />
dei punti <strong>di</strong> forza è la <strong>per</strong>sonalizzazione dello strumento <strong>di</strong> modellazione che<br />
<strong>per</strong>ò richiede la conoscenza dei linguaggi <strong>di</strong> programmazione menzionati.<br />
Inoltre sia la fase <strong>di</strong> re<strong>per</strong>imento sia quella <strong>di</strong> installazione dello strumento<br />
<strong>BPM</strong> ha mostrato <strong>di</strong>fficoltà. Buona la <strong>di</strong>sponibilità <strong>di</strong> documentazione su<br />
tutti gli aspetti <strong>di</strong> questo strumento <strong>BPM</strong>.<br />
G. Utenti target<br />
Adobe LiveCycle Enterprise E<strong>di</strong>tion è uno strumento rivolto agli analistisviluppatori,<br />
in quanto lo strumento <strong>per</strong>mette <strong>di</strong> descrivere i modelli del<br />
processo in dettaglio, <strong>per</strong>mettendo <strong>di</strong> specificare parametri che andranno<br />
ad influire l’intero<strong>per</strong>abilità con <strong>strumenti</strong> esterni. Inoltre è rivolto agli<br />
sviluppatori, in quanto la creazione <strong>di</strong> nuovi elementi, <strong>per</strong> estendere la<br />
capacità espressiva del linguaggio <strong>di</strong> modellazione, e la <strong>per</strong>sonalizzazione<br />
dell’applicazione finale richiedono forti competenze <strong>di</strong> programmazione.<br />
Riepilogo dell’<strong>analisi</strong> dello strumento <strong>BPM</strong><br />
Il grafico in figura 5.2 mostra il grado <strong>di</strong> completezza delle funzionalità dello<br />
strumento <strong>BPM</strong> rispetto alle categorie <strong>di</strong> <strong>analisi</strong>.
5.1. Adobe LiveCycle Enterprise E<strong>di</strong>tion 133<br />
Figura 5.2: Valutazione finale Adobe LiveCycle Enterprise E<strong>di</strong>tion
134 Capitolo 5. Valutazione dei Singoli Strumenti <strong>BPM</strong><br />
5.2 AgilePoint <strong>BPM</strong>S<br />
Lo strumento considerato è AgilePoint <strong>BPM</strong>S versione 4.7. AgilePoint <strong>BPM</strong>S<br />
può definirsi una vera e propria suite <strong>BPM</strong>. Infatti possiede tutti gli <strong>strumenti</strong><br />
che <strong>per</strong>mettono una modellazione estremamente flessibile e completa<br />
del processo <strong>di</strong> business, la simulazione del processo definito, l’esecuzione del<br />
processo nel proprio <strong>BPM</strong> engine e l’<strong>analisi</strong> <strong>di</strong> questo che può essere attiva<br />
e passiva.<br />
A. Conformità agli standard<br />
AgilePoint <strong>BPM</strong>S non segue la standard proposto <strong>per</strong> la modellazione del<br />
processo <strong>di</strong> business. Infatti la sua notazione è formata da un insieme <strong>di</strong> elementi<br />
la cui semantica deve essere definita in modo esplicito. Lo strumento<br />
<strong>BPM</strong> <strong>per</strong>mette <strong>di</strong> importare processi già definiti nel formato <strong>di</strong> interscambio<br />
X-PDL versione 2.0.<br />
B. Modellazione <strong>di</strong> processo<br />
Lo strumento <strong>BPM</strong> risulta essere completo sotto tutti i criteri <strong>di</strong> valutazione<br />
<strong>di</strong> questa categoria. Infatti è possibile definire un modello informativo e organizzativo<br />
del processo <strong>di</strong> business. È possibile definire le attività checompongono<br />
una transazione come è anche possibile definire i comportamente<br />
delle eccezioni che possono accadere durante l’esecuzione del processo. AgilePoint<br />
<strong>per</strong>mette <strong>di</strong> riutilizzare sia processi completi o parziali già definiti<br />
oppure <strong>per</strong>mette <strong>di</strong> adattare dei template <strong>di</strong> modelli <strong>di</strong> processi alle proprie<br />
esigenze progettuali. Tramite il linguaggio <strong>di</strong> programmazione Visual Basic<br />
oC#èpossibile definire la logica applicativa <strong>di</strong> ogni componente del modello<br />
<strong>di</strong> processo: attività e gateway. Inoltre <strong>per</strong>mette <strong>di</strong> definire query in<br />
SQL <strong>per</strong> il recu<strong>per</strong>o e l’aggiornamento <strong>di</strong> dati dal DBMS.<br />
C. Configurazione <strong>di</strong> sistema<br />
Lo strumento <strong>BPM</strong> è interamente basato su piattaforma .NET. Permette<br />
l’intero<strong>per</strong>abilità con altri tool <strong>di</strong> Microsoft come Sharepoint e Project. Utilizza<br />
<strong>di</strong>versi DBMS anche se è progettato appositamente <strong>per</strong> SQL server.<br />
Permette <strong>di</strong> gestire le versioni sia dei modelli <strong>di</strong> processi definiti sia delle<br />
applicazioni da esse derivate. L’applicazione generata può interagire con<br />
sistemi esterni soprattutto sviluppati con la stessa tecnologia. Lo svantaggio<br />
<strong>di</strong> questo strumento sono le risorse minime richieste <strong>per</strong> poter funzionare<br />
correttamente che tendono a crescere in base al tipo <strong>di</strong> installazione che si<br />
intende effettuare.
5.2. AgilePoint <strong>BPM</strong>S 135<br />
D. Attivazione del processo<br />
Lo strumento possiede un ambiente <strong>di</strong> simulazione su cui è possibile fare delle<br />
previsioni sul modello <strong>di</strong> processo definito. Inoltre è in grado <strong>di</strong> generare<br />
automaticamente il prototipo dell’applicazione del processo che viene messo<br />
in esecuzione nel <strong>BPM</strong> engine proprietario dello strumento. AgilePoint non<br />
<strong>per</strong>mette ad altri <strong>BPM</strong> engine <strong>di</strong> eseguire i processi <strong>di</strong> business da esso<br />
definiti.<br />
E. Analisi del processo<br />
Dal punto <strong>di</strong> vista degli <strong>strumenti</strong> <strong>di</strong> <strong>analisi</strong>, Agilepoint risulta essere uno<br />
strumento <strong>BPM</strong> completo. Infatti possiede sia un ambiente <strong>di</strong> <strong>analisi</strong> dei<br />
risultati delle varie simulazioni, sia una console <strong>per</strong> gestire i processi <strong>di</strong><br />
business che sono stati rilasciati nel <strong>BPM</strong> engine. Permette <strong>di</strong> analizzare<br />
sia attivamente che passivamente le istanze dei processi <strong>di</strong> business in esecuzione<br />
e <strong>di</strong> monitorarne le KPI che sono state definite nel Business Activity<br />
Monitoring.<br />
F. Usabilità dello strumento<br />
Lo strumento <strong>BPM</strong> è abbastanza complesso da apprendere. Infatti vi sono<br />
numerose funzionalità da conoscere. Inoltre richiede delle conoscenze avanzate<br />
pregresse <strong>di</strong> programmazione nel linguaggio C# e Visual Basic che<br />
potrebbero ritardare l’appren<strong>di</strong>mento dello strumento. Un altro punto a<br />
sfavore è il processo <strong>di</strong> installazione dello strumento <strong>BPM</strong>. Questo richiede<br />
una fase preliminare dove si chiede all’utente competenze nell’installare e<br />
configurare un DBMS, un Web Server e componenti <strong>di</strong> terze parti necessarie<br />
al funzionamento dello strumento. Nel complesso AgilePoint è uno<br />
strumento complesso da utilizzare <strong>per</strong> l’utente me<strong>di</strong>o.<br />
G. Utenti target<br />
Gli utenti target <strong>di</strong> questo strumento <strong>BPM</strong> sono: gli sviluppatori, in quanto<br />
devono definire la logica delle attività <strong>di</strong> un processo <strong>di</strong> business e le interfaccie<br />
dell’applicazione generata dal processo. Gli utenti analisti-sviluppatori<br />
che si devono interfacciare agli sviluppatori <strong>per</strong> la definizione del processo<br />
<strong>di</strong> business nei suoi vari modelli. Infine gli analisti <strong>di</strong> business che possono<br />
ricavare documentazione dalle <strong>analisi</strong> del processo <strong>di</strong> business in modo da<br />
cercare <strong>di</strong> migliorarlo.
136 Capitolo 5. Valutazione dei Singoli Strumenti <strong>BPM</strong><br />
Riepilogo dell’<strong>analisi</strong> dello strumento <strong>BPM</strong><br />
Il grafico in figura 5.3 mostra il grado <strong>di</strong> completezza delle funzionalità dello<br />
strumento <strong>BPM</strong> rispetto alle categorie <strong>di</strong> <strong>analisi</strong>.<br />
Figura 5.3: Valutazione finale AgilePoint <strong>BPM</strong>S
5.3. Avantage <strong>BPM</strong> 137<br />
5.3 Avantage <strong>BPM</strong><br />
Lo strumento considerato è Avantage <strong>BPM</strong> versione 1.3. Tale strumento<br />
<strong>BPM</strong> risulta essere un semplice e<strong>di</strong>tor <strong>di</strong> modelli <strong>di</strong> processi <strong>di</strong> business che<br />
inoltre <strong>per</strong>mette <strong>di</strong> simulare il processo definito.<br />
A. Conformità agli standard<br />
Lo strumento <strong>BPM</strong> mostra piena conformità rispetto alla notazione <strong>BPM</strong>N<br />
versione 1.2. Inoltre <strong>per</strong>mette l’esportazione ma non l’importazione dei<br />
modelli <strong>di</strong> processi nel formato <strong>di</strong> interscambio X-PDL versione 2.0.<br />
B. Modellazione <strong>di</strong> processo<br />
Lo strumento <strong>BPM</strong> <strong>per</strong>mette <strong>di</strong> definire il modello organizzativo del processo.<br />
C. Configurazione <strong>di</strong> sistema<br />
Avantage <strong>BPM</strong> è uno strumento che può essere messo in esecuzione solo su<br />
sistemi o<strong>per</strong>ativi Windows. Esso <strong>per</strong>mette <strong>di</strong> gestire le varie versioni dei<br />
modelli dei processi <strong>di</strong> business creati utilizzando un DBMS proprietario.<br />
D. Attivazione del processo<br />
Lo strumento <strong>BPM</strong> <strong>per</strong>mette <strong>di</strong> simulare il modello del processo <strong>di</strong> business<br />
definito. Inoltre è possibile variare i parametri <strong>di</strong> carico <strong>per</strong> definire <strong>di</strong>versi<br />
scenari <strong>di</strong> esecuzione.<br />
E. Analisi del processo<br />
Lo strumento <strong>BPM</strong> possiede un componente che <strong>per</strong>mette <strong>di</strong> generare un<br />
reportistica sui risultati ottenuti dalla simulazione del processo <strong>di</strong> business.<br />
F. Usabilità dello strumento<br />
Avantage <strong>BPM</strong> risulta essere uno strumento facile da apprendere e da utilizzare.<br />
G. Utenti target<br />
Gli utenti target <strong>di</strong> questo strumento sono gli analisti <strong>di</strong> business. Infatti<br />
lo strumento <strong>BPM</strong> <strong>per</strong>mette <strong>di</strong> definire in modo intuitivo il processo <strong>di</strong>
138 Capitolo 5. Valutazione dei Singoli Strumenti <strong>BPM</strong><br />
business e il suo modello organizzativo. Inoltre <strong>per</strong>mette <strong>di</strong> generare della<br />
documentazione sul processo creato e sui risultati ottenuti dalle simulazioni.<br />
Riepilogo dell’<strong>analisi</strong> dello strumento <strong>BPM</strong><br />
Il grafico in figura 5.4 mostra il grado <strong>di</strong> completezza delle funzionalità dello<br />
strumento <strong>BPM</strong> rispetto alle categorie <strong>di</strong> <strong>analisi</strong>.<br />
Figura 5.4: Valutazione finale Avantage <strong>BPM</strong>
5.4. Billfish <strong>BPM</strong> 139<br />
5.4 Billfish <strong>BPM</strong><br />
Lo strumento considerato è Billfish <strong>BPM</strong> versione 3.0. Tale suite comprende<br />
dei componenti che coprono completamente le funzionalità tipiche <strong>di</strong> un<br />
sistema <strong>BPM</strong>.<br />
A. Conformità agli standard<br />
Billfish <strong>BPM</strong> mostra una conformità pari al 55% rispetto alla notazione<br />
<strong>di</strong> modellazione <strong>BPM</strong>N 1.2. Billfish <strong>BPM</strong> non supporta alcuno standard<br />
riguardo i formati <strong>di</strong> interscambio o linguaggi <strong>di</strong> esecuzione. In figura 5.5 la<br />
modellazione del processo <strong>di</strong> riferimento.<br />
Figura 5.5: Modello del processo <strong>di</strong> riferimento Billfish <strong>BPM</strong><br />
B. Modellazione <strong>di</strong> processo<br />
Billfish <strong>BPM</strong> <strong>per</strong>mette <strong>di</strong> definire il modello informativo e organizzativo del<br />
processo. Inoltre <strong>per</strong>mette <strong>di</strong> definire delle politiche circa l’assegnazione delle
140 Capitolo 5. Valutazione dei Singoli Strumenti <strong>BPM</strong><br />
risorse alle varie attività. È possibile importare dei template <strong>di</strong> processi da<br />
adattare alle specifiche esigenze <strong>di</strong> modellazione. Lo strumento non <strong>per</strong>mette<br />
<strong>di</strong> definire le transazioni ne <strong>di</strong> gestire le eccezioni. Inoltre non è presente<br />
alcun tipo <strong>di</strong> supporto <strong>per</strong> i linguaggi <strong>di</strong> programmazione, <strong>di</strong>chiarativi o<br />
basati su regole.<br />
C. Configurazione <strong>di</strong> sistema<br />
Lo strumento <strong>BPM</strong> <strong>di</strong>mostra <strong>di</strong> essere uno strumento leggero dal punto <strong>di</strong><br />
vista delle risorse minime richieste. È uno strumento basato sulla tecnologia<br />
Java quin<strong>di</strong> multipiattaforma. Permette <strong>di</strong> utilizzare un DBMS esterno<br />
e <strong>di</strong> gestire le versioni delle applicazioni generate dal modello <strong>di</strong> processo<br />
<strong>di</strong> business. Lo strumento possiede un sistema <strong>di</strong> autenticazione come anche<br />
è possibile averlo nell’applicazione generata. L’applicazione non può<br />
intero<strong>per</strong>are con sistemi esterni.<br />
D. Attivazione del processo<br />
Billfish <strong>BPM</strong> mette a <strong>di</strong>sposizione una strumentazione <strong>per</strong> la simulazione<br />
del processo. Inoltre <strong>per</strong>mette la generazione automatica dei prototipi delle<br />
applicazioni a partire dal modello <strong>di</strong> processo <strong>di</strong> business. Lo strumento<br />
<strong>BPM</strong> possiede un <strong>BPM</strong> engine associato sul quale è possibile effettuare il<br />
deployment dell’applicazione del processo <strong>di</strong>rettamente dallo strumento <strong>di</strong><br />
modellazione.<br />
E. Analisi del processo<br />
Dal punto <strong>di</strong> vista dell’<strong>analisi</strong> del processo, Billfish possiede una console <strong>per</strong><br />
la gestione dei vari processi rilasciati e uno strumento <strong>per</strong> il monitoraggio<br />
dell’esecuzione dell’istanza del processo <strong>di</strong> business in tempo reale.<br />
F. Usabilità dello strumento<br />
Billfish <strong>BPM</strong> si è rivelato essere uno strumento <strong>BPM</strong> facile da apprendere<br />
e da utilizzare. Inoltre è estremamente semplice generare delle applicazioni<br />
senza necessariamente avere competenze <strong>di</strong> programmazione e metterle in esecuzione<br />
nel <strong>BPM</strong> engine. L’unica nota negativa è dovuta all’impossibilità<strong>di</strong><br />
<strong>per</strong>sonalizzare lo strumento <strong>di</strong> modellazione. Tuttavia si può affermareche<br />
BillFish <strong>BPM</strong> è uno strumento <strong>BPM</strong> caratterizzato da una buona usabilità.
5.4. Billfish <strong>BPM</strong> 141<br />
G. Utenti target<br />
I principali utenti <strong>di</strong> Billfish <strong>BPM</strong> sono gli analisti-sviluppatori. Infatti è<br />
possibile dettagliare il processo con dati del modello informativo e organizzativo<br />
e la sua esecuzione può essere monitorata in tempo reale. Lo strumento<br />
<strong>per</strong>mette <strong>di</strong> generare una buona documentazione del processo definito. Per<br />
questo motivo in parte può essere utilizzato da un target <strong>di</strong> utenti <strong>di</strong> tipo<br />
analisti <strong>di</strong> business.<br />
Riepilogo dell’<strong>analisi</strong> dello strumento <strong>BPM</strong><br />
Il grafico in figura 5.6 mostra il grado <strong>di</strong> completezza delle funzionalità dello<br />
strumento <strong>BPM</strong> rispetto alle categorie <strong>di</strong> <strong>analisi</strong>.<br />
Figura 5.6: Valutazione finale Billfish <strong>BPM</strong>