Monday, 28 April 2008

What is BPEL and should I distinguish between the music and the dancers?

Well, let’s answer the first part of the question posed in the title and see what BPEL is. The letters stand for Business Process Execution Language, and it is a language for specifying the behaviour of business processes based on Web services. Importantly, processes use only Web services to import and export functionality.

That all sounds fairly sensible – it’s a language to specify how business processes should execute, and it uses Web services, which are software systems supporting interoperable machine-to-machine interactions over a network. And, of course, WSDL (Web Services Description Language) is the machine-readable description of the service. And we’re all familiar with SOAP and WSDL etc these days.

But BPEL gets more complicated. These business processes come in two varieties – executable and abstract. So, definition time… An executable business process models the actual behaviour of a participant in a business interaction. An abstract business process may hide some of the concrete operational details – making it more descriptive. This is important for a real-life business model.

IBM and others developed BPEL4WS 1.1. The current standard (with the current naming convention) is WS-BPEL 2.0. In June last year, IBM and others published the BPEL4People and WS-HumanTask specifications, which describe how human interaction in BPEL processes can be implemented.

So what’s all this staff about "the music and the dancers"? Well, BPEL is an orchestration language, not a choreography language. It seems that an orchestration language specifies an execution process involving messages being exchanged with other systems – specifically, the message exchange sequence is controlled by the orchestration designer. A choreography specifies a protocol for peer-to-peer interactions.

Let me put this another way. Orchestration defines the flow of a process that involves distinct services and choreography defines the interaction between independently-defined processes. If you are writing a choreography, then there is WS-CDL – Choreography Description Language.
In truth, people are using orchestrations, but no-one is yet using choreography.

How did they get these names and what analogies were their creators thinking of? Well, if you think about an orchestra, although there are numerous players, they all follow the conductor. So an orchestration is more about centralized control. Now think of a stage full of dancers – they all have their parts of the performance but they do not have a conductor, they are in many ways on their own.

So, as a died-in-the-wool mainframer, why do you care about BPEL and dancers and orchestras? The answer is really all to do with SOA. If making your mainframe part of a distributed system is the way forward, and you don’t want a mixed bag of point solutions that work with a bit of your CICS system or your DB2 database, then you probably are looking for a simple single strategy. You’re also probably looking to future-proof your SOA development by adopting a recognized industry standard.

BPEL might just be able to help you achieve that.

Lastly, if you’re an IMS user, then please complete our IMS survey. You can find it at

No comments: