Data and Process Modelling - 8c.BPMN - analytic...

93
Data and Process Modelling 8c.BPMN - analytic modeling Marco Montali KRDB Research Centre for Knowledge and Data Faculty of Computer Science Free University of Bozen-Bolzano A.Y. 2015/2016 Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 1 / 81

Transcript of Data and Process Modelling - 8c.BPMN - analytic...

Page 1: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Data and Process Modelling8c.BPMN - analytic modeling

Marco Montali

KRDB Research Centre for Knowledge and DataFaculty of Computer Science

Free University of Bozen-Bolzano

A.Y. 2015/2016

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 1 / 81

Page 2: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

BPMN Level 2: Analytic Modeling• Level 1: each step of the process is triggered by the completion of theprevious step.

• Level 2: expansion of level 1 with reaction to events.

EventSomething that happen in a process, at a specific point in time.

Reaction to eventsDepends on whether the process is throwing or catching the event.

• Reaction to throwing an event: how the process generates a signalthat something happened.

I Type of signal represents the trigger.• Reaction to catching an event: how the process responds to a signalthat something happened.

I Type of signal represents the result.The type of signal is shown as an icon inside the event circle.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 2 / 81

Page 3: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

About EventsEvent Types

• Start event (thin line): indicates where the process starts.• End event (thick line): indicates where a path of the process ends.• Intermediate event (double ring): indicates that something happensduring the execution of the process.

It is now possible to model:• Reaction to external events.• Exception handling.• Parallel event handlers.• Complex indirect interactions between different process parts, whereone triggers an event and the other catches it.

• Cancelations and compensations.• . . .

QuestionWhy do people fear BPMN?

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 3 / 81

Page 4: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 4 / 81

Page 5: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 5 / 81

Page 6: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

First Step in the World of EventsOut from the 104 possible combinations (only half of which are acceptedby the standard), we first focus on:

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 6 / 81

Page 7: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Intermediate Events

Events occurring after the start of a process level, but before its end. Fourbasic contexts of use:1. Throw an intermediate event.2. Catch an intermediate event.3. Catch an intermediate event in a specific process level, by interrupting

it.4. Catch an intermediate event in a specific process level, without

interrupting it.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 7 / 81

Page 8: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Throwing Intermediate Event

Intermediate event with a black icon inside.

Semantics1. As soon as the sequence flow reaches the event, the corresponding

signal is thrown.2. The process continues immediately.

Supported only by few event types.• Typical usage: throwing a message event.

send message

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 8 / 81

Page 9: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Catching Intermediate Event

Intermediate event with a white icon inside.

Semantics1. As soon as the sequence flow reaches the event, the process waits for

the corresponding trigger signal.2. When the trigger signal is caught, the process resumes immediately.

Supported by many event types, but not error events.

receive message

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 9 / 81

Page 10: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Boundary EventCatching intermediate event drawn on the boundary of an activity.

Semantics1. While the activity is running, it listens to the signal attached to the

event.2. If the activity completes without the occurrence of the boundary

event signal, the process continues on the standard execution path(normal flow).

3. If the signal occurs before the activity completes, the sequence flowout of the event is triggered (exception flow).

How this is actually done depends on the type of the boundary event.

Activity

message boundary event

normal flow

exception flow

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 10 / 81

Page 11: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Types of Boundary EventsInterrupting boundary eventIf the trigger signal occurs during theactivity execution:

• The activity is immediatelyterminated.

• The exception flow is activated.Drawn with a solid double ring.

Activity

message boundary event

normal flow

exception flow

Non-interrupting boundary eventIf the trigger signal occurs during theactivity execution:

• The activity is normally continues.• The exception flow is activated (with anew parallel thread).

Drawn with a solid double ring.

Activity

message boundary event

normal flow

exception flow

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 11 / 81

Page 12: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Timer EventNormal Catching timerIndicates to:

• wait for a specific duration, or• wait until a specific timepoint is reached.

ExampleThe process checks whether data have been uploaded. If so, the processgoes on. If not, the process waits for ten minutes and then repeats thecheck.

ExampleAfter the payment is approved, the process waits until the end of themonth, and then checks whether the payment has been actually done.

WarningDon’t use timer events to represent the duration of activities.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 12 / 81

Page 13: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Timer EventTimer boundary eventCombination of stopwatch and alarm.

• When the activity is reached by an incoming flow (start event), thestopwatch starts.

• If the activity is still running when the stopwatch expires, an alarm istriggered and the exception flow is immediately activated.

The reaction then depends on whether the timer is interrupting on not.

ExampleA hiring process starts by searching for internal candidates. If the search isstill running after 3 weeks, the search is interrupted and an external searchfirm is engaged. In both cases, the collected CVs are then screened.

ExampleIf the delivery of an order takes more than 3 days, the customer isinformed of the delay.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 13 / 81

Page 14: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Timed Interval

ExampleThe food delivery process starts when an order is received from thecustomer. The money is then collected from the customer. Next, drinkand food are prepared. Once both food and drink are ready, the order isdelivered to the customer.

A policy of the food company is that if the time-to-delivery exceeds 10minutes, then half of the money must be returned to the customer.

Strategy• Wrap the “time interval” of interest into a subprocess.• Attach a timer boundary event to the subprocess.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 14 / 81

Page 15: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Timed Interval

ExampleThe food delivery process starts when an order is received from thecustomer. The money is then collected from the customer. Next, drinkand food are prepared. Once both food and drink are ready, the order isdelivered to the customer.

A policy of the food company is that if the time-to-delivery exceeds 10minutes, then half of the money must be returned to the customer.

Strategy• Wrap the “time interval” of interest into a subprocess.• Attach a timer boundary event to the subprocess.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 14 / 81

Page 16: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Can You Tell the Difference?

Prepare order

Receive orderDeliver order

Register delivery

time

Order delivered

Notify delay

> 3 days?

yes

no

Prepare order

Receive orderDeliver order

Register delivery

time

Order delivered

Notify delay

3 days

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 15 / 81

Page 17: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

More on Messages

BPMN definition for “message”The content of a communication between two participants.

• Could represent even material flow, i.e., the delivery of a physicalobject.

A message has an item definition that specifies the message payload, i.e.,an information or physical object.

WarningConsider “send” and “receive” as BPMN keywords that denote theexchange of a message from the point of view of the emitter or destination.

Location of a messageA message could correspond to many distinct message flows, representingthe message in different situations of the process.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 16 / 81

Page 18: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Who Can Send a Message?• A black-box pool.• A throwing message event.• Any type of activity (optional send).

• A send task.Send Task

Send taskA task consisting in the immediate emission of a message (certain send).Difference with an intermediate throwing message event:

• The task has a performer.I Conventionally, the performer of a throwing event can be understood

as the lane containing that event.• The task can have boundary events attached to it.• The task can have special decorators indicating forms of repetitions(see later).

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 17 / 81

Page 19: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

“Sending” within a Process

ErrorMessage flow cannot be used to forward work to a downstream task withinthe same process.

Solutions:• Work forwarded implicitly via control-flow.• Forwarding of work encapsulated in a specific activity (without usingthe word “send”).

• Forwarded work explicitly shown as a data object.• Notification typically handled through a user task in the laneresponsible for the notification.

I Not the one “receiving” the notification.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 18 / 81

Page 20: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Who Can Receive a Message?• A black-box pool.• A catch message event.• Any type of activity (optional receive).

• A receive task.Receive

Task

Receive taskA task only responsible for waiting for a message (blocking receive).Difference with an intermediate throwing message event:

• The task has a performer.I Conventionally, the performer of a catch event can be understood as

the lane containing that event.• The task can have boundary events attached to it.

I Timers are particularly interesting here.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 19 / 81

Page 21: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Synchronous vs Asynchronous Communication

Synhronous CommunicationWhenever a message is sent by a process, the process waits for a responsemessage before continuing.

Natively, BPMN message events account for asynchronouscommunication: the emission of a message does not interrupt the emitterprocess.

How to support synchronous communication?• Short-running synchronous communication: service task.

I Implicitly sends a message and then waits for a response to complete.• Long-running synchronous communication: sequence of send andreceive.

I Possibly inserting other activities inbetween.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 20 / 81

Page 22: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Event-Driven ChoicesExampleAn credit card generation process starts when a customer sends anapplication to the bank. An employee of the bank then verifies thecompleteness of the application. If the application is complete, it isprocessed (complex activity), and then the card is issued. If the applicationis not complete, before processing it an additional interaction with thecustomer is required. In particular, the bank requests the additionalrequired info to the customer, and then waits for an answer. If thecustomer refused to provide the requested information, then the processends by sending a rejection to the customer. If instead the customerpositively replies to the request, the application is fixed considering thenewly requested infromation, then processing the application.

Need for regaining controlWhat happens if the customer decides not to answer at all to the bank’srequest? Timeout needed!

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 21 / 81

Page 23: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Event-Driven ChoicesExampleAn credit card generation process starts when a customer sends anapplication to the bank. An employee of the bank then verifies thecompleteness of the application. If the application is complete, it isprocessed (complex activity), and then the card is issued. If the applicationis not complete, before processing it an additional interaction with thecustomer is required. In particular, the bank requests the additionalrequired info to the customer, and then waits for an answer. If thecustomer refused to provide the requested information, then the processends by sending a rejection to the customer. If instead the customerpositively replies to the request, the application is fixed considering thenewly requested infromation, then processing the application.

Need for regaining controlWhat happens if the customer decides not to answer at all to the bank’srequest? Timeout needed!

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 21 / 81

Page 24: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Event-driven ChoicesSometimes, a choice in a process depends on which event triggers firstamong a set of possible alternatives:

• Alternative messages (possibly from different participants).• Timeouts.

WarningThis cannot be captured, in general, by using a normal choice gateway:the decision cannot be taken before the event triggers!

Case of alternative messages from same participant• Alternative messages compacted into a unique message with anextended payload.

• Subsequent gateway checks the extended payload to internally decidehow to continue.

General caseEvent gateway.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 22 / 81

Page 25: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Event GatewayChoice point whose outcome depends on the first received event, not onan internal decision of the orchestration.Semantics1. When the process reaches the event gateway, it waits.2. The first triggering event attached to the gateway determines which

path is taken (race conditions).3. The process istantanteously reacts by moving accordingly.4. If other signals are triggered later on, they are ignored.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 23 / 81

Page 26: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Message Boundary EventManagement of unsolicited messages.

ExampleAn order management process starts when a customer places an order.The order is fulfilled, then shipped, and finally invoiced. The customermay cancel the placed order while it is being fulfilled or shipped. In thefirst case, the process immediately terminates by notifying to the customerthat the cancelation has been correctly handled. In the second case, theprocess does not interrupt its normal course of execution (it is too late).However, an additional task is required to be executed, whose purpose toto authorize the return for credit to the customer.Strategy

• Identify the maximal fragments of a process level for which themanagement of an event is the same.

• Surround these fragments with subprocesses, using boundary eventsand exception flow to capture how the event is managed when itoccurs in that specific process part.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 24 / 81

Page 27: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Error eventErrorAn exception end state of an activity (business or technical error).

Interrupting error boundary eventIndicates an error code and how that error is handled if the activityexecution experiences that error.

• On a task: represents the exception flow to be followed when the taskcompletes unsuccessfully.

• On a subprocess: same meaning, but requires that the innerspecification of a descendant subprocess explicitly mentions thecorresponding error end state.

Error end stateEnd state marking an error termination of the process level (with a certainerror code).We assume that the label corresponds to its error code.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 25 / 81

Page 28: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Throw-Catch Pattern

Semantics of Error HandlingWhen the current process level reaches an error end state:1. All active parallel threads within the same process level are

immediately terminated (∼ termination end state).2. The corresponding error signal is generated, and propagated to the

parent level.3. If the parent level defines an error boundary event with matching

error code, the signal is caught and the exception flow is activated.4. Otherwise, the signal is recursively propagated to the ancestors, until

the nearest ancestor able to handle the error finally catches it.

ObservationThe boundary error event is not really “interrupting”, since it is triggeredwhen the inner activity terminates in an error end state.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 26 / 81

Page 29: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Correspondence with Level 1 Exceptions

Business exceptions handled by the immediate parent process level can beequivalently modeled:

• Using the methodology seen in level 1.I Different end termination states.I Gateway used in the parent process to test which termination state has

been reached.• Using throw-catch patterns: more emphasis on the fact that we arehandling errors.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 27 / 81

Page 30: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Other Analytic Events

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 28 / 81

Page 31: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Escalation Event

Represented with an upward arrow inside.

Escalation eventUsed to handle a “mild” exception. Differently from errors:

• An escalation can be triggered in the middle of a process level, notjust in an end state.

• An escalation is typically caught without interrupting the currentprocess level.

I But can also be interrupting when needed.

SemanticsIdentical to the throw-catch pattern for error events, considering that inthis case the inner process does not necessarily terminate upon escalation.

Typically used to handle ad-hoc exceptions in user tasks.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 29 / 81

Page 32: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Managing Exception Synchronization

ExampleWhenever a request is received, the process handles it by entering itsdetails. If a configuration issue arises, a specialist from the IT departmentis consulted. Once this phase is properly completed, the request is fulfilled.

Usage of subprocess boundaries to introduce a “dynamic” synchronizationpoint.

• We will see another construct to handle this issue later on.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 30 / 81

Page 33: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Managing Exception Synchronization

ExampleWhenever a request is received, the process handles it by entering itsdetails. If a configuration issue arises, a specialist from the IT departmentis consulted. Once this phase is properly completed, the request is fulfilled.

Usage of subprocess boundaries to introduce a “dynamic” synchronizationpoint.

• We will see another construct to handle this issue later on.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 30 / 81

Page 34: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

BPMN - Order Example (Procurement Sub-Process)

!"#$%&'(#))$*'&$+"#$)+'(,$-./0+#0.0(#$/)$+&/11#&#2$34$.$('02/+/'0.5$)+.&+$#6#0+7$8+$-#.0)$+".+$+"#$%&'(#))$/)$/0)+.0+/.+#2$/0$

(.)#$+".+$+"#$('02/+/'0$3#(.-#$+&9#:$)'$/0$+"/)$#;.-%5#$<"#0$+"#$)+'(,$5#6#5$1'#)$3#5'<$.$(#&+./0$-/0/-9-7$80$'&2#&$+'$

/0(&#.)#$+"#$)+'(,$5#6#5$.0$.&+/(5#$".)$+'$3#$%&'(9&#27$!"#&#*'&#$<#$9)#$+"#$).-#$=&'(9&#-#0+$%&'(#))$.)$/0$+"#$'&2#&$

*95*/55-#0+$.02$&#*#&$+'$/+$34$+"#$(.55$.(+/6/+4$>=&'(9&#-#0+>:$/02/(.+#2$34$+"#$+"/(,$3'&2#&7$?/-/5.&$+'$+"#$$'&2#&$

*95*/55-#0+$%&'(#))$$+"/)$%&'(#))$".025#)$+"#$#&&'&$#;(#%+/'0$34$&#-'6/01$+"#$.&+/(5#$*&'-$+"#$(.+.5'17$@9+$/0$+"/)$)+'(,$

-./0+#0.0(#$%&'(#))$+"#&#$.%%#.&)$+'$3#$0'$0##2$*'&$+"#$".025/01$'*$.$>5.+#$2#5/6#&4>$#)(.5.+/'0$#6#0+7$!".+A)$<"4$/+$/)$

5#*+$'9+$.02$0'+$".025#27$8*$+"#$%&'(9&#-#0+$)93B%&'(#))$*/0/)"#)$0'&-.554:$+"#$)+'(,$5#6#5$/)$.3'6#$-/0/-9-$.02$+"#$

?+'(,$C./0+#0.0(#$%&'(#))$#02)$</+"$+"#$#02$#6#0+$D.&+/(5#$%&'(9&#2E7

F#$0'<$G''-$/0+'$+"#$15'3.5$)93B%&'(#))$D%&'(9&#-#0+E$+".+$/)$9)#2$34$3'+"$'&2#&$*95*/55-#0+$.02$)+'(,$-./0+#0.0(#7$

@#(.9)#$+"/)$/)$.$)93B%&'(#)):$+"#$)+.&+$#6#0+$/)$%5./0:$/02/(.+/01$+".+$+"/)$%&'(#))$/)$0'+$+&/11#&#2$34$.04$#;+#&0.5$#6#0+$39+$

+"#$&#*#&#0(/01$+'%B5#6#5B%&'(#))7$$

!"#$*/&)+$+.),$/0$+"/)$)93B%&'(#))$/)$+"#$("#(,$<"#+"#&$+"#$.&+/(5#$+'$%&'(9&#2$/)$.6./5.35#$.+$+"#$)9%%5/#&7$8*$0'+:$+"/)$)93B

%&'(#))$</55$+"&'<$+"#$D0'+$2#5/6#&.35#EB#;(#%+/'0$+".+$/)$(.91"+$34$3'+"$'&2#&$*95*/55-#0+$.02$)+'(,$-./0+#0.0(#:$.)$<#$

.5&#.24$2/)(9))#27

80$(.)#$+".+$+"#$2#5/6#&4$/0$+"#$=&'(9&#-#0+$%&'(#))$5.)+)$-'&#$+".0$H$2.4)$.0$#)(.5.+/'0$#6#0+$/)$+"&'<0$34$+"#$)93B

%&'(#))$+#55/01$+"#$&#*#&#0(/01$+'%B5#6#5B%&'(#))$+".+$+"#$2#5/6#&4$</55$3#$5.+#7$?/-/5.&$+'$+"#$#&&'&$#6#0+:$+"#$#)(.5.+/'0$

#6#0+$".)$.5)'$.0$#)(.5.+/'0I'2#$<"/("$/)$0#(#)).&4$*'&$+"#$('00#(+/'0$3#+<##0$+"&'</01$.02$(.+("/01$#)(.5.+/'0$#6#0+)7$

I'0+&.&4$+'$+"#$+"&'</01$#&&'&$#6#0+:$$(9&&#0+54$.(+/6#$+"&#.2)$.&#$0#/+"#&$+#&-/0.+#2$0'&$.**#(+#2$34$+"#$+"&'</01$

!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"#$%!&'(!)*!+,-./012!3145678!9'(!

#$%&'(!)*+,!-./01!23$4.(4340(!5'/0(66

:;7<=!01>10!

)107?!.686.@.

#47<@41.18;

A4;6<01!/47<@41B

@8B106>14-)01

C1.7>1!-4;6<01!

D47.!<-;-07E@1

A4;6<01!41.7>1B

#$%&'(!)*),!!7'/0&'(2(4.!6&895'/0(66

FG1<=!

->-60-)606;*!?6;G!

5@//0614

H106>14-)01I

J-;1!B106>14*

A4;6<01!

/47<@41B

K!&!B-*5

L!M!&!B-*5

@8B106>14-)01

87

-4;6<01!41<16>1B

N4B14!D47.!

5@//0614

From BPMN 2.0 by Example - http://www.bpmn.org/

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 31 / 81

Page 35: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

BPMN - Order Example (Main Process)

!"#$%&'()"*&*()+,%&-).#&)/.$-)%/&)0$'%.!&-)'1"2')3+"%"#4)+#5)0+66')%/&)7&#5.-()+'1"#4),.-)%/&)2"88+*)9&)#.3)+''$!&)%/+%)

%/&)06&-1)2-.!"'&')%/&)2"88+)%.):&)5&6"7&-&5)'..#()+#5)%/&)0$'%.!&-')3+"%'),.-)%/&)2"88+)+4+"#()+'1"#4)+4+"#)+,%&-)%/&)#&;%)

<=)!"#$%&'()+#5)'.).#*)>&%?')/+7&)+)06.'&-)6..1)+%)%/&)7&#5.-)2-.0&'')#.3*)@%)"')%-"44&-&5):A)%/&).-5&-).,)%/&)0$'%.!&-()+')

'/.3#)3"%/)%/&)!&''+4&)'%+-%)&7&#%)+#5)%/&)!&''+4&),6.3)4."#4),-.!)B.-5&-)+)2"88+C)%.)%/+%)&7&#%*)D,%&-):+1"#4)%/&)

2"88+()%/&)5&6"7&-A):.A)3"66)5&6"7&-)%/&)2"88+)+#5)-&0&"7&)%/&)2+A!&#%()3/"0/)"#06$5&')4"7"#4)+)-&0&"2%)%.)%/&)0$'%.!&-*

@#)%/"')&;+!26&()3&)$'&)!&''+4&).:E&0%')#.%).#6A),.-)"#,.-!+%".#+6).:E&0%'()+')%/&)2"88+).-5&-():$%)+6'.),.-)2/A'"0+6)

.:E&0%'()6"1&)%/&)2"88+).-)%/&)!.#&A*)9&)0+#)5.)%/"'():&0+$'&)%/.'&)2/A'"0+6).:E&0%')+0%$+66A)+0%)+')"#,.-!+%".#+6).:E&0%')

"#/&-&#%6AF)9/&#)%/&)2"88+)+--"7&')+%)%/&)0$'%.!&-?')5..-()'/&)3"66)-&0.4#"8&)%/"')+--"7+6)+#5)%/&-&,.-&)1#.3)%/+%)%/&)2"88+)

/+')+--"7&5()3/"0/)"')&;+0%6A)%/&)2$-2.'&).,)%/&)+00.-5+#%)!&''+4&)&7&#%)"#)%/&)0$'%.!&-?')2..6*)G,)0.$-'&()3&)0+#).#6A)

$'&)%/&)!.5&6)"#)%/+%)3+A):&0+$'&)%/"')&;+!26&)"')#.%)!&+#%)%.):&)&;&0$%&5):A)+)2-.0&'')&#4"#&*

!"# $%&'%()*+,-++.'/0(1/&(2%34*%'.'/0

H/"').-5&-),$6,"66!&#%)2-.0&'')'%+-%')+,%&-)-&0&"7"#4)+#).-5&-)!&''+4&)+#5)0.#%"#$&')%.)0/&01)3/&%/&-)%/&).-5&-&5)+-%"06&)

"')+7+"6+:6&).-)#.%*)D#)+7+"6+:6&)+-%"06&)"')'/"22&5)%.)%/&)0$'%.!&-),.66.3&5):A)+),"#+#0"+6)'&%%6&!&#%()3/"0/)"')+)0.66+2'&5)

'$:I2-.0&'')"#)%/"')5"+4-+!*)@#)0+'&)%/+%)+#)+-%"06&)"')#.%)+7+"6+:6&()"%)/+')%.):&)2-.0$-&5):A)0+66"#4)%/&)2-.0$-&!&#%)'$:I

2-.0&''*)J6&+'&)#.%&)%/+%)%/&)'/+2&).,)%/"')0.66+2'&5)'$:I2-.0&'')"')%/"016A):.-5&-&5)3/"0/)!&+#')%/+%)"%)"')+)0+66)+0%"7"%A*)

@%)"')6"1&)+)3-+22&-),.-)+)46.:+66A)5&,"#&5)%+'1).-()6"1&)"#)%/"')0+'&()'$:I2-.0&''*

D#.%/&-)0/+-+0%&-"'%"0).,)%/&)2-.0$-&!&#%)'$:I2-.0&'')+-&)%/&)%3.)+%%+0/&5)&7&#%'*)KA)$'"#4)+%%+0/&5)&7&#%')"%)"')2.''":6&)

%.)/+#56&)&7&#%')%/+%)0+#)'2.#%+#&.$'6A).00$-)5$-"#4)%/&)&;&0$%".#).,)+)%+'1).-)'$:I2-.0&''*)H/&-&:A)3&)/+7&)%.)

5"'%"#4$"'/):&%3&&#)"#%&--$2%"#4)+#5)#.#I"#%&--$2%"#4)+%%+0/&5)&7&#%'*)K.%/).,)%/&!)0+%0/)+#5)/+#56&)%/&).00$--"#4)

&7&#%'():$%).#6A)%/&)#.#I"#%&--$2%"#4)%A2&)L/&-&)"%)"')%/&)&'0+6+%".#)&7&#%)B6+%&)5&6"7&-ACM)5.&')#.%)+:.-%)%/&)+0%"7"%A)"%)"')

+%%+0/&5)%.*)9/&#)%/&)"#%&--$2%"#4)&7&#%)%A2&)%-"44&-'()%/&)&;&0$%".#).,)%/&)0$--&#%)+0%"7"%A)'%.2')"!!&5"+%&6A*

!"#$%&'(%)*%+,-./012%3145678%9'(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!

)-5*%'(!"#6($%&'%()*+,-++.'/0

:4;14

41<16=1;

>?1<@%

-=-60-)606A*

B4A6<01

-=-60-)01

"47<C41.18A

87

D?6/%-4A6<01*15

E-A1%;106=14*

F8G74.%

<C5A7.14

>C5A7.14%68G74.1;

%

H68-8<6-0%

51AA01.18A

"-*.18A%41<16=1;

C8;106=14-)01

F8G74.%

<C5A7.14

I1.7=1%-4A6<01%

G47.%<-0-A7JC1

B4A6<01%41.7=1;

From BPMN 2.0 by Example - http://www.bpmn.org/

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 32 / 81

Page 36: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Signal Event

Represented with a triangle inside.

Signal eventEvent broadcasted to all active threads in a process, and all (external)active participants.

• Intra-process: loose coupling between thrower and catchers, with thepossibility of reaching parallel threads.

I A correlation mechanism is assumed to target the right processinstance.

• Inter-process: Publish-subscribe paradigm (signal broadcasted to allinterested participants).

I Any process interested in the signal could trigger a new instance usinga signal start event.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 33 / 81

Page 37: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Signal Event and FlexibilityMore flexible mechanism than for other events.

• Flexible catchers.I Errors/escalations: only target ancestor process levels.I Messages: only target other pools.

• Flexbile reaction.I Terminate/error are only able to terminate and entire process level.I Signal can selectively induce termination of some activities within the

current process level.

Selective terminationNegotiate contract

Prepare paperwork

Negotiation fails

Stop work

Stop work

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 34 / 81

Page 38: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Conditional Event

Represented using a list inside.

Conditional eventContinuous monitoring of a data condition/business rule.

• Event triggered every time the condition becomes true.• Used as a starting, catching intermediate and boundary event.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 35 / 81

Page 39: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Differences and SimilaritiesReplenishing stock when inventory is low. . .

• Internal condition evaluation.Replenish

stock

Low inventory

• External condition evaluation (by anybody).Replenish

stock

Low inventory

• External condition evaluation by the mentioned participant.

Replenish stock

receivereplenish

Inve

ntor

y co

ntro

l

Replenish stock

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 36 / 81

Page 40: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Event SubprocessException flow can be thought as the handler of an event.

Event subprocessAn event handler whose trigger is active during the whole execution of aprocess level. Features:

• Subprocess with a triggered start event: message, timer, or error.• Interrupting vs non-interrupting.• Graphically: dashed subprocess, plus:

I Collapsed: has a start event icon in the corner to show the type oftrigger it listens to

I Expanded: uses the start event icon to start.• Start event: solid/dashed for interrupting/non-interruptingsubprocess.

The event subprocess may trigger errors/escalations: they will be managedby the parent process in the usual way.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 37 / 81

Page 41: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Notes for Architects

• Event subprocesses more easily map to BPEL.• Event subprocess can access the context of its process level (dataand state values).

I This is not possible when a boundary exception flow is used, because inthat case the handler belongs to the parent level.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 38 / 81

Page 42: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Handling Timeout

ExampleUpon a service request, the process enters into a “perform service”subprocess. This subprocess is meant to run within 4 hours at most. Ifthis time is exceeded, then the subprocess continues, but two notificationshave to be sent: one to the manager, and one to the customer.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 39 / 81

Page 43: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Activity Decorators

Basic task.

Compensation task.

Loop task (looping information attached to the activity).

Multi-instance task with parallel composition (expressionattached to the activity to calculate the number of in-stances).

Multi-instance task with sequential composition.

For sub-processes only: ad-hoc (tilde marker) - flexible execution of theinner activities, without a complete specification of the process.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 40 / 81

Page 44: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Loop ActivityAn activity with a loop marker.

Loop activityAn activity possibly repeated multiple times. A Loop condition indicateswhether the activity must be repeated or whether the process mustcontinue on the outgoing flow.

• Loop condition “Until X” is captured by gate “If not X”.• A text annotation used to graphically show the loop condition.• Iterations are performed sequentially.• Number of iterations dynamically established.

WarningCorresponds to a normal activity followed by a gateway that connects backto the activity if the loop condition is true.

• Do not mix the two notations!

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 41 / 81

Page 45: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Example: Loops

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 42 / 81

Page 46: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Example: Loops

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 42 / 81

Page 47: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Multi-Instance ActivityAn activity marked by three parallel bars.

MI activityActivity instantiated multiple times, one per element in a collection.

• Number of iterations depends on the case and is known when theactivity is reached.

I Design time or dynamically, but before the activity starts.• Text annotation of the form “for each X” is useful if the activity labeldoes not clarify the MI nature.

• Execution can be:I Sequential (horizontal bars).I Parallel (vertical bars).

• Default termination of the activity: all-complete.• A terminate/interrupting boundary event can be used to stop allrunning instances.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 43 / 81

Page 48: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Example: Multi-Instances

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 44 / 81

Page 49: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

One-To-Many

ExampleConsider a hiring process that starts autonomously by posting informationabout a new job. The process continues by accepting applications (from an“Applicant” pool), interviewing candidates, ultimately hiring one of them.

Refine the process considering that only 5 selected candidates areinterviewed.

WarningProcess at two different granularities:

• Case: a job.• Portion of the process: applicant (one job, many applicants).

The “many” part requires forms of synchronization.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 45 / 81

Page 50: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

One-To-Many

ExampleConsider a hiring process that starts autonomously by posting informationabout a new job. The process continues by accepting applications (from an“Applicant” pool), interviewing candidates, ultimately hiring one of them.

Refine the process considering that only 5 selected candidates areinterviewed.

WarningProcess at two different granularities:

• Case: a job.• Portion of the process: applicant (one job, many applicants).

The “many” part requires forms of synchronization.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 45 / 81

Page 51: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

One-To-Many within a PoolGuideline1. Identify all N:1 activities.2. Surround them in a loop or MI activity or a combination thereof.

Main issues:• If in a process phase we do not know the number of instances inadvance, we can only use loop.

I Pipelining impossible.• If in a process phase we know the number of instances in advance, wecan use MI.

I Pipelining still impossible across phases.

Example• Do we know the number of applicants in advance?• Shall we keep “screen” and “interview” within the same loop?• What if we want to interview only 5 candidates?• Is it possible to pipeline “screen” and “interview”?

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 46 / 81

Page 52: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Multipool Process

ObservationBPMN recommends to associate a process to a pool.However, this cannot be done in general if activity instances within aprocess are not aligned, i.e., there is no 1:1 correspondence between them.

Multipool processIn general a process consist of many coordinated pools, each groupingactivities that are aligned with each other.

• N:1 situation: avoids looping + MIs with the corresponding pipeliningissues.

• N:M situation: the only viable solution.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 47 / 81

Page 53: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Multipool Hiring Process

ExampleConsider again the hiring process.

• “Post a job” is 1:1 with the job (case).• “Evaluate a candidate” is 1:1 with an applicant.

What is the relationship between applicant and job?• N:1 (isolation): each applicant sends CV for a specific job.

I Single pool solution requires looping + MIs, with pipelining issues.I Multipool solution avoids this.

• N:M (sharing): each applicant sends CV, and the company lookswhether there are matching jobs for that CV.

I Multipool separation necessary.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 48 / 81

Page 54: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Multipool Process: Needs and Issues

• Harder to understand.• The process is actually split into independent processes: this requirescoordination to synchronize the states of such processes and suitablyreconstruct the overall process.

I Data store, using data objects and their states for indirectsynchronization/decision making.

I Signals, to broadcast a control-flow state and implicitly triggermulti-pool synchronization.

I Messages, to exchange data, hand-over work, and handle “selective”synchronization between two pools.

• Particularly useful to model batch processes.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 49 / 81

Page 55: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Hiring Process and Multipool Coordination

ExampleWe revisit the hiring process using one external pool for the applicant, andtwo process pools: Evaluate Candidate and Hiring Process.The Hiring process starts autonomously by posting a job. If the job issuccessfully assigned to someone, it is marked as “filled”. If this is not thecase within 3 months, the job is marked as “abandoned”.The Evaluate candidate process starts when a resume is received by thecompany from an applicant. We assume that the resume is for a specificjob. If the job is not currently offered, the process terminates by notifyingthis to the applicant. If it is open, a subprocess “screen and interview” isinvoked. Then the company decides whether to make an offer to thecandidate or not. If not, this is notified to her. If so, then the offer ismade to the candidate, who can then accept or reject the offer. As soonas the job is filled, the evaluation of candidates must be interrupted.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 50 / 81

Page 56: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Hiring Process and Multipool Coordination

GuidelineHiring process could be organized as follows:

• 1 external pool for the Applicant, two process pools: Hiring Processand Evaluate Candidate.

• Job Status data store to synch on the job lifecycle.• Message exchange to send data around and take decisions inagreement with the other pools.

• Signal event + event subprocess to interrupt sibling cases running inthe other pools (e.g., to stop evaluating people when the job hasbeen filled).

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 51 / 81

Page 57: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Batch Process

Common situation where the process must be captured via multiple pools.

Batch processA process operating over a batch of items, which are handled separately inanother process (i.e., the other process treats them as cases).

• Typically, batch processing is triggered by a time event.• There are cases in which the result of batch processing is needed alsoin the “item-level” process.

Whenever the batch-level process needs to interact with the item-levelprocess, the same forms of coordination seen before can be used.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 52 / 81

Page 58: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Batch Posting of Orders

ExampleOnce an order is received from the customer, it is registered in the“Orders” DB. Orders are posted on a daily basis: at 8am in the morning,all the orders issued during the previous 24 hours are posted. As aconsequence of the posting, each order is automatically assigned to anagent, storing this information into the DB. Then the agent takes care offulfilling the order.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 53 / 81

Page 59: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Solution?

Orders

Update Orders DB

Receive order 8 am

Post Batch Assign Agents Fulfill Order

• Green: one order.• Red: many orders.• Orange: all known orders.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 54 / 81

Page 60: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Solution?

Orders

Update Orders DB

Receive order 8 am

Post Batch Assign Agents Fulfill Order

• Green: one order.• Red: many orders.• Orange: all known orders.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 54 / 81

Page 61: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Solution?!?Data-store provides a suitable loose coupling mechanism.

Post

ord

er b

atch

Orders

Update Orders DB

Receive order

8 am

Post Batch Assign Agents

Fulfill Order

Who fulfills the order? The order is fulfilled without waiting for the agentassignment: race conditions.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 55 / 81

Page 62: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Solution?!?Data-store provides a suitable loose coupling mechanism.

Post

ord

er b

atch

Orders

Update Orders DB

Receive order

8 am

Post Batch Assign Agents

Fulfill Order

Who fulfills the order? The order is fulfilled without waiting for the agentassignment: race conditions.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 55 / 81

Page 63: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Solution 1: Stopwatch + Data-Store SynchronizationPo

st o

rder

bat

ch

Orders

Update Orders DB

Receive order

8 am

Post Batch Assign Agents

Fulfill Order

Set Agent

for each Order

Get Agent

9 am

Wait until batch ends

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 56 / 81

Page 64: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Solution 2: Message-Based SynchronizationPo

st o

rder

bat

ch

Orders

Update Orders DB

Receive order

8 am

Post Batch Assign Agents

Fulfill Order

Return Agent

for each Order

Receive agent

If the fact that an agent is set must be broadcasted: throw signal event!

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 57 / 81

Page 65: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Instance AlignmentIn some situations, the end-to-end process cannot be related to a singlenotion of case.ExamplePurchase of apps for smartphones:

• Process scope: from app request and download to payment.• Request and download: “app” case.• Payment: “payment” case, combining multiple ordered apps.• Billing: “bill” case, containing payment-related information for allapps ordered during the last . . . months.

Such different cases typically need to synch.

ExampleAn app provides basic functionalities as soon as it is downloaded, but fullfunctonalities are only available upon its payment.

Again: multipool approach.Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 58 / 81

Page 66: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Instance Alignment: the App Order-Payment-Bill ExampleCu

stom

erO

rder

pro

cess

Billin

g pr

oces

s

Paym

ent p

roce

ss

Receiveorder

DownloadApp

Enable Basic Functionalities

Update Customer Account

Enable Full Functionalities

Receivepaymentadvice

Customer account

order

update available functionalities

update available functionalities

credit account

debit account

billing statement payment

paymentadvice

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 59 / 81

Page 67: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Instance Alignment: the App Order-Payment-Bill ExampleCu

stom

erO

rder

pro

cess

Billin

g pr

oces

s

Paym

ent p

roce

ss

Receiveorder

DownloadApp

Enable Basic Functionalities

Update Customer Account

Enable Full Functionalities

Receivepaymentadvice

Customer account

order

update available functionalities

update available functionalities

credit account

debit account

billing statement payment

paymentadvice

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 59 / 81

Page 68: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Advanced Splitting and Merging

BPMN provides advanced splitting/merging behavior.• Conditional flows.• OR split/join.• Complex gateway: discriminator, n-out of-m, . . .

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 60 / 81

Page 69: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

An Interesting Example

Claim handlingWhen a claim is received, it is registered. After registration, the claim isclassified leading to two possible outcomes: simple or complex. If theclaim is simple, the policy is checked. For complex claims, both the policyand the damage are checked independently.

Questions• Can we model the example using the constructs seen so far?• Can we model it in a compact way?• Is this a decision? Or an AND-split?

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 61 / 81

Page 70: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Another Interesting Example

Contract CheckAfter a contract is drafted, it is subject to different checks. If it is atechnical contract, a technical review is done. If it involves a financialtransaction of more than 10K Euros, then a financial check is carried out.If the contract involves a premium customer, then a quality check isexecuted. If none of these special conditions applies, then a quick checksuffices.

Questions• Can we model the example using the constructs seen so far?• Can we model it in a compact way?• Is this a decision? Or an AND-split?

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 62 / 81

Page 71: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Conditional FlowSequence flow taken only if a certain condition is true. Multipleconditional flows departing from the same activity can be used to modelinclusive choice. BPMN supports conditional flows in two ways.

OR-split (gateway decorated with an “O”)Inclusive gateway whose gates are independent choices.

• At least one condition must be true.• If more than one is true, corresponding gates are followed in parallel.• Default flow (barred) can be used to model “otherwise”.• Can be used to model optional work.

I Use label “always” for the path that must be always taken.

Conditional flow (Sequence flow + diamond-on-the-tail + condition)Reflects the general intuition above.

• Can only be used if the source is an activity.• Same properties mentioned for the OR-split.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 63 / 81

Page 72: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Claim Handling with OR-Split

ExampleWhen a claim is received, it is registered. After registration, the claim isclassified leading to two possible outcomes: simple or complex. If theclaim is simple, the policy is checked. For complex claims, both the policyand the damage are checked independently.

Register claim

Receive claim

Classify claim

Check policy

Check damage

always

complex claim

. . .

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 64 / 81

Page 73: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Claim Handling with OR-Split

ExampleWhen a claim is received, it is registered. After registration, the claim isclassified leading to two possible outcomes: simple or complex. If theclaim is simple, the policy is checked. For complex claims, both the policyand the damage are checked independently.

Register claim

Receive claim

Classify claim

Check policy

Check damage

always

complex claim

. . .

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 64 / 81

Page 74: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Contract Check with Conditional FlowExampleAfter a contract is drafted, it is subject to different checks. If it is atechnical contract, a technical review is done. If it involves a financialtransaction of more than 10K Euros, then a financial check is carried out.If the contract involves a premium customer, then a quality check isexecuted. If none of these special conditions applies, then a quick checksuffices.

Receive contractrequest

Draft contract

Do technical

review

Do financial

check

Do quality check

Do quick check

is technical contract

involves > 10K €

involves premium customer

. . .

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 65 / 81

Page 75: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Contract Check with Conditional FlowExampleAfter a contract is drafted, it is subject to different checks. If it is atechnical contract, a technical review is done. If it involves a financialtransaction of more than 10K Euros, then a financial check is carried out.If the contract involves a premium customer, then a quality check isexecuted. If none of these special conditions applies, then a quick checksuffices.

Receive contractrequest

Draft contract

Do technical

review

Do financial

check

Do quality check

Do quick check

is technical contract

involves > 10K €

involves premium customer

. . .

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 65 / 81

Page 76: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

How to Join?

Register claim

Receive claim

Classify claim

Check policy

Check damage

always

complex claim

Receive contractrequest

Draft contract

Do technical

review

Do financial

check

Do quality check

Do quick check

is technical contract

involves > 10K €

involves premium customer

? . . .

? . . .

Handle request ?

Handle additions

. . .

add late features

. . .

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 66 / 81

Page 77: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

How to Join?

Handle request ?

Handle additions

. . .

add late features

. . .

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 67 / 81

Page 78: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Useless Attempts

Two answers

Register claim

Receive claim

Classify claim

Check policy

Check damage

always

complex claim

Prepare answer . . .

No answer

Register claim

Receive claim

Classify claim

Check policy

Check damage

always

complex claim

Prepare answer . . .

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 68 / 81

Page 79: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Useless Attempts

Two answers

Register claim

Receive claim

Classify claim

Check policy

Check damage

always

complex claim

Prepare answer . . .

No answer

Register claim

Receive claim

Classify claim

Check policy

Check damage

always

complex claim

Prepare answer . . .

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 68 / 81

Page 80: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

OR-Join

OR-JoinSelectively synchronizes conditionally enabled parallel threads.

• Non-local semantics: needs to know which parallel threads actuallyexist and will need to be synchronized in the future.

• Decides to wait or forward work depending on the presence or absenceof remaining threads to be synchronized.

Typical usages:• Selective synch corresponding to an inclusive choice.• Synch in case of interrupting exceptional flow.• Synch in case of non-interrupting exceptional flow.

Big QuestionHow to determine such threads?

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 69 / 81

Page 81: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

OR-Join for Non-Interrupting Exceptional Flow

Handle request ?

Handle additions

add late features

A B

B executed only if the request is completed, possibly including additions.• Remember: additions are only handled if the message is received inthe proper process phase. We cannot know in advance whether thiswill be indeed the case.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 70 / 81

Page 82: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

OR-Join for Interrupting Exceptional Flow

Draft contract

Do financial

check

Do technical

review

needs revision

Revise financial

terms

Finalize contract

We do not know in advance whether the technical review will need tosynch with the financial review or the revision of financial terms.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 71 / 81

Page 83: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Block-Structured Process Model - Intuition

The graph structure can be understood as composition of blocks.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 72 / 81

Page 84: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Block-Structured Process ModelA process model obtained via recursive composition of SESE blocks.

SESE blockA process fragment that has a single input and a single output, and can beabstracted as a subprocess.Block types:

• end-to-end process.• Single task.• Sequence block.• Choice block (X).• Parallel block (+).• Inclusive block (O).• Loop block.

This is just a guideline, we typically need at least some exceptions for endpoints and exception handling.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 73 / 81

Page 85: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

SESE Blocks

Task

Task

Choice

B1

B2

Bn

...X X

Sequence

B1 B2

Parallel

B1

B2

Bn

...+ +

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 74 / 81

Page 86: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

SESE Blocks

Inclusive

B1

B2

Bn

...O O

Loop

X XB

End-to-end process

Process

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 75 / 81

Page 87: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

OR-Join Semantics for SESE Block

Quite simple:1. When the OR-split of the block is reached, the enabled gates are

determined.2. Each enabled gate has a 1:1 correspondence with a sequence flow

entering into the OR-join of the block.3. The OR-join therefore knows which execution threads need to be

synchronized, and where they are located.4. It can be then realize as a simple variant of an AND-join.

This can be generalized to non-block-structured processes, provided thatthey do not contain loops indirectly producing work that goes back intothe OR-join.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 76 / 81

Page 88: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

OR-Join in the General Case

Do you like paradoxes?

Vicious circle (adapted from van der Aalst et. al)

A1

B1 B2

A2

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 77 / 81

Page 89: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

General Execution Semantics for OR-Join

From the BPMN official documentation. . .

An Inclusive Gateway is activated if:• At least one incoming Sequence Flow has at least one token and• For every directed path formed by sequence flow that

I starts with a Sequence Flow f of the diagram that has a token,I ends with an incoming Sequence Flow of the inclusive gateway that has

no token,I does not visit the Inclusive Gateway

then there is also a directed path formed by Sequence Flow thatI starts with f ,I ends with an incoming Sequence Flow of the inclusive gateway that has

a token, andI does not visit the Inclusive Gateway.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 78 / 81

Page 90: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Other Forms of Synchronization

Consider another variant of the contract example seen before.

ExampleOnce a contract is drafted, a financial and technical reviews are conductedin parallel. As soon as one of the two ends, an executive review must beconducted as well. When all reviews are finished, the contract is finalized.

QuestionHow to enable an activity as soon as the first among two other activitiescompletes?

• A simple merge does not work, because it would be triggered multipletimes!

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 79 / 81

Page 91: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Discriminator

DiscriminatorPasses the first incoming sequence flows and blocks all those that arrivelater.

• It resets when all incoming flows arrive.

It does not have a specific symbol in BPMN. There is however the notionof “complex gateway” (∗ decoration) to represent advanced forms ofsynchronization like the discriminator one.

GeneralizationN-out of-M join.

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 80 / 81

Page 92: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Contract Drafting with Discriminator

ExampleOnce a contract is drafted, a financial and technical reviews are conductedin parallel. As soon as one of the two ends, an executive review must beconducted as well. When all reviews are finished, the contract is finalized.

Draft contract

Do financial

check

Do technical

review

Revise financial

terms

Finalize contract

Whichever completes first

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 81 / 81

Page 93: Data and Process Modelling - 8c.BPMN - analytic modelingmontali/teaching/1516/dpm/slides/8c.bpmn... · DataandProcessModelling 8c.BPMN-analyticmodeling MarcoMontali KRDB Research

Contract Drafting with Discriminator

ExampleOnce a contract is drafted, a financial and technical reviews are conductedin parallel. As soon as one of the two ends, an executive review must beconducted as well. When all reviews are finished, the contract is finalized.

Draft contract

Do financial

check

Do technical

review

Revise financial

terms

Finalize contract

Whichever completes first

Marco Montali (unibz) DPM - 8c.BPMN - analytic A.Y. 2015/2016 81 / 81