《基于服务器的数据更新方法和服务器.pdf》由会员分享,可在线阅读,更多相关《基于服务器的数据更新方法和服务器.pdf(21页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103002011 A (43)申请公布日 2013.03.27 CN 103002011 A *CN103002011A* (21)申请号 201210422018.1 (22)申请日 2012.10.29 H04L 29/08(2006.01) (71)申请人 北京奇虎科技有限公司 地址 100088 北京市西城区新街口外大街 28 号 D 座 112 室 (德胜园区) 申请人 奇智软件 (北京) 有限公司 (72)发明人 薛向旭 江宽 吴浩 刘武 刘启明 王友存 任寰 (74)专利代理机构 中科专利商标代理有限责任 公司 11021 代理人 宋焰琴 (54) 发。
2、明名称 基于服务器的数据更新方法和服务器 (57) 摘要 本发明公开了一种基于服务器的数据更新方 法和服务器, 所述服务器能够与若干数据处理装 置进行数据交换, 该方法包括如下步骤 : 所述服 务器从一个数据处理装置接收数据, 并将该数据 保存在该服务器中, 该数据包括增量数据, 所述增 量数据是指该数据处理装置中更新后的数据相对 于更新前数据的变化的数据 ; 所述服务器将其保 存的数据的至少一部分发送到另一个数据处理装 置, 该另一个数据处理装置根据其待更新的数据 和接收到的数据生成经更新的数据。本发明能够 减小数据更新时所占用的网络带宽、 提高更新的 速度、 效率和实时性。 (51)Int。
3、.Cl. 权利要求书 2 页 说明书 12 页 附图 6 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 12 页 附图 6 页 1/2 页 2 1. 一种基于服务器的数据更新方法, 所述服务器能够与若干数据处理装置进行数据交 换, 该方法包括如下步骤 : 所述服务器从一个数据处理装置接收数据, 并将该数据保存在该服务器中, 该数据包 括增量数据, 所述增量数据是指该数据处理装置中更新后的数据相对于更新前数据的变化 的数据 ; 所述服务器将其保存的数据的至少一部分发送到另一个数据处理装置, 该另一个数据 处理装置根据其待更新的数据和接收到的数据生成经。
4、更新的数据。 2. 如权利要求 1 所述的基于服务器的数据更新方法, 所述服务器在存储所述数据时, 对于每个数据同时存储该数据的版本信息。 3. 如权利要求 1 所述的基于服务器的数据更新方法, 所述服务器按照预先设置的规则 将所述数据发送给所述另一个数据处理装置。 4. 如权利要求 1 所述的基于服务器的数据更新方法, 所述服务器根据所述另一个数据 处理装置的请求将所述数据发送给所述另一个数据处理装置。 5. 如权利要求 4 所述的基于服务器的数据更新方法, 所述另一个数据处理装置的请求 中包括该另一个数据处理装置的待更新的数据的版本信息。 6. 如权利要求 4 所述的基于服务器的数据更新方。
5、法, 所述另一个数据处理装置的请求 中包括所述另一个数据处理装置所需的数据的版本信息。 7. 如权利要求 5 或 6 所述的基于服务器的数据更新方法, 所述服务器根据所述另一个 数据处理装置的请求中包括的版本信息选择向所述另一个数据处理装置发送的数据。 8. 如权利要求 1 所述的基于服务器的数据更新方法, 当所述服务器中的数据的版本数 目达到第一阈值时, 该服务器要求数据处理装置将全量的更新后的数据发送到该服务器, 所述数据处理装置是指向该服务器发送最新版本数据的数据处理装置。 9. 如权利要求 8 所述的基于服务器的数据更新方法, 当所述服务器上的数据版本数量 达到第二阈值时, 删除较旧版。
6、本的数据, 以保持数据版本的数目不多于该第二阈值。 10. 如权利要求 9 所述的基于服务器的数据更新方法, 所述第二阈值大于所述第一阈 值, 在删除较早版本的数据时, 至少保留一个全量的更新后的数据。 11. 一种服务器, 用于提供数据更新服务, 所述服务器能够与若干数据处理装置进行数 据交换, 该服务器包括 : 通信模块, 用于从一个数据处理装置接收数据, 所述数据包括增量数据, 所述增量数据 是指更新后的数据相对于更新前的数据的变化的数据 ; 数据存储模块, 用于保存从所述数据处理装置接收的数据。 12. 如权利要求 11 所述的服务器, 所述通信模块还用于, 将该服务器中保存的数据的 。
7、至少一部分发送到另一数据处理装置, 以便该另一数据处理装置根据接收到的数据和待更 新的数据生成经更新的数据。 13. 如权利要求 12 所述的服务器, 还包括一个阈值控制模块, 其用于设定第一阈值, 并 且根据该第一阈值, 控制通信模块向一个数据处理装置发出指令, 要求该数据处理装置上 传全量的更新后的数据, 所述数据处理装置是指向该服务器发送最新版本数据的数据处理 装置。 14. 如权利要求 13 所述的服务器, 所述阈值控制模块还用于设定第二阈值, 并且根据 权 利 要 求 书 CN 103002011 A 2 2/2 页 3 该第二阈值, 控制所述数据存储模块删除较早版本的数据, 使所存。
8、储的数据版本不多于第 二阈值。 15. 如权利要求 14 所述的服务器, 还包括选择模块, 用于选择通信模块向所述另一数 据处理装置发送的数据。 权 利 要 求 书 CN 103002011 A 3 1/12 页 4 基于服务器的数据更新方法和服务器 技术领域 0001 本发明属于通信领域, 具体涉及数字信息的传输, 特别是一种基于服务器的数据 更新方法和服务器。 背景技术 0002 在网络通信系统实现的计算架构中, 经常需要在不同的计算实体之间传送并在各 个计算实体中存储不同版本的数据。例如, 当用户对其个人电脑 (PC) 的浏览器的收藏夹进 行改变时, 每进行一次改变就会产生不同版本的收藏。
9、夹。在需要通过服务器与客户端进行 同步的新兴计算应用领域, 通常要求在客户端和服务器之间进行数据的传送, 并在各计算 实体中存储和实时更新数据, 比如所述收藏夹的信息。下面示例性地说明在现有技术中存 在的几种同步和更新数据的场景。 0003 图 1 是现有技术中在多个客户端之间同步数据的场景示意图。该场景为 : 同一用 户可以登录不同的客户端 ( 例如手机和 PC), 为了进行数据分享与同步, 各客户端均与一服 务器相连。当用户在登录其中一个客户端 ( 例如 PC) 时更改了某一数据, 例如收藏夹, 则在 该客户端上就会存储一个更新版本的收藏夹。 为了该用户能够在下次登录另一客户端时使 用该更。
10、新过的收藏夹, 该客户端先将该更新的收藏夹传送到服务器, 并且, 当该用户登录另 一客户端时, 该服务器就将该更新的收藏夹传送给该用户当前登录的另一客户端 ( 例如手 机 )。在该场景中, 即使一个客户端的数据发生微小变化, 也需要将整个更新后的数据 ( 或 全量的更新后的数据 ) 在客户端和服务器之间进行传送。这对于需要频繁更新的数据或数 据量巨大的数据, 无疑会极大的占用网络带宽, 耗费大量资源。 0004 图 2 是现有技术中在主从服务器之间同步数据的场景示意图。该场景为, 数据共 享网络中包括主服务器和从服务器, 当主服务器中的一个数据发生了变化时, 该主服务器 需要将整个更新后的数据。
11、传送给从服务器。该数据例如是一个文件, 或者是文件中的部分 数据。同样, 该场景中也不区分数据更新量的大小, 而是直接将整个更新后的数据在主、 从 服务器之间进行传送。 0005 由此可见, 现有技术中极需一种更加资源集约化的数据更新方法, 以降低数据更 新带来的带宽占用和资源消耗。 发明内容 0006 鉴于上述问题, 提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的基于服务器的数据更新方法和服务器。 0007 依据本发明的一个方面, 提供了一种基于服务器的数据更新方法, 所述服务器能 够与若干数据处理装置进行数据交换, 该方法包括如下步骤 : 所述服务器从一个数据处理 装置。
12、接收数据, 并将该数据保存在该服务器中, 该数据包括增量数据, 所述增量数据是指该 数据处理装置中更新后的数据相对于更新前数据的变化的数据 ; 所述服务器将其保存的数 据的至少一部分发送到另一个数据处理装置, 该另一个数据处理装置根据其待更新的数据 说 明 书 CN 103002011 A 4 2/12 页 5 和接收到的数据生成经更新的数据。 0008 依据本发明的另一方面, 提供了一种服务器, 用于提供数据更新服务, 所述服务器 能够与若干数据处理装置进行数据交换, 该服务器包括 : 通信模块, 用于从一个数据处理装 置接收数据, 所述数据包括增量数据, 所述增量数据是指更新后的数据相对于。
13、更新前的数 据的变化的数据 ; 数据存储模块, 用于保存从所述数据处理装置接收的数据。 0009 可选地, 所述通信模块还用于, 将该服务器中保存的数据的至少一部分发送到另 一数据处理装置, 以便该另一数据处理装置根据接收到的数据和待更新的数据生成经更新 的数据。 0010 可选地, 所述服务器还包括一个阈值控制模块, 其用于设定第一阈值, 并且根据该 第一阈值, 控制通信模块向一个数据处理装置发出指令, 要求该数据处理装置上传全量的 更新后的数据, 所述数据处理装置是指向该服务器发送最新版本数据的数据处理装置。 0011 可选地, 所述阈值控制模块还用于设定第二阈值, 并且根据该第二阈值, 。
14、控制所述 数据存储模块删除较早版本的数据, 使所存储的数据版本不多于第二阈值。 0012 可选地, 所述服务器还包括选择模块, 用于选择通信模块向所述另一数据处理装 置发送的数据 0013 根据本发明的数据更新方法和服务器基于增量数据, 由于增量数据的数据量小于 全量的更新后的数据, 因此能够大大减小数据更新时所占用的网络带宽、 提高更新的速度、 效率和实时性。 0014 上述说明仅是本发明技术方案的概述, 为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施, 并且为了让本发明的上述和其它目的、 特征和优点能够 更明显易懂, 以下特举本发明的具体实施方式。 附图说明 0015 。
15、通过阅读下文优选实施方式的详细描述, 各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的, 而并不认为是对本发明 的限制。而且在整个附图中, 用相同的参考符号表示相同的部件。在附图中 : 0016 图 1 是现有技术中在多个客户端之间同步数据的场景示意图 ; 0017 图 2 是现有技术中在主、 从服务器之间同步数据的场景示意图 ; 0018 图 3 是本发明的基于增量数据的数据更新方法的基本步骤流程图 ; 0019 图 4 是本发明的第一实施例的基于增量数据的数据更新方法的场景示意图 ; 0020 图 5 是本发明的第一实施例的基于增量数据的数据更新。
16、方法的流程图 ; 0021 图 6 是本发明的第一实施例的基于增量数据的数据更新系统的架构示意图 ; 0022 图 7 是本发明的第二实施例的基于增量数据的数据更新方法的流程图 ; 0023 图 8 是本发明的第二实施例的基于增量数据的数据更新系统的架构示意图。 具体实施方式 0024 下面将参照附图更详细地描述本公开的示例性实施例。 虽然附图中显示了本公开 的示例性实施例, 然而应当理解, 可以以各种形式实现本公开而不应被这里阐述的实施例 所限制。 相反, 提供这些实施例是为了能够更透彻地理解本公开, 并且能够将本公开的范围 说 明 书 CN 103002011 A 5 3/12 页 6 完。
17、整的传达给本领域的技术人员。 0025 本发明提出一种新的数据更新方法和相应的装置, 本发明的方法和装置适合应用 于任何具有数据处理能力的数据处理设备, 包括固定或移动的数据处理设备, 例如个人电 脑 (PC)、 服务器、 掌上电脑、 智能手机等。 0026 假定一个数据处理设备中存储有一数据文件, 该数据文件可能不断地需要更新, 以下简称数据。为了避免在数据更新时传送用于替代更新前的数据的整个更新后的数据, 本发明中提出 “增量数据” 的概念。 0027 在说明 “增量数据” 之前, 我们首先定义本发明中的 “全量数据” 的概念。我们将 全量数据定义为 : 不依赖待更新的数据就能对该待更新的。
18、数据进行更新的数据。 也就是说, 只要将全量数据传到数据处理设备中, 并将它取代待更新的数据, 就完成了数据的更新, 而 不需要进行任何其他的操作。可见, 现有技术的数据更新方法其实就是直接使用全量的更 新后的数据取代待更新的数据得到全量的经更新的数据的方法。例如, 待更新的数据为一 个收藏夹, 该收藏夹包括多个收藏项目, 那么, 一个全量的更新后的数据就是一个不同于原 收藏夹的新收藏夹。该新收藏夹可以包含原始收藏夹中的一些项目, 也可以完全不包含原 始收藏夹中的项目, 只要将该新的收藏夹取代原始的收藏夹, 就完成了数据更新。 使用全量 的更新后的数据来进行数据更新的好处是不需要考虑原始数据的。
19、数据内容是什么, 也无论 其是什么类型的数据, 都能直接进行数据更新。 但是, 如前所述, 其缺点是数据传送量大, 浪 费系统资源。 0028 由此, 本发明提出基于 “增量数据” 的数据更新方法、 装置和系统, 本发明提出的 “增量数据” 是指更新后的数据相对于更新前数据的变化的数据。所谓的变化表示的是更新 后的数据与更新前的数据的区别。也就是说, 增量数据是将更新前的数据和更新后的数据 进行某种运算得到的数据。而具体采用何种运算, 则可根据数据的类型来决定。 0029 若更新前的数据和更新后的数据均为数字, 则所述运算方法可以是简单的数学运 算。例如, 当更新前的数据为 2, 更新后的数据。
20、为 3, 则增量数据可以等于更新后的数据减去 更新前的数据, 即增量数据为 3-2 1。 0030 若更新前的数据和更新后的数据均为收藏夹, 则所述运算方法可以是一种比较算 法。例如, 更新前的收藏夹包括 “网址 1” 、“网址 2” 、“网址 3” , 而更新后的收藏夹的包括 “网 址 1” 、“网址 2” 、“网址 3” 和 “网址 4” , 则经由比较计算, 得到增量数据为 “网址 4” 。 0031 当然, 以上例子均为数据类型比较简单的情况, 本发明可以扩展到任何的数据类 型, 只要存在更新前的数据和更新后的数据之间的适当的计算方法, 均可以通过该计算方 法得到增量数据。 0032 。
21、在目前的网络通信中, 针对数据处理设备和数据传输系统而言, 最广泛应用的数 据分为两种, 一种是描述性数据, 另一种是二进制数据。 描述性数据是用能够被人理解的语 言来描述信息的数据, 适用于人机交互, 例如自然语言数据、 超文本语言数据 ( 诸如 HTML、 XML 和 Json 等 ) 和高级编程语言 (C 语言、 Javascript 等 ) 的程序代码数据, 等等。对于描 述性数据, 本发明可以根据现有的数据格式来选择计算方法, 也可以在现有的数据格式中 设定专门的数据标签, 以利于计算的进行。例如, 对于 XML 格式的数据, 可以依据 XML 文件 中既有的标签来计算增量数据, 也。
22、可以自己定义用于增量数据计算的专用标签。 0033 例如, 对于如下需要更新的 XML 的代码为 : 说 明 书 CN 103002011 A 6 4/12 页 7 0034 0035 用于更新的全量数据的 XML 代码为 : 0036 0037 0038 则增量数据可以为 0039 0114, creattime, Rep, 2010.08.21, 0040 其中 “0114“表示更新前的数据的 id, creattime 表示该 id 下的标签名, Rep 表示 “替换” , 2010.08.21 表示替换内容。 0041 由此可见, 在更新描述性数据时, 增量数据也可以是用于描述变化量的。
23、描述性数 据, 通常来说, 增量数据的数据量相比于全量的更新后的数据会小很多, 特别是对于更新前 的数据庞大, 而变化量不太大的情况。 0042 另一种情况是, 更新前的数据和更新后的数据均为二进制数据, 二进制数据在此 指的是适合于数据处理设备存储、 传输的数据, 二进制数据通用、 稳定、 不需要针对不同应 用二次开发, 例如各种计算机文件 ( 包括图片、 视频 )、 编译后的程序代码等。 0043 在现有技术中已存在一些针对通用的二进制数据进行比较的计算方法。 本发明可 以直接采用现有技术中的计算方法, 本领域普通技术人员也可以通过对已知的算法进行适 应性的变化来设计专门用于特定数据类型的。
24、增量数据的计算方法。 0044 需要注意的是, 本发明采用的计算方法优选为可逆算法。 0045 基于上述关于增量数据的原理, 本发明的用于数据处理设备的数据更新方法包括 如下两个基本步骤, 如图 3 所示。 0046 (1) 将由更新前的数据和更新后的数据生成的增量数据发送到一个数据处理设 备 ; 0047 (2) 在该数据处理设备中, 根据待更新的数据和该增量数据形成经更新的数据。 0048 前文中已经说明了如何生成增量数据, 在利用本发明进行数据更新时, 还需要根 说 明 书 CN 103002011 A 7 5/12 页 8 据待更新的数据和增量数据生成经更新的数据。也就是说, 本发明还。
25、需要生成全量的经更 新的数据, 并使生成的全量的经更新的数据来取代待更新的数据。 0049 根据本发明, 生成经更新的数据的过程可以是生成增量数据的逆运算, 当生成增 量数据的计算方法是可逆算法时, 使得根据待更新的数据和增量数据生成全量的经更新的 数据成为可能。 例如, 对于前面例子中的纯数学运算, 若更新前的数据为2, 更新后的数据为 3, 待更新的数据与更新前的数据相同, 也为 2, 计算增量数据的算法为更新后的数据减去更 新前的数据, 即增量数据为 3-2 1, 那么, 生成全量的经更新的数据的算法为上述算法 的逆运算, 即待更新的数据加上增量数据, 即经更新的数据为 2+1 3。 0。
26、050 对于描述性增量数据, 则所述的逆运算可以是解析所述描述性增量数据来产生经 更新的数据。例如, 对于描述性增量数据 0114, creattime, Rep, 2010.08.21, 可以将其解 析为对 ID 为 0114 中的标签 creattime 的值替换为 2010.08.21。 0051 同理, 对于二进制数据, 可以使用前述的针对二进制数据计算增量数据的算法的 逆算法来由待更新的数据和增量数据生成经更新的数据。为使本发明的目的、 技术方案和 优点更加清楚明白, 以下结合具体实施例, 并参照附图, 对本发明作进一步的详细说明。 0052 0053 图 4 是本发明的第一实施例的。
27、基于增量数据的数据更新方法的场景示意图。从图 4可以看出, 该第一实施例的方法与图1所示的方法的系统架构类似。 该实施例实现的是一 种在客户端之间同步数据的方法, 所述客户端包括上传客户端和下载客户端, 上传客户端 和下载客户端均能够与一个服务器进行数据交换。 0054 所述上传客户端是指用于将数据传送至所述服务器的客户端, 所述下载客户端是 指用于从服务器下载数据的客户端。 0055 为了区分每次更新后的数据, 也为了描述方便, 在此使用了版本这一概念。在本 发明中, 原始数据以及在原始数据基础之上进行的每一次更新都对应一个版本。版本用 版本号来表示。例如设定原始数据的版本号可以是 1.0.。
28、0.0, 第一次更新的数据版本号为 1.0.0.1, 第二次更新的数据版本号为 1.0.0.2, 以此类推。根据本发明, 原始数据也可为空 数据。 0056 图 5 是本发明的第一实施例的基于增量数据的数据更新方法的流程图。如图 5 所 示。本发明的方法包括三个步骤 : 0057 首先, 上传客户端根据更新前的数据和更新后的数据产生增量数据, 并将该增量 数据上传到服务器中 ; 0058 接着, 所述服务器接收由所述上传客户端传送的所述增量数据, 并将该增量数据 在该服务器上进行保存 ; 0059 最后, 所述服务器将所述增量数据发送到下载客户端, 下载客户端根据所述待更 新的数据和该增量数据。
29、生成经更新的数据。 0060 上述方法能够实现的前提是上传客户端保存有更新前的数据和更新后的数据, 下 载客户端中保存有待更新的数据, 待更新数据可以为空。 此外, 服务器中可以只保存增量数 据, 也可以同时保存全量的更新后的数据。 0061 根据本发明, 所述上传客户端和下载客户端均可以是能够与所述服务器进行数据 交换的任一客户端, 对其个数并不限定。 说 明 书 CN 103002011 A 8 6/12 页 9 0062 根据本发明, 将增量数据发送给与该服务器连接的下载客户端时, 可以依据预先 设置发送增量数据, 该预先设置可以是一定的规则, 所述规则可以是自动转发规则, 也可以 是按。
30、请求规则。 0063 自动转发规则例如是 : 所述服务器一旦接收到由上传客户端上传的增量数据时, 就向所有与之相连接的客户端发送数据更新通知, 询问其是否需要更新数据, 当任一客户 端返回接收更新数据时, 向该客户端发送增量数据。 又例如, 所述服务器一旦接收到由上传 客户端上传的增量数据时, 就向同一用户的所有其他客户端发送增量数据。 当然, 自动转发 规则也可以有别的设定, 例如定时询问和发送, 或者一旦客户端与该服务器相连, 则进行询 问和发送, 等等。 0064 按请求规则是服务器按照客户端的请求发送增量数据。也就是说, 服务器在只有 接收到数据更新请求时, 才向发出请求的客户端发送增。
31、量数据。 0065 该第一实施例的数据更新系统的架构如图 6 所示, 其中 1 为服务器, 2 5 均为客 户端。 服务器包括有通信模块和数据存储模块, 客户端包括有通信模块和数据更新模块。 服 务器 1 的通信模块与各客户端 2 5 的通信模块均能进行数据交换。所述客户端 2 5 可 以分别作为上传客户端或者下载客户端, 也可以同时既作为上传客户端, 又作为下载客户 端。 0066 当作为上传客户端时, 数据更新模块用于根据更新前的数据和更新后的数据产生 增量数据 ; 通信模块用于将包括增量数据的数据发送到所述服务器。 0067 当作为下载客户端时, 通信模块用于从所述服务器接收数据, 该数。
32、据包括增量数 据, 数据更新模块用于根据该客户端保存的待更新的数据与该接收的数据产生经更新的数 据。 0068 在本实施例中, 各客户端的数据更新模块既能够根据更新前的数据及更新后的数 据产生增量数据, 也能够根据待更新的数据和增量数据生成经更新的数据。通信模块既能 够用于上传数据, 也用于下载数据。当客户端 2 5 中的任一客户端产生了增量数据并通 过其通信模块将包括增量数据的数据发送到服务器 1 时, 该客户端即作为此次更新的上传 客户端 ; 当客户端25中的任一客户端通过其通信模块从服务器下载数据时, 该客户端即 为此次更新的下载客户端。 0069 服务器的数据存储模块用于存储由上传客户。
33、端上传的增量数据。根据本发明的 一种实施方式, 服务器在保存增量数据时, 还保存该增量数据的版本信息, 例如是一个版本 号。 0070 服务器的通信模块一方面用于从上传客户端接收增量数据, 另一面, 还用于根据 一定的规则, 将该增量数据发送到任一需要进行数据更新的下载客户端, 以便该下载客户 端根据该增量数据进行更新。所述的规则如前所述, 在此不再赘述。 0071 图 5 所示的客户端数量为 4 个, 但这仅仅是示意情况。如前所述, 本发明对于客户 端的数量不作限制。 0072 0073 图 7 是本发明的第二实施例的基于增量数据的数据更新方法的流程图。 0074 如前所述, 第一实施例描述。
34、了根据本发明的数据更新方法进行一次数据更新的流 程。该第二实施例是在第一实施例的基础上实现基于增量数据的多次更新。 说 明 书 CN 103002011 A 9 7/12 页 10 0075 对于进行了多次更新之后产生的增量数据, 由于其是在原始数据的基础之上进行 了多次计算, 因此其数据的冗余问题可能会比较严重。 在这种情况下, 继续采用增量数据更 新可能不能够取得相对更加优良的效果。 因此, 该第二实施例中, 在服务器中设定一个第一 阈值, 当数据的版本数目达到该第一阈值时, 该服务器要求上传客户端将该最新版本的全 量的更新后的数据发送到该服务器, 并在该服务器上保存该全量的更新后的数据。。
35、 0076 根据本发明的一种具体实施方式, 在服务器上也同时保存该全量的更新后的数据 的版本信息。对于同一次更新时的全量的更新后的数据和增量数据, 其可以共享一个版本 号。 0077 例如, 若服务器设定第一阈值为 20, 而服务器中保存了如下版本的数据, 0078 1.0.0.0 原 0079 1.0.0.1 增 0080 1.0.0.2 增 0081 0082 1.0.0.18 增 0083 1.0.0.19 增 ( 达到第 20 个版本 ) 0084 ( 其中,“原” 表示原始数据,“增” 表示增量数据, 可以没有原始数据 ) 0085 此时, 服务器要求发送 1.0.0.19 版的增量。
36、数据的上传客户端将 1.0.0.19 版的全 量的更新后的数据也发送到该服务器。于是, 服务器中保存如下版本的数据 : 0086 1.0.0.0 原 0087 1.0.0.1 增 0088 1.0.0.2 增 0089 0090 1.0.0.18 增 0091 1.0.0.19 增 0092 1.0.0.19 全 0093 ( 其中,“全” 表示全量的更新后的数据 )。 0094 根据本发明的其他实施例, 也可以由上传客户端来决定是否上传全量的更新后的 数据到服务器中。 0095 如前所述, 在服务器中保存增量数据, 当经过多次更新之后, 在服务器中就保存有 原始数据和基于该原始数据的多个版本。
37、的增量数据。通常, 受限于硬件条件或者基于系统 资源的考虑, 对于某个数据 ( 例如一个软件或一个文件 ), 在服务器上能够保存的数据版本 的数量不可能无限大。 因此, 还可以为服务器上的数据版本的数量设定另一个上限值, 在此 称为第二阈值。 根据本发明的该实施例, 当服务器上的数据版本数量达到该第二阈值时, 必 须删除较旧版本的数据, 以保持数据版本的数目不多于该第二阈值。 0096 根据本发明的一种具体实施方式, 所述第二阈值大于所述第一阈值。 并且, 在删除 较早版本的数据时, 至少保留一个全量的更新后的数据或原始数据。 更优选的为, 当具有多 个全量的更新后的数据时, 至少保留与当前版。
38、本最接近的版本的全量的更新后的数据。 0097 例如, 第二阈值为30, 那么结合以下示例说明根据第二阈值的版本操作过程。 假设 在服务器中保存如下版本的数据 : 说 明 书 CN 103002011 A 10 8/12 页 11 0098 1.0.0.0 原 0099 1.0.0.1 增 0100 1.0.0.2 增 0101 0102 1.0.0.18 增 0103 1.0.0.19 增 0104 1.0.0.19 全 0105 1.0.0.20 增 0106 0107 1.0.0.28 增 0108 当此时再有客户端向服务器更新该数据, 从而在服务器中保存新的数据版本 1.0.0.29 。
39、时, 该数据的版本数达到第二阈值 30。从而服务器删除较早的版本 1.0.0.0。在 服务器保存的数据版本 1.0.0.1 至 1.0.0.29 中, 包括至少一个全量的数据, 例如在本例中 是版本 1.0.0.19 全。 0109 版本更新 0110 在该第二实施例中, 服务器上可能存在有原始数据、 多个版本的增量数据, 也可能 存在由上传服务器传送的至少一个全量的更新后的数据。在这种情况下, 本发明的数据更 新方法可进行更进一步的优化。对于客户端来说, 其版本更新操作可以如下所述 : 0111 假如服务器上存在如下版本的数据 : 0112 1.0.0.0 原 0113 1.0.0.1 增 。
40、0114 1.0.0.2 增 0115 0116 1.0.0.18 增 0117 1.0.0.19 增 0118 1.0.0.19 全 0119 1.0.0.20 增 0120 1.0.0.21 增 0121 1.0.0.22 增 0122 1.0.0.23 增 0123 根据本发明的一种实施方式, 每次客户端向服务器请求更新数据时, 服务器将最 新版本的更新数据发送到该客户端。该最新版本的更新数据可能是增量数据, 也可能是全 量的更新后的数据。根据本发明的优选实施方式, 当存在同一版本的增量数据和全量的更 新后的数据, 服务器将全量的更新后的数据发送给客户端。 0124 根据本发明的优选实施。
41、方式, 客户端向服务器请求更新数据时会附上该客户端上 的待更新的数据的版本信息, 例如版本号。 这时, 服务器可以根据该版本号与服务器上所有 的数据版本号进行比较, 以此决定向该客户端发送哪些版本的数据。 0125 在这种情况下, 更优选的为, 当服务器上存在高于客户端当前版本的全量的更新 后的数据时, 服务器只选择将该版本的全量的更新后的数据和版本高于该全量的更新后的 说 明 书 CN 103002011 A 11 9/12 页 12 数据的增量数据进行发送 ; 更优选的为, 当服务器上存在不止一个高于客户端版本的全量 的更新后的数据时, 服务器只选择将最高版本的全量的更新后的数据和高于该全。
42、量的更新 后的数据的版本的增量数据进行发送。 0126 例如, 在上面给出的例子中, 0127 (1) 当客户端当前的数据版本 ( 即随请求发送给服务器的数据版本 ) 为 “1.0.0.22” 时, 服务器可以只向客户端发送 : 0128 1.0.0.23 增 0129 (2) 当客户端当前的数据版本 ( 即随请求发送给服务器的数据版本 ) 为 “1.0.0.18” 时, 服务器可以向客户端发送 : 0130 1.0.0.19 增 0131 1.0.0.20 增 0132 1.0.0.21 增 0133 1.0.0.22 增 0134 1.0.0.23 增 0135 也可以发送 : 0136 。
43、1.0.0.19 全 0137 1.0.0.20 增 0138 1.0.0.21 增 0139 1.0.0.22 增 0140 1.0.0.23 增。 0141 此时, 服务器可以做出选择, 通常可以根据所发送的数据量来决定, 选择发送数据 量小的。在该例子中, 一般来说, 全量的更新后的数据大于同一版本的增量数据。此时, 前 一种方式发送的数据量更小, 这时可以选择以前一种方式发送。 0142 (3) 当客户端当前的数据版本 ( 即随请求发送给服务器的数据版本 ) 为 “1.0.0.1” 时, 服务器可以向客户端发送 : 0143 1.0.0.2 增 0144 0145 1.0.0.19 增。
44、 0146 1.0.0.20 增 0147 1.0.0.21 增 0148 1.0.0.22 增 0149 1.0.0.23 增 0150 也可以仅发送 : 0151 1.0.0.19 全 0152 1.0.0.20 增 0153 1.0.0.21 增 0154 1.0.0.22 增 0155 1.0.0.23 增 0156 而此时, 由于前一种方式需要发送的增量数据的版本更多, 使得发送的数据量可 说 明 书 CN 103002011 A 12 10/12 页 13 能大于后一种方式, 服务器可以选择后一种方式进行发送。 0157 然而, 上面所述的仅仅是示例, 在具体选择以何种方式发送时,。
45、 可以根据实际情况 具体设定。例如, 在上述的第 (2) 种情况下, 尽管当前更新时以前一种方式进行发送时的数 据量更小。但是, 若考虑到下一次更新或接下来的更新时, 综合考虑总的发送数据量, 也可 以选择第二种方式。 0158 版本恢复 0159 根据本发明的该第二实施例, 当服务器上存储有多个版本的数据时, 客户端还可 以向服务器请求 “版本恢复” 。所谓版本恢复是指客户端请求从服务器恢复指定版本的数 据。 0160 当客户端向服务器发送一个版本恢复请求时, 同时附上需要恢复的版本信息, 例 如是一个版本号。 此时, 服务器通过检查其上存储的数据的版本, 选择向该客户端发送至少 一个全量数。
46、据和基于该全量数据的增量数据。 0161 例如, 当客户端请求从服务器恢复 1.0.0.21 版本的数据, 而服务器上存储有 : 0162 1.0.0.0 原 0163 1.0.0.1 增 0164 1.0.0.2 增 0165 0166 1.0.0.18 增 0167 1.0.0.19 增 0168 1.0.0.19 全 0169 1.0.0.20 增 0170 1.0.0.21 增 0171 1.0.0.22 增 0172 1.0.0.23 增 0173 此时, 服务器可以选择向该客户端发送 0174 1.0.0.0 原 0175 1.0.0.1 增 0176 1.0.0.2 增 0177。
47、 0178 1.0.0.19 增 0179 1.0.0.20 增 0180 1.0.0.21 增, 0181 也可以选择向客户端发送 0182 1.0.0.19 全 0183 1.0.0.20 增 0184 1.0.0.21 增。 0185 根据一种优选实施方式, 服务器可以根据发送的数据量的大小来决定以哪种方式 发送数据。在此示例中, 如果后者的数据量更小, 可以选择只发送 1.0.0190 版的全量数据 和 1.0.0.20 和 1.0.0.21 版的增量数据。 说 明 书 CN 103002011 A 13 11/12 页 14 0186 图8显示了根据本发明的第二实施例的数据更新方法的。
48、系统架构图。 如图8所示, 基本架构与第一实施例类似。 0187 但是, 该第二实施例的服务器中还包括一个阈值控制模块, 其用于设定所述第一 阈值和第二阈值, 并且根据第一阈值, 控制该通信模块向上传服务器发出上传全量的更新 后的数据的指令, 以及根据第二阈值, 控制该服务器的数据存储模块删除较早版本的数据, 使所存储的数据版本不多于第二阈值。 0188 并且, 该阈值控制模块还用于控制通信模块向下载客户端发送哪些版本的数据。 具体的控制方法如前所述, 在此不再赘述。 0189 在此提供的算法和显示不与任何特定计算机、 虚拟系统或者其它设备固有相关。 各种通用系统也可以与基于在此的示教一起使用。根据上面的描述, 构造这类系统所要求 的结构是显而易见的。此外, 本发明也不针对任何特定编程语言。应当明白, 可以利用各种 编程语言实现在此描述的本发明的内容, 并且上面对特定语言所做的描述是为了披露本发 明的。