Business Process Modeling and Notation e WebML 24
Introduzione I Web Service e BPMN sono standard de facto per l interoperabilità in rete a servizio delle imprese moderne I Web Service sono utilizzati per l interazione tra sistemi remoti La specifica del processo di business si occupa della definizione dei vincoli di processo e dell orchestrazione dei Web Service Tuttavia il workflow di un processo di business raramente è costituito solamente dall orchestrazione di Web Service Spesso l interazione con gli utenti è fondamentale (BPEL4People vs BPEL4WS) È indispensabile un approccio model driven che coniughi l orchestrazione di Web Service e la modellazione dell interfaccia Web dell utente WebML BPMN 25
Model-driven development process 1. Specifica manuale del modello di business in BPMN (esteso) 2. Trasformazione automatica di BPMN in WebML 3. Eventuale raffinamento manuale del modello WebML 4. Generazione automatica del codice in ambiente J2EE 26
Che cos è BPM? BPM (Business Process Modeling) Definizione del processo di business in linguaggio (semi )formale BPMN è una notazione per definire processi di business BPMN copre tre livelli diversi di modellazione: Process Maps semplici flowchart delle attività Process descriptions Flowchart estesi con informazioni aggiuntive, ma non ancora in grado di modellare le performance del processo Process Models flowchart estesi con infornazioni aggiuntive in modo tale che il processo può essere analizzato, simulato ed eseguito 27
Concetti chiave Un limitato set di elementi grafici per consentire al designer di processo di comprendere il flusso di esecuzione delle attività Un Business Process Diagram (BPD) è costituito da quattro categorie di elementi Flow object (Events, Activities, Gateways) Connecting Objects (Sequence Flow, Message Flow, Associations) Swimlanes (Pool, Lanes) Artifacts (Data Objects, Groups, Annotations) 28
Pool e Lane Pool Lane Rappresenta il participante in un processo, cioè una particolare entità di business (e.g., una compagnia) oppure può essere un ruolo più generale (e.g., un fornitore, un compratore) È una partizione all interno della pool È utilizzata per organizzare e classificare attività all interno della pool È utilizzata spesso per modellare ruoli interni (e.g., Manager, Associato), sotto sistemi (per esempio, un applicazione software della ditta), dipartimenti (e.g., shipping, finance) Pool Lane 1 Lane 2 29
Come leggere un diagramma Il token è un concetto molto utile che aiuta nella lettura di un BPD L inizio di un processo genera un token che può essere eventualmente consumato alla fine del processo Un token segue la Sequence Flow e passa attraverso i Flow Objects del processo Il comportamento del processo può essere evidenziato tenendo traccia del movimento del token nel processo stesso Possono essere previsti più token nel caso di rami paralleli all interno del processo (attività eseguite in maniera concorrenziale) 30
Sequence Flow Una Sequence Flow specifica l ordine in cui sono eseguite le attività in un processo di business L inizio e la fine di una Sequence Flow può essere uno dei seguenti oggetti Eventi Attività Gateway 31
Attività Un attività Rappresenta un compito eseguito all interno di un processo di business Può essere Un task Un sotto-processo Può essere eseguita una volta sola o avere all interno dei cicli 32
Task Rappresenta l attività atomica inserita all interno di un processo di business; può essere eseguito manualmente: al di fuori del processo (per esempio, un cliente accetta l offerta) automaticamente, come servizio: implementato come un Web Service o come un altro tipo di applicazione da un essere umano con il supporto di un applicazione software e la cui esecuzione è opportunamente programmata Un task presenta un proprio stato Ready: pronto per essere eseguito Active: in esecuzione Completed: eseguito e completato Aborted: interrotto per qualche problema Può avere dei parametri 33
Un parametro: Parametri è una proprietà semplice che contiene un informazione gestita dal processo è usato quando è necessario prendere una decisione o mandare un messaggio è definito da un nome, un tipo semplice (e.g., string, integer) o complesso (business object), da un eventuale insieme di valori possibili, da una politica di selezione (singola o multipla) è definito a livello di pool 34
Un business object: Business Object è un oggetto complesso che contiene un entità gestita dal processo (per esempio, un ordine, una fattura) utile quando l informazione è di tipo strutturato e viene descritta da più proprietà una proprietà è di tipo semplice, descritta da un nome, il tipo, i valori ammissibili, la politica di selezione (semplice o multipla) un business object è definito a livello di processo 35
Un gateway: Gateway è usato per modellare biforcazioni o convergenze di Sequence Flow all interno del processo di business può essere eseguito manualmente da un utente (che sceglie in base ai valori di parametri che vanno mostrati all utente stesso) automaticamente, sulla base di condizioni di verità derivanti da particolari combinazioni di valori di parametri esistono diversi tipi di gateway esclusivo inclusivo parallelo 36
Exclusive Data-based Gateway 37
Inclusive Gateway 38
Parallel Gateway 39
Un evento: Eventi si verifica durante l esecuzione del processo di business influenza l esecuzione del processo, ha una causa (trigger) e un effetto (result) può iniziare un processo di business terminare un processo di business interrompere/riesumare un processo di business ne esistono di diversi tipi: nome, message, timer, signal, conditional, link, error, cancel, terminate, compensation 40
Esempio, 5 41
Signal event Un segnale è usato per la comunicazione tra pools oppure addirittura tra BPD diversi Un segnale è definito da un nome e da un insieme di parametri da mostrare o modificare Un segnale non è un messaggio, che ha un obiettivo specifico, ma è un broadcast processi multipli possono avere eventi che sono attivati dallo stesso segnale 42
Esempio 43
Sotto-processi Un sotto-processo modella un attività composta, che può essere dettagliata come controllo di flusso di altre attività I sotto-processi permettono lo sviluppo di processi di business in maniera iterativa Ogni sotto-processo punta ad un BPD definito separatamente Un sotto-processo presenta input/output propri che espone al momento della sua invocazione/esecuzione Un sotto-processo può facilitare la lettura e la consultazione del BPD 44
Sotto-processi 45
Trasformazione BPMN-WebML Generazione della base di dati contenente i metadati del processo Generazione della Home Site View per permettere il login dei diversi utenti Generazione di una Administration Site View per la gestione del processo Generazione di una Control Site View che implementa la logica di controllo del processo Generazione di un modulo per ogni attività/gateway del processo 46
Data Model Process Metadata Actors Run-Time Log
NEXT unit La next unit incapsula la logica di controllo del processo Sfrutta le informazioni contenute tra i metadati del processo Calcola lo stato corrente del processo e permette le transizioni di stato delle varie attività Richiede i seguenti input: caseid (l ID dell istanza del processo attualmente in esecuzione) activityinstanceid (l ID dell istanza di attività attualmente in esecuzione) conditionparameter (i valori necessari per valutare le condizioni) 48
Quattro modalità di esecuzione: NEXT unit (cont.d) Process start. Istanzia e fa partire un case dato il ProcessID Process end. Dato l activityinstanceid dell ultima attività, setta il Case a Ended Calculate and execute. Dato l activityinstanceid dell ultima attività, attiva l esecuzione delle attività successive Execute. Dato l activityinstanceid, setta il suo stato ad Active e ne lancia l esecuzione 49