An Event-driven Process Execution Model for Process Virtual Machine Dongyao Wu, Jun Wei, Chushu Gao, Wensheng Dou

Embed Size (px)

Citation preview

  • Slide 1

An Event-driven Process Execution Model for Process Virtual Machine Dongyao Wu, Jun Wei, Chushu Gao, Wensheng Dou Slide 2 Outline Background Motivation Introduction to Process Virtual Machine Why Event-driven Event-driven Process Execution Model Implementation of PVM Evaluation Slide 3 Background Various BPM Language Slide 4 Background During these years, a number of process modeling/description languages (such as XPDL[1], BPMN[2], XLANG[3], WSFL[4], WS-BPEL[5], WS-CDL[6],SEAM[7]) have appeared in order to describe processes in different domains. Requirement for process enactment(simulation and execution) Process Engine Slide 5 Background workflow and orchestration engines: Oracle BPEL Process Manager (Enterprise BPEL Enigine) Bonita (which are XPDL engines hosted by Red Hat and OW2 respectively), Orchestra(The BPEL engine from Bull hosted at OW2) ActiveVoS, Apache ODE, JBPM-BPEL (which are open source orchestration engines supporting WS-BPEL).etc. Most of these engines only serve with dedicated process language. Slide 6 Motivation Requirement for adaptive BPM engine. Process Virtual Machine PVM Slide 7 Introduction to PVM Concept diagram of a PVM Process Virtual Machine BPEL process BPEL Builder Join Action Task Action line Action Other Process Builder Runtime Execution Elements Fork Action XPDL/ SEAM/ any other process Scheduling Fork Action line Action Task Action Join Action Slide 8 Contribution we try to address the problem above by developing a process virtual machine PVM using an Event-driven Process Execution Model Why Event-Driven? Slide 9 Comparison between Events-driven and Thread-based Paradigms MetricsEvent-drivenThread-based Process Proceedingreactiveactive Cost of Synchronizationlowhigh Cost of State managementlowhigh Locality and debuggingeasyhard Stability under pressurestableless stable Flexibilityflexibleless flexible Portabilitylight weightheavy weight True concurrency (OS)falsetrue Long running handlingnon-responsivesupport Local state maintainhardeasy System architecturecomplexsimple Why Event-Driven Slide 10 Event-driven Process Execution Model Process Description Model Slide 11 Event-driven Process Execution Model Slide 12 Syntax for Describing a Process in EPEM process ::= action* process*event* action ::= context? task_logic port+ task_logic::= connector | behavior connector::= checkCondition behavior::= doTask port:= input_port | output_port input_port ::= listenTo event output_port ::= produce event event:= start_event | complete_event | external_event | exception_event Slide 13 Formalization of EPEM Definition of EPEM EPEM (p)= Where = {e(x), e(y), e(z)} A= {a} T= {, } a A, e(u) E = E(P). Slide 14 Formalization of EPEM Definition of Behavior For behavior a, EPEM (a) = where = {e(i[a]), e(o[a]) } A= {a} T={, } E= E(a) ::= e?(i[a]).a.e!(o[a]) Slide 15 Formalization of EPEM Definition of Connector EPEM (c) = Where = in out in = {e(i 1 ),e(i 2 ),..e(i n ) } out = {e(o 1 ),e(o 2 ),..e(o n ) } A= { c } T={,...,,... } E= E(c)