4.6. Orchestration and Choreography

As noted above, BPEL is a web service orchestration language. This means that a BPEL implementation of a business process will include the control logic that links all the services together from the point of view of a single rôle or process participant. Of course, this rôle will need to interact with other rôles at various points in the process, but these are secondary. If you are a sales clerk taking an order you have an interface to the customer, the credit system and the stock control system, but your focus is on the process by which the order is validated and executed.

Now, in real life, there needs to be what Catalysis called collaboration between systems and the processes that they represent. This, in principle, cannot be orchestrated by a central controller - because the systems may be distributed and may well be owned independently (as might be the case if the credit checks are operated by a specialist company). What is needed therefore is not a controller but a protocol that enables collaborating processes to talk to each other on demand. The internal logic of the processes in irrelevant, what matters is the language they use to talk to each other: the protocol. Such a protocol requires that there be an underlying common semantics; so yet again we come back to the need for modelling. In business process management circles defining such a protocol is referred to as choreography.

The primary difference between orchestration and choreography ...

Get Requirements Modelling and Specification for Service Oriented Architecture now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.