Chapter 1. Overview of BPEL

BPEL stands for Business Process Execution Language. Originally authored by a small charter of vendors in the software industry, it is currently under standardization at OASIS (1).

The specification delivers "a model and a grammar for describing the behavior of a business process based on interactions between the process [coordinator] and its partners. Interaction with each partner occurs through Web Service interfaces".

BPEL has quickly become the dominant specification to standardize orchestration logic and process automation between Web services. It has bypassed a number of alternative specifications such as BPML and WSCI, and became a real candidate to drive the existing web service infrastructure into process-centric applications based on a service-oriented architecture.

1.1. The service-oriented architecture

Recent products and strategies announced by IBM, BEA, Microsoft and Oracle are targeted at the service-oriented architecture (2). SOA helps enterprises modify their infrastructure on the flight, according to changes in the environment. Under this model, new applications are developed by wiring together software components, or services, that expose reusable business functions (3).

Leveraging more from existing assets is a real business challenge right now. The idea of enabling legacy applications to be deployed as (web) services and orchestrated across platforms is a key part of why BPEL is becoming a cornerstone of SOA (4).

1.2. Industry support

  • IBM and BEA worked together in a proposal named BPELJ, with the purpose of extending BPEL to integrate it more closely with the J2EE platform (5)

  • BEA will provide full support for BPELJ in the release of WebLogic Integration following version 8.1 (6). In addition, it has submitted a specification request (JSR 207) of an annotated Java syntax and APIs for developing business processes in Java and deploying them in J2EE containers (7)

  • IBM already offers that support as part of WebSphere Business Integration Server 5.1 (8)

  • Microsoft BizTalk 2004 includes BPEL import and export capabilities (9)

  • Oracle acquired Collaxa, a company that focused on implementing the standard since 2002 (10)

1.3. OASIS Technical Comittee

Despite its acceptance, it is recognized that BPEL remains an emerging technology. Challenges await those interested in near-term deployment. Version 1.1, dated May 5, 2003, contains plenty of gaps and ambiguities that should come as no surprise, considering these factors:

  • The separate roots of the specification ( 11). Microsoft initiated the adoption of Pi-Calculus with XLANG, whereas IBM revisited the use of Petri Nets with the Web Services Flow Language, WSFL. BPEL descends from both languages.

  • The immaturity of the overall Web services stack

The OASIS WS-BPEL technical committee is working diligently to overcome these deficiencies. It released the first draft of version 2.0 in July 30, 2004 and continues to publish drafts periodically as it resolves issues. Version 2.0 is receiving contributions from a much broader community and becoming the standard everyone wants it to be.

1.4. Components and dependencies

Table 1.1. BPEL components

ComponentDependency
Partner relationshipsWSDL 1.1 port types
Data representationXML Schema 1.0
Data manipulationXPath 1.0
Message exchangeWSDL 1.1 messages
Flow-control structures-
Scoping: compensation, event handling and event processing-

1.5. References

  1. OASIS Web Services Business Process Execution Language TC

    http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel

  2. Service-Oriented Architecture

    http://inews.webopedia.com/TERM/S/Service_Oriented_Architecture.html

  3. IBM Refocuses WebSphere on Service-Oriented Architectures

    http://www.rednova.com/news/stories/3/2004/04/30/story103.html

  4. IBM Unveils First SOA Products, Services

    http://www.internetnews.com/ent-news/article.php/3343231

  5. BEA, IBM Propose Java/BPEL 'Marriage'

    http://itmanagement.earthweb.com/entdev/article.php/3337731

  6. BEA - BPEL & BPELJ

    http://dev2dev.bea.com/technologies/bpel/index.jsp

  7. JSR 207: Process Definition for Java

    http://www.jcp.org/en/jsr/detail?id=207

  8. WebSphere Business Integration Server Foundation

    http://www-306.ibm.com/software/integration/wbisf/features/

  9. MSDN - Importing BPEL4WS

    http://msdn2.microsoft.com/en-us/library/ms946026.aspx

  10. Oracle BPEL Process Manager

    http://www.oracle.com/technology/products/ias/bpel/index.html

  11. A Convergence Path toward a Standard BPM Stack

    http://www.bpmi.org/downloads/BPML-BPEL4WS.pdf