The business process model and notation
Business Process Model and Notation (BPMN) is the widely accepted standard for business process modeling and provides a graphical notation for specifying business processes in a Business Process Diagram (BPD). It is based on a flowcharting technique very similar to the activity diagrams of Unified Modeling Language (UML). BPMN is maintained by Object Management Group (OMG), and the current version is 2.0 (released in March 2011).
The primary goal of BPMN is to provide a standard notation readily understandable by business stakeholders. These include business analysts who create and refine the processes, technical developers responsible for implementing these processes, and operation managers who monitor and manage the processes. Consequently, BPMN serves as a common language, bridging the communication gap that frequently occurs between business process design and implementation. BPMN also serves as a communication medium between organizations who partner for achieving common business goals, to share functional processes and procedures.
One of the main differences between BPMN and other process definition standards such as Business Process Execution Language (BPEL) is that BPMN supports human interaction. Human interaction support provides completeness to business process modeling, as humans are the primary actors in any business organization. Being a specification of visual programming notations, BPMN places considerable emphasis on diagrammatic representations of the elements of the business process model. So, a reader of a BPMN diagram can easily recognize the basic type of elements and understand the business process. BPMN conformance ensures a common visual representation, although it allows variations without dramatically changing the basic look and feel of the diagram.
The detailed explanation of the BPMN 2.0 specification can be found in the specification document.
Note
BPMN specification documents can be found at http://www.bpmn.org/.
Conformance to standard BPMN specification defines four types of conformance:
- Process modeling conformance: Tools claiming conformance must support BPMN core elements, human interactions, pools, and message flows.
- Process execution conformance: Tools claiming conformance must support and interpret operational semantics and activity life cycle as stated in the specification.
- BPEL process execution conformance: A special type of process execution conformance that supports BPMN mapping to WS-BPEL.
- Choreography modeling conformance: Tools claiming conformance must support choreography diagrams and their elements. Choreography diagrams focus on the collaboration of different groups in activities and the message flow between them.
A jBPM implementation partially claims the first two types of conformance, namely process modeling conformance and process execution conformance. Although jBPM supports all core elements in process modeling, it does not support all the elements described in the specification.
Core elements
The chief constituents of a BPMN diagram, BPMN elements, can be broadly classified into five categories:
- Flow Objects: These objects define the behavior of a business process
- Data: This represents the data associated in the business process
- Connecting Objects: These objects are used to connect the flow objects to each other
- Swimlanes: This is used to categorize the flow objects
- Artifacts: These provide additional information about the process
Flow Objects
Flow objects are the meat of BPMN; they are used to define how the business process would behave. The following are the major types of flow objects:
- Events: An event is something that happens in the course of a business process. These events affect the flow of the model and usually have a trigger for and an impact on the business process. Some examples of events are Start, Stop, and Error. A Start event triggers the start of a process instance and is triggered using an explicit trigger, a message, or a timer. Events can be either signaled from a process (thrown) or can be waited upon (catch).
- Activities: Activities are actions performed within a business process. They can be either atomic (called Tasks) or compound (Sub-processes). An example of an activity is a user task or a service task. A user task indicates a human interaction and the action has to be taken manually to complete this task. A task can be complete upon being triggered or can wait for completion (a wait state); for example, a service task is triggered and completed, while a human task is triggered and waited upon for a user to complete the action.
- Gateways: Gateways are used as controllers for the branching, merging, forking, and joining of execution paths within a business process. An example is the parallel gateway, which can be used to split the execution path into multiple outgoing branches, with all outgoing branches activated simultaneously. Parallel gateways can also be used to merge branches; they wait for the completion of all incoming branches to complete before triggering the outgoing flow.
Data
Business process execution results in the production of data; for example, in the banking transaction process, the transaction details are data provided by the user regarding the transaction. This data would have to be saved or transferred to another activity for further processing. The following elements are the core of data modeling in BPMN.
- Data Object: Data objects are data created as part of a business activity. They can be used for informational purposes to indicate that the activity produces such data.
- Data Input: Data inputs specify the input needed for an activity for its completion. For example, an OTP sending task in the banking transaction process would need the details of the customer to send the SMS. So, the input of this activity is mapped from the output of the previous activity or from data that is globally associated with the process instance.
- Data Output: Data outputs are data resulting from an activity that have to be mapped to a global process variable or to serve as input to a subsequent activity.
- Data Store: A data store provides a mechanism for activities to retrieve or update stored information that persists beyond the scope of the process.
Connecting Objects
Flow objects are connected to each other by using connecting objects. The following are the types of connecting objects:
- Sequence Flows: A sequence flow is the basic element used to represent a connection. It is used to connect flow objects and defines the execution order of activities.
- Message Flows: Message flows are used to represent information flow across organizational boundaries (a group of activities within an organization or a department, or a role of users).
- Associations: Associations are used to represent the association of data or an artifact to a flow object.
Swimlanes
Swimlanes are a visual mechanism for organizing and categorizing activities and form the basis of cross-functional charts using BPMN. They represent an organization, a role or, a system. They are basically of the following two types:
- Pools: A pool represents the higher-level categorization of activities. For example, an organization can be represented as a pool. A pool consists of multiple lanes. An example of lanes would be the departments within an organization.
- Lanes: A lane represents the categorization within the pool. The lane contains flow objects, connecting objects, and artifacts.
Artifacts
Artifacts are graphical representations that provide supporting information about the process or elements within the process. They don't interfere with the process flow; in other words, we can say that they are opaque from the perspective of process execution. The basic types of artifacts stated in the BPMN specification are as follows:
- Group: The Group construct can be used to logically group an arbitrary set of flow objects to show that they logically belong together
- Text Annotation: Text annotation can used to associate additional documentation with any element in a BPMN diagram
The banking transaction process is illustrated in the following diagram with the core elements of event, activity, data object, lane, and gateway annotated: