Business Process Modeling Notation (BPMN) is a modeling language for illustrating business processes in the form of a diagram similar to a UML activity diagram. BPMN was originally conceived and developed by the Business Process Management Initiative (BPMI). It is currently maintained by the Object Management Group (OMG).
BPMN is designed to cover this wide range of usage and allows modeling of end-to-end business processes to allow the viewer of the Diagram to be able to easily differentiate between sections of a BPMN Diagram. Business process modeling is typically used to communicate a wide variety of information to a wide variety of stakeholders. It often involve multiple agencies (i.e. organizations, companies) cooperate. Thus, BPMN is not only able to model internal processes with in a single pool, but also applicable for public processes for describing the interaction among them as shown in the Figure below:
BPMN supports three main categories of Processes: Orchestration, Choreography and Collaboration
Orchestration process is a standard process, we most commonly come across in BPMN. It typically models a single coordinating point of view. An orchestration Process describes a process within a single business entity that is contained within a Pool and normally has a well-formed context.
Collaboration process shows the participants and their interactions. In BPMN, a collaboration only shows Pools and the message flow between them. To be more specific, a collaboration is any BPMN diagram that contains two or more participants as shown by Pools which have message flow between them.
Choreography process. A new model type in BPMN 2.0 is the Choreography Diagram. Its purpose is to show the interaction between participants in a different format and concentrate on the message flow instead of the individual detailed tasks of a process. Therefore new object types were introduced that include sender and receiver within the object (instead of connecting roles to a task or using swimlanes) and connect the sent/received messages to this object.
A collaboration process depicts the interactions between two or more business entities. These interactions are defined as a sequence of activities that represent the message exchange patterns between the entities involved. A collaboration diagram is quite commonly used and is easily recognized because it consists of more than one Pool. A Pool may be empty, a black box, or may show a process within.
Up to BPMN 1.1 choreographies are represented in the same diagrams as orchestrations. However, the elements that allow for a complete definition of a choreography are still to be defined. In BPMN 2.0, it provide the definition and additional notation for expressing choreography. The figure below shows an example of choreography according to BPMN 1.1:
Choreography diagrams are new in BPMN 2.0 and focus on between-processes interactions and message flows. Another way to look at Choreography is to view it as a type of business 'contract' between two or more organizations.
Choreography does not only describe what a business process does, but also define how individual process interact with each other. In short, it depicts all the processes and their required interactions in a business process diagram. However, unlike BPMN's process, it doesn't belong to any pool. The focus of a choreography diagram is the messages between the participant pools. A choreography diagram is populated with choreography tasks.
The following figure shows the interaction between manufacturer and customer in a sale order process. To initiate the process, the customer places an order for an item. The manufacturer then replies the customer with confirmation.
Place Order task:
Confirm Order task:
The same participants are interacting as the first choreography task. As we see, these participants are part of the choreography model and can be referenced by different choreography tasks. The distinction is that the initiator of the interaction in Confirm Order is Manufacturer.
When a message is defined, message icons appear connected to the task. You can define the initiating message and you can optionally define a return message. The message can have structure and parameters defined. In the following diagram, a message is defined for both Participant1 and Participant2
The choreography clinic example below consists of sequence of choreography tasks, which denote the interacting participants: Patent and Doctor's Office. The name of the interaction is written in the center, whereas the different participants are shown at the top and the bottom (there can be more than two participants). The initiating participant is shown with a same color shading.
The second new BPMN 2.0 model type - the BPMN Conversation diagram - takes this concept on an even higher level. The Conversation Model is a simplified view of collaboration model. There are only three types of elements in a Conversation Model - pools, communication elements and the links between them. It does not include process logic. In fact, it shows only the conversations between the participants in a 30,000 foot view as conversation objects (hexagons) without showing the individual message flow.
The conversation diagram 'view' of a collaboration diagram includes two additional graphical elements that do not exist in other BPMN views: Conversation Node elements (hexagon) and a Conversation Link (double line).
The Conversation model in the Figure below is a representation of the communications or messages between the participating roles shown in the Choreography model in the Figure on the example 2 above. The Conversation model in this case depicts a overview of the overall communications between the parties. Nevertheless it does not shows the sequence of the communications as that shown in a Choreography model.