Web Services
BPEL & BPELJ
Frequently Asked Questions
Q: What is BPEL?
A: BPEL is a language for the formal specification of automated business processes. Processes written in BPEL can orchestrate in a standardized manner interactions between Web services using XML documents. These processes can be executed on any platform or product that complies with the BPEL specification. BPEL therefore enables customers to protect their investment in process automation by allowing them to move these process definitions between a wide variety of authoring tools and execution platforms. While there have been previous attempts to standardize business process definitions, BPEL has attracted an unprecedented level of interest and is the first to gain critical mass among software vendors.
Q: What is the difference between BPEL, WSBPEL, and BPEL4WS?
A: None, other than historical reference. These names all refer to the same pending standard. "BPEL4WS" was the name of the original specification written and published by BEA, IBM, and Microsoft. "WSBPEL" is current the name of the specification and the pending standard. When the specification was submitted to OASIS, this name change was made to align with the OASIS naming scheme for Web service-related standards efforts. Regardless, most parties today refer to this standard simply as "BPEL".
Q: What is BPELJ?
A: BPELJ is combination of BPEL with the Java language that allows these two programming languages to be used together to build complete business process applications. By enabling BPEL and Java to work together, BPELJ allows each language to do what it does best. BPELJ is complimentary to BPEL, not competitive.
Q: How is BPELJ related to BPEL, and what are the differences between them?
A: BPEL is geared towards programming in the large, which supports the logic of business processes. These business processes are self-contained applications that use Web services as activities that implement business functions. BPEL does not try to be a general-purpose programming language. Instead, it is assumed that BPEL will be combined with other languages which are used to implement business functions (programming in the small). BPELJ introduces a few minor changes to BPEL as well as several extensions in order to fit BPEL and Java language conveniently together.
Q: Isn't BPEL intended for business analysts? If so, why add Java to it?
A: It is a common misconception that BPEL is intended for use by non-programmers or so-called "business analysts". This misconception stems in part from the fact that many business process management tools on the market today are targeted at this group of users. While tool vendors will undoubtedly provide a wide range of visual interfaces for building BPEL and BPELJ processes, the language itself is intended for developers.
Q: How does BPELJ work?
A: BPELJ enables Java and BPEL to cooperate by allowing sections of Java code, called Java snippets, to be included in BPEL process definitions.
Q: Shouldn't snippets be designed to allow any language to be used (C#, JavaScript, Java, etc)?
A: The idea behind snippets is generic and we expect to see it used with many different languages. However integrating BPEL and a particular language involves much more than just wrapping the targeted language in XML. Issues of integrating variable bindings, transaction management, call paths, etc. have to be robustly defined and since each language addresses these issues in different ways a universal binding to all languages is impractical. Therefore BPELJ focuses on solving these integration problems for BPEL and Java. We expect other efforts will do the same for other languages.
Q: Doesn't BPELJ violate BPEL's philosophy that activities are Web services, data is XML, and XML Schema is used to describe the structure of that data?
A: Not all services in the world are Web services, nor should they be. It is appropriate to use J2EE for more tightly coupled systems, where the advantages of container-provided functionality such as security and transactions are especially valuable. People who have business logic deployed as J2EE components should be able to make use of those components from within a business process, and BPEL is a great language for describing those processes.
Some have argued that it is appropriate to use Java in snippets for small computations and data manipulation, but that all service invocations should be forced through the XML/Web service view of the world. This is an especially untenable position. If you have a process that is being written with snippets in Java, then clearly there is a Java developer involved in creating the process.
This means that you will likely have the following scenario: there is a developer that is familiar with Java calling a component that they know to be Java, wanting to manipulate the component's inputs and outputs with Java. Forcing such a person to treat all of their calls as if they were Web service calls would create a layer of obfuscation that would get in the way of thinking about the business logic.
Q: Does this mean that the process definition currently used in WebLogic Integration 8.1 is defunct?
A: Not at all. BEA authored and sponsored JSR 207 in 2003 and submitted the WebLogic Integration 8.1 process definition (known as "JPD") as a starting basis for that group's work. BEA and IBM have now submitted BPELJ to the JSR 207 working group for consideration. BPELJ has much in common with JPD and has in fact been designed specifically to enable a smooth migration from JPD to BPELJ in the future.
Q: How does BPELJ relate to JSR 207?
A: BPELJ has been submitted to JSR 207 with the recommendation that it be considered as a basis for the work of that JSR.
Q: What does this mean for BPEL? Is it going to be splintered as a standard? Are IBM and BEA abandoning BPEL?
A: Not at all. BPELJ is an extension that is completely within the spirit and intent of the BPEL standard. It has always been expected that BPEL would be combined with other languages in order to provide a complete process design environment. IBM and BEA are both very committed to BPEL and are continuing to work as key contributors to the OASIS effort that is standardizing the language.
Q: What are BEA's product plans for BPEL and BPELJ?
A: BEA will provide a BPEL export facility for WebLogic Integration 8.1 in the Spring 2004 timeframe, with full support for the final BPEL standard to follow in the next major release of WebLogic Integration. BEA will also provide full support for BPELJ in the next major release of WebLogic Integration.
Q: What if I'm using WebLogic Integration 8.1 today? Will I be able to migrate to BPELJ?
A: Yes. In the next major release of WebLogic Integration and BEA will provide a facility for automatic migration from JPD to BPEL/BPELJ.