● 摘要
随着信息技术和网络技术的发展,软件中的业务逻辑逐渐呈现出规模大和变化频繁的特点,给硬编码的开发方式带来了挑战。很多情况下业务逻辑可以表示成规则(如IF…THEN…)的形式,由声明式的语言进行描述,用特定的程序进行处理。规则引擎就是这样一种程序,它可以将规则从软件中分离,以透明的方式进行匹配,并输出结论。RuleML是W3C推荐的独立于规则引擎的基于XML的标准规则语言,有着广泛的逻辑表达能力和良好的可扩展性。本文首先分析了规则引擎技术研究现状和RuleML规范,然后设计了一个基于RuleML并使用Rete算法的规则引擎框架,包括RuleML解析器、推理引擎、规则通讯协议和规则引擎管理器。该框架有如下优点:以基于XML的规则通讯协议实现了规则引擎与应用程序的数据交换,简化了应用程序的改动;以独立的服务器运行,减小了Rete算法内存消耗大的负面影响并降低了与应用程序的耦合;统一的输入输出格式使得将来规则集之间方便集成为工作流;RuleML的开放性和可扩展性使得规则引擎功能的扩展变得更容易。除此之外,该框架的体系结构和主要模块对于将来规则服务系统的设计和实现都有一定的借鉴价值。本文根据该框架实现了规则引擎。目前,该规则引擎能够支持RuleML0.8版本(除复杂数据对象),能够为应用程序提供决策(即“做什么”),具体实施(即“如何做”)由应用程序调用自身模块完成。