2011-09-22 114 views
5

这更多的是一个通用的问题。但是我想了解一个使用工具的概念,以及为什么需要这个工具。我一直在循环。 q)为什么我们需要规则引擎?使用规则引擎的推理

我一直在阅读Drools和ILOG规则引擎,并且对组织使用这些工具有什么好处的概念仍不清楚。

q)它只是为商业用户提供一种将查询(称为规则)引发到数据库(存储库)的方法吗?

这些额外的软件不会导致更多的钱花在许可证和支持上,而不是获得的利益?

我们无论如何有一个所有的应用程序做同样的事情。

例子: 如果销售<那么$ 5000000订单出货=无

以上是例如业务逻辑的。这在程序中很容易实现。那么通过规则引擎的好处是什么?

任何输入将是伟大的! 谢谢。

回答

2

难道你看看这个文档:Why should I use a rule engine ?

这是很清楚的时候使用,而不是使用一个规则引擎。

有这些2个paragrpahs仔细一看:

1.2.5。强大而松散的耦合

毫无疑问,您已经在系统设计中听到类似“紧耦合”和“松耦合”的术语。通常人们断言,由于其提供的灵活性增加,“松散”或“弱”耦合在设计方面是优选的。同样,你可以有“强耦合”和 “弱耦合”规则。这种意义上的强烈耦合意味着一个“触发”规则将明显导致另一个规则触发,依此类推;换句话说,有一个明确的(可能是显而易见的)逻辑链。如果 您的规则都是强烈耦合的,那么可能会发生意志不灵活,更重要的是,规则引擎 是一个矫枉过正的问题。明确的链可以被硬编码,或者使用决策树来实现。这并不是说强耦合本质上是不好的,但是在考虑规则引擎 以及捕获规则的方式时要谨记这一点。 “松散”耦合规则应该导致系统允许更改,删除和添加规则,而不需要更改其他不相关的规则。

在我看来,在与规则引擎, 人们忘记了规则引擎只是一件复杂 应用或解决方案的工作的兴奋。规则引擎并非真正用于处理工作流或流程执行,也不是用于执行规则的工作流引擎或流程管理工具。使用正确的工具为 工作。当然,一把钳子可以用作捏合工具中的锤击工具,但这不是它的设计目的。 --Dave Hamu

希望它可以帮助

+0

谢谢你所有的信息:) – JJunior

+0

规则引擎对某些类型的商业逻辑是什么数据库是数据。 – Marco

1

有很多的使用业务规则引擎或业务规则管理套件的优势。当您开始使用声明性方法将业务逻辑从应用程序中解耦出来时,您最终会在这些规则中表达业务知识。这个事实对于一个公司来说是非常有价值的,他们可以在一个集中的存储库中获得所有知识,并且所有的应用程序都可以重用。

在我看来,陈述权也是一个关键概念。让引擎选择特定情况所需的规则的想法非常棒。规则引擎为此目的进行了优化,并在您需要评估大量规则时做出非常好的工作。

希望它能帮助:)

+1

谢谢!是非常有帮助的:) – JJunior