何时使用业务规则引擎

时间:2009-04-22 16:07:14

标签: customization enterprise rule-engine business-rules

何时使用业务规则引擎?

业务规则引擎和脚本/配置/自定义

之间有什么区别

3 个答案:

答案 0 :(得分:8)

当您尝试在代码中实施决策时,应使用业务规则引擎或业务规则管理系统。但不仅仅是任何决定。决定:

  • 涉及许多规则
  • 经常更改的规则
  • 规则复杂或以复杂的方式进行交互(否则请考虑大量嵌套IF)
  • 规则规定只有具有领域知识的人才能理解/验证
  • 商业人士真的希望能够在没有您帮助的情况下改变
  • 涉及使用预测分析/分数作为决策的一部分

这些是支付使用业务规则管理系统的决策。不要从规则开始,从决策开始。

业务规则冗长(因此业务人员发现它们更容易阅读),声明性不是程序性的和原子的(因此可以像数据库中的数据一样存储,管理和重用它们)。

有关为什么在此篇文章中使用业务规则的更多信息,请参阅I believe in business rules

答案 1 :(得分:5)

业务规则引擎通常用于为应用程序提供可定制的“IF some-condidtion THEN do-something”某种逻辑。这些类型的业务规则可以触发某些工作流来执行或将事件知识冒泡到更高级别的规则,从而对它们进行评估。

使用规则引擎还可以通过从代码中删除业务逻辑来更轻松地分离关注点。今天的规则引擎通常还提供前端,用户可以在其中添加新规则,而无需修改应用程序内的脚本。

规则引擎实现了Rete(从Drools体验中说话)等算法,可以更快地评估规则。规则引擎还提供规则的前向链接,后向链接,混合链接等。但是,这些也可以用脚本语言实现。您可以使用这两种方法实现某些相同类型的事情,但我认为这取决于您应该选择哪种途径的规则的复杂性和数量。

看看Jess项目中的这个链接:http://www.jessrules.com/guidelines.shtml

它提供了逐步解决问题以询问自己,以确定规则引擎是否满足您的需求,或者是否过度。

答案 2 :(得分:2)

规则引擎可以进行前向和后向链接以及推理。查看Fair Isaac Blaze,Drools或iLog实施。