CN103002011A - 基于服务器的数据更新方法和服务器 - Google Patents

基于服务器的数据更新方法和服务器 Download PDF

Info

Publication number
CN103002011A
CN103002011A CN2012104220181A CN201210422018A CN103002011A CN 103002011 A CN103002011 A CN 103002011A CN 2012104220181 A CN2012104220181 A CN 2012104220181A CN 201210422018 A CN201210422018 A CN 201210422018A CN 103002011 A CN103002011 A CN 103002011A
Authority
CN
China
Prior art keywords
data
server
processing equipment
data processing
threshold
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.)
Granted
Application number
CN2012104220181A
Other languages
English (en)
Other versions
CN103002011B (zh
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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201210422018.1A priority Critical patent/CN103002011B/zh
Publication of CN103002011A publication Critical patent/CN103002011A/zh
Application granted granted Critical
Publication of CN103002011B publication Critical patent/CN103002011B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种基于服务器的数据更新方法和服务器,所述服务器能够与若干数据处理装置进行数据交换,该方法包括如下步骤:所述服务器从一个数据处理装置接收数据,并将该数据保存在该服务器中,该数据包括增量数据,所述增量数据是指该数据处理装置中更新后的数据相对于更新前数据的变化的数据;所述服务器将其保存的数据的至少一部分发送到另一个数据处理装置,该另一个数据处理装置根据其待更新的数据和接收到的数据生成经更新的数据。本发明能够减小数据更新时所占用的网络带宽、提高更新的速度、效率和实时性。

Description

基于服务器的数据更新方法和服务器
技术领域
本发明属于通信领域,具体涉及数字信息的传输,特别是一种基于服务器的数据更新方法和服务器。
背景技术
在网络通信系统实现的计算架构中,经常需要在不同的计算实体之间传送并在各个计算实体中存储不同版本的数据。例如,当用户对其个人电脑(PC)的浏览器的收藏夹进行改变时,每进行一次改变就会产生不同版本的收藏夹。在需要通过服务器与客户端进行同步的新兴计算应用领域,通常要求在客户端和服务器之间进行数据的传送,并在各计算实体中存储和实时更新数据,比如所述收藏夹的信息。下面示例性地说明在现有技术中存在的几种同步和更新数据的场景。
图1是现有技术中在多个客户端之间同步数据的场景示意图。该场景为:同一用户可以登录不同的客户端(例如手机和PC),为了进行数据分享与同步,各客户端均与一服务器相连。当用户在登录其中一个客户端(例如PC)时更改了某一数据,例如收藏夹,则在该客户端上就会存储一个更新版本的收藏夹。为了该用户能够在下次登录另一客户端时使用该更新过的收藏夹,该客户端先将该更新的收藏夹传送到服务器,并且,当该用户登录另一客户端时,该服务器就将该更新的收藏夹传送给该用户当前登录的另一客户端(例如手机)。在该场景中,即使一个客户端的数据发生微小变化,也需要将整个更新后的数据(或全量的更新后的数据)在客户端和服务器之间进行传送。这对于需要频繁更新的数据或数据量巨大的数据,无疑会极大的占用网络带宽,耗费大量资源。
图2是现有技术中在主从服务器之间同步数据的场景示意图。该场景为,数据共享网络中包括主服务器和从服务器,当主服务器中的一个数据发生了变化时,该主服务器需要将整个更新后的数据传送给从服务器。该数据例如是一个文件,或者是文件中的部分数据。同样,该场景中也不区分数据更新量的大小,而是直接将整个更新后的数据在主、从服务器之间进行传送。
由此可见,现有技术中极需一种更加资源集约化的数据更新方法,以降低数据更新带来的带宽占用和资源消耗。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于服务器的数据更新方法和服务器。
依据本发明的一个方面,提供了一种基于服务器的数据更新方法,所述服务器能够与若干数据处理装置进行数据交换,该方法包括如下步骤:所述服务器从一个数据处理装置接收数据,并将该数据保存在该服务器中,该数据包括增量数据,所述增量数据是指该数据处理装置中更新后的数据相对于更新前数据的变化的数据;所述服务器将其保存的数据的至少一部分发送到另一个数据处理装置,该另一个数据处理装置根据其待更新的数据和接收到的数据生成经更新的数据。
依据本发明的另一方面,提供了一种服务器,用于提供数据更新服务,所述服务器能够与若干数据处理装置进行数据交换,该服务器包括:通信模块,用于从一个数据处理装置接收数据,所述数据包括增量数据,所述增量数据是指更新后的数据相对于更新前的数据的变化的数据;数据存储模块,用于保存从所述数据处理装置接收的数据。
可选地,所述通信模块还用于,将该服务器中保存的数据的至少一部分发送到另一数据处理装置,以便该另一数据处理装置根据接收到的数据和待更新的数据生成经更新的数据。
可选地,所述服务器还包括一个阈值控制模块,其用于设定第一阈值,并且根据该第一阈值,控制通信模块向一个数据处理装置发出指令,要求该数据处理装置上传全量的更新后的数据,所述数据处理装置是指向该服务器发送最新版本数据的数据处理装置。
可选地,所述阈值控制模块还用于设定第二阈值,并且根据该第二阈值,控制所述数据存储模块删除较早版本的数据,使所存储的数据版本不多于第二阈值。
可选地,所述服务器还包括选择模块,用于选择通信模块向所述另一数据处理装置发送的数据
根据本发明的数据更新方法和服务器基于增量数据,由于增量数据的数据量小于全量的更新后的数据,因此能够大大减小数据更新时所占用的网络带宽、提高更新的速度、效率和实时性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是现有技术中在多个客户端之间同步数据的场景示意图;
图2是现有技术中在主、从服务器之间同步数据的场景示意图;
图3是本发明的基于增量数据的数据更新方法的基本步骤流程图;
图4是本发明的第一实施例的基于增量数据的数据更新方法的场景示意图;
图5是本发明的第一实施例的基于增量数据的数据更新方法的流程图;
图6是本发明的第一实施例的基于增量数据的数据更新系统的架构示意图;
图7是本发明的第二实施例的基于增量数据的数据更新方法的流程图;
图8是本发明的第二实施例的基于增量数据的数据更新系统的架构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明提出一种新的数据更新方法和相应的装置,本发明的方法和装置适合应用于任何具有数据处理能力的数据处理设备,包括固定或移动的数据处理设备,例如个人电脑(PC)、服务器、掌上电脑、智能手机等。
假定一个数据处理设备中存储有一数据文件,该数据文件可能不断地需要更新,以下简称数据。为了避免在数据更新时传送用于替代更新前的数据的整个更新后的数据,本发明中提出“增量数据”的概念。
在说明“增量数据”之前,我们首先定义本发明中的“全量数据”的概念。我们将全量数据定义为:不依赖待更新的数据就能对该待更新的数据进行更新的数据。也就是说,只要将全量数据传到数据处理设备中,并将它取代待更新的数据,就完成了数据的更新,而不需要进行任何其他的操作。可见,现有技术的数据更新方法其实就是直接使用全量的更新后的数据取代待更新的数据得到全量的经更新的数据的方法。例如,待更新的数据为一个收藏夹,该收藏夹包括多个收藏项目,那么,一个全量的更新后的数据就是一个不同于原收藏夹的新收藏夹。该新收藏夹可以包含原始收藏夹中的一些项目,也可以完全不包含原始收藏夹中的项目,只要将该新的收藏夹取代原始的收藏夹,就完成了数据更新。使用全量的更新后的数据来进行数据更新的好处是不需要考虑原始数据的数据内容是什么,也无论其是什么类型的数据,都能直接进行数据更新。但是,如前所述,其缺点是数据传送量大,浪费系统资源。
由此,本发明提出基于“增量数据”的数据更新方法、装置和系统,本发明提出的“增量数据”是指更新后的数据相对于更新前数据的变化的数据。所谓的变化表示的是更新后的数据与更新前的数据的区别。也就是说,增量数据是将更新前的数据和更新后的数据进行某种运算得到的数据。而具体采用何种运算,则可根据数据的类型来决定。
若更新前的数据和更新后的数据均为数字,则所述运算方法可以是简单的数学运算。例如,当更新前的数据为2,更新后的数据为3,则增量数据可以等于更新后的数据减去更新前的数据,即增量数据为=3-2=1。
若更新前的数据和更新后的数据均为收藏夹,则所述运算方法可以是一种比较算法。例如,更新前的收藏夹包括“网址1”、“网址2”、“网址3”,而更新后的收藏夹的包括“网址1”、“网址2”、“网址3”和“网址4”,则经由比较计算,得到增量数据为“网址4”。
当然,以上例子均为数据类型比较简单的情况,本发明可以扩展到任何的数据类型,只要存在更新前的数据和更新后的数据之间的适当的计算方法,均可以通过该计算方法得到增量数据。
在目前的网络通信中,针对数据处理设备和数据传输系统而言,最广泛应用的数据分为两种,一种是描述性数据,另一种是二进制数据。描述性数据是用能够被人理解的语言来描述信息的数据,适用于人机交互,例如自然语言数据、超文本语言数据(诸如HTML、XML和Json等)和高级编程语言(C语言、Javascript等)的程序代码数据,等等。对于描述性数据,本发明可以根据现有的数据格式来选择计算方法,也可以在现有的数据格式中设定专门的数据标签,以利于计算的进行。例如,对于XML格式的数据,可以依据XML文件中既有的标签来计算增量数据,也可以自己定义用于增量数据计算的专用标签。
例如,对于如下需要更新的XML的代码为:
用于更新的全量数据的XML代码为:
Figure BDA00002321931200052
Figure BDA00002321931200061
则增量数据可以为
{0114,creattime,Rep,2010.08.21},
其中“0114“表示更新前的数据的id,creattime表示该id下的标签名,Rep表示“替换”,2010.08.21表示替换内容。
由此可见,在更新描述性数据时,增量数据也可以是用于描述变化量的描述性数据,通常来说,增量数据的数据量相比于全量的更新后的数据会小很多,特别是对于更新前的数据庞大,而变化量不太大的情况。
另一种情况是,更新前的数据和更新后的数据均为二进制数据,二进制数据在此指的是适合于数据处理设备存储、传输的数据,二进制数据通用、稳定、不需要针对不同应用二次开发,例如各种计算机文件(包括图片、视频)、编译后的程序代码等。
在现有技术中已存在一些针对通用的二进制数据进行比较的计算方法。本发明可以直接采用现有技术中的计算方法,本领域普通技术人员也可以通过对已知的算法进行适应性的变化来设计专门用于特定数据类型的增量数据的计算方法。
需要注意的是,本发明采用的计算方法优选为可逆算法。
基于上述关于增量数据的原理,本发明的用于数据处理设备的数据更新方法包括如下两个基本步骤,如图3所示。
(1)将由更新前的数据和更新后的数据生成的增量数据发送到一个数据处理设备;
(2)在该数据处理设备中,根据待更新的数据和该增量数据形成经更新的数据。
前文中已经说明了如何生成增量数据,在利用本发明进行数据更新时,还需要根据待更新的数据和增量数据生成经更新的数据。也就是说,本发明还需要生成全量的经更新的数据,并使生成的全量的经更新的数据来取代待更新的数据。
根据本发明,生成经更新的数据的过程可以是生成增量数据的逆运算,当生成增量数据的计算方法是可逆算法时,使得根据待更新的数据和增量数据生成全量的经更新的数据成为可能。例如,对于前面例子中的纯数学运算,若更新前的数据为2,更新后的数据为3,待更新的数据与更新前的数据相同,也为2,计算增量数据的算法为更新后的数据减去更新前的数据,即增量数据为=3-2=1,那么,生成全量的经更新的数据的算法为上述算法的逆运算,即待更新的数据加上增量数据,即经更新的数据为=2+1=3。
对于描述性增量数据,则所述的逆运算可以是解析所述描述性增量数据来产生经更新的数据。例如,对于描述性增量数据{0114,creattime,Rep,2010.08.21},可以将其解析为对ID为0114中的标签creattime的值替换为2010.08.21。
同理,对于二进制数据,可以使用前述的针对二进制数据计算增量数据的算法的逆算法来由待更新的数据和增量数据生成经更新的数据。为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
<第一实施例>
图4是本发明的第一实施例的基于增量数据的数据更新方法的场景示意图。从图4可以看出,该第一实施例的方法与图1所示的方法的系统架构类似。该实施例实现的是一种在客户端之间同步数据的方法,所述客户端包括上传客户端和下载客户端,上传客户端和下载客户端均能够与一个服务器进行数据交换。
所述上传客户端是指用于将数据传送至所述服务器的客户端,所述下载客户端是指用于从服务器下载数据的客户端。
为了区分每次更新后的数据,也为了描述方便,在此使用了版本这一概念。在本发明中,原始数据以及在原始数据基础之上进行的每一次更新都对应一个版本。版本用版本号来表示。例如设定原始数据的版本号可以是1.0.0.0,第一次更新的数据版本号为1.0.0.1,第二次更新的数据版本号为1.0.0.2,以此类推。根据本发明,原始数据也可为空数据。
图5是本发明的第一实施例的基于增量数据的数据更新方法的流程图。如图5所示。本发明的方法包括三个步骤:
首先,上传客户端根据更新前的数据和更新后的数据产生增量数据,并将该增量数据上传到服务器中;
接着,所述服务器接收由所述上传客户端传送的所述增量数据,并将该增量数据在该服务器上进行保存;
最后,所述服务器将所述增量数据发送到下载客户端,下载客户端根据所述待更新的数据和该增量数据生成经更新的数据。
上述方法能够实现的前提是上传客户端保存有更新前的数据和更新后的数据,下载客户端中保存有待更新的数据,待更新数据可以为空。此外,服务器中可以只保存增量数据,也可以同时保存全量的更新后的数据。
根据本发明,所述上传客户端和下载客户端均可以是能够与所述服务器进行数据交换的任一客户端,对其个数并不限定。
根据本发明,将增量数据发送给与该服务器连接的下载客户端时,可以依据预先设置发送增量数据,该预先设置可以是一定的规则,所述规则可以是自动转发规则,也可以是按请求规则。
自动转发规则例如是:所述服务器一旦接收到由上传客户端上传的增量数据时,就向所有与之相连接的客户端发送数据更新通知,询问其是否需要更新数据,当任一客户端返回接收更新数据时,向该客户端发送增量数据。又例如,所述服务器一旦接收到由上传客户端上传的增量数据时,就向同一用户的所有其他客户端发送增量数据。当然,自动转发规则也可以有别的设定,例如定时询问和发送,或者一旦客户端与该服务器相连,则进行询问和发送,等等。
按请求规则是服务器按照客户端的请求发送增量数据。也就是说,服务器在只有接收到数据更新请求时,才向发出请求的客户端发送增量数据。
该第一实施例的数据更新系统的架构如图6所示,其中1为服务器,2~5均为客户端。服务器包括有通信模块和数据存储模块,客户端包括有通信模块和数据更新模块。服务器1的通信模块与各客户端2~5的通信模块均能进行数据交换。所述客户端2~5可以分别作为上传客户端或者下载客户端,也可以同时既作为上传客户端,又作为下载客户端。
当作为上传客户端时,数据更新模块用于根据更新前的数据和更新后的数据产生增量数据;通信模块用于将包括增量数据的数据发送到所述服务器。
当作为下载客户端时,通信模块用于从所述服务器接收数据,该数据包括增量数据,数据更新模块用于根据该客户端保存的待更新的数据与该接收的数据产生经更新的数据。
在本实施例中,各客户端的数据更新模块既能够根据更新前的数据及更新后的数据产生增量数据,也能够根据待更新的数据和增量数据生成经更新的数据。通信模块既能够用于上传数据,也用于下载数据。当客户端2~5中的任一客户端产生了增量数据并通过其通信模块将包括增量数据的数据发送到服务器1时,该客户端即作为此次更新的上传客户端;当客户端2~5中的任一客户端通过其通信模块从服务器下载数据时,该客户端即为此次更新的下载客户端。
服务器的数据存储模块用于存储由上传客户端上传的增量数据。根据本发明的一种实施方式,服务器在保存增量数据时,还保存该增量数据的版本信息,例如是一个版本号。
服务器的通信模块一方面用于从上传客户端接收增量数据,另一面,还用于根据一定的规则,将该增量数据发送到任一需要进行数据更新的下载客户端,以便该下载客户端根据该增量数据进行更新。所述的规则如前所述,在此不再赘述。
图5所示的客户端数量为4个,但这仅仅是示意情况。如前所述,本发明对于客户端的数量不作限制。
<第二实施例>
图7是本发明的第二实施例的基于增量数据的数据更新方法的流程图。
如前所述,第一实施例描述了根据本发明的数据更新方法进行一次数据更新的流程。该第二实施例是在第一实施例的基础上实现基于增量数据的多次更新。
对于进行了多次更新之后产生的增量数据,由于其是在原始数据的基础之上进行了多次计算,因此其数据的冗余问题可能会比较严重。在这种情况下,继续采用增量数据更新可能不能够取得相对更加优良的效果。因此,该第二实施例中,在服务器中设定一个第一阈值,当数据的版本数目达到该第一阈值时,该服务器要求上传客户端将该最新版本的全量的更新后的数据发送到该服务器,并在该服务器上保存该全量的更新后的数据。
根据本发明的一种具体实施方式,在服务器上也同时保存该全量的更新后的数据的版本信息。对于同一次更新时的全量的更新后的数据和增量数据,其可以共享一个版本号。
例如,若服务器设定第一阈值为20,而服务器中保存了如下版本的数据,
1.0.0.0    原
1.0.0.1    增
1.0.0.2    增
……
1.0.0.18   增
1.0.0.19   增(达到第20个版本)
(其中,“原”表示原始数据,“增”表示增量数据,可以没有原始数据)
此时,服务器要求发送1.0.0.19版的增量数据的上传客户端将1.0.0.19版的全量的更新后的数据也发送到该服务器。于是,服务器中保存如下版本的数据:
1.0.0.0    原
1.0.0.1    增
1.0.0.2    增
……
1.0.0.18   增
1.0.0.19   增
1.0.0.19   全
(其中,“全”表示全量的更新后的数据)。
根据本发明的其他实施例,也可以由上传客户端来决定是否上传全量的更新后的数据到服务器中。
如前所述,在服务器中保存增量数据,当经过多次更新之后,在服务器中就保存有原始数据和基于该原始数据的多个版本的增量数据。通常,受限于硬件条件或者基于系统资源的考虑,对于某个数据(例如一个软件或一个文件),在服务器上能够保存的数据版本的数量不可能无限大。因此,还可以为服务器上的数据版本的数量设定另一个上限值,在此称为第二阈值。根据本发明的该实施例,当服务器上的数据版本数量达到该第二阈值时,必须删除较旧版本的数据,以保持数据版本的数目不多于该第二阈值。
根据本发明的一种具体实施方式,所述第二阈值大于所述第一阈值。并且,在删除较早版本的数据时,至少保留一个全量的更新后的数据或原始数据。更优选的为,当具有多个全量的更新后的数据时,至少保留与当前版本最接近的版本的全量的更新后的数据。
例如,第二阈值为30,那么结合以下示例说明根据第二阈值的版本操作过程。假设在服务器中保存如下版本的数据:
1.0.0.0    原
1.0.0.1    增
1.0.0.2    增
……
1.0.0.18   增
1.0.0.19   增
1.0.0.19   全
1.0.0.20   增
……
1.0.0.28   增
当此时再有客户端向服务器更新该数据,从而在服务器中保存新的数据版本1.0.0.29时,该数据的版本数达到第二阈值30。从而服务器删除较早的版本1.0.0.0。在服务器保存的数据版本1.0.0.1至1.0.0.29中,包括至少一个全量的数据,例如在本例中是版本1.0.0.19全。
版本更新
在该第二实施例中,服务器上可能存在有原始数据、多个版本的增量数据,也可能存在由上传服务器传送的至少一个全量的更新后的数据。在这种情况下,本发明的数据更新方法可进行更进一步的优化。对于客户端来说,其版本更新操作可以如下所述:
假如服务器上存在如下版本的数据:
1.0.0.0    原
1.0.0.1    增
1.0.0.2    增
……
1.0.0.18   增
1.0.0.19   增
1.0.0.19   全
1.0.0.20   增
1.0.0.21   增
1.0.0.22   增
1.0.0.23   增
根据本发明的一种实施方式,每次客户端向服务器请求更新数据时,服务器将最新版本的更新数据发送到该客户端。该最新版本的更新数据可能是增量数据,也可能是全量的更新后的数据。根据本发明的优选实施方式,当存在同一版本的增量数据和全量的更新后的数据,服务器将全量的更新后的数据发送给客户端。
根据本发明的优选实施方式,客户端向服务器请求更新数据时会附上该客户端上的待更新的数据的版本信息,例如版本号。这时,服务器可以根据该版本号与服务器上所有的数据版本号进行比较,以此决定向该客户端发送哪些版本的数据。
在这种情况下,更优选的为,当服务器上存在高于客户端当前版本的全量的更新后的数据时,服务器只选择将该版本的全量的更新后的数据和版本高于该全量的更新后的数据的增量数据进行发送;更优选的为,当服务器上存在不止一个高于客户端版本的全量的更新后的数据时,服务器只选择将最高版本的全量的更新后的数据和高于该全量的更新后的数据的版本的增量数据进行发送。
例如,在上面给出的例子中,
(1)当客户端当前的数据版本(即随请求发送给服务器的数据版本)为“1.0.0.22”时,服务器可以只向客户端发送:
1.0.0.23    增
(2)当客户端当前的数据版本(即随请求发送给服务器的数据版本)为“1.0.0.18”时,服务器可以向客户端发送:
1.0.0.19   增
1.0.0.20   增
1.0.0.21   增
1.0.0.22   增
1.0.0.23   增
也可以发送:
1.0.0.19   全
1.0.0.20   增
1.0.0.21   增
1.0.0.22   增
1.0.0.23   增。
此时,服务器可以做出选择,通常可以根据所发送的数据量来决定,选择发送数据量小的。在该例子中,一般来说,全量的更新后的数据大于同一版本的增量数据。此时,前一种方式发送的数据量更小,这时可以选择以前一种方式发送。
(3)当客户端当前的数据版本(即随请求发送给服务器的数据版本)为“1.0.0.1”时,服务器可以向客户端发送:
1.0.0.2   增
……
1.0.0.19   增
1.0.0.20   增
1.0.0.21   增
1.0.0.22   增
1.0.0.23   增
也可以仅发送:
1.0.0.19   全
1.0.0.20   增
1.0.0.21   增
1.0.0.22   增
1.0.0.23   增
而此时,由于前一种方式需要发送的增量数据的版本更多,使得发送的数据量可能大于后一种方式,服务器可以选择后一种方式进行发送。
然而,上面所述的仅仅是示例,在具体选择以何种方式发送时,可以根据实际情况具体设定。例如,在上述的第(2)种情况下,尽管当前更新时以前一种方式进行发送时的数据量更小。但是,若考虑到下一次更新或接下来的更新时,综合考虑总的发送数据量,也可以选择第二种方式。
版本恢复
根据本发明的该第二实施例,当服务器上存储有多个版本的数据时,客户端还可以向服务器请求“版本恢复”。所谓版本恢复是指客户端请求从服务器恢复指定版本的数据。
当客户端向服务器发送一个版本恢复请求时,同时附上需要恢复的版本信息,例如是一个版本号。此时,服务器通过检查其上存储的数据的版本,选择向该客户端发送至少一个全量数据和基于该全量数据的增量数据。
例如,当客户端请求从服务器恢复1.0.0.21版本的数据,而服务器上存储有:
1.0.0.0    原
1.0.0.1    增
1.0.0.2    增
……
1.0.0.18    增
1.0.0.19    增
1.0.0.19    全
1.0.0.20    增
1.0.0.21    增
1.0.0.22    增
1.0.0.23    增
此时,服务器可以选择向该客户端发送
1.0.0.0    原
1.0.0.1    增
1.0.0.2    增
……
1.0.0.19    增
1.0.0.20    增
1.0.0.21    增,
也可以选择向客户端发送
1.0.0.19    全
1.0.0.20    增
1.0.0.21    增。
根据一种优选实施方式,服务器可以根据发送的数据量的大小来决定以哪种方式发送数据。在此示例中,如果后者的数据量更小,可以选择只发送1.0.0190版的全量数据和1.0.0.20和1.0.0.21版的增量数据。
图8显示了根据本发明的第二实施例的数据更新方法的系统架构图。如图8所示,基本架构与第一实施例类似。
但是,该第二实施例的服务器中还包括一个阈值控制模块,其用于设定所述第一阈值和第二阈值,并且根据第一阈值,控制该通信模块向上传服务器发出上传全量的更新后的数据的指令,以及根据第二阈值,控制该服务器的数据存储模块删除较早版本的数据,使所存储的数据版本不多于第二阈值。
并且,该阈值控制模块还用于控制通信模块向下载客户端发送哪些版本的数据。具体的控制方法如前所述,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (15)

1.一种基于服务器的数据更新方法,所述服务器能够与若干数据处理装置进行数据交换,该方法包括如下步骤:
所述服务器从一个数据处理装置接收数据,并将该数据保存在该服务器中,该数据包括增量数据,所述增量数据是指该数据处理装置中更新后的数据相对于更新前数据的变化的数据;
所述服务器将其保存的数据的至少一部分发送到另一个数据处理装置,该另一个数据处理装置根据其待更新的数据和接收到的数据生成经更新的数据。
2.如权利要求1所述的基于服务器的数据更新方法,所述服务器在存储所述数据时,对于每个数据同时存储该数据的版本信息。
3.如权利要求1所述的基于服务器的数据更新方法,所述服务器按照预先设置的规则将所述数据发送给所述另一个数据处理装置。
4.如权利要求1所述的基于服务器的数据更新方法,所述服务器根据所述另一个数据处理装置的请求将所述数据发送给所述另一个数据处理装置。
5.如权利要求4所述的基于服务器的数据更新方法,所述另一个数据处理装置的请求中包括该另一个数据处理装置的待更新的数据的版本信息。
6.如权利要求4所述的基于服务器的数据更新方法,所述另一个数据处理装置的请求中包括所述另一个数据处理装置所需的数据的版本信息。
7.如权利要求5或6所述的基于服务器的数据更新方法,所述服务器根据所述另一个数据处理装置的请求中包括的版本信息选择向所述另一个数据处理装置发送的数据。
8.如权利要求1所述的基于服务器的数据更新方法,当所述服务器中的数据的版本数目达到第一阈值时,该服务器要求数据处理装置将全量的更新后的数据发送到该服务器,所述数据处理装置是指向该服务器发送最新版本数据的数据处理装置。
9.如权利要求8所述的基于服务器的数据更新方法,当所述服务器上的数据版本数量达到第二阈值时,删除较旧版本的数据,以保持数据版本的数目不多于该第二阈值。
10.如权利要求9所述的基于服务器的数据更新方法,所述第二阈值大于所述第一阈值,在删除较早版本的数据时,至少保留一个全量的更新后的数据。
11.一种服务器,用于提供数据更新服务,所述服务器能够与若干数据处理装置进行数据交换,该服务器包括:
通信模块,用于从一个数据处理装置接收数据,所述数据包括增量数据,所述增量数据是指更新后的数据相对于更新前的数据的变化的数据;
数据存储模块,用于保存从所述数据处理装置接收的数据。
12.如权利要求11所述的服务器,所述通信模块还用于,将该服务器中保存的数据的至少一部分发送到另一数据处理装置,以便该另一数据处理装置根据接收到的数据和待更新的数据生成经更新的数据。
13.如权利要求12所述的服务器,还包括一个阈值控制模块,其用于设定第一阈值,并且根据该第一阈值,控制通信模块向一个数据处理装置发出指令,要求该数据处理装置上传全量的更新后的数据,所述数据处理装置是指向该服务器发送最新版本数据的数据处理装置。
14.如权利要求13所述的服务器,所述阈值控制模块还用于设定第二阈值,并且根据该第二阈值,控制所述数据存储模块删除较早版本的数据,使所存储的数据版本不多于第二阈值。
15.如权利要求14所述的服务器,还包括选择模块,用于选择通信模块向所述另一数据处理装置发送的数据。
CN201210422018.1A 2012-10-29 2012-10-29 基于服务器的数据更新方法和服务器 Active CN103002011B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210422018.1A CN103002011B (zh) 2012-10-29 2012-10-29 基于服务器的数据更新方法和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210422018.1A CN103002011B (zh) 2012-10-29 2012-10-29 基于服务器的数据更新方法和服务器

Publications (2)

Publication Number Publication Date
CN103002011A true CN103002011A (zh) 2013-03-27
CN103002011B CN103002011B (zh) 2016-06-29

Family

ID=47930144

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210422018.1A Active CN103002011B (zh) 2012-10-29 2012-10-29 基于服务器的数据更新方法和服务器

Country Status (1)

Country Link
CN (1) CN103002011B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678494A (zh) * 2013-11-15 2014-03-26 北京奇虎科技有限公司 客户端同步服务端数据的方法及装置
WO2014180220A1 (zh) * 2013-11-01 2014-11-13 中兴通讯股份有限公司 一种iptv系统的更新方法、装置及计算机存储介质
CN104348884A (zh) * 2013-08-08 2015-02-11 中国科学院计算机网络信息中心 一种云存储自动同步方法
CN105847112A (zh) * 2016-03-11 2016-08-10 努比亚技术有限公司 数据更新方法、客户端及系统
CN106339387A (zh) * 2015-07-08 2017-01-18 阿里巴巴集团控股有限公司 一种数据库集群中新增服务器的数据同步方法及装置
CN107066296A (zh) * 2017-03-31 2017-08-18 北京奇艺世纪科技有限公司 一种集群节点中镜像的清理方法及装置
CN109788027A (zh) * 2018-12-13 2019-05-21 平安科技(深圳)有限公司 数据同步方法、装置、服务器及计算机存储介质
CN110019126A (zh) * 2017-11-27 2019-07-16 航天信息股份有限公司 一种数据更新方法及装置
US10467192B2 (en) 2014-11-12 2019-11-05 Hauwei Technologies Co.,Ltd. Method and apparatus for updating data table in keyvalue database
CN111901420A (zh) * 2020-07-28 2020-11-06 深圳市康冠科技股份有限公司 一种数据同步方法、装置及系统
CN115052003A (zh) * 2022-04-29 2022-09-13 钉钉(中国)信息技术有限公司 数据同步方法、相关装置和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101977217A (zh) * 2010-10-15 2011-02-16 中兴通讯股份有限公司 Widget更新方法、系统、Widget客户端及Widget服务器
CN102098342A (zh) * 2011-01-31 2011-06-15 华为技术有限公司 一种基于事务级的数据同步方法、装置及系统
CN102571935A (zh) * 2011-12-23 2012-07-11 华为技术有限公司 一种数据传输的方法、客户端、服务器和系统
CN102750283A (zh) * 2011-04-20 2012-10-24 阿里巴巴集团控股有限公司 海量数据同步系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101977217A (zh) * 2010-10-15 2011-02-16 中兴通讯股份有限公司 Widget更新方法、系统、Widget客户端及Widget服务器
CN102098342A (zh) * 2011-01-31 2011-06-15 华为技术有限公司 一种基于事务级的数据同步方法、装置及系统
CN102750283A (zh) * 2011-04-20 2012-10-24 阿里巴巴集团控股有限公司 海量数据同步系统及方法
CN102571935A (zh) * 2011-12-23 2012-07-11 华为技术有限公司 一种数据传输的方法、客户端、服务器和系统

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104348884A (zh) * 2013-08-08 2015-02-11 中国科学院计算机网络信息中心 一种云存储自动同步方法
CN104348884B (zh) * 2013-08-08 2018-05-01 中国科学院计算机网络信息中心 一种云存储自动同步方法
WO2014180220A1 (zh) * 2013-11-01 2014-11-13 中兴通讯股份有限公司 一种iptv系统的更新方法、装置及计算机存储介质
CN103678494A (zh) * 2013-11-15 2014-03-26 北京奇虎科技有限公司 客户端同步服务端数据的方法及装置
US10467192B2 (en) 2014-11-12 2019-11-05 Hauwei Technologies Co.,Ltd. Method and apparatus for updating data table in keyvalue database
CN106339387B (zh) * 2015-07-08 2019-11-22 阿里巴巴集团控股有限公司 一种数据库集群中新增服务器的数据同步方法及装置
CN106339387A (zh) * 2015-07-08 2017-01-18 阿里巴巴集团控股有限公司 一种数据库集群中新增服务器的数据同步方法及装置
CN105847112A (zh) * 2016-03-11 2016-08-10 努比亚技术有限公司 数据更新方法、客户端及系统
CN105847112B (zh) * 2016-03-11 2020-06-16 深圳前海财信云科技有限公司 数据更新方法、客户端及系统
CN107066296A (zh) * 2017-03-31 2017-08-18 北京奇艺世纪科技有限公司 一种集群节点中镜像的清理方法及装置
CN110019126A (zh) * 2017-11-27 2019-07-16 航天信息股份有限公司 一种数据更新方法及装置
CN109788027A (zh) * 2018-12-13 2019-05-21 平安科技(深圳)有限公司 数据同步方法、装置、服务器及计算机存储介质
CN111901420A (zh) * 2020-07-28 2020-11-06 深圳市康冠科技股份有限公司 一种数据同步方法、装置及系统
CN111901420B (zh) * 2020-07-28 2023-06-16 深圳市康冠科技股份有限公司 一种数据同步方法、装置及系统
CN115052003A (zh) * 2022-04-29 2022-09-13 钉钉(中国)信息技术有限公司 数据同步方法、相关装置和介质
CN115052003B (zh) * 2022-04-29 2024-03-22 钉钉(中国)信息技术有限公司 数据同步方法、相关装置和介质

Also Published As

Publication number Publication date
CN103002011B (zh) 2016-06-29

Similar Documents

Publication Publication Date Title
CN103002010A (zh) 一种基于增量数据的数据更新方法、装置和系统
CN103002011A (zh) 基于服务器的数据更新方法和服务器
US9690568B2 (en) Client-side script bundle management system
CN106575298B (zh) 包含动态内容和陈旧内容的网站的快速呈现
CN104063460A (zh) 一种在浏览器中加载网页的方法和装置
EP2748711A1 (en) Data infrastructure for providing interconnectivity between platforms, devices, and operating systems
CN101405723A (zh) 初始动态呈现控件数据估计
CN102915363A (zh) 网址收藏方法和系统
CN103685554A (zh) 升级方法、装置及系统
CN102955717A (zh) 在分布式消息处理系统中的消息管理设备和方法
CN102567339A (zh) 一种获取起始页的方法、装置和系统
US9426202B2 (en) Transforming application cached template using personalized content
CN101741866B (zh) 一种在线存储系统及方法
CN102981911A (zh) 一种分布式消息处理系统及其中的设备和方法
EP3506599B1 (en) Method for synchronizing contact information, apparatus and medium
CN102624910B (zh) 处理用户选取的网页内容的方法、装置及系统
KR20130065777A (ko) 인스펙터 스크립트 삽입을 통한 웹 콘텐츠 공유 장치 및 방법
CN104094299A (zh) 从发布的日历检索可用性信息
AU2016101498A4 (en) Data Interchange System
CN102148839B (zh) 一种管理ftp服务器的方法、装置及系统
CN104270457A (zh) 基于移动跨平台架构的家庭云中心文件分享系统
CN110677443A (zh) 数据发送和接收方法、发送端、接收端、系统及存储介质
KR20140133124A (ko) 웹 브라우징 서비스를 제공하는 방법 및 장치
CN103139298A (zh) 一种传输网络数据的方法和装置
CN113467776B (zh) 设备的接入方法、装置、存储介质和电子装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Xue Xiangxu

Inventor after: Jiang Kuan

Inventor after: Wu Hao

Inventor after: Liu Wu

Inventor after: Liu Qiming

Inventor after: Wang Youcun

Inventor after: Ren Huan

Inventor before: Xue Xiangxu

Inventor before: Jiang Kuan

Inventor before: Wu Hao

Inventor before: Liu Wu

Inventor before: Liu Qiming

Inventor before: Wang Youcun

Inventor before: Ren Huan

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220718

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.