数据同步方法、系统及用于数据同步的用户终端和服务端与流程

文档序号:11879105阅读:188来源:国知局
数据同步方法、系统及用于数据同步的用户终端和服务端与流程

本发明实施例涉及数据传输技术,特别涉及数据同步方法及系统。



背景技术:

随着用户所拥有的用户终端数量的增加,用户可能同时、或不同时的使用不同终端与其他用户的终端进行数据传输。当用户查找聊天记录时,却无法找到不在本地的聊天记录。

为此,需要对现有技术进行改进。



技术实现要素:

本发明实施例的目的在于提供一种数据同步方法、系统及用于数据同步的用户终端和服务端,用于解决现有技术中的多用户终端之间无法进行数据同步的问题。

为解决上述技术问题,本发明的实施方式提供了一种数据同步方法,用于用户终端,包含:在接收到更新指令时,将保存的同步标记发送给预设的服务端;获取所述服务端基于匹配所述同步标记所得到的同步方式;基于所述同步方式同步与所述服务端之间的同步数据和同步标记。

本发明的实施方式还提供一种数据同步方法,用于服务端,包含:将获取自用户终端的同步标记与所保存的最新同步标记进行匹配,并得到对应匹配结果的同步方式;将所述同步方式反馈给所述用户终端;基于所述同步方式与所述用户终端进行数据和同步标记的同步。

本发明实施方式还提供一种用于数据同步的用户终端,包含:同步标记发送模块,用于在接收到更新指令时,将保存的同步标记发送给预设的服务端;同步方式获取模块,用于获取所述服务端基于匹配所述同步标记所得到的同步方式;第一同步模块,用于基于所述同步方式同步与所述服务端之间的同步数据和同步标记。

本发明实施方式还提供一种用于数据同步的服务端,包含:匹配模块,用于将获取自用户终端的同步标记与所保存的最新同步标记进行匹配,并得到同步方式;同步方式发送模块,用于将所述同步方式反馈给所述用户终端;第二同步模块,用于基于所述同步方式与所述用户终端进行数据和同步标记的同步。

本发明实施方式还提供一种数据同步系统,包括:如上所述的用户终端;以及,如上所述的服务端。

本发明实施方式相对于现有技术而言,通过利用同步标记来确定多个用户终端与服务端之间的数据同步情况,并进一步根据服务端的同步标记和用户终端中的同步标记更新同步数据。如此实现了用户使用不同用户终端时,各终端所记录的数据能够彼此同步。

另外,针对数据同步的不同应用场景,对应设置更新指令的产生方式,能够有效确保各用户终端及时更新数据,实现跨终端的数据同步。

另外,在同步数据的同时还同步同步标记,能够确保各终端与服务器的同步标记统一,从而有效减少更新数据的传输量。

附图说明

图1是本发明第一实施方式的数据同步方法的流程图;

图2是本发明的第二实施方式的一种数据同步系统的结构示意图;

图3是本发明的第二实施方式的另一种数据同步系统的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。

实施例一

如图1所示,本发明的第一实施方式涉及一种数据同步方法。所述数据同步方法适用于不同用户终端与服务端之间、不同用户终端通过服务端的数据同步。其中,所述用户终端包括但不限于:手机、电脑、平板电脑等。所述服务端包括但不限于:单台服务器、服务器集群、分布式的服务器群组等。

所述数据同步方法主要包括以下各步骤:

步骤S110、用户终端在接收到更新指令时,将保存的同步标记发送给预设的服务端。

具体地,用户终端在不同的数据同步应用场景下,可通过服务端获取到更新指令,或者基于自身事件产生更新指令。

所述用户终端接收更新指令包括以下至少一种:

1)按照预设的时间周期,定时产生更新指令。在此,当用户终端正运行数据同步时,为了及时更新用户终端中的同步数据,用户终端按照预设的时间周期定时产生更新指令,并当更新指令存到缓存中时,用户终端执行步骤S110。例如,当用户终端A1正运行一聊天应用程序,为了能够及时获取用户利用用户终端A2中的同一聊天应用程序进行聊天的聊天信息,用户终端A1按照预设时间周期,定期的产生所述更新指令。

2)基于用户的启动操作,产生更新指令。在此,当用户点击包含数据同步的应用图标时,该应用图标所对应的应用程序得到数据同步的启动操作事件。为了及时上传/下载同步数据,用户终端在得到所述启动操作事件时,产生更新指令,并执行步骤S110。例如,当用户终端B1启动包含数据同步的聊天应用程序,则用户终端B1产生更新指令。

3)由所述服务端发送更新指令。在此,一种可选方案为,服务端可以保存包含同一账号的多个用户终端的设备信息,并当服务端接收到新的同步数据时,根据设备信息向各用户终端发出更新指令。另一种可选方案为,服务端根据获取自所述用户终端的上线信息,向所述用户终端发送更新指令。例如,当用户终端B2登陆数据同步账号时,服务端接收到基于登陆步骤产生的上线信息,则服务端根据该上线信息发送更新指令。

4)在接收基于人机交互装置所输入的数据时,产生更新指令。例如,当用户操作键盘鼠标在用户终端的输入界面上输入数据(如聊天记录、图片等)时,将所接收的数据对应到当前的同步标记上,并产生更新指令。又如,当用户操作键盘鼠标在用户终端的输入界面上输入数据(如聊天记录、图片等)时,更新所保存的同步标记,并产生更新指令。

用户终端在接收到更新指令后,将保存的同步标记发送给所述服务端。

在此,所述同步标记可以是基于数字、和/或字符构成的数据同步的版本信息。用户终端每次产生的新的数据都会对应一个同步标记。当初始时,用户终端和服务端中的同步标记可均为空。当用户终端接收新的数据时,同步标记随着增加。当接收到更新指令时,所述用户终端将最新的同步标记发送给服务端。其中,用户终端可以将每次新增数据对应设置一个新的同步标记;也可以将每隔一时间间隔所接收的数据对应一个新的同步标记。

步骤S210、服务端将获取自用户终端的同步标记与所保存的最新同步标记进行匹配,并得到对应匹配结果的同步方式。

在此,服务端保留每个同步标记及对应的同步数据。当获取到用户终端的同步标记a1时,将同步标记a1与所保存的最新同步标记a2进行版本匹配。当同步方式是基于两同步标记一致而设定的时,不予反馈所述同步方式。当同步方式是基于两同步标记不一致而设定的时,将所述同步方式反馈给用户终端。其中,所述同步方式可以是一个标识信息;或者是为步骤S120准备的同步请求信息,其中,所述同步请求信息中包含需要同步的信息(如用于指示同步同步标记的信息,和/或用于指示同步数据的信息)。

步骤S120、用户终端基于所述同步方式同步与所述服务端之间的同步数据和同步标记。

具体地,当同步方式是基于用户终端的同步标记旧于服务端的最新同步标记而设定的时,执行步骤S121。当同步方式是基于用户终端的同步标记新于服务端的最新同步标记而设定的时,执行步骤S122。

其中步骤S121和S122中都包含了用户终端与服务端之间的至少一次交互。

步骤S121、用户终端接收服务端提供的介于两同步标记之间的数据和服务端的最新同步标记,并更新用户终端的同步标记。

在此,当服务端确定用户终端的同步标记a3旧于服务端的最新同步标记a4时,服务端向用户终端获取对应同步标记a3的同步数据D3,并将同步数据D3与数据库中同步标记为a3所对应的同步数据D3’进行比较,若相一致,则将同步标记(a3,a4]之间的同步数据发送给用户终端;若不一致,则更新服务端的同步标记a5,并将不一致的同步数据对应到更新后的同步标记a5,并予以保存,同时,将(a3,a4]之间的同步数据和最新的同步标记a5一并反馈给用户终端。其中,同步标记a3旧于同步标记a4,同步标记a4旧于同步标记a5。

步骤S122、用户终端将介于两同步标记之间的数据发送给所述服务端。

在此,用户终端将当前最新的同步标记a6所对应的数据发送给所述服务端。由所述服务端更新所保存的最新同步标记为a6,并将同步标记a6所对应的数据保存在数据库中。

本发明通过利用同步标记来确定多个用户终端与服务端之间的数据同步情况,并进一步根据服务端的同步标记和用户终端中的同步标记更新同步数据。如此实现了用户使用不同用户终端时,各终端所记录的数据能够彼此同步。

实施例二

如图2所示,本发明第二实施例提供一种数据同步系统。所述数据同步系统适用于不同用户终端与服务端之间、不同用户终端通过服务端的数据同步。其中,所述用户终端包括但不限于:手机、电脑、平板电脑等。所述服务端包括但不限于:单台服务器、服务器集群、分布式的服务器群组等。

所述用户终端包括:同步标记发送模块11、同步方式获取模块12和第一同步模块13。所述用户终端中的各模块可共用定时器、CPU、寄存器、内存、显示屏和通信模块(如wifi模块或蜂窝网络通信模块等),并各硬件在软件指示的时序指令下执行各模块的功能。

所述服务端包括:匹配模块21、同步方式发送模块22、第二同步模块23,并与数据库连接。所述服务端中的各模块可共用CPU、寄存器、内存、通信模块(如网卡等),并各硬件在软件指示的时序指令下执行各模块的功能。

所述同步标记发送模块11用于在接收到更新指令时,将保存的同步标记发送给预设的服务端。

具体地,同步标记发送模块11在不同的数据同步应用场景下,可通过服务端获取到更新指令,或者基于自身事件产生更新指令。

所述同步标记发送模块11接收更新指令包括以下至少一种:

1)按照预设的时间周期,定时产生更新指令。在此,当同步标记发送模块11正运行数据同步时,为了及时更新用户终端中的同步数据,同步标记发送模块11按照预设的时间周期定时产生更新指令,并当更新指令存到缓存中时,发送同步标记。例如,当用户终端A1正运行一聊天应用程序,为了能够及时获取用户利用用户终端A2中的同一聊天应用程序进行聊天的聊天信息,用户终端A1按照预设时间周期,定期的产生所述更新指令。

2)所述同步标记发送模块11基于用户的启动操作,产生更新指令。在此,当用户点击包含数据同步的应用图标时,该应用图标所对应的应用程序得到数据同步的启动操作事件。为了及时上传/下载同步数据,用户终端在得到所述启动操作事件时,产生更新指令,并发送同步标记。例如,当用户终端B1启动包含数据同步的聊天应用程序,则用户终端B1产生更新指令。

3)接收所述服务端发送更新指令。在此,一种可选方案为,服务端可以保存包含同一账号的多个用户终端的设备信息,并当服务端接收到新的同步数据时,根据设备信息向各同步标记发送模块11发出更新指令。另一种可选方案为,服务端根据获取自所述用户终端的上线信息,向所述同步标记发送模块11发送更新指令。例如,当用户终端B2登陆数据同步账号时,服务端接收到基于登陆步骤产生的上线信息,则服务端根据该上线信息发送更新指令。

4)在接收基于人机交互装置所输入的数据时,产生更新指令。例如,当用户操作键盘鼠标在用户终端的输入界面上输入数据(如聊天记录、图片等)时,同步标记发送模块11将所接收的数据对应到当前的同步标记上,并产生更新指令。又如,当用户操作键盘鼠标在用户终端的输入界面上输入数据(如聊天记录、图片等)时,同步标记发送模块11更新所保存的同步标记,并产生更新指令。

同步标记发送模块11在接收到更新指令后,将保存的同步标记发送给所述服务端。

在此,所述同步标记可以是基于数字、和/或字符构成的数据同步的版本信息。用户终端每次产生的新的数据都会对应一个同步标记。当初始时,用户终端和服务端中的同步标记可均为空。当同步标记发送模块11接收新的数据时,同步标记随着增加。当接收到更新指令时,所述同步标记发送模块11将最新的同步标记发送给服务端。其中,同步标记发送模块11可以将每次新增数据对应设置一个新的同步标记;也可以将每隔一时间间隔所接收的数据对应一个新的同步标记。

接着,服务端的匹配模块21将获取自用户终端的同步标记与所保存的最新同步标记进行匹配,并得到对应匹配结果的同步方式。

在此,匹配模块21保留每个同步标记及对应的同步数据。当获取到用户终端的同步标记a1时,将同步标记a1与所保存的最新同步标记a2进行版本匹配。当同步方式是基于两同步标记一致而设定的时,不予反馈所述同步方式。当同步方式是基于两同步标记不一致而设定的时,通过同步方式发送模块22将所述同步方式反馈给用户终端。其中,所述同步方式可以是一个标识信息;或者是为同步方式获取模块12准备的同步请求信息,其中,所述同步请求信息中包含需要同步的信息(如用于指示同步同步标记的信息,和/或用于指示同步数据的信息)。

同步方式获取模块12基于所述同步方式同步与所述服务端之间的同步数据和同步标记。

具体地,当同步方式是基于用户终端的同步标记旧于服务端的最新同步标记而设定的时,所述同步方式获取模块12指示第一同步模块13执行步骤S121。当同步方式是基于用户终端的同步标记新于服务端的最新同步标记而设定的时,所述同步方式获取模块12指示第一同步模块13执行步骤S122。

其中步骤S121和S122中都包含了用户终端与服务端之间的至少一次交互。即第一同步模块13和第二同步模块23的交互。

步骤S121、第一同步模块13接收第二同步模块23提供的介于两同步标记之间的数据和服务端的最新同步标记,并更新用户终端的同步标记。

在此,当第二同步模块23确定用户终端的同步标记a3旧于服务端的最新同步标记a4时,第二同步模块23向第一同步模块13获取对应同步标记a3的同步数据D3,并将同步数据D3与数据库中同步标记为a3所对应的同步数据D3’进行比较,若相一致,则第二同步模块23将同步标记(a3,a4]之间的同步数据发送给第一同步模块13;若不一致,则第二同步模块23更新服务端的同步标记a5,并将不一致的同步数据对应到更新后的同步标记a5,并予以保存,同时,将(a3,a4]之间的同步数据和最新的同步标记a5一并反馈给第一同步模块13。其中,同步标记a3旧于同步标记a4,同步标记a4旧于同步标记a5。

步骤S122、第一同步模块13将介于两同步标记之间的数据发送给所述第二同步模块23。

在此,第一同步模块13将当前最新的同步标记a6所对应的数据发送给所述第二同步模块23。由所述第二同步模块23更新所保存的最新同步标记为a6,并将同步标记a6所对应的数据保存在数据库中。

如图3所示,本发明数据同步系统利用用户终端和服务端的各硬件,按照程序所指示当时序执行过程举例如下:

用户终端中的定时器定时指示CPU产生更新指令并从缓存中提取同步标记,并通过通信模块将同步标记发送给服务端,服务端的通信模块对应接收同步标记,并利用CPU将所接收的同步标记和数据库中保存的最新同步标记进行匹配,若所接收的同步标记的版本低于最新同步标记,则从数据库中将两同步标记之间的数据通过配对的通信模块发送至用户终端的CPU。用户终端的CPU将更新的数据通过终端显示屏展示给用户。

值得一提的是,本实施方式中所涉及到的各模块和单元均为逻辑模块和逻辑单元,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1