BPMN Overview
Business Process Model and Notation (BPMN) is a standard supported by the Object Management Group (OMG). This standard aims at providing a normalized graphical representation of business processes.
The last released version of BPMN is BPMN 2.0 which was released in February 2011 and is the one we use in our products.
BPMN 2.0 is becoming the main standard for business proscess modeling because in addition to allow the design of a very wide variety of business processes, it allows to design diagrams which are at the same time easily understandable and that can be executable. Thus, it fills the gap between the business analysis concerns and the IT restrictions for automatic process execution.
The graphical modeling of a buisness process using BPMN 2.0 which is the core of BPMN is done using a quite intuitive set of elements allowing a quick understanding for any user if the diagram is not too big or too complicated.
Since the version 2.0, BPMN also defines a serialization for its diagram. In the previous versions, the standard was only graphical. This produced problems of interoperability : BPMN 1.x users had to use XPDL which is a standard for business process notation based on XML. But XPDL specifications were not strict enough and therefore the problem of interoperability was not totally solved.
To ensure interoperability each BPMN 2.0 diagram corresponds to a single XML serialization containing all the information semantically related to the business process itself. This unique serialization of a business process representation allows the exchange of this process and its use in different modeling tools.
BPMN 2.0 also provides a standard called BPMN Diagram Interchange (BPMNDI) which is also based on a XML serialization. This standard is used to complete the BPMN 2.0 textual notation by adding the graphical information of the diagram to core Xml serialiazition. This notation allows to import BPMN 2.0 diagrams directly into a graphical modeling tool if it conforms to the BPMN 2.0 specifications.
To address the large variety of possible business processes a business process designer might want to desgin BPMN 2.0 defines several levels and types of business process modeling.
For the more detail of BPMN 2.0, click here.
We currently use three of them :
- the Process
- the Collaboration
- and the Choreography.
BPMN 2.0 Process
A BPMN 2.0 process represents a business process aimed to be executed by a single business entity which usually is a service of a company or an employee of the company.
Such a process comports tasks that are to be performed by the business entity itself or by a subpart of it.
These tasks are ordered and might be preformed sequencially or parallely. This order defines the execution flow of the process and is modelled using Sequence flows (defining sequencial order) and Gateways (for merging and diverging the flow).
A BPMN 2.0 process can also contain Events that are used to represent the events that happen during the execution of the process. This process ussually are used to start and terminate the process but they can also be used during the process execution.
You can find the detail of the BPMN 2.0 elements here
BPMN 2.0 Collaboration
A BPMN 2.0 Collaboration is used to model a business process that involves multiple distinct business entities. It differs from a BPMN 2.0 Process because the communication between the diferent participants of the Collaboration needs to be modelled whereas the communication between the possible sub entities executing a BPMN 2.0 Process is implicit.
To represent such behaviors a BPMN 2.0 Collaboration mainly defines two additional objects : Pools and Message Flows.
Schematically, each participant execute a BPMN 2.0 process. This process is represented inside a pool. And the communication between these particpants is modelled by the messages that are exchanged using Message Flows.
BPMN 2.0 Choreography
A BPMN 2.0 Choreography is another view of a multi-particicipant business process : a business process that can me modelled as a BPMN 2.0 Collaboration can be repsented as a Choreography and vice versa.
The difference between these two levels of modeling is their goal.
A BPMN 2.0 Collaboration is used to define precisely the tasks that have to be achieved in order to complete the execution of the different processes of the Collaboration.
On the other hand, a BPMN 2.0 Choreography is used to model precisely the expected communciation between the particpants during the simultaneous execution of their respective processes.
Therefore a BPMN 2.0 Choreography does not aim at being execuable whereas BPMN 2.0 Processes and BPMN 2.0 Collaboration can be.
The main elements used in BPMN 2.0 Choreograhpies are ChoreoGraphy Activities. It represents an iteraction between two or more particpants. Once they have been linked to form a sequence flow, such activities allow to model the communication between the participants by setting an order on the sending and receiving of messages.