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,
Gestione delle eccezioni2 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 eccezioni3 Classificazione eccezioni Eccezioni TipoTempo Behavioral: esecuzione impropria o fuori ordine di attività del processo Semantic: dovute allinsuccesso dellesecuzione delle attività System: causate da malfunzionamenti dellinfrastruttura dellapplicazione Web Sincrone: si verificano durante lesecuzione di unattività 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 eccezioni4 Framework Workflow Meta-data Model: attraverso i metadati del workflow e delle eccezioni, si estende il modello dei dati dellapplicazione 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 allutente leccezione catturata Handling Model: usato per gestire leccezione seguendo politiche predefinite (Accept, Reject, Abort, Ignore e Resume) o ad hoc.
Gestione delle eccezioni5 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 linput e loutput per i task (stabiliscono il flusso) e per lutente 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 eccezioni6 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 dellutente (navigazione utente flusso processo) Business Class Diagram: definisce aspetti statici e dinamici del sistema Operational Links: permettono limplementazione di operazioni One- Step e Multi-Step
Gestione delle eccezioni7 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 lutente naviga tra le diverse pagine di unattività Si possono gestire più processi alla volta (sospensione/ripristino)
Gestione delle eccezioni8 Business Process Modeling Notation BPMN: fornisce un framework business-oriented per descrivere limplementazione interna di un processo Ai tasks e alle attività è associato il contesto che tiene traccia di ciò che accade durante lesecuzione Il contesto indirizza lutente verso lappropriato gestore dellevento, attraverso il flusso delleccezione Eccezioni gestite: messaggi, timer, controllo dati, costrutto apposito. Se il processo è inattivo o completo leccezione non è gestita Possibilità di associare ad unattività una logica di compensazione nel caso di rollback
Gestione delle eccezioni9 Business Process Execution Language for Web Services BPEL4WS: linguaggio per la definizione dei processi basato su XML, offre linvocazione di Web Services orientati ai processi Attività base corrispondenti a operazioni WSDL A livello di scope si tiene traccia dello stato dellattività/processo Ogni scope ha i propri gestori di fault (errori di applicazioni, errori interni e derivanti dallinvocazione 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 eccezioni10 Confronto tra le diverse soluzioni Eccezione Comportamentale Semantica sincrona Semantica asincrona Di Sistema Linguaggio BPEL4WSC, N, G (p) C (p), N, G- BPMNC, N, G C (p), N, G- OO-HC(p), G(p)C (p), N, G (p)-- OOHDMC, GC (p), N, G (p)-- UWE-C (p), N, G (p)-- WSDM-C (p), N, G (p)-- XPDL---- 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 loperazione è svolta solo parzialmente.
Gestione delle eccezioni11 Conclusioni Necessità di mantenere separato il modello di cattura delle eccezioni da quello del workflow Catturare eccezioni anche durante lattività, 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 dastrazione tale da permettere lutilizzo della soluzione in linguaggi di modellazione per applicazioni Web (vedi WebML).