BPMN 2.0 Analysts
Jump to navigation
Jump to search
Process, Collaboration, Choreography and
Parallel Event-Based Gateway⌘
- All events must occur before a process can start
Complex Gateway⌘
- The Complex Gateway can be used to model complex synchronization behavior
- For example, it could specify that tokens on three out of five incoming Sequence Flows are needed to activate the Gateway.
Data Modeling⌘
- Data modeling is used to describe physical or information items that are created, manipulated, and used during the execution of a Process.
- Data can be modeled using: Data Objects, Data Inputs, Data Outputs, Data Stores, Data Associations, ....
Data Objects⌘
- The primary construct for modeling data within the Process flow.
- Data Associations are used to move data between Data Objects.
- Tokens do not flow along a Data Association.
Data Input, Data Output⌘
- Activities and Processes often need data in order to execute.
- In addition they can produce data during or as a result of execution.
- Data requirements are captured as Data Inputs.
- Data that is produced is captured using Data Outputs.
Data Store⌘
- A DataStore provides a mechanism for Activities to get or update stored information that will persist beyond the scope of the Process.
- Represents a single unit of information (e.g. database record)
Link Events⌘
- A Link is a mechanism for connecting two sections of a Process.
- Link Events can be used to avoid long Sequence Flow lines.
- The use of Link Events is limited to a single Process level (i.e., they cannot link a parent Process with a Sub-Process or one pool to another pool).
- There can be multiple source Link Events, but there can only be one target Link Event.
Link Events Example ⌘
Link Events as Off-Page Connector⌘
Conditional Events ⌘
- Is triggered when a condition such as "Temperature above 20°C" become true.
Signal Events⌘
- A Signal is for general communication within and across Process levels, across Pools, and between Business Process Diagrams.
- A BPMN Signal is similar to a signal flare that shot into the sky for anyone who might be interested to notice and then react. Thus, there is a source of the Signal, but no specific intended target.
Signal Event Example 1⌘
Signal Event Example 2⌘
Error Events⌘
- An Error is generated when there is a critical problem in the processing of an Activity or when the execution of an Operation failed
- An Error indicates that a named Error should be generated.
- Process can't wait for an error or rise an error in itermediate event (only in Boundary Intermediate)
- Process can't be instantiated using error event (only in Event Sub-Process)
Error Events Example 1⌘
Error Events Example 2⌘
Error Events Example 3⌘
Error Event Exercises⌘
- Exercise 1.
- Exercise 2.
Escalation Events⌘
- An Escalation identifies a business situation that a Process might need to react to.
- In contrast to an Error, an Escalation by default is assumed to not abort the Activity to which the boundary Event is attached.
Escalation Example⌘
Escalation Exercises⌘
- Exercise 1.
Compensation⌘
- Compensation is undoing steps that were already successfully completed, because their results and possibly side effects are no longer desired and need to be reversed.
- If an Activity is still active, it cannot be compensated, but rather needs to be canceled.
- Compensation is not an error handling
- A compensation handler performs the steps necessary to reverse the effects of an Activity.
Compensation handler⌘
- A compensation handler connected via a boundary Event can only perform “black-box” compensation of the original Activity.
- Compensation Activity is connected to the boundary Event through an Association.
- The Compensation Activity can be either a Task or a Sub-Process, has a marker to show that it is used for compensation only and is outside the normal flow of the Process.
Compensation Using Event Sub-Process⌘
A Compensation Event Sub-Process can access data that is part of its parent, and can recursively trigger compensation for Activities contained in its parent.
Compensation Exercises⌘
- Exercise 1.
- Exercise 2.
Transaction⌘
- Is a specialized type of Sub-Process that will have a special behavior that is controlled through a transaction protocol.
- Transaction verifies if all of the participants have successfully completed their end of the transaction or have been restored to the equivalent of their original state.
- ACID model describes transactions:
- Atomic - transaction is "all or nothing": if one part of the transaction fails, the entire transaction fails, and the system state is left unchanged.
- Consistent - any transaction will bring the system from one valid state to another.
- Isolatated - concurrent execution of transactions results in a system state that would be obtained if transactions were executed serially, i.e. one after the other.
- Durable - once a transaction has been committed, it will remain so, even in the event of power loss, crashes, or errors.
Transaction in BPMN⌘
Three basic outcomes of a Transaction:
- Succes
- Cancel
- Error
Collapsed Transaction Sub-Process⌘
Cancel Events⌘
- Cancel Events are only used in the context of modeling Transaction Sub-Processes
- Activities indicated by sequence flow from cancel event will be executed after transaction is rolled back
Transaction Exercises⌘
- Exercise 1.
- Exercise 2.
Loops and multi-instance⌘
Standard Loop ⌘
- The Activity will loop as long as the boolean loopCondition is true
- The condition is evaluated for every loop iteration, and MAY be evaluated at the beginning or at the end of the iteration (testBefore = true or testBefore = false)
- In addition, a numeric cap can be optionally specified - loopMaximum
- Loop activity instances are sequentially executed - one after another.
- Loop Activity is similar to DO WHILE loop.
Multi-Instance Activity⌘
- The instances MAY execute in parallel or MAY be sequential.
- Multi-Instance Activites are used with collection of items
- Multi-Instance Activity is similar to FOR EACH loop
Multi-Instance Activity Example⌘
Loop Exercises ⌘
Global Task and Global Process⌘
- A Global Task is a reusable, atomic Task definition that can be called from within any Process by a Call Activity.
- A Global Task is not defined within a Process, but is callable element.
- The types of Global Tasks are only a subset of standard Tasks types: GlobalUserTask, GlobalManualTask, GlobalScriptTask, and GlobalBusinessRuleTask
- A Global Process can be called from another Process.
- Question: Do you know any example of non-global process?
Call Activity⌘
- A Call Activity is a type of Activity that identifies a point in the Process where a global Process or a Global Task is used.
Process, Collaboration, Choreography and
Conversation in BPMN 2.0⌘
Process - again⌘
A Process describes a sequence or flow of Activities in an organization with the objective of carrying out work.
- Process is depicted as a graph of Flow Elements, which are a set of Activities, Events, Gateways, and Sequence Flows that define finite execution semantics.
- BPMN uses the term Process specifically to mean a set of flow elements
- It uses the terms Collaboration and Choreography when modeling the interaction between Processes
Types of BPMN Processes ⌘
There are three basic types of BPMN Processes (Orchestrations):
- Private Non-executable (internal) Business Processes
- Private Executable (internal) Business Processes
- Public Processes
Collaboration⌘
- Collaboration is a collection of Participants shown as Pools, their interactions as shown by Message Flows, and MAY include Processes within the Pools and/or Choreographies between the Pools
- A Choreography is an extended type of Collaboration
Choreography⌘
- A Choreography defines the sequence of interactions between Participants (Pools).
- Choreographies exist outside of or in between Pools.
- Choreography does not exist in a single Pool. Each step in the Choreography involves two or more Participants.
- A Choreography does not have a central control mechanism.
Choreography Example 1⌘
Choreography Task⌘
- A Choreography Task is an atomic Activity in a Choreography Process.
- It represents an Interaction, which is one or two Message exchanges between two Participants.
Choreography Task with a Message⌘
Two-way Choreography Task⌘
Sequence Flow⌘
Gateways⌘
- Interactions between Participants can happen in sequence, in parallel, or through exclusive selection.
- Exclusive, Inclusive, Parallel, Event-based and Complex Gateways can be used with some constraints (because the lack of a central mechanism to maintain data visibility, and no central evaluation)
Exclusive Gateway Example⌘
Choreography Example 2 from spec⌘
Business Process Model and Notation (BPMN), Version 2.0, pages 318-319
Choreography Example 2 from spec⌘
Conversations⌘
- The Conversation diagram is particular usage of a Collaboration diagram (simplified version of Collaboration)
- Pools usually are empty.
- A Conversation is a logical grouping of Message exchanges
Conversation Example⌘
Annex⌘
BPMN shapes⌘
- Table 7.1 - Basic Modeling Elements (BPMN 2.0 Specification)
- Table 7.2 - BPMN Extended Modeling Elements (BPMN 2.0 Specification)
- BPMN 2.0 poster - http://www.bpmb.de/images/BPMN2_0_Poster_EN.pdf
BPMN tools⌘
- Signavio Process Manager - http://www.signavio.com/
- Camunda Modeler - https://camunda.com/products/modeler/
- Bizagi Modeler (desktop) - http://www.bizagi.com/en/bpm-suite/bpm-products/modeler
- Intalio|bpms Community Edition (desktop) - http://bpms.intalio.com/
- jBPM - http://www.jbpm.org/
- Activiti - http://activiti.org/
- Bonita BPM (desktop) - http://www.bonitasoft.com/
- Yaoqiang BPMN Editor (desktop) - http://sourceforge.net/projects/bpmn/
BPMN types of events
Business Process Model and Notation, v2.0, page 261