Last month, I introduced service-oriented architecture (SOA) and business process management. This month, I will discuss the first of several business process management languages: business process execution language for Web services. In the following months, I will address business process modeling language (BPML) and business process specification schema (BPSS) for ebXML.
Business Process Execution Language
Recognizing the complexity of accessing Web services in synchronous and asynchronous environments, in August 2002, IBM, Microsoft and BEA introduced their jointly defined Business Process Execution Language for Web Services (BPEL4WS, or just BPEL). Its specification is now being managed by OASIS.1
BPEL combines capabilities of IBM's Web services flow language (WSFL) from IBM WebSphere Business Integrator and those of Microsoft's XLANG as used by Microsoft BizTalk Server 2002. BPEL includes WSFL support for graph-oriented processes, with XLANG support of structural constructs for processes. BPEL is designed to support implementation of any complex business process, as well as to describe interfaces of business processes.
WS-Coordination and WS-Transaction specifications have also been defined for use with BPEL. These offer transaction and process coordination and recovery to address typical error conditions.
BPEL is a comprehensive workflow definition execution language specified in XML. It can be defined as a programming language and executed directly, but is more likely to be automatically generated from Workflow Diagrams. The BPEL language commands are called activities. Some activity constructs include:
- Invoke an operation on a Web service (
- Wait for an external message (
- Generate a response for input/output (
- Wait for some time (
- Copy data between locations (
- Indicate that an error occurred or something went wrong (
- Terminate the entire service instance (
- Do nothing (
- Define a sequence of steps to be executed in a specific order (
- Branch using a "case-statement" (
- Define a loop (
- Execute one of several alternative paths (
- Indicate that steps should be executed in parallel (
- Indicate fault logic processing via
- Define compensation for error recovery - implement compensating actions for any irreversible actions in error
- Fault handling and compensation can be supported recursively by specifying the relevant scope of execution.
Many white papers on BPEL2 are available from IBM, Microsoft and OASIS. The IBM DeveloperWorks Web site has a white paper that describes two examples: loan processing and a travel itinerary example as shown in Figure 1.3
Figure 1 shows the integration of reservation Web services from airline, hotel and car rental partners in a travel itinerary business process. The white paper details how the activities of a business process are externalized as Web services, such as the initial wait for receipt of a customer itinerary request, for example. The coordination activities for multiple Web services within a business transaction are described, together with the dynamic linking to services from multiple providers at runtime. This is based on data that is derived from the process flow itself: for example, which airline the customer wishes to use, the preferred car rental company and a requested hotel.
Figure 1: A Travel Example using BPEL
The BPEL, WS-Coordination and WS-Transaction Specifications describe how they are used together.4 WS-Coordination (WS-C) is an extensible framework for coordinating the actions of distributed applications operating in a heterogeneous environment. WS-C is used to create an environment to propagate an activity to other services and so coordinate their actions or to register for coordination protocols. It defines coordination types that specify a set of coordination behaviors.
WS-Transaction (WS-T) specifies two coordination types used in conjunction with WS-Coordination: atomic transaction (AT) and business activity (BA). The AT behavior is used to coordinate activities that have a short duration, while BA behavior coordinates activities that are long in duration and, therefore, need to apply business logic to handle business exceptions.
The development of BPEL, WS-C and WS-T are now managed by the OASIS WSBPEL Technical Committee. Its members include Booz Allen Hamilton, BEA, CommerceOne, E2open, EDS, IBM, Microsoft, NEC, Novell, Oracle, SAP, SeeBeyond, Siebel, Sun, Sybase, TIBCO, Vignette, Waveset and others. With the strength of these organizations behind its adoption, BPEL is expected to become a major force in XML-based languages for business process management.
Next month we will discuss another business process management language: business process modeling language (BPML) from the Business Process Management Institute (BPMI).
- The BPEL Specifications are at: http://www-106.ibm.com/developerworks/library/ws-bpel/ and also on OASIS at http://www.xml.org/.
- White papers on BPEL are available from IBM at http://www.ibm.com/, from Microsoft at http://www.microsoft.com/ and from OASIS at http://www.xml.org. The examples in this column have been drawn from the IBM DeveloperWorks site at http://www-106.ibm.com/developerworks/library/ws-bpelwp/ and at http://www-106.ibm.com/developerworks/library/ws-bpelcol1/?n-ws-8292.
- The white paper for the loan processing example is available at http://www-106.ibm.com/developerworks/webservices/library/ws-bpelcol2/.
- The BPEL4WS, WS-Coordination and WS-Transaction Specifications are all available from the OASIS Web site at http://www.xml.org/.
Register or login for access to this item and much more
All Information Management content is archived after seven days.
Community members receive:
- All recent and archived articles
- Conference offers and updates
- A full menu of enewsletter options
- Web seminars, white papers, ebooks
Already have an account? Log In
Don't have an account? Register for Free Unlimited Access