Before we jump right into a discussion on Business Process Execution Language (BPEL) we need to set a framework for its use. It is important for managers, developers and DBAs to have an understanding of how BPEL can benefit them. This article will give you an introduction to BPEL including an introduction to Oracle's BPEL Process Manager.
Business process management
Business process management (BPM) technology is a framework for applications that can effectively track and orchestrate business processes. BPM solutions will automatically manage processes and process flow, but allow for manual intervention when necessary.
BPM might coordinate the extraction of customer information from a database or manage a new customer information transaction. BPM could generate transactions in multiple related systems or support straight-though processing without human intervention. BPM allows you to automate tasks involving information from multiple systems with rules to define the sequence in which the tasks are performed as well as responsibilities, conditions and other aspects of the process. BPM not only allows a business process to be executed more efficiently, it also provides the tools to allow you to measure performance and identify opportunities for improvement. A benefit of BPM is that changes can be easily made in processes or flow by adding, removing or updating a process.
To truly take advantage of BPM, the software application components of a process should follow a service-oriented architecture (SOA). These components should be published as Web services for reuse and ease of integration.
Service-oriented architecture (SOA) is "a standards-based implementation style whose goal is to achieve secure, reliable and interoperable loosely coupled interacting services" (adapted from He, Hao. "What is Service-Oriented Architecture?" O'Reilly. September 30, 2003). An SOA component may be exposed as a Web service. The standard way to describe a Web service is via Web Services Description Language (WSDL). The Web services are a set of endpoints that operate on messages containing either document-oriented or procedure-oriented information. WSDL can be extended to allow description of endpoints and messages regardless of what message formats or network protocols are used. The way a Web service is discovered is via the Universal Description, Discovery and Integration (UDDI) protocol. UDDI is a key part of the interrelated standards that comprise the Web services stack. The UDDI standard describes the method for publishing and discovering the network-based software components of an SOA. UDDI is like a "Yellow Book" for Web services.
There are a few more standards that we need to discuss to insure that these Web services work together, the WS-* standards. There are many, hence the star. Two that come to mind are WS-Coordination and WS-Transaction.
WS-Coordination (Web Services Coordination) is a proposed IT industry standard for how individual Web services should interact in order to accomplish an application task. The WS-Coordination interface defines a context within which coordination is to take place and the specific items of data that are to be exchanged in order for transactions to complete successfully as part of an overall business process defined in a Business Process Execution Language (BPEL) program.
WS-Transation is a companion specification for what will constitute the completion of a transaction.
The WS-Coordination specification is an activity of the Web Service Interoperability Organization (WS-I Organization), which is an industry-wide effort at standardizing how Web services are requested and delivered.
Business Process Execution Language
Business Process Execution Language (BPEL) defines a notation for specifying business process behavior based on Web services. BPEL is used to model the behavior of both executable and abstract processes. (Executable processes model actual behavior in business transactions. Abstract processes interact without revealing their internal behavior.)
The scope of what BPEL includes is:
- The sequencing of process activities, especially Web service interactions.
- Correlation of messages and process instances.
- Recovery behavior in case of failures and exceptional conditions.
- Bilateral Web service-based relationships between process roles.
BPEL for Web services is an XML-based language (BPEL4WS, usually shortened to BPEL, which rhymes with "people") designed to enable task-sharing for a distributed computing or grid computing environment across multiple organizations using a combination of Web services. BPEL was written by developers from BEA Systems, IBM and Microsoft. BPEL combines and replaces IBM's WebServices Flow Language (WSFL) and Microsoft's XLANG specification. Using BPEL, a programmer formally describes a business process that will take place across the Web in such a way that any cooperating entity can perform one or more steps in the process the same way. In a supply chain process, for example, a BPEL program might describe a business protocol that formalizes what pieces of information a product order consists of, and what exceptions may have to be handled. The BPEL program would not, however, specify how a given Web service should process a given order internally.
There are several BPEL servers available. Oracle's BPEL Process Manager is one of the top servers available.
- ActiveBPEL Engine
- IBM BPEL4WS Editor and Java Run-Time
- Oracle BPEL Process Manager
- Microsoft BizTalk Server 2004
- Other BPEL Servers
Oracle BPEL Process Manager
Oracle's BPEL Process Manager is a very comprehensive and easy-to-use set of components that can be used for creating, deploying and managing BPEL business processes. Oracle's BPEL Process Manager is a GUI developer tool integrated into JDeveloper.
Oracle BPEL Process Manager architecture
Oracle BPEL Process Manager Architecture contains a designer, process manager and console. The Oracle BPEL Process Designer allows you to model, edit and design processes. The integration services allow you to do transformations. It includes many adapters to various sources. The core BPEL engine supports the BPEL standard and runs on various application servers.
Oracle BPEL Process Manager allows you to connect to data sources via its adaptors. Here's a list of just a few of those adaptors:
- File Adapters
- FTP Adapters
- Oracle Advanced Queuing
- Database Adapter
- JMS Adapter
- Oracle Applications Adapter
Data transformation services
Oracle BPEL Process Manager has a built-in transformer component. It uses the following standards in its transformations:
- XSLT Mapper
The transformation service has an integrated test tool which can generate test data to ensure your mappings are correct.
When starting a BPEL project I would suggest looking at the following:
- Review Web services architecture usage scenarios.
- A couple of scenario types that you might use are:
- Request/Response (Callback)
- Code -- First if you have existing applications that you want to expose as Web services.
- WSDL -- First if you don't have existing code or you want to start by laying out the services that you need.
If you plan on implementing BPEL you will need exposed services. Web services are key components in BPEL. The services need to be exposed by registering them via UDDI and describing them via WSDL. Once the services are exposed you can include them in your business process flow. The Web services can be invoked (a request made to the Web service). The Web service will respond to your request. Most likely you will need to plan for some type of data transformation. You will need to plan on handling exceptions. The process may not be completely automated, so you may need to incorporate some user tasks. To monitor the process you can include sensors. The sensors can send out status messages which can be reported on via a Business Activity Monitor (BAM). Oracle BPEL Process Manager can aid you in all of these steps. The GUI design tool uses simple drag and drop to define the process flow. To summarize the steps you will:
- Expose the service(s) (by registering)
- Invoke a process flow
- Perform data transformation
- Manage exception processing
- Include user tasks
- Place sensors throughout the process flow
- Monitor the process
Steve Brown, CTO of Metastorm: "Say you're building an application, but some of the applications it will use are themselves Web services. You'll absolutely need to have a flexible way of orchestrating all of those Web services, making sure they happen in the right order and making sure the checks and balances are performed. That's the area that BPEL4WS is targeted at."
Tom Siebel, chairman and CEO of Siebel Systems Inc.: "The emergence of business-process computing means that the days of closed, monolithic application suites and proprietary integration solutions are over. Business-process computing, based on open standards, will free companies from being locked into one vendor's proprietary architecture. With Web services, application functionality becomes disaggregated, with each function available as a service that can be accessed (or consumed) on demand by any other application or service on the network, anytime, anyplace."
Adam Bosworth, VP Engineering of BEA: "Alan Kay is supposed to have said that simple things should be simple and hard things should be possible. It has been my experience over 25 years of software development that for most software products, simple things should be declarative and/or visual and hard things should be procedural. Declarative languages have an unfortunate tendency to metastasize because people need to do things that are hard. When they grow in this way, not only can most people not use these new features, they find the entire language more daunting."
What is BPEL?
BPEL is a notation for specifying business process behavior based on Web services. It orchestrates business processes.
About the author
Nicholas J. Donatone is Vice President of Database Services for MFG Systems Corporation. MFG Systems is a consulting firm that specializes in Oracle, located in Somerset, New Jersey. Nicholas is one of the founders of the New Jersey Oracle User Group and has been President/Co-President of NJOUG for over 16 years. He has made presentations at NJOUG, VOUG, NYOUG, ODTUG, IOUG and Oracle OpenWorld.