Business Processes Modelling MPB (6 cfu, 295AA)

Size: px
Start display at page:

Download "Business Processes Modelling MPB (6 cfu, 295AA)"

Transcription

1 Business Processes Modelling MPB (6 cfu, 295AA) Roberto Bruni Event-driven process chains!1

2 Object Finish image f finish failed Start u V V Evaluate e V redo Create thumbnail t thumbnail failed Image too big Send link l Link sent Image small enough Send image m Image sent We overview EPC and the main challenges that arise when analysing them with Petri nets Ch.4.3, 6 of Business Process Management: Concepts, Languages, Architectures 2

3 Event-driven Process Chain An Event-driven Process Chain (EPC) is a particular type of flow-chart that can be used for configuring an Enterprise Resource Planning (ERP) implementation Supported by many tools (e.g. SAP R/3) EPC Markup Language available (EPML) as interchange format 3

4 EPC overview Rather informal notation simple and easy-to-understand EPC focus is on representing domain concepts and processes (not their formal aspects and technical realization) It can be used to drive the modelling, analysis and redesign of business process 4

5 EPC origin EPC method was originally developed by Wilhelm-August Scheer (early 1990 s) Part of a holistic modelling approach called ARIS framework (Architecture of Integrated Information Systems) 5

6 EPC informally An EPC is an ordered graph of events and functions It provides various connectors that allow alternative and parallel execution of processes The flow is specified by logical operators AND,, OR 6

7 Events Any EPC diagram must start with event(s) and end with event(s) Passive elements used to describe under which circumstances a process (or a function) works or which state a process (or a function) results in (like pre- / post-conditions) Graphical representation: hexagons 7

8 Functions Any EPC diagram may involve several functions Active elements used to describe the tasks or activities of a business process Functions can be refined to other EPC diagrams Graphical representation: rounded rectangles 8

9 Logical connectors Any EPC diagram may involve several connectors Elements used to describe the logical relationships between elements in the diagram Branch, merge, fork, join Graphical representation: circles (or also octagons) AND X OR 9

10 Control flow Any EPC diagram may involve several control flow connections Control flow is used to connect events with functions and connectors by expressing causal dependencies Graphical representation: dashed arrows 10

11 EPC ingredients at a glance 11

12 EPC diagrams EPC elements can be combined in a fairly free manner (possibly including cycles) There must be at least one start event and one end event Events have at most one incoming and one outgoing arc Events have at least one incident arc Functions have exactly one incoming and one outgoing arc The graph is weakly connected (no isolated nodes) Connectors have either one incoming arc and multiple outgoing arcs or viceversa (multiple incoming arcs and one outgoing arc) 12

13 EPC ingredients: Diagrams Other constraints are sometimes imposed Unique start / end event No arc between two events No arc between two functions No event is followed by a decision node (i.e. (X)OR-split) 13

14 Connections NOT allowed: Examples 14

15 Connections NOT allowed: Examples 15

16 Other annotations for functions Organization unit: determines the person or organization responsible for a specific function (ellipses with a vertical line) Supporting system: technical support (rectangles with vertical lines on its sides) Information, material, resource object: represents objects in the real world e.g. input data or output data for a function (rectangles linked to function boxes) angles with vertical lines on its sides) 16

17 17

18 18

19 19

20 20

21 21

22 22

23 23

24 24

25 EPC an example Finish image f finish failed Start u V V Evaluate e V redo Create thumbnail t thumbnail failed Image too big Send link l Link sent Image small enough Send image m Image sent function event function Legend Start event Simple flow Sequence End event -split Exclusive choice V AND-split Parallel split V OR-split Multi-choice -join Simple merge V AND-join Synchronization V OR-join Gen. Sync. Merge 25

26 EPC intuitive semantics A process starts when some initial event(s) occurs The activities are executed according to the constraints in the diagram When the process is finished, only final events have not been dealt with If this is always the case, then the EPC is correct 26

27 EPC semantics? Little unanimity around the EPC semantics Rough verbal description in the original publication by Scheer (1992) Later, several attempts to define formal semantics (assigning different meanings to the same EPC) Discrepancies typically stem from the interpretation of (X)OR connectors (in particular, join case) Other issues: unclear start, alternation between events and functions, join/split correspondence 27

28 Problem with start events A start event is an event with no incoming arc A start event invokes a new execution of the process template What if multiple start events occur? Solution: Start events are mutually exclusive (as if they were preceded by an implicit split) 28

29 Problem with start events: solution hypothetical / implicit split A B 29

30 Problem with alternation From empirical studies: middle and upper management people consider strict alternation between events and functions as too restrictive: they find it hard to identify the necessary events at the abstract level of process description they are working at Solution: It is safe to drop the requirement about alternation (dummy events might always be added later) 30

31 Every join has a split observation: Every join has at least one corresponding split (i.e. a split for which there is a path from either output to the input of the join) proof sketch: we trace backward the paths leading to the join from start events; if the start events coincide there is a split node in the path; if start events differ, the candidate split is the implicit 31

32 Problem with corresponding splits The semantics of a join often depends on the nature of the corresponding split But: 1) there can be more candidates to corresponding split 2) and they can have different type than the join candidates of the same type of the join are called matching split Some suggested to have a flag that denotes the corresponding split 32

33 Tagging corresponding splits s1 s2 j1 j2 33

34 Tagging corresponding splits s1 s2 j1 j2 34

35 Tagging corresponding splits s1 s2 j1 {s1} j2 35

36 Tagging corresponding splits s1 s2 j1 {s1} j2 36

37 Tagging corresponding splits s1 s2 j1 {s1} j2 {s2} 37

38 Problem with OR join If an OR join has a matching split, the semantics is usually: wait for the completion of all paths activated by the matching split If there is no matching split, some policy must be applied: wait-for-all: wait for the completion of all activated paths (default semantics, because it coincides with that of a matching split) first-come: wait only for the path that is completed first and ignore the second every-time: trigger the outgoing path on each completion (the outgoing path can be activated multiple times) Some suggested to have different (trapezoid) symbols or suitable flags to distinguish the above cases 38

39 Problem with join Similar considerations hold for the join If a join has a matching split, the semantics is intuitive: it blocks if both paths are activated and it is triggered by the completion of a single activated path If there is no matching split: all feasible interpretations that do not involve blocking are already covered by the OR (wait-for-all, first-come, every-time) and contradict the exclusivity of the (a token from one path can be accepted only if we make sure that no second token will arrive via the other path) Some suggest to just forbid the use of in the unmatched case (the implicit start split is allowed as a valid match) 39

40 Sound EPC diagrams We transform EPC diagrams to Workflow nets: the EPC diagram is sound if its net is so We can exploit the formal semantics of nets to give unambiguous semantics to EPC diagrams We can reuse the verification tools to check if the net is sound 40

41 Translation of EPC to Petri nets 41

42 A note about the transformation We first transform each event, function and connector separately in small net fragments When translating the control flow arcs we may then introduce other places / transitions to preserve the bipartite structure in the net (no arc allowed between two places, no arc allowed between two transitions) We show different translations, depending on whether joins are decorated or not 42

43 First attempt (decorated EPC) PETER RITTGEN MODIFIED EPCS AND THEIR FORMAL SEMANTICS 43

44 EPC Petri net A event place 44

45 EPC Petri net function transition 45

46 EPC Petri net AND split net 46

47 EPC Petri net split net 47

48 EPC Petri net xor + and OR split net 48

49 EPC Petri net AND join net 49

50 EPC Petri net corresponding split? join net 50

51 EPC Petri net most general case??? join net 51

52 EPC Petri net corresponding /OR split? join ok net 52

53 EPC Petri net corresponding AND/OR split?? deadlock! join net 53

54 EPC Petri net better to have a corresponding split! join net 54

55 EPC Petri net corresponding split? net OR join 55

56 EPC Petri net matching OR split OR join net with matched OR split 56

57 EPC Petri net mismatched corresponding split: wfa most general case??? OR join net wait-for-all (mismatched) 57

58 EPC Petri net corresponding AND split wfa OR join net wait-for-all (mismatched) 58

59 EPC Petri net corresponding split wfa OR join net wait-for-all (mismatched) 59

60 EPC Petri net wfa works well??? wfa with any corresponding split OR join net wait-for-all (mismatched) 60

61 EPC Petri net mismatched corresponding split: fc most general case??? OR join first-come (mismatched) net 61

62 EPC Petri net corresponding split fc ok OR join first-come (unmatched) net 62

63 EPC Petri net corresponding AND split fc pending token! OR join first-come (unmatched) net 63

64 EPC fc: Petri net better to have a corresponding fc split! OR join first-come (mismatched) net 64

65 EPC Petri net mismatched corresponding split: et most general case??? OR join net every-time (mismatched) 65

66 EPC Petri net corresponding split et ok OR join net every-time (mismatched) 66

67 EPC Petri net corresponding AND split et multiple OR join every-time (unmatched) tokens! net 67

68 EPC et: Petri net better to have a corresponding et split! OR join net every-time (mismatched) 68

69 split join corresp. split.. matched OR split corresp. split: wfa corresp. split: fc corresp. split: et

70 split join corresp. split better to have a corresp. split matched OR split corresp. split: wfa corresp. split: fc better to have a corresp. split corresp. split: et 70

71 Ill-formed net Petri net dummy transition 71

72 Ill-formed net Petri net dummy place 72

73 implicit Example J2 73

74 Example implicit 74

75 Example 75

76 Example 76

77 Example 77

78 implicit matching split Exercise matching split matching split Sound? (first-come) J2 78

79 ZOOM IN (first-come) J2 79

80 ZOOM IN 80

81 Exercise Start1 Start2 f1 f2 By pass Inner1 Inner2 Sound? Empty f 1 f 2 Stop1 Stop2 81

82 Summary of problems We need to decorate the EPC diagram joins must be decorated with matching/corresponding splits mismatched OR-joins must be decorated with policies Split / join mismatch may induce unexpected behaviour Possible introduction of dummy places and transitions 82

83 Second attempt (no decoration required) Formalization and Verification of Event-driven Process Chains W.M.P. van der Aalst Department of Mathematics and Computing Science, Eindhoven University of Technology, P.O. Box 513, NL-5600 MB, Eindhoven, The Netherlands, telephone: , 83

84 Simplified EPC We rely on event / function alternation along paths in the diagram and also along paths between two connectors OR-connectors are not considered 84

85 EPC 2 Petri nets: events and functions event place function transition 85

86 EPC 2 Petri nets: split/join connectors The translation of logical connectors depends on the context: if a connector connects functions to events we apply a certain translation if it connects events to functions we apply a different translation 86

87 EPC 2 Petri nets: AND split e1 e1 f1 f1 V V f1 f2 f1 f2 e1 e2 e1 e2 (event to functions) (function to events) 87

88 EPC 2 Petri nets: AND-join e1 e2 e1 e2 f1 f2 f1 f2 V V f1 f1 e1 e1 (events to function) (functions to event) 88

89 EPC 2 Petri nets: split e1 e1 f1 f1 f1 f2 f1 f2 e1 e2 e1 e2 (event to functions) (function to events) 89

90 EPC 2 Petri nets: join e1 e2 e1 e2 f1 f2 f1 f2 f1 f1 e1 e1 (events to function) (functions to event) 90

91 EPC 2 Petri nets: at a glance event place function transition e1 e1 f1 f1 e1 e1 f1 f1 V V f1 f2 f1 f2 e1 e2 e1 e2 f1 f2 f1 f2 e1 e2 e1 e2 e1 e2 e1 e2 f1 f2 f1 f2 e1 e2 e1 e2 f1 f2 f1 f2 V V f1 f1 e1 e1 f1 f1 e1 e1 91

92 EPC 2 nets: Example event A event B event C event A event B event C event A event B event C function X function X event X event X V V function Y function Y (add dummy events and functions) event Y (context-dependent translation) event Y function D function E function D function E function D function E 92

93 Outcome From any EPC we derive a free-choice net Moreover, if we add unique start / end events (and suitable transitions attached to them) the net is a workflow net 93

94 Exercise 94 V V customer order received order customer order order data customer accepted rejected check availability articles available articles need to be produced purchase material make production plan material available plan available produce articles finished product ship order customer order order shipped bill send outstanding accounts check payment completed customer compare customer order received order customer order order data customer accepted rejected check availability articles available articles need to be produced purchase material make production plan material available plan available produce articles finished product ship order customer order order shipped bill send outstanding accounts check payment completed compare customer Check it sound!

95 customer order received register customer order V Exercise start billing start production send bill V purchase material make production plan Sound? outstanding accounts material available plan available V no billing needed V check payment billing completed V ship order produce articles finished product (remind to add dummy events and functions and to guarantee event/function alternation) order shipped 95

96 Relaxed soundness (a third attempt) 96

97 Popularity vs superiority EPC are a quite successful, semiformal notation They lack a comprehensive and consistent syntax They lack even more a corresponding semantics You may restrict the notation, but people will prefer the more liberal (flexible) syntax and ignore the guidelines You may enrich the notation, but people will dislike or misinterpret implementation policies 97

98 What are ultimately business process? Graphical language to communicate concepts Careful selection of symbols shapes, colors, arrows (the alphabet is necessary for communication) Greatest common denominator of the people involved Intuitive meaning (verbal description, no math involved) 98

99 Remember some good old friends Chief Process Officer EPC Business engineer Process participants System architect WFnet Process designer Knowledge worker 99 Process responsible System developer

100 A secret not to tell Ambiguity is useful in practice! The more ways are to interpret a certain construct the more likely an agreement will be reached 100

101 A pragmatic consideration Moreover in the analysis phase the participants may not be ready to finalise the specification and decide for the correct interpretation Yet it is important to find out flaws as soon as possible 101

102 Consequences Ambiguous process descriptions arise in the design phase therefore we need to fix a formal representation that preserves all ambiguities 102

103 Problem EPC is fine (widely adopted) WF nets offer a useful tool but Soundness is too demanding at early stages 103

104 Relaxed soundness A sound behaviour: we move from a start event to an end event so that nothing blocks or remains undone Execution paths leading to unsound behaviour can be used to infer potential mistakes in the EPC If some unsound behaviour is possible but enough sound paths exist the process is called relaxed sound 104

105 A 3-steps approach (keep it simple!) Relaxed Soundness of Business Processes Juliane Dehnert 1, and Peter Rittgen 2 1 Institute of Computer Information Systems, Technical University Berlin, Germany dehnert@cs.tu-berlin.de 2 Institute of Business Informatics, University Koblenz-Landau, Germany rittgen@uni-koblenz.de K.R. Dittrich, A. Geppert, M.C. Norrie (Eds.): CAiSE 2001, LNCS 2068, pp , Springer-Verlag Berlin Heidelberg

106 Step 1: straightforward element map EPC PN EPC PN > > > > 106

107 Step 2: element fusion A B A B A B Unification of elements (Case1) ta tab tb OR Step 1 Step 2 Mapping EPC elements Modul combination to PN!modules C C Fusion of arcs (Case2) C 107

108 Step 3: add unique start / end a) start1 start2 start1 start2 start start start1 start2 Step1 & Step2 Step3 (sometimes /AND can be preferred) end1 end2 end1 end2 end1 end2 OR Step1 & Step2 Step1 & Step2 Step3 Step3 end 108 OR end

109 > goods arrived E11 > C6 Example check goods F8 C8 C7 ok E15 not_ok E14 complaint F10 record receipt of goods F9 Sound? data revised E16 goods recorded E12 C11 > C12 store goods F13 stored E20 109

110 Example 110 > > complaint not_ok ok goods arrived check goods E16 C7 E11 C6 F8 C8 E15 E14 F10 F9 C12 C11 E20 F13 E12 record receipt of goods > data revised goods recorded store goods stored goods arrived complaint check goods i not_ok ok > AND-Split -Join -Join OR-Join OR-Join OR-Join o > > revised of goods record receipt > t1_ t2_ -Split t3_ AND-Split t10_ t4_ t5_ t6_ t7_ t8_ t9_ AND-Join store goods stored recorded goods data -Split s1 s2 s6 s4 s3 s5 s7

111 > > goods arrived E11 > C6 check goods C8 F8 C7 Example ok E15 not_ok E14 complaint F10 F9 record receipt of goods data revised E16 goods recorded E12 Not sound! C11 > C12 store goods F13 stored E20 t5_ OR-Join > s3 t6_ OR-Join record receipt of goods goods recorded goods arrived i t1_ AND-Split s1 s2 check goods t2_ -Split t3_ -Split not_ok ok complaint 111 data revised > t4_ AND-Split s4 s6 t8_ t9_ t7_ OR-Join -Join -Join s7 s5 store goods t10_ AND-Join stored o >

112 > Example We can turn it to sound, but: changes in the net, can be hardly reflected in EPC t5_ OR-Join > s3 t6_ OR-Join record receipt of goods goods recorded goods arrived i t1_ AND-Split s1 s2 check goods t2_ -Split t3_ -Split not_ok ok complaint 112 data revised > t4_ AND-Split s4 s6 t8_ t9_ t7_ OR-Join -Join -Join s7 s5 store goods t10_ AND-Join stored o >

113 Relaxed soundness: formally Definition: A WF net is relaxed sound if every transition belongs to a firing sequence that starts in state i and ends in state o t T. M,M.i M t M o (it is sound enough, in the sense that all transitions are covered by at least one sound execution) 113

114 > > goods arrived E11 > C6 check goods C8 F8 C7 Example ok E15 not_ok E14 complaint F10 F9 record receipt of goods data revised E16 goods recorded E12 Relaxed sound? C11 > C12 store goods F13 stored E20 t5_ OR-Join > s3 t6_ OR-Join record receipt of goods goods recorded goods arrived i t1_ AND-Split s1 s2 check goods t2_ -Split t3_ -Split not_ok ok complaint 114 data revised > t4_ AND-Split s4 s6 t8_ t9_ t7_ OR-Join -Join -Join s7 s5 store goods t10_ AND-Join stored o >

115 > > goods arrived E11 > C6 check goods C8 F8 C7 Example ok E15 not_ok E14 complaint F10 F9 record receipt of goods data revised E16 goods recorded E12 Relaxed sound? C11 > C12 store goods F13 stored E20 t5_ OR-Join > s3 t6_ OR-Join record receipt of goods goods recorded goods arrived i t1_ AND-Split s1 s2 check goods t2_ -Split t3_ -Split not_ok ok complaint 115 data revised > t4_ AND-Split s4 s6 t8_ t9_ t7_ OR-Join -Join -Join s7 s5 store goods t10_ AND-Join stored o >

116 > > goods arrived E11 > C6 check goods C8 F8 C7 Example ok E15 not_ok E14 complaint F10 F9 record receipt of goods data revised E16 goods recorded E12 Relaxed sound? C11 > C12 store goods F13 stored E20 t5_ OR-Join > s3 t6_ OR-Join record receipt of goods goods recorded goods arrived i t1_ AND-Split s1 s2 check goods t2_ -Split t3_ -Split not_ok ok complaint 116 data revised > t4_ AND-Split s4 s6 t8_ t9_ t7_ OR-Join -Join -Join s7 s5 store goods t10_ AND-Join stored o >

117 > > goods arrived E11 > C6 check goods C8 F8 C7 Example ok E15 not_ok E14 complaint F10 F9 record receipt of goods data revised E16 goods recorded E12 Relaxed sound? C11 > C12 store goods F13 stored E20 t5_ OR-Join > s3 t6_ OR-Join record receipt of goods goods recorded goods arrived i t1_ AND-Split s1 s2 check goods t2_ -Split t3_ -Split not_ok ok complaint 117 data revised > t4_ AND-Split s4 s6 t8_ t9_ t7_ OR-Join -Join -Join s7 s5 store goods t10_ AND-Join stored o >

118 > > goods arrived E11 > C6 check goods C8 F8 C7 Example ok E15 not_ok E14 complaint F10 F9 record receipt of goods Not relaxed sound (as WF net)! But relaxed sound as EPC data revised E16 goods recorded E12 (all nodes are covered C11 store goods > F13 C12 by some sound execution) stored E20 t5_ OR-Join > s3 t6_ OR-Join record receipt of goods goods recorded goods arrived i t1_ AND-Split s1 s2 check goods t2_ -Split t3_ -Split not_ok ok complaint 118 data revised > t4_ AND-Split s4 s6 t8_ t9_ t7_ OR-Join -Join -Join s7 s5 store goods t10_ AND-Join stored o >

119 Pros and Cons If the WF net is not relaxed sound: there are transitions that are not part of a sound firing sequence Hence their EPC counterparts need improvements Relaxed soundness can be proven only by enumeration (of enough sound firing sequences) No equivalent characterization is known that is more convenient to check Open research problem 119