By Srkastur-Oracle on Jan 12, 2012
In my role as a presales consultant,I often get questions from customers on the specifics of Oracle SOA Suite and the individual components and their role within the larger spectrum of the overarching SOA Suite.
One of the most common questions is about the role of Oracle Service Bus and how does it differ from Mediator or ESB and BPEL?
To answer this,we first have to understand some history about the evolution of the Oracle SOA 11g stack of solutions.
From the above timeline,we can see that post the BEA acquisition ,the release of SOA Suite 11g in 2009 included the Oracle Service Bus.
The 10gR3 release included the ESB which has evolved in to the Mediator in the 11g release.
From the Oracle data sheets:
OSB is a 'A proven, lightweight integration Enterprise Service Bus (ESB) specifically designed for the task of integrating, virtualizing, and managing services in a shared services infrastructure, Oracle Service Bus allows you to achieve value more quickly with simple, code-free, configuration-based service integration'
'Oracle BPEL (Business Process Execution Language) Process Manager is a tool for designing and running business processes. This product provides a comprehensive,standards-based and easy to use solution for creating, deploying and managingcross-application business processes with both automated and human workflow steps – all in a service-oriented architecture'
In simpler terminology:
If the primary requirement is for a solutions to accomplish content based routing,transformation,message validations,enrichments and the integration is enterprise wide and features like message throttling,service virtualization,Reliable messaging are important,the Oracle Service Bus is a great fit .
If the requirement is for a solution to design, manage and run business processes which are stateful with functionalities like Human Workflow,Business Rules,monitoring and management and composite service implementations,the choice should be BPEL.
In reality ,most of the requirements are a combination of both of the above and a pattern of using OSB in conjunction with SOA /BPEL has emerged.
The rule of thumb is summarized in below table:
|Oracle BPEL||Oracle Service Bus|
|Stateful and long running processes||Stateless messaging capablities|
|Service Orchestration||Service virtualization,message throttling,configuration based service configuration,Service pooling.|
|Composite implementation||Message validation,content based routing,transformation.|
|Integration of Rules and Human Workflow||XQuery and XSLT based message transforms.|
Mediator has replaced the old ESB solution in SOA 10g-it is essentially installed as part of the SCA composite.Primary function of the mediator is to serve as an intermediary bus within the composite components.
Below is a table summarizing key differences between Mediator and OSB:
|Mediator||Oracle Service Bus|
|Light weight intra composite mediation||Larger,more heavy weight inter composite enterprise service 'Bus'|
|Domain Value mapping and Xref(cross referencing ) support.||Serves as a logical proxy to physical services effectively providing service vitualization|
|Capablity to create data type assertions in XML trees.||Message throttling,service pooling and reliable messaging|
|Message transformation using XSLT.||Message transformation using XQuery and XSLT.|
|Development within JDeveloper||Eclipse or web console based development.|
It is also intresting to note that there are potential areas where all three components offer some overlapping functionality namely:
- Message Routing
- Message Filter
- XSLT transformation
- Message validation
- Asynchronous Messaging
In conclusion,it would be wise to analyze the requirements of a business problem thoroughly before choosing one over the other and in most cases the solution is a combination of the OSB,Mediator and BPEL.