标题 | 论文申报系统中规则生成/解析引擎的设计与实现 |
范文 | 张朋 摘要:论文申报系统中规则生成/解析引擎用于处理系统中的规则信息,实现专业论文审核通过标准中课程及成绩之间的逻辑关系与考生实际课程、成绩的映射。它主要包括规则生成引擎与规则解析引擎,规则生成引擎可以处理系统中的群组条件信息并生成使用ETJRDL描述的XML规则文件来定义系统中的审核规则,规则解析引擎处理XML规则文件并获取审核规则信息。 关键词: 规则生成引擎;规则解析引擎 中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)31-0084-02 论文申报系统服务器端运行于WEB容器中,它响应来自客户端的访问请求,处理来自客户端的各种系统信息并完成相应的业务处理与数据信息持久功能,它主要包括规则生成/解析引擎、业务处理、数据持久等功能模块。本文根据实际的应用需求,大多情况选择Castor框架来实现XML文件与内存Java对象的映射,并基于此实现规则生成/解析引擎。 1 数据绑定对象(DBO)模式与Castor 使用ETJRDL描述的XML规则文件来记录系统中的规则信息,需要一种高效的方式处理这些XML文件,以获取系统业务逻辑处理需要的规则信息。这需要将XML文档数据转换为业务数据,也就是实现XML文档数据与内存中Java对象的映射。随着XML相关技术的发展,业界出现了很多处理XML的API,如将XML数据作为流式数据进行处理的SAX,在内存中为XML文档数据构造模型树的DOM及其专为Java开发人员定制的JDOM,以及对对SAX与DOM的API进行抽象进而产生的JAXP等。这些处理XML数据信息的API各有利弊但都不适合一般性的应用需求。最好有一种方法能在Java对象与XML之间方便的序列化与反序列化的工具来实现XML文档数据与Java对象的映射。 使用DOM、SAX、JDOM等来实现对象序列化到XML文本时,代码会涉及XML文本的结构,也就是说,在代码硬编码XML文本节点时,这种方式不具备可重用性与灵活性。要达到良好的可重用性和扩展性,必须将XML和数据交互操作的细节封装起来,也就是数据绑定对象模式。 2 DBO模式有三个参与角色 数据对象:被序列化到XML或从XML反序列化的对象。 数据绑定对象:一个工具型的基本对象,抽象了XML序列化和XML API的具体使用细节。 XML序列化API:真正实现XML序列化的具体行为,如Castor等工具。 Castor是一种将Java对象和XML自动绑定的开源框架,它可以在Java对象、XML文档、SQL数据表以及LDAP目录之间绑定。Castor使用映射规则文件来实现,Castor是DBO模式的具体体现,它使用完全对象化的概念来实现XML数据与Java对象数据之间的相互映射,为系统中规则信息的持久化操作提供了有力的支撑。 3 规则生成与解析引擎的设计 规则生成引擎的设计思路 1)规则生成引擎用于将用户定义的群组信息转换成使用ETJRDL描述的XML规则文件,它实现用户定义的条件信息与系统中的规则信息的映射。因此,其输入是系统中的群组对象,输出是XML格式的规则文件。规则生成引擎解析群组条件,根据实际应用需求构建映射规则,将群组条件映射成为系统中的规则信息。 2)规则生成引擎模型 规则生成引擎实现群组定义信息到论文申报规则描述信息的映射,其映射模型包括三个模块,输入部分,规则生成模块和输出部分。输入为由用户定义的群组信息,输出为使用ETJRDL描述的XML规则信息文档。输入的群组信息经过有Castor框架构建的规则生成模块按照映射规则进行编组[java与XML数据绑定],生成符合要求的输出,即XML规则文档。 4 规则解析引擎的设计思路 1)規则解析引擎将系统中的XML规则文件转换成为业务实体对象,它实现规则信息与内存Java对象的映射。因此,其输入是XML格式的规则文件,输出是系统定义的业务实体对象。规则解析引擎依据XML规则文件中的数据构建业务实体对象,为业务逻辑层提供操作接口。 2)规则解析引擎模型 规则解析引擎实现论文申报规则描述信息到业务实体对象的映射,其映射模型包括三个模块,输入部分,规则解析模块和输出部分。输入为XML格式的规则文档,输出为业务操作实体对象。输入的规则信息XML文档经过由Castor框架构建的规则解析引擎按照映射规则进行解组[Java与XML数据绑定],生成符合要求的输入,即业务实体对象。 5 规则生成与解析引擎的实现 在规则生成与解析引擎实现的过程中,系统中使用DBO(Data Binding Object)模式。将由ETJRDL语言定义的XML部分文档节点封装成DBO模式中的数据对象;构造RuleHandle类作为系统数据绑定对象,它提供抽象了XML的序列化和XML API的具体使用细节;而XML序列化API则由Castor提供。规则生成与解析引擎的主要类如下: 位于RuleEngine包中的RuleObject类、ConditionObject类以及EntityObject类是DBO模式中的数据对象,分别用于构造XML规则文件的节点。RuleHandle类提供多个静态方法作为XML序列化以及其他处理XML文档的API。位于RuleEngine包中的RuleBuild类用来获取用户定义的群组信息并以此构造XML规则文件,RuleResolve类用来获取XML规则文件并对其进行解析,生成实体对象。 主要接口说明: RuleBuild类 说明:获取用户定义的群组信息,对规则生成/解析引擎做初始化设置 主要接口描述 getGroupInfo(); 接口描述:获取用户定义的群组信息 validate(); 接口描述:对群组信息进行验证 loadMapFile(); 接口描述:加载映射规则文件 buildRuleFile(); 接口描述:生成规则信息文档 RuleHandle类 说明:提供抽象了XML的序列化和XML API的具体使用细节 主要接口描述 getMapping(); 接口描述:获得内存对象与XML之间的映射关系 getUnmashaller(); 接口描述:获得解组对象 getMashaller(); 接口描述:获得编组对象 readXMLFile(); 接口描述:读取XML文件 writeXMLFile(); 接口描述:写入XML文件 RuleResolve类 说明:获取XML规则文件并对其进行解析,生成实体对象。 主要接口描述 getRuleFile(); 接口描述:获得XML规则文件 buildEntityObject(); 接口描述:构建内存实体对象 listEntityObject(); 接口描述:列出实体对象 规则生成/解析引擎获取用户定义的群组信息,将其构造为使用ETJRDL描述的XML规则文件,并最终将XML规则文件转化为业务逻辑层使用的描述了收件人的逻辑关系业务实体对象,业务逻辑层相关模块将使用这些业务实体对象来实现审核。由此,规则生成/解析引擎实现专业论文审核通过标准中课程及成绩之间的逻辑关系与考生实际课程、成绩的映射。 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。