CN110083614B - 一种数据处理方法及服务器 - Google Patents
一种数据处理方法及服务器 Download PDFInfo
- Publication number
- CN110083614B CN110083614B CN201910272205.8A CN201910272205A CN110083614B CN 110083614 B CN110083614 B CN 110083614B CN 201910272205 A CN201910272205 A CN 201910272205A CN 110083614 B CN110083614 B CN 110083614B
- Authority
- CN
- China
- Prior art keywords
- data
- data set
- information
- server
- check
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 19
- 238000012795 verification Methods 0.000 claims abstract description 119
- 238000000034 method Methods 0.000 claims abstract description 80
- 238000012545 processing Methods 0.000 claims description 31
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 48
- 238000004891 communication Methods 0.000 abstract description 15
- 230000005540 biological transmission Effects 0.000 abstract description 13
- 230000003993 interaction Effects 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013524 data verification Methods 0.000 description 1
- WHHGLZMJPXIBIX-UHFFFAOYSA-N decabromodiphenyl ether Chemical compound BrC1=C(Br)C(Br)=C(Br)C(Br)=C1OC1=C(Br)C(Br)=C(Br)C(Br)=C1Br WHHGLZMJPXIBIX-UHFFFAOYSA-N 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种数据处理方法及服务器,其中方法包括:服务器获取客户端设备发送的第一信息后,对N个第一数据块进行划分,得到M组数据,并确定每组数据对应的校验信息;进一步地,服务器根据M组数据对应的校验信息和第二数据包,确定差异信息,并将差异信息发送给客户端设备,以使客户端设备根据差异信息更新第一数据包。本发明实施例中,服务器可以将差异信息传输给客户端设备,而无需将整个第一数据包发送给客户端设备,从而可以避免传输重复的数据信息,降低网络流量的损失,提高数据同步的效率;且,本发明实施中客户端设备与服务器之间可以仅执行一次通信交互过程,从而可以减轻网络通信的压力,降低网络传输流量。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法及服务器。
背景技术
数据同步是一种常用的数据处理方法,通过对不同设备(比如客户端设备与服务器、客户端设备与存储设备或服务器与存储设备)上的数据进行同步,可以保持不同设备上数据的完整性与统一性。以客户端设备与服务器之间同步资源数据包数据为例,在一种常用的数据同步方式中,若服务器检测到服务器上安装的资源数据包从资源数据包1升级为资源数据包2,则可以将资源数据包2发送给客户端设备,以使客户端设备将客户端设备上安装的资源数据包从资源数据包1更新为资源数据包2,从而保持服务器与客户端设备上的资源数据包的一致性。
然而,在实际操作中,资源数据包2与资源数据包1之间可能只存在部分数据不同,而大部分的数据是相同的;比如,资源数据包1和资源数据包2的总数据量均为50M,资源数据包2中仅存在5M的数据与资源数据包1不同,而资源数据包2中其它45M的数据与资源数据包1相同。若采用上述方式,则客户端设备会向服务器发送资源数据包2所包括的50M的数据,其中,这50M的数据中可以包括与资源数据包1相同的45M的数据和与资源数据包1不同的5M数据。由此可知,采用上述方式服务器可能会传输重复的数据,从而损失较多的网络流量,导致数据同步的效率较低。
综上,目前亟需一种数据处理方法,用以提高数据同步的效率。
发明内容
本发明实施例提供一种数据处理方法,用以提高数据同步的效率。
第一方面,本发明实施例提供的一种数据处理方法,所述方法包括:
服务器获取客户端设备发送的第一信息,所述第一信息包括第一数据包对应的N个第一数据块的校验值,所述服务器对所述N个第一数据块进行第一次划分,得到M组数据,并根据每组数据包括的至少一个第一数据块对应的校验值和与所述第一数据包对应的第二数据包,生成所述每组数据对应的校验信息;进一步地,所述服务器根据所述M组数据对应的校验信息和所述第二数据包,确定所述第一数据包对应的差异信息,并将所述差异信息发送给所述客户端设备,以使所述客户端设备根据所述差异信息更新所述第一数据包。
上述技术方案中,通过使用第一数据包对第二数据包进行校验,可以使得服务器将差异信息传输给客户端设备,而无需将整个第一数据包发送给客户端设备,从而可以避免传输重复的数据信息,降低网络流量的损失,提高数据同步的效率;且,本发明实施例中通过采用数据块的校验值来确定数据组的校验值的方式,可以使得客户端设备与服务器之间仅执行一次通信交互即可完成同步过程,而无需执行多次通信交互,从而可以减轻网络通信的压力,降低网络传输流量。也就是说,本发明实施例中的数据处理方法可以适应于低带宽和流量敏感的网络环境。
可选地,所述根据每组数据包括的至少一个第一数据块对应的校验值和与所述第一数据包对应的第二数据包,生成所述每组数据对应的校验信息之前,还包括:所述服务器确定所述M组数据中的最大数据量大于或等于所述N个第一数据块的数据量中的最小数据量。
可选地,所述第一信息中还包括所述N个第一数据块的数据量,所述第一信息中包括的所述N个第一数据块分别对应的校验值为所述N个第一数据块分别对应的第一校验值;所述根据每组数据包括的至少一个第一数据块对应的校验值和与所述第一数据包对应的第二数据包,生成所述每组数据对应的校验信息,包括:所述M组数据中包括第Y数据组,所述第Y数据组中包括T个第一数据块,针对于所述M组数据中的第Y数据组,执行:所述服务器根据所述第Y数据组包括的T个第一数据块分别对应的第一校验值,确定所述第Y数据组对应的第二校验值;所述服务器从第Y-1数据组对应的第二数据包中的第i位数据开始,获取与所述第Y数据组的数据量相同的第一目标数据组,并对所述第一目标数据组进行划分,得到T个第二数据块,所述T个第二数据块的数据量与所述T个第一数据块的数据量相同;根据所述T个第二数据块的第一校验值确定所述第一目标数据组对应的第二校验值;根据所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值,生成所述第Y数据组的校验信息;所述服务器对所述第Y-1组数据对应的第二数据包进行更新,得到第Y数据组对应的第二数据包。
上述技术方案中,第一校验值可以为强校验值,第二校验值可以为弱校验值,通过采用先对比弱校验值再对比强校验值的方式,一方面可以通过弱校验值过滤掉目的数据组中与第Y数据组明显相同的数据信息,从而减轻工作量、提高数据处理的效率;另一方面,通过采用强校验值和弱校验值共同确定第Y数据组对应的校验信息,可以提高第Y数据组对应的校验信息的准确性。
可选地,所述根据所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值,生成所述第Y数据组的校验信息,包括:所述服务器若确定所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值相同,则根据所述第Y数据组包括的T个第一数据块分别对应的第一校验值,确定所述第Y数据组对应的第一校验值,并根据所述T个第二数据块的第一校验值确定所述第一目标数据组对应的第一校验值;若确定所述第Y数据组对应的第一校验值与所述第一目标数据组对应的第一校验值不同,则生成所述第Y数据组的第一校验信息;所述服务器若确定所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值不同,则从所述第Y-1数据组对应的第二数据包中的第i+1位数据开始,获取与所述第Y数据组的数据量相同的第二目标数据组。
上述技术方案中,通过先对比弱校验值再对比强校验值的方式,可以简化数据处理的过程,提高数据处理的效率。
可选地,所述方法还包括:所述服务器确定所述第Y数据组对应的第一校验值与所述第一目标数据组对应的第一校验值相同时,若确定所述第Y数据组的数据量等于所述N个第一数据块中的最小数据量,则生成所述第Y数据组的第二校验信息;若确定所述第Y数据组的数据量大于所述N个第一数据块中的最小数据量,则从所述第Y-1数据组对应的第二数据包中的第i+1位数据开始,获取与所述第Y数据组的数据量相同的第二目标数据组。
上述技术方案中,校验信息可以包括第一校验信息与第二校验信息,第一校验信息为目标数据组中与第Y数据组相同的数据信息对应的校验信息,第二校验信息可以为目标数据组中与第Y数据组不同的数据信息对应的校验信息。通过获取第一校验信息和第二校验信息,服务器可以获取更为完整的校验信息,从而使得服务器向客户端设备同步的差异信息更为准确。
可选地,所述方法还包括:所述服务器若确定所述第M组数据对应的第二数据包的数据量大于或等于预设数据量阈值,则对所述N个第一数据块进行第二次划分。
上述技术方案中,通过采用多轮校验的方式获取校验信息,可以提高服务器获取到的校验信息的准确性,从而使得客户端设备与服务器之间的数据同步过程更为精确;进一步地,第二轮校验对应每组数据的数据量可以小于第一轮校验对应的每组数据的数据量,也就是说,上述技术方案通过多轮校验的方式,可以避免仅采用一轮校验所导致的数据信息重复传输的技术问题,从而可以节省网络流量,提高数据同步的效率。
可选地,所述服务器对所述N个第一数据块进行第二次划分得到P组数据;所述服务器若确定所述P组数据中的最大数据量小于所述N个第一数据块的数据量中的最小数据量,则将第一至第M组数据的校验信息发送给所述客户端设备。
第二方面,本发明实施例提供的一种服务器,所述服务器包括:
获取模块,用于获取客户端设备发送的第一信息,所述第一信息包括第一数据包对应的N个第一数据块的校验值;
处理模块,用于对所述N个第一数据块进行第一次划分,得到M组数据,并根据每组数据包括的至少一个第一数据块对应的校验值和与所述第一数据包对应的第二数据包,生成所述每组数据对应的校验信息;
收发模块,用于根据所述M组数据对应的校验信息和所述第二数据包,确定所述第一数据包对应的差异信息,并将所述差异信息发送给所述客户端设备,以使所述客户端设备根据所述差异信息更新所述第一数据包。
可选地,所述处理模块根据每组数据包括的至少一个第一数据块对应的校验值和与所述第一数据包对应的第二数据包,生成所述每组数据对应的校验信息之前,还用于:确定所述M组数据中的最大数据量大于或等于所述N个第一数据块的数据量中的最小数据量。
可选地,所述第一信息中还包括所述N个第一数据块的数据量,所述第一信息中包括的所述N个第一数据块分别对应的校验值为所述N个第一数据块分别对应的第一校验值;所述处理模块用于:所述M组数据中包括第Y数据组,所述第Y数据组中包括T个第一数据块,针对于所述M组数据中的第Y数据组,执行:根据所述第Y数据组包括的T个第一数据块的第一校验值,确定所述第Y数据组对应的第二校验值;从第Y-1数据组对应的第二数据包中的第i位数据开始,获取与所述第Y数据组的数据量相同的第一目标数据组,并对所述第一目标数据组进行划分,得到T个第二数据块,所述T个第二数据块的数据量与所述T个第一数据块的数据量相同;根据所述T个第二数据块的第一校验值确定所述第一目标数据组对应的第二校验值;根据所述第Y数据组对应的第一校验值与所述第一目标数据组对应的第二校验值,生成所述第Y数据组的校验信息;对所述第Y-1组数据对应的第二数据包进行更新,得到第Y数据组对应的第二数据包;
可选地,所述处理模块用于:若确定所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值相同,则根据所述第Y数据组包括的T个第一数据块分别对应的第一校验值,确定所述第Y数据组对应的第一校验值,并根据所述T个第二数据块的第一校验值确定所述第一目标数据组对应的第一校验值;若确定所述第Y数据组对应的第一校验值与所述第一目标数据组对应的第一校验值不同,则生成所述第Y数据组的第一校验信息;若确定所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值不同,则从所述第Y-1数据组对应的第二数据包中的第i+1位数据开始,获取与所述第Y数据组的数据量相同的第二目标数据组。
可选地,所述处理模块还用于:确定所述第Y数据组对应的第一校验值与所述第一目标数据组对应的第一校验值相同时,若确定所述第Y数据组的数据量等于所述N个第一数据块中的最小数据量,则生成所述第Y数据组的第二校验信息;若确定所述第Y数据组的数据量大于所述N个第一数据块中的最小数据量,则从所述第Y-1数据组对应的第二数据包中的第i+1位数据开始,获取与所述第Y数据组的数据量相同的第三目标数据组。
可选地,所述处理模块还用于:若确定所述第M组数据对应的第二数据包的数据量大于或等于预设数据量阈值,则对所述N个第一数据块进行第二次划分。
可选地,所述处理模块用于:对所述N个第一数据块进行第二次划分得到P组数据;若确定所述P组数据中的最大数据量小于所述N个第一数据块的数据量中的最小数据量,则将第一至第M组数据的校验信息发送给所述客户端设备。
本发明实施例提供的一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上述第一方面或第一方面任意所述的数据处理方法。
本发明实施例提供的一种计算机程序产品,当其在计算机上运行时,使得计算机执行如上述第一方面或第一方面任意所述的数据处理方法。
本发明的这些实现方式或其他实现方式在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据处理方法对应的流程示意图;
图2为本发明实施例提供的一种客户端设备与服务器之间交互的示意图;
图3a为本发明实施例中提供的一种实施例示意图;
图3b为本发明实施例中提供的一种实施例示意图;
图4为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在客户端设备与服务器进行数据同步的过程中,为了避免传输重复的数据信息,一种可能的实现方式为:将服务器中安装的资源数据包2与客户端设备中安装的资源数据包1进行对比,确定资源数据包2与资源数据包1之间的校验信息,校验信息可以用于标识文件a2与文件a1之间的差异信息,从而使得服务器可以将差异信息发送给客户端设备,以使客户端设备对资源数据包1进行更新。在该实现方式中,确定校验信息的执行主体可以是客户端设备,或者也可以是服务器,具体不作限定。
以确定校验信息的执行主体为服务器为例,根据上述内容可知,若服务器确定的校验信息较为准确,则服务器可以根据准确的校验信息得到准确的差异信息,从而使得服务器可以将准确的差异信息发送给客户端设备,提高数据同步的效率。也就是说,校验信息的准确性会影响差异信息的准确性,若想保证差异信息的准确性,则需要服务器获取到准确的校验信息。然而,现阶段还没有一种准确获取校验信息的方式,因此,现阶段在客户端设备与服务器之间进行数据同步时,存在传输重复的数据信息、网络流量的损失较大以及数据同步的效率较低的技术问题。
综上,目前亟需一种数据处理方法,用以提高数据同步的效率。
图1为本发明实施例提供的一种数据处理方法对应的流程示意图,该方法包括:
步骤101,服务器获取客户端设备发送的第一信息。
本发明实施例中,客户端设备中可以存储有第一数据包,服务器中可以存储有第二数据包。其中,服务器中的第二数据包可以为对服务器中存储的第三数据包进行更新得到的数据包,第三数据包可以与第一数据包相同,或者也可以与第一数据包不同,具体不作限定。举例说明,服务器和客户端设备上均可以安装有同一资源数据包,客户端设备上安装的资源数据包为版本V1.1对应的资源数据包(即第一数据包),而服务器上安装的资源数据包为版本V1.3对应的资源数据包(即第二数据包);在一个示例中,若服务器上安装的版本V1.3对应的资源数据包为对服务器上原安装的版本V1.1对应的资源数据包(即第三数据包)进行升级得到的,即版本V1.3为对版本V1.1进行升级得到的,则在该示例中,第一数据包和第三数据包可以相同(均为版本V1.1对应的资源数据包);在另一个示例中,若服务器上安装的版本V1.3对应的资源数据包为对服务器上原安装的版本V1.2对应的资源数据包(即第三数据包)进行升级得到的,即版本V1.3为对版本V1.2进行升级得到的,而版本V1.2是对版本V1.1进行升级得到的,则在该示例中,第一数据包和第三数据包可以不同,第一数据包可以为版本V1.1对应的资源数据包,第三数据包可以为版本V1.2对应的资源数据包。
本发明的下列实施例以使用服务器中的第二数据包对客户端设备中的第一数据包进行数据同步的过程为例说明本发明实施例中的方案,可以理解的,其它设备之间进行数据同步的过程也可以参照本发明实施例中的数据同步过程进行实现,具体不作限定。
本发明实施例中,第一信息可以包括第一数据包对应的N个第一数据块的数据量和N个第一数据块分别对应的校验值。具体实施中,客户端设备可以根据第一数据包的数据量将第一数据包划分为N个第一数据块。其中,对第一数据包进行划分的方式可以有多种,在一种可能的实现方式中,客户端设备可以按照预设数据量将第一数据包划分为N个第一数据块,每个第一数据块的数据量可以相同。举例来说,第一数据包的数据量为905M,对第一数据包进行划分可以得到第一数据块b1~第一数据块b10;其中,第一数据块b1~第九第一数据块b9中每个第一数据块的数据量可以为100M,第一数据块b10的数据量可以为5M。
进一步地,针对于第一数据块b1~第一数据块b10中的每个第一数据块,可以确定每个第一数据块对应的校验值。每个第一数据块对应的校验值可以为每个第一数据块的第一校验值(强校验值),或者也可以为每个数据块的第二校验值(强校验值)。相应地,第一信息中包括的第一数据块b1~第一数据块b10的校验值可以为第一数据块b1~第一数据块b10的第一校验值,或者也可以为第一数据块b1~第一数据块b10的第二校验值,或者还可以第一数据块b1~第一数据块b10的第一校验值和第一数据块b1~第一数据块b10的第二校验值,具体不作限定。
第一校验值可以为一种强校验值,比如MD5校验值。MD5校验值可以为通过带加盐的MD5哈希方式或者不带加盐的MD5哈希方式得到的密钥,其获取过程为不可逆的加密过程,即通过某一数据对应的MD5校验值无法获取该数据的信息。相应地,若采用相同的加密方式(比如带加盐的MD5哈希方式)对文件第一数据和第二数据分别进行加密后,第一数据对应的密钥与第二数据对应的密钥相同,则可以说明第一数据与第二数据相同。以确定第一数据块b1的第一校验值为例,具体实施中,可以预先将第一数据块b1划分为512个第一分组,并将每个第一分组划分为32个第一子分组。进一步地,通过使用MD5哈希的方式对512个第一分组进行加密,可以得到四个32位的第二子分组,将这四个32位的第二子分组进行级联后,可以得到一个128位的散列值。其中,该散列值即可以为第一数据块b1对应的第一校验值。第一校验值的可靠性较强,若采用N个第一数据块分别对应的第一校验值来获取校验信息,可以提交校验信息的准确性。
第二校验值可以为一种弱校验值,比如基于校验和算法(即Asler32算法)确定的校验值。具体地说,第一数据块的弱校验值可以为对第一数据组中包括的各个字段进行加和得到的,可以将得到的和值作为第一校验和值;相应地,可以将在确定第一校验和值的过程中每一步的阶段值之和作为第二校验和值。其中,第一校验和值与第二校验和值均可以为16位的数值,进一步地,可以将16位的第一校验和值与16位的第二校验和值拼接为一个32位的整数,即第一数据块的第二校验值。
步骤102,服务器对N个第一数据块进行划分,得到M组数据。
具体实施中,对N个第一数据块进行划分的方式可以有多种,在一种可能的实现方式中,服务器可以按照预设的数据块数量将N个第一数据块划分为M组数据,其中,每组数据包括的数据块的数量可以相同。举例来说,服务器可以将第一数据块b1~第一数据块b10划分为第一数据组~第四数据组,其中,第一数据组~第三数据组中的每个数据组包括的数据块的数量可以为3个,第四数据组包括的数据块的数量可以为1个。比如,第一数据组包括第一数据块b1~第一数据块b3,第二数据组包括第一数据块b4~第一数据块b6,第三数据组包括第一数据块b7~第一数据块b9,第四数据组包括第一数据块b10。也就是说,第一数据组~第三数据组中每个数据组的数据量可以为300M,第四数据组的数据量可以为5M。
步骤103,服务器确定M组数据中每组数据的校验信息。
在一种可能的实现方式中,服务器若确定M组数据中的最大数据量大于或等于N个第一数据块的数据量中的最小数据量,则说明服务器对第二数据包进行校验的过程未结束,可以继续执行后续的步骤。此处,N个第一数据块的数据量中的最小数据量可以是指N个第一数据块中数据量最小的第一数据块的数据量。比如,第一数据块b1~第一数据块b10的数据量中的最小数据量可以是指第一数据块b10的数据量,即5M。
需要说明的是,上述实现方式仅是一种示例性的简单说明,其所列举的确定服务器对第二数据包进行校验的过程未结束的条件仅是为了便于说明方案,并不构成对方案的限定。在具体实施中,确定服务器对第二数据包进行校验的过程未结束的条件可以由本领域技术人员根据实际情况进行设置,比如可以设置预设数据量阈值,若确定M组数据中的最大数据量大于或等于预设数据量阈值,则可以确定服务器对第二数据包进行校验的过程未结束;其中,预设数据量阈值可以为固定的数值,或者也可以为根据第一数据块中的最小数据量确定得到的数值,比如可以为第一数据块中的最小数据量的3/4,具体不作限定。
以第二数据组为例,第二数据组中可以包括第一数据块b4~第一数据块b6,具体实施中,可以根据第二数据组包括的第一数据块b4~第一数据块b6分别对应的校验值,确定第二数据组对应的校验值。下面分别描述确定第二数据组对应的校验值的几种可能的情况。
第一种情形
在第一种情形中,第一信息中包括的第一数据块的校验值可以为第一数据块的第一校验值,即步骤101中发送的是第一数据块b4~第一数据块b6分别对应的第一校验值。在第一种情形中,可以根据第一数据块b4~第一数据块b6分别对应的第一校验值确定第二数据组对应的第一校验值,或者也可以根据第一数据块b4~第一数据块b6分别对应的第一校验值确定第二数据组对应的第二校验值,或者还可以根据第一数据块b4~第一数据块b6分别对应的第一校验值确定第二数据组对应的第一校验值和第二校验值,具体不作限定。下面分别从这三种子情形进行描述。
第一子情形
若根据第一数据块b4~第一数据块b6分别对应的第一校验值确定第二数据组对应的第一校验值,则可以将第一数据块b4~第一数据块b6分别对应的第一校验值划分为3个分组,并将每个分组划分为32个子分组。进一步地,通过使用MD5哈希的方式对3个分组进行加密,可以得到多个32位的子分组,将多个32位的子分组进行级联后,可以得到一个128位的散列值。该散列值即可以为第二数据组对应的第一校验值。
第二子情形
若根据第一数据块b4~第一数据块b6分别对应的第一校验值确定第二数据组对应的第二校验值,则可以对第一数据块b4~第一数据块b6的第一校验值加和,并可以将得到的和值作为第一校验和值;相应地,可以将在确定第一校验和值的过程中每一步的阶段值之和作为第二校验和值。进一步地,可以将第一校验和值与第二校验和值拼接为一个整数,该整数既可以为第二数据组对应的第二校验值。
举例来说,若第一数据块b4~第一数据块b6对应的第一校验值分别为R1、R2和R3,则可以对R1、R2和R3中的每个字节进行加和,将得到的和值作为第一校验和值;相应地,可以将在确定第一校验和值的过程中每一步的阶段值之和作为第二校验和值。其中,第一校验和值与第二校验和值均可以为16位的数值,进一步地,可以将16位的第一校验和值与16位的第二校验和值拼接为一个32位的整数,即第二数据组对应的第二校验值。
第三子情形
若根据第一数据块b4~第一数据块b6分别对应的第一校验值确定第二数据组对应的第一校验值和第二校验值,则可以按照上述方式分别确定第二数据组对应的第一校验值和第二校验值,此处不再赘述。
第二种情形
在第二种情形中,第一信息中包括的第一数据块的校验值可以为第一数据块的第二校验值,即步骤101中发送的是第一数据块b4~第一数据块b6分别对应的第二校验值。在第二种情形中,可以根据第一数据块b4~第一数据块b6分别对应的第二校验值确定第二数据组对应的第一校验值,或者也可以根据第一数据块b4~第一数据块b6分别对应的第二校验值确定第二数据组对应的第二校验值,或者还可以根据第一数据块b4~第一数据块b6分别对应的第二校验值确定第二数据组对应的第一校验值和第二校验值,具体不作限定。下面分别从这三种子情形进行描述。
第四子情形
若根据第一数据块b4~第一数据块b6分别对应的第二校验值确定第二数据组对应的第一校验值,则可以将第一数据块b4~第一数据块b6分别对应的第二校验值划分为3个分组,并将每个分组划分为32个子分组。进一步地,通过使用MD5哈希的方式对3个分组进行加密,可以得到多个32位的子分组,将多个32位的子分组进行级联后,可以得到一个128位的散列值。该散列值即可以为第二数据组对应的第二校验值。
第五子情形
若根据第一数据块b4~第一数据块b6分别对应的第二校验值确定第二数据组对应的第二校验值,则可以对第一数据块b4~第一数据块b6的第二校验值加和,并可以将得到的和值作为第一校验和值;相应地,可以将在确定第一校验和值的过程中每一步的阶段值之和作为第二校验和值。进一步地,可以将第一校验和值与第二校验和值拼接为一个整数,该整数既可以为第二数据组对应的第二校验值。
第六子情形
若根据第一数据块b4~第一数据块b6分别对应的第二校验值确定第二数据组对应的第一校验值和第二校验值,则可以按照上述方式分别确定第二数据组对应的第一校验值和第二校验值,此处不再赘述。
进一步地,服务器可以根据第二数据组的校验值对第一数据组对应的第二数据包进行校验。其中,第一数据组对应的第二数据包可以为针对于第一数据组执行步骤103后得到的数据包。具体地说,在根据第一数据组的校验值对第二数据包进行校验后,可以对第二数据包进行更新,得到第一数据组对应的第二数据包;相应地,在根据第二数据组的校验值对第一数据组对应的第二数据包进行校验后,可以对第一数据组对应的第二数据包进行更新,得到第二数据组对应的第二数据包。需要说明的是,得到第三数据组对应的第二数据包和第四数据组对应的第二数据包的过程可以参照第一数据组和第二数据组执行,不再赘述。
具体实施中,服务器可以在获取服务器中存储的第一数据组对应的第二数据包后,从第一数据组对应的第二数据包中的第i位数据开始,获取与第一数据组的数据量相同的目标数据组,并可以对目标数据组进行划分,得到T个第二数据块;其中,T个第二数据块的数据量与T个第一数据块的数据量可以相同。进一步地,服务器可以根据T个第二数据块的校验值确定目标数据组对应的校验值,比如,在第一子情形中,服务器可以根据T个第二数据块的第一校验值确定目标数据组对应的第一校验值,并可以根据第二数据组的第一校验值和目标数据组对应的第一校验值,对第二数据包进行校验,生成第二数据组对应的校验信息;在第二子情形中,服务器可以根据T个第二数据块的第一校验值确定目标数据组对应的第二校验值,并可以根据第二数据组的第二校验值和目标数据组对应的第二校验值,对第二数据包进行校验,生成第二数据组对应的校验信息;在第三子情形中,服务器可以根据T个第二数据块的第一校验值确定目标数据组对应的第一校验值和第二校验值,并可以根据第二数据组的第一校验值和目标数据组对应的第一校验值、第二数据组的第二校验值和目标数据组对应的第二校验值,对第二数据包进行校验,生成第二数据组对应的校验信息。相应地,在第四子情形中,服务器可以根据T个第二数据块的第二校验值确定目标数据组对应的第一校验值,并可以根据第二数据组的第一校验值和目标数据组对应的第一校验值,对第二数据包进行校验,生成第二数据组对应的校验信息;在第五子情形中,服务器可以根据T个第二数据块的第二校验值确定目标数据组对应的第二校验值,并可以根据第二数据组的第二校验值和目标数据组对应的第二校验值,对第二数据包进行校验,生成第二数据组对应的校验信息;在第六子情形中,服务器可以根据T个第二数据块的第二校验值确定目标数据组对应的第一校验值和第二校验值,并可以根据第二数据组的第一校验值和目标数据组对应的第一校验值、第二数据组的第二校验值和目标数据组对应的第二校验值,对第二数据包进行校验,生成第二数据组对应的校验信息。
本发明的下列实施例中以第二子情形为例具体描述对第二数据包进行校验以及生成第二数据组对应的校验信息的实现过程。
具体实施中,以第一次执行的过程为例(从第一数据组对应的第二数据包中的第1位数据开始),若第二数据组中包括第一数据块b4~第一数据块b6,且第一数据块b4~第一数据块b6中的每个第一数据块的数据量均为100M,则在第一次执行过程中,服务器可以从第一数据组对应的第二数据包中的第一位数据开始,依次获取300M的数据作为目标数据组,并将目标数据组划分为第二数据块c4~第二数据块c6;其中,第二数据块c4~第二数据块c6中的每个第二数据块的数据量可以均为100M。进一步地,服务器可以确定第二数据块c4~第二数据块c6的第一校验值,并可以根据第二数据块c4~第二数据块c6的第一校验值确定目标数据组的第二校验值(可以参照确定第二数据组的第二校验值的过程进行执行,不再赘述)。
进一步地,服务器可以将第二数据组对应的第二校验值与目标数据组对应的第二校验值进行对比,若确定第二数据组对应的第二校验值与目标数据组对应的第二校验值相同,则可以根据第二数据组包括的T个第一数据块分别对应的第一校验值,确定第二数据组对应的第一校验值,且可以根据T个第二数据块的第一校验值确定目标数据组对应的第一校验值。以确定第二数据组对应的第一校验值的过程为例,具体地说,若第二数据组包括的第一数据块b4~第一数据块b6对应的第一校验值分别为R1、R2和R3,则可以通过将R1、R2和R3组合成一个数值,进而对该数值求HD5哈希值,即第二数据组对应的第一校验值。
若确定第二数据组对应的第一校验值与目标数据组对应的第一校验值相同,则服务器可以生成第二数据组的第一校验信息。其中,第二数据组的第一校验信息中可以包括第二数据包中与第一数据包相同的目标数据组所对应的位信息(即标识信息)。在一个示例中,若第一数据组对应的第二数据包即为第二数据包,则第二数据组的第一校验信息可以为:第二数据包中第1M至第300M的数据与第一数据包中第二数据组(第301M的数据至第601M的数据)相同。
本发明实施例中,在生成第二数据组的第一校验信息后,还可以对第一数据组对应的第二数据包进行更新。比如,可以将第一数据组对应的第二数据包中的目标数据组(即第1M至第300M的数据)替换为空洞,或者也可以将第1M至第300M的数据修改为特殊字符,或者还可以对第1M至第300M的数据进行标注,具体不作限定。
进一步地,服务器可以从目标数据组的下一位数据开始,执行上述的步骤。需要说明的是,若目标数据组与第二数据组相同,则在第二次执行的过程中,服务器可以从第二数据包中除目标数据组后的第1位数据开始,执行上述过程。当使用第二数据组对第一数据组对应的第二数据包中的每个数据执行完毕后,服务器可以通过上述的执行步骤依次对第一数据组对应的第二数据包进行更新,得到第二数据组对应的第二数据包。
在一种可能的实现方式中,若确定第二数据组对应的第二校验值与目标数据组对应的第二校验值不同,则说明目标数据组与第二数据组不同,此时,服务器可以确定划分过程是否结束(第二数据包中的全部位数据变为空洞和/或全部已被标注,或第二数据组的数据量等于N个第一数据块中的最小数据量,则确定划分过程已结束)。若服务器确定划分过程未结束,则可以使用第三数据组从第二数据组对应的第一位数据开始,执行上述校验过程。若服务器确定划分过程已结束(即第二数据组的数据量等于N个第一数据块中的最小数据量),则服务器可以生成第二数据组的第二校验信息,并可以使用第三数据组从第二数据组对应的第一位数据开始,执行上述校验过程。其中,第二校验信息中可以包括第二数据包中与第一数据包不同的目标数据组所对应的位信息(即标识信息)。在一个示例中,若第一数据组对应的第二数据包即为第二数据包,则第二数据组的第二校验信息可以为:第二数据包中第1M至第300M的数据与第一数据包不同。
本发明实施例中,第一校验值可以为强校验值,第二校验值可以为弱校验值,通过采用先对比弱校验值再对比强校验值的方式,一方面可以通过弱校验值过滤掉目的数据组中与第Y数据组明显相同的数据信息,从而减轻工作量、提高数据处理的效率;另一方面,通过采用强校验值和弱校验值共同确定第Y数据组对应的校验信息,可以提高第Y数据组对应的校验信息的准确性。进一步地,校验信息可以包括第一校验信息与第二校验信息,第一校验信息为目标数据组中与第Y数据组相同的数据信息对应的校验信息,第二校验信息可以为目标数据组中与第Y数据组不同的数据信息对应的校验信息。通过获取第一校验信息和第二校验信息,服务器可以获取更为完整的校验信息,从而使得客户端设备向服务器同步的数据更为准确。
步骤104,服务器若确定第M数据组对应的第二数据包的数据量小于预设数据量阈值,则执行步骤105;若确定第M数据组对应的第二数据包的数据量大于或等于预设数据量阈值,则执行步骤102。
本发明实施例中,服务器在使用第三数据组对第二数据组对应的第二数据包进行校验后,可以对第二数据组对应的第二数据包进行更新,生成第三数据组对应的第二数据包。进一步地,服务器若确定第三数据组对应的第二数据包的数据量小于预设数据量阈值,则说明第二数据包中的全部数据与第一数据包中的数据相同(即第二数据包中的全部位数据变为空洞和/或全部已被标注,校验过程结束);此时,服务器可以执行步骤105。其中,预设数据量阈值可以由本领域技术人员根据经验进行设置,具体不作限定。
相应地,服务器若确定第三数据组对应的第二数据包的数据量大于或等于预设数据量阈值,则说明第二数据包中存在与第一数据包中的数据不同的数据(即校验过程未结束);此时,服务器可以再次执行步骤102。具体实施中,服务器可以对N个第一数据块进行第二次划分,若将N个第一数据划分为P个数据组,则P个数据组中的每个数据组中包括的数据块的数量可以小于或等于第一次划分得到的M个数据组中的每个数据组中包括的数据块的数量。也就是说,P可以大于或等于M。
进一步地,服务器若确定P组数据中每组数据的数据量均小于N个第一数据块的数据量中的最小数据量,则说明服务器对第二数据包进行校验的过程已结束,此时,服务器可以将M组数据对应的校验信息发送给客户端设备。相应地,服务器若确定P组数据中数据量最大的数据量大于或等于N个第一数据块中的最小数据量,则说明服务器对第二数据包进行校验的过程未结束,此时,服务器可以针对于P个数据组中的每个数据组执行步骤103~步骤105(或102)。
本发明实施例中,通过采用多轮校验的方式获取校验信息,可以提高服务器获取到的校验信息的准确性,从而使得客户端设备与服务器之间的数据同步过程更为精确;进一步地,第二轮校验对应每组数据的数据量可以小于第一轮校验对应的每组数据的数据量,也就是说,本发明实施例通过多轮校验的方式,可以避免仅采用一轮校验所导致的数据信息重复传输的技术问题,从而可以节省网络流量,提高数据同步的效率。
步骤105,服务器根据M组数据的校验信息和第二数据包确定差异信息,并将差异信息发送给客户端设备。
此处,若服务器在第一次划分后,对第二数据包的校验过程即结束,则M组数据的校验信息可以仅包括第一校验信息,或者也可以仅包括第二校验信息,或者还可以包括第一校验信息和第二校验信息。若M组数据的校验信息仅包括第一校验信息,说明第二数据包中的数据与第一数据包中的数据相同;若M组数据的校验信息仅包括第二校验信息,说明第二数据包中的数据与第一数据包中的数据完全不同;若M组数据的校验信息包括第一校验信息和第二校验信息,说明第二数据包中的一部分数据与第一数据包中的数据相同,另一部分数据与第一数据包中的数据不同。
以第二数据组为例,若第二数据组的校验信息为:第二数据包中第1M至第300M的数据与第一数据包不同,则服务器可以获取第二数据包中的第1M至第300M的数据(即差异信息),并根据差异信息生成第二信息,将第二信息发送给客户端设备。相应地,客户端设备可以在接收到第二信息后,解析第二信息,得到差异信息,并根据差异信息更新第二数据包。比如,若客户端设备解析得到的差异信息为第二数据包中的第1M至第300M的数据,则客户端设备可以将第一数据包中的第1M至第300M的数据更新为第二数据包中的第1M至第300M的数据。
需要说明的是,上述步骤编号仅为执行流程的一种示例,并不构成对各个步骤的执行先后顺序的限定。
本发明的上述实施例中,通过使用第一数据包对第二数据包进行校验,可以使得服务器将差异信息传输给客户端设备,而无需将整个第一数据包发送给客户端设备,从而可以避免传输重复的数据信息,降低网络流量的损失,提高数据同步的效率;且,本发明实施例中通过采用数据块的校验值来确定数据组的校验值的方式,可以使得客户端设备与服务器之间仅执行一次通信交互即可完成同步过程,而无需执行多次通信交互,从而可以减轻网络通信的压力,降低网络传输流量。也就是说或,本发明实施例中的数据处理方法可以适应于低带宽和流量敏感的网络环境。
下面从客户端设备与服务器之间进行数据交互的角度描述本发明实施例中的方案,其与图1所示意的数据处理方法相对应。
图2为本发明实施例提供的一种客户端设备与服务器交互的流程示意图,该方法包括:
步骤201,客户端设备向服务器发送第一信息。
此处,第一信息中可以包括N个数据块的数据量和N个数据块分别对应的第一校验值,其中,N个数据块可以为客户端设备对第一数据包进行划分得到的。
在一个示例中,第一信息中还可以包括其它与第一数据包相关的信息,比如第一数据包的标识信息、N个数据块的位信息和N个数据块的更新时间等,具体不作限定。
步骤202,服务器根据第一信息确定校验信息,并根据校验信息和第二数据包确定差异信息。
在一种可能的实现方式中,服务器可以在接收客户端设备发送的第一信息后,对第一信息进行解析,获取第一信息中包括的第一数据包的标识信息。进一步地,服务器可以根据第一数据包的标识信息,获取服务器内存储的与第一数据包对应的第二数据包,并可以根据第一信息和第二数据包,确定校验信息。具体的实现过程可以参照步骤102~步骤105(或步骤102)中示意的过程,具体不作限定。
若校验信息为第二数据包中的第三位数据至第九位数据与第一数据包不同,则服务器可以确定第二数据包中的第三位数据至第九位数据为差异信息。其中,位是指串行通信中的位数据,可以包括6个比特位,或者也可以包括9个比特位,具体不作限定。
步骤203,服务器将差异信息发送给客户端设备。
此处,服务器可以通过有线方式(比如网线、光纤)将差异信息发送给客户端设备,或者也可以通过无线方式(比如蓝牙、电磁波)将差异信息发送给客户端设备,具体不作限定。
步骤204,客户端设备根据差异信息更新客户端设备中存储的第一数据包。
在一种可能的实现方式中,差异信息中可以包括差异数据和标识信息,客户端设备可以根据标识信息将第一数据包中的数据更新为差异数据。
需要说明的是,图2仅是一种示例性的简单说明,其采用服务器作为确定校验信息的执行主体仅是为了便于说明方案,并不构成对方案的限定。在具体实施中,也可以采用客户端设备作为确定校验信息的执行主体,本发明实施例不作限定。
下面用示例一和示例二来具体描述本发明实施例中的方案。
示例一
图3a为本发明实施例提供的一种数据处理方法对应的实施例的示意图,如图3a所示,客户端设备上存储有旧的资源数据包a(简称为数据a),服务器存储有数据a对应的新的资源数据包b(简称为数据b)。其中,如图3a所示,数据a和数据b均可以为48位数据。其中,1位可以是指可以为1字节、1比特位等较小的数据量,或者也可以是指1M、1G等较大的数据量,对此不做限定。
需要说明的是,本发明的下列示例(即示例一和示例二)仅是两种示例性的简单说明,其所列举的数据a和数据b仅是为了便于说明方案,并不构成对方案的限定,在具体实施中,数据a和数据b的数据量可以远远大于48位,比如可以为100G或10T。
具体执行过程如下:
第一阶段,客户端将第一信息发送给服务器。
具体实施中,客户端设备可以对数据a进行划分,得到数据块S1~数据块S8,其中,数据块S1~数据块S8中的每个数据块均可以包括6位数据。如图3a所示,数据块S1包括第一位数据~第六位数据,即数据ABCD12;数据块S2包括第七位数据~第十二位数据,即数据ACDE23;数据块S3包括第十三位数据~第十八位数据,即数据ABDE34;数据块S4包括第十九位数据~第二十四位数据,即数据ADEF45;数据块S5包括第二十五位数据~第三十位数据,即数据BDEF56;数据块S6包括第三十一位数据~第三十六位数据,即数据BCEF67;数据块S7包括第三十七位数据~第四十二位数据,即数据BEDA78;数据块S8包括第四十二位数据~第四十八位数据,即数据CEDF89。
进一步地,客户端设备可以分别计算数据块S1~数据块S8的第一检测值和第二检测值,第一检测值可以为强校验值,第二检测值可以为弱校验值。以数据块S1为例,在一种可能的实现方式中,客户端设备可以通过校验和算法确定数据块S1的弱校验值,并可以通过MD5哈希算法确定数据块S1的强校验值。需要说明的是,本发明实施例可以使用数据块包括的数据来计算数据块的强校验值和弱校验值,比如,可以使用数据块S1包括的数据ABCD12计算数据块S1的强校验值和弱校验值。
本发明实施例中,客户端设备可以根据数据块S1~数据块S8的标识信息、数据量信息、弱校验值和强校验值生成第一信息中,并将第一信息发送给服务器。其中,数据块的标识信息可以为数据块包括的位数据的标识,比如数据块S3的标识信息为第十九位数据~第二十四位数据;数据块的数据量信息可以为数据块包括的位数据的数量,比如数据块S3的数据量信息为六位数据。
在一种可能的实现方式中,数据块S1~数据块S8的标识信息、数据量信息、弱校验值和强校验值可以以表格的形式存储在第一信息中,表1为第一信息中存储的表格的一种示例。如表1所示,以数据块S1为例,数据块S1的标识信息为第一位数据~第六位数据,数据量信息为六位数据,弱校验值为H1,强校验值为U1。
表1:第一信息中表格的一种示意
第二阶段,服务器对数据块S1~数据块S8进行第一次划分。
服务器接收到客户端设备发送的第一信息后,可以解析第一信息得到数据块S1~数据块S8的标识信息、数据量信息、弱校验值和强校验值,并可以对数据块S1~数据块S8进行第一次划分,得到数据组M11。其中,数据组M11中可以包括数据块S1~数据块S8,即数据组M11的标识信息为第一位数据~第四十八位数据,数据量信息为48位数据;且,服务器可以根据数据块S1~数据块S8的强校验值(即U1~U8)确定数据组M11的弱校验值。
进一步地,服务器可以从数据b的第一位数据开始,获取与数据组M11的数据量相同的目标数据组,目标数据组可以包括数据b中的48位数据,如图3a所示,目标数据组即为数据b,目标数据组包括的48位数据可以为“ABCD12ACDE23ABDE34ADEF45BDEF56BCEF67BEDA78DECA90”。服务器可以将目标数据组划分为与数据块S1~数据块S8数据量相同的八个数据块(如图3a所示意的八个数据块),并可以确定每个数据块的弱校验值和强校验值,进而根据八个数据块的强校验值确定目标数据组的弱校验值。服务器将数据组M11的弱校验值和目标数据组的弱校验值进行对比,确定数据组M11的弱校验值U11和目标数据组的弱校验值不同。此时,服务器可以确定数据组M11与目标数据组不同。
第三阶段,服务器对数据块S1~数据块S8进行第二次划分。
由于数据组M11的数据量大于数据块S1~数据块S8中任一数据块的数据量,因此,服务器可以对数据块S1~数据块S8进行第二次划分,得到数据组M21和数据组M22。其中,数据组M21中可以包括数据块S1~数据块S4,数据组M11的标识信息为第一位数据~第二十四位数据,数据量信息为24位数据,这24位数据可以为“ABCD12ACDE23ABDE34ADEF45”;数据组M22中可以包括数据块S5~数据块S8,即数据组M22的标识信息为第二十五位数据~第四十八位数据,数据量信息为24位数据,这24位数据可以为“BDEF56BCEF67BEDA78CEDF89”。且,服务器可以根据数据块S1~数据块S4的强校验值(即U1~U4)确定数据组M21的弱校验值,并可以根据数据块S5~数据块S8的强校验值(即U5~U8)确定数据组M22的弱校验值。
进一步地,服务器可以从数据b的第一位数据开始,获取与数据组M21的数据量相同的目标数据组(如图3a所示的数据组M'21)。其中,数据组M'21可以包括数据b中的第一位数据至第二十四位数据,数据量信息为24位,这24位数据可以为“ABCD12ACDE23ABDE34ADEF45”。服务器可以将数据组M'21划分为与数据块S1~数据块S4的数据量相同的四个数据块(即每个数据块可以包括6位数据),并确定每个数据块的弱校验值和强校验值,进而根据四个数据块的强校验值确定数据组M'21的弱校验值。服务器将数据组M21的弱校验值和数据组M'21的弱校验值进行对比,可以确定M21的弱校验值和数据组M'21的弱校验值相同;此时,服务器可以根据数据块S1~数据块S4的强校验值(即U1~U4)确定数据组M21的强校验值,并可以根据目标数据组M'21中四个数据块的强校验值确定目标数据组M'21的强校验值;进一步地,服务器可以将数据组M21的强校验值和目标数据组M'21的强校验值进行对比,确定数据组M21的强校验值和目标数据组M'21的强校验值相同,即数据组M21与数据组M'21相同;此时,服务器可以生成第一校验信息。
表2为第一校验信息的一种示例。如表2所示,第一校验信息可以为:数据a中的第一位数据~第二十四位数据与数据b中的第一位数据~第二十四位数据相同。
表2:第二阶段的校验结果
数据a | 数据b | 校验结果 |
第一位数据~第二十四位数据 | 第一位数据~第二十四位数据 | 相同 |
服务器可以在生成第一校验信息后,对数据b进行更新,在一种更新方式中,服务器可以将数据b中的第一位数据~第二十四位数据更新为空洞,从而得到更新后的数据b。其中,更新后的数据b中的第一位数据~第二十四位数据可以为空洞。进一步地,服务器可以根据更新后的数据b执行校验的过程,具体地说,服务器可以从更新后的数据b的第一位非空洞的数据(即第二十五位数据)开始,获取与数据组M21的数据量相同的目标数据组(为便于描述,称为数据组M'22),数据组M'22可以包括数据b中的第二十五位数据至第四十八位数据,数据量信息为24位,这24位数据可以为“BDEF56BCEF67BEDA78DECA90”。服务器可以将数据组M'22划分为与数据块S1~数据块S4的数据量相同的四个数据块,并可以确定每个数据块的弱校验值和强校验值,进而根据四个数据块的强校验值确定数据组M'22的弱校验值。服务器将数据组M21的弱校验值和数据组M'22的弱校验值进行对比,可以确定数据组M21的弱校验值和数据组M'22的弱校验值不同,此时,服务器可以确定数据组M21与数据组M'22不同。
执行至此步骤,服务器即完成了使用数据组M21对更新后的数据b的校验过程,进一步地,服务器可以使用数据组M22对更新后的数据b进行校验,具体地执行过程可以参照上述内容,具体不再赘述。服务器使用数据组M22对更新后的数据b进行校验的过程中,数据b中不存在与数据组M22相同的数据,因此,服务器并未生成校验信息。
第三阶段,服务器对数据块S1~数据块S8进行第三次划分。
由于数据组M21和数据组M22的数据量大于数据块S1~数据块S8中任一数据块的数据量,因此,服务器可以对数据块S1~数据块S8进行第三次划分,得到数据组M31、数据组M32、数据组M33和数据组M34。其中,数据组M31中可以包括数据块S1和数据块S2,数据组M31的标识信息可以为第一位数据~第十二位数据,数据量信息可以为12位数据,这12位数据可以为“ABCD12ACDE23”;数据组M32中可以包括数据块S3和数据块S4,数据组M32的标识信息可以为第十三位数据~第二十四位数据,数据量信息可以为12位数据,这12位数据可以为“ABDE34ADEF45”;数据组M33中可以包括数据块S5和数据块S6,数据组M33的标识信息可以为第二十五位数据~第三十六位数据,数据量信息可以为12位数据,这12位数据可以为“BDEF56BCEF67”;数据组M34中可以包括数据块S7和数据块S8,即数据组M33的标识信息为第三十七位数据~第四十八位数据,数据量信息为12位数据,这12位数据可以为“BEDA78CEDF89”。
进一步地,服务器可以根据数据块S1和数据块S2的强校验值(即U1和U2)确定数据组M31的弱校验值,根据数据块S3和数据块S4的强校验值(即U3和U4)确定数据组M32的弱校验值,根据数据块S5和数据块S6的强校验值(即U5和U6)确定数据组M34的弱校验值,根据数据块S7~数据块S8的强校验值(即U7~U8)确定数据组M34的弱校验值。
以数据组M33为例,服务器从更新后的数据b的第一位数据(即第二十五位数据)开始,获取与数据组M33的数据量相同的目标数据组(如图3a所示意的M'31)。其中,数据组M'31可以包括数据b中的第二十五位数据至第三十六位数据,数据量信息为12位,这12位数据可以为“BDEF56BCEF67”。服务器可以将数据组M'31划分为与数据块S1和数据块S2的数据量相同的两个数据块,并确定每个数据块的弱校验值和强校验值,进而根据两个数据块的强校验值确定数据组M'31的弱校验值。服务器将数据组M33的弱校验值和数据组M'31的弱校验值进行对比,可以确定数据组M33的弱校验值和数据组M'31的弱校验值相同;此时,服务器可以根据数据块S1和数据块S2的强校验值(即U1和U2)确定数据组M33的强校验值,并可以根据目标数据组M'31中两个数据块的强校验值确定目标数据组M'31的强校验值;进一步地,服务器可以将数据组M33的强校验值和目标数据组M'31的强校验值进行对比,确定数据组M33的强校验值和目标数据组M'31的强校验值相同,即数据组M33与数据组M'31相同;此时,服务器可以生成第一校验信息,如表3所示。
表3:第三阶段的校验结果
进一步地,服务器可以将数据b中的第二十五位数据~第三十六位数据变成空洞,得到更新后的数据b。其中,更新后的数据b中的第一位数据~第三十六位数据可以为空洞。进一步地,服务器可以从数据b的第三十七位数据开始,获取与数据组M33的数据量相同的目标数据组,根据数据组M33的弱校验值与目标数据组的弱校验值的对比结果,以及数据组M33的强校验值与目标数据组的强校验值的对比结果,执行校验过程,具体可以参照上述内容,不再赘述。
第四阶段,服务器对数据块S1~数据块S8进行第四次划分。
由于数据组M31、数据组M32、数据组M33和数据组M34的数据量大于数据块S1~数据块S8中任一数据块的数据量,因此,服务器可以对数据块S1~数据块S8进行第四次划分,得到数据块S1~数据块S8。针对于数据块S1~数据块S8和更新后的数据b进行校验,得到校验结果,具体实现过程可以参照上述内容,不再赘述。
在一个示例中,第四阶段的校验结果可以如表4所示。其中,数据a的第三十七位数据~第四十二位数据与数据b的第三十七位数据~第四十二位数据相同,且数据a的第四十二位数据~第四十八位数据与数据b的第四十二位数据~第四十八位数据不同。
表4:第四阶段的校验结果
第五阶段,服务器将差异信息发送给客户端设备。
服务器在获取到第一阶段~第四阶段的校验结果(即表2~表4所示)后,可以根据校验结果确定数据b与数据a中相同的数据,并可以获取相同的数据在数据a中的标识信息和在数据b中的标识信息(即差异信息),进而可以将两个标识信息发送给客户端设备。举例来说,根据表2~表4的内容可知,数据a中的第一位数据~第二十四位数据与数据b中的第一位数据~第二十四位数据相同,数据a中的第二十五位数据~第三十六位数据与数据b中的第二十五位数据~第三十六位数据相同,数据a中的第三十七位数据~第四十二位数据与数据b中的第三十七位数据~第四十二位数据相同,且数据a中的第四十二位数据~第四十八位数据与数据b中的第四十二位数据~第四十八位数据不同;此时,服务器可以将相同数据在数据a中的标识和在数据b中的标识发送给客户端设备。
表5为本发明实施例提供的一种差异信息的示意表。
表5:一种差异信息的示意
数据a | 数据b |
第一位数据~第二十四位数据 | 第一位数据~第二十四位数据 |
第二十五位数据~第三十六位数据 | 第二十五位数据~第三十六位数据 |
第三十七位数据~第四十二位数据 | 第三十七位数据~第四十二位数据 |
客户端设备接收到服务器发送的差异信息后,可以从差异信息中确定第一数据包与第二数据包中相同的数据所在的标识信息,若确定相同的数据在数据a中的标识信息与数据b中的标识信息相同,则可以无需根据该校验结果更新客户端设备中的数据a;服务器若确定相同的数据在数据a中的标识信息(比如第4位数据)与数据b中的标识信息(比如第12位数据)不同,则可以将数据a中的第12位数据替换为数据a中的第12位数据。举例说明,如表2所示的校验结果,数据a的第一位数据~第二十四位数据与数据b的第一位数据~第二十四位数据相同,则服务器可以无需对数据a的第一位数据~第二十四位数据进行更新,即服务器可以无需针对于该校验结果执行任何操作。
进一步地,针对于数据a与数据b不同的数据,客户端设备可以采用多种方法获取不同的数据,比如可以通过网络下载,具体不作限定。在一种可能的实现方式中,针对于校验结果不同的数据,服务器可以获取数据b中不同于数据a的数据,并发送给客户端设备。具体地说,服务器可以根据表4的内容确定数据a的第四十二位数据~第四十八位数据与数据b的第四十二位数据~第四十八位数据不同,因此,服务器可以获取数据b的第四十二位数据~第四十八位数据(即DECA90),并将DECA90与数据a的标识信息(第四十二位数据~第四十八位数据)发送给客户端设备,以使客户端设备将数据a的第四十二位数据~第四十八位数据(即CEDF89)更新为DECA90。
示例二
图3b为本发明实施例提供的另一个数据处理方法对应的实施例的示意图,如图3b所示,客户端设备上存储有旧资源数据包c(简称为数据c),服务器存储有数据c对应的新资源数据包的数据d(简称为数据d)。其中,数据c可以包括60位数据,这60位数据为“ABCD12ACDE23ABDE34ADEF45BDEF56BCEF67BEDA78CEDF89CFAD90CDFB01”;数据d可以包括44位数据,这44位数据为“38AFABCD12ACDE23ABDE34ADEF45BDEF5691EBCEDF89”。使用数据d对数据c进行更新的执行过程如下:
第一阶段,客户端将第一信息发送给服务器。
具体实施中,客户端设备可以对数据c进行划分,得到数据块Q1~数据块Q10,其中,数据块Q1~数据块Q10中的每个数据块均可以包括6位数据。如图3b所示,数据块Q1包括第一位数据~第六位数据,即数据ABCD12;数据块Q2包括第七位数据~第十二位数据,即数据ACDE23;数据块Q3包括第十三位数据~第十八位数据,即数据ABDE34;数据块Q4包括第十九位数据~第二十四位数据,即数据ADEF45;数据块Q5包括第二十五位数据~第三十位数据,即数据BDEF56;数据块Q6包括第三十一位数据~第三十六位数据,即数据BCEF67;数据块Q7包括第三十七位数据~第四十二位数据,即数据BEDA78;数据块Q8包括第四十二位数据~第四十八位数据,即数据CEDF89;数据块Q9包括第四十九位数据~第五十四位数据,即数据CFAD90;数据块Q10包括第五十五位数据~第六十位数据,即数据CDFB01。
进一步地,客户端设备可以分别计算数据块Q1~数据块Q10的弱校验值和强校验值,并可以根据数据块Q1~数据块Q10的标识信息、数据量信息、弱校验值和强校验值生成第一信息,将第一信息发送给服务器。
第二阶段,服务器对数据块Q1~数据块Q10进行第一次划分。
服务器接收到客户端设备发送的第一信息后,可以对数据块Q1~数据块Q10进行第一次划分,得到数据组E11、数据组E12和数据组E13。其中,数据组E11中可以包括数据块Q1~数据块Q4,数据组E11的标识信息为第一位数据~第二十四位数据,数据量信息为24位数据,这24位数据为“ABCD12ACDE23ABDE34ADEF45”;数据组E12中可以包括数据块Q5~数据块Q8,数据组E12的标识信息为第二十五位数据~第四十八位数据,数据量信息为24位数据,这24位数据为“BDEF56BCEF67BEDA78CEDF89”;数据组E13中可以包括数据块Q9~数据块Q10,数据组E13的标识信息为第四十九位数据~第六十位数据,数据量信息为12位数据,这12位数据为“CFAD90CDFB01”。且,服务器可以根据数据块Q1~数据块Q4的强校验值确定数据组E11的弱校验值,根据数据块Q5~数据块Q8的强校验值确定数据组E12的弱校验值,并可以根据数据块Q9~数据块Q10的强校验值确定数据组E13的弱校验值。
进一步地,服务器可以从数据d的第一位数据开始,获取与数据组E11的数据量相同的目标数据组。其中,目标数据组可以包括数据b中的24位数据,这24位数据为“38AFABCD12ACDE23ABDE34AD”。服务器可以将目标数据组划分为与数据块Q1~数据块Q4的数据量相同的四个数据块,并可以确定每个数据块的弱校验值和强校验值,进而根据四个数据块的强校验值确定目标数据组的弱校验值。服务器将数据组E11的弱校验值和目标数据组的弱校验值进行对比,确定数据组E11的弱校验值和目标数据组的弱校验值不同。此时,服务器可以确定数据组E11与数据组E'11之间存在差异信息。
服务器可以从数据d的第二位数据开始,获取与数据组E11的数据量相同的目标数据组。其中,目标数据组可以包括数据b中的24位数据,这24位数据为“8AFABCD12ACDE23ABDE34ADE”。服务器确定数据组E12的弱校验值和目标数据组的弱校验值不同,并确定数据组E12的强校验值和目标数据组的强校验值不同;此时,服务器可以确定数据组E11与目标数据组不同。进一步地,服务器可以从数据d的第三位数据开始,获取与数据组E11的数据量相同的目标数据组。其中,目标数据组可以包括数据b中的24位数据,这24位数据为“AFABCD12ACDE23ABDE34ADEF”。服务器确定数据组E12的弱校验值和目标数据组的弱校验值不同,此时,服务器可以确定数据组E11与目标数据组不同。
按照上述过程,服务器可以从数据d的第一位数据依次执行至最后一位数据,在执行至第五位数据时,服务器可以确定从数据d的第五位数据开始获取到的目标数据组(如图3b所示意的数据组E'11)与数据组E11相同,此时,服务器可以根据数据块Q1~数据块Q4的强校验值确定数据组E11的强校验值,并目标数据组的四个数据块的强校验值确定目标数据组E'11的强校验值;服务器将数据组E11的强校验值和目标数据组E'11的强校验值进行对比,确定数据组E11的强校验值和目标数据组E'11的强校验值相同,因此,服务器可以生成校验结果。其中,数据组E'11可以包括数据d中的24位数据,这24位数据为“ABCD12ACDE23ABDE34ADEF45”。服务器在生成校验结果后,可以将数据d中的第五位数据~第二十九位数据更新为空洞,得到更新后的数据d;并可以从数据d的第三十位数据开始,使用数据组E11进行校验。
若数据组E11对数据d的校验过程结束,则服务器可以针对于更新后的数据d的第一位数据(即第三十位数据)开始,使用数据组E12和数据组E13分别对数据d进行校验。具体执行过程可以参照上述内容,不再赘述。在使用数据组E12和数据组E13对数据d进行校验的过程中,数据d中不存在与数据组E12或数据组E13相同的数据,因此,服务器在该过程中未生成校验结果。
在一个示例中,第二阶段的校验结果可以如表6所示。其中,数据c的第一位数据~第二十四位数据与数据d的第五位数据~第二十九位数据相同。
表6:第二阶段的校验结果
数据c | 数据d | 校验结果 |
第一位数据~第二十四位数据 | 第五位数据~第二十九位数据 | 相同 |
第三阶段,服务器对数据块Q1~数据块Q10进行第二次划分。
服务器可以对数据块Q1~数据块Q10进行第二次划分,得到数据组E21、数据组E22、数据组E23、数据组E24和数据组E25。在使用数据组E21、数据组E22、数据组E23、数据组E24和数据组E5对数据d校验的过程中,数据d中不存在与数据组E21、数据组E22、数据组E23、数据组E24或数据组E25相同的数据,因此,服务器在该过程中未生成校验信息。
第四阶段,服务器对数据块Q1~数据块Q10进行第三次划分。
服务器可以对数据块Q1~数据块Q10进行第三次划分,得到数据块Q1~数据块Q10。针对于数据块Q1~数据块Q10和更新后的数据d进行校验,得到校验结果。
在一个示例中,第四阶段的校验结果可以如表7所示。其中,数据a的第三十七位数据~第四十二位数据与数据b的第三十七位数据~第四十二位数据相同,且数据a的第四十二位数据~第四十八位数据与数据b的第四十二位数据~第四十八位数据不同。
表7:第四阶段的校验结果
第五阶段,服务器将差异信息发送给客户端设备。
服务器在获取到第一阶段~第四阶段的校验结果(即表6和表7)后,针对于校验结果相同的数据,以表6所示的校验结果为例,数据c的第一位数据~第二十四位数据与数据d的第五位数据~第二十九位数据相同,因此,服务器可以将校验结果相同的数据在数据c中的标识信息(即第一位数据~第二十四位数据)与数据d中的标识信息(即第五位数据~第二十九位数据)发送给客户端设备,以使客户端设备根据数据c中的第一位数据~第二十四位数据更新数据c中的第五位数据~第二十九位数据,即将数据c中的第五位数据~第二十九位数据12ACDE23ABDE34ADEF45BDEF更新为原数据c中的第一位数据~第二十四位数据ABCD12ACDE23ABDE34ADEF45。
在一种可能的实现方式中,针对于校验结果不同的数据,服务器可以获取数据d中不同于数据c的数据,并发送给客户端设备。如表7所示,服务器可以确定数据d的第一位数据~第四位数据、第三十五位数据~第三十八位数据与数据c不同,因此,服务器可以获取数据d的第一位数据~第四位数据(即38AF)和第三十五位数据~第三十八位数据(即91EB),并将38AF与数据d的标识信息(第一位数据~第四位数据)、91EB与数据d的标识信息(第三十五位数据~第三十八位数据)发送给客户端设备,以使客户端设备将数据c的第一位数据~第四位数据(即ABCD)更新为38AF,将数据c的第三十五位数据~第三十八位数据(即67BE)更新为91EB。
本发明的上述实施例中,服务器获取客户端设备发送的第一信息后,对N个第一数据块进行第一次划分,得到M组数据,并根据每组数据包括的至少一个第一数据块对应的校验值和与第一数据包对应的第二数据包,生成每组数据对应的校验信息,其中,第一信息包括第一数据包对应的N个第一数据块的数据量和N个第一数据块分别对应的校验值;进一步地,服务器根据M组数据对应的校验信息和第二数据包,确定第一数据包对应的差异信息,并将差异信息发送给客户端设备,以使客户端设备根据差异信息更新第一数据包。本发明实施例中,通过使用第一数据包对第二数据包进行校验,可以使得服务器将差异信息传输给客户端设备,而无需将整个第一数据包发送给客户端设备,从而可以避免传输重复的数据信息,降低网络流量的损失,提高数据同步的效率;且,本发明实施例中通过采用数据块的校验值来确定数据组的校验值的方式,可以使得客户端设备与服务器之间仅执行一次通信交互即可完成同步过程,而无需执行多次通信交互,从而可以减轻网络通信的压力,降低网络传输流量。
针对上述方法流程,本发明实施例还提供一种服务器,该服务器的具体内容可以参照上述方法实施。
图4为本发明实施例提供的一种服务器的结构示意图,包括:
获取模块401,用于获取客户端设备发送的第一信息,所述第一信息包括第一数据包对应的N个第一数据块的数据量和所述N个第一数据块分别对应的校验值;
处理模块402,用于对所述N个第一数据块进行第一次划分,得到M组数据,并根据每组数据包括的至少一个第一数据块对应的校验值和与所述第一数据包对应的第二数据包,生成所述每组数据对应的校验信息;
收发模块403,用于根据所述M组数据对应的校验信息和所述第二数据包,确定所述第一数据包对应的差异信息,并将所述差异信息发送给所述客户端设备,以使所述客户端设备根据所述差异信息更新所述第一数据包。
可选地,所述处理模块402根据每组数据包括的至少一个第一数据块对应的校验值和与所述第一数据包对应的第二数据包,生成所述每组数据对应的校验信息之前,还用于:
确定所述M组数据中的最大数据量大于或等于所述N个第一数据块的数据量中的最小数据量。
可选地,所述第一信息中包括的所述N个第一数据块分别对应的校验值为所述N个第一数据块分别对应的第一校验值;
所述处理模块402用于:
所述M组数据中包括第Y数据组,所述第Y数据组中包括T个第一数据块,针对于所述M组数据中的第Y数据组,执行:
根据所述第Y数据组包括的T个第一数据块分别对应的第一校验值,确定所述第Y数据组对应的第二校验值;
从第Y-1数据组对应的第二数据包中的第i位数据开始,获取与所述第Y数据组的数据量相同的第一目标数据组,并对所述第一目标数据组进行划分,得到T个第二数据块,所述T个第二数据块的数据量与所述T个第一数据块的数据量相同;根据所述T个第二数据块的第一校验值确定所述第一目标数据组对应的第二校验值;根据所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值,生成所述第Y数据组的校验信息;
对所述第Y-1组数据对应的第二数据包进行更新,得到第Y数据组对应的第二数据包。
可选地,所述处理模块402用于:
若确定所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值相同,则根据所述第Y数据组包括的T个第一数据块分别对应的第一校验值,确定所述第Y数据组对应的第一校验值,并根据所述T个第二数据块的第一校验值确定所述第一目标数据组对应的第一校验值;若确定所述第Y数据组对应的第一校验值与所述第一目标数据组对应的第一校验值不同,则生成所述第Y数据组的第一校验信息;
若确定所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值不同,则从所述第Y-1数据组对应的第二数据包中的第i+1位数据开始,获取与所述第Y数据组的数据量相同的第二目标数据组。
可选地,所述处理模块402还用于:
确定所述第Y数据组对应的第一校验值与所述第一目标数据组对应的第一校验值相同时,若确定所述第Y数据组的数据量等于所述N个第一数据块中的最小数据量,则生成所述第Y数据组的第二校验信息;若确定所述第Y数据组的数据量大于所述N个第一数据块中的最小数据量,则从所述第Y-1数据组对应的第二数据包中的第i+1位数据开始,获取与所述第Y数据组的数据量相同的第三目标数据组。
可选地,所述处理模块402还用于:
若确定所述第M组数据对应的第二数据包的数据量大于或等于预设数据量阈值,则对所述N个第一数据块进行第二次划分。
可选地,所述处理模块402用于:
对所述N个第一数据块进行第二次划分得到P组数据;
若确定所述P组数据中的最大数据量小于所述N个第一数据块的数据量中的最小数据量,则将第一至第M组数据的校验信息发送给所述客户端设备。
从上述内容可以看出:本发明的上述实施例中,服务器获取客户端设备发送的第一信息后,对N个第一数据块进行第一次划分,得到M组数据,并根据每组数据包括的至少一个第一数据块对应的校验值和与第一数据包对应的第二数据包,生成每组数据对应的校验信息,其中,第一信息包括第一数据包对应的N个第一数据块的数据量和N个第一数据块分别对应的校验值;进一步地,服务器根据M组数据对应的校验信息和第二数据包,确定第一数据包对应的差异信息,并将差异信息发送给客户端设备,以使客户端设备根据差异信息更新第一数据包。本发明实施例中,通过使用第一数据包对第二数据包进行校验,可以使得服务器将差异信息传输给客户端设备,而无需将整个第一数据包发送给客户端设备,从而可以避免传输重复的数据信息,降低网络流量的损失,提高数据同步的效率;且,本发明实施例中通过采用数据块的校验值来确定数据组的校验值的方式,可以使得客户端设备与服务器之间仅执行一次通信交互即可完成同步过程,而无需执行多次通信交互,从而可以减轻网络通信的压力,降低网络传输流量。
基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上述图1或图2所述的数据处理方法。
基于同一发明构思,本发明实施例还提供一种计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行如上述图1或图2所述的数据处理方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (13)
1.一种数据处理方法,其特征在于,所述方法包括:
服务器获取客户端设备发送的第一信息,所述第一信息包括第一数据包对应的N个第一数据块的校验值;
所述服务器对所述N个第一数据块进行第一次划分,得到M组数据,并根据每组数据包括的至少一个第一数据块的校验值和与所述第一数据包对应的第二数据包,生成所述每组数据对应的校验信息;
所述服务器根据所述M组数据对应的校验信息和所述第二数据包,确定所述第一数据包对应的差异信息,并将所述差异信息发送给所述客户端设备,以使所述客户端设备根据所述差异信息更新所述第一数据包;
其中,所述第一信息中还包括所述N个第一数据块的数据量,所述第一信息中包括的所述N个第一数据块分别对应的校验值为所述N个第一数据块分别对应的第一校验值;
所述根据每组数据包括的至少一个第一数据块的校验值和与所述第一数据包对应的第二数据包,生成所述每组数据对应的校验信息,包括:
所述M组数据中包括第Y数据组,所述第Y数据组中包括T个第一数据块,针对于所述M组数据中的第Y数据组,执行:
所述服务器根据所述第Y数据组包括的T个第一数据块的第一校验值,确定所述第Y数据组对应的第二校验值;
所述服务器从第Y-1数据组对应的第二数据包中的第i位数据开始,获取与所述第Y数据组的数据量相同的第一目标数据组,并对所述第一目标数据组进行划分,得到T个第二数据块,所述T个第二数据块的数据量与所述T个第一数据块的数据量相同;根据所述T个第二数据块的第一校验值确定所述第一目标数据组对应的第二校验值;根据所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值,生成所述第Y数据组的校验信息;
所述服务器对所述第Y-1组数据对应的第二数据包进行更新,得到第Y数据组对应的第二数据包。
2.根据权利要求1所述的方法,其特征在于,所述根据每组数据包括的至少一个第一数据块的校验值和与所述第一数据包对应的第二数据包,生成所述每组数据对应的校验信息之前,还包括:
所述服务器确定所述M组数据中的最大数据量大于或等于所述N个第一数据块的数据量中的最小数据量。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值,生成所述第Y数据组的校验信息,包括:
所述服务器若确定所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值相同,则根据所述第Y数据组包括的T个第一数据块分别对应的第一校验值,确定所述第Y数据组对应的第一校验值,并根据所述T个第二数据块的第一校验值确定所述第一目标数据组对应的第一校验值;若确定所述第Y数据组对应的第一校验值与所述第一目标数据组对应的第一校验值相同,则生成所述第Y数据组的第一校验信息;
所述服务器若确定所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值不同,则从所述第Y-1数据组对应的第二数据包中的第i+1位数据开始,获取与所述第Y数据组的数据量相同的第二目标数据组。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述服务器确定所述第Y数据组对应的第一校验值与所述第一目标数据组对应的第一校验值相同时,若确定所述第Y数据组的数据量等于所述N个第一数据块中的最小数据量,则生成所述第Y数据组的第二校验信息;若确定所述第Y数据组的数据量大于所述N个第一数据块中的最小数据量,则从所述第Y-1数据组对应的第二数据包中的第i+1位数据开始,获取与所述第Y数据组的数据量相同的第三目标数据组。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
所述服务器若确定第M组数据对应的第二数据包的数据量大于或等于预设数据量阈值,则对所述N个第一数据块进行第二次划分。
6.根据权利要求5所述的方法,其特征在于,所述服务器对所述N个第一数据块进行第二次划分得到P组数据;
所述服务器若确定所述P组数据中的最大数据量小于所述N个第一数据块的数据量中的最小数据量,则将第一至第M组数据的校验信息发送给所述客户端设备。
7.一种服务器,其特征在于,所述服务器包括:
获取模块,用于获取客户端设备发送的第一信息,所述第一信息包括第一数据包对应的N个第一数据块的校验值;
处理模块,用于对所述N个第一数据块进行第一次划分,得到M组数据,并根据每组数据包括的至少一个第一数据块的校验值和与所述第一数据包对应的第二数据包,生成所述每组数据对应的校验信息;
收发模块,用于根据所述M组数据对应的校验信息和所述第二数据包,确定所述第一数据包对应的差异信息,并将所述差异信息发送给所述客户端设备,以使所述客户端设备根据所述差异信息更新所述第一数据包;
其中,所述第一信息中还包括所述N个第一数据块的数据量,所述第一信息中包括的所述N个第一数据块分别对应的校验值为所述N个第一数据块分别对应的第一校验值;
所述处理模块用于:
所述M组数据中包括第Y数据组,所述第Y数据组中包括T个第一数据块,针对于所述M组数据中的第Y数据组,执行:
根据所述第Y数据组包括的T个第一数据块的第一校验值,确定所述第Y数据组对应的第二校验值;
从第Y-1数据组对应的第二数据包中的第i位数据开始,获取与所述第Y数据组的数据量相同的第一目标数据组,并对所述第一目标数据组进行划分,得到T个第二数据块,所述T个第二数据块的数据量与所述T个第一数据块的数据量相同;根据所述T个第二数据块的第一校验值确定所述第一目标数据组对应的第二校验值;根据所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值,生成所述第Y数据组的校验信息;
对所述第Y-1组数据对应的第二数据包进行更新,得到第Y数据组对应的第二数据包。
8.根据权利要求7所述的服务器,其特征在于,所述处理模块根据每组数据包括的至少一个第一数据块的校验值和与所述第一数据包对应的第二数据包,生成所述每组数据对应的校验信息之前,还用于:
确定所述M组数据中的最大数据量大于或等于所述N个第一数据块的数据量中的最小数据量。
9.根据权利要求7所述的服务器,其特征在于,所述处理模块用于:
若确定所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值相同,则根据所述第Y数据组包括的T个第一数据块分别对应的第一校验值,确定所述第Y数据组对应的第一校验值,并根据所述T个第二数据块的第一校验值确定所述第一目标数据组对应的第一校验值;若确定所述第Y数据组对应的第一校验值与所述第一目标数据组对应的第一校验值不同,则生成所述第Y数据组的第一校验信息;
若确定所述第Y数据组对应的第二校验值与所述第一目标数据组对应的第二校验值不同,则从所述第Y-1数据组对应的第二数据包中的第i+1位数据开始,获取与所述第Y数据组的数据量相同的第二目标数据组。
10.根据权利要求9所述的服务器,其特征在于,所述处理模块还用于:
确定所述第Y数据组对应的第一校验值与所述第一目标数据组对应的第一校验值相同时,若确定所述第Y数据组的数据量等于所述N个第一数据块中的最小数据量,则生成所述第Y数据组的第二校验信息;若确定所述第Y数据组的数据量大于所述N个第一数据块中的最小数据量,则从所述第Y-1数据组对应的第二数据包中的第i+1位数据开始,获取与所述第Y数据组的数据量相同的第三目标数据组。
11.根据权利要求7至10中任一项所述的服务器,其特征在于,所述处理模块还用于:
若确定第M组数据对应的第二数据包的数据量大于或等于预设数据量阈值,则对所述N个第一数据块进行第二次划分。
12.根据权利要求11所述的服务器,其特征在于,所述处理模块用于:
对所述N个第一数据块进行第二次划分得到P组数据;
若确定所述P组数据中的最大数据量小于所述N个第一数据块的数据量中的最小数据量,则将第一至第M组数据的校验信息发送给所述客户端设备。
13.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至6任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910272205.8A CN110083614B (zh) | 2019-04-04 | 2019-04-04 | 一种数据处理方法及服务器 |
PCT/CN2020/072336 WO2020199724A1 (zh) | 2019-04-04 | 2020-01-15 | 一种数据处理方法及服务器、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910272205.8A CN110083614B (zh) | 2019-04-04 | 2019-04-04 | 一种数据处理方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110083614A CN110083614A (zh) | 2019-08-02 |
CN110083614B true CN110083614B (zh) | 2023-06-06 |
Family
ID=67414244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910272205.8A Active CN110083614B (zh) | 2019-04-04 | 2019-04-04 | 一种数据处理方法及服务器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110083614B (zh) |
WO (1) | WO2020199724A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083614B (zh) * | 2019-04-04 | 2023-06-06 | ***股份有限公司 | 一种数据处理方法及服务器 |
CN112612852B (zh) * | 2020-12-29 | 2024-06-11 | 中国农业银行股份有限公司 | 数据同步方法及装置、电子设备、存储介质 |
CN117271655A (zh) * | 2022-06-14 | 2023-12-22 | 华为技术有限公司 | 数据同步方法、***、介质、程序产品和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101854241A (zh) * | 2009-03-30 | 2010-10-06 | 上海聚力传媒技术有限公司 | 一种用于对网络传输的数据块进行验证的方法和装置 |
CN105682183A (zh) * | 2016-01-14 | 2016-06-15 | 美的集团股份有限公司 | 控制家电设备入网的方法和装置 |
CN108255647A (zh) * | 2018-01-18 | 2018-07-06 | 湖南麒麟信安科技有限公司 | 一种samba服务器集群下的高速数据备份方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297482B (zh) * | 2012-03-05 | 2016-12-14 | 联想(北京)有限公司 | 信息处理方法和设备 |
CN104243508A (zh) * | 2013-06-07 | 2014-12-24 | 富鸿康科技(深圳)有限公司 | 服务器、客户端及文件同步方法 |
CN104579605B (zh) * | 2013-10-23 | 2018-04-10 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN106528125A (zh) * | 2016-10-26 | 2017-03-22 | 腾讯科技(深圳)有限公司 | 一种数据文件的增量更新方法和服务器、客户端以及*** |
CN110083614B (zh) * | 2019-04-04 | 2023-06-06 | ***股份有限公司 | 一种数据处理方法及服务器 |
-
2019
- 2019-04-04 CN CN201910272205.8A patent/CN110083614B/zh active Active
-
2020
- 2020-01-15 WO PCT/CN2020/072336 patent/WO2020199724A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101854241A (zh) * | 2009-03-30 | 2010-10-06 | 上海聚力传媒技术有限公司 | 一种用于对网络传输的数据块进行验证的方法和装置 |
CN105682183A (zh) * | 2016-01-14 | 2016-06-15 | 美的集团股份有限公司 | 控制家电设备入网的方法和装置 |
CN108255647A (zh) * | 2018-01-18 | 2018-07-06 | 湖南麒麟信安科技有限公司 | 一种samba服务器集群下的高速数据备份方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110083614A (zh) | 2019-08-02 |
WO2020199724A1 (zh) | 2020-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110083614B (zh) | 一种数据处理方法及服务器 | |
CN108256353B (zh) | 一种数据完整性校验方法、装置及客户端 | |
CN107396360B (zh) | 区块验证方法及装置 | |
US9705678B1 (en) | Fast CAN message authentication for vehicular systems | |
US20120096564A1 (en) | Data integrity protecting and verifying methods, apparatuses and systems | |
CN106484453B (zh) | 一种实现***升级的方法及装置 | |
CN109951435B (zh) | 一种设备标识提供方法及装置和风险控制方法及装置 | |
CN111666564B (zh) | 应用程序安全启动方法、装置、计算机设备和存储介质 | |
CN106843957A (zh) | ***固件升级方法及装置 | |
CN109829294A (zh) | 一种固件验证方法、***、服务器及电子设备 | |
CN109542851A (zh) | 文件更新方法、装置及*** | |
CN109862099A (zh) | 一种升级校验方法、装置、终端及*** | |
CN112839003A (zh) | 数据校验方法及*** | |
US20170302693A1 (en) | Rewrite detection system and information processing device | |
CN115795513A (zh) | 文件加密和文件解密方法、装置以及设备 | |
CN111191738B (zh) | 跨平台的数据处理方法、装置、设备及可读存储介质 | |
CN111937359A (zh) | 检测设备的通信地址设置方法、无人机及存储介质 | |
CN111400771A (zh) | 目标分区的校验方法及装置、存储介质、计算机设备 | |
CN111835504B (zh) | 识别码生成方法及服务器 | |
CN108206961A (zh) | 一种计算直播平台人气的方法及相关设备 | |
CN115314319B (zh) | 一种网络资产识别方法、装置、电子设备及存储介质 | |
CN110287733A (zh) | 一种文件防篡改方法和装置 | |
CN114050972B (zh) | 一种ota升级的方法 | |
CN113051585B (zh) | 一种数据校验方法、装置、电子设备和存储介质 | |
CN110347609B (zh) | 一种测试区块链软件的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |