Right now developers working on complex service-oriented architecture implementations face a Hobson's choice between an existing standard that doesn't meet their needs and an emerging standard that they can't use yet, according to a Burton Group report released this week.
Business Process Execution Language (BPEL) is the standard developers must use for Web services orchestration, but it is a limited standard and will eventually be subordinated to Web Services Choreography Description Language (WS-CDL), argues Chris Howard, the Burton vice president who authored the report.
Asked if the choreography standard could be used in upcoming service-oriented architecture projects, his answer characterized the dilemma: "WS-CDL is further down the pike. BPEL is the 'best available,' as long as developers have their eyes wide open to the limitations."
BPEL's limitations are covered at length in Howard's detailed report, "Crossing the Divide: The Mechanics of Process Execution."
For the process execution component of business process management (BPM), he notes that BPEL has vendor support in tooling for Web services orchestration. But one of the limitations he mentions is that even in the updated BPEL 2.0 standard, which is expected to be finalized by OASIS this summer, "it still performs orchestration from the perspective of a single service." This is not adequate for maturing SOA implementations requiring choreography of multiple services, he argues.
WS-CDL, which is making its way through the W3C standards process, will provide a more holistic choreography for handling the interaction between multiple services. While it isn't mature enough yet and tooling is lacking, Howard says WS-CDL could be the key standard for the choreography of the next generation of SOA.
"Choreography defines a system view of service interactions," he wrote. "As service- oriented architecture matures, so will techniques for building composite applications. Choreography will become the programming model for composite application development, employing orchestration for sub-process execution."
Key to Howard's argument is the distinction he draws between orchestration, where BPEL plays a key role today, and choreography, where WS-CDL will play the lead in the future. He wrote: "Although many people equate orchestration with choreography, they are neither identical nor mutually exclusive."
Orchestration defines an executable series of actions," he explained, "but it does so from the perspective of a single process." He goes on to point out that orchestration has a limited view of what the business logic is doing within an application, but lacks a big picture view of the total system. Choreography offers a holistic view.
"Choreography is an assembly of interactions seen as a whole," Howard said, "the actual nature and order of which are determined by the desired behavior of the system from a user's perspective. It is a means of defining the correct interaction at the correct time, depending on the capability of the participants to contribute to the overall goal."
Using the analogy of a human community, orchestration might provide an understanding of what kind of task one individual can do, but choreography looks at the way the individuals are organized into a team where each individuals task contributes to a larger end result. Choreography understands who works with whom to get the big job done.
The principles of choreography can cover any complex operation whether it's people interacting in a workflow or services interacting in SOA. Howard breaks the essence of choreography down to three things. "First, we must know how each separate part works. Second, we must know how each part interacts with those to which it is connected. And third, we have to understand how all these local interactions combine to accomplish what that system does—as seen from the outside."
In this view, choreography would encompass the orchestration of sub-processes within the overall system.
Despite its limitations, Howard sees BPEL with its vendor tools support continuing to play a role in SOA development. Eventually, however, BPEL sub-processes will play a subordinate role in the larger choreography and WS-CDL with vendor support will be the big picture standard.