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.
|
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 |
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.
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
What's new? |
Let us see what's new
|
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.
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