论文部分内容阅读
传统的路面信息管理与决策系统将业务逻辑直接编写在应用程序代码之中。当业务逻辑发生变化时,系统的更新往往要花费很大的代价。随着业务逻辑变化的不断加快,这种高度耦合的方式越来越难以满足用户需求。规则引擎的出现使这一局面得以改变。规则引擎是推理引擎的一种,它起源于基于规则的专家系统。规则引擎可以将业务逻辑从应用程序代码中分离出来,当业务逻辑发生变化时,系统可以非常方便地进行更新。本文设计和实现了一种基于Drools规则引擎的路面信息管理与决策系统的解决方案,由规则引擎来实现业务逻辑,解决了传统信息管理系统中业务逻辑与应用程序高度耦合的问题,实现了公路养护的智能决策。Drools是一款开源的java规则引擎,采用改进的Rete算法实现。本文首先对系统的功能架构、物理架构和技术架构进行了设计;接着对后台的逻辑结构、处理流程和数据模型以及前台的主要页面等进行了详细设计;最后给出了系统的具体实现,包括程序代码和算法,并对系统性能进行了对比测试。在此基础上,采用将编译过程分离出去的方式对系统进行了改进,提高了系统性能。本文设计了规则管理的人机交互界面,将业务逻辑交给业务人员去管理,给用户带来较大的便利。针对用户输入数据可能不全面的问题,本文设计了四种类型的规则文件并赋予不同的优先级,使系统可以处理多种类型的数据,提高了系统的兼容性。用户输入的规则文件与规则库中已有的规则可能存在逻辑上的冲突,如果不进行处理,将造成系统的不稳定。本文根据集合论的原理,采用字符串处理算法,实现了规则的冲突检测。由于规则文件的执行需要经过编译和模式匹配等过程,与传统的应用程序相比,采用规则引擎的实现方式肯定会花费更多的时间。本文经过测试对比发现,采用规则引擎之后,系统性能的确有一定程度下降。通过分析规则引擎的运行过程,本文采取将编译过程分离出去的方法,实现了规则引擎的一次编译,多次执行。经过测试,改进以后的规则引擎实现方式性能有了较大的提高,能够满足用户需求。