W3C home > Mailing lists > Public > www-ws-arch@w3.org > August 2002

Re: "Orchestration" and "Choreography"

From: Sanjiva Weerawarana <sanjiva@watson.ibm.com>
Date: Wed, 14 Aug 2002 14:18:35 +0600
Message-ID: <00a601c2436b$35239040$c267b809@lankabook2>
To: <edwink@collaxa.com>, <www-ws-arch@w3.org>

I'm not sure whether there's such a clear distinction between
the terms. During the lifetime of the BPEL4WS document, it was
at one point called WS-Orchestration, then WS-Choreography,
then WS-Business Process and and eventually BPEL4WS. I can tell
you that the name changes had nothing whatsoever to do with
technical distinctions between the words .. it was all marketing
and, um sometimes, politics ;-).

To me orchestration, choreography, business process, workflow
are all ways of indicating how to take a bunch of things and
put them together to do something meaningful. We also use the
term composition for the same thing .. BPEL4WS is a language
for composing a set of Web services into another service. The
thing that makes it a workflow language is that the composition
primitives chosen are those that are well-known in the workflow

Edwin's distinction seems to be the difference between what
WSFL called global models vs. flow models. I think that distinction
is definitely valid (BPEL4WS doesn't yet handle global models,
for example), but I don't think the terms choreography and
orchestration distinguish between those two.

Coordination is different IMO; that's really distributed 
synchronization (rendezvous).

Hope this helps,


----- Original Message ----- 
From: "Edwin Khodabakchian" <edwink@collaxa.com>
To: <www-ws-arch@w3.org>
Sent: Wednesday, August 14, 2002 1:42 AM
Subject: "Orchestration" and "Choreography"

> Mike,
> There are 2 problems that need to be solved:
> Problem #1: You have 3 different services that 
> interact with each other and you want to document the 
> exchange of message between those services.
> Problem #2: You want to invoke 3 different services 
> in a specific order because they have data and 
> control dependencies between each other.
> Problem #1: is called choreorgraphy. It is about 
> providing more information about interfaces of 
> services and how they plug to each other. 
> Choreography defines public protocols that each party 
> needs to be compliant with. RosettaNet PIPs, WSCI, 
> BPSS and BPEL4WS abtract processes try to address 
> this problem. Note: This is not executable logic, 
> only something you are compliant with. 
> Problem #2: is called workflow, BPM or Orchestration. 
> It is about implementing logic that ties a set of 
> services into an end-to-end process. That logic is 
> then executed by a run-time that dispatch the right 
> message to the right component and wait for the 
> reception of the right message to activate the next 
> service. Orchestration languages are similar to other 
> scripting language but usually include support for 
> asynchronous interactions (<receive> in BPEL) and 
> flow coordination ( <flow> in BPEL ) and business 
> transactions (WS-T or BTP). Also, in term of 
> terminology, orchestration languages use activity 
> where traditional languages use statements.
> One of the most important aspect of both of those 
> problems is that they require a visual representation 
> because they are used as an important communication 
> medium between partners but also within an 
> organization between the business analyst and 
> business users that know the rules and data models 
> and the developers that implement the real work.
> my 2c,
> Edwin
> ---- "Champion, Mike" <Mike.Champion@softwareag-
> usa.com> wrote:
> > 
> > OK, trying to eat my own dogfood here, I need help 
> understanding the
> > distinctions between "coordination" 
> and "choreography" in the web services
> > context.  The W3C recently acknowledged 
> a "choreography" submission [1], and
> > IBM/BEA/Microsoft just unveiled a collaborative "WS-
> Coordination" language
> > [2].  
> > 
> > I presume that some of the authors of those 
> documents are on this list.
> > Please help!  [send me private e-mail if you don't 
> want to go on record, and
> > I'll sanitize/anonymize it!!!!]
> > 
> > As best I understand it, "choreography" is a higher-
> level activity involving
> > multiple web service invocations, 
> whereas "coordination" is a lower level
> > activity that choreography or transaction 
> processing, security, etc. would
> > employ in their implementations, and could be 
> exposed as a web service
> > itself.  
> > 
> > I have this vague sense that while REST advocates 
> didn't express much
> > interest in either "coordination" 
> or "choreography", they did so for
> > different reasons:  Coordination can be handled, in 
> the REST view, by shared
> > "state" resources identified URI and accessed by 
> HTTP; Choreography is
> > opposed on RESTful grounds so much as by the sense 
> that
> > RDF/OWL/DAML-S/whatever would provide a better 
> solution than SOAP-based
> > protocols.  Does anyone else see it that way?
> > 
> > Special bonus question: Is there a distinction 
> between "orchestration" and
> > "choreography" in the web services context?
> > 
> > [1] http://www.w3.org/Submission/2002/04/
> > 
> > [2] http://www-
> 106.ibm.com/developerworks/webservices/library/ws-
> coor/
> > 
> > 
> >
Received on Wednesday, 14 August 2002 04:20:12 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 23:05:36 UTC