Best Practices from Oracle Development's A‑Team

Oracle Business Rules - A BPM "How To" Guide

Mark Foster


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....

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

Main Article

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

BPM Studio (JDev)....

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



SOA Composer....

  • One place to dynamically change rules at runtime
  • Interacts only with runtime MDS partition
  • 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
  • No granular security at level of rules or composite... full granular RBAC in BPM 12c (expected)



BPM Composer (Design-time)....

  • as this matures it is also possible to develop and alter rules here
  • at the time of writing this is restricted to only those rules included statically in a BPM project (PS4FP)
  • interacts with design-time MDS partition
  • ability to “deploy” rules as part of a BPM composite to runtime MDS partition
  • ability to provide workflow to follow in order to deploy (extra level of security)
  • 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




  • Simplest solution
  • Rules available for creation / modification inside BPM Composer


  • 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




  • Logical solution
  • lifecycle of rules separate to the process
  • rules can easily be re-used from other processes
  • 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




  • 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....





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


  • 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 ?

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.Captcha