当前位置: 老葡京网站娱乐 > 编程语言 > 软件工程 > 正文

使用Drools规则引擎实现业务逻辑

时间:2011-10-02 ibm Ricardo Olivieri

老葡京网站娱乐 www.sdguanhua.com 简介:使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展 性成本。这篇更新的文章展示如何使用开源的 Drools规则引擎让 Java™ 应用程序更适应变化。 Drools 项目引入了一个新的本地规则表达式语言和一个 Eclipse 插件,使Drools 比以前更容易使用。

要求施加在当今软件产品上的大多数复杂性是行为和功能方面的,从而导致组件实现具有复杂的业务 逻辑。实现 J2EE 或 J2SE 应用程序中业务逻辑最常见的方法是编写 Java 代码来实现需求文档的规则和 逻辑。在大多数情况下,该代码的错综复杂性使得维护和更新应用程序的业务逻辑成为一项令人畏惧的任 务,甚至对于经验丰富的开发人员来说也是如此。任何更改,不管多么简单,仍然会产生重编译和重部署 成本。

规则引擎试图解决(或者至少降低)应用程序业务逻辑的开发和维护中固有的问题和困难??梢越?则引擎看作实现复杂业务逻辑的框架。大多数规则引擎允许您使用声明性编程来表达对于某些给定信息或 知识有效的结果。您可以专注于已知为真的事实及其结果,也就是应用程序的业务逻辑。

有多个规则引擎可供使用,其中包括商业和开放源码选择。商业规则引擎通常允许使用专用的类似英 语的语言来表达规则。其他规则引擎允许使用脚本语言(比如 Groovy 或 Python)编写规则。这篇更新 的文章为您介绍 Drools 引擎,并使用示例程序帮助您理解如何使用 Drools 作为 Java 应用程序中业务 逻辑层的一部分。

更多事情在变化……

俗话说得好,“惟一不变的是变化。”软件应用程序的业务逻辑正是如此。出于以下原因,实现应用 程序业务逻辑的组件可能必须更改:

在开发期间或部署后修复代码缺陷

应付特殊状况,即客户一开始没有提到要将业务逻辑考虑在内

处理客户已更改的业务目标

符合组织对敏捷或迭代开发过程的使用

如果存在这些可能性,则迫切需要一个无需太多复杂性就能处理业务逻辑更改的应用程序,尤其是当 更改复杂 if-else 逻辑的开发人员并不是以前编写代码的开发人员时。

Drools 是用 Java 语言编写的开放源码规则引擎,使用 Rete 算法对所编写的规则求值。Drools 允 许使用声明方式表达业务逻辑??梢允褂梅?XML 的本地语言编写规则,从而便于学习和理解。并且,还 可以将 Java 代码直接嵌入到规则文件中,这令 Drools 的学习更加吸引人。Drools 还具有其他优点: