16.04.2013 Views

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

SHOW MORE
SHOW LESS

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>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!