# Sistemi informativi/Workflow Management System

Sistemi informativi
Copertina Tutti i moduli · Sviluppo
    CopertinaSistemi informativi/Copertina
* IntroduzioneSistemi informativi/Introduzione
* ArchitettureSistemi informativi/Architetture
* Comunicazione tra SISistemi informativi/Comunicazione tra SI
* Portafoglio applicativoSistemi informativi/Portafoglio applicativo
* Enterprise Resource PlanningSistemi informativi/Enterprise Resource Planning
* Business Process ManagementSistemi informativi/Business Process Management
* Workflow Management SystemSistemi informativi/Workflow Management System
* Workflow Management CoalitionSistemi informativi/Workflow Management Coalition
Modifica il sommario

## Concetti essenziali
### Attività

Un'attività è l'operazione base(atomo) di ogni procedura aziendale. Ogni attività può essere classificata attraverso due tipologie:
* attività manuale, cioè svolta da una o più persone,
* attività automatizzata, cioè che non necessita di essere svolta da un essere umano

### Il Business Process

Un Business Process(BP) è l'obiettivo che l'azienda intende ottenere. Un BP è definito attraverso una Process Definition(PD) che sostanzialmente è la rappresentazione di ciò che l'azienda punta ad ottenere. La PD è costituita da eventuali altri sub-processi e da una rete di attività correlate tra loro. Ad ogni PD vengono associati
* criteri per indicarne l'inizio e la fine
* informazioni riguardanti le singole attività quali: partecipanti, documenti e dati collegati, applicazioni software da utilizzare
Se nella PD sono descritte attività di tipo automatizzato allora può essere utilizzata per definire e controllare l' istanza di processo(la rappresentazione di ciò che si sta verificando) che a loro volta includerà istanze di attività(la rappresentazione delle attività automatizzate). Ogni istanza di attività sarà suddivisa in compiti(tasks) assegnati ai singoli partecipanti delle attività, e avrà una o più applicazioni di supporto.

### Cos'è un Workflow?

Un Workflow è l’automazione totale o parziale di un Business Process(BP), in cui documenti, informazioni o compiti passano da un partecipante a un altro per svolgere attività, secondo un insieme di regole procedurali. In un dato istante possono essere operative molte istanze di processo (durante l’enactment di un processo), ciascuna associata a un insieme di dati rilevanti per quella particolare istanza di processo (caso o Workflow case)

### Partecipante di un Workflow

Il partecipante di un workflow è una risorsa aziendale che esegue il lavoro associato ad una particolare attività. La lista dei lavori che un partecipante deve eseguire prende il nome di worklist. Una risorsa può essere
* una risorsa umana, cioè un singolo individuo o un insieme di persone che condividono un insieme di compiti da svolgere,
* un'applicazione software,
* un hardware specifico.
La caratteristica fondamentale che deve avere un partecipante, al di fuori della natura stessa del partecipante, è che deve essere in grado di eseguire il compito.

## Il WorkFlow Management System (WFMS)

In organizzazioni complesse, la pianificazione e la gestione di diversi BP diventa difficile, inoltre il controllo dei flussi di lavoro può richiedere tanto tempo quanto l’esecuzione del lavoro stesso. E' possibile risolvere questi problemi mediante l'utilizzo di un Workflow management software che gestisca attivamente il coordinamento di attività tra i partecipanti del processo. Un WFMS quindi orchestra(coordina) le istanze di processo di un'azienda tenendo conto dei dati e dei partecipanti associati ad ogni istanza.

### Aree funzionali

La modalità in cui opera un WFMS è definita attraverso tre aree funzionali:
* Build-time functions riguardano la definizione e la modellazione dei processi di workflow, e delle attività che li costituiscono
* Run-time functions riguardano la getione dei processi di workflow in un ambiente operativo e la sequenzializzazione delle attività gestite come parte del processo
* Run-time interactions with human users and IT sono tools applicativi che si interfacciano con l'utente e permettono di eseguire le attività

### Esecuzione di un processo

Un processo, se orchestrato da un WFMS, è soggetto a variazioni del suo stato ben definite. Queste variazioni sono riassunte nel seguente schema.
Le frecce del grafico indicano le transazioni di stato che possono essere effettuate da un generico processo orchestrato da WFMS. Ciò implica che, ad esempio, un processo che è in stato di inizializzazione non può passare direttamente allo stato di completamento. Per essere completato il processo dovrà trovarsi in stato di Running.

#### Differenza tra Suspended e Active

Un processo è in stato di running se la sua istanza sta eseguendo una o più attività, se non è in esecuzione alcuna attività del processo questo può passare o in stato di active o in stato di suspended.
* active: un processo non sta eseguendo nessuna istanza di attività ma una o più di esse sono ancora instanziate
* suspended: il processo non ha alcuna istanza di attività allocata ma si attende l'allocazione di qualche istanza

### Esecuzione di un'attività

Così come i processi anche le istanze di attività, e quindi le attività automatizzate, sono soggette a variazioni di stato non arbitrarie.
La differenza principale tra l'esecuzione di un processo e quella di un'attività sta nel fatto che in quest'ultima non ho lo stato di running, perché inglobato dallo stato di active. Quindi se un'attività si trova in stato di active, automaticamente sta facendo qualcosa.

#### Differenza tra Inactive e Suspended

Similmente a quanto succede per l'esecuzione di un processo, anche per quanto riguarda le attività la differenza tra i due stati sta nel fatto che nello stato inactive ho ancora allocato qualcosa. Per le attività però le uniche cose che posso allocare sso=ono i tasks(compiti), quindi un'attività sarà sospesa se non ha task da eseguire altrimenti sarà semplicemente inattiva.

### Modello generale di un WFMS

Nel modello generale di un WFMS son presenti tre tipi di componenti:
* componenti software: offrono supporto alle varie funzioni interne al Workflow system
* definizioni di sistema e control data: utilizzati per svolgere le proprie attività dai componenti software
* applicazioni ed applications databases: non sono parte integrante del sistema ma possono essere invocate dal WFMS come supporto alle funzioni

#### Process Definition Tool

Questo tool viene utilizzato per far si che la descrizione di un processo sia eseguibile da un computer. Questo tool può essere parte di uno specifico prodotto del workflow oppure di un prodotto per l'analisi dei business process, in questo secondo caso deve essere dotato di un formato compatibile per lo scambio di informazioni con il software del workflow.

#### Worklist

Quando il sistema necessita dell'interazione di un utente, il workflow engine aggiunge un elemento alla worklist sotto la supervisione del worklist handler, che gestisce le interazioni con i partecipanti del workflow.
Questo procedimento può essere invisibile ai partecipanti, in questo caso il software del workflow mostra iterativamente il prossimo compito da svolgere, oppure può essere visibile ai partecipanti, che scelgono indipendentemente i propri compiti e li portano a temine.

#### Worklist Handler & User Interface

Il worklist handler è un software che fa parte del workflow engine, che gestisce l'interazione tra i partecipanti e il workflow enactment service. E' responsabile dei lavori che richiedono l'intervento degli utenti ed interagisce con il workflow enactment software attraverso la worklist.
Nel diagramma la user interface è disegnata come una componente software separata, responsabile del look and feel che le varie local interface utilizzano per dialogare con gli utenti. Essa però può anche essere parte integrante del workflow handler

#### I dati

Per una corretta orchestrazione dei processi il WFMS si basa su dei dati. I dati all'interno di un WFMS sono distinti in
* Workflow Control Data: sono dati interni controllati dal WFMS e/o dal Workflow engine
* Workflow Relevant Data: utilizzati dal WFMS per determinare le transizioni di stato delle istanze di processo
* Workflow Application Data: sono dati specifici di ogni istanza di processo e, quindi, non accessibili dal WFMS