It should be common sense to keep business logic where it resides – in the core systems. However, there are several occasions where confusion around the business rules arises due to various business rules patterns. Broadly speaking there are three distinct business rules patterns and it crucial to categorize them during the design of process solution.
These three patterns are:
These are process flow control rules and they get captured as part of the process flow. A process analyst with general understanding of modeling technique would be able to identify these rules easily and capture them as part of the various process flow control elements.
Data driven rules are where a set of rules need to be applied on a data set in order to determine a particular action. In several cases, the process direction depends on evaluation of such rules, and hence it is effective to keep them out of process logic and manage them as separate component so that process and/or rules can be modified independent of each other. If volume of data driven rules is significant, it may be advisable to use Business Rules Management system (BRMS).
Quite often, processes need to act/react based on certain external events. Most of the BPMS platform provide strong support for event driven steps to be able to respond to specific events (Even process notation standards such as BPMN have a strong notion of event-driven steps); however, mechanism of evaluating an event should be kept as separate module. Several BPM platforms already have either event based rules engines built into their platform or a framework to integrate with one.
In Enterprise Software Platform ecosystem, #2 and #3 are known as BRMS (Business Rules Management Systems) or CEP (Complex Event Processing). Given its logical co-existence, lot of vendors have either package them as optional modules or separate products. As an example, IBM Decision Management System has capability of both BRMS (iLog) and CEP. Oracle SOA suite has both BRMS and CEP engine that comes along. Progress Software was going to have Corticon (BRMS) and Apama (CEP)*.
*Due to divestment plan of Progress Software, Corticon and Apama might not be available as offering, after Savvion BPM product is sold.