13

何时使用业务规则引擎?

业务规则引擎和脚本/配置/定制有什么区别

4

3 回答 3

9

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

  • 涉及很多规则
  • 有经常变化的规则
  • 具有复杂的规则或以复杂的方式交互的规则(否则认为有很多嵌套的 IF)
  • 具有只有具有领域知识的人才能理解/验证的规则
  • 是商务人士真正希望在没有您帮助的情况下能够改变的一种
  • 涉及使用预测分析/分数作为决策的一部分

这些是使用业务规则管理系统获得回报的决策类型。不要从规则开始,从决定开始。

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

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

于 2009-07-28T00:54:44.890 回答
5

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

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

规则引擎实现了诸如 Rete(根据 Drools 的经验)之类的算法,这些算法使评估规则的任务更快。规则引擎还提供规则的前向链接、后向链接、混合链接等。然而,这些也可以用脚本语言来实现。你可以用这两种方法实现一些相同的事情,但我相信这取决于你应该选择哪种途径的规则的复杂性和数量。

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

它提供了要问自己的问题的逐步演练,以确定规则引擎是否满足您的需求,或者是否过大。

于 2009-04-22T19:32:48.463 回答
2

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

于 2009-05-02T22:29:53.807 回答