I have been trying to find the right design/toolset which can help our business users. They have enormous data in excel files which they push through to various excel formulas and calculations usually and mostly on a row by row basis and vlookups from other sheets.
In trying to design a system for them, i want to enable them to define the business rules so that we can stick to designing and implementing the system, which will change state according to the business rules defined ?
What current stack of technologies would be able to support this ?
So basically something like this -> we dump all their (up to 400k+ and growing) data safely assuming that all rules and formulas will be applied on a row by row basis, into a database. We setup a web-page for them to author rules. The java runtime kicks in on the rules defined to apply them on a row by row basis.
Any design technology/design which can nearly match the computation power of excel and ease of defining rules for business analysts ? Any pointers to design/setup will be appreciated .
We used JBoss rules in our project where we required thousands of rules to be maintained by users. It’s based on Rete algorithm which is one of the fastest pattern matching algorithms. JBoss provides full fledge solution covering rules authoring, approval workflow, centralized rules repository, rules engine, eclipse plugin, support for DSL etc.
The problem with JBoss rules is that the core rules are written using either it’s scripting language MVEL or XML. I think say tactically they are more programmers option then end users option so you might want to invest in their rules’s authoring/management product called governer. The governor provides good UI for rules authoring. But the problem we faced was that for some modules they did not want rules building UI to be shown as its provided by governer to their end users as it seemed to be very much complex for those cases. We happened to use JBoss rules API to form rules in backend by showing very simple UI to end users. Their API really works well. Another option in that case could be leveraging their DSL support to make rules like plain English like statements.
For rules, you can take a look at JBoss Drools. It easily integrates with Hibernate which you can use for persisting data into the database. With drools you have the advantage of drools guvnor which can be used as a frontend for business folks to edit the rules.
IBM ILOG Jrules is a paid product from IBM , you can try out the trial version for 90 days though. ILOG is fully integrated with eclipse , it comes with a rule team server ( rule repository,version control ) and rule execution server, plus the rule studio,where you can generate the rules.
You can first create the object model as pojo classes in java and then import this pojo to your eclipse project and ilog will create english like language constructs for all the classes, you can then write a rule which looks like this
if the age of the person is more than 18 then allow the person to vote else do not allow the person to vote
The above rule can implemented in either the rule studio by technical users, or the business users can connect to the rule team server web interface and can author rules from a web browser.
Ilog provides excellent rule unit testing tool called DVS , with which you can test the rules using excel sheet. Even the business users can test the rules from the web interface of the rule team server.
In ILOG we can choose between a number of rule execution algorithm like RetePlus , sequential etc . The IBM’s documentation is comprehensive and lot of samples are provided to get you started.