In one of the sessions on evolution of SOA which I attended after joining fusion practice, I came to know about some business process terminologies like orchestration, choreography and collaboration. Some people use the terms interchangeably; some people distinguish them in terms of specificity and perspective. Will try to explain them in detail.
· Orchestration
Orchestration in business processes is a series of activities in a controlled work flow – typically involving one single swim lane. Centered on a single point-of-view, defines state full use-of-message exchanges with service providers and consumers (e.g. WS-BPEL). The description of the sequence of activities that make up a business process is called an orchestration. WS-BPEL is used to orchestrate services into composite solutions usually expressing organization-specific business process flows. With WS-BPEL, you build a business process by integrating a collection of Web services into a business process flow. A WS-BPEL business process specifies how to coordinate the interactions between an instance of that process and its partner services. Orchestration defines executable behavior and how it is to be achieved, and events are controlled centrally.
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.
· Choreography
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. Provides a global view of the exchanges (e.g. WS-CDL) The Web Services Choreography specification along with its corresponding Web Services Choreography Description Language (WS-CDL) provides another way to building SOA compositions. WS-CDL allows you to describe peer-to-peer relationships between Web services and/or other participants within or across trust boundaries. To define choreography, you create a WS-CDL choreography description document that will serve as the contract between the interacting participants. Specifically, a WS-CDL document describes the message exchanges between the collaborating participants, defining how these participants must be used together to achieve a common business goal. For Choreography, message structure, asynchronous communication, message rules, invocation, events and event handling are some of the important design factors.
· Collaboration
A business function or functions emerging from the cooperative interaction between multiple actors. This is usually pictured as a form of global business process, where business state is modeled. (e.g. Business Process Specification Schema). Business process models describe interoperable business processes that allow business partners to collaborate. Business process models for e-business must be turned into software components that collaborate on behalf of the business partners. The goal of the ebXML Specification Schema is to provide the bridge between ebusiness process modeling and specification of e-business software components.