问题
We are shopping for Business Rules Engines. We want to make our core application customizable to different customers with slightly different requirements. The people who would actually do the customizations are analysts. I.e. non-programmers who are technically skilled (usually have a degree in sciences).
What are the criteria to evaluate business rules engines? Are there open source and comercial ones? What are your experiences in ease of use, documentation, support, price, etc.
Our app is in Java.
回答1:
Drools (used to be Drools then JBoss Rules then Drools again) is a very good open-source rules engine and definitely worth a look.
To my mind the best criteria to evaluate a rules engine are:
- Is it configurable (otherwise you'd just code it instead)
- Is it performant.
- How easy is it for non technical people to change rules
- How easy is it for new rule sets to be deployed (and old ones undeployed).
Several Rules Engines have Business Rules Management Systems (BRMS) and Drools is no exception. This makes deployment much easier for non-techies.
There is good support for Drools via docs and tutorials on the web and even via the IRC channel.
I've also used the Rules Engine that comes with IBM Websphere Process Server and found that to be quite good as well (although pricey).
回答2:
I worked as a consultant for a leading rule engine in the industry for close to three years. You will pay a LOT of money for a commercial rule engine and need to decide if the features and support you potentially receive are worth the price. All rule engine vendors will claim theirs is the best hands down; the best advice I can give you is to do a prototype with each rule engine you're considering that is limited in scope, but representative of the features you need. Do NOT let sales people just show you a fancy demo; YOU should actively build the prototype. I have seen too many people buy a rule engine that really have no idea what it is they're buying. Personally, I would opt for one of the open source rule engines (someone has already mentioned Drools) if you have your heart set on a rule engine. However, I would seriously consider alongside rule engines the possibility of not using a rule engine. You may save time initially with a rule engine (ignoring the learning curve), but a custom solution is likely to be superior in the long term to meet you specific needs.
Here are a couple links from Martin Fowler's website that are relevant to your question:
- http://www.martinfowler.com/bliki/RulesEngine.html
- http://www.martinfowler.com/bliki/DomainSpecificLanguage.html
回答3:
I work with a lot of commercial vendors and, unlike Martin, speak to a lot of their customers. The reality is that business rules management systems do work and repay the investment in learning curve etc in the first project, long before the benefits of reduced maintenance and increased business user involve start kicking in. Drools is excellent as an open source solution and the leading commercial products are: IBM/ILOG Rules (.Net, Java and COBOL) FICO Blaze Advisor (.Net, Java and COBOL) InRule Technology (.Net) Innovations Software (Java) Oracle and SAP both have rules engines in their platforms that are more and more complete. I review a lot of new releases as well as minority products at http://jtonedm.com/category/product-news/
Forrester has a nice wave report on business rules that I recommend and there is a post on my site discussing it (which I would link to but stackoverflow won't let me add a second link yet) - contact me if you want answers.
回答4:
Many people decide that they want a rule engine, and what they want is an entire workflow management process that includes rule engines as part of the execution pipeline.
A workflow is a directed graph of actions. Actions are things that happen, e.g., rulesets, calculations, web service calls even. You should be able to have an action that can call other workflows.
This allows your business analysts to do entire-process implementations, not just do simple if-then-else (hah, some commercial rule engines can't even do else! see the comment about evaluating options before deciding) rules, be it simple sequential rules or FCIRE (forward chaining inference rule engine). Most business analysts find simple sequential rulesets easier to think about. It needs to be done at the workflow level because the third parties that the BAs interpret into rules have a tendency to change their entire decision/acceptance/rejection/domagick processes with very little notice.
来源:https://stackoverflow.com/questions/776901/criteria-to-evaluate-business-rules-engines