BPMN
BPMN - Business Process Modeling Notation
- This is a graphical language for describing business processes for BPM
- BPMN 2.0 is de-facto the industrial standard for BPM
- executable via BPeL or there are tools that natively support execution of BPM
Control Flow Syntax
Differences with YAWL and Workflow Nets
- no such things as places in BPML
Activities
Activities are things that are performed as a part of the process
They can be:
- task: a single business action
- look: an action that repeats over time
- sub-process that contains other process inside
- and all other things
Gateways
Gateways are needed for routing purposes
There are the following gateways
- AND-split and AND-join
- XOR-split and XOR-join
- Event-based (which is Deferred Choice)
- OR-split and OR-join (same semantics as in YAWL)
Note that activities can be connected to multiple activities without any gateways
- but these gateways are implicitly assumed in this case
- so be careful with the following construction:
- because it will implicitly assumed to be something like the following
Events
Events represent actions that take place
- when the flow starts and ends
- when something happens on the way from start to end
- it is also possible to add some decorations to express meaning of some events
During the flow some exceptions can occur
There are 2 types of events for that:
- “throw” events
- “catch” events
Exceptions:
- something inside a subflow can throw an exception
- and there are “guarding” listeners that are triggered when such exceptions are thrown
Consider this example:
- there’s one throwing event that interrupts the flow
- '’throwing event’’
- produces some events
- these events are interrupting: the flow ends with such event
- and this exception is caught outside of the subflow and handled
- '’catching event’’
- listens for certain events
- we also have ‘‘non-interrupting’’ events - border events
- they are activated when something happens outside of the flow
Also note that in this example there are two blocking intermediate events
- these events stop the flow and resume when a message is received
- note that in this case such events keep tokens inside
- so we need a concept of Cancellation Regions to be able to terminate all subprocess
terminates all the processes and stops the flow
Here’s a list of decorations for events:
Pools and Lines
Different organizations and different actors withing the organization are represented with
- pools for organizations
- lines withing the pools for actors
- that makes it possible to show visually who is in charge of what
If a task is on a line that belongs to some actor,
- he is responsible for executing it
External actors
- it is advisable to model external actors - actors that do not execute the business process themselves (clients, etc) - with “empty” pools
- this way the interaction with them can be clearly seen
- it is good because such actors do not perform any actions, but they generate “incoming events”
- and we don’t have any illusion that we have control over what the external actors
- we interact with them only with messages
Example:
- a student is an external actor: they generate events but do not execute any business process themselves
- student is “abstract” - there are no actions in this pool
Approach for Building a Model
- Decide: when does process start/end
- Enumerate main activities & possible end-states
- Create top-level BPMN diagram
- Expand top-level activities to sub-processes
- Add pools for external parties & message flow (business context)
- Repeat 4-5 for sub-processes
Walk-through example:
- Car Dealer Example (With pictures taken during the lecture)
Examples
Example 1:
Example 2:
Example 3:
- booking a trip
- YAWL diagram:
- converting it to BPMN:
Links
- Lecture notes from Evernote: [https://www.evernote.com/shard/s344/sh/9de02c1b-f96f-41ff-9095-13ae608be099/e1e4dd29c665b5f2a6f21c45ea90a467]
- BPMN 2.0 reference card [http://www.chellar.com/AnalysisFu/images/ccp/BPMN_Poster.pdf]
- Exercises 1 Solutions 1
- Exercises 2 Solutions 2 (in-class notes)