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
Scarica

Lucidi