Advertisment

Interoperable Biz Processes with BPEL

author-image
PCQ Bureau
New Update

What do you think is the one common thing between Web

Services, SOA (Service Oriented Architecture), Grid Computing, and the infamous

'Interoperability'? No, it's not XML we are talking about. In the recent

past, more stress has been laid on universal standards and repositories to

enable an improved level of interaction between business applications on the

Web. This article looks into one such standard-BPEL (Business Process

Execution Language); its core concepts and implications on the way the

application would communicate and how it can help raise the bar for a more

'communicable' world for business applications.

Advertisment
Direct

Hit!
Applies to: Developers
USP:

Enables more efficient cross-application communication 
Links:

www.oasis-open.org/committees/tc_home.

php?wg_abbrev=wsbpel 
 
Google keywords:

business process integration + web services

XML all the way



Interoperability has been one of the major issues in the Web-programming

world. And different technologies and specifications have been rolled out from

time to time to address this issue, including some XML-based standards like WSDL,

SOAP, XML Schema, XPath to name a few. These standards effectively strengthened

the concept of 'Grid Computing' and made way for data repositories on the

web, which would be read by different applications and let businesses interact

with each other. Throughout these phases, stress has always been laid to define

a universal format that would be understandable across applications making it

easier for them to talk. Application development has seen a lot of changes from

adopting the defined standards to the birth of technology like SOA (Service

Oriented Architecture) that has enabled specifying business processes on the

basis of Web services. However, the development process has grown to become more

and more complex, thus, making Web applications nothing but a sea of files and

syntax. And more often than not, this deviates the focus of the developers from

the main issue. So in spite of having a concrete underlying basis, developers

have been working with utilization of a highly dynamic resource. This has led to

the quest for finding a suitable answer to the growing complexity, and fast

emerging technological changes. A common standard that would incorporate these

different standards will of course be great help to overcome the issues

aforesaid.

BPEL components form the tier that inter-connect enterprise applications and also include external XML-based repositories by abstracting their constructs
Advertisment

BPEL



BPEL is an XML-based notation for specifying interactions between Web services
based business processes across a



distributed environment. The language combines two different specifications viz

WSFL (Web Services Flow Language) by IBM and XLANG-an XML-based extension of

WSDL by Microsoft. Its inception relates to the fact that various XML

specifications being used-primarily WSDL for describing the services, UDDI

(Universal Description, Discovery and Integration) for providing an

infrastructure to publish



the services, and SOAP to describe a simple XML messaging protocol between

services-suffice only simple interactions, seriously limiting the

interoperability between complex business processes.


Integrating services



For a more interactive world where services could cater a broader spectrum

of scenarios comprehensive and standard process integration is required which

would enable them to carry out complex interactions that are typically required

when two or more business processes communicate. Interactions between such

business processes can acquire various patterns ie rather than being stateless

and asynchronous as is the case with WSDL, these interactions may even require

sequences of stateful interaction, which could be both asynchronous and

synchronous. These processes may contain nested units of sub-processes requiring

their own set of data. Thus, in a way it is required that processes can

seamlessly access grids of data and services for completion.

BPEL suffices these needs by defining 'Abstract

Processes' that describe the message exchange behavior between processes. It

does so in a platform independent manner-a significantly important requirement

in the integration of enterprise business applications. The 'Abstract

Processes' describe the message exchange and don't reveal the internal

behavior of participating applications. This, in effect, strengthens the

transparent working



between such processes as all a communicating side would know is what a process

does-moving us closer to a loosely coupled architecture. Such a feature makes

BPEL an important participant in SOA. It is also possible to define

'Executable Processes' in BPEL. Such processes have a complete definition

rather than a public



behavioral description and can, thus, be



executed.

Advertisment

Overall in BPEL the implementation details can be omitted

and the languages primarily focus on defining a portable execution format that

depends extensively on Web services and XML data. The processes hence defined,

interact with each other in a consistent manner irrespective of the programming

model and execution environment. However, for any process defined, be it

abstract or executable, BPEL has kept a common core and has added extensions

that are required for a particular usage. Apart from this extensive message

definition, BPEL also supports WSDL variable types, expression writing,

conditional constructs such as if-then-else and if-then-else if-else, and a set

of exception or fault handlers. BPEL specification depends on WSDL, XML Schema

and XPath for defining core and usage patterns. This enables using variables and

writing expressions based on these specifications in a BPEL document.

BPEL is based on certain design goals that include:

  • Defining business processes that interact with external

    entities through Web service operations

  • Defining business processes independent of any design

    methodology definition

  • Manipulating the data using data manipulation functions

    needed to define process data and control flow

  • Keeping Web services as a common model for process

    assembly

  • Defining long running processes that map interactions

    between business



    applications across enterprises incorporating features such as scoping and

    failure recovery

  • Providing a common platform that would be applicable

    across applications built on different programming models and hosting

    environments

Advertisment
What's

new?

Let us see what's new

in BPEL 2.0.



  • Activity types

    if-then-else, repeatUntil, validate, forEach, extensionActivity.



  • Completion

    condition in for-Each activity



  • Initialization of

    variables



  • New XPath extension

    function bpws:doXslTransform



  • XSLT for variable

    transformations



  • XPath access to

    variable data



  • XML schema

    variables in Web service activities



  • Locally declared

    messageExchange for internal correlation of receive and reply

    activities


Extending BPEL



BPEL defines a core, extensions and concepts that are sufficient for expressing
most of the abstract and executable business processes. However, when we talk of

enterprise applications there can be a lot of complexity involved in such

scenarios where applications arte facilitating business to business

interactions. This means that extending BPEL with other XML based constructs or

namespaces might be required.


For this reason extending BPEL with external XML based

specifications



is also allowed. BPEL has included 'ignore semantics' which allows treating

non-BPEL namespaces to be absent in the process definition.

Advertisment

Adding optional attributes and elements to a process does

this and they can be safely ignored if not recognized. However, BPEL advocates

that such extensions must not in any case contradict with the elements or

attributes defined in the BPEL specification. WSDL-based constructs of the

language can also define such extensions.

BPEL-what's available?



Since its inception-a joint effort by IBM, Microsoft, Seibel Systems, BEA

Systems and SAP-quite a few products, both commercial and Open Source, have

been rolled out. The commercial products include Oracle BPEL Engine by Oracle

Corporation and BizTalk server since 2004 edition in which Microsoft has

integrated full BPEL support. Active Endpoints has also released a comprehensive

set of products including ActiveBPEL Enterprise-a BPEL engine which runs on

top of Java Application Server, ActiveBPEL Engine which is distributed as an

open-source product and is written in Java and the ActiveBPEL designer which is

an Eclipse-based BPEL designer. SAP has included a BPEL engine and graphical

designer with the SAP NetWeaver Exchange Infrastructure -SAPs process

integration platform. IBM has released the WebSphere Process Server version 6,

which runs on the WebSphere  Application Server.  So take the lead and

the BPEL standard to communicate better within your business applications.

Anadi Misra



Advertisment