Friday, November 28, 2003


Choreography - Take 2

Here are some graphics to complement the Choreography - Take 1 blog.  These give a simple overview of how one might think about choreography and orchestration as distinct concepts - slightly tailored here to show well in black and white. 

By no means is there agreement on this but this is a cut of how one can reasonably differentiate the two concepts. 

This first one covers one take of what choreography is - basically the public process, the observed message exchanges between two larger private business processes:

Then in conjunction, one can see what each private process in this choreography looks like.  In this case, the private internal orchestration of business A, could be defined in BPEL with steps such as transformation, logging and private processing independent of the public exchange of messages:

Lastly, you can put the two together to have a choreography implemented by two private BPEL processes. 

How this might happen in reality is via a real business analyst - not someone familiar with the details of BPEL, rather one familiar with the actual B2B business process - who might use a modelling tool to model this well understood message exchange pattern.

Once this public exchange were modelled/described, more technical business analysts, those familiar with BPEL, might then be able to generate BPEL templates that can be used to implement the private processes necessary to integrate that message exchange into their internal systems. 

This two level approach seems to mirror more what I have seen both visiting customers and in past non-Oracle roles - there is often a technical IT department/group that has the technical "system" or "business" analysts who interact with the "business" departmental staff who run the business on a day by day basis.

An interesting question becomes is there a runtime associated with choreography?  At a simple level, one sees it as a map to guide your BPEL implementation.  At a more comprehensive level such as that defined in the proposed W3C Choreography CDL language, it seems more likely there would have to be some sort of runtime characteristics (and also less business analyst friendly).



comment []
7:31:07 PM