Business Process Execution Language (BPEL)

April 20, 2011


Business Process Execution Language (BPEL) is an XML-based web services standard designed to define the way in which business processes utilize web services. Written by developers from BEA Systems, IBM and Microsoft in 2002, it is a compilation of IBM’s Web Services Flow Language (WSFL) and Microsoft’s XLANG. [2] In April 2003, SAP and Siebel Systems signed on to create and submit BPEL4WS 1.1 to OASIS for standardization via the Web Services BPEL Technical Committee. In September 2004, the committee voted to change the name to WS-BPEL 2.0. [1]


Most modern business processes today utilize computer systems and applications to perform any number of everyday tasks. The development of Service-Oriented Architecture (SOA) frameworks have allowed for shared functionality of application modules regardless of their technical differences. For enterprises to exploit these applications, however, it is necessary to implement a language framework that enables information such as when to send messages, when to wait for messages and when to compensate for failed transactions. [2] Web service interactions can be described in two ways: executable and abstract business processes and BPEL is used to model the behavior of both. Executable business processes model actual behavior of a participant in a business interaction while abstract business processes are partially specified processes not intended to be executed. BPEL refers to programming in the large as an abstract process. Programming in the small, in contrast, deals with short-lived programmatic behavior, often executed as a single transaction and involving access to local logic and resources such as files, databases, etc. BPEL’s development came out of the notion that programming in the large and programming in the small required different types of languages. [1]


The scope of what BPEL includes is:

· The sequencing of process activities, especially Web service interactions.

· Correlation of messages and process instances.

· Recovery behavior in case of failures and exceptional conditions.

· Bilateral Web service-based relationships between process roles.[4]

Design Goals

There were ten original design goals associated with BPEL:

1. Define business processes that interact with external entities through web service operations defined using WSDL 1.1 and that manifest themselves as Web services defined using WSDL 1.1.

2. Define business processes using an XML-based language. Do not define a graphical representation of processes or provide any particular design methodology for processes.

3. Define a set of Web service orchestration concepts that are meant to be used by both the external (abstract) and internal (executable) views of a business process.

4. Provide both hierarchical and graph-like control regimes, and allow their use to be blended as seamlessly as possible. This should reduce the fragmentation of the process modeling space.

5. Provide data manipulation functions for the simple manipulation of data needed to define process data and control flow.

6. Support an identification mechanism for process instances that allows the definition of instance identifiers at the application message level.

7. Support the implicit creation and termination of process instances as the basic lifecycle mechanism. Advanced lifecycle operations such as “suspend” and “resume” may be added in future releases for enhanced lifecycle management.

8. Define a long-running transaction model that is based on proven techniques like compensation actions and scoping to support failure recovery for parts of long-running business processes.

9. Use Web Services as the model for process decomposition and assembly.

10. Build on Web services standards (approved and proposed) as much as possible in a composable and modular manner. [1]

The BPEL Language

BPEL is an orchestration language, not a choreography language. The primary difference is executability and control. An orchestration specifies an executable process that involves message exchanges with other systems, such that the message exchange sequences are controlled by the orchestration designer. A choreography language specifies a protocol for peer-to-peer interactions, defining, for example, the legal sequences of messages exchanged with the purpose of guaranteeing interoperability. Such a protocol is not directly executable, as it allows many different realizations. A choreography can be realized by writing an orchestration for each peer involved in it. The orchestration and the choreography distinctions are based on analogies; orchestration refers to the central control of the behavior of a distributed system, while choreography refers to a distributed system which operates according to rules but without centralized control. [1]


The use of BPEL tools to access the functionality of web services offers a wide range of benefits, including:

· Improved access to data and services.

· Increased business agility.

· Reduced integration expense. [2]


In situations where private implementation aspects use platform-dependent functionality, the continuity of the basic conceptual model between abstract and executable processes in BPEL makes it possible to export and import processes or role templates while maintaining the intent and structure of the protocols. This is the most important prospect for the use of BPEL4WS for unlocking the potential of Web Services because it allows the development of tools and other technologies that greatly increase the level of automation and lower the cost in establishing cross-enterprise automated business processes. [3]

Works Cited





Rhonda R. Noland


One Response to “Business Process Execution Language (BPEL)”

  1. Thanks for your research on this topic. I will be looking into BPEL further to see if in can incorporate this into an outsourcing project that I’m working on.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: