【发布时间】:2011-01-11 03:52:14
【问题描述】:
【问题讨论】:
标签: java drools rule-engine jess jrules
【问题讨论】:
标签: java drools rule-engine jess jrules
采用 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 和Google 中的更多详细信息。
还有其他玩家吗?
其他参与者包括 JRules、Corticon(JRules 是最著名的 IMO - 这并不意味着最好)。
它们在易用性、性能、与您的代码的集成程度等其他方面如何比较?
不能准确地告诉你,我对 Drools 的体验只有一点点(积极的)经验。但是您会从博客文章中获得一些反馈,例如 JBoss Drools vs ILog JRules - an anecdotal story(请务必阅读)或 Working with Drools from a JRules perspective。我相信你可以在 Google 上找到更多(但我会试试 Drools)。
【讨论】:
我们现在正在评估与我们的应用服务器一起使用的规则。我们遇到了OpenRules,它很容易与 Java 集成,而且就我们的测试表明,它足够快。 OpenRules 的主要优势在于修改和处理规则的方式。这一切都发生在 Excel 表格中,这对于非程序员来说是最简单的方法。参与其中的每个人,即使是非技术人员,都完全理解一切:-)
我们还集成了 drools,但规则更难理解,因为它是一种更程序化的方法。这就是为什么我们 - 很可能 - 会坚持使用 OpenRules。
【讨论】:
我们有类似的问题,我们终于拿起了 Drools,如果你有以下情况,应该使用 drools:
更多详情请关注URL
【讨论】:
只是补充说,许多人正在寻找更类似于管理是否满足某些条件来启用或禁用应用程序中的某些功能的东西。
我厌倦了在任何地方一遍又一遍地重新实现相同的模式,所以我决定为其创建一个名为 Roolie http://sourceforge.net/projects/roolie/ 的 OSS 项目
我只是对其进行了 maven 化,并且由于自 2010 年发布以来没有报告任何错误,因此我将其升级到 v 1.0,除了在 Maven 中心(我在做的过程)。
基本上,JSR-94 对大多数事情来说都是多余的,并且与当前的产品一起存在巨大的学习曲线和开销。如果那是你想要的,那很好。但是,如果您只想将用 Java 编写的简单规则与 XML 链接在一起以维护您的状态测试,那么 Roolie 是一种非常快速的方法。没有依赖关系,没有学习曲线。
【讨论】:
当我们需要一个规则引擎时,我们决定推出自己的规则引擎,因为可用的规则引擎对于我们的简单任务来说太复杂了。如果您甚至对解析用户可能输入的表达式有一定的经验,这并不是很难做到的。在我们的例子中,大部分规范由 XSD 处理,只有少数字段被进一步解析。
【讨论】: