一种基于ebXML标准的CPA草案合成方法技术

技术编号:2838268 阅读:179 留言:0更新日期:2012-04-11 18:40
一种基于ebXML标准的CPA草案合成方法,包括以下步骤:(1)采用遍历方式,读取模块实例中需匹配元素的元素节点,读取该元素节点的元素名和前缀;(2)根据元素名和前缀,从匹配模板库中读取该元素文本节点的值和匹配表达式;(3)解析匹配表达式,查找交易方对应模块实例中对应值,根据匹配类型,进行匹配并记录匹配结果,匹配成功,把该元素节点原样保存到CPA文档草案中;匹配不成功,把该元素节点对应的值用一个占为符表示,保存到CPA文档草案中,同时用一个差距列表文件,记录该差距;重复步骤(1)-(3),遍历模块实例中的元素与对应模块实例中的元素进行匹配,并将结果保存到CPA文档草案中。本发明专利技术能适应CPPA规范的变更,灵活的根据自定义模板生成CPA文档。

【技术实现步骤摘要】

本专利技术涉及。
技术介绍
协作协议概要/协作协议协定规范(Collaboration Protocol Profile andAgreement Specification,CPPA)是整个ebXML标准中的一个重要组成部分,主要用于描述进行ebXML电子商务的企业所具有的电子商务能力、商务伙伴之间的贸易协定以及限定和约束电子商务的实施过程。CPPA规范就是由ebXML标准组织中的协作协议概要/协作协议协定规范委员会负责制定和维护的。CPPA规范直接定义了两类文档CPP(CollaborationProtocol Profile,协作协议概要)文档和CPA(Collaboration Protocol Agreement,协作协议协定)文档。每次电子商务的进行都离不开CPP和CPA文档的参与。CPP文档是希望参与ebXML电子商务的企业所支持电子商务能力的描述。它利用XML语言描述了企业的商务流程和支持的商业服务接口,如该企业所采用的商务流程文档、交易流程、所扮演的角色(买方或卖方)、采用的数字证书、用于传输电子商务文档的传输协议、数据封装形式等等。任何希望参与ebXML电子商务的企业都必须有一个描述本公司所支持的电子商务能力的CPP文档。这是因为,在Internet上存在着各种类型的系统,各个企业也有着不同的交易流程。在交易开始之前,双方往往彼此都不相识,更不知道交易方电子商务系统的一些特性以及其进行交易的流程,在这样的情况下双方显然无法开展电子商务。因此需要在双方开始电子商务之前,把本企业所支持的电子商务能力通过一种途径告诉对方系统,也只有当双方都理解对方的电子商务能力后,才有可能在Internet上建立连接,并根据双方都同意的交易流程来进行电子商务。这里,CPP文档就起到了这个作用。随着ebXML标准的兴起,对ebXML标准中各个规范的研究已经成为一个热点。CPPA规范是ebXML标准中的重要组成部分,其中CPP文档生成和CPA文档合成是该规范中的研究重点。国内和国外的不同机构都研究开发了CPA生成方法,比较有代表性的是以下两种方法。(1)华南理工大学利用VB和微软的MSXML实现了一个带扩展的CPA文档的合成工具。其方法为在原始的CPP文档中,用注释的方式加入CPP文档中各个元素与属性在合成CPA文档时的相互之间的关系。这样在合成CPA文档草案时,只需要简单的读取与该元素或属性相对应的注释,然后从注释中解析出其与交易方CPP文档中相应元素与属性之间的关系,并进行比较和匹配,即可生成出一个合格的CPA文档草案。(2)Curtin科技大学计算机学院利用Ruby语言实现了一个CPA文档草案的合成方法。其合成方法严格按照特定版本的CPPA规范来进行的,逐条对CPP文档中的元素与属性进行匹配,并最终生成CPA文档草案和匹配过程中形成的差距列表。华南理工大学的方法中,由于其所采用的方法是在CPP文档中加入了一些用于标识元素间关系的特定注释字段,这样做虽然不影响CPP文档的有效性,但却牺牲了其通用性;显然用该合成工具进行CPA文档草案的合成要求用于合成的两个CPP文档,都具有这些特定字段,而对于两个标准的CPP文档(没有上述的特定字段),那么该工具将无能为力,也就是说该工具最多只适合于在小范围内的应用。同时,加入特定字段的做法,显然违背了ebXML标准组织在制定该标准时所提出的宗旨,它把一个世界公用的一个标准变的私有化了。Curtin科技大学的方法对CPPA规范进行了改动,进而影响到CPP文档的结构和匹配的算法,那么整个算法都必须进行修改,以适应新规范的要求。由于CPP规范在不断的修正和改进,使得对应的CPA草案生成方法也需要不断的更新,因此这样做很难适应ebXML在实际电子商务中的应用。同时CPP文档非常的冗长,处理理CPA草案的方法也需要大量的程序代码来完成,使得每次实际应用的时候都需要大量的编程工作。
技术实现思路
为了克服已有技术中CPA文档草案生成方法是根据每个不同的CPPA规范专门设计的,和特定电子商务应用相关,如果要增加新的电子商务应用,则需要重新设计CPA生成方法的不足,本专利技术提供一种扩展的、灵活的、可配置的CPA文档草案生成方法。本专利技术的技术方案是,包括以下步骤(1)采用遍历方式,读取模块实例中需匹配元素的元素节点,读取该元素节点的元素名和前缀;(2)根据元素名和前缀,从匹配模板库中读取该元素文本节点的值和匹配表达式;(3)解析匹配表达式,并根据匹配表达式查找交易方对应模块实例中对应的值,再根据匹配表达式中的匹配类型,对其进行匹配并记录匹配结果,所述的匹配结果为匹配成功,则把该元素节点原样保存到CPA文档草案中;如匹配不成功,则把该元素节点对应的值用一个占为符表示,并保存到CPA文档草案中,同时用一个差距列表文件,记录该差距;(4)重复步骤(1)-(3),遍历模块实例中的元素与对应模块实例中的元素进行匹配,并将结果保存到CPA文档草案中。根据如下匹配规则记录1.元素或属性的值要求相等,不相等则合成失败,如ProcessSpecification;2.元素或属性的值要求相等,不相等则写入差距列表,合成继续;3.元素或属性的值要求不同,相同则合成失败,如Role;4.元素或属性的值要求不同,相同则写入差距列表,合成继续;5.元素或属性的值可相同也可不同,如PartyName;6.对引用部分的匹配,无论匹配是否成功都继续合成,如CanSend元素中的ChannelId元素的值;7.对版本号的匹配,采用向下兼容的原则,如TransportProtocol的版本号。所述的步骤(3)为(3.1)由步骤(2)所取得的匹配表达式解析得到交易方对应模块中该节点的匹配路径极其匹配类型;(3.2)根据其匹配路径查找得到对应模块中的匹配节点,取得该节点对应的值;(3.3)根据匹配类型,对上述两个匹配节点对应的值进行匹配;(3.4)如果匹配成功,则把该节点原样保存到CPA文档草案中;如果匹配不成功,则把该节点对应的值用一个占为符表示,并保存到CPA文档草案中,同时用一个差距列表文件,记录该差距;(3.5)重复步骤(3.1)-(3.4)遍历该元素的节点,将结果保存到CPA文档草案中。本专利技术的原理是将匹配规则等与应用程序分离;引入匹配表达式来表示一个匹配路径;利用特殊的记号来表示元素与属性匹配的规则;利用系统中文件的特殊结构来表示一个模块;利用递归方式来遍历整个模块实例的元素与属性。从而提高了CPA文档的生成速度,并能够根据不同的商务应用快速进行匹配。这里通过引入一个差距列表文件,把各个模块之间由于元素和属性不同而造成的差异屏蔽掉,也就是说把各个不同模块之间的匹配过程同一化。这样做不仅使一个模块匹配的程序可以不经改变的移植到另外一些模块实例的匹配上,同时,也把模块匹配过程中的一些匹配规则从程序里面转移到了程序以外的一个地方,通过这样做后,就可以当CPPA规范发生改变的时候,不需改变程序,而只改变一些描述这些规则的外部文件,即可以使其适应新规范的需求。本专利技术中元素节点的信息是用父子关系(段-键-值)来定位的。差距列表文件的段名对应元素的名称,键名对应各个属性的名称和文本节点,与键名相对应的键值用于表示该键名所表本文档来自技高网
...

【技术保护点】
一种基于ebXML标准的CPA草案合成方法,其特征在于:包括以下步骤:(1)采用遍历方式,读取模块实例中需匹配元素的元素节点,读取该元素节点的元素名和前缀;(2)根据元素名和前缀,从匹配模板库中读取该元素文本节点的值和匹配表达式;(3)解析匹配表达式,并根据匹配表达式查找交易方对应模块实例中对应的值,再根据匹配表达式中的匹配类型,对其进行匹配并记录匹配结果,所述的匹配结果为匹配成功,则把该元素节点原样保存到CPA文档草案中;如匹配不成功,则把该元素节点对应的值用一个占为符表示,并保存到CPA文档草案中,同时用一个差距列表文件,记录该差距;(4)重复步骤(1)-(3),遍历模块实例中的元素与对应模块实例中的元素进行匹配,并将结果保存到CPA文档草案中。

【技术特征摘要】

【专利技术属性】
技术研发人员:王万良赵燕伟蒋一波毛明杰王景
申请(专利权)人:浙江工业大学
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1