Un sistema di persistenza
 per motori di workflow
business-oriented BPMN

Candidato            Relatore
Alessandro Segatto   Prof. Alberto Bartoli

                     Correlatore
                     Ph.D. Carlos Kavka
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
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)
Obiettivo Tesi
• Estendere le funzionalità di un engine, consentendo
  di salvare il suo stato e ripristinarlo in seguito.



                          Engine ESTECO attuale


                                        Engine
                                     ESTECO esteso
Obiettivo Tesi (2)
      Errori Vari         Soluzione
                           comune




                      Ripristinare lo stato
                     dell'engine precedente
                           al fallimento
BPMN
• Formalismo standard per la descrizione di workflow

Forma grafica:
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/coun
            try </formalExpression>
        </resourceParameterBinding>
    </potentialOwner>
</userTask>
Scientific Workflow
• È una specializzazione di workflow

• Descrive un processo computazionale

• Usato per modellare ed automatizzare un processo
  di calcolo ingegneristico
Requisiti

 • Scalabilità

 • Gestione di grandi quantità di dati

 • Gestione degli errori
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
Engine ESTECO
• Orchestra l’esecuzione di scientific workflows

• Utilizza risorse distribuite

• Input BPMN (in formato XML)
Process Instance                     Workflow event queue
                            Runnable Runnable Runnable



                           Work
                           manager                       Work
                                                        Message


          Work Message Queue
  Work Message      Work Message      Work Message



Work Job Engine                 Work Job Engine

 Job 1   Job 2     Job 3         Job 1   Job 2
Progettazione - Interfaccia
• Pause – Resume

• Save – Load

• Start - Shutdown

• Forced Shutdown
Progettazione
• Ordine di spegnimento thread
   • Work manager thread

   • Workflow event queue thread
Progettazione (2)
• Oggetti da salvare


                       Process Instance




                       Workflow event queue
                Runnable Runnable Runnable
Progettazione (3)
• Ripristino dei riferimenti


         Process Instance        Engine




                                 Work
                                 manager
          Workflow event queue
 Runnable Runnable Runnable
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
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
Grazie per l’attenzione

Un sistema di persistenza per motori di workflow business-oriented BPMN

  • 1.
    Un sistema dipersistenza per motori di workflow business-oriented BPMN Candidato Relatore Alessandro Segatto Prof. Alberto Bartoli Correlatore Ph.D. Carlos Kavka
  • 2.
    Workflow • Descrizione astrattadi un processo reale svolto da operatori umani (spesso in forma sequenziale) • riguarda la creazione di un documento o di un progetto
  • 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)
  • 4.
    Obiettivo Tesi • Estenderele funzionalità di un engine, consentendo di salvare il suo stato e ripristinarlo in seguito. Engine ESTECO attuale Engine ESTECO esteso
  • 5.
    Obiettivo Tesi (2) Errori Vari Soluzione comune Ripristinare lo stato dell'engine precedente al fallimento
  • 6.
    BPMN • Formalismo standardper la descrizione di workflow Forma grafica:
  • 7.
    BPMN (2) Forma testualeequivalente (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/coun try </formalExpression> </resourceParameterBinding> </potentialOwner> </userTask>
  • 8.
    Scientific Workflow • Èuna specializzazione di workflow • Descrive un processo computazionale • Usato per modellare ed automatizzare un processo di calcolo ingegneristico
  • 9.
    Requisiti • Scalabilità • Gestione di grandi quantità di dati • Gestione degli errori
  • 10.
    Difficoltà • Salvataggio inuno 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
  • 11.
    Engine ESTECO • Orchestral’esecuzione di scientific workflows • Utilizza risorse distribuite • Input BPMN (in formato XML)
  • 12.
    Process Instance Workflow event queue Runnable Runnable Runnable Work manager Work Message Work Message Queue Work Message Work Message Work Message Work Job Engine Work Job Engine Job 1 Job 2 Job 3 Job 1 Job 2
  • 13.
    Progettazione - Interfaccia •Pause – Resume • Save – Load • Start - Shutdown • Forced Shutdown
  • 14.
    Progettazione • Ordine dispegnimento thread • Work manager thread • Workflow event queue thread
  • 15.
    Progettazione (2) • Oggettida salvare Process Instance Workflow event queue Runnable Runnable Runnable
  • 16.
    Progettazione (3) • Ripristinodei riferimenti Process Instance Engine Work manager Workflow event queue Runnable Runnable Runnable
  • 17.
    Implementazione • Pattern difunzionamento per i thread • Pattern per la gestione dei riferimenti verso la process instance • Sistema per ricostruire i riferimenti del work manager alla process instance
  • 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
  • 19.