Business Process Modeling
When?
Process
Which?
What?
Function
Who?
Organization
BPMN
Stands for “Business Process Management Notation”
Graphical notation for specifying Business Processes
Developed by the Business Process Initiative (BPMI)
Now part of the OMG set of standards
History
BPMN 1.0, by BPMI (May 2004)
BPMN 1.0, OMG Final Adopted Specification (Feb 2006)
BPMN 1.1, OMG Specification (Feb 2008)
BPMN 1.2, OMG Specification (Jan 2009)
Simulation of BPMN models
Simulation on the BPM landscape
General purpose simulation platforms (e.g. Arena)
BPM specific platforms
Commercial: Tibco business Studio, ITP Commerce, IBM Websphere
Business Modeler, ARIS, Protos
Academic: e.g. work at Eindhoven University of Technology
(Netherlands), work at the Queensland University of Technology
(Australia)
We aim at
Covering of a larger subset of BPMN
Providing an open simulation engine
Tool independence
Agenda
Context
BPMN
Basics on modeling with BPMN
Mapping BPMN to plain Petri nets
Simulation of BPMN with CPN tools
Simulation information
Mapping of control flow constructs
Mapping of resource management
Prototype
BPMN notation (a subset)
!"#$!%&"' (')*'$!%&"' +"'&*,&#-)'&$!%&"'
,&..)/& '-,&* &**0* .')*'$,&..)/& .')*' &"#$,&..)/& &"#
Events
Activities
Gateways
!"#$ /01+,"23+0.4,231325%&'()*+,-##. 6++)3074,231325. /0#2"0,-8&923)9-. !"#$%&'(&$ )*+&,*-.*'*//&/$01'2$)*+&,*- .*'*//&/$3145$)*+&,*- 6&;49415$)*+&,*-6*+*78*9&:$!"#$
!
Order handling example
At most one
path is
Mapping BPMN to plain Petri nets
!"#$%%!& '& '( ) )& )( *"+,%%*& ' -.+/.%%-& '& '( ) )& )( 0 1%0 234546748.9:% 3.0#8#"$%%3& ' ; ' ) ! ;48,%%;Dijkman et al. (2008)
Advanced constructs
!" !!!
!
!
!!
!!
!
"#$%&#'()*+ ! ,#$!&#-(+ ,#$!&#.-(+ " !"#$%& #" !" ,#$/0&#%0+ ,#' " #' ,#$'+ ,#$2.+ "#1 ,#1 ,#$!.45617+ "#$!l*+ /0 9466#':5*;-81''#! ,#$!l*+Dijkman et al. (2008)
Agenda
Context
BPMN
Basics on modeling with BPMN
Mapping BPMN to plain Petri nets
Simulation of BPMN with CPN tools
Simulation information
Mapping of control flow constructs
Mapping of resource management
Prototype
Simulation information
!"#$%& '()*+,-.'*(& -/-'0-1'0'.2 3#4'5.#+& $0-', 6#.#+,'(#& 0'%#0'"**7 *)&$0-', 855#55& $0-', 9"*(# $-00 :('.'-0';#& <-2,#(. 87/'$#&$0-',-(.& *(& +#',1=+5#,#(. !0*5#&$0-', (*.&#(*=4"&'()*+,-.'*( (* (& 0'-10 # $0 -' , &+ #> #$ .# 7 !"""#$%%&'(# )*+%+ ,"#+%)-./+ 01"#+%)-./+ 1"#+%)-./+ 22"#+%)-./+ 34"#+%)-./+ 31"#+%)-./+ ,"#+%)-./+ 1"5 4"5 305 405 3"5 !"5Arrival rate
Transition
probability
Aspects such as time,
cost, revenue, etc.
Mapping to CPN
!"#$%!"&'( )!*"+,-#)"! !"# $"# !"#$ %&#'()*+&!#"$,-.#&*/0,.1,213 451.-6 .&5'-7.&!#58 #'-5'-7.&!#95,-)8 ,:-.#& 13-;0,1;5;<;=.>:"3-37?9@@8;.& ;;.!;5A@?;-)3&;7.&!#59;?8 ;;31>3;7.&!#59;68 3&= .&!#5 5B 7.&!#95,-)8 451.-6;5,-)? 451.-6;5,-)6 7.&!#95,-)8 7.&!#95,-)8 C5,-)<6D C5,-)<?D -# E3(.>-3"*:1,.$ -# F#"*G#.& .&!# .&!# +& H'- H'-I/4% I/4%F+JKMapping to CPN
!"#$%&'()%"# !(#!*++()%"# )%'*,"-) !"#$%&'( ')*+ ,-.! ('/0#+1( 23)20&&3('+) 2+)*'4/3('+) 564+1)78)+4/3&89:;<;=#:;<;>> 564+1)78)+4/3&89:;<;=#:;<;>> 569?; ')*+ ')*+Event-driven XOR gateways
•
The process stops and waits for an event
to occur
•
It resumes and follows a single branch
Mapping to CPN
!"#$%&'()%"#
!(#!*++()%"#
)%'*,"-)
Events may not be independent:
A customer decides to either confirm (e.g. 90% of
cases) or to cancel an order (e.g. 10% of cases)
BPMN needs to be extended to handle this kind
of dependencies
!"#$%&'()*+ ,-./0123 /456'7")5 '()*8 9:;%<#=!#%;>(7!?@8A8&5@8A8++ 9:;%<#=!#%;>(7!?@8A8&5@8A8++ 9:?B8 /456'7") "#$%' /456'7")5!);(#6+ "#'<)!"#$%'+ %<)'<)!"#$%&'()*+ (C)"%# 7D)5E(75'5F5="6C;D)D!8&GG+5"# 55"$5'HG85)*D#5!"#$%'&58+ 55D76D5!"#$%'&5I+ D#= 'I 'J '? /456'7")5 '()*I /456'7")5 '()*J 'K '@ 'B C%#$";>()"%# C(#CD77()"%# )">D5%<) !"#$%&'()*+ !"#$%&'()*+ !"#$%&'()*+ !"#$%&'()*+ !"#$%&'()*+ L'()*FIM L'()*F8M ,-./ ,-./ ,-./ "#$% "#$% "#$% "#$% "#$% "#$% "#$% "#$% "#$% ,-./0123 ,-./0123Adding time, cost, and other simulation
properties
from Phone_call Check_information_availability start info p6 info to Split1 info Out CASE In Check_information_availability complete info CASE CASE allocated In RES released e @+execTimeCIA() RES e Out Check_information_availability enable p5 info info CASE enabled Out CASE infoTime annotations
ML code for other
Resource management
from Phone_call Check_information_availability start info p6 info to Split1 info Out CASE In Check_information_availability complete info CASE CASE allocated In RES released e @+execTimeCIA() RES e Out Check_information_availability enable p5 info info CASE enabled Out CASE info !"#$% " !"#$% "&&'(")* + +*&*"#* +*#',+(*# -./ -./ -./ * 01/. !"#$2 !" !"#$2 !##$%!&'" (" ('#'!)'" -./ -./ '" 01/. !"#$% " !"#$% "&&'(")* + -./ -./ * 01/. !"#$2 !" !"#$2 !##$%!&'" (" ('#'!)'" -./ -./ '" 01/.A resource is
allocated for
performing a
single task
The resource is
retained as long
as it can perform
a sequence tasks
Agenda
Context
BPMN
Basics on modeling with BPMN
Mapping BPMN to plain Petri nets
Simulation of BPMN with CPN tools
Simulation information
Mapping of control flow constructs
Mapping of resource management
Prototype
Architecture
!"#$%&'()*+,( "-.(/012(,%*%, 345$1%67/+'-) "-.(/0%&.(2(&.(&' 345$1%67/+'-) !"#859 :"; :<7%&-=$2/+'*-)6 9>" : <7 %& -= $ ? @ @ 4 $1 () A 345$1%67/+'%-&$1()A/(' !%67/+'-)$ 2)-=B 345$6-.(/$ 6+&+C(6(&' !"#$%&"'()*+,-./0+12) *345.30 4)-"$345$#%D)+)B $E)B=$:.%'-) F4"5!%6$ G(.%'-)$(='HI F4"5J345 !"#$6&"'( 7)*+,8)9/0/ K4L#$*%/( GM%'N$1%6H$.+'+I 345$*%/( !%67/+'%-&$ /-C$*%/($ G"K"#I :;;3**%<"$) =4101;1.Architecture
!"#$%&'()*+,( "-.(/012(,%*%, 345$1%67/+'-) "-.(/0%&.(2(&.(&' 345$1%67/+'-) !"#859 :"; :<7%&-=$2/+'*-)6 9>" : <7 %& -= $ ? @ @ 4 $1 () A 345$1%67/+'%-&$1()A/(' !%67/+'-)$ 2)-=B 345$6-.(/$ 6+&+C(6(&' !"#$%&"'()*+,-./0+12) *345.30 4)-"$345$#%D)+)B $E)B=$:.%'-) F4"5!%6$ G(.%'-)$(='HI F4"5J345 !"#$6&"'( 7)*+,8)9/0/ K4L#$*%/( GM%'N$1%6H$.+'+I 345$*%/( !%67/+'%-&$ /-C$*%/($ G"K"#I :;;3**%<"$) =4101;1.Currently, BPMN models are translated to CP nets (the
translator is embeded in Oryx).
We are decoupling the BPMN to CPN
translator to achieve tool independence
What about flexibility ?
There may have been several alternative ways to model a single
BPMN construct
It depends on the amount of information and the approach to simulation
Why not to provide a set of simulation profiles?
Our approach, generation of CP nets using templates
Currently, based on inheritance, but we want to explore some other
approaches (e.g. model transformation, AOP)
!"#$%&'( ')*+ ,-.! ('/0#+1( 23)20&&3('+) 2+)*'4/3('+) 564+1)78)+4/3&89:;<;=#:;<;>> 564+1)78)+4/3&89:;<;=#:;<;>> 569?; ')*+ ')*+ !"#$%&'()*+ ,-./0123 /456'7")5 '()*8 9:;%<#=!#%;>(7!?@8A8&5@8A8++ 9:;%<#=!#%;>(7!?@8A8&5@8A8++ 9:?B8 /456'7") "#$%' /456'7")5!);(#6+ "#'<)!"#$%'+ %<)'<)!"#$%&'()*+ (C)"%# 7D)5E(75'5F5="6C;D)D!8&GG+5"# 55"$5'HG85)*D#5!"#$%'&58+ 55D76D5!"#$%'&5I+ D#= 'I 'J '? /456'7")5 '()*I /456'7")5 '()*J 'K '@ 'B C%#$";>()"%# C(#CD77()"%# )">D5%<) ! !"#$%&'()*+ !"#$%&'()*+ !"#$%&'()*+ !"#$%&'()*+ !"#$%&'()*+ L'()*FIM L'()*F8M ,-./ ,-./ ,-./ ,-./ "#$% "#$% "#$% "#$% "#$% "#$% "#$% "#$% "#$% "#$% ,-./0123 ,-./0123 !"#$% " !"#$% "&&'(")* + +*&*"#* +*#',+(*# -./ -./ -./ * 01/. !"#$2 !" !"#$2 !##$%!&'" (" ('#'!)'" -./ -./ '" 01/. !"#$% " !"#$% "&&'(")* + +*#',+(*# -./ -./ -./ * 01/. !"#$2 !" !"#$2 !##$%!&'" (" ('#'!)'" -./ -./ '" 01/.Workflow
resource patterns
Agenda
Context
BPMN
Basics on modeling with BPMN
Mapping BPMN to plain Petri nets
Simulation of BPMN with CPN tools
Simulation information
Mapping of control flow constructs
Mapping of resource management
Prototype
Outlook
A first running prototype
Covers a subset of BPMN constructs
Embedded inside Oryx Editor
Benefits of the Access/CPN interface/architecture
Ongoing work
Extend the BPMN coverage
Colors can be used to model advanced BPMN constructs
Move to a standard serialization format for BPMN
XPDL or BPMN 2.0
Characterizing design space for templates
Simulation and Performance analysis
Real logging information for simulating the process based on past execution and
current state