Welcome!

SOA & WOA Authors: Liz McMillan, Hari Gottipati, Ken Rutsky, Maureen O'Gara, Dana Gardner

Related Topics: .NET, XML, SOA & WOA

.NET: Article

.NET Product Review: Active Endpoints' ActiveBPEL

Using and integrating different platforms

What Is BPEL?
BPEL or Business Process Execution Language is an XML and Web standards-based SOA (service-oriented architecture) standard that allows business people to combine services into automated processes. As described in this review, Active Endpoints' ActiveBPEL product family includes a visual designer that works by allowing non-programmers to assemble Web services into processes by dragging and dropping graphical representations of components (Web services) and "wiring" them together in sequences and flowcharts (see Figure 1).

There are five parts of a BPEL application. The true BPEL part is an XML file that conforms to the BPEL standard (BPEL4WS 1.1 and WS-BPEL 2.0). This file contains the definition of the activities that make up the BPEL process. Another part are the services that get integrated by BPEL; these are defined by standard WSDL files. The other three parts are the proprietary BPEL engine that runs the processes, the proprietary graphic designer that functions as the IDE or the development environment that allows drag 'n' drop design of processes, and the final part is the administrative tools for deploying and monitoring the BPEL process.

BPEL is considered "programming in the large" because it deals with higher-level constructs such as flow control and looping, processes that are long running (for instance, a request for a loan approval might be routed to the accounting department and sit there for days before being approved or denied), fault tolerance (it can be set up to start an alarm process if accounting does not respond to the loan request within a week), and it uses compensation instead of transactions (a transaction can't be kept open for the length of time needed in a long-running process, so, if a stage of a process fails, it has to be "fixed," not just rolled back).

Active Endpoints and ActiveBPEL
Active Endpoints has three versions of their BPEL products: a standalone open source version, a standalone commercial version that can run under either .NET or Tomcat, and an integrated commercial version that can run under J2EE or .NET. Active Endpoints provides a complete set of administrative tools and a sophisticated development environment based on the Eclipse IDE (see Figure 2).

Active Endpoints created the open source ActiveBPEL Engine to generate interest in the BPEL standard and to help educate the community about BPEL.

The open source ActiveBPEL Engine is uses the same source code as used in the ActiveBPEL commercial products. The open source version is recommended for design and testing, but not for deployment because it lacks the system integration, clustering support, and security that are included in the commercial versions and typically needed in enterprise-level BPEL implementations. The open source version does contain everything needed to create and run BPEL applications without these enterprise-level features, including the designer and execution engine, management console, debugging, static BPEL analysis, multiple languages (XPath, XQuery, JavaScript, and custom languages), persistence, and all the documentation. The open source version is released under the GPL and is maintained by Active Endpoints. Active Endpoints also provides free forum-based support and premium support on a fee-based subscription basis.

The commercial standalone (paid license and support) version runs on Tomcat or .NET, and adds support for WS-Security, WS-Reliable Messaging, advance process filtering and alerts, suspend and retry via both the console and APIs, enhanced process deployment and invocation, and process versioning (currently running processes use the old version, new instances of a process use the new version, with the old version being retired after all running processes end).

It also includes APIs to access and control the inner workings of the BPEL engine.

The J2EE and .NET integrated versions add multi-level load balancing and server fault tolerance and deep integration into each of the supported servers: .NET, WebSphere, JBoss, and WebLogic.

In the .NET version, BPEL processes can be launched via either the IIS server API, or a native .NET API. Access security can be handled by either IIS or ASP.NET-based security, allowing access list to be stored in a database, Active Directory, or third-party security suites. Also, ActiveBPEL can be installed in an IIS Web farm where a wide range of load balancing strategies can be used.

The WebSphere version can run as a WS-I compliant framework, or inside WebSphere containers to take advantage of advanced WebSphere capabilities. Security can be handled by the Tivoli Access manager or by legacy or third-party security solutions. ActiveBPEL also supports all of the WebSphere clustering capabilities including automatic failover and content-based routing.

On JBoss, ActiveBPEL uses the Axis JAX-RPC for Web services invocations and message exchange, and also allows direct control by the JBoss WS4EE or EJB bindings. It also integrates with JBossSX security or LDAP servers. ActiveBPEL supports all of the JBoss clustering technology, including JGroups and the Tomcat HttpSession object to provide load balancing, failover, and single sign-on.

Truly the people at Active Endpoints understand how important it is to use and integrate with the different platforms they run on.

Future
The difference between BPEL and workflow is that BPEL focuses on automating Web services, where workflow focuses on connecting people-oriented processes. Active Endpoints has recently released ActiveBPEL for People, which extends BPEL to include people-oriented tasks, including roles and Web-based user interfaces.

More Information
For more information, checkout Active Endpoints' Web site at , there is a nice slide show at www.bptrends.com/publicationfiles/BPEL4ProgArchies.pdf, and Wikipedia has a page on BPEL at http://en.wikipedia.org/wiki/BPEL.

More Stories By Dennis Hayes

Dennis Hayes is a programmer at Georgia Tech in Atlanta Georgia where he writes software for the Adult Cognition Lab in the Psychology Department. He has been involved with the Mono project for over six years, and has been writing the Monkey Business column for over five years.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.