1
Un sistema di persistenzaper motori di workflow
business-oriented BPMN
RelatoreProf. Alberto Bartoli
CorrelatorePh.D. Carlos Kavka
CandidatoAlessandro Segatto
Thursday, April 13, 2023
2
Workflow• Descrizione astratta di un processo reale
svolto da operatori umani (spesso in forma sequenziale)
• riguarda la creazione di un documento o di un progetto
Thursday, April 13, 2023
3
Workflow (2)• Può essere di diversi tipi
• Scientific, Business
• Può essere descritto in diversi modi e formati
• L’esecuzione viene orchestrata da un engine (o motore)
Thursday, April 13, 2023
4
Obiettivo Tesi • Estendere le funzionalità di un engine,
consentendo di salvare il suo stato e ripristinarlo in seguito.
Engine ESTECO attuale
Engine ESTECO esteso
Thursday, April 13, 2023
5
Obiettivo Tesi (2)
Errori Vari
Ripristinare lo stato dell'engine
precedente al fallimento
Soluzione comune
Thursday, April 13, 2023
6
BPMN• Formalismo standard per la descrizione di
workflow
Forma grafica:
Thursday, April 13, 2023
7
BPMN (2)
Forma testuale equivalente (XML):
<userTask id="ApproveOrder" name="ApproveOrder"><potentialOwner>
<resourceRef>tns:regionalManager</resourceRef><resourceParameterBinding parameterRef="tns:buyerName">
<formalExpression>getDataInput('order')/address/name </formalExpression>
</resourceParameterBinding><resourceParameterBinding parameterRef="tns:region">
<formalExpression>getDataInput('order')/address/country </formalExpression>
</resourceParameterBinding></potentialOwner>
</userTask>
Thursday, April 13, 2023
8
Scientific Workflow
• È una specializzazione di workflow
• Descrive un processo computazionale
• Usato per modellare ed automatizzare un processo di calcolo ingegneristico
Thursday, April 13, 2023
9
Requisiti
• Scalabilità
• Gestione di grandi quantità di dati
• Gestione degli errori
Thursday, April 13, 2023
10
Difficoltà• Salvataggio in uno stato valido
• Non alterare il flusso d'esecuzione
• Arresto rapido dell’engine
• Non inficiare la scalabilità dell’engine
• Non aumentare complessità engine
• Possibilità di salvare lo stato del motore il maggior numero di volte possibile nel corso di un'esecuzione
Thursday, April 13, 2023
11
Engine ESTECO
• Orchestra l’esecuzione di scientific workflows
• Utilizza risorse distribuite
• Input BPMN (in formato XML)
Thursday, April 13, 2023
12
Process Instance
Workflow event queueRunnabl
eRunnabl
eRunnabl
e
Workmanage
rWork
Message
Work Message QueueWork
MessageWork
MessageWork
Message
Work Job Engine
Job 1
Job 2
Job 3
Work Job Engine
Job 1
Job 2
Thursday, April 13, 2023
13
Progettazione - Interfaccia
• Pause – Resume
• Save – Load
• Start - Shutdown
• Forced Shutdown
Thursday, April 13, 2023
14
Progettazione• Ordine di spegnimento
thread
• Work manager thread
• Workflow event queue thread
Thursday, April 13, 2023
15
Progettazione (2)• Oggetti da salvare
Process Instance
Workflow event queueRunnabl
eRunnabl
eRunnabl
e
Thursday, April 13, 2023
16
Workmanage
r
Process Instance
Workflow event queueRunnabl
eRunnabl
eRunnabl
e
Engine
Progettazione (3)• Ripristino dei riferimenti
Thursday, April 13, 2023
17
Implementazione• Pattern di funzionamento per i thread
• Pattern per la gestione dei riferimenti verso la process instance
• Sistema per ricostruire i riferimenti del work manager alla process instance
Thursday, April 13, 2023
18
Conclusioni• L’engine è in grado si fermarsi e salvare il
suo stato
• L’engine è in grado di ripristinare il suo stato e riprendere l’esecuzione
• Sviluppi futuri • Utilizzo di quanto prodotto per aumentare la
robustezza dell’engine• Valutazione della bontà delle soluzioni trovate
introducendo nuovi servizi
Thursday, April 13, 2023
19
Grazie per l’attenzione