CN104780211B - 数据同步方法和装置 - Google Patents
数据同步方法和装置 Download PDFInfo
- Publication number
- CN104780211B CN104780211B CN201510173247.8A CN201510173247A CN104780211B CN 104780211 B CN104780211 B CN 104780211B CN 201510173247 A CN201510173247 A CN 201510173247A CN 104780211 B CN104780211 B CN 104780211B
- Authority
- CN
- China
- Prior art keywords
- data
- client
- server
- synchronized
- synchronization
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种数据同步方法和装置,所述数据同步方法包括步骤:客户端从服务器获取访问凭证和消息密钥,所述消息密钥用于加解密后续客户端和服务器之间交互的数据;客户端使用所述访问凭证访问服务器,向服务器请求服务器端待同步数据;客户端根据服务器发送的所述服务器端待同步数据进行数据同步处理;处理完成后,客户端获取客户端待同步数据并发送给服务器,以使服务器根据所述客户端待同步数据进行数据同步处理,并确认服务器发送的处理结果。本发明合理利用移动终端的性能,在进行数据同步时将数据同步的操作逻辑交给移动终端(即客户端)处理,大大减小了服务器的压力,有效提高了服务器的并发处理数量。
Description
技术领域
本发明涉及通信技术领域,尤其是涉及一种数据同步方法和装置。
背景技术
随着3G技术的逐渐成熟和移动终端的普及,移动互联网时代逐级拉开了帷幕。人们将更多地使用智能手机、平板电脑、电子书等移动终端连接互联网获取信息。与PC互联网时代不同,移动互联网时代将呈现出终端、平台多样化的趋势。多样化的信息渠道在带给用户便捷的同时,也引入了多设备之间数据融合的难题。用户迫切需要一种技术,使得各种设备之间的数据达到一致性,因此数据同步技术应运而生。
目前,数据同步的逻辑处理都是在服务器端进行,由客户端发送客户端待同步数据到服务器,服务器处理完之后将服务器端待同步数据发送给客户端,同时服务器还需要维护同步数据客户端ID和服务器端ID的映射关系表。然而,随着移动终端的不断发展和普及,客户端的处理请求越来越多,使得服务器的压力也越来越大。
发明内容
本发明的主要目的在于提供一种数据同步方法和装置,旨在数据同步过程中减小服务器的压力,有效提高服务器的并发处理数量。
为达以上目的,本发明提出一种数据同步方法,应用于客户端,包括步骤:
客户端从服务器获取访问凭证和消息密钥,所述消息密钥用于加解密后续客户端和服务器之间交互的数据;
客户端使用所述访问凭证访问服务器,向服务器请求服务器端待同步数据;
客户端根据服务器发送的所述服务器端待同步数据进行数据同步处理;
处理完成后,客户端获取客户端待同步数据并发送给服务器,以使服务器根据所述客户端待同步数据进行数据同步处理,并确认服务器发送的处理结果。
优选地,所述客户端获取客户端待同步数据包括:客户端将每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据,并从中剔除已经被所述服务器端待同步数据同步更新过的数据后作为客户端待同步数据。
优选地,所述访问凭证由服务器地址、用户信息、客户端IP地址或/和时间戳组成。
本发明还提出一种数据同步方法,应用于服务器端,包括步骤:
服务器生成访问凭证和消息密钥并发送给客户端,所述消息密钥用于加解密后续客户端和服务器之间交互的数据;
服务器对客户端提供的访问凭证进行校验;
当校验通过后,服务器获取服务器端待同步数据并发送给客户端,以使客户端根据所述服务器端待同步数据进行数据同步处理;
服务器接收客户端发送的客户端待同步数据,根据所述客户端待同步数据进行数据同步处理,并将处理结果返回给客户端。
优选地,所述服务器获取服务器端待同步数据包括:服务器将每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据作为服务器端待同步数据。
优选地,所述方法还包括:每次交互结束后,服务器更新消息密钥返回给客户端,以供下次交互时使用。
本发明同时提出一种数据同步装置,应用于客户端,包括获取模块、第一同步模块和第二同步模块,其中:
所述获取模块,用于从服务器获取访问凭证和消息密钥,所述消息密钥用于加解密后续客户端和服务器之间交互的数据;
所述第一同步模块,用于使用所述访问凭证访问服务器,向服务器请求服务器端待同步数据,根据服务器发送的所述服务器端待同步数据进行数据同步处理;
所述第二同步模块,用于当第一同步模块处理完成后,获取客户端待同步数据并发送给服务器,以使服务器根据所述客户端待同步数据进行数据同步处理,并确认服务器发送的处理结果。
优选地,所述第二同步模块用于:
将每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据,并从中剔除已经被所述服务器端待同步数据同步更新过的数据后作为客户端待同步数据。
本发明还提出一种数据同步装置,应用于服务器端,包括生成单元、校验单元、第一同步单元和第二同步单元,其中:
所述生成单元,用于生成访问凭证和消息密钥并发送给客户端,所述消息密钥用于加解密后续客户端和服务器之间交互的数据;
所述校验单元,用于对客户端提供的访问凭证进行校验;
所述第一同步单元,用于当校验通过后,获取服务器端待同步数据并发送给客户端,以使客户端根据所述服务器端待同步数据进行数据同步处理;
所述第二同步单元,用于接收客户端发送的客户端待同步数据,根据所述客户端待同步数据进行数据同步处理,并将处理结果返回给客户端。
优选地,所述第一同步单元用于:将每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据作为服务器端待同步数据。
优选地,所述生成单元还用于:每次交互结束后,更新消息密钥返回给客户端,以供下次交互时使用。
优选地,所述生成单元用于:根据服务器地址、用户信息、客户端IP地址或/和时间戳生成访问凭证。
本发明所提供的一种数据同步方法和装置,合理利用移动终端的性能,在进行数据同步时将数据同步的操作逻辑交给移动终端(即客户端)处理,大大减小了服务器的压力,有效提高了服务器的并发处理数量。同时,服务器端不需要维护同步数据客户端Id和服务器端ID的映射关系表,简化了同步操作流程。而且,本发明采用访问凭证校验和消息密钥加密交换数据的方式,改进了服务器和客户端之间交互的鉴权方式,减少了服务器和客户端交互的次数,优化了客户端与服务器的访问流程,有效提高了整个同步操作的效率。
附图说明
图1是本发明的数据同步方法第一实施例的流程图;
图2是本发明的数据同步装置第一实施例的模块示意图;
图3是本发明的数据同步方法第二实施例的流程图;
图4是本发明的数据同步装置第二实施例的模块示意图;
图5是本发明的数据同步***一实施例的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
鉴于移动终端的性能不断提高,本发明合理利用移动终端的性能,在进行数据同步时将数据同步的操作逻辑交给移动终端处理,以大大减小了服务器的压力,有效提高服务器的并发处理数量。以下通过具体实施例对本发明的技术方案进行详细说明。
实施例一
参见图1,提出本发明的数据同步方法一实施例,本实施例的数据同步方法应用于客户端,包括以下步骤:
步骤S11:客户端从服务器获取访问凭证和消息密钥。
具体的,客户端使用用户的账号和密码(密码值可以为明文密码和其它参数一起进行MD5加密后的值)等用户信息访问服务器(如FOTA服务器),服务器对帐号和密码等用户信息进行验证,通过验证后则生成服务器访问凭证(Token Id)和消息密钥,并发送给客户端。本发明中的客户端,是指与服务器进行数据同步的终端设备,如手机、平板电脑、电子书等移动终端。
其中,消息密钥用于对后续客户端和服务器之间交互的数据进行加解密,即后续客户端和服务器交互的所有数据均需要通过消息密钥进行加密后再进行传送。访问凭证由服务器地址、用户信息、客户端IP地址或/和时间戳组成,即服务器根据FOTA服务器地址、用户信息、客户端IP地址和时间戳中任一种或任意组合生成访问凭证。
步骤S12:客户端使用访问凭证访问服务器,向服务器请求服务器端待同步数据。
具体的,客户端使用访问凭证访问服务器,向服务器请求服务器端待同步数据。服务器对客户端提供的访问凭证进行校验,校验通过后,获取服务器端待同步数据,并使用消息密钥对服务器端待同步数据进行加密后发送给客户端。
服务器发送的服务器端待同步数据的结构为:sid+status(N/U/D)+dataInfo。其中,sid标识同步数据对应的服务器ID,是服务器数据唯一标识;status(N/U/D)标识同步数据的操作类型,其中N代表新增,U代表修改,D代表删除;dataInfo标识同步数据的明细。
服务器可以通过以下方式获取服务器端待同步数据:服务器将存储的每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据作为服务器端待同步数据。例如,若某笔数据最后修改时间戳晚于最近一次同步的时间戳,则认为该笔数据在上一次同步操作完成后有修改,反之则认为没有修改。
步骤S13:客户端根据服务器发送的服务器端待同步数据进行数据同步处理。
具体的,客户端接收到服务器端待同步数据后,根据服务器端待同步数据的结构sid+status(N/U/D)+dataInfo中的sid查询客户端本地数据。当客户端本地数据中已经存在该sid对应的数据时,则直接根据status(N/U/D)进行数据修改。
当客户端本地数据中不存在该sid对应的数据时,则将服务器端待同步数据与其它无sid的数据进行比较处理后更新到数据库。举例而言:
假设服务器端待同步数据为A:sid+status(N/U/D)+datainfo,将A与客户端中其它无sid的数据的datainfo进行比较。如果客户端有相同datainfo(具体判断方法可根据需求设置)的数据B:cid+status(N/U/D)+datainfo,其中cid标识同步数据对应的客户端ID,是客户端数据唯一标识,则将A的sid更新到B中,最终客户端得到数据B:cid+sid+status(N/U/D)+dataInfo;如果客户端没有相同datainfo的数据,则直接将A新增到客户端的本地数据库中,客户端也得到数据B:cid+sid+status(N/U/D)+dataInfo。
步骤S14:客户端获取客户端待同步数据并发送给服务器,以使服务器根据客户端待同步数据进行数据同步处理,并确认服务器发送的处理结果。
具体的,客户端处理完服务器端待同步数据后,获取客户端待同步数据,并使用消息密钥进行加密后发送给服务器。客户端待同步数据的结构有两种,一种为:sid+cid+status(N/U/D)+dataInfo,另一种为:cid+status(N)+dataInfo(当客户端没有sid的数据时,status均设置为新增N)。
客户端可以通过以下方式获取客户端待同步数据:客户端将每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据,并从中剔除已经在前一步骤S13中被服务器端待同步数据同步更新过的数据后作为客户端待同步数据。
服务器接收到客户端待同步数据后,根据客户端待同步数据进行数据同步处理,并将处理结果返回给客户端。如果客户端有标识当前发送的是最后一个数据包,服务器则同时注销本次操作的访问凭证和消息密钥。
服务器进行同步处理时,对于结构为sid+cid+status(N/U/D)+dataInfo的数据,则直接根据sid更新到服务器的数据库中;对于结构为cid+status(N)+dataInfo的数据,则直接新增到服务器的数据库中,并得到由这部分新增数据的sid与cid组成的一一对应的映射关系,并将sid与cid的映射关系返回给客户端。客户端根据接收到的sid和cid的映射关系,通过cid将sid更新到对应的同步数据中,最终数据同步操作完成。最终结果为:
服务器与客户端数据同步保持一致;
客户端的所有数据结构均为:sid+cid+status(N/U/D)+dataInfo;
服务器的所有数据结构均为:sid+status(N/U/D)+dataInfo。
进一步地,每次交互结束后,服务器都会更新消息密钥返回给客户端,以供下次交互时使用,即服务器与客户端每交互一次就刷新一次消息密钥,从而提高了数据交互的安全性。
参见图2,提出本发明实现上述数据同步方法的数据同步装置一实施例,本实施例的数据同步装置应用于客户端,包括获取模块、第一同步模块和第二同步模块,其中:
获取模块:用于从服务器获取访问凭证和消息密钥。
具体的,获取模块使用用户的账号和密码(密码值可以为明文密码和其它参数一起进行MD5加密后的值)等用户信息访问服务器,接收服务器发送的访问凭证(Token Id)和消息密钥。
其中,消息密钥用于对后续客户端和服务器之间交互的信息进行加解密,即后续客户端和服务器交互的所有信息均需要通过消息密钥进行加密后再进行传送。访问凭证由服务器地址、用户信息、客户端IP地址或/和时间戳组成。
第一同步模块:用于使用访问凭证访问服务器,向服务器请求服务器端待同步数据,根据服务器发送的服务器端待同步数据进行数据同步处理。
具体的,第一同步模块使用访问凭证访问服务器,向服务器请求服务器端待同步数据。第一同步模块接收到服务器端待同步数据后,对其进行解析,根据服务器端待同步数据的结构sid+status(N/U/D)+dataInfo中的sid查询客户端本地数据。当客户端本地数据中已经存在该sid对应的数据时,第一同步模块则直接根据status(N/U/D)进行数据修改。
当客户端本地数据中不存在该sid对应的数据时,第一同步模块则将服务器端待同步数据与其它无sid的数据进行比较处理后更新到数据库。举例而言:
假设服务器端待同步数据为A:sid+status(N/U/D)+datainfo,第一同步模块将A与客户端中其它无sid的数据的datainfo进行比较。如果客户端有相同datainfo(具体判断方法可根据需求设置)的数据B:cid+status(N/U/D)+datainfo,第一同步模块则将A的sid更新到B中,最终得到数据B:cid+sid+status(N/U/D)+dataInfo;如果客户端没有相同datainfo的数据,第一同步模块则直接将A新增到客户端的本地数据库中,最终得到数据B:cid+sid+status(N/U/D)+dataInfo。
第二同步模块:用于获取客户端待同步数据并发送给服务器,以使服务器根据客户端待同步数据进行数据同步处理,并确认服务器发送的处理结果。
具体的,当第一同步模块处理完服务器端待同步数据后,第二同步模块则获取客户端待同步数据,并使用消息密钥进行加密后发送给服务器。客户端待同步数据的结构有两种,一种为:sid+cid+status(N/U/D)+dataInfo,另一种为:cid+status(N)+dataInfo(当客户端没有sid的数据时,status均设置为新增N)。
第二同步模块可以通过以下方式获取客户端待同步数据:第二同步模块将每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据,并从中剔除已经被服务器端待同步数据同步更新过的数据后剩下的数据,作为客户端待同步数据。
服务器根据客户端待同步数据进行数据同步处理后,会将sid与cid的映射关系返回给客户端。第二同步模块根据接收到的sid和cid的映射关系,通过cid将sid更新到对应的同步数据中,最终完成数据同步操作。
从而,本实施例的数据同步方法和装置,合理利用移动终端的性能,在进行数据同步时将数据同步的操作逻辑交给移动终端(即客户端)处理,大大减小了服务器的压力,有效提高了服务器的并发处理数量。同时,服务器端不需要维护同步数据客户端Id和服务器端ID的映射关系表,简化了同步操作流程。而且,本发明采用访问凭证校验和消息密钥加密交换数据的方式,改进了服务器和客户端之间交互的鉴权方式,减少了服务器和客户端交互的次数,优化了客户端与服务器的访问流程,有效提高了整个同步操作的效率。
实施例二
参见图3,提出本发明的数据同步方法另一实施例,本实施例的数据同步方法应用于服务器端,包括以下步骤:
步骤S21:服务器生成访问凭证和消息密钥并发送给客户端。
具体的,客户端使用用户的账号和密码(密码值可以为明文密码和其它参数一起进行MD5加密后的值)等用户信息访问服务器(如FOTA服务器),服务器对帐号和密码等用户信息进行验证,通过验证后则生成服务器访问凭证(Token Id)和消息密钥,并发送给客户端。
其中,消息密钥用于对后续客户端和服务器之间交互的数据进行加解密,即后续客户端和服务器交互的所有数据均需要通过消息密钥进行加密后再进行传送。访问凭证由服务器地址、用户信息、客户端IP地址或/和时间戳组成,即服务器根据FOTA服务器地址、用户信息、客户端IP地址和时间戳中任一种或任意组合生成访问凭证。
步骤S22:服务器对客户端提供的访问凭证进行校验。
具体的,客户端使用访问凭证访问服务器,向服务器请求服务器端待同步数据。服务器对客户端提供的访问凭证进行校验,验证访问凭证的合法性。
步骤S23:当校验通过后,服务器获取服务器端待同步数据并发送给客户端,以使客户端根据服务器端待同步数据进行数据同步处理。
具体的,校验通过后,服务器获取服务器端待同步数据,并使用消息密钥对服务器端待同步数据进行加密后发送给客户端。
服务器发送的服务器端待同步数据的结构为:sid+status(N/U/D)+dataInfo。其中,sid标识同步数据对应的服务器ID,是服务器数据唯一标识;status(N/U/D)标识同步数据的操作类型,其中N代表新增,U代表修改,D代表删除;dataInfo标识同步数据的明细。
服务器可以通过以下方式获取服务器端待同步数据:服务器将存储的每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据作为服务器端待同步数据。例如,若某笔数据最后修改时间戳晚于最近一次同步的时间戳,则认为该笔数据在上一次同步操作完成后有修改,反之则认为没有修改。
客户端接收到服务器端待同步数据后,根据服务器端待同步数据的结构sid+status(N/U/D)+dataInfo中的sid查询客户端本地数据。当客户端本地数据中已经存在该sid对应的数据时,则直接根据status(N/U/D)进行数据修改。
当客户端本地数据中不存在该sid对应的数据时,则将服务器端待同步数据与其它无sid的数据进行比较处理后更新到数据库。举例而言:
假设服务器端待同步数据为A:sid+status(N/U/D)+datainfo,将A与客户端中其它无sid的数据的datainfo进行比较。如果客户端有相同datainfo(具体判断方法可根据需求设置)的数据B:cid+status(N/U/D)+datainfo,其中cid标识同步数据对应的客户端ID,是客户端数据唯一标识,则将A的sid更新到B中,最终客户端得到数据B:cid+sid+status(N/U/D)+dataInfo;如果客户端没有相同datainfo的数据,则直接将A新增到客户端的本地数据库中,客户端也得到数据B:cid+sid+status(N/U/D)+dataInfo。
步骤S24:服务器接收客户端发送的客户端待同步数据,根据客户端待同步数据进行数据同步处理,并将处理结果返回给客户端。
具体的,客户端处理完服务器端待同步数据后,获取客户端待同步数据,并使用消息密钥进行加密后发送给服务器。客户端待同步数据的结构有两种,一种为:sid+cid+status(N/U/D)+dataInfo,另一种为:cid+status(N)+dataInfo(当客户端没有sid的数据时,status均设置为新增N)。
客户端可以通过以下方式获取客户端待同步数据:客户端将每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据,并从中剔除已经被服务器端待同步数据同步更新过的数据后作为客户端待同步数据。
服务器接收到客户端待同步数据后,根据客户端待同步数据进行数据同步处理,并将处理结果返回给客户端。如果客户端有标识当前发送的是最后一个数据包,服务器则同时注销本次操作的访问凭证和消息密钥。
服务器进行同步处理时,对于结构为sid+cid+status(N/U/D)+dataInfo的数据,则直接根据sid更新到服务器的数据库中;对于结构为cid+status(N)+dataInfo的数据,则直接新增到服务器的数据库中,并得到由这部分新增数据的sid与cid组成的一一对应的映射关系,并将sid与cid的映射关系返回给客户端。客户端根据接收到的sid和cid的映射关系,通过cid将sid更新到对应的同步数据中,最终数据同步操作完成。最终结果为:
服务器与客户端数据同步保持一致;
客户端的所有数据结构均为:sid+cid+status(N/U/D)+dataInfo;
服务器的所有数据结构均为:sid+status(N/U/D)+dataInfo。
进一步地,每次交互结束后,服务器都会更新消息密钥返回给客户端,以供下次交互时使用,即服务器与客户端每交互一次就刷新一次消息密钥,从而提高了数据交互的安全性。
参见图4,提出本发明实现上述数据同步方法的数据同步装置另一实施例,本实施例的数据同步装置应用于服务器端,包括生成单元、校验单元、第一同步单元和第二同步单元,其中:
生成单元:用于生成访问凭证和消息密钥并发送给客户端。
具体的,客户端使用用户的账号和密码(密码值可以为明文密码和其它参数一起进行MD5加密后的值)等用户信息访问服务器,服务器对帐号和密码等用户信息进行验证,通过验证后,生成单元则生成服务器访问凭证(TokenId)和消息密钥,并发送给客户端。
其中,消息密钥用于对后续客户端和服务器之间交互的信息进行加解密,即后续客户端和服务器交互的所有信息均需要通过消息密钥进行加密后再进行传送。访问凭证由服务器地址、用户信息、客户端IP地址或/和时间戳组成,即生成单元根据服务器地址、用户信息、客户端IP地址和时间戳中的任意一种或任意组合生成访问凭证。
校验单元:用于对客户端提供的访问凭证进行校验。
具体的,当客户端使用访问凭证访问服务器,向服务器请求服务器端待同步数据时,校验单元则对客户端提供的访问凭证进行校验,验证访问凭证的合法性。当校验通过时,校验单元则向第一同步单元发送校验结果。
第一同步单元:用于当校验通过后,获取服务器端待同步数据并发送给客户端,以使客户端根据服务器端待同步数据进行数据同步处理。
具体的,校验通过后,第一同步单元获取服务器端待同步数据,并使用消息密钥对服务器端待同步数据进行加密后发送给客户端。
第一同步单元发送的服务器端待同步数据的结构为:sid+status(N/U/D)+dataInfo。第一同步单元可以通过以下方式获取服务器端待同步数据:第一同步单元将存储的每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据作为服务器端待同步数据。例如,若某笔数据最后修改时间戳晚于最近一次同步的时间戳,则认为该笔数据在上一次同步操作完成后有修改,反之则认为没有修改。
第二同步单元:用于接收客户端发送的客户端待同步数据,根据客户端待同步数据进行数据同步处理,并将处理结果返回给客户端。
具体的,客户端处理完服务器端待同步数据后,向服务器端发送两种格式的客户端待同步数据,一种为:sid+cid+status(N/U/D)+dataInfo,另一种为:cid+status(N)+dataInfo(当客户端没有sid的数据时,status均设置为新增N)。第二同步单元接收到客户端待同步数据后,对其进行解析,然后根据客户端待同步数据进行数据同步处理,并将处理结果返回给客户端。如果客户端有标识当前发送的是最后一个数据包,第二同步单元则同时注销本次操作的访问凭证和消息密钥。
第二同步单元进行同步处理时,对于结构为sid+cid+status(N/U/D)+dataInfo的数据,则直接根据sid更新到服务器的数据库中;对于结构为cid+status(N)+dataInfo的数据,则直接新增到服务器的数据库中,并得到由这部分新增数据的sid与cid组成的一一对应的映射关系,并将sid与cid的映射关系返回给客户端。客户端根据接收到的sid和cid的映射关系,通过cid将sid更新到对应的同步数据中,最终数据同步操作完成。
进一步地,每次交互结束后,生成单元都会更新消息密钥返回给客户端,以供下次交互时使用,即服务器与客户端每交互一次就刷新一次消息密钥,从而提高了数据交互的安全性。
从而,本实施例的数据同步方法和装置,合理利用移动终端的性能,在进行数据同步时将数据同步的操作逻辑交给移动终端(即客户端)处理,大大减小了服务器的压力,有效提高了服务器的并发处理数量。同时,服务器端不需要维护同步数据客户端Id和服务器端ID的映射关系表,简化了同步操作流程。而且,本发明采用访问凭证校验和消息密钥加密交换数据的方式,改进了服务器和客户端之间交互的鉴权方式,减少了服务器和客户端交互的次数,优化了客户端与服务器的访问流程,有效提高了整个同步操作的效率。
实施例三
参见图5,为本发明的数据同步***一实施例,所述数据同步***包括客户端和服务器,所述客户端和服务器为前述实施例一和实施例二中所涉及的客户端和服务器,或者可以理解为,所述客户端包括前述实施例一中所涉及的数据同步装置,所述服务器包括前述实施例二中所涉及的数据同步装置,在此不再赘述。
本实施例的数据同步***,合理利用移动终端的性能,在进行数据同步时将数据同步的操作逻辑交给移动终端(即客户端)处理,大大减小了服务器的压力,有效提高了服务器的并发处理数量。同时,服务器端不需要维护同步数据客户端ID和服务器端ID的映射关系表,简化了同步操作流程。而且,本发明采用访问凭证校验和消息密钥加密交换数据的方式,改进了服务器和客户端之间交互的鉴权方式,减少了服务器和客户端交互的次数,优化了客户端与服务器的访问流程,有效提高了整个同步操作的效率。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤可以通过程序来控制相关的硬件完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质可以是ROM/RAM、磁盘、光盘等。
应当理解的是,以上仅为本发明的优选实施例,不能因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (13)
1.一种数据同步方法,应用于客户端,其特征在于,包括步骤:
客户端从服务器获取访问凭证和消息密钥,所述消息密钥用于加解密后续客户端和服务器之间交互的数据;
客户端使用所述访问凭证访问服务器,向服务器请求服务器端待同步数据;
客户端根据服务器发送的所述服务器端待同步数据进行数据同步处理;
处理完成后,客户端根据对所述服务器端待同步数据进行数据同步处理的结果获取客户端待同步数据并发送给服务器,以使服务器根据所述客户端待同步数据进行数据同步处理,并确认服务器发送的处理结果;
当数据同步操作完成后,服务器中的同步数据包括服务器ID标识,客户端中的同步数据包括服务器ID标识和客户端ID标识。
2.根据权利要求1所述的数据同步方法,其特征在于,所述客户端根据对所述服务器端待同步数据进行数据同步处理的结果获取客户端待同步数据包括:客户端将每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据,并从中剔除已经被所述服务器端待同步数据同步更新过的数据后作为客户端待同步数据。
3.根据权利要求1或2所述的数据同步方法,其特征在于,所述访问凭证由服务器地址、用户信息、客户端IP地址或/和时间戳组成。
4.一种数据同步方法,应用于服务器端,其特征在于,包括步骤:
服务器生成访问凭证和消息密钥并发送给客户端,所述消息密钥用于加解密后续客户端和服务器之间交互的数据;
服务器对客户端提供的访问凭证进行校验;
当校验通过后,服务器获取服务器端待同步数据并发送给客户端,以使客户端根据所述服务器端待同步数据进行数据同步处理;
服务器接收客户端发送的根据对所述服务器端待同步数据进行数据同步处理的结果获取的客户端待同步数据,根据所述客户端待同步数据进行数据同步处理,并将处理结果返回给客户端;
当数据同步操作完成后,服务器中的同步数据包括服务器ID标识,客户端中的同步数据包括服务器ID标识和客户端ID标识。
5.根据权利要求4所述的数据同步方法,其特征在于,所述服务器获取服务器端待同步数据包括:服务器将每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据作为服务器端待同步数据。
6.根据权利要求4所述的数据同步方法,其特征在于,所述方法还包括:每次交互结束后,服务器更新消息密钥返回给客户端,以供下次交互时使用。
7.根据权利要求4-6任一项所述的数据同步方法,其特征在于,所述访问凭证由服务器地址、用户信息、客户端IP地址或/和时间戳组成。
8.一种数据同步装置,应用于客户端,其特征在于,包括获取模块、第一同步模块和第二同步模块,其中:
所述获取模块,用于从服务器获取访问凭证和消息密钥,所述消息密钥用于加解密后续客户端和服务器之间交互的数据;
所述第一同步模块,用于使用所述访问凭证访问服务器,向服务器请求服务器端待同步数据,根据服务器发送的所述服务器端待同步数据进行数据同步处理;
所述第二同步模块,用于当第一同步模块处理完成后,根据第一同步模块处理的结果获取客户端待同步数据并发送给服务器,以使服务器根据所述客户端待同步数据进行数据同步处理,并确认服务器发送的处理结果;
当数据同步操作完成后,服务器中的同步数据包括服务器ID标识,客户端中的同步数据包括服务器ID标识和客户端ID标识。
9.根据权利要求8所述的数据同步装置,其特征在于,所述第二同步模块用于:
将每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据,并从中剔除已经被所述服务器端待同步数据同步更新过的数据后作为客户端待同步数据。
10.一种数据同步装置,应用于服务器端,其特征在于,包括生成单元、校验单元、第一同步单元和第二同步单元,其中:
所述生成单元,用于生成访问凭证和消息密钥并发送给客户端,所述消息密钥用于加解密后续客户端和服务器之间交互的数据;
所述校验单元,用于对客户端提供的访问凭证进行校验;
所述第一同步单元,用于当校验通过后,获取服务器端待同步数据并发送给客户端,以使客户端根据所述服务器端待同步数据进行数据同步处理;
所述第二同步单元,用于接收客户端发送的根据对所述服务器端待同步数据进行数据同步处理的结果获取的客户端待同步数据,根据所述客户端待同步数据进行数据同步处理,并将处理结果返回给客户端;
当数据同步操作完成后,服务器中的同步数据包括服务器ID标识,客户端中的同步数据包括服务器ID标识和客户端ID标识。
11.根据权利要求10所述的数据同步装置,其特征在于,所述第一同步单元用于:将每笔数据的最后修改时间戳和最近一次同步的时间戳进行比较,获取上一次同步操作完成后有修改的数据作为服务器端待同步数据。
12.根据权利要求10所述的数据同步装置,其特征在于,所述生成单元还用于:每次交互结束后,更新消息密钥返回给客户端,以供下次交互时使用。
13.根据权利要求10-12任一项所述的数据同步装置,其特征在于,所述生成单元用于:根据服务器地址、用户信息、客户端IP地址或/和时间戳生成访问凭证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510173247.8A CN104780211B (zh) | 2015-04-13 | 2015-04-13 | 数据同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510173247.8A CN104780211B (zh) | 2015-04-13 | 2015-04-13 | 数据同步方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104780211A CN104780211A (zh) | 2015-07-15 |
CN104780211B true CN104780211B (zh) | 2016-09-07 |
Family
ID=53621445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510173247.8A Active CN104780211B (zh) | 2015-04-13 | 2015-04-13 | 数据同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104780211B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101698274B1 (ko) | 2015-09-03 | 2017-02-01 | 엘에스산전 주식회사 | 에너지 관리 시스템 및 그의 데이터 동기화 방법 |
CN105915537A (zh) * | 2016-05-27 | 2016-08-31 | 努比亚技术有限公司 | 一种token生成、校验方法及验证服务器 |
CN108632300B (zh) * | 2017-03-15 | 2021-12-10 | 阿里巴巴集团控股有限公司 | 数据同步***、方法、服务器、客户端及电子设备 |
CN112052141B (zh) * | 2020-09-02 | 2022-04-01 | 平安科技(深圳)有限公司 | 数据分片校验方法、装置、计算机设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685333A (zh) * | 2012-08-31 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 数据同步方法、终端设备、注册服务器和网页服务器 |
WO2014047385A3 (en) * | 2012-09-22 | 2014-06-05 | Nest Labs, Inc. | Subscription-notification mechanisms for synchronization of distributed states |
CN104202385A (zh) * | 2014-08-27 | 2014-12-10 | 四川长虹电器股份有限公司 | 一种分布式文件***的数据备份及更新方法 |
CN104320447A (zh) * | 2014-10-15 | 2015-01-28 | 新疆同晨信息技术有限公司 | 一种中小型云存储数据同步方法及计算机可读介质、*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904887B (zh) * | 2012-09-26 | 2016-01-20 | 东软集团股份有限公司 | 一种Web客户端与服务器的数据同步方法和*** |
CN103825917B (zh) * | 2012-11-16 | 2017-11-21 | ***通信集团公司 | 一种数据同步方法、***、数据同步服务器及终端 |
CN104301428B (zh) * | 2014-10-29 | 2017-09-12 | 广州视源电子科技股份有限公司 | 一种数据同步方法及服务器 |
-
2015
- 2015-04-13 CN CN201510173247.8A patent/CN104780211B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685333A (zh) * | 2012-08-31 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 数据同步方法、终端设备、注册服务器和网页服务器 |
WO2014047385A3 (en) * | 2012-09-22 | 2014-06-05 | Nest Labs, Inc. | Subscription-notification mechanisms for synchronization of distributed states |
CN104202385A (zh) * | 2014-08-27 | 2014-12-10 | 四川长虹电器股份有限公司 | 一种分布式文件***的数据备份及更新方法 |
CN104320447A (zh) * | 2014-10-15 | 2015-01-28 | 新疆同晨信息技术有限公司 | 一种中小型云存储数据同步方法及计算机可读介质、*** |
Also Published As
Publication number | Publication date |
---|---|
CN104780211A (zh) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110958118B (zh) | 证书认证管理方法、装置、设备及计算机可读存储介质 | |
US10630488B2 (en) | Method and apparatus for managing application identifier | |
CN109741039A (zh) | 记账方法、矿池服务器、终端设备、挖矿节点及矿池 | |
KR100736091B1 (ko) | 복수의 인증서를 관리하는 장치 및 방법 | |
CN109561066A (zh) | 数据处理方法、装置、终端及接入点计算机 | |
CN104780211B (zh) | 数据同步方法和装置 | |
CN112000744B (zh) | 一种签名方法及相关设备 | |
US20190141048A1 (en) | Blockchain identification system | |
JP2009009541A (ja) | 認証システム、端末、サーバ、認証方法、及びプログラム | |
CN105897715B (zh) | 车联网数据智能处理方法 | |
US11455621B2 (en) | Device-associated token identity | |
CN101771992A (zh) | 国际移动用户标识符imsi机密性保护的方法、设备及*** | |
CN103973711A (zh) | 一种验证方法及装置 | |
CN104506527A (zh) | 多维信息指针平台及其数据访问方法 | |
CN105847000A (zh) | 令牌产生方法以及基于该令牌产生方法的通信*** | |
CN105704160B (zh) | 车载数据实时计算方法 | |
CN105119716A (zh) | 一种基于sd卡的密钥协商方法 | |
Khieu et al. | CBPKI: cloud blockchain-based public key infrastructure | |
CN104717649A (zh) | 移动终端软件数据远程控制擦除的方法 | |
CN107171814A (zh) | 一种数字证书更新方法及装置 | |
US20130152179A1 (en) | System and method for user authentication using one-time identification | |
CN110138558A (zh) | 会话密钥的传输方法、设备及计算机可读存储介质 | |
CN106021375A (zh) | 数据库访问方法及数据库代理节点 | |
CN103580874B (zh) | 身份认证方法、***以及密码保护装置 | |
KR101627896B1 (ko) | 인증 어플리케이션을 이용한 인증 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |