基于交换标识的跨域增量数据交换模型及交换方法
【专利摘要】基于交换标识的跨域增量数据交换模型及交换方法属于跨域环境下数据交换领域。该模型包括数据层、交换层和数据传输层;交换层包括交换标识模块和交换策略生成模块;数据层包括日志解析模块、SQL语句重构模块、XSD标准模板、XML文档导入导出模块和数据校验模块。所有的数据在删除、或修改时都并非进行物理上的删除或修改,而是进行逻辑上的删除或修改;即当修改或删除一条数据时,要在末尾数据后新增一条数据,数据层中的日志解析模块解析日志中的SQL语句,获得对数据库操作的DML语句,进而让目标数据库执行同样的语句实现数据同步的。由于该模型是增量数据的交换,所以每次的数据交换量较传统方式小很多,也更安全。
【专利说明】基于交换标识的跨域増量数据交换模型及交換方法
【技术领域】
[0001 ] 本发明属于跨域环境下数据交换领域。
【背景技术】
[0002]如何在域间实现快速安全的互联互通、协同工作是跨域数据交换的重要目标之一。目前,主流数据交换技术有:
[0003](I)编制专有的应用系统,这种方式能够建立非常有效的交换系统,并且传输效率高、系统稳定,但是存在建设、运营成本高,开发周期长等不足;
[0004](2)采用中介数据库格式,编制专有传输方式,这种方式的数据交换和传输分为转化和传输两个过程,在实现系统间自动化以及数据交换上没有统ー的标准,不具通用性;
[0005](3)采用分布式系统DC0M/EJB,这种方式可以达到跨平台的互操作性和高的可伸缩性,但要求分布的系统间具有相当高的耦合性;
[0006](4)C0RBA方式,这种方式互操作性和开放性非常好,缺点是庞大而复杂,并且技术和标准的更新相对较慢;
[0007](5)WebService_XML交换方式,XML使用纯文本形式表示数据,它的自定义性及可扩展性足以表达各种类型的数据,作为独立于平台和设备的数据表达方式,特别是WebService的出现,使得XML成为实现了跨域系统通信的有效手段。
【发明内容】
[0008]为了解决传统跨域环境下数据交换中存在的已修改数据难以定位以及交换数据量较大的问题,本文在WebSerVice_XML交換方式基础上,结合信息系统在跨域数据交换过程中存在的这些问题,提出了一种跨域数据交换模型,来保障在进行跨域数据交换时的数据安全,确保数据可控和数据可用。
[0009]该模型使用XML文档作为跨域数据交换的中间媒介,并且使用XML来保存交换标识和交換策略。XML以ー种开放的自我描述方式定义数据结构,所组织的数据对于应用程序和用户具有友好型和可操作性,而且其本身具有跨平台性、高度可扩展性、结构化及简单易用等特性,已成为ー种通用的数据描述和交换标准。因此,使用XML作为跨域数据交换的中间媒介和保存交換标识以及交換策略都非常合适。
[0010]基于交换标识的跨域増量数据交换模型,其特征在于:
[0011]该数据交換模型分为三层:数据层、交换层和数据传输层;交换层包括交换标识模块和交換策略生成模块;数据层包括日志解析模块、SQL语句重构模块、XSD标准模板、XML文档导入导出模块和数据校验模块;数据传输层包括加解密模块、数据封装模块、信道建立模块和数据交换模块;
[0012]交换标识用于存储跨域数据交换的交换状态,每个域与其他域都存在ー组交换标识,由交换标识模块来统ー进行存储和更新,包含三部分内容:分别是上传数据标识、下载数据标识、当前数据标识;[0013]当两个域进行数据交换时,称主动发起请求连接的域为请求域,称被动响应连接请求的域为响应域;下载数据标识保存了请求域从响应域下载的交换数据的末尾数据标识;上传数据标识保存了请求域向响应域上传的交换数据的末尾数据标识;当前数据标识为本域最后一条数据的数据标识;下载数据标识和上传数据标识在域进行数据交换成功后进行更新,本域有任何数据更新时,当前数据标识都要更新,其始終指向本域最后一条数据;
[0014]所有的数据在删除、或修改时都并非进行物理上的删除或修改,而是进行逻辑上的删除或修改;即当修改或删除一条数据时,要在末尾数据后新增一条数据,所有的数据标识递增排列;
[0015]如果增加一条数据时的话就是直接增加一条数据,并同时增加交换标识的数值;
[0016]数据层中的日志解析模块解析日志中的SQL语句,获得对数据库操作的DML语句,包括InSert、Update、Delete操作,查明数据库的逻辑更改情况;进而让目标数据库执行同样的语句实现数据同步的;
[0017]SQL重构模块根据源端数据库、目标端数据库的表信息和字段信息提供源端/目标端对应表和字段的映射,用于在分析日志时重构等价的SQL语句;
[0018]XSD标准模板用于导出数据的统一格式化;数据校验模块利用数据模式文件,即XSD标准模板来验证传入XML文档数据的有效性,待转换的XML文档必须符合XSD的规范才能够进行转换;
[0019]交換策略模块用于根据XML规范生成交換策略文档并进行存储,在数据交换前由交換策略模块生成数据过滤器,増量数据经过这些过滤器的过滤后才可以进行后续操作;
[0020]数据传输层包括加解密模块、数据封装模块、信道建立模块和数据交换模块,用于对导出的XML文档进行加解密、数据的SOAP封装、跨域数据的安全可靠传输和调用接ロ进行数据交換。
[0021]2.1交换标识
[0022]交换标识主要用于存储跨域数据交换的交换状态,每个域与其他域都存在ー组交换标识,由下文提到的交换标识模块来统ー进行存储和更新,包含三部分内容:分别是上传数据标识、下载数据标识、当前数据标识。当两个域进行数据交换时,称主动发起请求连接的域为请求域,称被动响应连接请求的域为响应域。下载数据标识保存了请求域从响应域下载的交换数据的末尾数据标识;上传数据标识保存了请求域向响应域上传的交换数据的末尾数据标识;当前数据标识为本域最后一条数据的数据标识。下载数据标识和上传数据标识在域进行数据交换成功后进行更新,本域有任何数据更新时,当前数据标识都要更新,其始終指向本域最后一条数据。
[0023]所有的数据在删除和修改时都并非进行物理上的删除和修改,而是进行逻辑上的删除和修改。当修改或删除一条数据时,要在末尾数据后新增一条数据,所有的数据标识递增排列。这样交换标识的存在便有了意义,下次交换时,对方域便可知道哪些是新增数据。
[0024]2.2基于日志解析技术的数据交换
[0025]日志是记录数据库操作信息的数据结构,日志文件是日志记录的汇集,数据库日志文件支持着数据库的正常运作,一旦相关联的数据库发生了变更,那些记录就会被写入日志中,通过解析日志内容,可以获得对数据库操作的DML语句(包括Insert、Update、Delete操作),查明数据库的逻辑更改情况。基于日志解析技术的数据交换是依靠分析源数据库日志文件,解析日志中的SQL语句,得到一条或多条Insert、Update、Delete操作,进而让目标数据库执行同样的语句实现数据同步的。
[0026]在数据库日志中,每条日志都有一条唯一标识,且是单调自增生成的。将日志的唯一标识作为数据标识,结合交換标识,能够快速定位増量日志,即已修改数据,实现高效的跨域数据增量交換。
[0027]2.3模型结构
[0028]本文提出的跨域数据交换模型,基于日志解析技木,通过查询交换标识来保证数据的同步更新,并设置了若干交換策略来细粒度地控制数据交换的内容。
[0029]传统的数据交换模型在进行数据交换时,往往是进行整库的交換。任何一个域的数据库更新,都可能影响到其他域用户的跨域访问(例如,对其他域用户权限的増加、修改或删除)。由于每次数据交换都要进行全部数据的交換,随着用户数量的増加,这种交換方法会使交换数据量爆炸性地増加,给数据交换系统带来沉重的负担,并且可能影响到用户跨域访问的安全性。本文在引入交换标识的基础上,提出ー种新的数据交换模式,可以有效地解决这个问题。
[0030]该模型采用“客户端/服务器”模式的架构,当域A主动向域B请求连接进行数据交换时,域A的信息系统充当客户端的角色,而域B向域A请求连接进行数据交换吋,域A的信息系统充当服务器的角色,每个域的信息系统都可调用客户端和服务器两套接ロ。数据传输、交换标识和交換策略的格式使用XML,数据加解密可以使用RSA、DES等算法,数据封装协议使用S0AP(Simple Object Access Protocol,简单对象访问协议),网络传输协议支持HTTPS、HTTP、FTP等,如图1所示。
[0031]该数据交換模型可分为三层:数据层、交换层和数据传输层,如图2所示。交换层包括交换标识操作模块和交換策略生成模块;数据层包括日志解析模块、SQL语句重构模块、XSD标准模板、XML文档导入导出模块和数据校验模块;数据传输层主要包括加解密模块、数据封装模块、信道建立模块和数据交换模块。
[0032]2.3.1 数据层
[0033]数据层包括日志解析模块、SQL重构模块、XSD标准模板、数据校验模块和XML文档导入导出模块,主要负责数据库日志文件的解析,对解析结果的SQL语句重构,以及XML文档从数据源的导入导出,对导出数据进行统一格式化和对导入数据进行数据校验。
[0034]日志解析模块主要用于分析日志文件,通过日志解析可以提取数据库增量日志的内容,获得对于数据库操作的DML语句,从而查明数据库的逻辑更改情況。
[0035]SQL重构模块根据源端数据库、目标端数据库的表信息和字段信息提供源端/目标端对应表和字段的映射,用于在分析日志时重构等价的SQL语句。SQL重构是为了解决异构数据库系统同步的问题,所谓异构数据库是指两个需要同步的数据库之间的表结构存在不同,异构数据库间的同步就是异构表之间的内容同步,异构表同步存在两种情況:ー种是两个需要同步的表本身存在少数字段名不一致;另外ー种就是两张表字段完全一致,只需要同步里面的几个字段。要解决异构表的同步,需要对源日志进行解析,并按照目标表结构重构目标端需要运行的SQL语句。
[0036]导出数据的统一格式化主要是根据数据模式文件(XSD)来进行导出。[0037]数据校验方法是利用数据模式文件(XSD)来验证传入XML文档数据的有效性,待转换的XML文档必须符合XSD的规范才能够进行转换。数据校验就是利用规则文件XSD对源XML的结构进行格式检验,校验其数据的有效性,使其满足规则文件内定义的各种数据类型、值域和相关数据规则,从而保证传入的XML数据的可用性。
[0038]2.3.2 交换层
[0039]交换层主要包括交换标识模块和交換策略模块。
[0040]交换标识模块主要用于存储和更新交換标识。交换标识的更新机制已在上文进行详细描述,此处不再赘述。
[0041]交换策略模块主要用于根据XML规范生成交换策略文档并进行存储,交换策略主要用于细粒度地控制数据交换的内容,以达到数据交换内容可控,所有的交換策略都由各个安全域管理员根据实际需求自行设置。制定策略后,在数据交换前由交換策略生成数据过滤器,如根据密级生成密级过滤器,根据数据节点生成节点过滤器等,増量数据经过这些过滤器的过滤后才可以进行加密等后续操作。
[0042]2.3.3数据传输层
[0043]数据传输层主要包括加解密模块、数据封装模块、信道建立模块和数据交换模块,主要功能是对导出的XML文档进行加解密、数据的SOAP封装、跨域数据的安全可靠传输和调用接ロ进行数据交換。由于该模型是增量数据的交換,所以毎次的数据交换量较传统方式小很多,鉴于此可以用更加复杂的算法或增加密钥的长度来进行加密,以保证数据在传输过程中的安全性,就算被攻击者截获,也无法再短时间内破解数据内容。
[0044]当两个安全域的涉密信息系统进行数据交换前,要进行连接认证,采用基于数字证书的双向挑战/响应认证机制,通过这种方式建立好传输信道后,就可进行数据的安全可靠传输,具体如图3所示。
[0045]该模型适用于多个安全域的跨域数据交换,此处以两个域的交換过程为例,提出了一种增量数据的具体应用方案设计。假设请求域为域A,响应域为域B,数据交换包含两种流程:第一种为数据下载更新流程,第二种为数据上传流程,具体流程如下所示。
[0046]数据下载更新流程:首先域A向域B发出下载请求,并发送本域的相关信息,域B接收到请求后,根据收到的域A的相关信息响应请求,并将域B的当前数据标识返回给域A,域A接收到域B的当前数据标识后,与本域的下载数据标识相比较。若不等,则说明有新的数据要下载更新,则域A发出下载数据的请求并发送数据下载标识给域B。域B根据请求定位増量数据,分析并按照目标表结构重构目标端需要运行的SQL语句,生成増量下载数据,返回给域A,域A下载增量数据后,更新下载数据标识,下载过程完成。
[0047]数据上传流程向域B发出上传请求,并发送本域的相关信息,域B响应,并将域B的上传数据标识返回给域A,域A比较本域的当前数据标识和域B的上传数据标识。若不等,则说明有新的数据要上传,域A定位増量数据,分析并按照目标表结构重构目标端需要运行的SQL语句,生成上传数据并上传,域B接收上传数据,成功后更新域B的上传数据标识,上传过程完成。
【专利附图】
【附图说明】
[0048]图1跨域数据交换模型图[0049]图2跨域数据交换层次模型图
[0050]图3基于数字证书的双向挑战/响应认证机制
[0051]图4増量数据下载更新应用流程
[0052]图5増量数据上传应用流程
[0053]图6在线数据交換流程图
[0054]图7増量数据交换过程流程图
【具体实施方式】
[0055](I)数据交换流程说明
[0056]第一歩:子授权服务器向父服务器发出数据更新请求,服务器根据请求生成交換数据文件。
[0057]第二步:子服务器轮询父服务器文件生成状态,如果没有完成则继续等待父服务器生成数据交换文件,如果完成则发出下载请求。
[0058]第三步:子服务器轮询下载状态,如查下载未完成则继续待下载完成,如果下载完成则向数据库更新数据。
[0059]第四歩:数据更新成功则更新下载数据标识,如果未更新成功不更新下载标识。
[0060]第五步:子服务器生成向父服务器更新数据文件,并上传至父服务器。
[0061]第六歩:轮询上传状态,上传未完成则继续等待,上传成功则更新父服务数据。
[0062]第七步:数据更新成功则更新上传数据标识,如果未更新成功不更新上传标识。
[0063]数据交换流程如图6所示。
[0064](2)増量数据交换过程说明
[0065]第一歩:子服务器B向父服务器A请求更新数据。
[0066]第二步:父服务器A比较自身当前数据标识(50)和父服务器对子服务器的下载数据标识(30)判断是否有更新数据。
[0067]第三步:父服务器A当前数据标识为50,而对子服务器的下载数据标识为30 (子服务器B上次请求更新数据时,父服务器数据到30),说明当前父服务器A数据31到数据50部分,子服务器B没有请求过。
[0068]第四歩:父服务器A从31到50 (増量数据)中得到不属于子服务器B的数据。如果没有数据,则子服务器B数据请求结束,如果有数据则生成数据文件(假设有5条数据)井更新父服务器对子服务器的下载数据标识(50 )。
[0069]第五步:子服务器B更新父服务器A的数据文件到数据库(假设B服务器数据到70), B服务器更新5条数据后当前数据标识为75。
[0070]第六步:子服器B比较自身当前数据标识(75)和子服务器对父服务器的上传数据标识(35)判断是否有更新数据。
[0071]第七歩:子服务器B从36到75 (増量数据)中得到不属于父服务器A的数据。如果没有数据,则子服务器B不向父服务器A更新数据,如果有数据则生成数据文件(假设有15条数据)并更新上传数据标识(75)。
[0072]第八步:父服务器A更新子服务器B的数据文件到数据库,A服务器更新15条数据后当前数据标识为65,完成一次数据交换过程。[0073]増量数据交换过程具体流程如图7所示。
【权利要求】
1.基于交换标识的跨域増量数据交换模型,其特征在于: 该数据交換模型分为三层:数据层、交换层和数据传输层;交换层包括交换标识模块和交換策略生成模块;数据层包括日志解析模块、SQL语句重构模块、XSD标准模板、XML文档导入导出模块和数据校验模块;数据传输层包括加解密模块、数据封装模块、信道建立模块和数据交换模块; 交换标识用于存储跨域数据交换的交换状态,每个域与其他域都存在一组交换标识,由交换标识模块来统ー进行存储和更新,包含三部分内容:分别是上传数据标识、下载数据标识、当前数据标识; 当两个域进行数据交换时,称主动发起请求连接的域为请求域,称被动响应连接请求的域为响应域;下载数据标识保存了请求域从响应域下载的交换数据的末尾数据标识;上传数据标识保存了请求域向响应域上传的交换数据的末尾数据标识;当前数据标识为本域最后一条数据的数据标识;下载数据标识和上传数据标识在域进行数据交换成功后进行更新,本域有任何数据更新吋,当前数据标识都要更新,其始終指向本域最后一条数据; 所有的数据在删除、或修改时都并非进行物理上的删除或修改,而是进行逻辑上的删除或修改;即当修改或删除一条数据时,要在末尾数据后新增一条数据,所有的数据标识递增排列; 如果增加一条数据时的话就是直接增加一条数据,并同时增加交换标识的数值; 数据层中的日志解析模块解析日志中的SQL语句,获得对数据库操作的DML语句,包括Insert, Update、Delete操作,查明数据库的逻辑更改情况;进而让目标数据库执行同样的语句实现数据同步的; SQL重构模块根据源端数据 库、目标端数据库的表信息和字段信息提供源端/目标端对应表和字段的映射,用于在分析日志时重构等价的SQL语句; XSD标准模板用于导出数据的统一格式化;数据校验模块利用数据模式文件,即XSD标准模板来验证传入XML文档数据的有效性,待转换的XML文档必须符合XSD的规范才能够进行转换; 交換策略模块用于根据XML规范生成交換策略文档并进行存储,在数据交换前由交換策略模块生成数据过滤器,増量数据经过这些过滤器的过滤后才可以进行后续操作; 数据传输层包括加解密模块、数据封装模块、信道建立模块和数据交换模块,用于对导出的XML文档进行加解密、数据的SOAP封装、跨域数据的安全可靠传输和调用接ロ进行数据交換。
2.应用权利要求1所述模型进行基于交换标识的跨域増量数据交换方法, 其特征在于: 该模型采用“客户端/服务器”模式的架构,当域A主动向域B请求连接进行数据交换时,域A的信息系统充当客户端的角色,而域B向域A请求连接进行数据交换吋,域A的信息系统充当服务器的角色,每个域的信息系统都可调用客户端和服务器两套接ロ ; 当两个域的进行交换过程吋,假设请求域为域A,响应域为域B,数据交换包含两种流程:第一种为数据下载更新流程,第二种为数据上传流程; 数据下载更新流程:首先域A向域B发出下载请求,并发送本域的相关信息,域B接收到请求后,根据收到的域A的相关信息响应请求,并将域B的当前数据标识返回给域A,域A接收到域B的当前数据标识后,与本域的下载数据标识相比较;若不等,则说明有新的数据要下载更新,则域A发出下载数据的请求并发送数据下载标识给域B ;域B根据请求定位增量数据,分析并按照目标表结构重构目标端需要运行的SQL语句,生成増量下载数据,返回给域A,域A下载增量数据后,更新下载数据标识,下载过程完成; 数据上传流程:域A向域B发出上传请求,并发送本域的相关信息,域B响应,并将域B的上传数据标识返回给域A,域A比较本域的当前数据标识和域B的上传数据标识;若不等,则说明有新的数据要上传,域A定位増量数据,分析并按照目标表结构重构目标端需要运行的SQL语句,生成上传数 据并上传,域B接收上传数据,成功后更新域B的上传数据标识,上传过程完成。
【文档编号】H04L12/70GK103595727SQ201310598577
【公开日】2014年2月19日 申请日期:2013年11月22日 优先权日:2013年11月22日
【发明者】曾淑娟, 孟宪哲, 陈志浩, 王晓程, 王斌, 毛俐旻 申请人:中国航天科工集团第二研究院七〇六所