Illustrating Choreography and Orchestration
by Jim Alateras
Choreography is concerned with all the message exchanges between all the participants engaged in the process. It's a birds-eye perspective of the process. Orchestration, on the other hand is only interested with the message changes from the perspective of a single participant. Therefore in the diagram below, we have the yellow circle which represents the birds-eye perspective and the red ovals, which represent each participant's perspective.
In the specification space WS-CDL could be used to specify the choreography and WS-BPEL the orchestration. In fact once we have a WS-CDL document of the process we should be able to generate the skeleton WS-BPEL documents for each participant.
|Spot on. I think you have described it exactly. I would only add that it is a matter of abstraction. WS-CDL is position at a level of abstraction that makes it simply to express the bird-eye view. Whereas WS-BPEL (and indeed Java and other end point specific languages) do not make it so easy. It is akin to the difference between Java and Assembler. They both work as languages but one is more abstract than the other and this in turn gives benefits because the abstraction more closely matches the problem domain without loss of expression. WS-CDL is much the same for distributed systems and any generic SOA.|