News

BEA, IBM offer business process add-on for Java

They compete heatedly in app servers, but BEA Systems and IBM Corp. agree on at least one thing. They want to link Java with the Business Process Execution Language (BPEPL) for Web Services. The resulting combination, which they call BPELJ, would enable the two programming languages to work together.

BPEL was originally authored by BEA, IBM and Microsoft as a mechanism for orchestrating business processes in Web services environments. The three companies submitted BPEL to the OASIS standards organization, which currently has it under review.

In a jointly authored white paper published last month, BEA and IBM laid out their argument for combining BPEL and Java. BPELJ "makes use of BPEL's extensibility mechanism in order to allow developers to create business processes that use a mix of Web services and Java resources," they wrote. BPELJ would also make it possible "to use Java as a language for calculations and data manipulation, so that a single file can contain a complete and cohesive description of an entire business process."

The two rivals came together on the BPELJ proposal to advance their mutual interest in establishing business process standards. "What it comes down to is what's best for our customers," said Stephen Hood, product manager for WebLogic integration at BEA. "The thing that's best for them in the long run is that, on the Java platform, we focus on growing the pie rather than fighting for pieces of it. Everybody wins if we can agree on how to solve the tough problems in a similar manner."

BPEL was designed to deal with course-grained business logic -- what BEA and IBM call "programming in the large." Consequently, processes written in BPEL can be executed on any platform or product that complies with the BPEL specification.

"By design, BPEL doesn't try to solve very fine-grained, platform-specific problems," Hood told Programmers Report. "It's about orchestrating Web services."

BPELJ introduces a few minor changes to BPEL, as well as several extensions to fit BPEL and Java conveniently together. Basically, BPELJ would enable the two languages to cooperate by allowing "snippets" of Java code to be included in BPEL process definitions. Snippets are expressions or small blocks of Java code that can be used for things such as loop conditions, branching conditions, variable initialization, Web services message preparation and logic of business functions, Hood explained.

Although Microsoft was one of the original authors of BPEL, it is still an outsider in the Java world. For this obvious reason, the Redmond, Wash.-based software maker is not part of the BPELJ proposal. However, Hood expects Microsoft to offer its own variations. "We anticipate that Microsoft will do something similar for .NET and C#," he said. "They have to. Most people on the BPEL committee have always believed that we would extend BPEL to other languages. It's a natural thing that we expect will happen. The key will be to do it in a way that doesn't break the promise of BPEL, which is the portability of your process logic."

BEA and IBM have submitted the BPELJ proposal to the Java Community Process under JSR 207: Process Definitions for Java. The mission of JSR 207 is to define "an annotated Java syntax and APIs for programming business processes" -- in other words, to standardize the relationship of various existing processing languages, such as BPEL, to Java.

The BEA-IBM authored BEPLJ white paper is viewable on the BEA Web site at http://ftpna2.bea.com/pub/downloads/ws-bpelj.pdf. BEA has also published a BPEL and BPELJ FAQ page on its Dev2Dev site at http://dev2dev.bea.com/technologies/bpel/bpel_faq.jsp.

About the Author

John K. Waters is a freelance writer based in Silicon Valley. He can be reached at [email protected].