问题
采用Java规则引擎JESS和Drools的优缺点是什么?还有其他球员吗?
我知道Drools是Open Source而JESS不是,但是他们如何比较易用性,性能,与代码集成的其他方面?
#1 热门回答(121 赞)
采用Java规则引擎JESS和Drools的优缺点是什么?
如果需要将业务规则与应用程序逻辑分开,请使用规则引擎。 Does Your Project Need a Rule Engine文章有一个很好的例子:
例如,典型的店面系统可能涉及计算折扣的代码:if(product.quantity> 100 && product.quantity <500){
product.discount = 2;
} else if(product.quantity> = 500 && product.quantity <2000){
product.discount = 5;
} else if(product.quantity> = 2000){
product.discount = 10;
}
规则引擎用以下代码替换上面的代码:ruleEngine.applyRules(product);
由你来决定是否将规则管理控制台交给非技术人员是好事还是不行:)
更多细节见Should I use a Rules Engine?,Why use a Rule Engine?,Some Guidelines For Deciding Whether To Use A Rules Engine和onGoogle。
还有其他球员吗?
其他玩家包括JRules,Corticon(JRules是最着名的IMO - 这并不意味着最好)。
他们如何在其他方面进行比较,如易用性,性能,与代码的集成程度?
不能准确地告诉你,我只对Drools有一点(积极的)经验。但是你会从博客文章中获得一些反馈,比如667885986(一定要读它)或者Working with Drools from a JRules perspective。我相信你可以在Google上找到更多这些(但我会试试Drools)。
#2 热门回答(14 赞)
我们现在正在评估规则以用于我们的应用服务器。我们遇到了OpenRules,它很容易与Java集成,并且就我们的测试显示而言,足够快。 OpenRules的主要优势在于修改和处理规则的方式。这一切都发生在Excel表格中,这是非程序员最简单的方法。每个参与的人,甚至是非技术人员,都完全理解一切:-)
我们也整合了drools,但规则更加复杂,因为它是一种更具程序性的方法。这就是为什么我们 - 最有可能 - 将坚持使用OpenRules。
#3 热门回答(6 赞)
我们和我们有类似的问题,我们最终选择了Drools,如果你有以下内容,应该使用drools:
- 由于各种情况,你认为业务逻辑会因多种条件而混乱
- 你对复杂性增加的需求会越来越大
- 业务逻辑变化频繁(每年1-2次也经常发生)
- 你的服务器有足够的内存,因为它是一个内存饥渴的工具,它提供了内存成本的性能
有关详细信息,请访问以下URL