Re: choreography vs. orchestration

Hi Xianfei,

Orchestration addresses the application execution in a host-bound fashion. There is a centralised control mechanism which directs activities, each of which is an interaction between services (generally constrained to Web services). These apply a behavioural contract between partners in a binary model. This enables one to define an executable, and to a lesser sense, an abstract model of stateful interactions, but only from the perspective of the controller. Orchestration defines executable behaviour and how it is to be achieved, and events are controlled centrally. While Orchestration is how one executes a composition of services, it isn't the method by which one composes services, if you will. 

Choreography describes what behaviour can be observed, as opposed to how is to be achieved. Choreography has no centralised control, which is instead shared between domains, where each is able to carry out its own activities according to its role in a peer-to-peer model, applying a global behavioural contract. The perspective is neutral to any of the participants in any interactions, and execution and/or central control are the responsibilities of the participants themselves. Choreography is thus far less constrained than Orchestration. It enables the composition of services (including Web services) in connecting the structures of interactions to result in choreographies. 

In this sense, one can view Orchestration as imperative, and Choreography declarative.

My favourite analogy for orchestration and choreography is Steve Ross-Talbot's conductor of an orchestra (a director of a musical performance) representing Orchestration, and composition of dance into choreography by one or more participants (each dancer performs independent of central control, but in collaboration with other participants) representing Choreography. Particularly insightful in this analogy is the role of improvisation in Choreography, which is enabled by the netural, peer-to-peer perspective. 

Another analogy which is interesting is Stefan Tilkov's traffic lights (representing Orchestration) - where events are controlled centrally - and roundabouts (representing Choreography) - where each participant follows a prearranged set of rules. 

-Charlton.

--
charlton_b@mac.com
http://charltonb.typepad.com

 
On Wednesday, May 30, 2007, at 07:19AM, "Xianfei Tang" <xianfei.tang@gmail.com> wrote:
>Someone can tell the difference betweeen the Web service choreography and
>Web service orchestration? their relations with Web service composition? "AI
>planning can be used to do Web service composition", here composition means
>choreography or orchestration? Thank you!
>

Received on Wednesday, 30 May 2007 07:03:48 UTC