The Benefitz Software Company has significant expertise with developments involving a Business Rules Engine (BRE).
A business rules engine (BRE) is a software component that allows non-programmers to add or change business logic in a business process management (BPM) system. A business rule is a statement that describes a business policy or procedure. Business logic describes the sequence of operations that is associated with data in a database to carry out the rule.
A business rules engine works by separating execution code for business rules from the rest of the business process management system. This allows the end user to change business rules without having to ask a programmer for help. When a change is made, the engine will evaluate the change's effect on other rules in the system and flag the user if there is a conflict.
The advantages of developing in a Business Rules Engine include:
- Declarative Programming
- Rule engines allow you to say "What to do" not "How to do it".
- Using rules can make it very easy to express solutions to difficult problems and consequently have those solutions verified. Declarative rules are much easier to read then imperative code.
- Rule systems are not only capable of solving very hard problems but also providing an explanation of how the solution was arrived at and why each decision along the way was made. This is not easy with other AI systems like neural networks.
- Logic and Data Separation
- Your data is in your domain objects, the logic is in the rules. This is a fundamental break from the object-orientated coupling of data and logic, which can be an advantage or a disadvantage depending on your point of view. The advantage is that the logic can be much easier to maintain when there are changes in the future, because it is all laid out in rules. This can be especially true if the logic is cross-domain or multi-domain logic. Instead of the logic being spread across many domain objects or controllers, it can all be organised in one or more very distinct rules files.
- Speed and Scalability
- The Rete algorithm and its descendants such as Drools' ReteOO provide very efficient ways of matching rule patterns to your domain object data. These are especially efficient when you have datasets that do not change entirely as the rule engine can remember past matches. These algorithms are battle proven.
- Centralization of Knowledge
- By using rules, you create a repository of knowledge which is executable. This means it's a single point of truth, for business policy for instance. Ideally rules are so readable that they can also serve as documentation.
- Tool Integration
- Tools such as Eclipse (and in future, Web based UIs) provide ways to edit and manage rules and get immediate feedback, validation and content assistance. Auditing and debugging tools are also available.
- Explanation Facility
- Rule systems can provide an "explanation facility" by logging the decisions made by the rule engine along with why the decisions were made.
- Understandable Rules
- By creating object models, and optionally Domain Specific Languages, that model your problem domain well you can write rules that look very close to natural language. These rules can be very understandable to non-technical domain experts.
For information on Trustee Gail le Grellier and on Trustee David Lepar and on Trustee John Rollason and on Trustee Francisco Khoza and on Actuary Tony Kamionsky to find out more details