Thursday, August 16, 2012

Product Overlap or Choice

In the Oracle middleware product stack often there are products which seem to overlap in functionality causing confusion for customers/consultants to pick one over the other. Oracle explains it as a matter of choice that customers have to select the right product for their need. Over time things are getting clearer and this confusion is settling down. Below are my views on how these products should be seen and positioned.

BPM Suite 11g Vs SOA Suite 11g

There has been lot of discussions on this, a lot of good blogs are available on google, what makes it more interesting is BPM Suite and SOA Suite share a common SCA runtime platform on top of Weblogic. BPM Suite is based on BPMN notation and SOA Suite on BPEL. Now without getting into the controversy of what is BPM and what is SOA, one thing to remember is BPM Suite license costs are higher. So it’s much more likely that customer has SOA suite or it’s easier to justify the license cost as it has BPEL, human-workflow, business rules, b2b, Adapters and BAM. It has all the tools you would need to solve your integration problems, customizing workflow requirements for existing oracle apps. So SOA Suite along with OSB can be a complete middleware platform (mid-tier) for the enterprise. BPM Suite on the other hand is better fit to build top-down business process applications in cases where a packaged application is not suitable or available.

OSB (Oracle Service Bus) 11g Vs SOA Suite 11g

This is not much of selecting one over other issue as most customers have both the products, the challenge comes as to what to implement where, how much in OSB and how much in SOA Suite. What integration patterns fit one over the other? So the basic difference between OSB and SOA Suite is that OSB is much more light-weight unlike SOA Suite, SOA Suite because has a lot of engines running in it needs a much higher capacity, tuning and better administration. So for synchronous (req/resp) integration patterns with simple compositions OSB would be sufficient. It’s important to build a logging, auditing, monitoring framework with UI around OSB so as to complement what Enterprise Manager provides for BPEL. BPEL should be used where there is a case for orchestration/complex compositions, human-workflow and long-running processes/async. A lot of customers have implemented a lot more in BPEL which seems like an anti-pattern however with better capacity and administration it should not be a problem.

OSR (Oracle Service Registry) and OER (Oracle Enterprise Repository)

These two products under SOA Governance Suite cause lot of confusion, most customer end up not using either. As Governance is a political area, most customers remain in a policy-paralysis state without knowing how to answer the questions such as 1) how to identify new services? 2) what policies and process should be in place to build/deploy the services 3) ownership of services and how to reduce TCO (Total cost of ownership)


Now OSR and OER are both metadata repositories, they keep service metadata to improve visibility and control. The main difference is what kind of metadata they keep and what kind of analytics you can run on them. OSR is simply a UDDI compliant Registry (oem agreement with HP Systinet). It’s used for programmatic, dynamic discovery of services and provides control over service provisioning. OER on the other hand is a complete Asset management product used during the plan, design, and build phase of the service lifecycle (automate approval process) as a single source of truth for service and composite application development. It provides analytics with 20+ reports such as Investment ROI, Proactive Impact Analysis, value of service & asset portfolio.



There is another product OWSM (Oracle WebService Management) which causes some confusion. These confusions are primarily from a roadmap perspective as to how they will be positioned in future. OWSM is the policy-based security product for SOA Suite. There is another product called OEG (Oracle Enterprise Gateway -oem agreement with Vordel) which is similar to IBM Datapower product. OWSM is part of SOA Suite and OSB both and is the strategic product for all last-mile security implementations.



One more area of confusion is around ODI (Oracle Data Integrator) product, as to when to use ODI and when to use SOA Suite. This is more of an ETL vs SOA debate. In fact ODI uses a methodology called ELT and not ETL. This product is interesting with the cloud integrations on rise. Currently ODI is positioned to do primarily bulk Data Load kind of use cases however it supports web services based integrations.


I will cover the Weblogic suite products in another blog post.

Monday, February 27, 2012

SOA 11g

I finally got my first SOA11g project few months back, unfortunately I am not getting to do development as much I would like to, and that’s why my blogging frequency has also gone down. :-(

Anycase, here are some my experiences with SOA11g.

1) Customer had SOA11.1.1.2 (PS1), and now the latest version is 11.1.1.6(PS5). It's not too back that 11gPS1 was released but now there is no support for it. So first thing which bewilders me is the new versions that keep coming and customers not able to upgrade to them as quickly as we developers would like. Not to forget the exact version of JDev and the plugins.

2) We continued our work on PS1, and we hit a wall with one bug.

We were passing a custom variable in soap header along with wsse security header. Apparently there was a bug #13070260 - which was throwing java.lang.ArrayIndexOutOfBoundsException

As we could not get a back-port patch, we had to look for work-around and luckily there was one, as found here, to supress the wsa headers we used this flag oracle.soa.addressing.response.enabled=false in the composite.

3) We had used a Mediator-BPEL-Mediator pattern, which looked elegant but the repetitive transformations in Mediator and BPEL were bit of a pain, particularly when we could not see the payload information for mediator in enterprise manager (may be another bug). Also the interesting property passThroughHeader that has to be set in composite for the mediator to pass the soap headers forward.

4) We were using OWSM to secure the composites and that was having a few hick ups in setting up the jks keys, understanding the polices etc.

5)We used Business Rules in our composites, and that was quite a challenge to start using properly, as we had lot of bucketsets and everytime we re-imported the schemas, had to redo the decision tables. One interesting finding was, while rules execution in one of the rules it was always going to to default flow - so by using the conflict resoultion as Override instead of RunAfter or RunBefore solved the issue.

update25/Apr: If the schemas for rules has changed, instead of re-importing everything, re-importing only the changed element helps.


I also had my first OSB11g experience in this project - and that is for another blog.