问题

采用Java规则引擎JESSDrools的优缺点是什么?还有其他球员吗?

我知道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


原文链接