Introduction
It’s a myth propagated by many consultants and vendors that Business Rule Management System (BRM) and Business Process Management System (BPM) are two alternatives for creating flexible and agile enterprise solution. There is no denying the fact that BPM uses rules for decision making. As always truth lies somewhere in the middle, BPM and BRMS are like two sides of a coin which can’t be separated, especially if used in conjunction with principle of service oriented architecture (SOA)
The underline idea behind this is totally separate process logic from decision logic. So what is process logic? Process logic is the specific logic of the business process such as controlling the sequence of activities, adhering of deadline and handling of exception. It is implemented using Process Engines like jBPM etc. Decision logic represents process independent management policies and principles and are implemented using rule engines like JBoss rules etc as part of BRMS
Principles of SOA
- Explicit boundaries
SOA is a design approach for special enterprise solution and special information technology software architecture
=> Consistent result responsibility
- Shared Contract and Schema, not class that is, service share common contract
SOA is strictly independent of the technology.
=> Unambiguous service level
- Service orientation is an evolution of component based architectures that is service are reusable
=> Proactive event sharing
- Vendor Independent
SOA is strictly independent of the technology
- Policy Driven
- Services are discoverable
- Business Driven
The granularity of the process modeling determines the granularity of the business service
- Loosely coupled
- Wire format not programming languages APIs
- Document oriented
Consider a message in string format
2007-11-0642055
and compare it to document format:
BPM & BRM in SOA
BPM is a closed loop model consisting of three steps: -
Step 1: Analyze, plan, model, test and simulate business process
Step 2: Execute business process via workflow spanning all applications
(process logic) by mean of process engine on a SOA as the
infrastructure.
Step 3: Plan, monitor and control processes, their performance and the
interplay of all business process.
BRP is a closed loop model consisting of three steps: -
Step 1: Based on business vocabulary it describes rules
Step 2: Describes the lifecycle of rules perform analysis, and design
simulation and test, via execution through rule engine.
Step3: Rule monitoring and controlling including responsibilities.
SOA transforms existing business computing assets into well-defined services. It can work effortlessly with BPM because of the reliance on services. SOA exposes services while BPM consumes them. When properly implemented, SOA opens a vast inventory of services for BPM to piece together into an all-inclusive flow of services.
While BPM defines and orchestrates the flow
The drive to use SOA to create a more agile infrastructure also highlights the importance of externalizing highly volatile business logic that is subject to change.
Highly volatile business logic can be defined as business rules. In the traditional application structure these business rules are buried in the application while in a more modern approach they are separated. Just as process flow can be separated from application code into an external BPM engine, the same can be done with business rules. Separating both process flow and business rules empowers a business analyst to make operational changes more quickly, providing maximum flexibility and adaptability.
An important shared characteristic of BPM, BRM and SOA is that they all deliver tactical cost/time benefits while building a base for competitive growth. Each one contributes to the overall agility of a company's IT infrastructure in the long term.
Business application companies such as Oracle/PeopleSoft/Siebel and SAP are contributing to the new opportunity of SOAs by supplying a new class of business applications called service-oriented business applications (SOBAs). SOBAs provide extended functionality for use on Web services standards and should contribute significantly to a company's repository of business services.
So the evolution toward service orientation as an enterprise elevates process thinking, analytics and performance measurement as core competencies to achieve competitive advantage. Accordingly, companies should establish best practices around these disciplines in parallel with implementing the supporting technologies.
Process and Rules in SOA
pricing policies, customer relationship management practices, human resources activities,
regulatory constraints, product and service offerings. As rules evaluation matured, areas
such as recommendation technology revolve around rules.
Although the definitions of processes and rules differ the differences are not as clear cut.
Typically both rules and orchestration concepts are intertwined within the definition of a
business process.
contrast, ORCHESTRATION ENGINEs cater to long-running processes, where services
can take minutes, hours or even days to complete.
asynchronous. Typically the ORCHESTRATION ENGINE invokes services in an
asynchronous manner. The mechanisms required to deal with asynchonicity such as
correlation and compensations are readily available in orchestration environments.
inputs from the knowledge base, evaluates it, and then updates the knowledge base.
In contrast, ORCHESTRATION ENGINEs are specifically designed to hold the state
(i.e., execution context) of each active orchestration.
The order in which these rules actually execute is non-deterministic. In contrast,
process implementations strive for close alignment with the business. Business
processes are deterministic, and people go to great lengths to ensure determinism.
THEN DO
creditRating:=call(creditService,customerData)
status:=ranked
END
WHEN status=ranked AND creditRating
THEN DO
floodCertification:=call(floodService,propertyAddress)
END
WHEN status=ranked AND creditRating>=threshold
THEN DO
appraisedValue:=call(appraisalService,propertyAddress)
END
WHEN status=ranked AND haveCertification and haveAppraisal
THEN DO
decision:=call(decisionService,application,creditRating,floodCertification,
appraisedValue)
status:=decisioned
END
WHEN status=decisioned
THEN DO
documentation:=call(letterService,application,decision)
status:=documented
END
WHEN status=documented
THEN DO
call(mailingService,documentation)
status:=mailed
END
Challenges in BRM
<<
1 comment:
With Drools 4.0 we introduced ruleflow, which aims to orchestrate rules with processes. We also added the capabilities for our BRMS to store processes, along with rules. So now we have one engine, one server side management system and one deployment mechanism able to do rules and processes. Ruleflow for 4.0 was kinda of proof of concept, to show it can be done, we are now working hard on make this have full workflow capabilies. One of the cooler parts is we'll be adding user defineable task nodes to the gui tooling and engine.
Checkout the presentation I gave at the IJTC which has some screenshots of ruleflow now and the task stuff coming up in the next major release.
http://blog.athico.com/2007/11/ijtc-and-new-production-rule-rete.html
Post a Comment