随着物流行业的快速发展,为了应对经常变化的业务类型和复杂的业务过程逻辑,物流计费系统不得不处理越来越多的数据。一些关键任务模块起着驱动整个系统主要业务过程的作用,因此这些模块需要系统提供可配置的工具来支持导致复杂和动态多样业务规则的新业务和新的市场策略。同时我们又希望业务规则不再成为业务软件系统中的应用层中的一个部分,把它分离出来。如果不将业务规则分离出来,当业务规则发生变化时,系统的非业务规则部分的设计和编码就要相应进行变化。为了解决这些问题,我们可以采用规则引擎来完成程序代码和业务规则的分离,这种分离策略很大的提高了系统的适应性和灵活性,也给系统的维护和升级带来很大的便利。同时也提高开发者的开发效率。本文运用基于Rete算法的规则引擎设计了一个物流计费引擎,改造了传统的计费引擎结构,解决了传统物流计费引擎不能对外部应用经常变化的需求作出及时的反应的问题,提高了开发人员的开发效率以及系统的可维护性和健壮性。本文对规则引擎的定义、架构、Rete算法和业务规则作了详细叙述,并引入了物流计费引擎,通过物流计费领域的业务特点,详细叙述了规则引擎在此物流计费引擎上的设计和实现方案。引入规则引擎很好地解决了传统系统耦合度紧,适应变化能力差的问题,很好地将业务规则从业务代码中分离开来,并进行有效地集中管理,单独开发维护,从而提高了系统的可维护性和健壮性。本文的规则引擎采用构件思想进行设计,根据单一职责原则划分为不同的模块,主要包括规则语言解析器(RuleParser)、规则服务(RuleService)、规则执行器(RuleExecutor)和规则管理器(RuleManager)等。基于规则的开发方法的流程包括规则分析、规则定义、规则设计、规则编写、规则验证和规则集成等一系列步骤。在物流计费业务对规则引擎的需求中,本文遵照这一流程,使用基于Rete算法的规则引擎实现了对物流计费业务规则的管理和使用。