Oracle Business Rules – A BPM “How To” Guide

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 ?

Add Your Comment