Monday, February 7, 2011

Orchestration vs Choreography

Service orchestration and service choreography are widely spoken topics when it comes to service composition. Lets take a look at the definitions.


Analogy: Orchestra


The conductor of the orchestra is the one who knows the entire composition. The musicians in the orchestra do not necessarily have to know what other musicians part or what they do. The musicians just have to know how play their instrument in which they best at. The conductor orchestrate the group of musicians to achieve the final output (composition).

Orchestration is the coordination of web services in order to compose the business processes. The business process plays the role of orchestrator/conductor and coordinate the services to fulfill the business process. The individual web services do not aware (it is not necessarily need to know) of the other services involved in the process and the services even do not know that they participate in a business process, they just serve the requests. WS-BPEL specification is an example. WS-BPEL is a language for defining processes that can be executed on an orchestration engine such as WSO2 BPS.


Analogy: Group Dance
Hacettepe University Folk Dances Group

Each and every dancer know, exactly what to do and what other dances will do. They synchronize them selves according to the other dances.  The dancers aware of the each others moves.

Therefore, in choreography, services do not rely on a central coordinator. Each of the service, knows exactly when to execute them selves and when to talk to its peers and sync up. WS-CDL standard is an example.


1 comment: