.NET Product Review: Active Endpoints' ActiveBPEL
Using and integrating different platforms
Aug. 4, 2007 01:15 PM
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 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.
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.
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.