CN104978215B - 一种文件更新方法、相关设备和*** - Google Patents

一种文件更新方法、相关设备和*** Download PDF

Info

Publication number
CN104978215B
CN104978215B CN201410529184.0A CN201410529184A CN104978215B CN 104978215 B CN104978215 B CN 104978215B CN 201410529184 A CN201410529184 A CN 201410529184A CN 104978215 B CN104978215 B CN 104978215B
Authority
CN
China
Prior art keywords
version number
incremental
target
increment
package
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
Application number
CN201410529184.0A
Other languages
English (en)
Other versions
CN104978215A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410529184.0A priority Critical patent/CN104978215B/zh
Publication of CN104978215A publication Critical patent/CN104978215A/zh
Application granted granted Critical
Publication of CN104978215B publication Critical patent/CN104978215B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种文件的更新方法,包括:服务器接收终端发送的更新请求,所述更新请求包括:待更新文件的当前版本号和目标版本号;若预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合,从所述增量包集合中选取大小最小的增量包作为目标增量包;其中,所述增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不相同;所述服务器向所述终端返回更新响应,所述更新响应包括所述目标增量包和所述目标增量包使用的增量更新算法类型。本发明实施例还公开了相关设备和***。采用本发明,可有效的减少文件更新时消耗的网络流量。

Description

一种文件更新方法、相关设备和***
技术领域
本发明涉及互联网领域,尤其涉及一种文件更新方法、相关设备和***。
背景技术
目前终端上安装的软件的数量越来越多,给用户的生活带来极大的便利。在软件的使用过程中,服务器会定期发布新版本的软件,提示用户更新终端上的旧版本的软件,用户如果下载全部的新版本软件进行更新的会消耗大量的网络流量。
为了减少网络流量的消耗提出了一种增量更新方法,终端上的软件需要更新使,服务器采用某一种增量更新算法得到新版本文件和旧版本文件之间的增量包,将增量包发送给终端,终端利用增量包合成新版本文件。但是,由于文件结构的差异,没有一种增量更新算法生成的增量包总是小于其他的增量更新算法,文件更新时消耗的网络流量仍然较大。
发明内容
本发明实施例所要解决的技术问题在于,提供一种文件的更新方法。可解决文件更新时网络流量消耗较大的问题。
为了解决上述技术问题,本发明实施例提供了一种文件的更新方法,包括:
服务器接收终端发送的更新请求,所述更新请求包括:待更新文件的当前版本号和目标版本号;
若预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合,从所述增量包集合中选取大小最小的增量包作为目标增量包;其中,所述增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不相同;
所述服务器向所述终端返回更新响应,所述更新响应包括所述目标增量包和所述目标增量包使用的增量更新算法类型。
相应地,本发明实施例还提供了一种服务器,包括:
接收模块,用于接收终端发送的更新请求,所述更新请求包括:待更新文件的当前版本号和目标版本号;
选取模块,用于若预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合,从所述增量包集合中选取大小最小的增量包作为目标增量包;其中,所述增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不相同;
返回模块,用于向所述终端返回更新响应,所述更新响应包括所述目标增量包和所述目标增量包使用的增量更新算法类型。
相应的,本发明实施例还提供了一种文件的更新方法,包括:
终端获取待更新文件的当前版本号和目标版本号,并向服务器发送更新请求;其中,所述更新请求包括所述当前版本号和所述目标版本号;
所述终端接收所述服务器根据所述当前版本号和所述目标版本号返回的更新响应,所述更新响应包括目标增量包和所述目标增量包使用的增量更新算法类型;
所述终端根据所述目标增量包将所述待更新文件由所述当前版本号更新至所述目标版本号。
相应的,本发明实施例还提供了一种终端,包括:
发送模块,用于获取待更新文件的当前版本号和目标版本号,并向服务器发送更新请求;其中,所述更新请求包括所述当前版本号和所述目标版本号;
接收模块,用于接收所述服务器根据所述当前版本号和所述目标版本号返回的更新响应,所述更新响应包括目标增量包和所述目标增量包使用的增量更新算法类型;
合成模块,用于根据所述目标增量包将所述待更新文件由所述当前版本号更新至所述目标版本号。
实施本发明实施例,具有如下有益效果:
服务器根据终端上待更新文件的当前版本号和目标版本号,查询数据库中是否存在于当前版本号和目标版本号关联的增量包集合,增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不相同,服务器从关联的增量包集合中选择大小最小的增量包作为目标增量包,服务器将目标增量包和目标增量包使用的增量更新算法类型通知给终端,以使终端根据应用目标增量包和其使用的增量更新算法类型合成目标版本号的文件。这样,服务器通过牺牲时间和空间资源,选取满足终端需求的大小最小的目标增量包,以节省终端的流量消耗和下载时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的一种文件的更新方法的流程示意图;
图2是本发明第二实施例提供的一种文件的更新方法的流程示意图;
图3是本发明第三实施例提供的一种文件的更新方法的流程示意图;
图4是本发明第四实施例提供的一种文件的更新方法的流程示意图;
图5是本发明第五实施例提供的一种文件的更新方法的流程示意图;
图6是本发明第一实施例提供的一种服务器的结构示意图;
图7是本发明第二实施例提供的一种服务器的结构示意图;
图8是图7中选取模块的结构示意图;
图9是本发明第一实施例提供的一种终端的结构示意图;
图10是本发明第二实施例提供的一种终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,终端可以为PC(Personal Computer,个人计算机)、笔记本电脑、手机、PAD(平板电脑)、智能可穿戴设备、车载终端等。
参见图1,为本发明第一实施例提供的一种文件的更新方法的流程示意图,在本发明实施例中,所述方法包括:
S101、服务器接收终端发送的更新请求,所述更新请求包括:待更新文件的当前版本号和目标版本号。
具体的,待更新文件可以是音频文件、视频文件、文本文件或程序安装文件等。终端获取本地的待更新文件的当前版本号,通过对比服务器发布的待更新文件的版本号判断是否需要更新,服务器发布的版本号包括待更新文件所有的版本号。如果终端上的待更新文件需要更新,终端向服务器发送更新请求,更新请求用于将终端上的待更新文件由当前版本号更新到目标版本号,目标版本号要高于当前版本号。在实际的应用场景中,目标版本号可以为待更新文件在服务器发布的最高版本号。
S102、若预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合,从所述增量包集合中选取大小最小的增量包作为目标增量包;其中,所述增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不同。
具体的,预设的数据库中存储有多个增量包集合,每个增量包集合关联有低版本号和高版本号,每个增量包集合中包括至少两个增量包,增量包为服务器根据低版本号的文件和高版本号的文件采用增量更新算法得到的,增量包使用增量更新算法类型包括Hdiff、BSDiff、Exsdiff和bzip2中的任意一种,每个增量包使用的增量更新算法类型不相同。服务器根据待更新文件的当前版本号和目标版本号为查询关键字查询预设的数据库中是否存在关联的增量包集合,若存在,服务器从关联的增量包集合中选取大小最小的目标增量包。
可以看出,服务器从增量包集合中选取大小最小的目标增量包,终端更新本地的待更新文件时所需的流量最少,在相同的下载速度下,所需的下载时间也最短。
S103、所述服务器向所述终端返回更新响应,所述更新响应包括所述目标增量更新包和所述目标增量包使用的增量更新算法类型。
其中,服务器在增量包集合中选取目标增量包后,可以直接将目标增量包返回给终端;或者,服务器在增量包集合中选取目标增量包后,通知终端目标增量包的存储地址,服务器在接收到终端的下载请求后向终端返回目标增量包。终端调用本地的当前版本的待更新文件和目标增量包合成目标版本的文件,终端根据目标增量包使用的增量更新算法类型选择对应的合成算法合成目标版本的文件,合成过程现有技术已有描述,此处不再赘述。
实施本发明的实施例,服务器根据终端上待更新文件的当前版本号和目标版本号,查询数据库中是否存在于当前版本号和目标版本号关联的增量包集合,增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不相同,服务器从关联的增量包集合中选择大小最小的增量包作为目标增量包,服务器将目标增量包和目标增量包使用的增量更新算法类型通知给终端,以使终端根据应用目标增量包和其使用的增量更新算法类型合成目标版本号的文件。这样,服务器通过牺牲时间和空间资源,选取满足终端需求的大小最小的目标增量包,以节省终端的流量消耗和下载时间。
参见图2,为本发明第二实施例提供的一种文件的更新方法的流程示意图,在本发明实施例中,所述方法包括:
S201、服务器接收终端发送的更新请求,所述更新请求包括:待更新文件的当前版本号、目标版本号和实际性能参数。
具体的,实际性能参数指终端的硬件配置参数和/或软件配置参数,终端的实际性能参数包括终端的内存大小、CPU主频和操作***类型中的一种或多种。终端需要更新文件时,向服务器发送更新请求,更新请求包括:待更新文件的当前版本号、目标版本号和终端的实际性能参数,其中,待更新文件的目标版本号高于当前版本号,服务器接收终端发送的更新请求。
示例性的,待安装文件为即时通信软件的安装文件,终端获取自身的实际性能参数:内存大小1G,CPU主频1.0GHz,终端上安装文件的当前版本号为v1.0,服务器已发布的安装文件的版本号为v1.0、v2.0和v3.0,表明终端上的安装文件可以由当前的v1.0更新至v2.0或v3.0。假设终端需要将安装文件由v1.0更新至v3.0,终端向服务器发送更新请求,更新请求包括安装文件的当前版本号v1.0、目标版本号v3.0和终端的实际性能参数:内存大小1G、CPU主频1GHz,服务器接收包括上述参数的更新请求,从更新请求中解析上述参数。
需要说明的是,服务器接收到终端的更新请求后,可以比较终端上的待更新文件的第一哈希值和服务器上的待更新文件的第二哈希值,如果第一哈希值和第二哈希值不相等,则表明终端上的待更新文件和服务器上的待更新文件不相同,终端无法利用本地的待更新文件和增量包合成目标版本号的文件,此时采用全量增量的方案,即服务器直接将目标版本号的文件发送给终端,终端替换掉当前版本号的待更新文件,完成由当前版本号至目标版本号的更新过程。
S202、判断预设的数据库中是否存在所述当前版本号和所述目标版本号关联的索引表项。
具体的,索引表项与增量包集合关联,索引表项中包括用于表示增量包集合中各个增量包的大小、使用的增量更新算法类型、需求性能参数和存储地址的记录,每种增量更新算法对终端的能力要求不同,需求性能参数表示终端利用增量包合成目标版本号的文件需要满足的最低要求的硬件配置参数和/或软件配置参数,如果终端的实际性能参数无法满足该增量包的需求形成参数,终端无法正常合成目标版本号的文件。索引表项的查询关键词包括第一版本号和第二版本号,服务器根据多种不同类型增量更新算法分别生成第一版本号和第二版本号的安装文件之间的增量包,多个增量包组成增量包集合,根据增量包集合中每个增量包的大小、需求性能参数、使用的增量更新算法类型和存储地址生成增量包集合的索引表项。服务器以待更新文件的当前版本号和目标版本号为查询关键字查询是否存在关联的索引表项,若存在,执行S207,若不存在,执行S203。
需要说明的是,预设的数据库可以内置的服务器的本地数据库,也可以是外置的远程数据库,本发明不作限制。
示例性的,安装文件的文件名为netscape,终端上待更新的安装文件的版本号为v1.0,服务器已发布的安装文件的版本号为v1.0、v2.0和v3.0,预设的数据库中设置有两个增量包集合,分别为第一增量包集合和第二增量包集合,第一增量包集合中包括版本号为v1.0的安装文件和版本号为v3.0之间的增量包,服务器使用至少两种不同的增量更新算法类型生成第一增量包集合中的增量包,第一增量包集合中的增量包的数量和使用的增量更新算法类型的数量相等,第一增量包集合关联有索引表项,该索引表项的查询关键词为v1.0和v3.0;第二增量包集合包括版本号为v2.0的安装文件和版本号为v3.0的安装文件之间的增量包,服务器使用至少两种不同的增量更新算法类型生成第二增量包集合中的增量包,第二增量包集合中的增量包的数量和使用的增量更新算法类型的数量相等,第二增量更新包关联有索引表项,该索引表项的查询关键词为v2.0和v3.0。如表1和表2所示,分别为数据库中存储的第一增量包集合的索引表项和第二增量包集合的索引表项:
Figure BDA0000582922360000071
表1
Figure BDA0000582922360000072
表2
终端向服务器发送更新请求,如果更新请求包括安装文件的当前版本号v1.0、目标版本号v3.0和终端的实际性能参数:内存大小512M、CPU主频1GHz,服务器查询数据库中存在于当前版本号v1.0和目标版本号v3.0关联的索引表项(表1),执行S207;如果更新请求包括安装文件的当前版本号v1.0、目标版本号v2.0和终端的实际性能参数:内存大小512M、CPU主频1GHz,服务器查询预设的数据库发现不存在与当前版本号v1.0和目标版本号v2.0关联的索引表项,执行S203。
S203、根据预设的至少两种增量更新算法生成对应的至少两个增量包。
具体的,服务器根据预设的至少两种增量更新算法生成与至少两个增量包,增量包的数据等于增量更新算法类型的数量,增量包为当前版本号和目标版本号的待更新文件之间的增量包。
示例性的,当前版本号为v1.0,目标版本号为v2.0,预设的增量更新算法包括Hdiff、Exediff、Bsdiff、RTPath、Xdelta和bzip2,服务器根据上述6种增量更新算法生成v1.0和v2.0的待更新文件之间的6个增量包。
S204、将所述至少两个增量包作为与所述当前版本号和所述目标版本号关联的增量包集合。
S205、将所述与当前版本号和所述目标版本号关联的增量包集合存储至所述预设的数据库中。
S206、根据所述增量包集合中每个增量包的大小、使用的增量更新算法类型、需求性能参数和存储地址生成所述增量更新包集合的索引表项。
其中,生成的增量更新包集合的索引表项如表3所示:
Figure BDA0000582922360000081
表3
服务器将生成的索引表项存储至预设的数据库中,增量包的存储地址的形式可以为URL地址。
S207、所述预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合。
其中,查询到与当前版本号和目标版本号关联的索引表项,即确定数据库中存在于当前版本号和目标版本号关联的增量包集合。
S208、根据所述终端的实际性能参数从所述增量包集合确定满足需求性能参数的增量包。
具体的,服务器根据终端的实际性能参数选取增量包集合中满足需求性能参数的增量包。
示例性的,如表1所示,终端的实际性能参数为内存大小512M,CPU主频1GHz,根据表1的索引记录确定满足需求性能参数的增量包为编号为1、2、3、4和6的增量包。
S209、从所述满足需求性能参数的增量包中选取大小最小的增量包作为目标增量包。
具体的,服务器根据索引表项中获取满足需求性能参数的增量包的大小,从其中选取大小最小的增量包作为目标增量包。
示例性的,满足需求性能参数的的增量包为表1中的编号为1、2、3、4和6的增量包,根据表1可知,上述增量包的大小分别为5.4M、4.6M、5.0M、6.5M和4.0M,编号为6的增量包的大小最小,选取编号为6的增量包作为目标增量包。
S210、所述服务器向所述终端返回更新响应,所述更新响应包括所述目标增量包和所述目标增量包使用的增量更新算法类型。
其中,服务器在增量包集合中选取目标增量包后,可以直接将目标增量包返回给终端;或者,服务器在增量包集合中选取目标增量包后,通知终端目标增量包的存储地址,服务器在接收到终端的下载请求后向终端返回目标增量包。终端调用本地的当前版本的待更新文件和目标增量包合成目标版本的文件,终端根据目标增量包使用的增量更新算法类型选择对应的合成算法合成目标版本的文件,合成过程现有技术已有描述,此处不再赘述。
例如,服务器选取的目标增量包为表1中的编号为6的增量包,服务器将编号为6的增量包和该增量包使用的增量更新算法的类型bzip2返回给终端,终端调用与bzip2增量更新算法对应的合成程序将目标增量包和当前版本的待更新文件合成目标版本的文件。
实施本发明的实施例,服务器根据终端上待更新文件的当前版本号和目标版本号,查询数据库中是否存在于当前版本号和目标版本号关联的增量包集合,增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不相同,服务器从关联的增量包集合中选择大小最小的增量包作为目标增量包,服务器将目标增量包和目标增量包使用的增量更新算法类型通知给终端,以使终端根据应用目标增量包和其使用的增量更新算法类型合成目标版本号的文件。这样,服务器通过牺牲时间和空间资源,选取满足终端需求的大小最小的目标增量包,以节省终端的流量消耗和下载时间。
参见图3,为本发明实施例三提供的一种文件的更新方法的流程示意图,在本发明实施例中,所述方法包括:
S301、终端获取待更新文件的当前版本号和目标版本号,并向服务器发送更新请求;其中,所述更新请求包括所述当前版本号和所述目标版本号。
其中,终端检测到待更新文件需要更新时,获取待更新文件的当前版本号和需要更新到的目标版本号,并向服务器发送更新请求,更新请求包括待更新文件的当前版本号和目标版本号。
S302、所述终端接收所述服务器根据所述当前版本号和所述目标版本号返回的更新响应,所述更新响应包括目标增量包和所述目标增量包使用的增量更新算法类型。
其中,目标增量更新包为当前版本号的待更新文件和目标版本号的文件之间的增量包,终端接收服务器发送的目标增量包和目标增量包使用的增量更新算法类型。
S303、所述终端根据所述目标增量包将所述待更新文件由所述当前版本号更新至所述目标版本号。
其中,服务器在增量包集合中选取目标增量包后,可以直接将目标增量包返回给终端;或者,服务器在增量包集合中选取目标增量包后,通知终端目标增量包的存储地址,服务器在接收到终端的下载请求后向终端返回目标增量包。终端调用本地的当前版本的待更新文件和目标增量包合成目标版本的文件,终端根据目标增量包使用的增量更新算法类型选择对应的合成算法合成目标版本的文件,合成过程现有技术已有描述,此处不再赘述。
实施本发明的实施例,终端的文件需要更新时,向服务器发送待更新文件的当前版本号和目标版本号,服务器根据当前版本号目标版本号返回目标增量包,终端根据目标增量包和当前版本号的待更新文件合成目标版本号的文件。终端不需要下载完整的文件,从而减少和流量的消耗和下载时间。
参见图4,为本发明第三实施例提供的一种文件的更新方法的流程示意图,在本发明实施例中,所述方法包括:
S401、终端获取待更新文件的当前版本号和目标版本号,并向服务器发送更新请求;其中,所述更新请求包括所述当前版本号、所述目标版本号和实际性能参数。
其中,实际性能参数指终端的硬件配置参数和/或软件配置参数,终端的实际性能参数包括终端的内存大小、CPU主频和操作***类型中的一种或多种。
S402、所述终端接收所述服务器根据所述当前版本号和所述目标版本号返回的更新响应,所述更新响应包括目标增量包和所述目标增量包使用的增量更新算法类型;
S403、所述终端根据所述目标增量包将所述待更新文件由所述当前版本号更新至所述目标版本号。
S404、获取更新后的所述目标版本号的文件的第一哈希值,以及获取所述服务器上所述目标版本号的文件的第二哈希值。
具体的,终端根据预设的哈希算法计算更新后的目标版本号的文件的第一哈希值,服务器上存储有采用与终端相同哈希算法对目标版本号的文件计算后得到的第二哈希值。
S405、比较所述第一哈希值与所述第二哈希值是否相等。
其中,如果第一哈希值和第二哈希值不相等,表明终端上合成的目标版本号的文件和服务器上目标版本号的文件不一致,可能是合成过程中发生错误,终端上合成的目标版本文件无法正常使用。如果第一哈希值和第二哈希值相等,表明终端上合成的目标版本号的文件和服务器上的目标版本号的文件是一致的,合成后的目标版本号的文件可以正常使用。
S406、显示更新成功消息。
S407、显示更新失败消息。
实施本发明的实施例,终端的文件需要更新时,向服务器发送待更新文件的当前版本号和目标版本号,服务器根据当前版本号目标版本号返回目标增量包,终端根据目标增量包和当前版本号的待更新文件合成目标版本号的文件。终端不需要下载完整的文件,从而减少和流量的消耗和下载时间。
参见图5,为本发明实施例五提供的一种文件更新方法的流程图,在本发明实施例中,所述方法包括:
S1、终端获取待更新文件的当前版本号和目标版本号。
具体的,待更新文件可以是音频文件、视频文件、文本文件或程序安装文件等。终端获取本地的待更新文件的当前版本号,通过对比服务器发布的待更新文件的版本号判断是否需要更新,服务器发布的版本号包括待更新文件所有的版本号。如果终端上的待更新文件需要更新,终端获取待更新文件的当前版本号目标版本号。
S2、终端向服务器发送更新请求,更新请求包括当前版本号和目标版本号。
具体的,终端向服务器发送更新请求,更新请求用于将终端上的待更新文件由当前版本号更新到目标版本号,目标版本号要高于当前版本号。在实际的应用场景中,目标版本号可以为待更新文件在服务器发布的最高版本号。
S3、服务器查询预设的数据库中存在于当前版本号和目标版本号关联的增量包集合。
预设的数据库中存储有多个增量包集合,每个增量包集合关联有低版本号和高版本号,每个增量包集合中包括至少两个增量包,增量包为服务器根据低版本号的文件和高版本号的文件采用增量更新算法得到的,增量包使用增量更新算法类型包括Hdiff、BSDiff、Exsdiff和bzip2中的任意一种,每个增量包使用的增量更新算法类型不相同。
S4、服务器从增量包集合中选取大小最小的增量包作为目标增量包。
其中,服务器根据待更新文件的当前版本号和目标版本号为查询关键字查询预设的数据库中是否存在关联的增量包集合,若存在,服务器从关联的增量包集合中选取大小最小的目标增量包。
可以看出,服务器从增量包集合中选取大小最小的目标增量包,终端更新本地的待更新文件时所需的流量最少,在相同的下载速度下,所需的下载时间也最短。
S5、服务器向终端返回更新响应,更新响应包括目标增量包和目标增量包使用的增量更新算法类型。
其中,服务器在增量包集合中选取目标增量包后,可以直接将目标增量包返回给终端;或者,服务器在增量包集合中选取目标增量包后,通知终端目标增量包的存储地址,服务器在接收到终端的下载请求后向终端返回目标增量包和目标增量包使用的增量更新算法类型。
S6、根据目标增量包将待更新文件由当前版本号更新至目标版本号。
其中,终端根据目标增量包使用的增量更新算法类型选择对应的合成算法合成目标版本的文件,合成过程现有技术已有描述,此处不再赘述。
实施本发明的实施例,服务器根据终端上待更新文件的当前版本号和目标版本号,查询数据库中是否存在于当前版本号和目标版本号关联的增量包集合,增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不相同,服务器从关联的增量包集合中选择大小最小的增量包作为目标增量包,服务器将目标增量包和目标增量包使用的增量更新算法类型通知给终端,以使终端根据应用目标增量包和其使用的增量更新算法类型合成目标版本号的文件。这样,服务器通过牺牲时间和空间资源,选取满足终端需求的大小最小的目标增量包,以节省终端的流量消耗和下载时间。
参见图6,为本发明第一实施例提供的一种服务器的结构示意图,在本发明实施例中,所述服务器包括接收模块10、选取模块11和返回模块12。
接收模块10,用于接收终端发送的更新请求,所述更新请求包括:待更新文件的当前版本号和目标版本号。
选取模块11,用于若预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合,从所述增量包集合中选取大小最小的增量包作为目标增量包;其中,所述增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不相同。
返回模块12,用于向所述终端返回更新响应,所述更新响应包括所述目标增量包和所述目标增量包使用的增量更新算法类型。
本发明实施例和方法实施例一属于同一构思,其带来的技术效果也相同,具体请参照方法实施例一的描述,此处不再赘述。
参见图7和图8,为本发明第二实施例提供的一种服务器的结构示意图,在本发明实施例中,所述服务器除包括接收模块10、选取模块11和返回模块12之外,还包括生成模块13、关联模块14和存储模块15。
生成模块13,用于若所述预设的数据库中不存在与所述当前版本号和所述目标版本号关联的增量包集合,根据预设的至少两种增量更新算法生成至少两个增量包;
关联模块14,用于将所述至少两个增量包作为与所述当前版本号和所述目标版本号关联的增量包集合;
存储模块15,用于将与所述当前版本号和所述目标版本号关联的增量包集合存储至所述预设的数据库中。
可选的,存储模块15还用于获取所述增量包集合中每个增量包的大小、使用的增量更新算法类型和存储地址;根据所述增量包集合中每个增量包的大小、使用的增量更新算法类型和存储地址生成所述增量包集合的索引表项。
可选的,选取模块11包括查询单元111和选取单元112。
查询单元111,用于查询所述预设的数据库中是否存在与所述当前版本号和所述目标版本号关联的索引表项,若为是,则确定所述预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合;
选取单元112,用于根据所述索引表项中的记录在所述增量包集合中选取大小最小的增量包作为目标增量包;其中,所述索引表项中包括至少两条记录,每条记录包括增量包的大小、使用的增量更新算法类型和存储地址。
可选的,所述更新请求还包括:所述终端的实际性能参数,所述索引表项中每条记录还包括:需求性能参数;
所述选取单元112具体用于根据所述终端的实际性能参数从所述增量包集合确定满足需求性能参数的增量包;从所述满足需求性能参数的增量包中选取大小最小的增量包作为目标增量包。
本发明实施例和方法实施例二属于同一构思,其带来的技术效果也相同,具体请参照方法实施例二的描述,此处不作赘述。
参见图9,为本发明第一实施例提供的一种终端的结构示意图,在本发明实施例中所述终端包括发送模块20、接收模块21和合成模块22。
发送模块20,用于获取待更新文件的当前版本号和目标版本号,并向服务器发送更新请求;其中,所述更新请求包括所述当前版本号和所述目标版本号。
接收模块21,用于接收所述服务器根据所述当前版本号和所述目标版本号返回的更新响应,所述更新响应包括目标增量包和所述目标增量包使用的增量更新算法类型。
合成模块22,用于根据所述目标增量包将所述待更新文件由所述当前版本号更新至所述目标版本号。
本发明实施例和方法实施例三属于同一构思,其带来的技术效果也相同,具体请参照方法实施例三的描述,此处不再赘述。
参见图10,为本发明第二实施例提供的一种终端的结构示意图,在本发明实施例中,所述终端除包括发送模块20、接收模块21和合成模块22之外,还包括获取模块23、比较模块24、第一显示模块25和第二显示模块26。
获取模块23,用于获取更新后的所述目标版本号的文件的第一哈希值,以及获取所述服务器上所述目标版本号的文件的第二哈希值。
比较模块24,用于比较所述第一哈希值与所述第二哈希值是否相等。
第一显示模块25,用于若所述比较模块的比较结果为是,显示更新成功消息。
第二显示模块26,用于若所述比较模块的比较结果为否,显示更新失败消息。
本发明实施例和方法实施例四属于同一构思,其带来的技术效果也相同,具体请参照方法实施例四的描述,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (21)

1.一种文件的更新方法,其特征在于,包括:
服务器接收终端发送的更新请求,所述更新请求包括:待更新文件的当前版本号和目标版本号;
若预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合,从所述增量包集合中选取大小最小的增量包作为目标增量包;其中,所述增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不相同;
所述服务器向所述终端返回更新响应,所述更新响应包括所述目标增量包和所述目标增量包使用的增量更新算法类型,所述增量更新算法类型用于使所述终端选择与所述增量更新算法类型对应的合成算法,将所述目标增量包和所述待更新文件合成为所述目标版本号的文件。
2.如权利要求1所述的方法,其特征在于,还包括:
若所述预设的数据库中不存在与所述当前版本号和所述目标版本号关联的目标增量包集合,根据预设的至少两种增量更新算法类型生成对应的至少两个增量包;
将所述至少两个增量包作为与所述当前版本号和所述目标版本号关联的增量包集合;
将与所述当前版本号和所述目标版本号关联的增量包集合存储至所述预设的数据库中。
3.如权利要求2所述的方法,其特征在于,所述将所述至少两个增量包集合作为所述当前版本号和所述目标版本号关联的增量包集合,还包括:
获取所述增量包集合中每个增量包的大小、使用的增量更新算法类型和存储地址;
根据所述增量包集合中每个增量包的大小、使用的增量更新算法类型和存储地址生成所述增量包集合的索引表项。
4.如权利要求1-3任意一项所述的方法,其特征在于,所述若预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合,从所述增量包集合中选取大小最小的增量包作为目标增量包包括:
查询所述预设的数据库中是否存在与所述当前版本号和所述目标版本号关联的索引表项,若为是,确定所述预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合;
根据所述索引表项中的记录在所述增量包集合中选取大小最小的增量包作为目标增量包;其中,所述索引表项中包括至少两条记录,每条记录包括增量包的大小、使用的增量更新算法类型和存储地址。
5.如权利要求4所述的方法,其特征在于,所述更新请求还包括:所述终端的实际性能参数,所述索引表项中每条记录还包括:需求性能参数;
所述根据所述索引表项在所述增量包集合中确定大小最小的增量包作为目标增量包包括:
根据所述终端的实际性能参数从所述增量包集合确定满足需求性能参数的增量包;
从所述满足需求性能参数的增量包中选取大小最小的增量包作为目标增量包。
6.如权利要求5所述的方法,其特征在于,所述实际性能参数和所述需求性能参数包括:内存大小、CPU主频和操作***类型中的一种或多种。
7.一种文件更新方法,其特征在于,包括:
终端获取待更新文件的当前版本号和目标版本号,并向服务器发送更新请求;其中,所述更新请求包括所述当前版本号和所述目标版本号;
所述终端接收所述服务器根据所述当前版本号和所述目标版本号返回的更新响应,所述更新响应包括目标增量包和所述目标增量包使用的增量更新算法类型;其中,若所述服务器预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合,所述增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不相同,则所述目标增量包为从所述增量包集合中选取的大小最小的增量包;
所述终端根据所述目标增量包使用的所述增量更新算法类型选择对应的合成算法,将所述目标增量包和所述待更新文件合成为所述目标版本号的文件。
8.如权利要求7所述的方法,其特征在于,所述更新请求还包括所述终端的实际性能参数;
所述终端获取待更新文件的当前版本号和目标版本号还包括:
所述终端获取所述实际性能参数,其中,所述实际性能参数包括:所述终端的内存大小、CPU主频和操作***类型中的一种或多种。
9.如权利要求7或8所述的方法,其特征在于,所述终端根据所述目标增量包将所述待更新文件由所述当前版本号更新至所述目标版本号之后,还包括:
获取更新后的所述目标版本号的文件的第一哈希值,以及获取所述服务器上所述目标版本号的文件的第二哈希值;
比较所述第一哈希值与所述第二哈希值是否相等;
若为是,显示更新成功消息;
若为否,显示更新失败消息。
10.一种服务器,其特征在于,包括:
接收模块,用于接收终端发送的更新请求,所述更新请求包括:待更新文件的当前版本号和目标版本号;
选取模块,用于若预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合,从所述增量包集合中选取大小最小的增量包作为目标增量包;其中,所述增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不相同;
返回模块,用于向所述终端返回更新响应,所述更新响应包括所述目标增量包和所述目标增量包使用的增量更新算法类型,所述增量更新算法类型用于使所述终端选择与所述增量更新算法类型对应的合成算法,将所述目标增量包和所述待更新文件合成为所述目标版本号的文件。
11.如权利要求10所述的服务器,其特征在于,还包括:
生成模块,用于若所述预设的数据库中不存在与所述当前版本号和所述目标版本号关联的增量包集合,根据预设的至少两种增量更新算法生成至少两个增量包;
关联模块,用于将所述至少两个增量包作为与所述当前版本号和所述目标版本号关联的增量包集合;
存储模块,用于将与所述当前版本号和所述目标版本号关联的增量包集合存储至所述预设的数据库中。
12.如权利要求11所述的服务器,其特征在于,所述存储模块还用于获取所述增量包集合中每个增量包的大小、使用的增量更新算法类型和存储地址;根据所述增量包集合中每个增量包的大小、使用的增量更新算法类型和存储地址生成所述增量包集合的索引表项。
13.如权利要求10-12任意一项所述的服务器,其特征在于,所述选取模块包括:
查询单元,用于查询所述预设的数据库中是否存在与所述当前版本号和所述目标版本号关联的索引表项,若为是,则确定所述预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合;
选取单元,用于根据所述索引表项中的记录在所述增量包集合中选取大小最小的增量包作为目标增量包;其中,所述索引表项中包括至少两条记录,每条记录包括增量包的大小、使用的增量更新算法类型和存储地址。
14.如权利要求13所述的服务器,其特征在于,所述更新请求还包括:所述终端的实际性能参数,所述索引表项中每条记录还包括:需求性能参数;
所述选取单元具体用于根据所述终端的实际性能参数从所述增量包集合确定满足需求性能参数的增量包;从所述满足需求性能参数的增量包中选取大小最小的增量包作为目标增量包。
15.如权利要求14所述的服务器,其特征在于,所述实际性能参数和所述需求性能参数包括:内存大小、CPU主频和操作***类型中的一种或多种。
16.一种终端,其特征在于,包括:
发送模块,用于获取待更新文件的当前版本号和目标版本号,并向服务器发送更新请求;其中,所述更新请求包括所述当前版本号和所述目标版本号;
接收模块,用于接收所述服务器根据所述当前版本号和所述目标版本号返回的更新响应,所述更新响应包括目标增量包和所述目标增量包使用的增量更新算法类型;其中,若所述服务器预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合,所述增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不相同,则所述目标增量包为从所述增量包集合中选取的大小最小的增量包;
合成模块,用于根据所述目标增量包使用的所述增量更新算法类型选择对应的合成算法,将所述目标增量包和所述待更新文件合成为所述目标版本号的文件。
17.如权利要求16所述的终端,其特征在于,所述更新请求还包括所述终端的实际性能参数;
所述发送模块还用于获取所述实际性能参数,其中,所述实际性能参数包括:所述终端的内存大小、CPU主频和操作***类型中的一种或多种。
18.如权利要求16或17所述的终端,其特征在于,还包括:
获取模块,用于获取更新后的所述目标版本号的文件的第一哈希值,以及获取所述服务器上所述目标版本号的文件的第二哈希值;
比较模块,用于比较所述第一哈希值与所述第二哈希值是否相等;
第一显示模块,用于若所述比较模块的比较结果为是,显示更新成功消息;
第二显示模块,用于若所述比较模块的比较结果为否,显示更新失败消息。
19.一种文件更新方法,其特征在于,包括:
终端获取待更新文件的当前版本号和目标版本号,并向服务器发送更新请求;其中,所述更新请求包括所述当前版本号和所述目标版本号;
所述服务器接收所述终端发送的所述更新请求;
若预设的数据库中存在与所述当前版本号和所述目标版本号关联的增量包集合,从所述增量包集合中选取大小最小的增量包作为目标增量包;其中,所述增量包集合中包括至少两个增量包,每个增量包使用的增量更新算法类型不相同;
所述服务器向所述终端返回更新响应,所述更新响应包括所述目标增量包和所述目标增量包使用的增量更新算法类型;
所述终端接收所述更新响应;
所述终端根据所述目标增量包使用的所述增量更新算法类型选择对应的合成算法,将所述目标增量包和所述待更新文件合成为所述目标版本号的文件。
20.一种文件更新***,包括如权利要求10-15任意一项所述的服务器和如权利要求16-18任意一项所述的终端。
21.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一段程序,所述至少一段程序用于执行如权利要求1-9、19任意一项所述的文件的更新方法。
CN201410529184.0A 2014-10-08 2014-10-08 一种文件更新方法、相关设备和*** Active CN104978215B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410529184.0A CN104978215B (zh) 2014-10-08 2014-10-08 一种文件更新方法、相关设备和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410529184.0A CN104978215B (zh) 2014-10-08 2014-10-08 一种文件更新方法、相关设备和***

Publications (2)

Publication Number Publication Date
CN104978215A CN104978215A (zh) 2015-10-14
CN104978215B true CN104978215B (zh) 2020-01-31

Family

ID=54274752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410529184.0A Active CN104978215B (zh) 2014-10-08 2014-10-08 一种文件更新方法、相关设备和***

Country Status (1)

Country Link
CN (1) CN104978215B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105739971B (zh) * 2016-01-20 2019-03-08 网易(杭州)网络有限公司 校验文件的生成、使用方法及装置
CN107015821B (zh) * 2016-01-28 2021-05-11 腾讯科技(深圳)有限公司 增量更新的方法和装置
CN107038039A (zh) * 2016-02-04 2017-08-11 腾讯科技(深圳)有限公司 数据更新方法及装置
CN106201577B (zh) * 2016-06-27 2019-06-14 竞技世界(北京)网络技术有限公司 一种更新Lua文件的方法及装置
CN108334771B (zh) * 2017-01-17 2021-03-12 杭州海康威视数字技术股份有限公司 一种增量升级包生成、增量更新方法及装置
CN106844210B (zh) * 2017-01-20 2019-08-23 网易(杭州)网络有限公司 事件变更信息的获取方法及装置
CN108920522A (zh) * 2018-06-04 2018-11-30 上海点融信息科技有限责任公司 用于数据库的数据处理方法、***及计算机可读存储介质
CN109285298A (zh) * 2018-09-30 2019-01-29 苏州浪潮智能软件有限公司 一种应用于银行自助***的远程更新方法
CN109450977B (zh) * 2018-10-09 2021-12-14 创新先进技术有限公司 缓存数据的推送、更新方法及装置
CN109829141B (zh) * 2018-12-28 2023-06-09 陈德芹 一种项目表格生成方法及装置
CN109829144B (zh) * 2018-12-28 2023-06-06 陈德芹 一种在线表格跨表引用方法及装置
CN109857921A (zh) * 2019-01-11 2019-06-07 平安科技(深圳)有限公司 一种基于数据更新的文档管理方法及文档管理***
CN110119381A (zh) * 2019-05-17 2019-08-13 北京思维造物信息科技股份有限公司 一种索引更新方法、装置、设备及介质
CN110390064A (zh) * 2019-07-25 2019-10-29 深圳市腾讯计算机***有限公司 文件更新方法、装置和***,存储介质及电子装置
CN113094063A (zh) * 2021-03-02 2021-07-09 厦门亿联网络技术股份有限公司 配置文件的更新方法及装置
CN113553090B (zh) * 2021-07-26 2023-07-25 网易(杭州)网络有限公司 客户端应用程序的更新控制方法及装置
CN114911507B (zh) * 2022-07-15 2022-09-23 浙江大华技术股份有限公司 一种算法包的更新方法及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724308A (zh) * 2012-06-13 2012-10-10 腾讯科技(深圳)有限公司 软件更新方法及软件更新***
CN103428188A (zh) * 2012-05-25 2013-12-04 北京小米科技有限责任公司 一种文件更新方法、装置及相关设备
CN103853574A (zh) * 2012-12-06 2014-06-11 腾讯科技(深圳)有限公司 一种软件升级的方法及***
CN104035800A (zh) * 2014-06-19 2014-09-10 广州金山网络科技有限公司 一种增量包生成方法、版本升级方法、装置以及***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103647816A (zh) * 2013-12-03 2014-03-19 北京奇虎科技有限公司 一种应用软件升级的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103428188A (zh) * 2012-05-25 2013-12-04 北京小米科技有限责任公司 一种文件更新方法、装置及相关设备
CN102724308A (zh) * 2012-06-13 2012-10-10 腾讯科技(深圳)有限公司 软件更新方法及软件更新***
CN103853574A (zh) * 2012-12-06 2014-06-11 腾讯科技(深圳)有限公司 一种软件升级的方法及***
CN104035800A (zh) * 2014-06-19 2014-09-10 广州金山网络科技有限公司 一种增量包生成方法、版本升级方法、装置以及***

Also Published As

Publication number Publication date
CN104978215A (zh) 2015-10-14

Similar Documents

Publication Publication Date Title
CN104978215B (zh) 一种文件更新方法、相关设备和***
CN107784086B (zh) 一种网页的加载方法、终端设备及计算机可读存储介质
US9544355B2 (en) Methods and apparatus for realizing short URL service
CN110737658A (zh) 数据分片存储方法、装置、终端及可读存储介质
US20150213134A1 (en) Data query method and system and storage medium
CN110162529B (zh) 一种数据处理方法、业务服务器及数据处理***
CN102810066A (zh) 终端适配方法、基于终端特性配置程序的终端及服务器
CN102023973A (zh) 一种应用缓存服务器与数据库同步的方法、装置和***
CN111885216B (zh) Dns查询方法、装置、设备和存储介质
EP3158475B1 (en) Intelligent web page content blocking
CN103986773A (zh) 一种数据请求响应方法及装置
TWI716822B (zh) 事務因果序的校正方法及裝置、電子設備
CN109388351A (zh) 一种分布式数据存储的方法及相关装置
CN111339057A (zh) 减少回源请求的方法、装置及计算机可读存储介质
CN107577506B (zh) 一种数据预加载的方法和***
CN112035529A (zh) 缓存方法、装置、电子设备及计算机可读存储介质
US20150019955A1 (en) Method and system for displaying literal contents, mobile terminal, cloud typesetting server, and storage medium
CN102214174A (zh) 一种海量数据信息检索***及其方法
CN105262793B (zh) 智能音箱播放存储设备中的音频文件的方法和***
CN112650804B (zh) 大数据接入方法、装置、***及存储介质
CN104063377A (zh) 信息处理方法和使用其的电子设备
CN114116247A (zh) 基于Redis的消息处理方法、装置、***、服务器和介质
CN110677443A (zh) 数据发送和接收方法、发送端、接收端、***及存储介质
CN111176715A (zh) 一种信息调用方法及服务器
US10193965B2 (en) Management server and operation method thereof and server system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant