Paul Snow has presented a paper on Using Decision Tables to Manage EBook Access at Building Business Capability 2011 – Oct 30 – Nov 3, learn more: http://bit.ly/oTOKni . I will be adding a page on the presentation soon with instructions on how to download the ebook preview example development project, and the ebook preview application very soon.
Paul Snow presented at the Austin Java User Group meeting, September 27, 2011.
The XML parser used by DTRules has been broken out into its own project. Read more on the Generic XML Parser/Printer page.
We have the 4.3 version of DTRules pushed to the maven repo1!! You can now simply use maven to integrate DTRules with your application!
A Forum has been set up, using Google Groups for support of DTRules. Be one of the first to join!
New Policy Statement Support Go to the Policy Statements page for details about this new feature. The Policy Statements section, a new section in a decision table to be added in the up coming 5.0 release, allows you to document the policy represented by each column in the Decision Table. Learn about this feature, or preview it out in the 5.0-SNAPSHOT.
CHIP Example Added! Go to the CHIP Example page for details about this new example. I wrote a test generator, and used the coverage report generated by DTRules to examine what cases were being generated. This allowed me to find and fix a number of problems with the CHIP Rule Set.
DTRules 5.0-SNAPSHOT is available! This is a working release of the next version of the Rules Engine. By that we mean that it is intended to be a stable working release, but it isn't frozen; we are making updates to it as we work. You can check GIT for its history. There are a number of exciting changes which you can sample in the 5.0-SNAPSHOT. The include support for the Texas TIERS compiler, Policy Documentation which can be leveraged to document policy decisions, the ability to pretty print Decision Tables, and other features.
New Binary Repository is available! Go to the Downloads page for instructions on how to download the binaries for various DTRules versions. The DTRulesSrc.jar (which includes all the class files needed to run DTRules in your Java application plus all the Java source) is less then 500K in size. DTRules remains not only the easiest to use, most powerful solution for Business Rules, it is easily the smallest, lightest, and highest performing Rules Engine in the Market
DTRules is a Decision Table based Rules Engine. And DTRules is small, fast, and agile. Easily adapted to different execution environments such as servers and clients.
DTRules uses a combination of Decision Tables and Domain specific languages to describe complex policy and logic. Its deterministic approach to defining rules has proved very powerful on several large projects with thousands of decision tables each. This is about the best approach for implementing understood but large and complex policies and logic.
Decision Tables provide a common representation of policy and rules that can be understood by policy experts and developers alike. The English like domain specific language eliminates the requirement to learn a programming language to understand the conditions and actions.
In DTRules, the order of evaluation is strictly determined by the Decision Tables themselves. As such, DTRules is a Deterministic engine that relies on three features to qualify as a Rules Engine suitable for bridging the gap between domain experts and developers:
Decision Tables provide a multi-dimensional view of logic. Decision Tables themselves layout a set of conditions and a set of actions to be performed. Different combinations of results can lead to different combinations of actions being taken. Yet the table form allows the user to consider each combination (represented by a column) with out the complexity of nested IF statements or uncertain order of evaluation.
The use of name scoping, or contexts, allows for more natural expression of conditions and actions. Actions are taken within the context of a Decision Table, and should an action perform another Decision Table, it too will be executed within the same context.
A Decision Table defines exactly the order and conditions under which Decision Tables are executed. Thus a set of Decision Tables provides a deterministic structure to the execution of the rules. Modifications of the Decision Tables becomes easier to understand, and the impact of modifications to the performance of the tables easier to predict.
DTRules is not a forward chaining or backward chaining Rules Engine. With these types of Rules Engines, the developer builds a set of constraints and the Rules Engine determines the answer from within these constraints. The developer does not specify the order in which Rules are applied except in the most indirect fashions. For problem domains where the method of arriving at the answer is unclear, DTRules is not necessarily the best choice.
There are a couple of different ways to run a sample project DTRules on your system.