In computer science, the Business Process Execution Language (BPEL) is an XML language to describe business processes. A BPEL program is invoked as a Web service, and it can interact with the external world only by calling Web services. The standard that defines how BPEL is used in Web service transactions is BPEL4WS also known as WS-BPEL. BPEL is designed by IBM and Microsoft, based on their respective work on WSFL and XLANG, which are both superseded by BPEL. In April 2003, BPEL was submitted to OASIS and is now being standardized in the Web Services BPEL Technical Committee (http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel).
The BPEL language provides constructs for sequences, loops, conditionals, fault handling and concurrent execution of operations, just like many programming languages.
BPEL Engines
Several BPEL engines have been developed, including:
IBM BPWS4J is downloadable from the IBM alphaWorks Web site (http://www.alphaworks.ibm.com). Just like other alphaWorks software, BPWS4J has the status of emerging technology.
IBM WebSphere Business Integration Server Foundation (Version 5.1 as of 2004) is a complete BPEL engine running on top of the WebSphere Application Server platform. It includes extensions like support for human interaction and runs on a variety of server platforms, such as Linux and z/OS. IBM has corresponding Eclipse (http://www.eclipse.org)-based development tools for BPEL, such as the WBI Modeler and WebSphere Studio Application Developer Integration Edition (to be part of the Rational Application Developer family starting in 2005).
Collaxa BPEL Orchestration Server is a complete BPEL engine running on top of a J2EE application server. The upcoming Version 2 will include a visual BPEL designer, based on Eclipse. (This product was recently acquired by Oracle Corporation.) This version is now released, and has a GUI Designer for BPEL in both Eclipse as well as Oracle's JDeveloper IDE.
Oracle BPEL Process Manager is a BPEL engine running on top of the Oracle Application Server.
OpenStorm ChoreoServer is a BPEL engine running on top of the Microsoft Windows .NET platform.
FiveSight PXE is a modular BPEL engine with a focus on reliability and flexibility.
Active Endpoints ActiveWebflow Server is a complete BPEL engine running on top of a J2EE application server or standalone with a Web Servlet container (e.g. Tomcat (http://jakarta.apache.org/tomcat/)). ActiveWebflow Designer is an Eclipse_based visual BPEL designer.
ActiveBPEL Engine is a comprehensive BPEL runtime environment. Written in Java, ActiveBPEL Engine is available as an open source technology released under the GPL.
bexee BPEL Execution Engine is an open source, J2EE-based BPEL engine and an environment for further development and experiments in the area of Business Process Modeling (BPM).
Twister is the first open source implementation of the WS-BPEL standard(LGPL). Twister supports the SOA pattern as well as direct human participants interaction (work list).
BPEL4WS combines the best of both WSFL (support for graph oriented processes) and XLANG (structural constructs for processes) into one cohesive package that supports the implementation of any kind of business process in a very natural manner.
BPEL4WS only uses and supports input-only and input-output (request-response) operations of WSDL; output-only (notification) and output-input (solicit-response) operations are not required nor supported.
BPEL4WS allows you to recursively combine the structured activities to express arbitrarily complex algorithms that represent the implementation of the service.
BPEL4WS defines an interoperable integration model that should facilitate the expansion of automated process integration in both the intra-corporate and the business-to-business spaces..." Note: This version of the BPEL4WS specification was made available by OASIS WSBPEL Technical committee co-chairs Diane Jordan and John Evdemon in a 2003-05-06 posting by Diane Jordan to the
BPEL4WS and WSDL may be used to describe service types, protocols that are supported and other deployment details.
BPEL4WS is intended to provide for more automated Web services, which is considered crucial to spread the use of Web services for back-end integration for applications such as e-commerce.