CN116070284A - 一种数据校验方法及存储介质和相关设备 - Google Patents

一种数据校验方法及存储介质和相关设备 Download PDF

Info

Publication number
CN116070284A
CN116070284A CN202111286025.9A CN202111286025A CN116070284A CN 116070284 A CN116070284 A CN 116070284A CN 202111286025 A CN202111286025 A CN 202111286025A CN 116070284 A CN116070284 A CN 116070284A
Authority
CN
China
Prior art keywords
data
verification
target service
application client
application
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.)
Pending
Application number
CN202111286025.9A
Other languages
English (en)
Inventor
潘林锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shanghai Co Ltd
Original Assignee
Tencent Technology Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shanghai Co Ltd filed Critical Tencent Technology Shanghai Co Ltd
Priority to CN202111286025.9A priority Critical patent/CN116070284A/zh
Publication of CN116070284A publication Critical patent/CN116070284A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种数据校验方法及存储介质和相关设备,应用于信息处理技术领域。第一应用客户端会向其它的第二应用客户端发起数据校验请求,并获取第二校验信息,根据第二校验信息与第一应用客户端中目标业务的数据的第一校验信息进行比较,即可得到校验结果,进而决定是否需要对目标业务的数据进行更新。在这个过程中任一应用客户端并不需要与服务器之间约定数据校验规则,而只需要实时地获取两种校验信息进行比较,实时地保证应用客户端中目标业务数据的完整性,同时简化了对目标业务的数据的校验,且降低了服务器的压力,并将校验过程与服务器中提供的服务之间进行解耦,扩展性比较强。

Description

一种数据校验方法及存储介质和相关设备
技术领域
本发明涉及信息处理技术领域,特别涉及一种数据校验方法及存储介质和相关设备。
背景技术
企业用户在使用企业即时通信(instant messaging,IM)产品时,会有不少数据内容是在用户之间共享的,例如组织架构信息,同事资料,公有文档数据,群内共享的文档等,但是由于网络故障或者程序缺陷等原因可能造成部分企业用户的即时通信客户端的数据不完整或者不是最新的,即数据不正确,这就需要确保即时通信客户端的数据完整性或者保持最新。
在现有技术中,为了保持即时通信客户端中数据的完整性和保持最新,在即时通信客户端与服务器之间需要约定校验规则,以对即时通信客户端中的数据进行校验,进而基于校验结果来决定是否需要对即时通信客户端进行同步,但是对于服务器中已经存在的老服务,存在改造成本和风险。
发明内容
本发明实施例提供一种数据校验方法及存储介质和相关设备,降低了数据校验过程中服务器的压力。
本发明实施例一方面提供一种数据校验方法,包括:
当确定对第一应用客户端中目标业务的数据进行数据校验时,选择至少一个第二应用客户端;
分别向所述至少一个第二应用客户端发送数据校验请求,所述数据校验请求中包括所述目标业务的类型信息;
当接收到所述至少一个第二应用客户端根据所述数据校验请求返回的第二校验信息,所述第二校验信息包括所述第二应用客户端中与所述类型信息对应的业务数据相关的信息,获取所述目标业务的数据的第一校验信息;
根据所述至少一个第二应用客户端分别对应的第二校验信息及所述第一校验信息对所述目标业务的数据进行校验,以确定是否对所述目标业务的数据进行更新。
本发明实施例另一方面提供一种数据校验方法,包括:
接收第一应用客户端发送的数据校验请求,所述数据校验请求中包括所述第一应用客户端中目标业务的类型信息;
根据所述数据校验请求,获取第二校验信息,所述第二校验信息包括与所述类型信息对应的业务数据相关的信息;
将所述第二校验信息返回给所述第一应用客户端,以便所述第一应用客户端根据所述目标业务的数据的第一校验信息及所述第二校验信息对所述目标业务的数据进行校验,以确定是否对所述目标业务的数据进行更新。
本发明实施例另一方面还提供一种应用客户端,包括:
选择单元,用于当确定对所述应用客户端中目标业务的数据进行数据校验时,选择至少一个第二应用客户端;
校验请求单元,用于分别向所述至少一个第二应用客户端发送数据校验请求,所述数据校验请求中包括所述目标业务的类型信息;
校验信息获取单元,用于当接收到所述至少一个第二应用客户端根据所述数据校验请求返回的第二校验信息,所述第二校验信息包括所述第二应用客户端中与所述类型信息对应的业务数据相关的信息,获取所述目标业务的数据的第一校验信息;
校验单元,用于根据所述至少一个第二应用客户端分别对应的第二校验信息及所述第一校验信息对所述目标业务的数据进行校验,以确定是否对所述目标业务的数据进行更新。
本发明实施例另一方面还提供一种应用客户端,包括:
请求接收单元,用于接收第一应用客户端发送的数据校验请求,所述数据校验请求中包括所述第一应用客户端中目标业务的类型信息;
校验获取单元,用于根据所述数据校验请求,获取第二校验信息,所述第二校验信息包括与所述类型信息对应的业务数据相关的信息;
信息返回校验单元,用于将所述第二校验信息返回给所述第一应用客户端,以便所述第一应用客户端根据所述目标业务的数据的第一校验信息及所述第二校验信息对所述目标业务的数据进行校验,以确定是否对所述目标业务的数据进行更新。
本发明实施例另一方面还提供一种计算机可读存储介质,所述计算机可读存储介质储存多个计算机程序,所述计算机程序适于由处理器加载并执行如本发明实施例所述的数据校验方法。
本发明实施例另一方面还提供一种终端设备,包括处理器和存储器;
所述存储器用于储存多个计算机程序,所述计算机程序用于由处理器加载并执行如本发明实施例所述的数据校验方法;所述处理器,用于实现所述多个计算机程序中的各个计算机程序。
可见,在本发明实施例的数据校验方法中,第一应用客户端会向其它的第二应用客户端发起数据校验请求,并获取第二校验信息,根据第二校验信息与第一应用客户端中目标业务的数据的第一校验信息进行比较,即可得到校验结果,进而决定是否需要对目标业务的数据进行更新。在这个过程中任一应用客户端并不需要与服务器之间约定数据校验规则,而只需要实时地获取两种校验信息进行比较,实时地保证应用客户端中目标业务数据的完整性,同时简化了对目标业务的数据的校验,且降低了服务器的压力,并将校验过程与服务器中提供的服务之间进行解耦,扩展性比较强。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据校验方法所应用于的系统的示意图;
图2是本发明一个实施例提供的一种数据校验方法的流程图;
图3是本发明另一实施例提供的一种数据校验方法的流程图;
图4是本发明一个应用实施例中即时通信客户端的结构示意图;
图5是本发明一个应用实施例提供的一种数据校验方法的流程图;
图6是本发明另一应用实施例中数据校验方法所应用于的分布式系统的示意图;
图7是本发明另一应用实施例中区块结构的示意图;
图8是本发明实施例提供的一种应用客户端的逻辑结构示意图;
图9是本发明实施例提供的另一种应用客户端的逻辑结构示意图;
图10是本发明实施例提供的一种终端设备的逻辑结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例,例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排它的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供一种数据校验方法,主要可以应用于如图1所示的数据校验系统中,在该系统中可以包括:第一应用客户端10及多个(以n个为例说明)第二应用客户端11,其中:
第一应用客户端10可以与任一其它的应用客户端(比如第二应用客户端11)之间通信,具体地,第一应用客户端10,用于在某些事件的触发下,向第二应用客户端11发起数据校验请求,以请求对任一业务(比如目标业务)的数据进行校验,当接收到第二应用客户端11返回的第二校验信息,根据第二校验信息得到校验结果;若根据校验结果确定需要对第一应用客户端10中目标业务的数据进行更新时,向某一第二应用客户端11获取目标业务的更新数据,并用获取的更新数据替换当前储存的相应业务的数据。
第二应用客户端11,用于接收第一应用客户端10发送的数据校验请求,并根据数据校验请求返回第二校验信息。
在具体实现时,第一应用客户端10和第二应用客户端11可以是不同用户的应用客户端,也可以是同一用户的不同应用客户端。第一应用客户端10和第二应用客户端11可以是任意应用场景下的终端,比如装载即时通信客户端的智能手机、个人电脑、笔记本电脑或平板电脑等。
如图2所示,在本实施例中第一应用客户端10可以按照如下的步骤实现数据的校验:
步骤101,当确定对第一应用客户端中目标业务的数据进行数据校验时,选择至少一个第二应用客户端。
可以理解,第一应用客户端可以在预置事件发生时,确定需要对第一应用客户端获取到的目标业务的数据进行数据校验。在一种情况下,第一应用客户端可以选择与当前第一用户相关联的至少一个其它用户分别对应的应用客户端作为第二应用客户端,比如随机选择第二应用客户端,或者选择处于空闲状态的第二应用客户端等。这里的空闲状态是指第二应用客户端已登录服务器,但当前的一段时间内未进行通信操作的状态。
在其它情况下,第一应用客户端还可以选择当前第一用户的其它应用客户端作为第二应用客户端,这种情况主要是某一用户(比如第一用户)使用同一用户标识同时在多个应用客户端登录服务器时,其中任一应用客户端可以作为第一应用客户端选择其它应用客户端作为第二应用客户端,以发起数据校验请求。
其中,预置事件可以包括但不限于如下事件:第一应用客户端接收到用户获取目标业务的数据请求等。这里目标业务的数据可以是多个用户的应用客户端之间可以共享的业务数据,例如,若应用客户端是企业即时通信客户端,则目标业务的数据可以为组织架构信息,同事资料,公有文档数据,群内共享的文档等。
步骤102,分别向至少一个第二应用客户端发送数据校验请求,数据校验请求中包括目标业务的类型信息。
当第一应用客户端将数据校验请求发送给每个第二应用客户端后,任一第二应用客户端会根据数据校验请求中目标业务的类型信息,将第二校验信息返回给第一应用客户端。其中,第二校验信息是指第二应用客户端中与上述类型信息对应的业务数据相关的信息,主要是用于对目标业务的数据进行校验的信息,具体可以包括业务数据所形成的第二时间戳和第二内容标签等信息。这里业务数据对应的第二内容标签用于唯一标示业务数据的具体内容,比如业务数据的哈希值或数字签名。
步骤103,当接收到至少一个第二应用客户端根据数据校验请求返回的第二校验信息,第二校验信息包括第二应用客户端中与上述类型信息对应的业务数据相关的信息,获取目标业务的数据的第一校验信息。
这里,第一校验信息是指第一应用客户端中目标业务的数据相关的信息,主要是用于对目标业务的数据进行校验的信息,具体可以包括:目标业务的数据对应的第一时间戳及第一内容标签等。其中,目标业务的数据对应的第一时间戳是指目标业务的数据所形成的时间,而目标业务的数据对应的第一内容标签用于唯一标示目标业务的数据的具体内容,比如目标业务的数据的哈希值或数字签名。
步骤104,根据至少一个第二应用客户端分别对应的第二校验信息及第一校验信息对目标业务的数据进行校验,以确定是否对目标业务的数据进行更新。
具体地,第一应用客户端会根据各个第二应用客户端分别对应的第二校验信息及第一校验信息之间的比较,来检验目标业务的数据是否是最新的,如果不是最新的,则需要对当前目标业务的数据进行更新。具体可以包括但不限于如下几种情况:
(1)若第一校验信息中第一时间戳大于所有第二应用客户端的第二时间戳,确定目标业务的数据最新。
(2)若第一校验信息中第一时间戳小于所有第二应用客户端的第二时间戳,则确定对目标业务的数据进行更新。
(3)若第一校验信息中的第一时间戳大于或等于某些第二应用客户端的第二时间戳,而小于另一些第二应用客户端的第二时间戳时,当某些第二应用客户端的数量大于或等于预置值时,确定目标业务的数据最新;当某些第二应用客户端的数量小于预置值,确定对第一应用客户端中目标业务的数据进行更新。
可以理解,(1)、(2)和(3)的情况主要是在第一校验信息和第二校验信息中只包括时间戳时,对于目标业务的数据的校验。
(4)若第一校验信息中第一时间戳大于或等于第二时间戳,其中第一时间戳与某些第二应用客户端的第二时间戳相同,及第一内容标签与某些第二应用客户端的第二内容标签都一致,确定目标业务的数据最新。
(5)若第一时间戳大于或等于第二时间戳,其中第一时间戳与某些第二应用客户端的第二时间戳相同,且第一内容标签与某些第二应用客户端中部分第二应用客户端的第二内容标签都一致,及这部分第二应用客户端的数量大于预置值,确定目标业务的数据最新。
上述(4)和(5)的情况下,第一时间戳等于某些第二应用客户端的第二时间戳,而大于其它第二应用客户端的第二时间戳。
(6)若第一时间戳小于某些第二应用客户端的第二时间戳,且第一内容标签与某些第二应用客户端的第二内容标签都一致,确定目标业务的数据最新。
(7)若第一时间戳小于某些第二应用客户端的第二时间戳,且第一内容标签与某些第二应用客户端中一部分第二应用客户端的第二内容标签一致,及该一部分第二应用客户端的数量大于或等于预置值,确定目标业务的数据最新。
(8)若第一时间戳小于某些第二应用客户端的第二时间戳,且第一内容标签与某些第二应用客户端中一部分第二应用客户端的第二内容标签一致,及一部分第二应用客户端的数量小于预置值,确定对目标业务的数据进行更新。
可以理解,(4)到(8)的情况主要是在第一校验信息和第二校验信息中只包括了时间戳和内容标签时,对于目标业务的数据的校验。
(9)若第一内容标签与所有第二应用客户端的第二内容标签都一致时,确定目标业务的数据最新。
(10)若第一内容标签与某些第二应用客户端的第二内容标签一致,且某些第二应用客户端的数量大于或等于预置值时,确定目标业务的数据最新;当某些第二应用客户端的数量小于预置值时,确定对目标业务的数据进行更新。
可以理解,(9)到(10)的情况主要是在第一校验信息和第二校验信息中只包括了内容标签时,对于目标业务的数据的校验。
需要说明的是,通过上述的校验过程,若确定第一应用客户端中目标业务的数据最新,则不需要更新第一应用客户端中目标业务的数据,在这种情况下,有些第二应用客户端中的业务数据就不是最新的,则第一应用客户端可以先确定业务数据非最新的第二应用客户端,并发送更新通知给这些确定的第二应用客户端,该更新通知用于指示第二应用客户端对业务数据进行更新。这样第二应用客户端可以根据更新通知直接确定业务数据不是最新的,需要更新,而省去了第二应用客户端向第二应用客户端发起对业务数据进行校验的过程。
其中,在确定业务数据非最新的第二应用客户端时,可以根据第一校验信息和第二校验信息来确定,比如,在上述(1)的情况下,其它任一第二应用客户端的业务数据非最新;在上述(3)的情况下,当某些第二应用客户端的数量大于或等于预置值时,则这些第二应用客户端的业务数据非最新;在上述(4)的情况下,所有第二应用客户端中除某些第二应用客户端之前的其它第二应用客户端的业务数据非最新;在上述(5)的情况下,所有第二应用客户端中除部分第二应用客户端之外的其它第二应用客户端的业务数据非最新;在上述(6)的情况下,所有第二应用客户端中除某些第二应用客户端之外的其它第二应用客户端的业务数据非最新;在上述(7)的情况下,所有第二应用客户端中除一部分第二应用客户端之外的其它第二应用客户端的业务数据非最新;在上述(8)的情况下,所有第二应用客户端中除某些第二应用客户端之外的其它第二应用客户端的业务数据非最新;在上述(10)的情况下,当某些第二应用客户端的数量大于或等于预置值时,所有第二应用客户端中除某些第二应用客户端之外的其它第二应用客户端的业务数据非最新。
另外需要说明的是,若通过上述的校验过程确定需要对目标业务的数据进行更新,第一应用客户端可以向服务器获取最新的目标业务的数据。在其它情况下,第一应用客户端可以向某些第二应用客户端获取更新数据,具体地:确定业务数据最新的第二应用客户端,向确定的第二应用客户端获取相应的业务数据,用获取的业务数据更新当前第一应用客户端中目标业务的数据。
其中,在确定业务数据最新的第二应用客户端时,可以根据第一校验信息和第二校验信息来确定,比如,在上述(2)的情况下,第二时间戳最大的第二应用客户端的业务数据最新;在上述(3)的情况下,另一些第二应用客户端中第二时间戳最大的第二应用客户端的业务数据最新;在上述(8)的情况下,某些第二应用客户端中第二时间戳最大的第二应用客户端的业务数据最新。
可见,在本发明实施例的数据校验方法中,第一应用客户端会向其它的第二应用客户端发起数据校验请求,并获取第二校验信息,根据第二校验信息与第一应用客户端中目标业务的数据的第一校验信息进行比较,即可得到校验结果,进而决定是否需要对目标业务的数据进行更新。在这个过程中任一应用客户端并不需要与服务器之间约定数据校验规则,而只需要实时地获取两种校验信息进行比较,实时地保证应用客户端中目标业务数据的完整性,同时简化了对目标业务的数据的校验,且降低了服务器的压力,并将校验过程与服务器中提供的服务之间进行解耦,扩展性比较强。
本发明另一个实施例提供一种数据校验方法,主要是上述第一应用客户端选择的任一第二应用客户端所执行的方法,流程图如图3所示,包括:
步骤201,接收第一应用客户端发送的数据校验请求,数据校验请求中包括第一应用客户端中目标业务的类型信息。
可以理解,第一应用客户端可以在某些预置事件发生时,可以向至少一个第二应用客户端发起数据校验请求,当任一第二应用客户端接收到数据校验请求时,可以发起本实施例的流程。
步骤202,根据数据校验请求,获取第二校验信息,第二校验信息包括与类型信息对应的业务数据相关的信息,比如对应的业务数据的第二时间戳和第二内容标签等信息。
步骤203,将第二校验信息返回给第一应用客户端,以便第一应用客户端根据目标业务的数据的第一校验信息及第二校验信息对目标业务的数据进行校验,以确定是否对目标业务的数据进行更新。
其中,第一应用客户端根据第一校验和第二校验信息对目标业务的数据的校验方法见上述实施例中所示,在此不进行赘述。
需要说明的是,第一应用客户端可以确定第二应用客户端中的业务数据是否最新,若非最新,可以发送更新通给第二应用客户端,而第二应用客户端在接收到第一应用客户端发送的更新通知,更新通知用于指示第二应用客户端对业务数据进行更新,则可以直接根据更新通知更新与类型信息对应的业务数据。具体地,第二应用客户端可以向服务器获取业务数据的更新数据;或者,若第一应用客户端中的目标业务的数据最新,可以向第一应用客户端获取业务数据的更新信息。
另外需要说明的是,若第一应用客户端确定上述目标业务的数据非最新,需要更新,且确定第二应用客户端中的业务数据最新时,可以向第二应用客户端获取目标业务的更新数据,当第二应用客户端接收到第一应用客户端对目标业务的更新数据的获取请求,根据获取请求将与上述类型信息对应的业务数据发送给第一应用客户端进行更新。
可见,在本发明实施例的数据校验方法中,第二应用客户端会根据第一应用客户端发起的数据校验请求,返回与目标业务的类型信息对应的业务数据的第二校验信息,由第一应用客户端根据第二校验信息对目标业务的数据进行校验。在这个过程中任一应用客户端并不需要与服务器之间约定数据校验规则,而只需要实时地获取两种校验信息进行比较,实时地保证应用客户端中目标业务数据的完整性,同时简化了对目标业务的数据的校验,且降低了服务器的压力,并将校验过程与服务器中提供过的服务之间进行解耦,扩展性比较强。
以下以一个具体的应用实例来说明本发明的数据校验方法,本实施例的方法主要应用于即时通信客户端中,即上述应用客户端为即时通信客户端,如图4所示,本实施例的即时通信客户端中涉及本发明实施例中数据校验方法的结构可以包括:业务数据校验模块20、选择模块21、通信模块22和数据更新模块23,其中:
业务数据校验模块20,用于根据预置事件确定要对目标业务的数据进行校验时,获取目标业务的数据的第一校验信息,比如第一时间戳和第一内容标签。当接收到第二即时通信客户端(记为即时通信客户端2)返回的第二校验信息,根据第一校验信息和第二校验信息对目标业务的数据进行校验。
选择模块21,用于业务数据校验模块20确定对目标业务的数据进行校验时,按照一定的规则自动选择出第二即时通信客户端。
通信模块22,用于向选择模块21选择出的第二即时通信客户端发送数据校验请求,其中可以包括目标业务的类型信息,比如组织架构数据类型等,在数据校验请求中还可以包括上述的第一校验信息等。
数据更新模块23,用于当业务数据校验模块20确定要对目标业务的数据进行更新,更新当前储存的目标业务的数据。
如图5所示,本实施例的数据校验方法可以包括如下步骤:
步骤301,用户通过即时通信客户端1登录到服务器,当用户通过操作即时通信客户端1,以显示目标业务的数据时,当获取到目标业务的数据后,即时通信客户端1会确定先对目标业务的数据进行校验,则即时通信客户端1中的选择模块21会选择多个其它即时通信客户端2。
步骤302,即时通信客户端1中的通信模块22向每个即时通信客户端2发送数校验请求,其中包括目标业务的类型信息等。
步骤303,即时通信客户端2根据数据校验请求,向即时通信客户端1返回与其中的类型信息对应的业务数据的第二校验信息。
步骤304,即时通信客户端1获取每个即时通信客户端2对应的第二校验信息,并通过业务数据校验模块20获取目标业务的数据的第一校验信息,将第一校验信息分别与每个即时通信客户端2对应的第二校验信息进行比较,具体得到的校验结果可以包括:目标业务的数据最新,或对目标业务的数据进行更新。其中,具体如何得到校验结果如上述实施例中所述,在此不进行赘述。
例如,现有10个即时通信客户端2,分别记为Peer0,Peer1,...,Peer9,基于同一目标业务的数据,每个即时通信客户端的校验信息如下表1所示:
Figure BDA0003333041810000111
Figure BDA0003333041810000121
表1
可见,当Peer0作为上述即时通信客户端1,发起数据校验请求时,将其它即时通信客户端作为上述即时通信客户端2,即时通信客户端1的第一时间戳与某些即时通信客户端2的第二时间戳相等时,即时通信客户端1的第一内容标签与其中一部分即时通信客户端2的第二内容标签一致,而这部分即时通信客户端2的数量大于预置值,则确定Peer0中目标业务的数据最新,不需要更新。
当Peer8作为上述即时通信客户端1,发起数据校验请求时,将其它即时通信客户端作为上述即时通信客户端2,即时通信客户端1的第一时间戳是最新的,但是第一内容标签与其它即时通信客户端2的第二时间戳都不相同,需要对即时通信客户端1中目标业务的数据进行更新。
当Peer9作为上述即时通信客户端1,发起数据校验请求时,将其它即时通信客户端作为上述即时通信客户端2,即时通信客户端1的第一时间戳不是最新的,都小于其它即时通信客户端2的第二时间戳,需要对即时通信客户端1中目标业务的数据进行更新。
步骤305,当业务数据校验模块20确定目标业务的数据最新,则可以直接显示获取的目标业务的数据;当业务数据校验模块20确定对目标业务的数据更新时,数据更新模块23会对目标业务的数据进行更新,比如向某一即时通信客户端2获取目标业务的更新数据进行更新。
可见,本发明实施例的方法可以在与服务器进行数据同步异常或者本地数据因为某些原因被破坏的情况(例如写数据库偶现失败)下,对当前即时通信客户端中获取的目标业务的数据进行校验及更新的过程,并且本实施例的方法可以应用在同一用户不同客户端(windows,android,iOS,Mac等)数据校验的场景,可以用于校验组织架构、资料、消息、文件等目标业务的数据的完整性,也可能代替部分p2p传数据的场景,降低服务器压力。例如在群中下载文件的情况下,在用户的即时通信客户端没有打开对应的群聊天窗口查看时,可以通过本发明实施例的方法向其它即时通信客户端获取对应的文件内容,尤其在局域网情况下可以得到加速效果。
以下以另一具体的应用实例来说明本发明中数据校验方法,本发明实施例中的应用客户端主要为分布式系统100,该分布式系统可以包括客户端300及多个节点200(接入网络中的任意形式的计算设备,如服务器、用户终端),客户端300与节点200之间通过网络通信的形式连接。
以分布式系统为区块链系统为例,参见图6是本发明实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点200(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端300形成,节点之间形成组成的点对点(P2P,Peer ToPeer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图6示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其它节点,供其它节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括实现数据校验功能的代码,该数据校验功能主要包括:
当确定对第一应用客户端中目标业务的数据进行数据校验时,选择至少一个第二应用客户端;分别向所述至少一个第二应用客户端发送数据校验请求,所述数据校验请求中包括所述目标业务的类型信息;当接收所述至少一个第二应用客户端根据所述数据校验请求返回的第二校验信息,所述第二校验信息包括所述第二应用客户端中与所述类型信息对应的业务数据相关的信息,获取所述目标业务的数据的第一校验信息;根据所述至少一个第二应用客户端分别对应的第二校验信息及所述第一校验信息对所述目标业务的数据进行校验,以确定是否对所述目标业务的数据进行更新。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图7为本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
本发明实施例还提供一种应用客户端,比如上述的第一应用客户端,其结构示意图如图8所示,具体可以包括:
选择单元30,用于当确定对当前应用客户端中目标业务的数据进行数据校验时,选择至少一个第二应用客户端。
该选择单元30,具体用于选择与当前第一用户相关联的至少一个其它用户分别对应的应用客户端作为所述第二应用客户端;或者,选择所述当前第一用户的其它应用客户端作为第二应用客户端。
校验请求单元31,用于分别向所述选择单元30选择的至少一个第二应用客户端发送数据校验请求,所述数据校验请求中包括所述目标业务的类型信息。
校验信息获取单元32,用于当接收到所述至少一个第二应用客户端根据所述校验请求单元31发送的数据校验请求返回的第二校验信息,所述第二校验信息包括所述第二应用客户端中与所述类型信息对应的业务数据相关的信息,获取所述目标业务的数据的第一校验信息。
校验单元33,用于根据所述校验信息获取单元32获取的至少一个第二应用客户端分别对应的第二校验信息及所述第一校验信息对所述目标业务的数据进行校验,以确定是否对所述目标业务的数据进行更新。
该校验单元33,具体用于所述第一校验信息包括所述目标业务的数据对应的第一时间戳,第二校验信息包括所述业务数据对应的第二时间戳;若所述第一时间戳大于所有的第二时间戳,确定所述目标业务的数据最新;若所述第一时间戳小于所有第二时间戳,确定对所述目标业务的数据进行更新。
进一步地,校验单元33,还用于所述第一校验信息还包括所述目标业务的数据对应的第一内容标签,所述第二校验信息包括所述业务数据对应的第二内容标签;若所述第一时间戳大于或等于所述第二时间戳,所述第一时间戳与某些第二应用客户端的第二时间戳相同,且所述第一内容标签与所述某些第二应用客户端的第二内容标签都一致,确定所述目标业务的数据最新;或者,若所述第一时间戳大于或等于所述第二时间戳,所述第一时间戳与某些第二应用客户端的第二时间戳相同,且所述第一内容标签与所述某些第二应用客户端中部分第二应用客户端的第二内容标签都一致,及所述部分第二应用客户端的数量大于预置值,确定所述目标业务的数据最新;或者若所述第一时间戳小于某些第二应用客户端的第二时间戳,且所述第一内容标签与所述某些第二应用客户端的第二内容标签都一致,确定所述目标业务的数据最新;或者,若所述第一时间戳小于某些第二应用客户端的第二时间戳,且所述第一内容标签与所述某些第二应用客户端中一部分第二应用客户端的第二内容标签一致,及所述一部分第二应用客户端的数量大于或等于预置值,确定所述目标业务的数据最新;或者,若所述第一时间戳小于某些第二应用客户端的第二时间戳,且所述第一内容标签与所述某些第二应用客户端中一部分第二应用客户端的第二内容标签一致,及所述一部分第二应用客户端的数量小于所述预置值,确定对所述目标业务的数据进行更新。
进一步地,本实施例的应用客户端还可以包括:
通知单元34,用于根据上述校验单元33进行的校验,确定所述业务数据非最新的第二应用客户端,发送更新通知给所述确定的第二应用终端,所述更新通知用于指示所述第二应用客户端对所述业务数据进行更新。
更新单元35,用于若上述校验单元33确定对所述目标业务的数据进行更新时,确定所述业务数据最新的第二应用客户端,向所述确定的第二应用客户端获取相应的业务数据,用所述获取的业务数据更新所述目标业务的数据。
可见,在本发明实施例的应用客户端中,校验请求单元31会向其它的第二应用客户端发起数据校验请求,校验信息获取单元32获取第二校验信息后,校验单元33根据第二校验信息与第一应用客户端中目标业务的数据的第一校验信息进行比较,即可得到校验结果,进而决定是否需要对目标业务的数据进行更新。在这个过程中任一应用客户端并不需要与服务器之间约定数据校验规则,而只需要实时地获取两种校验信息进行比较,实时地保证应用客户端中目标业务数据的完整性,同时简化了对目标业务的数据的校验,且降低了服务器的压力,并将校验过程与服务器中提供的服务之间进行解耦,扩展性比较强。
本发明实施例还提供另一种应用客户端,比如上述的第二应用客户端,其结构示意图如图9所示,具体可以包括:
请求接收单元40,用于接收第一应用客户端发送的数据校验请求,所述数据校验请求中包括所述第一应用客户端中目标业务的类型信息。
校验获取单元41,用于根据所述请求接收单元40接收的数据校验请求,获取第二校验信息,所述第二校验信息包括与所述类型信息对应的业务数据相关的信息。
信息返回校验单元42,用于将所述校验获取单元41获取的第二校验信息返回给所述第一应用客户端,以便所述第一应用客户端根据所述目标业务的数据的第一校验信息及所述第二校验信息对所述目标业务的数据进行校验,以确定是否对所述目标业务的数据进行更新。
进一步地,本实施例的应用客户端还可以包括:
通知更新单元43,用于接收所述第一应用客户端发送的更新通知,所述更新通知用于指示所述应用客户端对所述业务数据进行更新;根据所述更新通知更新与所述类型信息对应的业务数据。
更新数据发送单元44,用于接收所述第一应用客户端对所述目标业务的更新数据的获取请求,根据所述获取请求将所述业务数据发送给所述第一应用客户端进行更新。
可见,在本发明实施例的应用客户端中,信息返回校验单元42会根据第一应用客户端发起的数据校验请求,返回与目标业务的类型信息对应的业务数据的第二校验信息,由第一应用客户端根据第二校验信息对目标业务的数据进行校验。在这个过程中任一应用客户端并不需要与服务器之间约定数据校验规则,而只需要实时地获取两种校验信息进行比较,实时地保证应用客户端中目标业务数据的完整性,同时简化了对目标业务的数据的校验,且降低了服务器的压力,并将校验过程与服务器中提供过的服务之间进行解耦,扩展性比较强。
本发明实施例还提供一种终端设备,其结构示意图如图10所示,该终端设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)50(例如,一个或一个以上处理器)和存储器51,一个或一个以上存储应用程序521或数据522的存储介质52(例如一个或一个以上海量存储设备)。其中,存储器51和存储介质52可以是短暂存储或持久存储。存储在存储介质52的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对终端设备中的一系列指令操作。更进一步地,中央处理器50可以设置为与存储介质52通信,在终端设备上执行存储介质52中的一系列指令操作。
具体地,在存储介质52中储存的应用程序521包括数据校验的应用程序,且该程序可以包括上述应用客户端中的选择单元30,校验请求单元31,校验信息获取单元32,校验单元33,通知单元34和更新单元35,在此不进行赘述。更进一步地,中央处理器50可以设置为与存储介质52通信,在终端设备上执行存储介质52中储存的数据校验的应用程序对应的一系列操作。
终端设备还可以包括一个或一个以上电源53,一个或一个以上有线或无线网络接口54,一个或一个以上输入输出接口55,和/或,一个或一个以上操作系统523,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述方法实施例中所述的由第一应用客户端所执行的步骤可以基于该图10所示的终端设备的结构。
本发明实施例还提供另一种终端设备,终端设备的结构可以如上述图10所示的终端设备所示,不同的是,在本实施例中:
具体地,在存储介质中储存的应用程序包括数据校验的应用程序,且该程序可以包括上述应用客户端中的请求接收单元40,校验获取单元41,信息返回校验单元42,通知更新单元43和更新数据发送单元44,在此不进行赘述。更进一步地,中央处理器可以设置为与存储介质通信,在终端设备上执行存储介质中储存的数据校验的应用程序对应的一系列操作。
且上述方法实施例中所述的由第二应用客户端所执行的步骤可以基于本实施例中的终端设备的结构。
本发明实施例另一方面还提供一种计算机可读存储介质,所述计算机可读存储介质储存多个计算机程序,所述计算机程序适于由处理器加载并执行如上述第一应用客户端或第二应用客户端所执行的数据校验方法。
本发明实施例另一方面还提供一种终端设备,包括处理器和存储器;
所述存储器用于储存多个计算机程序,所述计算机程序用于由处理器加载并执行如上述第一应用客户端或第二应用客户端所执行的数据校验方法;所述处理器,用于实现所述多个计算机程序中的各个计算机程序。
另外,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的数据校验方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM)、随机存取存储器(RAM)、磁盘或光盘等。
以上对本发明实施例所提供的一种数据校验方法及存储介质和相关设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (14)

1.一种数据校验方法,其特征在于,包括:
当确定对第一应用客户端中目标业务的数据进行数据校验时,选择至少一个第二应用客户端;
分别向所述至少一个第二应用客户端发送数据校验请求,所述数据校验请求中包括所述目标业务的类型信息;
当接收到所述至少一个第二应用客户端根据所述数据校验请求返回的第二校验信息,所述第二校验信息包括所述第二应用客户端中与所述类型信息对应的业务数据相关的信息,获取所述目标业务的数据的第一校验信息;
根据所述至少一个第二应用客户端分别对应的第二校验信息及所述第一校验信息对所述目标业务的数据进行校验,以确定是否对所述目标业务的数据进行更新。
2.如权利要求1所述的方法,其特征在于,所述选择至少一个第二应用客户端,具体包括:
选择与当前第一用户相关联的至少一个其它用户分别对应的应用客户端作为所述第二应用客户端;
或者,选择所述当前第一用户的其它应用客户端作为第二应用客户端。
3.如权利要求1所述的方法,其特征在于,所述第一校验信息包括所述目标业务的数据对应的第一时间戳,第二校验信息包括所述业务数据对应的第二时间戳;
则所述根据所述至少一个第二应用客户端分别对应的第二校验信息及所述第一校验信息对所述目标业务的数据进行校验,具体包括:
若所述第一时间戳大于所有的第二时间戳,确定所述目标业务的数据最新;
若所述第一时间戳小于所有第二时间戳,确定对所述目标业务的数据进行更新。
4.如权利要求3所述的方法,其特征在于,所述第一校验信息还包括所述目标业务的数据对应的第一内容标签,所述第二校验信息包括所述业务数据对应的第二内容标签;
则所述根据所述至少一个第二应用客户端分别对应的第二校验信息及所述第一校验信息对所述目标业务的数据进行校验,还包括:
若所述第一时间戳大于或等于所述第二时间戳,所述第一时间戳与某些第二应用客户端的第二时间戳相同,且所述第一内容标签与所述某些第二应用客户端的第二内容标签都一致,确定所述目标业务的数据最新;
或者,若所述第一时间戳大于或等于所述第二时间戳,所述第一时间戳与某些第二应用客户端的第二时间戳相同,且所述第一内容标签与所述某些第二应用客户端中部分第二应用客户端的第二内容标签都一致,及所述部分第二应用客户端的数量大于预置值,确定所述目标业务的数据最新。
5.如权利要求4所述的方法,其特征在于,所述根据所述至少一个第二应用客户端分别对应的第二校验信息及所述第一校验信息对所述目标业务的数据进行校验,还包括:
若所述第一时间戳小于某些第二应用客户端的第二时间戳,且所述第一内容标签与所述某些第二应用客户端的第二内容标签都一致,确定所述目标业务的数据最新;
若所述第一时间戳小于某些第二应用客户端的第二时间戳,且所述第一内容标签与所述某些第二应用客户端中一部分第二应用客户端的第二内容标签一致,及所述一部分第二应用客户端的数量大于或等于预置值,确定所述目标业务的数据最新;
若所述第一时间戳小于某些第二应用客户端的第二时间戳,且所述第一内容标签与所述某些第二应用客户端中一部分第二应用客户端的第二内容标签一致,及所述一部分第二应用客户端的数量小于所述预置值,确定对所述目标业务的数据进行更新。
6.如权利要求3至5任一项所述的方法,其特征在于,所述方法还包括:
确定所述业务数据非最新的第二应用客户端,发送更新通知给所述确定的第二应用终端,所述更新通知用于指示所述第二应用客户端对所述业务数据进行更新。
7.如权利要求3至5任一项所述的方法,其特征在于,若确定对所述目标业务的数据进行更新时,所述方法还包括:
确定所述业务数据最新的第二应用客户端,向所述确定的第二应用客户端获取相应的业务数据,用所述获取的业务数据更新所述目标业务的数据。
8.一种数据校验方法,其特征在于,包括:
接收第一应用客户端发送的数据校验请求,所述数据校验请求中包括所述第一应用客户端中目标业务的类型信息;
根据所述数据校验请求,获取第二校验信息,所述第二校验信息包括与所述类型信息对应的业务数据相关的信息;
将所述第二校验信息返回给所述第一应用客户端,以便所述第一应用客户端根据所述目标业务的数据的第一校验信息及所述第二校验信息对所述目标业务的数据进行校验,以确定是否对所述目标业务的数据进行更新。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
接收所述第一应用客户端发送的更新通知,所述更新通知用于指示第二应用客户端对所述业务数据进行更新;
根据所述更新通知更新与所述类型信息对应的业务数据。
10.如权利要求8或9所述的方法,其特征在于,所述方法还包括:
接收所述第一应用客户端对所述目标业务的更新数据的获取请求,根据所述获取请求将所述业务数据发送给所述第一应用客户端进行更新。
11.一种应用客户端,其特征在于,包括:
选择单元,用于当确定对所述应用客户端中目标业务的数据进行数据校验时,选择至少一个第二应用客户端;
校验请求单元,用于分别向所述至少一个第二应用客户端发送数据校验请求,所述数据校验请求中包括所述目标业务的类型信息;
校验信息获取单元,用于当接收到所述至少一个第二应用客户端根据所述数据校验请求返回的第二校验信息,所述第二校验信息包括所述第二应用客户端中与所述类型信息对应的业务数据相关的信息,获取所述目标业务的数据的第一校验信息;
校验单元,用于根据所述至少一个第二应用客户端分别对应的第二校验信息及所述第一校验信息对所述目标业务的数据进行校验,以确定是否对所述目标业务的数据进行更新。
12.一种应用客户端,其特征在于,包括:
请求接收单元,用于接收第一应用客户端发送的数据校验请求,所述数据校验请求中包括所述第一应用客户端中目标业务的类型信息;
校验获取单元,用于根据所述数据校验请求,获取第二校验信息,所述第二校验信息包括与所述类型信息对应的业务数据相关的信息;
信息返回校验单元,用于将所述第二校验信息返回给所述第一应用客户端,以便所述第一应用客户端根据所述目标业务的数据的第一校验信息及所述第二校验信息对所述目标业务的数据进行校验,以确定是否对所述目标业务的数据进行更新。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质储存多个计算机程序,所述计算机程序适于由处理器加载并执行如权利要求1至10任一项所述的数据校验方法。
14.一种终端设备,其特征在于,包括处理器和存储器;
所述存储器用于储存多个计算机程序,所述计算机程序用于由处理器加载并执行如权利要求1至10任一项所述的数据校验方法;所述处理器,用于实现所述多个计算机程序中的各个计算机程序。
CN202111286025.9A 2021-11-02 2021-11-02 一种数据校验方法及存储介质和相关设备 Pending CN116070284A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111286025.9A CN116070284A (zh) 2021-11-02 2021-11-02 一种数据校验方法及存储介质和相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111286025.9A CN116070284A (zh) 2021-11-02 2021-11-02 一种数据校验方法及存储介质和相关设备

Publications (1)

Publication Number Publication Date
CN116070284A true CN116070284A (zh) 2023-05-05

Family

ID=86178995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111286025.9A Pending CN116070284A (zh) 2021-11-02 2021-11-02 一种数据校验方法及存储介质和相关设备

Country Status (1)

Country Link
CN (1) CN116070284A (zh)

Similar Documents

Publication Publication Date Title
US7650394B2 (en) Synchronizing email recipient lists using block partition information
CN108881354B (zh) 一种推送信息存储方法、装置、服务器和计算机存储介质
CN108683668B (zh) 内容分发网络中的资源校验方法、装置、存储介质及设备
CN111698315B (zh) 针对区块的数据处理方法、数据处理装置及计算机设备
US20070094334A1 (en) Service/client synchronization
CN107656988A (zh) 文档编辑方法及系统
CN110597922B (zh) 数据处理方法、装置、终端及存储介质
CN112422341B (zh) 区块链网络的故障检测方法及相关设备
CN108710681A (zh) 文件获取方法、装置、设备及存储介质
CN111414426A (zh) 一种基于区块链的数据处理方法及系统
CN101883079B (zh) 在互联网中用于加速点播多媒体内容的方法与装置
CN113259139A (zh) 一种创建群组方法及装置
CN110619022B (zh) 基于区块链网络的节点检测方法、装置、设备及存储介质
CN114629867A (zh) 在线问诊即时通讯系统和消息处理方法
CN114416883A (zh) 区块链轻节点数据同步方法、装置、设备及可读存储介质
CN113779153A (zh) 一种数据同步方法、装置、电子设备及存储介质
CN110618989B (zh) 信息处理方法、信息处理装置及相关产品
CN110597820B (zh) 基于区块链的信息处理方法、装置、存储介质和设备
CN111695098A (zh) 多分布式集群访问方法及装置
CN111526165A (zh) 联盟链中的共识方法和系统
CN116070284A (zh) 一种数据校验方法及存储介质和相关设备
CN110545296A (zh) 一种日志数据获取方法、装置及其设备
CN111586438B (zh) 一种业务数据的处理方法、装置及系统
CN111915325B (zh) 区块链交易信息的溯源方法、系统及计算机可读存储介质
CN113987062A (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