In order to answer this question we need to know more about business rules, their different types and the abstraction they live in.
My favorite is this definition:
Criterion used to:
- guide conduct or actions.
- shape judgments of behavior.
- make decisions.
Any business is very much like the human body. In the human body, power is supplied by the muscles, but the control and coordination of these is managed by the nervous system. In a business, this control and coordination is provided by business rules.
Business rules can be categorised into two groups: Structural and Operative.
Structural rules allow businesses to create their private world of encoded knowledge. On the other hand, operative rules enable businesses to run their activities in an effective way by aligning these with business goals.
Now let’s say we are going to develop a software system for a business that has its own rules, regulations, processes, and so on.
By translating the business rules (operative and structural) into an actual implementation for a particular technology, those business rules would be transformed to a technology-ready implementation rules and logic that is called platform/system rules. These rules are derived directly from the business rules.
In translating business rules to system/platform rules and implementing these, we may come across some restrictions and limitations of the platform we are using. These limitations and restrictions can still be categorized as a system/platform rules. Therefore, not all of these system/platform rules are the result of the business rules.
When we talk about implementing a software solution to help businesses to run more efficiently, there are lots of these different rules system/platform rules (e.g., Calculation logic, Workflow, Inferencing and Reasoning rules, Validation rules, etc.).
A business rule engine is a piece of software that allows you to model and execute these rules and logic. These come with different feature sets and capabilities. Some of them may let you use libraries to develop rules and logic in code and execute them. Some advanced ones let you model the rules and logic in a more declarative and visual form using a DSL language. Then your application is able to execute them.
A good business rule engine allows you to manage all sorts of different logic. By manage I mean: model, load, execute, store, trace, log, and so on.
Based on a definition in Wikipedia:
A business rule engine is a software system that executes one or more business rules in a runtime production environment.
The last part of this definition (“In a runtime production environment”) is really important. And why is it important? Because your software can now adapt to changes without going back to the development team, which itself has different impacts on different people/entities:
- On your customers
- On your development team
- On your company
The Business Rule Engine is an important piece of software that can deliver values to your company, development team and your customers.
The most important benefit of using a Business Rule Engine as part of your software solution for customers is that it enables customers to achieve business agility. The Business Rule Engine allows you to change the application rules and logic on-the-fly without the need to re-compile or even touch your application codebase. That means less risk of introducing any defects. Also using the Business Rule Engine increases unit testability of the application by allowing you to unit test the software rules and logic in isolation.
I will talk in more detail about this in future and describe different types of rules and logic (e.g., Procedural, Flow, Workflow, Validation, Decision, etc.)
Last updated February 21st, 2018 at 11:22 pm, Published September 16th, 2013 at 11:22 pm