OracleBIBlog Search

Friday, July 31, 2009

OBIEE and BPEL

In the BI community we know that the pervasive adaptation of Business Intelligence technology can have a potentially transformative effect on a company's performance, especially when BI is applied with the philosophy of "enabling action from insight." One way OBIEE currently enables action is by providing links from reports directly to the transactional source system for that data so that the end user can take action on transactions related to that data. With OBIEE 11g, Oracle will be bringing actionable insight an evolutionary jump forward with the ability to integrate tightly with BPEL Process Manager.

In this post I'd like to introduce the basic concept behind BPEL and explain its importance in the context of OBIEE.

First it's important to highlight the distinction between transactions and processes. Transactions are important. They are the lifeblood of a busienss. But we all know that a business isn't just a collection of isolated transactions. Instead, we work with processes: For example, if the inventory level for Product X hits a certain threshold, someone has to make a decision about whether to reorder that item. The responsible party typically has one or more process she follows before she takes a business action and these processes are often comprised of both human and systems activities.

Historically the primary role of IT has simply been to support the "tech" side of a business in isolation from the processes that the tech supports. Consequently there has arisen a kind of division -- too often hostility -- between IT and the business it serves. One manifestation of this divide happens when attempting to keep any sort of process documentation: so often, as soon as the documentation is complete it is rendered obsolete. Any kind of documented understanding of the process has little relevance to the process itself, almost to the point that the process Once the documentation is complete.

But as tech becomes more tightly woven into the conduct of our activities, the complexity of the human/tech interactions in any given business process -- and the speed with which these interactions can change -- has likewise grown. Smartly managing and supporting these processes requires a healthy understanding of how the whole system interacts.

Enter BPEL - Business Process Execution Language - an XML-based language developed to describe in a systematic way the orchestration of steps within a business process. It combines the more-or-less "human readable" qualities of XML with the rigor of a real programming language. With BPEL, in a very real sense the processes themselves and the documented description of the processes are one and the same. BPEL is a very powerful way to bridge the business / IT divide: it challenges the business to unambiguously define exactly what they do and it requires IT to implement the tech components to support these activities exactly as described by the business.

Now, BPEL is a unique, "human readable" programming language, but in the end it's just that: a language. It needs a vehicle for executing the instructions defined in the BPEL program. The mechanism for executing these instructions is a BPEL Server, or "Engine." Several BPEL Engine products have been developed over the years, including Oracle's own BPEL Process Manager, which is one component of their SOA Suite.

What does all this have to do with OBIEE? Well imagine the reorder decision scenario above. Instead of simply linking to an inventory management system, OBIEE can let the user initiate the entire reorder evaluation BPEL process directly in BPEL Process Manager - which will in turn invoke other systems and human actions before the final click of the "Reorder" button. Or OBIEE can even invoke the process on its own based on user-defined thresholds, and let the process take its established course.

I have only begun to scratch the surface of exactly what BPEL is or how to use it. I encourage a deeper look into BPEL and the features of Oracle's BPEL Process Manager to truly appreciate the potential application of this technology in a BI implementation. Here are a few good places to start:

Wikipedia entry on BPEL: http://en.wikipedia.org/wiki/Business_Process_Execution_Language

Oracle's BPEL Process Manager http://www.oracle.com/appserver/bpel_home.html

Chapter on Oracle's BPEL Process Manager (from a larger work on BPEL in general)http://www.codeguru.com/cpp/sample_chapter/article.php/c10789

Enjoy...

0 comments: