在我们的项目中,我们必须实现有关将某些对象映射到某些操作的业务逻辑。在某个操作最终得到解决之前,我们将为要验证的特定类型的对象提供一系列条件。换句话说,对于7种类型的对象,我们可以有一系列动作(来自近45种动作)。
我们正在考虑使用Drools来记下上述规则。就效率而言,有没有人对使用Drools有一些积极/消极的经验?还有可以使用的jBPM框架(如果我没有弄错Drools在那里使用) - 任何人都熟悉该框架?也许您对如何解决问题有其他想法?
答案 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是非常有效和快速的。但与任何技术和技术一样框架它需要投资才能融入你的项目,它不是一个神奇的子弹。你需要考虑:
答案 3 :(得分:1)
jBPM不是规则引擎,它是一个工作流引擎。 Drools是一个规则引擎。所以Drools就是你要找的。 p>
Drools和jBPM是配套项目:如果您需要有规则的工作流程,它们可以很好地集成。
Drools很好JBPM与其他BPMN引擎相比有点复杂。我建议去Activiti,因为它更简单,并集成任何东西,如Spring,LDAP等;使用Activiti更容易。你也可以将Drools与Activiti集成在一起..所以请选择Activiti作为工作流引擎,然后使用Drools作为规则引擎。