Wednesday, February 22, 2006

It's OK to admit two words are synonyms

I hope I'm not about to expose my ignorance of the space in which I specialise.... but I'll take the risk. I'm going to admit that I don't know the difference between "orchestration", "workflow" and "choreography". There. I said it.

Actually, I'm not being entirely honest. It's not that I don't know the difference; I just don't think there is any difference.

I freely interchange these words when I talk to clients and I make no apology for it. I've seen no attempt to differentiate the terms that resonates with me and, until I do, I'll carry on doing what I'm doing. As far as I'm concerned, the concepts of orchestration, process choreography and workflow are the same thing.

You can try to tell me that it's all to do with granularity or that it's all to do with the life-time of a process or it's all to do with whether humans are involved or not. I don't care. I'm going to stick my fingers in my ears and yell "La La La! I can't hear you!"

Sure... different runtimes may be optimised for different kinds of scenarios (a BPEL execution environment may not be the place you transform 1000 messages per second as they flow between two systems across MQ) but that's orthogonal.

So, it was with highly sceptical eyes I read this post by Polar Lake's Warren Buckley. Warren appears to be their new blogger-in-chief after the departure of the impressive Ronan Bradley. He tries to differentiate "choreography" and "orchestration". I think he's guilty of verbal gymnastics that would shame a politician but don't let that distract you from his point. His discussion of Control Theory is most interesting. I *think* he's describing the same kind of thing we talk about with our WebSphere Process Integration story but I need to think some more about it. Either way, it was an interesting post.

So, hello, Warren. I look forward to reading more of what you write :-)


Sandy Kemsley said...

I agree with your assessment: Buckley's distinction between orchestration and choreography seems a bit artificial, and I typically don't make a distinction between the two terms with my clients.

Richard Brown said...

Thanks Sandy.

Steve Ross-Talbot said...

No surprise that I disagree. What is the difference?

In general (that is more than 50% of the time) an orchestration implementation is realised in some form of centralised control process. Hence BPEL always gives rise to another web service (the composition of it's children).

Whereas a choreography is a description of what should happen and not how it should happen. Therefore a choreography does not need to have a central control process to be realised if the services that cooperate perform the described steps in the correct order (including any interaction between them).

This a choreography can be seen as a higher level description of what a system (collection of services) should do and an orchestration is one of many possible concrete realisation of that description.

If you get them wrong you will buy the wrong thing or do the wrong thing. Now we might rename them but then what is the point of that? W3C have a definition of these terms that is pretty well the same as the one I have given. IBM are alone among vendors who use the term choreography to describe their orchestration product that is based on the same underlying principles as BEA's, Oracles, Microsofts etc etc etc.