Orchestration, Choreography and Choreostration

by Jim Alateras

I don't really subscribe to the distinction between orchestration and choreography. For me the distinction is purely academic and provides little value in the practical world. Stefan Tikov's blog entry on Choreography vs. Orchestration is a good entry point into the subject.

The two terms have concise and distinct meaning in the English language but they are used very loosely in computer science (particularly in respect to web services and BPMS). In fact there is so much overlap in our definition of orchestration and choreography that it only serves to confuse the market.

There are four specifications, namely BPEL, BPML,. WS-CDL and WSCI, which potentially fall into the orchestration and choreography bucket. From this group of specification I have noted the following, not so interesting point. The Web Services Choreography Description Language specification makes no mention of orchestration but makes extensive use of choreography. The Business Process Execution Language specification mentions neither orchestration or choreography. Finally, the Business Process Modeling Language specification makes a single reference to choreography (via a link to the WSCI specification).

There is so much overlap between the specification that we could merge them all into a single specification, dispense with one of the terms or come up with a complete new term like choreostration, without disrupting the market. In the vendor space no one is currently supporting WS-CDL or WSCI and there are only a handful supporting either BPEL or BPML (actually only one that I know off supports BPML).

In the customer space who is going to purchase an orchestration engine without so called choreography capabilities or visa versa. Maybe those that will buy a workflow system without BPMS capabilities.


2005-03-17 17:03:10
Connected, but not overlapping
Hi Jim!

In my mind, orchestration and choreography are connected but don't necessarily overlap. If choreography describes the externally visible behavior of interacting systems (e.g. interfaces), orchestration is the means by which the systems are driven to achieve intended results. The key distinction being that orchestration implies a goal and possibly many decisions to realize that goal whereas choreography represents an array of choices and the consequences of making those choices.

Following this definition, BPEL achieves both by being able to describe both process abstracts and executable processes. BPML also does both while WS-CDL and WSCI focus on choreography; no surprise there.

I agree that customers want both orchestration and choregraphy. What is bread without butter?


2005-04-20 14:54:05
Re: Orchestration and Choreography
Dear Jim,

I feel I should defend our use of "orchestration" and "choroegraphy" within the WS Choreography WG. As well as correct a few factual errors.

We have *never* used these terms as a formal description of what WS-CDL is all about. Like all human language metaphor is a very powerful way of explaining things even when there is not an exact match. Thus far the use of the terms and the explanations proffered have served us well. Most people *get it*.

As far as factual errors are concerned WSCI is not a standard and was only a working note (WSCL too). WS-CDL is subject to a standardization process and has no relationship to WSCI at all. WSCI was left on the shelf as a historical footnote.

There is at least one implementation of WS-CDL and I admit it is very new (from www.pi4tech.com). This is being used by a number of users today and it will become public in May 2005.

I do agree that you need both "choreography" and "orchestration". What you need is to describe (what WS-CDL does) and then encode and execute (what WS-BPEL does). So as a user I would expect them to work together as indeed they will do.


Steve Ross-Talbot
co-Chair W3C Choreography WG
Chair W3C Web Service