Drools是映射业务规则/逻辑的最有效方式吗?

时间:2012-12-11 13:49:28

标签: state drools rules jbpm

在我们的项目中,我们必须实现有关将某些对象映射到某些操作的业务逻辑。在某个操作最终得到解决之前,我们将为要验证的特定类型的对象提供一系列条件。换句话说,对于7种类型的对象,我们可以有一系列动作(来自近45种动作)。

我们正在考虑使用Drools来记下上述规则。就效率而言,有没有人对使用Drools有一些积极/消极的经验?还有可以使用的jBPM框架(如果我没有弄错Drools在那里使用) - 任何人都熟悉该框架?也许您对如何解决问题有其他想法?

4 个答案:

答案 0 :(得分:7)

关于效率,你应该对Drools没有任何问题。这对我来说听起来像是一小部分事实和规则。它所依据的Rete引擎几乎肯定比你自己编写的任何if-then-else语句更快地做出决策。我注意到的一个特别好处是响应时间非常可预测。

显然,所有事实模型和规则都不同,但作为一个例子,我目前正在构建的应用程序随时都有数百个工作内存事实,以及超过1000条规则。它能够在大约20毫秒内做出有关传入请求的决定。

对于您描述的内容,完整的jBPM框架听起来并不必要。但是,它的功能很好。例如,如果您正在寻求设计工作流程,那么有一个流程建模GUI,如果技术团队在编写DSL和构建决策表方面付出了一些前期努力,那么Guvnor可用于非技术规则作者。

为了完整起见,主要竞争对手可能是FICO Blaze Adviser或IBM ILog JRules。一般来说,当谈到基准时,那些往往略微领先于Drools,但它们很昂贵。不可否认,如果您决定支付JBoss / RedHat服务合同,那么它没有太大的不同,但如果您乐意在Drools上获得社区支持,那么它是免费的!

答案 1 :(得分:3)

我对Drools的唯一顾虑是,没有像这样的非IT业务人员真正可以使用的体面的GUI。许多产品声称他们确实提供了这样的用户界面,但事实证明并非如此。因此,您必须接受这样一个事实,即您的开发团队最终将根据决策表或其他格式创建和测试所有这些规则。

除此之外,Drools是政府,银行和大公司使用的优秀BRE。

答案 2 :(得分:2)

Drools是非常有效和快速的。但与任何技术和技术一样框架它需要投资才能融入你的项目,它不是一个神奇的子弹。你需要考虑:

  • 你有多少规则?如果规则少于20条,我不会推荐任何规则引擎。对于为7个对象和45个动作添加规则引擎的复杂性而言,您可能不会付出相应的努力......
  • 您需要DSL(域特定语言)功能吗? IE浏览器。非技术人员会写规则吗?恕我直言,与例如相比,这在Drools中不是很有用。 Oracle OPA。但我还没有看到一个非技术人员安全地修改规则系统。除了在决策表中更改值。
  • 您的规则多久会改变一次?如果您需要一个集中式系统来管理,版本,打包,测试您的规则,那么Drools Guvnor是一款非常强大的产品。

答案 3 :(得分:1)

jBPM不是规则引擎,它是一个工作流引擎。 Drools是一个规则引擎。所以Drools就是你要找的。

Drools和jBPM是配套项目:如果您需要有规则的工作流程,它们可以很好地集成。

Drools很好JBPM与其他BPMN引擎相比有点复杂。我建议去Activiti,因为它更简单,并集成任何东西,如Spring,LDAP等;使用Activiti更容易。你也可以将Drools与Activiti集成在一起..所以请选择Activiti作为工作流引擎,然后使用Drools作为规则引擎。