Home      iStore       Order Management       Service Contracts      About Us      SiteMap     

Monday, March 3, 2008

Introduction to Oracle BPEL (Business Process Execution Language)


Abstract

This article gives an overview to develop Service-Oriented Architecture (SOA) application using oracle BPEL.

Introduction

The World Wide Web Consortium (W3C) defines service-oriented architecture (SOA) as: “a set of components which can be invoked, and whose interface descriptions can be published and discovered.”

* An architectural style for loose coupling between interacting software agents or services using standard web service(SOAP) protocol.
* A set of component that can be invoked

SOA Components



Introduction to Web Services

Web services enable loosely coupled, reusable software components that semantically encapsulate discrete functionality and are distributed and programmatically accessible over standard Internet protocols.

* Simple Object Access Protocol (SOAP) is used to invoke the Web service.
* Web Services Description Language (WSDL) is used to describe the Web service.
* Universal Description, Discovery and Integration (UDDI) is used to publish and query Web services.

The following are file formats used extensively by Web service standards:
XML: Extensible Markup Language (XML) is a set of rules for defining data markup in a plain text format.
XSD: XML Schema Definition (XSD) specifies how to formally describe the elements in an XML document.
XSL: Extensible Stylesheet Language (XSL) is a specification (or template) for separating style from content when creating HTML or XML pages.
XSLT: Extensible Stylesheet Language Transformations (XSLT) is the language used in XSL style sheets to transform XML documents into other XML documents.
XPath: XML Path (XPath) is a language with a set of syntax rules for defining parts of an XML document.

What Is BPEL?

- A markup language for composing multiple services into an end-to-end business process
- A workflow and process flow language
- Synchronous and asynchronous interactions
- Parallel processing
- Exception management
- Provides a way to integrate a set of heterogeneous services to implement business processes

Integrated Adapters


Oracle BPEL Process Designer provides a wizard-driven model approach to exposing various systems and services as a Web service through WSDL generated to publish operations that can be performed by the service.

JDeveloper BPEL Designer provides an adapter framework that supports the following types of adapters:
- File Adapter
- FTP Adapter
- Oracle Advanced Queuing (AQ) Adapter
- Database Adapter
- JMS Adapter
- Oracle Applications Adapter

Difference between Oracle ESB and BPEL

Oracle BPEL is a Business Process Execution Language and as such its optimised for managing and coding business processes, whereas an ESB is quite simply a highly efficient intergration product. Its principle objective is to join two different services together quickly, efficiently and bi-directional. ESB does not have the Sensors which can be used to monitor the activities that can send actions to Business Activity Monitoring (BAM) or database/jms.BPEL data transformations enrich and perform complex changes whereas ESB can perform only simple transformations.

Primarily BPEL is used for Orchestration, data enrichment and also for Human interaction whereas ESB is used for Store and forward transport of data.

Specifically an ESB moves data via
Connects services via different adaptors (WebServices, FTP,File,JDBC etc) and protocols (HTTP,JMS). Enriches and transform data using XSL & domain value mapping lookups. Routes messages based on data in the message payload and/or header and finally and often overlooked feature is that an ESB

ESB:
* ESB (Enterprise Service Bus) implement messaging to enable services to be integrated in a message-based paradigm: both synchronous and asynchronous styles.
* ESB is good for routing messages to multiple destinations. It is also good for doing transformations that have little to no business rules. The footprint is much smaller and incurs minimal overhead therefore the performance is much better.
* ESB virtualizes endpoints that BPEL is orchestrating
* ESB does the heavy lifting of transformations to and from the canonical definition to endpoint definitions of the business objects
* ESB is used for Store and forward transport of data.

BPEL
* Oracle BPEL Process Manager provides a comprehensive, standards-based and easy to
use solution for creating, deploying, and managing cross-application business
processes with both automated and human workflow steps
* BPEL is used for bringing together multiple services. There is much more functionality and allows implementation of complex business logic.
* BPEL takes care of the stateful, long running, orchestration steps
* BPEL operates on the canonical definitions of your business objects - such that
your BPEL process is clean (minimal transformations, assigns) with the focus on
the basic business logic and related compensatory error-handling logic

BPEL Process

1. Synchronous - Client-> Receive Input --> Callback Client
2. Asynchronous - Client -> Receive Input --> reply Output

Process Activites

Interaction - Receive, Reply, Invoke, (User Task), Pick (plus the onEvent, onMessage and onAlarm event handlers)
Structure - Scope, Sequence, Flow, FlowN
Programming logic - While, Switch ,Terminate, Wait, Catch, Throw
Data manipulation - Transform, Assign
Miscellaneous - Java Embedding, Empty