What is the difference between orchestration and choreography and what are the different design factors an architect needs to take into account to achieve them?
The orchestration and choreography are both critical pieces of collaboration layer of service orientation (SOA+BPM). Each of them have a distinct purpose but need to perform together to achieve service orientation. However there seems to be lot of confusion on the use of these two terms. The terms have very close resemblance in meaning to the real world musical which has both Orchestra and Choreography.
OMG refers to orchestration as "the modeling of directed, internal business processes" and choreography as "the specification of interactions between autonomous processes".
Orchestration in business processes is a series of activities in a controlled work flow – typically involving one single swim lane. Where as choreography relates to observable public exchange of messages, rules of interaction and agreements between two or more business process end points and can address the collaboration among multiple swim lanes.
There are several design factors which need to be addressed to achieve orchestration and choreography.
The key design attributes for Orchestration include participant and role definition, variables, properties which enable conversation, fault handlers for exception processing, compensation handlers for error recovery and event handlers to respond to concurrent events with the process itself and set of activities.
For Choreography, message structure, asynchronous communication, message rules, invocation, events and event handling are some of the important design factors.
Dig Deeper on Topics Archive
Related Q&A from Srinath Nagabhirava
Sri Nagabhirava discusses what a business process management portal tool is and how to go about using them for best business analysis needs. Continue Reading
What are some new standards emerging for business process management? Sri Nagabhirava discusses some notable emerging new standards. Continue Reading
Sri Nagabhirava two different kinds of business process management frameworks available in the software market today. Continue Reading