ActiveBPEL 2.0 Enhances Integration Tooling

An upgraded ActiveBPEL Open Source Business Process Execution Language engine is now making it easier for a variety of enterprise Java and .NET devs to work with business-focused web services projects. IDN looks at the upgraded features and provides a link for downloading.

Tags: ActiveBPEL, BPEL Process, Java, ActiveBPEL Engine, Open Source, Support, Web Services,

An upgraded >ActiveBPEL Open Source Business Process Execution Language engine is now making it easier for a variety of enterprise Java and .NET devs to work with business-focused web services projects.

ActiveBPEL 2.0, now available for free download. The ActiveBPEL download is available here from Freshmeat. ActiveBPEL 2.0 new features include support for XQuery, JavaScript and support for direct invocation of another BPEL process. ActiveBPEL 2.0 also supports Tomcat 5.5 and Java 1.5, as well as adds support for web services standards WS-Addressing and WS-Policy, with support for WS-Security and WS-ReliableMessaging, due for a later release.

The ActiveBPEL engine is an Open Source implementation of a BPEL engine. Written in Java, ActiveBPEL engine runs in any standard Java servlet container such as Tomcat. It reads BPEL process definitions (and other inputs such as WSDL files) and creates representations of BPEL processes. When an incoming message triggers a start activity, the engine creates a new process instance and starts it running. The engine takes care of persistence, queues, alarms, and many other execution details.

The ActiveBPEL engine comes from the Open Source ActiveBPEL project, an organization created by Active Endpoints. ActiveBPEL is licensed under the GNU General Public License (GPL). ActiveBPEL was originally released into open source in July 2004 by Active Endpoints, Inc. Click here to learn more about the ActiveBPEL project and its architecture.

Key ActiveBPEL 2.0 enhancements include:

  • WSBPEL 2.0 Constructs. - Adds 'For Each' and 'Message Exchange,' two constructs defined in the forthcoming WSBPEL 2.0 standard.
  • Additional Orchestration Features -- Extends orchestration constructs to Break, Continue and Suspend processing execution.
  • Pluggable Expression Language Support Adds supports XPath, XQuery and JavaScript for advanced data manipulation, mapping and transformation.
  • Advanced Process Exception Management - Noting that BPEL's fault handling conventions can sometimes raise unintended process terminations, now allows uncaught faults to be trapped and handled declaratively, covering a much broader range of exception handling than previously available.
  • Expanded Endpoint Location Services -- Adds support for a variety of techniques for locating Partner Link endpoints. In addition to WSDL Service addresses, new locator services are available based on WS-Addressing conventions and URN mapping techniques.
  • WS-Policy Support -- Adds support for key WS-Policy assertions, including Endpoint Retry, WS-Security and MyRole SOAP header mapping; and
  • Extensive Console Upgrades. The ActiveBPEL management consoles now support advanced querying and filtering of process data, diagrammatic views of process states and advanced console navigation.

    More than Just Raw Code - The ActiveBPEL Samples

    ActiveBPEL comes with more than just code. There is also a full suite of samples and templates to speed design and deployment. Among them:

  • Communicating with the ActiveBPEL Engine Administration Interface via Web Services -- This sample provides examples of communicating with the ActiveBPEL Administration Interface via published Web Services API.

  • Exchanging Messages Containing Complex Data Types -- This sample describes the use of RPC style WSDL messages within a BPEL process and includes an example of a Java client that uses an RPC message to invoke the process via Web Service.

  • Creating and Using Custom XPath Functions -- This sample shows how to create, install and register custom functions that can be used to facilitate common tasks with a BPEL process (e.g., XML to string) using the ActiveBPEL custom function framework.

  • Custom Invoke Handlers in ActiveBPEL and ActiveWebflow -- This sample shows how to specify during deployment that a service should be invoked directly rather than using the default SOAP over HTTP protocol. The sample provides examples of the Java services, deployment descriptor modifications and sample data to test the deployed process and services. Using this method any protocol (e.g., JMS or SMTP) can be used to interact with a process directly.

  • Deploying a BPEL Process -- This sample provides information on manually constructing the artifacts required to deploy a BPEL process to ActiveBPEL.

  • Common Sample Project Libraries and Deployment -- This archive contains common utility jars that may be needed by some of the samples. Note: the samples are always built using Ant scripts and important information regarding the directory paths and environment variables can be found in the documentation provided. Click on the "lib" link for more information before downloading.

  • SOAP Client Codeset -- This is the source code for the simple SOAP Client that is bundled with the BPEL Samples download. It includes the client JSP page, Java class that it uses, and an Ant script that will build and deploy the WAR file.

  • Testing BPEL Processes with WSUnit and the ActiveBPEL Engine --
    WSUnit is a relatively simple open source project that allows users to indirect their Web Services to a server that returns messages based on the content of the request. We have found that this can be a valuable tool in a situation where access to test implementations of services may not be available. This sample demonstrates the use of WsUnit to help in the testing of deployed BPEL processes.