在数据被请求时验证数据正确性的系统及其方法

文档序号:7986482阅读:193来源:国知局
在数据被请求时验证数据正确性的系统及其方法
【专利摘要】一种在数据被请求时验证数据正确性的系统及其方法,其通过由目标文档中读出目标段落后,验证各个目标段落是否正确,当目标段落正确时,才传送目标段落至客户端的技术手段,可以提供已验证正确性的数据给使用者,并达成仅对验证目标文档的部分内容,减少验证时间的技术效果。
【专利说明】在数据被请求时验证数据正确性的系统及其方法
【技术领域】
[0001]本发明涉及一种数据验证系统及其方法,特别涉及一种在数据被请求时验证数据正确性的系统及其方法。
【背景技术】
[0002]在使用者使用网络硬盘服务存取数据时,使用者最重视的部分便是所读取的数据内容是否与当初写入的数据内容相同。一般而言,导致使用者所写入的数据与所读出的数据不一致的原因主要是储存数据的存储介质损坏。
[0003]目前,在使用者需要确认数据是否正确时,通常会使用CRC、MD5、SHA-1等验证演算法对欲确认的数据进行计算,并比对计算后产生的验证计算值以及预期的验证预设值,由此依据比对结果判断欲确认的数据是否正确。
[0004]但使用者自行使用验证演算法判断数据是否正确往往需要另外下载或安装提供验证演算法的程序,这对使用者而言并不方便。且若使用者并不需要取得全部的数据,而是只需要取得部分的数据时,使用者还是得要使用验证演算法对全部的数据进行计算,才能够依据计算产生的验证计算值判断数据是否正确,当数据非常大时,会非常浪费时间。
[0005]综上所述,可知现有技术中长期以来一直存在使用者自行验证数据正确性可能浪费时间的问题,因此有必要提出改进的技术手段,来解决这一问题。

【发明内容】

[0006]有鉴于现有技术存在使用者自行验证数据正确性可能浪费时间的问题,本发明遂揭露一种在数据被请求时验证数据正确性的系统及其方法,其中:
[0007]本发明所揭露的在数据被请求时验证数据正确性的系统,应用于服务器,服务器具有存储介质,且服务器提供客户端连接,至少包含:传输模块,用以接收客户端为读取目标文档中目标段落所传送的读取请求;数据存取模块,用以至存储介质读取目标段落的数据内容;验证值计算模块,用以依据数据内容计算与目标段落对应的验证计算值;验证值比对模块,用以至存储介质读取与目标段落对应的验证预设值,并比对与目标段落对应的验证预设值与验证计算值,当与目标段落对应的验证预设值与验证计算值相同时,传输模块传送目标段落至该客户端。
[0008]本发明所揭露的在数据被请求时验证数据正确性的方法,应用于服务器,服务器提供客户端连接,其步骤至少包括:接收客户端为读取目标文档中目标段落所传送的读取请求;读取与目标段落对应的验证预设值;读取目标段落的数据内容;依据数据内容计算与目标段落对应的验证计算值;比对与目标段落对应的验证预设值与验证计算值;当与目标段落对应的验证预设值与验证计算值相同时,传送目标段落至客户端。
[0009]本发明所揭露的系统与方法如上,与现有技术之间的差异在于本发明通过由目标文档中读出目标段落后,验证各个目标段落是否正确,当目标段落正确时,才传送目标段落至客户端,由此解决现有技术所存在的问题,并可以达成仅验证目标文档的部分内容,减少验证时间的技术效果。
【专利附图】

【附图说明】
[0010]图1为本发明所述的在数据被请求时验证数据正确性的系统架构图。
[0011]图2为本发明实施例所述的目标段落与验证预设值的对应示意图。
[0012]图3A为本发明所述的在数据被请求时验证数据正确性的方法流程图。
[0013]图3B为本发明所述的在数据上传时建立验证预设值的方法流程图。
[0014]主要部件附图标记:
[0015]101 存储介质
[0016]110 传输模块
[0017]120 请求处理模块
[0018]130 数据存取模块
[0019]150 验证值计算模块
[0020]160 验证值比对模块
[0021]220 阵列
[0022]400 客户端
[0023]步骤310接收客户端为读取目标文档中的目标段落所传送的读取请求
[0024]步骤312接收客户端所传送的请求
[0025]步骤316判断所接收的请求是否为写入请求
[0026]步骤320储存写入请求所包含的目标数据至目标文档中
[0027]步骤332依据目标文档中被更新的目标段落的内容计算验证计算值
[0028]步骤336储存与被更新的目标段落对应的验证计算值
[0029]步骤350依据读取请求判断需被读取的目标段落
[0030]步骤360读取与目标段落对应的验证预设值
[0031]步骤370a读取目标段落的数据内容
[0032]步骤370b读取目标段落的备份内容
[0033]步骤380依据数据内容计算与目标段落对应的验证计算值
[0034]步骤392比对与目标段落对应的验证预设值与验证计算值是否相同
[0035]步骤396传送目标段落至客户端
【具体实施方式】
[0036]以下将结合附图及实施例来详细说明本发明的特征与实施方式,内容足以使任何本领域技术人员能够轻易地充分理解本发明解决技术问题所应用的技术手段并据以实施,由此实现本发明可达成的技术效果。
[0037]本发明可以在客户端请求服务器所储存的目标文档时,由服务器读出被请求的目标文档的各个目标段落,并验证各个目标段落的数据内容的正确性。本发明所述的目标段落为储存目标文档的存储介质中一定大小的储存区块,一般而言,目标段落的大小为预定值,例如,目标段落可以是储存目标文档的存储介质的扇区(Sector)大小或是其他的任意大小,也可以是由使用者自行设定的任意大小,本发明并没有特别的限制。[0038]以下先以图1本发明所述的在数据被请求时验证数据正确性的系统架构图来说明本发明的系统运作。如图1所示,本发明的系统执行在服务器(图未示)上,含有传输模块110、数据存取模块130、验证值计算模块150、验证值比对模块160。
[0039]传输模块110负责接收客户端400所传送的请求。当客户端400欲读取目标文档中的一个或多个目标段落时,客户端400会传送读取请求至服务器,这样,传输模块110便会接收到客户端400所传送的读取请求,而当客户端400希望将目标数据写入目标文档中时,客户端400会传送包含欲储存的目标数据的写入请求至服务器,传输模块110同样会接收到客户端400所传送的写入请求。其中,客户端400欲读取或欲写入数据的目标文档被储存在服务器具有的存储介质101中。
[0040]当客户端400欲读取目标文档中的目标段落时,也就是传输模块110接收到客户端400所传送的读取请求后,传输模块110会在验证值比对模块160所比对的验证预设值与验证计算值相同时,将数据存取模块130所读出的目标段落传送到客户端400。其中,验证值比对模块160将在稍后说明。
[0041]数据存取模块130负责至服务器具有的存储介质101中,读取与传输模块110所接收到的读取请求对应的目标段落,也就是读取客户端400欲读取的目标文档中的数据内容。
[0042]特别值得一提的是,与读取请求对应的目标段落可以是完整的目标文档,也可以是目标文档的部分内容,本发明并没有特别的限制。在部分的实施例中,若与读取请求对应的目标段落是目标文档的部分内容,则数据存取模块130可以依据读取请求判断需被读取的目标段落。例如,读取请求包含了客户端400欲读取的目标文档中的起始字节(Bytes )与读取长度,数据存取模块130可以依据起始字节与读取长度判断包含需要被读取的内容的目标段落,又如,当目标文档包含多个文档时,读取请求可以包含目标文档中的其中一个或多个文档,数据存取模块130可以依据读取请求中的文档名称判断包含被请求的文档的目标段落。但数据存取模块130读取目标段落的方式并不以上述为限。
[0043]另外,若存储介质101不只储存一份目标文档,则数据存取模块130可以在验证值比对模块160判断出与被读取的目标段落相对应的验证预设值与验证计算值不同时,读取验证预设值与验证计算值不同的目标段落的备份内容。例如,存储介质101使用了 RAID-1等磁盘冗余阵列技术,则存储介质101所包含的不同硬盘中会各自储存一份目标文档,当验证值比对模块160判断出与被读取的目标段落相对应的验证预设值与验证计算值不同时,数据存取模块130会尝试由存储介质101的另一份目标文档中读出备份内容,此时,数据存取模块130所读出的备份内容可能与前次读出的数据内容不同。
[0044]在部分的实施例中,数据存取模块130也负责将传输模块110所接收到的写入请求所包含的目标数据写入存储介质101所储存的目标文档中。
[0045]验证值计算模块150负责计算与目标段落对应的验证计算值。验证值计算模块150可以使用循环冗余校验(Cyclic Redundancy Check, CRC)、信息-摘要演算法(Message-Digest Algorithm5, MD5)、安全散列演算法(Secure Hash Algorithm, SHA)等演算方式计算验证计算值,但验证值计算模块150所使用的演算方式并不以上述为限,凡可以验证数据是否正确的演算方式都可以在本发明中被使用。
[0046]由于数据存取模块130除了读出目标段落的数据内容之外,也可能读出目标段落的备份内容,因此,验证值计算模块150是依据被数据存取模块130读出的数据内容或备份内容,计算与目标段落对应的验证计算值。
[0047]在部分的实施例中,数据存取模块130会写入目标数据至目标文档中。当数据存取模块130欲写入目标数据的目标文档已经存在时,已存在的目标文档中全部或部分的目标段落可能会被更新。验证值计算模块150会在目标文档中的目标段落被数据存取模块130更新时,使用与计算验证计算值相同的演算方式计算被更新的目标段落的验证值,此时被计算出的验证值即为本发明所述的“验证预设值”。
[0048]另外,验证值计算模块150也负责在计算出验证预设值后,将所计算出的验证预设值储存至服务器具有的存储介质101中。其中,验证值计算模块150可以在目标文档被建立时计算新建立的目标文档中各目标段落的验证预设值,也可以在已建立的目标文档被更新时,计算被更新的目标文档中各目标段落的验证预设值。
[0049]一般而言,验证预设值在存储介质101中可以使用数据库储存,但在本发明中,验证预设值的储存方式并不以此为限,凡可以储存正确储存验证预设值的方式都可以在本发明中被使用。例如,验证预设值也可以使用如图2所示的阵列220储存,其中,阵列220中的第η个元素表示存储介质101中的第η个目标段落的验证预设值,例如,当存储介质101中的每一个目标段落的大小为256Κ字节(Bytes)时,储存位址0x7728000(T0x7731FFFF的目标段落为存储介质101中的第1932个目标段落,则该目标段落的验证预设值被储存在阵列220的第1932个元素中。
[0050]验证值比对模块160负责至服务器具有的存储介质101中读取与目标段落对应的验证预设值,并比对所读出的验证预设值与验证值计算模块150所计算出的与目标段落对应的验证计算值是否相同。
[0051 ] 一般而言,验证值比对模块160会依据目标段落的识别数据或目标段落在存储介质101中的顺序读取相对应的验证预设值,但本发明并不以此为限,凡可以让验证值比对模块160读取相对应的验证预设值的方式都可以在本发明中被使用。其中,目标段落的识别数据包含但不限于目标段落在存储介质101中的起始位置。
[0052]此外,由于传输模块110所接收的请求可能是读取请求,也可能是写入请求,因此,本发明还可以包含可附加的请求处理模块120,用以判断传输模块110所接收到的请求为读取请求或写入请求,由此使后续各模块可以顺利的运作。
[0053]接着以一个实施例来解说本发明的运作系统与方法,并请参照图3A本发明所述的在数据被请求时验证数据正确性的方法流程图。在本实施例中,本发明应用在文档服务器中,但本发明并不以此为限。
[0054]当客户端400欲读取目标文档时,客户端400可以通过网络传送读取目标文档的读取请求至执行本发明的文档服务器。在本实施例中,假设目标文档有413K字节。
[0055]在传输模块110接收到客户端400所传送的读取请求(步骤310)后,验证值比对模块160可以至存储介质101中读取与读取请求所对应的目标段落相对应的验证预设值(步骤360)。在本实施例中,若客户端400希望读取完整的目标文档,假设目标文档被储存在存储介质 101 的 0x7728000(T0x772DFFFF 以及 0x8828000(T0x8829FFFF 两区域中,若目标段落的大小为128K,则表示目标文档被储存在0x77280000至0x7729FFFF、0x772A000至0x772BFFFF、0x772C000 至 0x772DFFFF、以及 0x88280000 至 0x8829FFFF 等四个目标段落中,因此,验证值比对模块160会至存储介质101所储存的验证数据库中读取上述四个目标段落的验证预设值。
[0056]同样在传输模块110接收到客户端400所传送的读取请求(步骤310)后,数据存取模块130可以至存储介质101中读取与读取请求对应的目标段落的数据内容(步骤370a),验证值计算模块150可以依据数据存取模块130所读出的数据内容计算与目标段落对应的验证计算值(步骤380 )。在本实施例中,数据存取模块130会至0x77280000至0x7729FFFF、0x772A000 至 0x772BFFFF、0x772C000 至 0x772DFFFF、以及 0x88280000 至 0x8829FFFF 的位址中读出四个目标段落的数据内容,验证值计算模块150会分别计算数据存取模块130所读出的四个数据内容的验证计算值。
[0057]在实际上,验证值比对模块160读取与目标段落相对应的验证预设值(步骤360)以及数据存取模块130读取目标段落的数据内容(步骤370a),验证值计算模块150依据数据内容计算与目标段落对应的验证计算值(步骤380)的步骤并没有先后顺序的关系。
[0058]在验证值比对模块160读取与目标段落相对应的验证预设值(步骤360),且验证值计算模块150依据数据内容计算与目标段落对应的验证计算值(步骤380)后,验证值比对模块160可以比对与目标段落对应的验证预设值与验证计算值是否相同(步骤392),若被验证值比对模块160所比对的验证预设值与验证计算值相同,则传输模块110可以传送相对应的验证预设值与验证计算值相同的目标段落至客户端400 (步骤396)。
[0059]在本实施例中,验证值比对模块160会比对与位址为0x77280000至0x7729FFFF的目标段落对应的验证预设值以及验证计算值,若相同,则传输模块110便可以将位址为0x77280000至0x7729FFFF的目标段落的数据内容传送到客户端400。之后,验证值比对模块160会继续比对与位址为0x772A000至0x772BFFFF的目标段落对应的验证预设值以及验证计算值,同样也会比对分别与位址为0x772C000至0x772DFFFF以及0x88280000至0x8829FFFF的目标段落对应的验证预设值与验证计算值,并在比对结果为验证预设值与验证计算值相同时,由传输模块110位址为0x772A000至0x772BFFFF、0x772C000至0x772DFFFF、以及0x88280000至0x8829FFFF的目标段落的数据内容传送到客户端400。
[0060]当验证值比对模块160比对出验证预设值与验证计算值不同时,数据存取模块130可以尝试在存储介质101寻找相对应的验证预设值与验证计算值不同的目标段落是否存在备份内容,若存在备份内容,则数据存取模块130可以读出该目标段落的备份内容(步骤370b),验证值计算模块150可以依据所读出的备份内容重新计算与目标段落对应的验证计算值(步骤380),验证值比对模块160可以再次比对至存储介质101所读取的验证预设值以及验证值计算模块150重新计算出的验证计算值(步骤392),直到目标段落所对应的验证预设值与验证计算值相同或数据存取模块130无法读出其他备份内容为止,若目标段落所对应的验证预设值与验证计算值相同,则传输模块110可以将数据存取模块130所读出的目标段落传送至客户端400 (步骤396),而若数据存取模块130无法读出其他备份内容,则传输模块可以传送表示数据错误的信息至客户端400。
[0061]这样,通过本发明,可以在客户端400下载数据前,由服务器验证客户端400欲读取的数据的正确性。
[0062]另外,客户端400也可以传送写入目标数据至目标文档中的写入请求至文档服务器。[0063]如图3B的流程所示,在传输模块110接收到客户端400所传送的请求(步骤312)后,请求处理模块120可以判断传输模块110所接收的请求是否为写入请求(步骤316),若否,表示传输模块110所接收到的请求为读取请求,验证值比对模块160将读取与目标段落相对应的验证预设值(步骤360),且验证值计算模块150将依据数据内容计算与目标段落对应的验证计算值(步骤380),使得本发明的各模块将如上述过程继续运作。
[0064]而若传输模块110所接收的请求为写入请求,则数据存取模块130可以将写入请求所包含的目标数据储存到目标文档中(步骤320),验证值计算模块150可以在依据目标文档中被数据存取模块130更新的目标段落的数据内容计算验证计算值(步骤332),并将所计算出的与被更新的目标段落对应的验证计算值储存到存储介质101中(步骤336),使得后续客户端400在读取目标文档时,可以验证目标文档中各个目标段落的数据内容是否正确。
[0065]在上述的实施例中,若客户端400所传送的读取请求中包含欲读取的起始位址以及读取长度,假设为起始位址为0x11000,读取长度为69K,则表示客户端400欲读取的数据内容包含在0x77280000至0x7729FFFF以及0x772A000至0x772BFFFF两个目标段落中,因此,验证值比对模块160会至存储介质101所储存的验证数据库中读取上述两个目标段落的验证预设值,同时,数据存取模块130可以至存储介质101中读取与读取请求对应的目标段落的数据内容(步骤370a),也就是读取0x77280000至0x7729FFFF以及0x772A000至0x772BFFFF两个目标段落中的数据内容。
[0066]在验证值计算模块150依据数据存取模块130所读出的数据内容计算与目标段落对应的验证计算值(步骤380)后,验证值比对模块160可以比对与目标段落对应的验证预设值与验证计算值是否相同(步骤392),若被验证值比对模块160所比对的验证预设值与验证计算值相同,则传输模块110可以传送相对应的验证预设值与验证计算值相同的目标段落至客户端400 (步骤396)。
[0067]综上所述,可知本发明与现有技术之间的差异在于具有由目标文档中读出目标段落后,验证各个目标段落是否正确,当目标段落正确时,才传送目标段落至客户端的技术手段,通过这一技术手段可以解决现有技术所存在使用者自行验证数据正确性可能浪费时间的问题,进而达成仅对验证目标文档的部分内容,减少验证时间的技术效果。
[0068]再者,本发明的在数据被请求时验证数据正确性的方法,可实现于硬件、软件或硬件与软件的组合中,亦可在电脑系统中以集中方式实现或以不同元件散布于若干互连的电脑系统的分散方式实现。
[0069]虽然本发明所揭露的实施方式如上,然而所述的内容并非用以直接限定本发明的专利保护范围。任何本发明所属【技术领域】人员,在不脱离本发明所揭露的精神和范围的前提下,对本发明的实施的形式上及细节上作一些更动润饰,均属于本发明的专利保护范围。本发明的专利保护范围,仍须以权利要求书所限定的内容为准。
【权利要求】
1.一种在数据被请求时验证数据正确性的方法,其特征在于,应用于服务器,该服务器提供至少一个客户端连接,该方法至少包含下列步骤: 接收该客户端为读取目标文档中至少一个目标段落所传送的读取请求; 读取与该目标段落对应的验证预设值; 读取该目标段落的数据内容; 依据该数据内容计算与该目标段落对应的验证计算值; 比对与该目标段落对应的该验证预设值与该验证计算值;及 当与该目标段落对应的验证预设值与验证计算值相同时,传送该目标段落至该客户端。
2.如权利要求1所述的在数据被请求时验证数据正确性的方法,其特征在于,该方法还包含当与该目标段落对应的验证预设值与验证计算值不同时,读取该目标段落的备份内容,由此依据该备份内容重新计算与该目标段落对应的验证计算值,并再次比对与该目标段落对应的验证预设值与验证计算值的步骤。
3.如权利要求1所述的在数据被请求时验证数据正确性的方法,其特征在于,该方法在接收该客户端为读取该目标文档中所述各目标段落所传送的该读取请求的步骤后,还包含依据该读取请求判断需被读取的所述各目标段落的步骤。
4.如权利要求1所述的在数据被请求时验证数据正确性的方法,其特征在于,该方法在接收该客户端为读取该目标文档中所述各目标段落所传送的该读取请求的步骤前,还包含接收该客户端为将目标数据写入该目标文档所传送的写入请求,及在储存该写入请求所包含的该目标数据至该目标文 档中后,依据该目标文档中被更新的目标段落的内容计算验证计算值,并储存与被更新的目标段落对应的验证计算值的步骤。
5.一种在数据被请求时验证数据正确性的系统,其特征在于,应用于服务器,该服务器具有存储介质,且该服务器提供至少一个客户端连接,该系统至少包含: 传输模块,用以接收该客户端为读取目标文档中至少一个目标段落所传送的读取请求; 数据存取模块,用以至该存储介质读取该目标段落的数据内容; 验证值计算模块,用以依据该数据内容计算与该目标段落对应的验证计算值;及验证值比对模块,用以至该存储介质读取与该目标段落对应的验证预设值,并比对与该目标段落对应的验证预设值与验证计算值,当与该目标段落对应的验证预设值与验证计算值相同时,该传输模块传送该目标段落至该客户端。
6.如权利要求5所述的在数据被请求时验证数据正确性的系统,其特征在于,该数据存取模块还用以在与该目标段落对应的验证预设值与验证计算值不同时,读取该目标段落的备份内容,该验证值计算模块还用以依据该备份内容重新计算与该目标段落对应的验证计算值,该验证值比对模块还用以再次比对与该目标段落对应的验证预设值与验证计算值。
7.如权利要求5所述的在数据被请求时验证数据正确性的系统,其特征在于,该数据存取模块还用以依据该读取请求判断需被读取的所述各目标段落。
8.如权利要求5所述的在数据被请求时验证数据正确性的系统,其特征在于,该传输模块还用以接收该客户端所传送的写入请求,该数据存取模块还用以将该目标数据写入至该目标文档中,该验证值计算模块还用以依据该目标数据中被更新的目标段落计算相对应的验证预设值,该验证数据库还用以储存与被更新的目标段落对应的验证预设值。
9.如权利要求8所述的在数据被请求时验证数据正确性的系统,其特征在于,该系统还包含请求处理模块,用以判断所接收到的请求为该读取请求或该写入请求。
10.如权利要求5所述的在数据被请求时验证数据正确性的系统,其特征在于,该目标段落的大小为 预设值。
【文档编号】H04L1/00GK103856285SQ201210501133
【公开日】2014年6月11日 申请日期:2012年11月29日 优先权日:2012年11月29日
【发明者】李东海 申请人:英业达科技有限公司, 英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1