Business Rule Engine: Do you really need business rule engine? What is the purpose of the business rule engine?
Almost all the business applications have set of rules. To develop a business system to fulfill the business requirements, all the business rules are implemented in the systems. In a traditional model, all the rules are converted into programming language and in specific, turns into if then else constructs in the application. If the rule changes then the business systems are changed. Then,if then else constructs within the systems are changed. Some times the rules changes frequently and end up changing the applications frequently to meet the new rule requirements. The applications/systems directly implements the business rule engine becomes big monolithic applications. Over the time, it will become very complicated to maintain it.
Why monolithic applications are difficult to maintain?
Let me explain why monolithic applications will become difficult and complicated over the time. Let us take a financial institution like bank who is in the business of providing loans and leases to consumers to buy recreational vehicles in United States. Loan (retail) and lease has different set of business rules. For lease, the vehicles are returned to the financial institution (lessor) and it is up to the lessor to re-market (resale) the RV. The lessor need to estimate the residual value of the vehicle at the beginning of the lease and based on it, the monthly payment and taxes are calculated. Money factor determines the interest rate banks charge on the lease account. Each state has a tax, legal, regulatory requirements and it changes.
Retail loan (in India, the retail loan product is called hire purchase, and I had developed a financial accounting package for hire purchase companies using FoxPro in 1993. The concept is same in United States) are relatively straight forward comparing to the lease. Loan amount, interest rate, initial payment, duration of the loan, sales tax, surcharges (as per the federal & state laws), and base on those parameters, it is a simple interest calculation.
In the above scenario, the state law, taxes, surcharges, residual value, money factor, credit quality, product type, loan type, loan duration, lease type, lease duration, and etc are the factors plays a role in customer inquiry, contract origination, contract validation, contract management, and asset disposal steps of retail loan or lease business processes. There are numerous combination of business rules based on these factors are formed to implement the major steps of the business processes.
Implementing these steps in the application directly will become difficult to manage and each time there is a change in those factors, the applications in the bank landscape need to change and under go the software development life cycle. It is costly, time consuming and limits agility, flexibility, adaptability
It is ideal to implement the business rules of the business application in a business rule engine and manage it independently of the application. It provides a platform to the business customer to change the business rules directly with out involving the information technology department. Also the tax, state regulation, internal business rules (like if the credit quality is medium .and. if the financial product is lease .and. if the state is new york then the money factor = 0.00000012) will be reused across application in the landscape.
The another major technical advantage of using the business rules is optimizing the business rules. It is very similar to Karnaugh map in boolean algebra. The rules will optimized by the business rule engine.
Are you already using business rule engine in your IT shop or is the business rule engine is part of your technology road map?