I got a quick update on an interesting startup company – CodeEffects.com – with a very lightweight web widget for business rules. This web business rules widget is the outgrowth of some work the company has been doing with clients who are users of business rules management systems. These clients wanted a lightweight rule editor that was easy to embed in ASP .Net pages, that saved these rules as XML and that these executed business rules as a .Net component.
Now there are full-scale business rules management systems with native .Net support – InRule is a pure .Net offering while IBM/ILOG has a strong .Net offering and FICO and Corticon both offer .Net versions of their deployments. Code Effects does not produce a product of this scale.
The Code Effect business rules component supports two types of rules – execution rules (with an action to take if the conditions are true) and evaluation rules (just checks to see if the conditions are true). These business rules can be executed against any kind of .Net object. Execution is thread-safe and, they say, fast.
The editor is a simple ASP .Net server control that can be dragged onto a page and configured very simply – just tell it the .NET source class against which you want to write rules and it will introspect it and expose the gets and sets appropriately. You can decorate the source object with meta-data for the rule UI (nice attribute names for instance) and you have control over the interaction on the page. This allows you to put multiple controls on a page, add buttons to call the controls APIs etc as you would expect. The control has a save function that creates an XML packet that you can put it wherever you want, version etc.
At the moment each control handles a single business rule – you would have to add more control instances to a page to add more rules. The interaction with the rule is very smooth. You get a full IntelliSense-like interface and as you pick from the drop downs (lists of operators, lists of attributes, etc) it has a configurable help panel where you see suggestions for the next action (“Select a value from the list of attributes” or similar…). You can use the mouse and drop downs to build a rule or just type and use the IntelliSense features. Invalid rules or incomplete rules are flagged with useful mouse over error messages for each problem. The editor offers multi-lingual support
Once saved, the rules can be executed sequentially using an engine. Each rule is submitted separately but the engine supports caching of rules to improve performance when the same rules are called repeatedly.
As you would expect with a simple control like this all the approval, user access, versioning etc is outside the control. In addition the rules cannot yet access collections in rules (this is coming and for now customers write “in-rule” methods that the rules can then access) and you cannot manage a set of rules as a single control or XML packet (this too is promised).
The product is clearly early but the usability of the web control was actually pretty impressive. It’s available as a free trial download and has very simple licensing.