6
analizzare automaticamente ed estrarre le conoscenze dai dati contenuti un una base di dati. I dati
su cui effettuare le sessioni di mining sono costituiti dalla collezione di istanze di workflow reali o
simulate. A differenza di una normale progettazione , che è spesso soggetta e basata su percezioni e
opinioni, una progettazione basata sul mining è obiettiva in quanto è basata sulle reali cose che
avvengono durante l’esecuzione dei processi. E’ possibile applicare le tecniche di data mining
all’analisi dei workflow al fine di estrarre conoscenza inattesa e proficua sui processi che permette
di prendere le decisioni appropriate nelle future esecuzioni di istanze di workflow o di riprogettare
schemi preesistenti. In questa trattazione, si presentano degli algoritmi per ricercare pattern
frequenti fra le istanze di workflow . L’uso di tali tecniche permette di indagare sulla capacità di
predire l’esecuzione più probabile nel futuro per un processo di workflow. L’obiettivo di questa
tesi di laurea, consiste nella progettazione ed implementazione di un sistema software di supporto
alla ingegnerizzazione e re-ingegnerizzazione di schemi di workflow, proponendo un innovativo
approccio basato su tecniche di data mining specializzate per il settore dei workflow . L’approccio
tradizionale consiste nel fornire al progettista di schemi di workflow, avanzati CAD grafici. Il
contributo innovativo in questo settore lo si introduce integrando gli algoritmi per la ricerca dei
pattern frequenti fra le istanze di workflow in un ambiente di modellazione visuale avanzato. Come
risultato del lavoro di tesi è stato progettato ed implementato il sistema JWorkflow per la
modellazione di workflow. Il nome del sistema deriva dalla scelta del linguaggio Java per
l’implementazione. Il progettista può avvalersi di diversi algoritmi, descritti in dettaglio nel
capitolo 3, quale strumento da impiegare nell’analisi e nella re-ingegnerizzazione di schemi
preesistenti.
La tesi è organizzata in cinque capitoli, il cui contenuto è riassunto di seguito, al fine di offrire una
panoramica della trattazione:
Nel Capitoli 1 si trattano i concetti relativi ai workflow ed ai sistemi di gestione per workflow (
Workflow Management System). Nel Capitolo 2 si fornisce una introduzione alle tematiche del
data mining ed al processo di Knowledge Discovery in Databases (KDD), dettagliando la tecnica di
tipo levelwise dell’algoritmo Apriori relativamente alla ricerca delle regole associative nella basket
analysis, essendo questo ultimo l’approccio più vicino a quello da noi proposto. Nel Capitolo 3 si
introduce il process mining e si presenta un algoritmo e relative specializzazioni per la ricerca di
pattern frequenti fra le istanze di schemi di workflow. Nel Capitolo 4 si illustrano le fasi di
progettazione del sistema JWorkflow utilizzando il linguaggio di modellazione UML e i principi
guida per la progettazione del software. Nel Capitolo 5 con un approccio di tipo manualistico si
presentano le funzionalità del sistema che sono accessibili mediante una moderna interfaccia
grafica.
7
1 Modellazione e Gestione di Workflow
1.1 Workflow e Workflow Management System
I Workflow Management System (WfMS) sono applicazioni che gestiscono flussi di lavoro.
Qualsiasi azienda, amministrazione pubblica o ente commerciale segue dei protocolli per gestire
processi produttivi o amministrativi basati sul passaggio di informazioni o documenti: questi iter
possono essere schematizzati come flussi di lavoro a cui si riferiscono i dipendenti e/o gli utenti.
Nella gestione tipica di questi flussi di lavoro molte energie vengono spese inutilmente in due
ambiti che non portano alcun risultato pratico. Da una parte si deve curare il passaggio del lavoro o
dei documenti, perdendo tempo e risorse nel cercare di capire che cosa si debba fare di un certo
oggetto o a quale ufficio debba essere mandato un incartamento. Dall’altra parte molte delle attività
svolte sono ripetitive e automaticamente gestibili da un’applicazione software anziché da un essere
umano. I WfMS si propongono di automatizzare queste fasi dispendiose e non redditizie dei flussi
di lavoro, con l’aiuto delle tecnologie informatiche. Il guadagno in efficienza portato dai WfMS è
proporzionale alla complessità del processo modellato e alla percentuale di attività di cui è
composto che possono essere rese automatiche. La gestione del workflow è un aspetto delle realtà
aziendali che negli ultimi anni, partendo da un ruolo marginale, ha assunto un’importanza sempre
crescente, fino a diventare un punto di forza nella realizzazione di infrastrutture informatiche. Il
concetto di Workflow Management deriva dalla gestione dei flussi di lavoro tipici delle produzioni
industriali, in particolare si identifica nella gestione dello scambio strutturato di informazioni tra
diverse entità dell’azienda (individui, ruoli, programmi), finalizzato all’ottenimento di un certo
scopo e nell’automazione dei processi per conseguire un determinato risultato economico o di
mercato. Nella seguente trattazione, si fa ampiamente riferimento alle indicazioni fornite dalla
Workflow Management Coalition (WfMC), un’organizzazione internazionale no-profit fondata
nell’agosto del 1993, e costituita da produttori di workflow, utenti, analisti e gruppi di ricerca
universitari. Essa è sorta con l’obiettivo principale di promuovere lo sviluppo dell’uso del
workflow, stabilendo standard e terminologie comuni per consentire la compatibilità e
l’interoperabilità tra prodotti eterogenei di workflow. L’interazione fra applicazioni di WfMS di
natura diversa è indispensabile poiché ogni situazione richiede uno strumento diverso: lo scopo
della WfMC è proprio quello di fornire standard per questa integrazione. Essa inoltre si pone come
scopo anche quello di accrescere il valore degli investimenti nelle tecnologie di workflow, ridurre i
rischi legati all’uso dei prodotti di workflow e l’espansione del mercato accrescendo la
consapevolezza delle potenzialità del workflow.Secondo la definizione fornita della Workflow
Management Coalition, col termine workflow si intende "L'automazione di una parte o l'intero
processo aziendale dove documenti, informazioni e compiti vengono passati da un partecipante ad
un altro per ricevere qualche tipo di azione, seguendo un determinato insieme di regole."
8
Accettazione
richieste
Notifica
accettazione
Respingi
richiesta
Revisione del
supervisore
Aggiornare
fondi
Valutazione
requisiti
Valutazione
fondi
Accettare
richiesta?
Si
Si
No
No
Figura 1.1 : Un esempio di processo
Dunque un workflow riassume una serie di procedure che, poste in relazione le une con le altre,
definiscono un contesto di lavoro strutturato, dove più unità lavorative, siano esse risorse umane,
gruppi di lavoro o sistemi computerizzati, lavorano in concomitanza per un determinato fine. Ogni
workflow è dunque composto da un certo numero di processi, cioè procedure da seguire per
ottenere un certo risultato, da determinate condizioni di partenza.
Ogni processo si può definire attraverso la sequenza di azioni che devono essere svolte dai
partecipanti, e attraverso l’evoluzione dello stato degli oggetti che lo attraversano. Un processo, ad
esempio, può essere l’iter per una richiesta di acquisto dell’università, o le procedure per ottenere
una licenza edilizia nell’ambito della pubblica amministrazione (Si veda la Figura 1.1 ).
Le azioni che devono essere svolte nel processo sono chiamate attività del processo. Ogni processo
viene descritto dall’insieme di attività e dalla sequenza con cui vengono svolte. Un’attività descrive
un singolo passo del processo da eseguire: ad esempio prendere una decisione, apporre una firma
ad un documento, o stampare un elenco. Il processo ha sempre una sola attività di inizio, in cui
“entrano” gli oggetti che devono essere elaborati, ed un’attività di fine da cui “escono” i prodotti
del processo.
La sequenza di passi di un processo non è limitata ad essere una semplice sequenza lineare. Si
possono infatti avere ramificazioni e ricongiungimenti, a rappresentare attività che devono essere
svolte in parallelo o attività che devono essere svolte in alternativa le une alle altre. Ad esempio in
un’amministrazione comunale un certo incartamento può intraprendere un percorso attraverso vari
uffici, trovarsi ad essere elaborato contemporaneamente da due uffici di controllo, per poi dover
scegliere se essere mandato fra le pratiche urgenti o fra quelle a bassa priorità, e così via.
Ogni processo è un’entità statica, una sorta di definizione di procedure e iter da intraprendere: può
essere eseguito più volte, cioè può avere più istanze, anche contemporanee. Ogni istanza di
processo ha una propria identità distinta, anche se condivide con le altre istanze di processo la
stessa sequenza di azioni da intraprendere. Un’istanza di processo è dunque un’entità dinamica: ha
9
una data e orario di nascita, dati registrati che cambiano di attività in attività e, infine, ha anche una
fine: la sua archiviazione.
Il Workflow Management System è definito come: “un sistema che definisce, crea e gestisce
l’esecuzione di workflow attraverso l’uso di software, coinvolgendo uno o più motori di workflow;
e che è in grado di interpretare definizioni di processo, interagire con i partecipanti del workflow
e, se richiesto, invocare l’uso di applicazioni e strumenti dell’information technology”. In modo
semplicistico si può affermare che i WfMS gestiscono il flusso di lavoro in modo tale che esso sia
eseguito al momento giusto e dalla persona corretta. L’idea base dei WfMS è quella di separare i
processi dalle risorse e dalle applicazioni, focalizzando l’attenzione sul processo generico e non sul
contenuto del compito individuale. In particolare, in base alle caratteristiche del flusso di lavoro
del processo aziendale su cui è applicato, il WfMS è in grado di definire in modo netto le attività, i
ruoli e le procedure; automatizzare il lavoro corrente; aiutare a risolvere situazioni di eccezioni o
guasti; assegnare i compiti e le risorse agli utenti(in base ai loro ruoli); supportare i cambiamenti
del flusso di lavoro e controllarne la consistenza prima di proseguire con le altre istanze del
processo. Quindi, sintetizzando, i Workflow Management Systems supportano la definizione,
l’esecuzione e il controllo di un processo aziendale, gestendo gli eventi interni e favorendo
l’interoperabilità con sistemi esterni. L’automatizzazione del lavoro e l’assegnamento dei compiti
porta a migliorare notevolmente l’efficienza: la prima consente di affidare agli strumenti di
esecuzione sotto il diretto controllo del workflow tutte le attività che sono puramente automatiche e
meccaniche, che non hanno bisogno di nessuna componente umana nello svolgimento. Inoltre le
attività automatiche possono essere svolte più facilmente in parallelo, comportando ulteriori
vantaggi sulla produttività, poiché viene ridotto il tempo di esecuzione di un’applicazione.
L’assegnamento dei compiti fa si che ad ogni utente vengano fornite tutte le informazioni e gli
strumenti necessari allo svolgimento della sua attività, in questo modo non gli mancherà niente di
indispensabile, aumentando l’efficienza. Il controllo del sistema consente anche di eliminare
eventuali errori umani. Quindi i benefici immediati che si ottengono sono:
• Riduzione dei costi operativi
• Aumento della produttività
• Riduzione dei tempi di produzione
Inoltre si assiste a:
• Miglioramento dei servizi, poiché il tempo per eseguire un lavoro si riduce e le
informazioni richieste sono disponibili in minor tempo.
• Miglioramento delle condizioni di lavoro, poiché gli aspetti più ripetitivi dell’attività del
processo sono svolti automaticamente.
10
• Miglioramento delle comunicazioni tra utenti e impresa, per la possibilità di disporre più
facilmente di informazioni sulle attività dell’azienda.
• Supporto manageriale e decisionale, poiché potendo monitorare in modo più efficiente
l’andamento dei processi, è possibile prendere decisioni più idonee.
• Comunicazioni tra organizzazioni, supportando attività che legano tra loro più strutture.
• Aumento della qualità del servizio offerto.
• Privacy e Sicurezza: solo l’ utente autorizzato può accedere al compito e ai dati ad esso
associati.
1.2 Concetti Chiave
La funzione dei workflow è connessa con l’automazione delle procedure nelle quali documenti,
informazioni e obiettivi sono scambiati tra i partecipanti, in accordo con un definito insieme di
regole, per conseguire o contribuire a un obiettivo di business.
In termini operativi, un flusso di lavoro (workflow) può essere pensato come una serie di attività
che insieme compongono un processo. Ogni attività, a sua volta, è scomponibile in più unità di
lavoro, ciascuna delle quali è assegnata e svolta da una risorsa (un’entità hardware, un sistema
software o una persona che ha le caratteristiche per svolgere un determinato compito).
Figura 1.2: Schematizzazione operativa di un flusso di lavoro
Le unità di lavoro che devono essere compiute sono listate in una coda di workflow, da cui vengono
man mano estratte ed assegnate ciascuna ad una risorsa. L’ordine in cui unità di lavoro e attività
vengono svolte è stabilito da una serie di regole, che descrivono in che sequenza e con quali
priorità esse vanno eseguite. La stesura formale delle regole costituisce la definizione del processo.
Gli elementi del processo : Le attività possono essere ulteriormente suddivise in sottoattività, fino a
creare una gerarchia che ha come ultimo gradino la singola unità di lavoro. Quando un’attività
U.L.
U.L.
U.L. U.L.
RISORSA
……………..
CODA DI WORKFLOW
È eseguita da
PROCESSO
ATTIVITA’ 1 ATTIVITA’ 2 ATTIVITA’ N
….
REGOLE
(DEFINIZIONE DEL
PROCESSO)
Definisce la
sequenza
È composto da
È composto da
11
viene completata, l’entità che ne è l’oggetto (ad esempio una casa, in un processo di vendita
immobiliare) va incontro a un cambiamento di stato (ad esempio da “in vendita” a “venduta”) che
deve essere memorizzato nel sistema.
Risorse e ruoli : Una risorsa è costituita da una persona fisica o uno strumento informatico in grado
di svolgere le unità di lavoro che compongono un processo. Ad essa viene associato uno o più ruoli
che definiscono l’insieme dei compiti che è possibile svolgere.
L’utilizzo del concetto di ruolo piuttosto che di individuo ha lo scopo di facilitare il trasferimento
di compiti e responsabilità da una risorsa ad un'altra, nel caso alcune di queste si rivelino non
disponibili.
Le regole : L’ordine in cui le diverse attività vengono svolte è determinato da pre e post condizioni
che devono essere realizzate prima dell’inizio o del completamento di un’attività. In questo modo
vengono stabilite delle dipendenze tra le attività di un processo, in base alle quali sono definite le
modalità del flusso da una risorsa alla successiva. Le dipendenze sono anche dette primitive
d’instradamento. Esse danno origine alle seguenti tipologie di flusso:
• Sequenziale: l’attività 1 è seguita dall’attività 2 che è seguita dall’attività 3;
• Parallelo: terminata l'attività 1, possono essere svolte contemporaneamente l'attività 2 e 3;
• Diramazioni: terminata l'attività 1, devono essere svolte le attività 2 e 3 non
necessariamente in contemporanea;
• Congiunzioni: l'attività 4 può esser iniziata solo se sono terminate le attività 2 e 3,
imponendo così una sincronizzazione;
• Iterazione: un’attività 1 viene iterata finché non è realizzata una data condizione.
Le regole associate a un processo formalizzano le dipendenze, ma non si limitano a questo. Esse
stabiliscono anche le priorità dei compiti e forniscono le euristiche necessarie all’assegnazione dei
ruoli.
Coda di workflow : I sistemi di workflow utilizzano una coda per assegnare le unità di lavoro alle
risorse. Questa contiene una lista di attività che devono essere svolte secondo un ordine di priorità.
L'unità di lavoro che si trova in testa alla coda viene automaticamente assegnata alla prima risorsa
libera che possiede il ruolo corretto.
12
1.3 Le architetture dei Sistemi
1.3.1 Architettura Concettuale
Al di là delle particolarità, tutti i WfMS hanno una serie di caratteristiche comuni che garantiscono
una base per l’integrazione e l’interoperabilità . Si possono quindi individuare tre macroaree
funzionali (Figura 1.3):
• I servizi di supporto alla costruzione, connessi alla definizione e alla modellazione del
processo di workflow e delle attività che lo costituiscono;
• I servizi di controllo della messa in opera, capaci di gestire i processi di workflow in un
ambiente operazionale, seguendo la fase run-time delle varie attività;
• Le interazioni tra gli utenti umani e gli strumenti applicativi nel processare i vari passi
delle attività.
Figura 1.3: Architettura concettuale di un WfMS
In particolare, la macrofase relativa alla costruzione del workflow parte da un’analisi di Business
Process Reengeneering per studiare e ottimizzare la sequenza dei processi da definire e modellare.
La macrofase successiva definisce invece il comportamento evolutivo dei processi, interpretandoli
con soluzioni software che si occupano della creazione e del controllo delle istanze operazionali
tramite la schedulazione delle attività e l’invocazione di appropriate risorse umane e tecnologiche.
L’interazione con tali risorse viene infine gestita nell’ambito della terza macrofase, che si occupa
delle soluzioni specifiche per gestire il trasferimento del controllo, l’evoluzione dello stato di
processi e attività, il passaggio dei dati, le interfacce.
13
1.3.2 Architettura Fisica
Il supporto fisico allo sviluppo di workflow è garantito dai Workflow Enactment Services (WES),
che consistono di uno o più motori capaci di creare, gestire ed eseguire le istanze di workflow. Le
applicazioni possono interfacciarsi a tali servizi tramite le Workflow Application Programming
Interface (WAPI). Nel modello adottato dalla WfMC (Figura 1.4) si assume una separazione logica
tra l’attività di controllo logico che costituisce il WES e la parte relativa agli strumenti applicativi e
agli utenti finali che costituisce l’esecuzione associata a ciascuna attività.
In un WES distribuito, diversi motori di workflow controllano ciascuno una parte della messa in
opera del processo e interagiscono con un sottoinsieme di utenti e strumenti applicativi relativi alle
attività comprese nei processi dei quali sono responsabili.
Figura 1.4: Architettura fisica di un WfMS
• Il motore di workflow : È il componente runtime più importante del sistema di gestione.
Solitamente è implementato su di un server e riceve istruzioni dagli altri componenti del
sistema. Il suo ruolo principale consiste nello stabilire le priorità dei diversi compiti, porli nel
giusto ordine e assegnarli alle risorse. Per poter fare ciò deve essere in grado di interpretare le
regole assegnate in fase di definizione del processo. Ciascun motore di workflow presente nel
WES provvede alle funzioni di:
o Interpretazione della definizione del processo;
o Controllo delle istanze di processo;
o Navigazione tra le attività di processo, gestendo parallelismo, sequenzialità, cicli,
condizioni, dati e deadline;
o Sign-on e sign-off degli specifici partecipanti;
o Identificazione delle interazioni sulle interfacce utenti;
14
o Mantenimento e passaggio dei dati connessi al workflow;
o Chiamata di applicazioni e collegamento a dati esterni;
o Controllo, amministrazione e verifica degli obiettivi.
• Le applicazioni esterne : Le interazioni con le risorse esterne al motore di workflow
avvengono attraverso due tipi di interfacce:
o Client application: interagisce con un worklist handler che organizza il lavoro di gestione
delle risorse, selezionando e facendo progredire singoli lavori contenuti nella lista;
o Invoked application: abilita il workflow engine a intraprendere una particolare attività, in
genere priva di interfaccia utente. Nel caso una particolare attività usi strumenti che
richiedono interazione con l’utente, essa viene in genere invocata tramite un’interfaccia
worklist per garantire maggiore flessibilità nella schedulazione delle operazioni.
Altre interazioni il motore di workflow le avrà con gli strumenti di definizione e con quelli di
monitoraggio dei processi. Sarà poi possibile per un WES interagire con analoghe architetture
impegnate su altri workflow.
Nel dettaglio, le client application di supporto all’enactment di un workflow offriranno:
o ambiente di modellazione: tool grafici per la definizione del processo, tramite i quali
vengono definiti l’inizio e la fine del processo, le attività intermedie con le relative
ramificazioni, le attività che richiedono l’interfacciamento con altre applicazioni, le attività
manuali. A seconda delle funzionalità del tool grafico, si può disporre di oggetti predefiniti
che costituiranno la rappresentazione grafica del processo (ad esempio bottoni per spostare
nodi e collegamenti, nodi per trasferimenti condizionati, nodi di rendez-vous, nodi di
sottoprocesso). I tool di definizione possono far parte integrante del sistema di gestione di
workflow o esserne separati. In quest’ultimo caso l’interfacciamento col motore di
workflow avviene attraverso le WAPI.
o ambiente di sviluppo: tool per la rappresentazione della mappa dei ruoli e dei gruppi
gerarchici o collaborativi, per la definizione di dati, parametri e condizioni utilizzati nelle
singole attività di un processo o rilevanti per il processo globale e per costruire
l’applicazione di workflow, cioè programmi per gestire le informazioni che viaggiano
attraverso il processo.
o ambiente per la gestione: tool per il monitoring dei processi attivi (controllo
dell’avanzamento), per la gestione dei processi e delle attività, per la generazione di
statistiche sull’utilizzo delle risorse e sul tempo medio richiesto per completare task.
o ambiente runtime delle applicazioni client: fornisce quello che l’utente vede quando usa
un’applicazione di workflow. Comprende l’accesso trasparente al Database, alle
applicazioni legacy, al sistema di gestione documentale (EDM), incluse le componenti per
l’interfaccia della work list dell’utente coinvolto nel processo, e tutti gli oggetti che il
15
motore del workflow manipola. Gli utenti del sistema utilizzano l’applicazione client per
interagire col motore di workflow. Questo mette a disposizione diverse funzionalità:
∗ Login: il client identifica gli utenti, il ruolo da essi ricoperto ed effettua la
connessione col motore di workflow.
∗ Creazione di nuove istanze di processo: col termine “istanza di un processo” si
intende una particolare realizzazione di una tipologia di processo. L’avvio di
un’istanza di processo è anche detto “istanziazione”.
∗ Richiesta o assegnamento di una nuova unità di lavoro: a seconda che il sistema di
gestione del workflow sia di tipo “push” o “pull” il client implementa una delle due
funzionalità.
∗ Accesso ai dati di applicazione necessari allo svolgimento del compito: a questo
scopo il client formula una query per accedere ai dati, in genere memorizzati su un
database relazionale. Questi possono includere dettagli sull’oggetto del processo,
documenti in formato immagine e in generale dati riguardanti la particolare istanza.
∗ Marcatura di un’unità di lavoro: sono disponibili delle opzioni che consentono
all’operatore di marcare un’unità di lavoro come “completata” o, alternativamente, di
sospenderla o inviarla ad un altro operatore in caso vi siano problemi.
∗ Visione dello stato delle attività: questa utilità consente agli operatori di verificare
quali attività non sono state ancora completate.
∗ Aggiornamento della definizione di un processo: in alcuni software di workflow è
possibile applicare questa funzione direttamente dal client. Essa consente, ad esempio,
di cambiare gli attributi di un ruolo o di definire un nuovo processo.
A tali componenti normalmente si aggiungono le componenti software o hardware che
permettono l’integrazione con applicazioni o prodotti specializzati (per esempio di
archiviazione ottica, di firma digitale, strumenti di BPR).
• Le interfacce : Le API e gli standard di scambio sviluppati dalla WfMC sono denominati
WAPI (Workflow API) . Ciascuno dei cinque livelli di interfaccia presenti nell’architettura
fisica (Figura 1.4) mette a disposizione delle API tra il motore di workflow e gli altri
componenti del sistema, in particolare :
o Interfaccia 1: i "definition tools" possono essere presenti all'interno del prodotto di workflow,
oppure essere parte di un prodotto di business process design che include anche altre
componenti di analisi e modellazione; in quest'ultimo caso il sistema di workflow dovrà solo
importare ed interpretare (senza definire) i dati relativi al processo con il software per la
definizione di processi, consentendo l’aggiornamento run-time delle regole di workflow.
16
o Interfaccia 2: con l’applicazione client le API specificano come l’utente può interagire con il
motore di workflow, visionando e completando le unità di lavoro presenti in coda. In sostanza è
il responsabile del worklist handler per ciò che riguarda la selezione e l'aggiornamento dei
singoli work item all'interno della worklist. Un worklist handler può essere una semplice
applicazione desktop che affiancata da altri office services come mail e work-in-progress
folder, fornisce un unico sistema di gestione e assegnazione dei "compiti" all'utente finale,
oppure essere parte di un workflow management product e svolgere funzioni molto più
sofisticate, come ad esempio il controllo sull'allocazione dei work-item ai partecipanti,
fornendo facilities come bilanciamento dei carichi e riassegnazione dei compiti.
o Interfaccia 3: con le applicazioni esterne. Consente di chiamare altre applicazioni mediante
RPC (Remote Procedure Call) o altre procedure.
o Interfaccia 4: con altri motori di workflow. Possono infatti esserci due sistemi ciascuno dei
quali controlla solo una parte di un processo ed interagisce solo con quel sottogruppo di utenti
e con gli application tools che riguardano le attività coinvolte nella parte di processo di cui è
responsabile. In questo caso è necessaria sia una comune interpretazione del definition process
sia uno scambio reciproco di informazioni sulle attività. La natura e il flusso delle informazioni
che i due sistemi si possono scambiare, sono rappresentati da:
o activity or sub-process invocation
o process definition read/write
o process/activity status/control
o 2 application/workflow relevant data transfer
o 2 sinchpoint coordination
o Interfaccia 5: con applicazioni di amministrazione e monitoraggio. È utilizzata dagli
amministratori per controllare le prestazioni del sistema globale e delle singole risorse.
Permette inoltre di simulare il flusso di lavoro per verificare il funzionamento del sistema di
gestione prima di renderlo effettivo.
1.3.3 Architettura Funzionale
Il concetto di interscambio di definizione di processo presentato dalla WfMC (Figura 1.5)
evidenzia nei sistemi di gestione dei workflow la presenza di due livelli strutturali:
o un livello di modellazione che comprende il metamodello e i formalismi grafici;
o un livello di messa in opera che prevede un motore per la simulazione, uno per
l’esecuzione e uno per il monitoraggio, basati sul linguaggio XPDL.
In particolare, all’interno del livello di modellazione si passerà dal metamodello ai formalismi
grafici aggiungendo attributi semantici e relazioni d’uso.
17
Tra il livello di modellazione e quello di messa in opera, sarà invece necessario prevedere uno
strato di interfaccia che permetta di esportare il contenuto semantico dei formalismi su una
piattaforma basata su sintassi XPDL.
Figura 1.5: Il concetto di interscambio di definizione di processo
1.4 Classificazione dei WfMS
I prodotti di workflow più attuali tra quelli disponibili sul mercato vengono definiti di tipo process
centric, cioè prodotti che si basano sulla rappresentazione e sul controllo del flusso di lavoro. Essi
si contrappongono storicamente ai prodotti più datati, cosiddetti di tipo data o document centric,
basati su funzioni di canalizzazione del flusso di dati e dei documenti all’interno
dell’organizzazione che utilizzano soluzioni di imaging integrate a soluzioni di document
management e routing.
1.4.1 Transazionali, collaborativi, ad hoc
I prodotti di tipo process centric vengono classificati in base al grado di strutturazione del flusso di
lavoro e agli strumenti di supporto per la collaborazione che sono in grado di fornire. Si
individuano tre categorie di sistemi:
• workflow transazionali
• workflow collaborativi
• workflow ad hoc
Il workflow transazionale o strutturato gestisce attività strutturalmente ben definite e ripetibili, che
possono essere specificate attraverso una serie di regole. Si suddivide a sua volta in due sottoclassi:
18
• I sistemi di workflow amministrativo gestiscono il flusso di moduli in formato elettronico
(form), integrandolo con sistemi di messaggistica o e-mail. Le form, una volta compilate,
seguono automaticamente un percorso predefinito dall'amministratore.
• I sistemi di workflow di produzione gestiscono flussi di lavoro fortemente strutturati,
definiti da regole e dipendenze ben formalizzate. Supportano la quasi totale
automatizzazione dei processi, con una minima interazione tra le risorse che vi partecipano.
Nella maggior parte dei casi, consentono l'integrazione con i sistemi informativi già
presenti all'interno dell'azienda.
Il workflow collaborativo gestisce processi meno rigidi rispetto ai precedenti e prevede una
relazione tra gli utenti più vicina a quella tipica della collaborazione tra gruppi di lavoro, di fatto
sono un’evoluzione di prodotti di groupware che sono stati integrati con motori di workflow.
L’utilizzo di prodotti di groupware non integrati con sistemi di workflow, costringerebbe tra l’altro
a programmare il flusso logico del processo senza l’ausilio di tool grafici e strumenti di sviluppo.
La creazione e la manutenzione di applicazioni di workflow realizzate con questo approccio è
pesantissima.
Il workflow ad hoc consente di automatizzare parti di processi non completamente definiti, in
modo da garantire la possibilità di esecuzione differenziata a seconda dei casi. Tale possibilità
viene realizzata utilizzando sistemi più “leggeri” che lasciano all’utente il compito di eseguire di
sua iniziativa passi significativi della procedura ogniqualvolta sia richiesta una modifica dinamica
al processo in esecuzione.
1.4.2 Push e Pull
Un’ulteriore classificazione spesso applicata ai software di workflow si basa sulla modalità di
estrazione delle unità di lavoro dalla coda; tale estrazione può avvenire in modalità “push” e “pull”.
Nel modello “push” è il software stesso che si occupa di prelevare le unità di lavoro dalla coda e di
assegnarle alle risorse in modo automatico.
Nel modello “pull” l’onere del prelievo ricade sull’utente finale. La tipologia “pull” è utilizzata
prevalentemente in applicazioni di workflow ad hoc, mentre la modalità “push” è tipica del
workflow strutturato.
1.5 Standard per la Modellazione
1.5.1 XPDL
La necessità di uno standard comune nasce dall’esigenza delle organizzazioni che sfruttano i
prodotti del workflow per assicurare i loro investimenti e, d’altro canto essa diventa un’esigenza
primaria quando si richiede ai sistemi di workflow di comunicare ed operare con quelli di altre
organizzazioni .La WfMC ha sviluppato una struttura che stabilisce gli standard del workflow ,
fornendo un modello di riferimento per tutti i produttori di sistemi di workflow, identificando