主题:java引擎
[b]规则引擎的优点[/b]
1 声明式编程
规则引擎允许你描述做什么而不是如何去做。
这里的主要优点是使用规则更加容易对复杂的问题进行表述,并得到验证。规则系统能够解决非常非常困难的问题,并提供了方案怎样达到和在解决问题的方向上所作的每一个决定的原因
2 逻辑与数据分离
数据保存在系统对象中,逻辑保存在规则中。这根本性的打破了面向对象系统中将数据和逻辑耦合起来的局面,这点是有利的也是不利的,在于你的观察角度。这样做的结果是,将来逻辑发生改变时更容易被维护,因为逻辑保存在规则中。这点在逻辑是跨领域或多领域中使用时尤其有用。通过将逻辑集中在一个或数个清晰的规则文件中,取代了之前分散在代码中的局面。
3 速度及可测量性
Rete算法、Leaps算法,以及由此衍生出来的Drools的Rete、Leaps算法,提供了对系统数据对象非常有效率的匹配。这些都是高效率尤其当你的数据是不完全的改变(规则引擎能够记得之前的匹配)。这些算法经过了大量实际考验的证明。
4 知识集中化
通过使用规则,将建立一个可执行的规则库。这意味着规则库代表着现实中的业务策略的唯一对应,理想情况下可读性高的规则还可以被当作文档使用。
5 工具集成
例如Eclipse(将来可能在基于Web的界面上)这样的工具为规则的修改与管理即时获得反馈、内容验证与修补提供了办法。审查与调试工具同样也可用了。
6 解释机制
通过将规则引擎的决断与决断的原因一起记录下来,规则系统提供了很好的“解释机制”。
7 易懂的规则
通过建立对象模型以及DSL(域定义语言),你可以用接近自然语言的方式来编写规则。这让非技术人员与领域专家可以用他们自己的逻辑来理解规则。
ILogJRules [url]http://www-01.ibm.com/software/integration/business-rule-management/jrules/[/url]
JBoss Drools [url]http://www.jboss.org/[/url]
VisualRules [url]http://www.flagleader.com[/url]
1 声明式编程
规则引擎允许你描述做什么而不是如何去做。
这里的主要优点是使用规则更加容易对复杂的问题进行表述,并得到验证。规则系统能够解决非常非常困难的问题,并提供了方案怎样达到和在解决问题的方向上所作的每一个决定的原因
2 逻辑与数据分离
数据保存在系统对象中,逻辑保存在规则中。这根本性的打破了面向对象系统中将数据和逻辑耦合起来的局面,这点是有利的也是不利的,在于你的观察角度。这样做的结果是,将来逻辑发生改变时更容易被维护,因为逻辑保存在规则中。这点在逻辑是跨领域或多领域中使用时尤其有用。通过将逻辑集中在一个或数个清晰的规则文件中,取代了之前分散在代码中的局面。
3 速度及可测量性
Rete算法、Leaps算法,以及由此衍生出来的Drools的Rete、Leaps算法,提供了对系统数据对象非常有效率的匹配。这些都是高效率尤其当你的数据是不完全的改变(规则引擎能够记得之前的匹配)。这些算法经过了大量实际考验的证明。
4 知识集中化
通过使用规则,将建立一个可执行的规则库。这意味着规则库代表着现实中的业务策略的唯一对应,理想情况下可读性高的规则还可以被当作文档使用。
5 工具集成
例如Eclipse(将来可能在基于Web的界面上)这样的工具为规则的修改与管理即时获得反馈、内容验证与修补提供了办法。审查与调试工具同样也可用了。
6 解释机制
通过将规则引擎的决断与决断的原因一起记录下来,规则系统提供了很好的“解释机制”。
7 易懂的规则
通过建立对象模型以及DSL(域定义语言),你可以用接近自然语言的方式来编写规则。这让非技术人员与领域专家可以用他们自己的逻辑来理解规则。
ILogJRules [url]http://www-01.ibm.com/software/integration/business-rule-management/jrules/[/url]
JBoss Drools [url]http://www.jboss.org/[/url]
VisualRules [url]http://www.flagleader.com[/url]