Oracle Business Rules - A BPM How-To Guide

February 3, 2012 | 4 minute read
Mark Foster
Director
Text Size 100%:

Introduction

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.

BRE01

 

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)

BRE02_1

 

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

BRE03_2

 

BPM Composer (Runtime)

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

BRE04_1

 

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

BRE05

 

Business Rules inside the Parent Process

BRE06

 

For...

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

Against...

  • 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

BRE07

 

For...

  • 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

BRE08_2

 

Against...

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

BRE09

BRE10

 

For...

  • 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

Against...

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

Mark Foster

Director

Director - Oracle A-Team


Previous Post

List of all states from COMPOSITE_INSTANCE, CUBE_INSTANCE, DLV_MESSAGE tables

Andy Knight | 3 min read

Next Post


Oracle Fusion Middleware on JDK 7

Mark Nelson | 1 min read