Oracle Business Rules - A BPM "How To" Guide

Oracle Business Rules 11g – Choices with BPM 11g

There are essentially three choices available when using Business Rules with BPM 11g, each has its own benefits and drawbacks, this blog will explain....

  1. Business Rules included statically inside the Parent BPM process
  2. Business Rules contained within their own project/composite and exposed as a webservice
  3. Business Rules included in a simple BPM project exposed as a webservice

There are several touchpoints for business rules that need to be understood before deciding which of the above options to choose....

BPM Studio (JDev)....

  1. historically the starting point for development of rules
  2. interacts only with design-time MDS partition
  3. clearly has the ability to “deploy” rules to runtime MDS partition, although this would be restricted to development.
  4. complete granular security model can be implemented as part of VCS.

SOA Composer....

  1. One place to dynamically change rules at runtime
  2. Interacts only with runtime MDS partition
  3. Manual effort required to keep design-time MDS partition and runtime MDS partition rules in sync...
    • Export composite from EM
    • Unpack archive
    • Extract rules
    • Manually update project in Studio / Composer...
    • ...OR Cut-and-paste
  4. No granular security at level of rules or composite... full granular RBAC in BPM 12c (expected)

BPM Composer (Design-time)....

  1. as this matures it is also possible to develop and alter rules here
  2. at the time of writing this is restricted to only those rules included statically in a BPM project
  3. interacts with design-time MDS partition
  4. ability to “deploy” rules as part of a BPM composite to runtime MDS partition
  5. ability to provide workflow to follow in order to deploy (extra level of security)
  6. security provides separation at the level of the BPM project... partial RBAC

BPM Composer (Runtime)

Any user having the “soaadmin” application role (such as “weblogic”) can view & edit “Runtime Projects” in BPM Composer....

Changes to rules for “runtime projects” are against runtime MDS partition.... i.e. any changes are immediate and do not require re-deploy, exactly as in SOA Composer described previously, and have the same limitations with regards synchronization....

Business Rules inside the Parent Process


  1. Simplest solution
  2. Rules available for creation / modification inside BPM Composer


  1. Cannot manage the lifecycle of rules separate to the process... modifying and re-deploying the rules also re-deploys the process itself

Business Rules inside Separate Project Exposed as a WebService


  1. Logical solution
  2. lifecycle of rules separate to the process
  3. rules can easily be re-used from other processes
  4. easy to mediate to different rules services (with same signature) from single BPM process
    • process calls mediator
    • mediator connected to one abstract external reference
    • mediator uses content based routing (and if necessary DVM for another level of abstraction) to change” endpointURI” of called service


  1. Rules not available for creation / modification inside BPM Composer

Business Rules Included in Simple BPM Project Exposed as WebService

As above, but include “BPM” when creating project....


  1. lifecycle of rules separate to the process
  2. rules can easily be re-used from other processes
  3. easy to mediate to different rules services (with same signature) from the same BPM process
  4. Rules available for creation / modification inside BPM Composer
  5. Modifications to rules inside BPM Composer affect dev MDS, no synchronization issues


  1. Nothing

Recommendations ?

As stated there are pro's and con's to each option. An elegant solution is to include rules in a separate BPM project and have business users work on them from within BPM Composer....

  • they will likely be familiar with the BPM Composer UI
  • access control can be provided at a sufficiently granular level
  • they will be working against design-time MDS partition
  • workflow can be put in place to protect deployment of changed rules
  • in terms of immediacy... will there be any notable difference between updating directly in SOA Composer or updating in BPM Composer and redeploying ?


Out of curiosity, how come Oracle Policy Automation is not mentioned here as an option 4? Considering how advanced that particular rule engine is compared to Oracle rules I'm sure customers would prefer to model their rules in that instead.

Is there any built in integration between OPA and BPM? Is there any planned integration by Oracle?


Posted by Lee Chisholm on February 05, 2012 at 08:47 AM PST #

Hi there,
Is there any plans to create an 'option 4' using Oracle Policy Automation? While it is definitely required to have rules integrated into BPM, it looks like OPA has the edge from a rule engine perspective over Oracle Rules. If I was a customer I would probably rather implement my rules in OPA.

I do understand that you could call OPA using a web service, but a more integrated approach would be ideal for cross-over Oracle products.


Posted by guest on February 05, 2012 at 08:53 AM PST #

OPA is a valid use-case, but I was coming at this from the perspective of a Oracle BPM user that thinks "Oracle Business Rules - how do I use them" as opposed to "what other options do I have outside of OBR".

As for the long term relationship between OPA & OBR I'll be honest and say I don't know but you've piqued my curiosity so I may have to find out.

Posted by Mark Foster on March 13, 2012 at 04:49 AM PDT #


I was wondering if there are any performance considerations with the three approaches outlined above .. would option 1 be more performant than option 3?



Posted by guest on June 25, 2012 at 01:43 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed

This is the blog for the Oracle FMW Architects team fondly known as the A-Team. The A-Team is the central, technical, outbound team as part of the FMW Development organization working with Oracle's largest and most important customers. We support Oracle Sales, Consulting and Support when deep technical and architectural help is needed from Oracle Development.
Primarily this blog is tailored for SOA issues (BPEL, OSB, BPM, Adapters, CEP, B2B, JCAP)that are encountered by our team. Expect real solutions to customer problems, encountered during customer engagements.
We will highlight best practices, workarounds, architectural discussions, and discuss topics that are relevant in the SOA technical space today.


« March 2017