BPEL (Business Process Execution Language) is an XML-based, special purpose language that many hope will provide a standard way for specifying and building sharable business processes.
We could, of course, accomplish this integration using a general-purpose programming language such as Java or C# to build an application that talks SOAP and executes the business process. The problem with that approach is that the business process moves beyond the reach of the very business people who need to guide its maintenance and operation.
BPEL sidesteps that issue. It can be used in two ways: to specify the behavior of a process at an abstract level or to define executable business processes.
Abstract processes specify constraints on message exchange and expose the level of information necessary for a partner to interact with the process. Using BPEL at the abstract level, business- process owners can specify the process from their vantage point. This abstract specification can then be refined to create an executable business process in the same language.
Executable processes contain more detail, including information that would be hidden from partners in the abstract specification. BPEL primitives are called "activities" and represent the actions to be carried out within the business process. These activities are combined using standard programming language control structures to specify the business process.
Because BPEL is XML based, it's not much to look at. Programming language designers call the features used to make a language readable and pretty "syntactic sugar;" BPEL is syntactic arsenic. There seems to be no compelling reason to base BPEL on XML except that XML is the syntax of the Web.
BPEL's constructs will be familiar to anyone who has programmed in a language that allows parallel execution flow and asynchronous invocation -- good programmers will catch on pretty quickly. And because BPEL is a standard supported by large vendors -- it was defined by BEA Systems, IBM, Microsoft, and a handful of other vendors and proposed to OASIS as a technical standard in 2003 -- support tools should be plentiful.
Consequently, most people probably won't write BPEL directly, but rather use a graphical tool that ultimately generates the BPEL. Grand Central's Business Services Network, for example, provides a convenient engine for executing BPEL. Collaxa sells a BPEL execution engine as well as a BPEL design tool.
While BPEL may be popular, it isn't the only standard for choreographing Web services. The W3C's Choreography working group has been trying to create a consensus of support for business process language specifications including WSCI (Web Services Choreography Interface) and WSCL (Web Services Conversation Language). Where BPEL has mostly focused on internal, private business processes, W3C efforts are aimed at describing public, external, and shared processes.
To avoid a showdown, Oracle and other vendors have recently made moves to bring about some coordination between OASIS's efforts on BPEL and the W3C's work on WSCI and WSCL. Focusing BPEL on internal processes and WSCL on external processes could eventually make these languages complementary.