Argomenti Avanzati di Sistemi Informativi Approfondimento su Workflow e Web Services: "Gestione delle eccezioni: confronto tra soluzioni per applicazioni Web-based e linguaggi di definizione di processi“ Alberto Addis, e-mail: [email protected] Indice 1. Classificazione eccezioni 2. Framework per la cattura, notifica e gestione delle eccezioni 3. Presentazione dei linguaggi per la definizione e modellazione dei processi 4. Confronto tra i diversi approcci 5. Conclusioni Gestione delle eccezioni 2 Classificazione eccezioni Eccezioni Tipo Tempo Behavioral: esecuzione impropria o fuori ordine di attività del processo Semantic: dovute all’insuccesso dell’esecuzione delle attività System: causate da malfunzionamenti dell’infrastruttura dell’applicazione Web Sincrone: si verificano durante l’esecuzione di un’attività Asincrone: si possono verificare in qualsiasi istante, indipendentemente dallo stato delle attività Le eccezioni si possono classificare anche in base al loro scope (che identifica la parte di workflow affetta): Activity, Activities, Case, Cases. Gestione delle eccezioni 3 Framework •Workflow Meta-data Model: attraverso i metadati del workflow e delle eccezioni, si estende il modello dei dati dell’applicazione Web •Capturing Model: fornisce i meccanismi per catturare eventi e generare eccezioni in modo che possano essere memorizzate nei metadati •Notifying Model: incorpora i meccanismi per presentare all’utente l’eccezione catturata •Handling Model: usato per gestire l’eccezione seguendo politiche predefinite (Accept, Reject, Abort, Ignore e Resume) o ad hoc. Gestione delle eccezioni 4 UML-based Web Engineering & Web Site Design Method UWE: metodo object-oriented, estende il modello di navigazione con primitive di processo • Activity Diagram UML con oggetti per rappresentare l’input e l’output per i task (stabiliscono il flusso) e per l’utente • Eccezioni gestibili solo a livello di transazioni WSDM: • ConcurTaskTrees: notazione per la definizione della gerarchia dei task (si usano anche operatori per esprimere condizioni temporali tra i task ) • Object Chunks: informazioni e funzionalità richieste da ciascun task • Eccezioni gestibili solo a livello di transazioni Entrambi non supportano Web Services e non hanno metadati espliciti per il processo Gestione delle eccezioni 5 Xml-based Process Definition Language & Object-Oriented Hypermedia XPDL: linguaggio strutturato a grafo (archi=transizioni, nodi=attività) • Package: contiene la definizione del processo; • Stato delle attività a livello di processo, ma non ci sono gestori di eccezioni • Deadlines e controlli durante le transizioni • Nessun supporto a transazioni e compensazione OO-H: approccio objec-oriented che integra i processi nella modellazione di applicazioni Web • Modellazione del processo: dalla definizione si ottiene il modello di navigazione dell’utente (navigazione utente flusso processo) • Business Class Diagram: definisce aspetti statici e dinamici del sistema • Operational Links: permettono l’implementazione di operazioni OneStep e Multi-Step Gestione delle eccezioni 6 Object-Oriented Hypermedia Design Method OOHDM: estende il modello dei contenuti e della navigazione con le attività • Activity Diagram: specifica il flusso del processo, consentiti transizioni one-way e two-way • Approccio simile a una macchina a stati finiti • Utilizzo di speciali link che eseguono delle operazioni necessarie a memorizzare lo stato del processo • “Decorazione” dei nodi del modello navigazionale da parte del contesto quando l’utente naviga tra le diverse pagine di un’attività • Si possono gestire più processi alla volta (sospensione/ripristino) Gestione delle eccezioni 7 Business Process Modeling Notation BPMN: fornisce un framework business-oriented per descrivere l’implementazione interna di un processo • Ai tasks e alle attività è associato il contesto che tiene traccia di ciò che accade durante l’esecuzione • Il contesto indirizza l’utente verso l’appropriato gestore dell’evento, attraverso il flusso dell’eccezione • Eccezioni gestite: messaggi, timer, controllo dati, costrutto apposito. Se il processo è inattivo o completo l’eccezione non è gestita • Possibilità di associare ad un’attività una logica di compensazione nel caso di rollback Gestione delle eccezioni 8 Business Process Execution Language for Web Services BPEL4WS: linguaggio per la definizione dei processi basato su XML, offre l’invocazione di Web Services orientati ai processi • Attività base corrispondenti a operazioni WSDL • A livello di scope si tiene traccia dello stato dell’attività/processo • Ogni scope ha i propri gestori di fault (errori di applicazioni, errori interni e derivanti dall’invocazione di WS) • Se il fault si propaga allo scope di processo questo termina in modo anomalo • Gestori della compensazione associati a uno scope • Gestori di eventi abilitati quando lo scope a cui sono associati è attivo Gestione delle eccezioni 9 Confronto tra le diverse soluzioni Linguaggio Comportamentale Eccezione Semantica Semantica sincrona asincrona BPEL4WS C, N, G (p) C, N, G (p) C (p), N, G - BPMN C, N, G C, N, G C (p), N, G - OO-H C(p), G(p) C (p), N, G (p) - - OOHDM C, G C (p), N, G (p) - - UWE - C (p), N, G (p) - - WSDM - C (p), N, G (p) - - XPDL - - - - Di Sistema La tabella mette a confronto le diverse soluzioni indicando la capacità di catturare (C), notificare (N) e gestire (G) le diverse eccezioni. La (p) indica che l’operazione è svolta solo parzialmente. Gestione delle eccezioni 10 Conclusioni • Necessità di mantenere separato il modello di cattura delle eccezioni da quello del workflow • Catturare eccezioni anche durante l’attività, non solo nelle transizioni • Prevedere il supporto ai Web Services per consentire la gestione di eccezioni provenienti da risorse esterne (e quelle di sistema) • Mantenere un livello d’astrazione tale da permettere l’utilizzo della soluzione in linguaggi di modellazione per applicazioni Web (vedi WebML). Gestione delle eccezioni 11