远程xml数据更新方法以及系统的制作方法

文档序号:7962874阅读:79来源:国知局
专利名称:远程xml数据更新方法以及系统的制作方法
技术领域
本发明涉及面向Internet网络的XML数据库系统中,远端的数据访问请求方按照数据库内容的变化对数据查询结果进行数据更新的方法,以及用于实现这种方法的数据更新系统。
背景技术
可扩展标识语言(XML语言)已经成为事实上的网络数据交换标准,XML数据库广泛地用于实现Internet网络中的数据共享。一个面向Internet网络的XML数据库系统由客户机、数据服务器和XML数据库组成。数据访问请求方从远端的客户机通过发送数据访问请求,通过Internet网络访问数据服务器,而数据服务器负责响应数据访问请求,按照数据访问请求对后台XML数据库进行数据查询,并将XML数据格式的数据查询结果作为数据访问请求的响应,通过Internet网络返回给数据访问请求方。
在这种面向Internet网络的XML数据库系统中,数据源提供者经常根据管理和应用的需求修改或补充后台XML数据库中的数据。当后台XML数据库内容发生变化时,为了保证数据查询结果和后台数据的一致性,数据访问请求方有必要再次发出访问请求,获取更新后的查询数据。如果后台数据库的内容频繁变化,数据访问请求的频度较高的时候,大量数据查询操作结果将反复通过Internet网络传送到远端的客户机。数据传输量的增加和数据传输的反复发生将受到网络带宽的限制,导致XML数据库系统数据处理速度和访问请求响应速度的下降。同时,数据访问频率的变化也将影响系统的整体性能,进而影响基于XML数据库的Internet网络应用系统的稳定性。
面对上述问题,现有的数据更新方法中通常有选择地将部分查询操作结果保存在客户机,按照特定的策略根据后台数据变化识别出其中需要更新的部分内容,通过部分内容的更新来代替整个数据查询结果的更新,从而减少在数据更新中的网络数据传输量。但是,这种方法的实现需要使用专用的数据更新协议,为此要求系统中配置专用的客户机,不符合目前计算机网络技术中主流的面向服务体系结构,不利于Internet网络环境中数据共享的实现。同时,鉴于XML语言事实上已经成为Internet网络的数据交换标准,计算机网络应用中客户的数据访问请求普遍将采用了标准的XML查询语言(XQuery语言),对于这种数据访问请求获得的数据查询结果,目前尚缺少有效的方法来识别其中需要更新的部分内容。

发明内容
本发明的目的是提供一种XML数据库系统中的远程数据更新方法,在数据库内容发生变化时,根据数据请求方的要求,尽快更新前次查询到的数据,保持后台数据库内容和前端数据查询结果的一致性,同时通过减少数据更新中网络数据传输量来提高系统的响应速度以及网络应用的稳定性。
本发明提供数据更新方法,包括下列步骤(1)数据请求方从客户机发出首次数据访问请求时,数据服务器访问后台数据库,获得并返回数据查询结果,并保存在客户机。
(2)数据服务器对收到的数据访问请求进行分解,得到15种数据处理指令文档节点获取指令、子节点获取指令、后代节点获取指令、节点名获取指令、节点构造指令、条件查询指令、序列遍历指令、序列构造指令、序列加工指令、文档序比较指令、算术运算指令、关系运算指令、逻辑运算指令、类型开关指令和常量构造指令,并且按照数据访问请求给定的处理顺序,构造出数据处理指令序列。
(3)数据服务器将所收到的每个数据访问请求的发送者信息、请求内容、请求时间及其数据处理指令序列保存在网络存储装置中。
(4)同时,数据服务器监听后台XML数据库的数据变化情况,将数据变化信息分为节点删除、节点属性更新、节点更新、子节点插入和子节点添加5类,将数据变化的变更位置、变更种类、变更内容和变更时间以数据变化日志的形式保存在网络存储装置中。
(5)数据服务器从同一发送者再次收到相同的数据访问请求时,则从网络存储装置中找出该数据访问请求的数据处理指令序列以及数据变化日志,根据两次访问请求之间发生的所有后台数据变化信息,分析数据处理指令序列,按照数据处理指令序列中顺序出现的文档节点获取指令、子节点获取指令、后代节点获取指令、条件查询指令和序列遍历指令所表示的访问路径,访问后台数据库找出数据更新的位置信息并构造数据元素定位指令。
(6)根据步骤(5)对数据处理指令序列进行的分析,以及数据更新的位置信息,从数据处理指令序列中取出用于描述数据加工的节点构造指令、序列遍历指令、节点名获取指令、序列构造指令、序列加工指令、文档序比较指令、算术运算指令、关系运算指令、逻辑运算指令、类型开关指令和常量构造指令。
(7)按照步骤(5)得到的数据变化信息中的数据变更种类分别按照下列步骤(8)到步骤(12)来生成数据更新指令序列。
(8)对于节点删除的情况,用步骤(5)得到的数据元素定位指令、数据序列元素删除指令、以及步骤(6)得到的数据处理指令构造出数据更新指令序列。
9)对于节点属性更新的情况,用步骤(5)得到的数据元素定位指令、基于数据变化信息生成的数据属性设置指令、以及步骤(6)得到的数据处理指令构造出数据更新指令序列。
(10)对于节点更新的情况,用步骤(5)得到的数据元素定位指令、基于数据变化信息构造的节点构造指令和序列元素更新指令,以及步骤(6)得到的数据处理指令构造出数据更新指令序列。
(11)对于子节点插入的情况,用步骤(5)得到的数据元素定位指令、基于数据变化信息构造的节点构造指令和序列元素插入指令,以及步骤(6)得到的数据处理指令构造出数据更新指令序列。
(12)对于子节点添加的情况,用步骤(5)得到的数据元素定位指令、基于数据变化信息构造的节点构造指令和序列元素扩展指令,以及步骤(6)得到的数据处理指令构造出数据更新指令序列。
(13)数据服务器将按照步骤(8)到步骤(12)构造的数据更新指令序列,按照XQuery语言的格式,返回给数据请求方。
(14)数据请求方接收步骤(13)产生的XQuery语言表示的数据更新指令序列,通过调用客户机上安装的标准XQuery处理器来执行该指令序列,更新上次获得的数据查询结果,获得更新后的、与后台数据库保持一致的XML数据。
本发明提供数据更新系统,用于支持上述数据更新方法在Internet环境中的实现。数据更新系统的工作流程如图1所示,包括有一台数据服务器、至少一台客户机、一台网络存储装置和至少一个XML数据库。数据服务器是一台提供Internet网络服务的计算机,通过内部网络连接后台的XML数据库,用于根据客户机发送的数据访问请求,对XML数据库进行数据查询和数据变化监听,组织并返回数据查询结果和数据更新指令序列。网络存储装置通过内部网络连接数据服务器,负责数据访问请求及其数据处理指令、以及数据变化日志的保存。XML数据库通过内部网络连接数据服务器,用于管理XML数据,并提供数据变化信息。
数据服务器通过Internet网络向客户机提供XML数据。客户机具有XQuery语言处理器,用于发送数据访问请求,获得数据查询结果与数据更新指令序列,进行数据查询结果的更新;任何连接网络的计算机只要安装了标准的XQuery处理器,就可以按照下列步骤访问数据服务器。
(1)发出数据访问请求,从数据服务器获得数据查询结果,并给予保存。
(2)在应用中需要数据更新时,再次发送同一数据访问请求时,从数据服务器获得XQuery语言表示的数据更新指令。
(3)在XQuery处理器上,执行得到的数据更新指令,对前次获得的数据查询结果进行更新。
数据服务器的软件系统由数据访问请求模块、数据更新指令管理模块和数据库监听模块组成。
数据访问请求模块接收数据访问请求,对后台XML数据库进行查询,获得查询数据结果,返回给客户机;并且,将数据访问请求分解成数据处理指令序列保存到网络存储装置。当数据服务器再次收到来自客户机的同一数据访问请求时,由数据更新指令管理模块负责处理。
数据更新指令管理模块从网络存储装置获得本次数据访问请求对应的数据处理指令序列以及数据变化日志,分析数据处理指令序列,向XML数据库发出数据定位查询请求,并根据得到的数据定位信息确认数据更新位置,进而根据两次访问请求之间发生的数据库变化信息,组装出采用XML查询语言表示的数据更新指令序列,直接返回给客户机。
数据库监听模块负责监听XML数据库内容的变化情况,将数据变化信息的记录以数据变化日志的形式保存到网络存储装置。
按照上述方法,数据请求方从客户机再次发出同一数据访问请求时,得到一个采用XML查询语言表示的数据更新指令序列,而不是完整的数据查询结果。数据更新指令序列的执行代替了重复的数据查询,数据更新指令序列的传递代替了大量数据查询结果的数据传输。由于数据更新指令的数据量和数据变化的大小成正比,而应用系统中后台数据内容的变化量在绝大多数的情况下都大大小于数据查询结果的数据量,这种方法明显地减少了数据更新中的数据传输量,有效地提高了XML数据库系统的响应速度。
同时,这种数据更新方法的实现不需要使用专用的客户机,Internet网络中的任何应用系统中只要配备了标准的XQuery处理器就可以通过本发明的数据更新系统获得远端XML数据库提供的数据,并得到及时的数据更新。这种数据服务方式完全符合计算机网络应用系统中主流的面向服务体系结构,并且通过支持标准的数据共享和数据交换语言XML以及标准的XML查询语言XQuery语言,保证了这种方法能够满足主流Internet网络应用开发及其发展的需求。


图1为本发明的数据更新系统的工作流程示意图;图2为本发明的一个实施案例的系统结构图;图中,11、客户机,12、数据服务器,13、数据访问请求管理模块,14、数据更新指令管理模块,15、数据库监听模块,16、网络存储装置,17、XML数据库,21、XQuery处理器,22、数据浏览器。
具体实施例方式
本发明的一个实施案例的系统结构如图2所示。
图中给出了处于网络远端的三个客户机11,配备了数据浏览器22和XQuery处理器21、通过Internet网络将数据浏览器产生的数据访问请求发送给数据服务器12,其中数据访问请求采用XQuery语言表示。
数据服务器12是一台具有Internet网络连接的计算机,同时通过内部网络连接网络存储装置16和XML数据库17。数据服务器12的软件系统采用Web服务的形式,向Internet网络客户提供数据查询操作、数据更新操作和数据变化通知操作等3个Web服务操作。
数据服务器12在接收到来自客户机11的数据查询操作的访问请求时,按照下列步骤处理(1)将XQuery语言表示的数据访问请求分解为数据处理指令序列。
(2)对于XQuery语言表示中的FLWOR表达式,分解为序列遍历指令和条件查询指令。
(3)对于XQuery语言表示中的XPath表达式,分解为文档节点获取指令、子节点获取指令、后代节点获取指令、序列遍历指令和条件查询指令。
(4)对于XQuery语言表示中的where表达式和if表达式,分解为条件查询指令。
(5)对于XQuery语言表示中的逻辑运算表达式,分解为逻辑运算指令。
(6)对于XQuery语言表示中的关系运算表达式,分解为关系运算指令、文档序比较指令和类型开关指令。
(7)对于XQuery语言表示中的算术运算表达式,分解为算术运算指令。
(8)对于XQuery语言表示中的序列处理函数,分解为节点构造指令、序列构造指令、序列加工指令和常量构造指令。
(9)按照步骤(2)到步骤(8)生成的数据处理指令序列,访问XML后台数据库,获得数据查询结果,返回给客户机11。
(10)将所收到的每个数据访问请求的发送者信息、请求内容、请求时间及其数据处理指令序列保存在网络存储装置16中。
数据服务器12在接收到来自后台XML数据库17的数据变化通知操作的访问请求时,获得数据变化信息,将数据变化信息分为节点删除、节点属性更新、节点更新、子节点插入和子节点添加5类,将数据变化的变更位置、变更种类、变更内容和变更时间以数据变化日志的形式保存在网络存储装置16中。
数据服务器12在接收到来自客户机11的数据更新操作的访问请求时,按照下列步骤处理(1)从网络存储装置16中找出该数据访问请求的发送者信息、请求时间和数据处理指令序列以及数据变化日志,识别出同一个发送者的两次相同数据访问请求之间发生的所有后台数据变化信息,按照数据处理指令序列中顺序出现的、用于描述数据访问路径的文档节点获取指令、子节点获取指令、后代节点获取指令、条件查询指令和序列遍历指令,访问后台XML数据库17找出数据更新的位置信息并构造数据元素定位指令。
(2)根据步骤(1)对数据处理指令序列进行的分析,以及数据更新的位置信息,从数据处理指令序列中取出描述数据加工过程的节点构造指令、序列遍历指令、节点名获取指令、序列构造指令、序列加工指令、文档序比较指令、算术运算指令、关系运算指令、逻辑运算指令、类型开关指令和常量构造指令。
(3)按照步骤(1)得到的数据变化信息中的数据变更种类,分别按照下列步骤(4)到步骤(8)来生成数据更新指令序列。
(4)对于节点删除的情况,用步骤(1)得到的数据元素定位指令、数据序列元素删除指令、以及步骤(2)得到的数据处理指令构造出数据更新指令序列。
(5)对于节点属性更新的情况,用步骤(1)得到的数据元素定位指令、基于数据变化信息生成的数据属性设置指令、以及步骤(2)得到的数据处理指令构造出数据更新指令序列。
(6)对于节点更新的情况,用步骤(1)得到的数据元素定位指令、基于数据变化信息构造的节点构造指令和序列元素更新指令,以及步骤(2)得到的数据处理指令构造出数据更新指令序列。
(7)对于子节点插入的情况,用步骤(1)得到的数据元素定位指令、基于数据变化信息构造的节点构造指令和序列元素插入指令,以及步骤(2)得到的数据处理指令构造出数据更新指令序列。
(8)对于子节点添加的情况,用步骤(1)得到的数据元素定位指令、基于数据变化信息构造的节点构造指令和序列元素扩展指令,以及步骤(2)得到的数据处理指令构造出数据更新指令序列。
(9)数据服务器12将按照步骤(4)到步骤(8)构造的数据更新指令序列,按照XQuery语言的格式进行组装,作为Web服务的响应结果返回给客户机11。
客户机11配备一个数据浏览器22,作为Web服务的客户端,按照下列的步骤工作(1)发出数据访问请求,激活数据服务器的数据查询操作,获得返回的数据查询结果后,保存在本地存储器。
(2)在本地存储器已经保存了数据查询结果的情况下,再次发出同样的数据访问请求,激活数据服务器的数据更新操作,获得返回的数据更新指令序列;(3)调用本地配置的XQuery处理器21,执行得到的数据更新指令序列,更新本地存储器中的数据查询结果。
网络存储装置16是一台联机的网络存储设备,用于保存数据处理指令序列和数据库变化日志,为数据服务器软件系统提供持久性的数据存储。
XML数据库17是一台配置了XML数据管理软件的计算机,通过内部网络连接数据服务器,根据来自数据服务器12的数据访问请求进行数据查询,返回数据查询结果;同时,当数据库内容被改变时,激活数据服务器的数据变化通知操作,提交数据内容的变化信息。
数据服务器的Web服务软件系统由数据访问请求管理模块13、数据更新指令管理模块14和数据库监听模块15组成。
数据访问请求管理模块13负责实现Web服务的数据查询操作,提供下列4个功能(1)对XQuery语言表示的数据访问请求进行语法分析和语义分析,分解为数据处理指令序列;(2)按照数据处理指令序列完成对后台XML数据库17的查询;(3)获得XML数据库17的查询结果,返回给客户机11;(4)将请求的发送者信息、发送时间和数据处理指令序列保存到网络存储装置16。
数据库监听模块15负责实现Web服务的数据变化通知操作,将数据变化的变更种类、变更时间和变更内容保存在网络存储装置中,形成数据变化日志。
数据更新指令管理模块14负责实现Web服务的数据更新操作,提供下列3个功能(1)从网络存储装置16保存的数据库变化日志中获得数据库变化记录,按照数据库变化信息的种类,生成数据更新指令;(2)获得这种数据访问请求对应的数据处理指令序列,根据其中顺序出现的文档节点获取指令、子节点获取指令、后代节点获取指令和条件查询指令向后台的XML数据库发出数据定位查询请求,并根据得到的位置信息构造数据要素定位指令;(3)分析数据处理指令序列中表示数据加工的节点构造指令、序列遍历指令、节点名获取指令、序列构造指令、序列加工指令、文档序比较指令、算术运算指令、关系运算指令、逻辑运算指令、类型开关指令和常量构造指令,结合前2步生成的数据更新指令和数据元素定位指令,组装出XQuery语言表示的数据更新指令序列,直接返回给客户机11。
按照本发明的数据更新方法,数据服务器能够产生标准的XQuery语言表示的数据更新指令序列,直接应用于远端客户机的数据更新,避免了重复进行跨网络的数据库查询,也避免了数据查询结果的反复传送,大大减少了网络数据传输量,从而提高了系统进行数据更新的效率,也提高了基于XML数据库系统的网络应用系统的稳定性。同时,数据服务器在数据更新过程中对后台XML数据库的访问仅限于数据定位信息的查询,使得XML数据库的工作负担也得以减轻,提高网络应用的稳定性。
以上所述仅为本发明的较佳实施例,并非用以限定本发明的实质技术内容的范围,本发明的实质技术内容广义地定义于权利要求书中,任何他人所完成的技术实体或方法,若是与权利要求书所定义者完全相同,或是为同等效的变更,均将被视为涵盖于本发明专利范围之中。
权利要求
1.远程XML数据更新方法,应用于XML数据库系统中,数据请求方通过客户机发送数据访问请求到数据服务器,通过数据服务器来获得远程XML数据库内的数据之后,根据XML数据库内容的变化来更新得到的数据,其特征在于包括下列步骤1)数据请求方从客户机发出首次数据访问请求时,数据服务器访问后台数据库,获得并返回数据查询结果,并保存在客户机;2)数据服务器对收到的数据访问请求进行分解,将数据访问请求分解成数据处理指令,并且按照数据访问请求给定的处理顺序,构造出数据处理指令序列;3)数据服务器将所收到的每个数据访问请求的发送者信息、请求内容、请求时间及其数据处理指令序列保存在网络存储装置中;4)同时,数据服务器监听后台XML数据库的数据变化情况,将数据变化信息分类,将数据变化的变更位置、变更种类、变更内容和变更时间以数据变化日志的形式保存在网络存储装置中;5)数据服务器从同一发送者再次收到相同的数据访问请求时,从网络存储装置中找出该数据访问请求的数据处理指令序列以及数据变化日志,根据两次访问请求之间发生的所有后台数据变化信息,分析数据处理指令序列,按照数据处理指令序列中表示的访问路径,通过访问后台XML数据库来确定数据更新的位置,构造数据元素定位指令;6)数据服务器按照数据变更种类、数据更新位置,以及数据处理指令序列中表示的数据加工要求,来生成数据更新指令序列,返回给数据请求方;7)数据请求方接收数据更新指令序列,按照数据更新指令序列来进行数据更新。
2.根据权利要求1所述的远程XML数据更新方法,其特征在于数据服务器将数据访问请求分解成以下15种数据处理指令文档节点获取指令、子节点获取指令、后代节点获取指令、节点名获取指令、节点构造指令、条件查询指令、序列遍历指令、序列构造指令、序列加工指令、文档序比较指令、算术运算指令、关系运算指令、逻辑运算指令、类型开关指令和常量构造指令。
3.根据权利要求1或2所述的远程XML数据更新方法,其特征在于数据服务器将数据变化信息分为5类节点删除、节点属性更新、节点更新、子节点插入和子节点添加。
4.根据权利要求3所述的远程XML数据更新方法,其特征在于根据数据处理指令序列中的文档节点获取指令、子节点获取指令、后代节点获取指令、条件查询指令和序列遍历指令来确定数据更新位置的访问路径。
5.根据权利要求4所述的远程XML数据更新方法,其特征在于根据数据变化的种类、内容,以及数据处理指令序列中表示数据加工要求的节点构造指令、序列遍历指令、节点名获取指令、序列构造指令、序列加工指令、文档序比较指令、算术运算指令、关系运算指令、逻辑运算指令、类型开关指令和常量构造指令来构造数据更新指令序列。
6.根据权利要求1或5所述的远程XML数据更新方法,其特征在于数据服务器采用XML查询语言,即XQuery语言表示数据更新指令序列,返回给数据请求方数据请求方接收XQuery语言表示的数据更新指令序列,通过调用客户机上安装的标准XQuery处理器来执行该指令序列,更新上次获得的数据查询结果,获得更新后的、与后台数据库保持一致的XML数据。
7.一种远程XML数据更新系统,其特征在于包括有一台数据服务器、至少一台客户机、一台网络存储装置和至少一个XML数据库;其中所述的数据服务器通过内部网络连接网络存储装置和XML数据库,通过Internet网络连接客户机,用于根据客户机发送的数据访问请求,对XML数据库进行数据查询和数据变化监听,组织并返回数据查询结果和数据更新指令序列;其中所述的客户机用于发送数据访问请求,获得数据查询结果与数据更新指令序列,进行数据查询结果的更新;其中所述的网络存储装置用于存储数据访问请求、数据处理指令序列和数据库变化日志;其中所述的XML数据库用于管理XML数据,并提供数据变化信息。
8.根据权利要求7所述的数据更新系统,其特征在于客户机具有XQuery语言处理器。
9.根据权利要求8所述的数据更新系统,其特征在于网络存储装置是一台联机的网络存储设备。
10.根据权利要求9所述的数据更新系统,其特征在于数据服务器具有数据访问请求管理模块,用于处理来自客户机的数据访问请求;具有数据更新指令管理模块,用于构造数据更新指令序列;具有数据库监听模块,用于构造数据库变化日志。
全文摘要
本发明提供一种远程XML数据更新方法以及系统,所述方法包括(1)数据服务器将来自远端客户机的数据访问请求分解为数据处理指令序列,完成XML数据查询;(2)在收到相同数据访问请求时,根据两次请求之间发生的后台数据变化和数据处理指令序列,获取数据更新的定位信息,构造并返回XQuery语言表示的数据更新指令序列;(3)客户机通过执行数据更新指令序列完成数据更新;所述系统包括客户机、数据服务器、XML数据库和用于保存数据处理序列和数据库变化日志的网络存储装置;本发明通过减少网络数据传输量来提高数据更新的速度以及应用的稳定性,客户机仅需要配备标准的XQuery处理器。
文档编号H04L29/00GK1889557SQ200610089649
公开日2007年1月3日 申请日期2006年7月10日 优先权日2006年7月10日
发明者廖湖声, 金雪云, 樊昱, 苏航, 杜永萍 申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1