何时使用业务规则引擎

fly*_*ire 12 customization enterprise rule-engine business-rules

何时使用业务规则引擎?

业务规则引擎和脚本/配置/自定义之间有什么区别

小智 8

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

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

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

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

更多关于为什么在这篇文章中使用业务规则的更多信息,说明为什么我相信业务规则.


gre*_*ker 5

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

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

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

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

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


McG*_*ory 2

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