CN103973475A - 差异补丁包生成方法及下载方法、服务器、客户端 - Google Patents
差异补丁包生成方法及下载方法、服务器、客户端 Download PDFInfo
- Publication number
- CN103973475A CN103973475A CN201310046195.9A CN201310046195A CN103973475A CN 103973475 A CN103973475 A CN 103973475A CN 201310046195 A CN201310046195 A CN 201310046195A CN 103973475 A CN103973475 A CN 103973475A
- Authority
- CN
- China
- Prior art keywords
- service packs
- difference
- binary file
- difference service
- server
- 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
Links
Landscapes
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种差异补丁包生成方法及下载方法、文件差异比对服务器、客户端。本发明实施例方法包括:若文件差异比对服务器接收到入口服务器上传的软件的最新版本的二进制文件,则获取软件的历史版本的二进制文件;利用预置的二进制差异算法比较最新版本的二进制文件与每一个历史版本的二进制文件,生成每一个历史版本的二进制文件的差异补丁包;将历史版本的版本号与差异补丁包的编号之间的对应关系保存至升级配置数据库中,将生成的差异补丁包发送给入口服务器,使得入口服务器将差异补丁包上传至内容分发网络CDN下载源服务器,能够有效的减少用户端下载该差异补丁包所消耗的流量和时间,同时,能够有效的缓解服务器的带宽压力。
Description
技术领域
本发明涉及软件升级领域,尤其涉及一种差异补丁包生成方法及下载方法、服务器、客户端。
背景技术
软件发布以后,随着功能的持续迭代或者软件出现安全漏洞等各种原因,需要发布新的软件安装包重新替换原来的安装包来发布更新的软件,比如通用的客户端软件,大型网络游戏或者移动应用软件都存在更新的要求。
目前通常的更新方式是客户端提供自己的版本号,服务器提供整个完整的软件安装包下载,这是一种全量的软件下载更新模式,可称为全量升级,比如50M的软件升级,就需要下载新版本的50M文件,然后将新版本的文件完全覆盖旧版本实现升级。
然而,对于全量升级的软件更新方式,如果很多人同时更新下载,服务器将存在巨大的带宽压力,下载速度和性能也无法保证。比如网络游戏是最近几年互联网发展最快的领域,和传统的单机游戏不一样,现在主要的网络游戏采用CS模式结构,除了一个强大的网络游戏服务器端外,还有一个强大的网络游戏客户端。客户端的文件大小从几百兆赫(MHz)到几个吉赫(GHz),文件都非常大,随着游戏新功能的增加游戏包含的多媒体数据信息变多,游戏包越来越大。升级需要的带宽越来越大。对于新发布的网络游戏或者升级补丁包,所有游戏的服务器商都通常期望在尽快的时间内完成游戏的升级和发布,减少用户下载和等待的时间,将使得服务器输出带宽达到几十GHz乃至上百GHz,将对服务器造成具体的带宽压力,且用户使用全量升级的方式下载新版本时,由于新版本的文件大,也将花费大量的流量及时间进行下载。
目前,为了降低软件升级时服务器的带宽压力,还可以使用增量升级的方式进行软件更新,增量升级不用下载完整的新版本的软件安装包,而是下载新版本的软件安装包中新增或者更新的内容。然而,现有的增量升级的软件更新方式都是基于文件粒度的文件对比得到差异补丁包的,得到的差异补丁包的仍然较大,在有大量用户同时下载时,依旧会造成服务器的带宽压力,且会消耗客户端较多的流量及下载时间。
发明内容
本发明实施例提供了一种差异补丁包生成方法及下载方法、服务器、客户端,用于实现软件的升级,且由于客户端下载的差异补丁包是基于二进制差异算法生成的,该差异补丁包的文件大小很小,远远小于基于文件粒度对比得到的差异补丁包,因此,能够有效的节约客户端的下载流量及下载时间,且即使有大量用户同时从服务器下载该差异补丁包,也不会给服务器带来带宽压力。
本发明第一方面提供了一种差异补丁包生成方法,可包括:
若文件差异比对服务器接收到入口服务器上传的软件的最新版本的二进制文件,则获取所述软件的历史版本的二进制文件;
利用预置的二进制差异算法比较所述最新版本的二进制文件与每一个历史版本的二进制文件,生成每一个历史版本的二进制文件的差异补丁包;
将所述历史版本的版本号与差异补丁包的编号之间的对应关系保存至升级配置数据库中,将生成的差异补丁包发送给所述入口服务器,使得所述入口服务器将所述差异补丁包上传至内容分发网络CDN下载源服务器。
在第一种可能的实现方式中,所述利用预置的二进制差异算法比较所述最新版本的二进制文件与每一个历史版本的二进制文件,生成每一个历史版本的二进制文件的差异补丁包包括:
对每一个历史版本的二进制文件执行以下步骤:
利用预置的二进制差异算法比较所述最新版本的二进制文件与所述历史版本的二进制文件,得到比较结果;
利用所述比较结果生成所述历史版本二进制文件的差异补丁包。
结合第一方面或者第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述获取所述软件的历史版本的二进制文件包括:
查询历史版本数据库,从所述历史版本数据库中读取所述软件的历史版本的二进制文件。
结合第一方面或者第一方面第一种可能的实现方式或者第二方面第二种可能的实现方式,在第三种可能的实现方式中,该方法还包括:
将所述软件的最新版本的版本号、所述软件的历史版本的版本号及每一个历史版本的二进制文件对应的差异补丁包的校验信息保存至所述升级配置数据库中。
结合第一方面或者第一方面第一种可能的实现方式或者第二方面第二种可能的实现方式或者第一方面第三种可能的实现方式,在第四种可能的实现方式中,该方法还包括:
所述文件差异比对服务器接收所述入口服务器上传的所述差异补丁包与下载地址之间的对应关系,将所述差异补丁包与下载地址之间的对应关系保存在所述升级配置数据库中。
本发明第二方面提供了一种差异补丁包下载方法,包括:
客户端向升级逻辑服务器发送差异补丁包查询消息,使得所述升级逻辑服务器从升级配置数据库中查询所述客户端待升级的软件的版本号对应的差异补丁包,并将所述差异补丁包的下载地址发送给所述客户端;
所述客户端接收所述差异补丁包的下载地址;
利用所述差异补丁包的下载地址从内容分发网络CDN下载源服务器下载所述差异补丁包,所述差异补丁包是基于二进制差异算法生成的。
在第一种可能的实现方式中,该方法还可包括:
所述客户端向tracker服务器发送查询消息,使得所述tracker服务器向所述客户端反馈已下载或者正在下载所述差异补丁包的对等客户端的IP地址;
所述客户端接收所述tracker服务器反馈的对等客户端的IP地址;
所述客户端利用所述对等客户端的IP地址与所述对等客户端建立连接,从所述对等客户端下载所述差异补丁包。
结合第一方面或者第一方面第一种可能的实现方式,在第二种可能的实现方式中,该方法还可包括:
所述客户端利用所述差异补丁包及所述客户端待升级的软件的二进制文件生成所述软件的最新版本的二进制文件;
利用所述最新版本的二进制文件实现所述软件的升级。
本发明第三方面提供了一种服务器,可包括:
获取单元,用于若接收到入口服务器上传的软件的最新版本的二进制文件,则获取所述软件的历史版本的二进制文件;
生成单元,用于在所述获取单元获取所述历史版本的二进制文件之后,利用预置的二进制差异算法比较所述最新版本的二进制文件与每一个历史版本的二进制文件,生成每一个历史版本的二进制文件的差异补丁包;
处理单元,用于在所述生成单元生成每一个历史版本的二进制文件的差异补丁包之后,将所述历史版本的版本号与差异补丁包的编号之间的对应关系保存至升级配置数据库中,将生成的差异补丁包发送给所述入口服务器,使得所述入口服务器将所述差异补丁包上传至CDN下载源服务器。
在第一种可能的实现方式中,所述生成单元包括比较单元及补丁包生成单元,用于生成每一个历史版本的二进制文件的差异补丁包;
所述比较单元用于利用预置的二进制差异算法比较所述最新版本的二进制文件与所述历史版本的二进制文件,得到比较结果;
所述补丁包生成单元用于在所述比较单元得到比较结果之后,利用所述比较结果生成所述历史版本二进制文件的差异补丁包。
在第二种可能的实现方式中,所述获取单元具体用于若接收到入口服务器上传的软件的最新版本的二进制文件,查询历史版本数据库,从所述历史版本数据库中读取所述软件的历史版本的二进制文件。
结合第三方面或者第三方面第二种可能的实现方式,在第三种可能的实现方式中,所述处理单元还用于将所述软件的最新版本的版本号、所述软件的历史版本的版本号及每一个历史版本的二进制文件对应的差异补丁包的校验信息保存至所述升级配置数据库中。
结合第三方面或者第三方面第一种可能的实现方式或者第三方面第二种可能的实现方式或者第三种可能的实现方式,在第四种可能的实现方式中,该服务器还包括:
接收保存单元,用于在所述处理单元将所述差异补丁包发送给所述入口服务器之后,接收所述入口服务器上传的所述差异补丁包与下载地址之间的对应关系,将所述差异补丁包与下载地址之间的对应关系保存在所述升级配置数据库中。
本发明第四方面提供了一种客户端,可包括:
发送单元,用于向升级逻辑服务器发送差异补丁包查询消息,使得所述升级逻辑服务器从升级配置数据库中查询所述客户端待升级的软件的版本号对应的差异补丁包,并将所述差异补丁包的下载地址发送给所述客户端;
接收单元,用于在所述发送单元发送所述差异补丁包查询消息之后,接收所述差异补丁包的下载地址;
下载单元,用于在所述接收单元接收所述差异补丁包的下载地址之后,利用所述差异补丁包的下载地址从CDN下载源服务器下载所述差异补丁包,所述差异补丁包是基于二进制差异算法生成的。
在第一种可能的实现方式中:
所述发送单元还用于向tracker服务器发送查询消息,使得所述tracker服务器向所述客户端反馈已下载或者正在下载所述差异补丁包的对等客户端的IP地址;
所述接收单元还用于接收所述tracker服务器反馈的对等客户端的IP地址;
所述下载单元还用于利用所述对等客户端的IP地址与所述对等客户端建立连接,从所述对等客户端下载所述差异补丁包。
结合第四方面或者第四方面第一种可能的实现方式,在第二种可能的实现方式中,所述客户端还包括:
还原单元,用于利用所述差异补丁包及所述客户端待升级的软件的二进制文件生成所述软件的最新版本的二进制文件;
升级单元,用于在所述还原单元得到所述最新版本的二进制文件之后,利用所述最新版本的二进制文件实现所述软件的升级。
从以上技术方案可以看出,本发明实施例具有以下优点:
若文件差异比对服务器接收到入口服务器上传的软件的最新版本的二进制文件,则获取该软件的历史版本的二进制文件;利用预置的二进制差异算法,分别生成该最新版本的二进制文件与每一个历史版本的二进制文件之间的差异补丁包,且将每一个历史版本的版本号与该历史版本的二进制文件的差异补丁包的编号之间的对应关系保存至升级配置数据库中,将生成的差异补丁包发送给入口服务器,使得入口服务器将该差异补丁包上传至内容分发网络(英文全称为:Content Delivery Network,缩写为:CDN)下载源服务器,由于差异补丁包是利用二进制差异算法生成的,其大小远远小于基于文件粒度对比得到的差异补丁包,能够有效的减少用户端下载该差异补丁包所消耗的流量和时间,同时,能够有效的缓解服务器的带宽压力。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中的软件升级系统的结构的一个示意图;
图2为本发明实施例中一种差异补丁包生成方法的一个示意图;
图3为本发明实施例中一种差异补丁包生成方法的另一示意图;
图4为本发明实施例中一种差异补丁包下载方法的一个示意图;
图5为本发明实施例中服务器的结构的一个示意图;
图6为本发明实施例中服务器的结构的另一示意图;
图7为本发明实施例中客户端的结构的一个示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种差异补丁包生成方法及下载方法、服务器、客户端,用于实现软件的升级,且由于客户端下载的差异补丁包是基于二进制差异算法生成的,该差异补丁包的文件大小很小,远远小于基于文件粒度对比得到的差异补丁包,因此,能够有效的节约客户端的下载流量及下载时间,且即使有大量用户同时从服务器下载该差异补丁包,也不会给服务器带来带宽压力。
为了更好的理解本发明实施例中的技术方案,下面将介绍本发明实施例中的软件升级系统,请参阅图1,为本发明实施例中的软件升级系统的结构,包括:文件差异比对服务器,CDN下载源服务器、升级逻辑服务器、索引查询接入(Trackerconn)服务器、客户端、入口服务器,历史版本数据库、升级配置数据库等。
下面将具体的介绍图1所示的软件升级系统中,文件差异比对服务器生成差异补丁包的方法,具体请参阅图2,为本发明实施例中一种差异补丁包生成方法的实施例,包括:
201、若文件差异比对服务器接收到入口服务器上传的软件的最新版本的二进制文件,则获取软件的历史版本的二进制文件;
在本发明实施例中,入口服务器为文件发布的入口,管理员可将需要发布的待更新软件的最新版本的二进制文件上传至入口服务器,且入口服务器在得到该最新版本的二进制文件之后,将该最新版本的二进制文件上传至文件差异比对服务器。
在本发明实施例中,文件差异比对服务器接收到入口服务器上传的软件的最新版本的二进制文件之后,将获取该软件的历史版本的二进制文件。
在本发明实施例中,历史版本数据库中保存了已发布过的所有的软件的历史版本的二进制文件,因此,文件差异比对服务器可查询历史版本数据库,从历史版本数据库中获取具有最新版本的二进制文件的软件的历史版本的二进制文件,例如:若入口服务器接收到管理员上传的软件A的最新版本的二进制文件,且该最新版本的版本号为5,则入口服务器将软件A的最新版本的二进制文件及版本号5上传至文件差异比对服务器,且文件差异比对服务器在接收到软件A的最新版本的二进制文件之后,将从历史版本数据库中获取该软件A的版本号1至4的历史版本的二进制文件。
202、利用预置的二进制差异算法比较最新版本的二进制文件与每一个历史版本的二进制文件,生成每一个历史版本的二进制文件的差异补丁包;
在本发明实施例中,文件差异比对服务器将利用预置的二进制差异算法比较最新版本的二进制文件与每一个历史版本的二进制文件,生成每一个历史版本的二进制文件的差异补丁包,例如:软件A的最新版本为版本5,历史版本为1至4,则文件差异比对服务器将分别用历史版本1至4的二进制文件与版本5的二进制文件进行比较,分别得到历史版本1至4的差异补丁包。
需要说明的是,在本发明实施例中,不同软件进行升级的原因不同,因此,造成最新版本的二进制文件与历史版本的二进制文件的差异的也不相同,例如,在windows系统的平台软件可执行文件通常是可移植的执行体(英文全称为:Portable Execute,缩写为:PE)文件格式,且每一个PE文件的头部都会携带一些本次编译特有的信息,比如时间戳等,而对于软件升级而言,只有数据段和代码段的变化才是需要关注的,所以需要利用合适的二进制算法进行版本间的二进制文件的比较,以避免比较两个PE文件头部信息,减小生成的差异补丁包的大小;此外,对于软件的二进制文件而言,极少的代码变化可能导致代码块中指令的相对位置的改变,从而导致其后的所有指令素具的地址被重新定位,而对于PE文件,地址变动引发的二进制文件包的差异往往会稀疏的分部在整个文件的各个部分,从而导致生成的差异补丁包的大小偏大。因此,为了尽量降低生成的差异补丁包的大小,可以预先设置不同原因造成的软件升级对应的二进制差异算法,例如,对于代码变化产生的差异可以使用bsdiff/bspatch函数比较二进制文件包之间差异生成差异补丁包,对于指针偏移产生的差异,可以使用courgette算法比较二进制文件包之间的差异生成差异补丁包。
需要说明的是,在本发明实施例中,可由管理员预先设置每种差异变化的产生原因与二进制差异算法之间的对应关系,文件差异比对服务器可利用软件最新版本发生差异的原因选择对应的二进制差异算法,以生成尽量小的差异补丁包,且该对应关系在实际应用中可根据具体情况设置,此处不做限定。
203、将历史版本的版本号与差异补丁包的编号之间的对应关系保存至升级配置数据库中,将生成的差异补丁包发送给入口服务器,使得入口服务器将差异补丁包上传至CDN下载源服务器。
在本发明实施例中,文件差异比对服务器通过使用二进制差异算法确定待更新的软件的每一个历史版本的二进制文件与最新版本的二进制文件之间的差异并得到对应的差异补丁包之后,文件差异比对服务器还将对每一个生成的差异补丁包分配具有唯一性的编号,将待更新软件的每一个历史版本的版本号与差异补丁包的编号之间的对应关系保存至升级配置数据库中,同时,文件差异比对服务器还将生成的差异补丁包上传至入口服务器,并由入口服务器将该差异补丁包上传至CDN下载源服务器。
需要说明的是,在本发明实施例中,文件差异比对服务器在将差异补丁包发送给入口服务器之后,还可接收到入口服务器上传的该差异补丁包与下载地址之间的对应关系,且文件差异比对服务器将该差异补丁包与下载地址之间的对应关系保存至升级配置数据库中。具体的:文件差异比对服务器在将差异补丁包发送给入口服务器之后,入口服务器将该差异补丁包上传至CDN下载源服务器,CDN下载源服务器接收到入口服务器上传的差异补丁包之后,将为每一个差异补丁包分配对应的下载地址,并将差异补丁包与下载地址之间的对应关系反馈给入口服务器,并由入口服务器上传至文件差异比对服务器,最后文件差异比对服务器将差异补丁包与下载地址的对应关系保存至升级配置数据库中,使得升级逻辑服务器在接收到客户端发送的差异补丁包查询消息之后,升级逻辑服务器可利用客户端发送的软件的版本号从升级配置数据库中查询版本号与差异补丁包之间的对应关系,确定该软件的版本号所对应的差异补丁包,并查询差异补丁包与下载地址之间的对应关系,确定该软件的差异补丁包的下载地址,并将查询得到的差异补丁包的下载地址发送给该客户端,使得客户端在得到所需要下载的差异补丁包的下载地址之后,可以利用该下载地址从CDN下载源服务器下载对应的差异补丁包,实现差异补丁包的下载。
在本发明实施例中,文件差异比对服务器在接收到入口服务器上传的软件的最新版本的二进制文件后获取该软件的历史版本的二进制文件,并利用预置的二进制差异算法,分别生成该最新版本的二进制文件与每一个历史版本的二进制文件之间的差异补丁包,并将每一个历史版本的版本号与其差异补丁包的编号之间的对应关系保存至升级配置数据库中,将差异补丁包发送给入口服务器,通过入口服务器上传至下载服务器,由于该差异补丁包是利用二进制差异算法生成的,其大小远远小于基于文件粒度对比得到的差异补丁包,因此能够有效的减少用户端下载该差异补丁包所消耗的流量和时间,同时,能够有效的缓解服务器的带宽压力。
为了更好的理解本发明实施例中的技术方案,请参阅图3,为本发明实施例中一种差异补丁包生成方法的实施例,包括:
301、若文件差异比对服务器接收到入口服务器上传的软件的最新版本的二进制文件,查询历史版本数据库,从历史版本数据库中读取软件的历史版本的二进制文件;
在本发明实施例中,管理员可将软件的最新版本的二进制文件上传至入口服务器,且该入口服务器将得到的软件的最新版本的二进制文件上传至文件差异比对服务器,且文件差异比对服务器接收到该最新版本的二进制文件之后,将查询历史版本数据库,从历史版本数据库中读取该软件所有的历史版本的二进制文件。
在本发明实施例中,历史版本数据库中保存了所有已发布的软件的历史版本的二进制文件,使得文件差异比对服务器可从历史版本数据库中获取有最新版本的软件的历史版本的二进制文件。
302、利用预置的二进制差异算法比较最新版本的二进制文件与每一个历史版本的二进制文件,生成每一个历史版本的二进制文件的差异补丁包;
步骤302描述的内容与图2所示实施例中的步骤202描述的内容相似,此处不再赘述。
此外,在本发明实施例中,文件差异比对服务器利用预置的二进制差异算法比较最新版本的二进制文件与每一个历史版本的二进制文件,生成每一个历史版本的二进制文件的差异补丁包具体是指每一个历史版本的二进制文件都生成一个对应的差异补丁包,即对每一个历史版本的二进制文件都将执行以下步骤:利用预置的二进制差异算法比较最新版本的二进制文件与历史版本的二进制文件,得到比较结果;利用比较结果生成历史版本二进制文件的差异补丁包,其中,比较结果中包含了最新版本的二进制文件中与历史版本的二进制文件差异部分,及该差异部分在最新版本二进制文件中的位置。
303、将历史版本的版本号与差异补丁包的编号之间的对应关系保存至升级配置数据库中,将生成的差异补丁包发送给入口服务器,使得入口服务器将差异补丁包上传至CDN下载源服务器。
步骤303中描述的内容与图2所示实施例中步骤203描述的内容相似,此处不再赘述。
304、将软件的最新版本的版本号、软件的历史版本的版本号及每一个历史版本的二进制文件对应的差异补丁包的校验信息保存至升级配置数据库中。
在本发明实施例中,文件差异比对服务器还将该软件的最新版本的版本号,软件的历史版本的版本号及每一个历史版本的二进制文件对应的差异补丁包的校验信息保存至升级配置数据库中。此外,还可将最新版本的二进制文件及历史版本的二进制文件的大小,文件名称,升级描述信息等保存到升级配置数据库中。
需要说明的是,在本发明实施例中步骤303和步骤304之间并不限定执行的先后顺序,且还可以同时进行。
在本发明实施例中,通过使用二进制差异算法生成历史版本的二进制文件的差异补丁包,可使得生成的差异补丁包的大小远远小于基于文件粒度对比得到的差异补丁包,因此能够有效的减少用户端下载该差异补丁包所消耗的流量和时间,同时,能够有效的缓解服务器的带宽压力。
为了更好的理解本发明实施例中的技术方案,下面将具体介绍本发明实施例中的一种差异补丁包下载方法的实施例,请参阅图4,包括:
401、客户端向升级逻辑服务器发送差异补丁包查询消息,使得升级逻辑服务器从升级配置数据库中查询客户端待升级的软件的版本号对应的差异补丁包,并将差异补丁包的下载地址发送给客户端;
在本发明实施例中,客户端启动升级之后,将向升级逻辑服务器查询新版本信息,即向升级逻辑服务器发送差异补丁包查询消息,该差异补丁包查询消息中包含该客户端已安装软件的版本号,升级逻辑服务器接收到该差异补丁包查询消息之后,可利用该消息中包含的待升级软件的版本号查找升级配置数据库,确定该软件是否存在更高版本号,若有,则查询升级配置数据库中保存的版本号与差异补丁包的编号之间的对应关系,确定客户端需要下载的差异补丁包,并通过查询差异补丁包与下载地址之间的对应关系确定客户端需要下载的差异补丁包的下载地址,将查找到的该软件的版本号对应的差异补丁包的下载地址发送给客户端。
402、客户端接收差异补丁包的下载地址;
在本发明实施例中,客户端可接收到升级逻辑服务器发送的差异补丁包的下载地址。
403、利用差异补丁包的下载地址从CDN下载源服务器下载差异补丁包,差异补丁包是基于二进制差异算法生成的。
在本发明实施例中,升级配置数据库还可利用得到的差异补丁包的下载地址从CDN下载源服务器下载差异补丁包,且该差异补丁包是基于二进制差异算法生成的。
在本发明实施例中,客户端除了从CDN下载源服务器下载差异补丁包之外,还可从对等网络(英文全称为:Peer To Peer,缩写为:P2P)下载该差异补丁包,具体为:客户端向trackerconn服务器发送查询消息,该查询消息中包含客户端需要下载的差异补丁包的编号,tracker服务器接收到该查询消息之后,可利用该差异补丁包的编号查询已保存的客户端的IP地址与客户端正在下载或者已下载的差异补丁包的编号之间的对应关系,确定正在下载或者已经下载该差异补丁包的对等客户端的IP地址,并将该对等客户端的IP地址发送给客户端,客户端接收到trackerconn服务器反馈的对等客户端的IP地址之后,将利用对等客户端的IP地址与对等客户端建立连接,从对等客户端下载差异补丁包。通过利用P2P下载差异补丁包,能够有效的缓解服务器下载的数据量,降低服务器的带宽压力,且能够在无法从CDN下载源服务器下载差异补丁包的情况下,利用P2P方式从对等客户端进行下载,能够有效的保证差异补丁包的下载。
在本发明实施例中,客户端在从CDN下载源服务器下载差异补丁包时,还可向trackerconn服务器注册,使得CDN下载源服务器可保存该客户端的IP地址与该差异补丁包的编号之间的对应关系,以表明该客户端已经下载或者正在下载该差异补丁包。
需要说明的是,为了避免差异补丁包的下载占用过多网络资源,升级配置数据库在向客户端发送差异补丁包的下载地址时,还可向客户端发送其下载差异补丁包时的最大速度,使得客户端从CDN下载源服务器下载差异补丁包的下载速度小于或者等于该最大速度,以避免客户端下载速度过大,影响用户的使用。
在本发明实施例中,还可以包括步骤404和步骤405,分别为:
404、客户端利用差异补丁包及客户端待升级的软件的二进制文件生成软件的最新版本的二进制文件;
405、利用最新版本的二进制文件实现软件的升级。
在本发明实施例中,客户端在下载得到差异补丁包之后,可利用差异补丁包及客户端待升级的软件的二进制文件生成该软件的最新版本的二进制文件,例如:若下载得到的是客户端上的软件A的差异补丁包B,则可利用该差异补丁包B及客户端上软件A的二进制文件C生成软件A的最新版本的二进制文件。
在本发明实施例中,客户端得到软件的最新版本的二进制文件之后,可利用该最新版本的二进制文件实现软件的升级。
在本发明实施例中,客户端通常可使用与文件差异比对服务器相同的二进制差异算法得到新版本的二进制文件,其原理是通过拷贝和插入构成该新版本的二进制文件,具体的:通过子串分割匹配与哈希技术,从客户端已有版本的二进制文件中拷贝与新版本的二进制文件相同的数据,并按照指针位置进行放置,而对于差异补丁包中包含的新版本的二进制文件与客户端已有版本的二进制文件不同的数据则通过插入的方式进行放置,可构建成新版本的二进制文件。
需要说明的是,在本发明实施例中,客户端在执行步骤404之前,为了避免软件升级错误,还需要对下载得到的差异补丁包进行校验,若差异补丁包的校验正确,则继续执行步骤404,若差异补丁包的校验错误,则丢弃该差异补丁包,且还可继续进行差异补丁包的下载。
在本发明实施例中,客户端在执行步骤405之前,为了避免软件升级错误,可对得到的最新版本的二进制文件进行校验,若该最新版本的二进制文件校验正确,则继续执行步骤405,实现软件的升级,若该最新版本的二进制文件校验错误,则丢弃该最新版本的二进制文件,重新下载软件的差异补丁包。
在本发明实施例中,由于客户端下载得到的差异补丁包是基于二进制差异算法生成的,使得生成的差异补丁包的大小远远小于基于文件粒度生成的差异补丁包,因此,能够有效的减少客户端下载差异补丁包所消耗的时间和流量,且还可通过配置客户端从CDN下载源服务器下载差异补丁包的下载速度,使得可通过下载速度避免过快的下载速度影响用户的使用,例如:游戏、在线电影等。此外,客户端还可使用P2P的下载方式,通过从对等客户端下载差异补丁包,能够有效的提升下载的成功率及降低服务器的带宽压力。
请参阅图5,为本发明实施例中服务器的结构的实施例,包括:
获取单元501,用于若接收到入口服务器上传的软件的最新版本的二进制文件,则获取软件的历史版本的二进制文件;
生成单元502,用于在获取单元501获取到历史版本的二进制文件之后,利用预置的二进制差异算法比较最新版本的二进制文件与每一个历史版本的二进制文件,生成每一个历史版本的二进制文件的差异补丁包;
处理单元503,用于在生成单元502生成每一个历史版本的二进制文件的差异补丁包之后,将历史版本的版本号与差异补丁包的编号之间的对应关系保存至升级配置数据库中,将生成的差异补丁包发送给入口服务器,使得入口服务器将差异补丁包上传至CDN下载源服务器。
在本发明实施例中,服务器若接收到入口服务器上传的软件的最新版本的二进制文件,获取单元501获取该软件的历史版本的二进制文件;接着生成单元502利用预置的二进制差异算法比较最新版本的二进制文件与每一个历史版本的二进制文件,生成每一个历史版本的二进制文件的差异补丁包;最后由处理单元503将历史版本的版本号与差异补丁包的编号之间的对应关系保存至升级配置数据库中,将生成的差异补丁包发送给入口服务器,使得入口服务器将差异补丁包上传至CDN下载源服务器。
在本发明实施例中的服务器可以是文件差异比对服务器。
在本发明实施例中,服务器在接收到入口服务器上传的软件的最新版本的二进制文件后获取该软件的历史版本的二进制文件,并利用预置的二进制差异算法,分别生成该最新版本的二进制文件与每一个历史版本的二进制文件之间的差异补丁包,并将每一个历史版本的版本号与其差异补丁包的编号之间的对应关系保存至升级配置数据库中,将差异补丁包发送给入口服务器,通过入口服务器上传至下载服务器,由于该差异补丁包是利用二进制差异算法生成的,其大小远远小于基于文件粒度对比得到的差异补丁包,因此能够有效的减少用户端下载该差异补丁包所消耗的流量和时间,同时,能够有效的缓解服务器的带宽压力。
为了更好的理解本发明实施例中的服务器,请参阅图6,为本发明实施例中文件差异比对服务器的结构,包括:
如图5所示实施例中的获取单元501、生成单元502及处理单元503,且与图5所示实施例中描述的内容相似,此处不再赘述。
在本发明实施例中,生成单元502包括比较单元601及补丁包生成单元602,用于生成每一个历史版本的二进制文件的差异补丁包;
其中,比较单元601用于利用预置的二进制差异算法比较最新版本的二进制文件与历史版本的二进制文件,得到比较结果;
补丁包生成单元602用于在比较单元601得到比较结果之后,利用比较结果生成历史版本二进制文件的差异补丁包。
在本发明实施例中,获取单元501具体用于若接收到入口服务器上传的软件的最新版本的二进制文件,查询历史版本数据库,从历史版本数据库中读取软件的历史版本的二进制文件。
在本发明实施例中,处理单元503还用于将软件的最新版本的版本号、软件的历史版本的版本号及每一个历史版本的二进制文件对应的差异补丁包的校验信息保存至升级配置数据库中。
在本发明实施例中,服务器还包括:
接收保存单元603,用于在所述处理单元503将所述差异补丁包发送给所述入口服务器之后,接收所述入口服务器上传的所述差异补丁包与下载地址之间的对应关系,将所述差异补丁包与下载地址之间的对应关系保存在所述升级配置数据库中。
在本发明实施例中,文件差异比对服务器若接收到入口服务器上传的软件的最新版本的二进制文件,获取单元501获取该软件的历史版本的二进制文件;接着生成单元502中的比较单元601利用预置的二进制差异算法比较最新版本的二进制文件与历史版本的二进制文件,得到比较结果,并由补丁包生成单元602利用比较结果生成历史版本二进制文件的差异补丁包;且还可由处理单元503将历史版本的版本号与差异补丁包的编号之间的对应关系保存至升级配置数据库中,将生成的差异补丁包发送给入口服务器,使得入口服务器将差异补丁包上传至CDN下载源服务器,且处理单元503还将软件的最新版本的版本号、软件的历史版本的版本号及每一个历史版本的二进制文件对应的差异补丁包的校验信息保存至升级配置数据库中,在处理单元503将差异补丁包发送给所述入口服务器之后,接收保存单元603接收入口服务器上传的所述差异补丁包与下载地址之间的对应关系,将所述差异补丁包与下载地址之间的对应关系保存在所述升级配置数据库中。
在本发明实施例中,通过使用二进制差异算法生成历史版本的二进制文件的差异补丁包,可使得生成的差异补丁包的大小远远小于基于文件粒度对比得到的差异补丁包,因此能够有效的减少用户端下载该差异补丁包所消耗的流量和时间,同时,能够有效的缓解服务器的带宽压力。
请参阅图7,为本发明实施例中的客户端的结构的实施例,包括:
发送单元701,用于向升级逻辑服务器发送差异补丁包查询消息,使得升级逻辑服务器从升级配置数据库中查询客户端待升级的软件的版本号对应的差异补丁包,并将差异补丁包的下载地址发送给客户端;
接收单元702,用于在发送单元701发送差异补丁包查询消息之后,接收差异补丁包的下载地址;
下载单元703,用于在接收单元702接收差异补丁包的下载地址之后,利用差异补丁包的下载地址从CDN下载源服务器下载差异补丁包,差异补丁包是基于二进制差异算法生成的。
优选的,在本发明实施例中,发送单元701还用于向tracker服务器发送查询消息,使得tracker服务器向客户端反馈已下载或者正在下载差异补丁包的对等客户端的IP地址;接收单元702还用于接收tracker服务器反馈的对等客户端的IP地址;下载单元703还用于利用对等客户端的IP地址与对等客户端建立连接,从对等客户端下载差异补丁包。
优选的,在本发明实施例中,客户端还包括:
还原单元704,用于利用差异补丁包及客户端待升级的软件的二进制文件生成软件的最新版本的二进制文件;
升级单元705,用于在还原单元704得到最新版本的二进制文件之后,利用最新版本的二进制文件实现软件的升级。
在本发明实施例中,客户端中的发送单元701向升级逻辑服务器发送差异补丁包查询消息,使得升级逻辑服务器从升级配置数据库中查询客户端待升级的软件的版本号对应的差异补丁包,并将差异补丁包的下载地址发送给客户端;并由接收单元702接收差异补丁包的下载地址;且下载单元703可利用差异补丁包的下载地址从CDN下载源服务器下载差异补丁包,差异补丁包是基于二进制差异算法生成的。此外,发送单元701还可向tracker服务器发送查询消息,使得tracker服务器向客户端反馈已下载或者正在下载差异补丁包的对等客户端的IP地址;接着由接收单元702接收tracker服务器反馈的对等客户端的IP地址;最后下载单元703利用对等客户端的IP地址与对等客户端建立连接,从对等客户端下载差异补丁包,在客户端下载得到差异补丁包之后,还原单元704将利用差异补丁包及客户端待升级的软件的二进制文件生成软件的最新版本的二进制文件;并由升级单元705利用最新版本的二进制文件实现软件的升级。
在本发明实施例中,由于客户端下载得到的差异补丁包是基于二进制差异算法生成的,使得生成的差异补丁包的大小远远小于基于文件粒度生成的差异补丁包,因此,能够有效的减少客户端下载差异补丁包所消耗的时间和流量,且还可通过配置客户端从CDN下载源服务器下载差异补丁包的下载速度,使得可通过下载速度避免过快的下载速度影响用户的使用,例如:游戏、在线电影等。此外,客户端还可使用P2P的下载方式,通过从对等客户端下载差异补丁包,能够有效的提升下载的成功率及降低服务器的带宽压力。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种差异补丁包的生成及下载方法、文件差异比对服务器及客户端进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种差异补丁包生成方法,其特征在于,包括:
若文件差异比对服务器接收到入口服务器上传的软件的最新版本的二进制文件,则获取所述软件的历史版本的二进制文件;
利用预置的二进制差异算法比较所述最新版本的二进制文件与每一个历史版本的二进制文件,生成每一个历史版本的二进制文件的差异补丁包;
将所述历史版本的版本号与差异补丁包的编号之间的对应关系保存至升级配置数据库中,将生成的差异补丁包发送给所述入口服务器,使得所述入口服务器将所述差异补丁包上传至内容分发网络CDN下载源服务器。
2.根据权利要求1所述的生成方法,其特征在于,所述利用预置的二进制差异算法比较所述最新版本的二进制文件与每一个历史版本的二进制文件,生成每一个历史版本的二进制文件的差异补丁包包括:
对每一个历史版本的二进制文件执行以下步骤:
利用预置的二进制差异算法比较所述最新版本的二进制文件与所述历史版本的二进制文件,得到比较结果;
利用所述比较结果生成所述历史版本二进制文件的差异补丁包。
3.根据权利要求1所述的生成方法,其特征在于,所述获取所述软件的历史版本的二进制文件包括:
查询历史版本数据库,从所述历史版本数据库中读取所述软件的历史版本的二进制文件。
4.根据权利要求3所述的生成方法,其特征在于,所述方法还包括:
将所述软件的最新版本的版本号、所述软件的历史版本的版本号及每一个历史版本的二进制文件对应的差异补丁包的校验信息保存至所述升级配置数据库中。
5.根据权利要求1至4任一项所述的生成方法,其特征在于,所述方法还包括:
所述文件差异比对服务器接收所述入口服务器上传的所述差异补丁包与下载地址之间的对应关系,将所述差异补丁包与下载地址之间的对应关系保存在所述升级配置数据库中。
6.一种差异补丁包下载方法,其特征在于,包括:
客户端向升级逻辑服务器发送差异补丁包查询消息,使得所述升级逻辑服务器从升级配置数据库中查询所述客户端待升级的软件的版本号对应的差异补丁包,并将所述差异补丁包的下载地址发送给所述客户端;
所述客户端接收所述差异补丁包的下载地址;
利用所述差异补丁包的下载地址从内容分发网络CDN下载源服务器下载所述差异补丁包,所述差异补丁包是基于二进制差异算法生成的。
7.根据权利要求6所述的下载方法,其特征在于,所述方法还包括:
所述客户端向tracker服务器发送查询消息,使得所述tracker服务器向所述客户端反馈已下载或者正在下载所述差异补丁包的对等客户端的IP地址;
所述客户端接收所述tracker服务器反馈的对等客户端的IP地址;
所述客户端利用所述对等客户端的IP地址与所述对等客户端建立连接,从所述对等客户端下载所述差异补丁包。
8.根据权利要求6或7所述的下载方法,其特征在于,所述方法还包括:
所述客户端利用所述差异补丁包及所述客户端待升级的软件的二进制文件生成所述软件的最新版本的二进制文件;
利用所述最新版本的二进制文件实现所述软件的升级。
9.一种服务器,其特征在于,包括:
获取单元,用于若接收到入口服务器上传的软件的最新版本的二进制文件,则获取所述软件的历史版本的二进制文件;
生成单元,用于在所述获取单元获取所述历史版本的二进制文件之后,利用预置的二进制差异算法比较所述最新版本的二进制文件与每一个历史版本的二进制文件,生成每一个历史版本的二进制文件的差异补丁包;
处理单元,用于在所述生成单元生成每一个历史版本的二进制文件的差异补丁包之后,将所述历史版本的版本号与差异补丁包的编号之间的对应关系保存至升级配置数据库中,将生成的差异补丁包发送给所述入口服务器,使得所述入口服务器将所述差异补丁包上传至CDN下载源服务器。
10.根据权利要求9所述的服务器,其特征在于,所述生成单元包括比较单元及补丁包生成单元,用于生成每一个历史版本的二进制文件的差异补丁包;
所述比较单元用于利用预置的二进制差异算法比较所述最新版本的二进制文件与所述历史版本的二进制文件,得到比较结果;
所述补丁包生成单元用于在所述比较单元得到比较结果之后,利用所述比较结果生成所述历史版本二进制文件的差异补丁包。
11.根据权利要求9所述的服务器,其特征在于,所述获取单元具体用于若接收到入口服务器上传的软件的最新版本的二进制文件,查询历史版本数据库,从所述历史版本数据库中读取所述软件的历史版本的二进制文件。
12.根据权利要求11所述的服务器,其特征在于,所述处理单元还用于将所述软件的最新版本的版本号、所述软件的历史版本的版本号及每一个历史版本的二进制文件对应的差异补丁包的校验信息保存至所述升级配置数据库中。
13.根据权利要求9至12任一项所述的服务器,其特征在于,所述服务器还包括:
接收保存单元,用于在所述处理单元将所述差异补丁包发送给所述入口服务器之后,接收所述入口服务器上传的所述差异补丁包与下载地址之间的对应关系,将所述差异补丁包与下载地址之间的对应关系保存在所述升级配置数据库中。
14.一种客户端,其特征在于,包括:
发送单元,用于向升级逻辑服务器发送差异补丁包查询消息,使得所述升级逻辑服务器从升级配置数据库中查询所述客户端待升级的软件的版本号对应的差异补丁包,并将所述差异补丁包的下载地址发送给所述客户端;
接收单元,用于在所述发送单元发送所述差异补丁包查询消息之后,接收所述差异补丁包的下载地址;
下载单元,用于在所述接收单元接收所述差异补丁包的下载地址之后,利用所述差异补丁包的下载地址从CDN下载源服务器下载所述差异补丁包,所述差异补丁包是基于二进制差异算法生成的。
15.根据权利要求13所述的下载方法,其特征在于,
所述发送单元还用于向tracker服务器发送查询消息,使得所述tracker服务器向所述客户端反馈已下载或者正在下载所述差异补丁包的对等客户端的IP地址;
所述接收单元还用于接收所述tracker服务器反馈的对等客户端的IP地址;
所述下载单元还用于利用所述对等客户端的IP地址与所述对等客户端建立连接,从所述对等客户端下载所述差异补丁包。
16.根据权利要求14或15所述的客户端,其特征在于,所述客户端还包括:
还原单元,用于利用所述差异补丁包及所述客户端待升级的软件的二进制文件生成所述软件的最新版本的二进制文件;
升级单元,用于在所述还原单元得到所述最新版本的二进制文件之后,利用所述最新版本的二进制文件实现所述软件的升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310046195.9A CN103973475B (zh) | 2013-02-05 | 2013-02-05 | 差异补丁包生成方法及下载方法、服务器、客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310046195.9A CN103973475B (zh) | 2013-02-05 | 2013-02-05 | 差异补丁包生成方法及下载方法、服务器、客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103973475A true CN103973475A (zh) | 2014-08-06 |
CN103973475B CN103973475B (zh) | 2018-07-06 |
Family
ID=51242543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310046195.9A Active CN103973475B (zh) | 2013-02-05 | 2013-02-05 | 差异补丁包生成方法及下载方法、服务器、客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103973475B (zh) |
Cited By (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105045631A (zh) * | 2015-07-30 | 2015-11-11 | 北京奇虎科技有限公司 | 一种升级客户端侧应用程序的方法和装置 |
CN105049514A (zh) * | 2015-07-30 | 2015-11-11 | 北京奇虎科技有限公司 | 一种文件下载方法和装置 |
CN105373410A (zh) * | 2015-12-22 | 2016-03-02 | 京信通信技术(广州)有限公司 | 基站软件差分升级方法及其装置 |
CN105511889A (zh) * | 2016-01-15 | 2016-04-20 | 珠海金山网络游戏科技有限公司 | 一种通用的游戏版本增量更新系统和方法 |
CN105653305A (zh) * | 2014-11-21 | 2016-06-08 | 中国南方航空工业(集团)有限公司 | 应用软件自动更新方法、服务器、客户端及其系统 |
CN105739971A (zh) * | 2016-01-20 | 2016-07-06 | 网易(杭州)网络有限公司 | 校验文件的生成、使用方法及装置 |
CN105868099A (zh) * | 2015-12-01 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | 分支提交差异检测方法及装置 |
CN106371849A (zh) * | 2016-09-18 | 2017-02-01 | 网易(杭州)网络有限公司 | 应用数据的处理方法及装置 |
CN106484893A (zh) * | 2016-10-20 | 2017-03-08 | 青岛海信电器股份有限公司 | 机型批量整改中的差异数据查找方法及装置 |
CN106502725A (zh) * | 2016-09-30 | 2017-03-15 | 歌尔科技有限公司 | 应用程序的升级方法、设备及电子设备 |
CN106502696A (zh) * | 2016-10-26 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种升级安装包的生成方法及相关装置 |
CN106547572A (zh) * | 2016-12-06 | 2017-03-29 | 恒生电子股份有限公司 | 一种程序文件对比方法及装置 |
CN106547651A (zh) * | 2016-10-27 | 2017-03-29 | 广州视源电子科技股份有限公司 | 一种软件版本还原的方法和装置 |
CN106547573A (zh) * | 2016-12-06 | 2017-03-29 | 恒生电子股份有限公司 | 一种程序文件对比方法及装置 |
CN106657361A (zh) * | 2016-12-30 | 2017-05-10 | 歌尔科技有限公司 | 一种代码添加混淆的安卓安装包ota升级方法 |
CN106909427A (zh) * | 2017-03-23 | 2017-06-30 | 北京奇虎科技有限公司 | 一种软件更新方法、装置和软件更新数据发布方法、系统 |
CN106921731A (zh) * | 2017-01-24 | 2017-07-04 | 北京奇虎科技有限公司 | 漏洞修复方法及装置 |
CN107015821A (zh) * | 2016-01-28 | 2017-08-04 | 腾讯科技(深圳)有限公司 | 增量更新的方法和装置 |
CN107185238A (zh) * | 2017-06-15 | 2017-09-22 | 苏州乐米信息科技股份有限公司 | 游戏资源更新方法及系统 |
CN107506219A (zh) * | 2017-09-21 | 2017-12-22 | 烽火通信科技股份有限公司 | 一种基于Android系统的通用版本升级方法 |
CN107704278A (zh) * | 2016-08-08 | 2018-02-16 | 北京京东尚科信息技术有限公司 | 应用升级方法和装置 |
CN107797819A (zh) * | 2017-06-12 | 2018-03-13 | 平安普惠企业管理有限公司 | 增量包生成方法、计算机可读存储介质及服务器 |
CN108287882A (zh) * | 2017-01-10 | 2018-07-17 | 迪斯尼企业公司 | 用于差异媒体分布的系统和方法 |
CN108614710A (zh) * | 2016-12-26 | 2018-10-02 | 上海广升信息技术股份有限公司 | 一种安卓系统应用程序的差分还原方法 |
CN109032641A (zh) * | 2018-07-24 | 2018-12-18 | 杭州安恒信息技术股份有限公司 | 应用版本更新方法及装置 |
CN109074248A (zh) * | 2016-04-04 | 2018-12-21 | 鲁门无线电通信公司 | 用于分配通信网络中的软件升级的方法 |
CN109683950A (zh) * | 2018-12-17 | 2019-04-26 | Oppo广东移动通信有限公司 | 应用程序打包方法、装置、存储介质及终端 |
CN109788052A (zh) * | 2019-01-02 | 2019-05-21 | 郑州云海信息技术有限公司 | 一种服务器配置远程查询方法、装置、终端及存储介质 |
CN110505289A (zh) * | 2019-08-07 | 2019-11-26 | Oppo广东移动通信有限公司 | 文件下载方法及装置、计算机可读介质、无线通信设备 |
CN110727456A (zh) * | 2019-10-12 | 2020-01-24 | 上海莉莉丝科技股份有限公司 | 应用程序补丁包的下载方法、装置、设备及系统 |
CN111026416A (zh) * | 2019-09-17 | 2020-04-17 | 拉扎斯网络科技(上海)有限公司 | 数据更新方法、系统、装置、电子设备及计算机存储介质 |
CN111176716A (zh) * | 2019-12-17 | 2020-05-19 | 视联动力信息技术股份有限公司 | 升级包生成方法、装置、电子设备及存储介质 |
CN111176706A (zh) * | 2019-12-17 | 2020-05-19 | 视联动力信息技术股份有限公司 | 终端升级方法、装置、电子设备及存储介质 |
CN111273939A (zh) * | 2020-01-20 | 2020-06-12 | Oppo(重庆)智能科技有限公司 | 信息处理方法、信息处理装置及终端设备 |
CN111314437A (zh) * | 2020-01-20 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 资源包的下载方法和装置、存储介质及电子装置 |
CN111488410A (zh) * | 2019-01-25 | 2020-08-04 | 阿里巴巴集团控股有限公司 | Nds数据的差分处理、更新方法和装置以及电子设备 |
CN111865676A (zh) * | 2020-07-10 | 2020-10-30 | 深圳市欢太科技有限公司 | 配置文件的更新检查方法、装置、服务器及存储介质 |
CN112235378A (zh) * | 2020-09-29 | 2021-01-15 | 北京三快在线科技有限公司 | 数据更新方法、装置、存储介质及电子设备 |
CN112245911A (zh) * | 2020-11-06 | 2021-01-22 | 网易(杭州)网络有限公司 | 一种发布游戏程序的方法、装置、存储介质及计算机设备 |
CN112559018A (zh) * | 2019-09-26 | 2021-03-26 | 中电万维信息技术有限责任公司 | 一种基于html5的app热更新方法 |
CN112579140A (zh) * | 2020-12-22 | 2021-03-30 | 四川虹微技术有限公司 | 一种软件升级方法及装置 |
CN112732315A (zh) * | 2020-12-30 | 2021-04-30 | 潍柴动力股份有限公司 | 一种软件差分升级方法及装置 |
CN113678102A (zh) * | 2019-10-31 | 2021-11-19 | 谷歌有限责任公司 | 用于更新计算设备上的应用的存储器高效软件打补丁 |
CN114547085A (zh) * | 2022-03-22 | 2022-05-27 | 中国铁塔股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN116010997A (zh) * | 2023-03-20 | 2023-04-25 | 中国信息通信研究院 | 基于区块链的连续性校验的数据资源托管方法和装置 |
CN116166322A (zh) * | 2023-04-24 | 2023-05-26 | 麒麟软件有限公司 | 一种移植Linux内核的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593118A (zh) * | 2009-02-24 | 2009-12-02 | 浪潮集团山东通用软件有限公司 | 一种灵活的软件升级的方法 |
CN101719074A (zh) * | 2009-12-17 | 2010-06-02 | 金蝶软件(中国)有限公司 | 补丁实现方法及装置 |
CN101963914A (zh) * | 2010-11-12 | 2011-02-02 | 南京大学 | 一种基于字节码文件重构的Java类在线更新方法 |
CN102193803A (zh) * | 2010-03-03 | 2011-09-21 | 上海三旗通信科技有限公司 | 一种手机软件快速更新下载的方法 |
-
2013
- 2013-02-05 CN CN201310046195.9A patent/CN103973475B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593118A (zh) * | 2009-02-24 | 2009-12-02 | 浪潮集团山东通用软件有限公司 | 一种灵活的软件升级的方法 |
CN101719074A (zh) * | 2009-12-17 | 2010-06-02 | 金蝶软件(中国)有限公司 | 补丁实现方法及装置 |
CN102193803A (zh) * | 2010-03-03 | 2011-09-21 | 上海三旗通信科技有限公司 | 一种手机软件快速更新下载的方法 |
CN101963914A (zh) * | 2010-11-12 | 2011-02-02 | 南京大学 | 一种基于字节码文件重构的Java类在线更新方法 |
Cited By (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653305A (zh) * | 2014-11-21 | 2016-06-08 | 中国南方航空工业(集团)有限公司 | 应用软件自动更新方法、服务器、客户端及其系统 |
CN105049514A (zh) * | 2015-07-30 | 2015-11-11 | 北京奇虎科技有限公司 | 一种文件下载方法和装置 |
CN105045631A (zh) * | 2015-07-30 | 2015-11-11 | 北京奇虎科技有限公司 | 一种升级客户端侧应用程序的方法和装置 |
WO2017016479A1 (zh) * | 2015-07-30 | 2017-02-02 | 北京奇虎科技有限公司 | 一种文件下载方法和装置 |
CN105049514B (zh) * | 2015-07-30 | 2019-05-31 | 北京奇虎科技有限公司 | 一种文件下载方法和装置 |
CN105868099A (zh) * | 2015-12-01 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | 分支提交差异检测方法及装置 |
CN105373410B (zh) * | 2015-12-22 | 2019-04-30 | 京信通信系统(中国)有限公司 | 基站软件差分升级方法及其装置 |
CN105373410A (zh) * | 2015-12-22 | 2016-03-02 | 京信通信技术(广州)有限公司 | 基站软件差分升级方法及其装置 |
CN105511889A (zh) * | 2016-01-15 | 2016-04-20 | 珠海金山网络游戏科技有限公司 | 一种通用的游戏版本增量更新系统和方法 |
CN105511889B (zh) * | 2016-01-15 | 2020-01-07 | 珠海金山网络游戏科技有限公司 | 一种通用的游戏版本增量更新系统和方法 |
CN105739971A (zh) * | 2016-01-20 | 2016-07-06 | 网易(杭州)网络有限公司 | 校验文件的生成、使用方法及装置 |
CN105739971B (zh) * | 2016-01-20 | 2019-03-08 | 网易(杭州)网络有限公司 | 校验文件的生成、使用方法及装置 |
CN107015821A (zh) * | 2016-01-28 | 2017-08-04 | 腾讯科技(深圳)有限公司 | 增量更新的方法和装置 |
CN109074248A (zh) * | 2016-04-04 | 2018-12-21 | 鲁门无线电通信公司 | 用于分配通信网络中的软件升级的方法 |
CN107704278A (zh) * | 2016-08-08 | 2018-02-16 | 北京京东尚科信息技术有限公司 | 应用升级方法和装置 |
CN106371849A (zh) * | 2016-09-18 | 2017-02-01 | 网易(杭州)网络有限公司 | 应用数据的处理方法及装置 |
CN106502725B (zh) * | 2016-09-30 | 2019-08-20 | 歌尔科技有限公司 | 应用程序的升级方法、设备及电子设备 |
CN106502725A (zh) * | 2016-09-30 | 2017-03-15 | 歌尔科技有限公司 | 应用程序的升级方法、设备及电子设备 |
CN106484893A (zh) * | 2016-10-20 | 2017-03-08 | 青岛海信电器股份有限公司 | 机型批量整改中的差异数据查找方法及装置 |
CN106484893B (zh) * | 2016-10-20 | 2019-08-09 | 青岛海信电器股份有限公司 | 机型批量整改中的差异数据查找方法及装置 |
CN106502696B (zh) * | 2016-10-26 | 2019-09-17 | 腾讯科技(深圳)有限公司 | 一种升级安装包的生成方法及相关装置 |
CN106502696A (zh) * | 2016-10-26 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种升级安装包的生成方法及相关装置 |
CN106547651A (zh) * | 2016-10-27 | 2017-03-29 | 广州视源电子科技股份有限公司 | 一种软件版本还原的方法和装置 |
CN106547572A (zh) * | 2016-12-06 | 2017-03-29 | 恒生电子股份有限公司 | 一种程序文件对比方法及装置 |
CN106547573B (zh) * | 2016-12-06 | 2020-01-31 | 恒生电子股份有限公司 | 一种程序文件对比方法及装置 |
CN106547573A (zh) * | 2016-12-06 | 2017-03-29 | 恒生电子股份有限公司 | 一种程序文件对比方法及装置 |
CN108614710A (zh) * | 2016-12-26 | 2018-10-02 | 上海广升信息技术股份有限公司 | 一种安卓系统应用程序的差分还原方法 |
CN106657361B (zh) * | 2016-12-30 | 2019-09-13 | 歌尔科技有限公司 | 一种代码添加混淆的安卓安装包ota升级方法 |
CN106657361A (zh) * | 2016-12-30 | 2017-05-10 | 歌尔科技有限公司 | 一种代码添加混淆的安卓安装包ota升级方法 |
CN108287882A (zh) * | 2017-01-10 | 2018-07-17 | 迪斯尼企业公司 | 用于差异媒体分布的系统和方法 |
CN106921731A (zh) * | 2017-01-24 | 2017-07-04 | 北京奇虎科技有限公司 | 漏洞修复方法及装置 |
CN106921731B (zh) * | 2017-01-24 | 2021-06-22 | 北京奇虎科技有限公司 | 漏洞修复方法及装置 |
CN106909427A (zh) * | 2017-03-23 | 2017-06-30 | 北京奇虎科技有限公司 | 一种软件更新方法、装置和软件更新数据发布方法、系统 |
CN107797819A (zh) * | 2017-06-12 | 2018-03-13 | 平安普惠企业管理有限公司 | 增量包生成方法、计算机可读存储介质及服务器 |
CN107185238A (zh) * | 2017-06-15 | 2017-09-22 | 苏州乐米信息科技股份有限公司 | 游戏资源更新方法及系统 |
CN107506219A (zh) * | 2017-09-21 | 2017-12-22 | 烽火通信科技股份有限公司 | 一种基于Android系统的通用版本升级方法 |
CN109032641A (zh) * | 2018-07-24 | 2018-12-18 | 杭州安恒信息技术股份有限公司 | 应用版本更新方法及装置 |
CN109032641B (zh) * | 2018-07-24 | 2022-07-08 | 杭州安恒信息技术股份有限公司 | 应用版本更新方法及装置 |
CN109683950A (zh) * | 2018-12-17 | 2019-04-26 | Oppo广东移动通信有限公司 | 应用程序打包方法、装置、存储介质及终端 |
CN109788052A (zh) * | 2019-01-02 | 2019-05-21 | 郑州云海信息技术有限公司 | 一种服务器配置远程查询方法、装置、终端及存储介质 |
CN109788052B (zh) * | 2019-01-02 | 2021-11-26 | 郑州云海信息技术有限公司 | 一种服务器配置远程查询方法、装置、终端及存储介质 |
CN111488410A (zh) * | 2019-01-25 | 2020-08-04 | 阿里巴巴集团控股有限公司 | Nds数据的差分处理、更新方法和装置以及电子设备 |
CN111488410B (zh) * | 2019-01-25 | 2023-05-09 | 阿里巴巴集团控股有限公司 | Nds数据的差分处理、更新方法和装置以及电子设备 |
CN110505289B (zh) * | 2019-08-07 | 2022-04-26 | Oppo广东移动通信有限公司 | 文件下载方法及装置、计算机可读介质、无线通信设备 |
CN110505289A (zh) * | 2019-08-07 | 2019-11-26 | Oppo广东移动通信有限公司 | 文件下载方法及装置、计算机可读介质、无线通信设备 |
CN111026416A (zh) * | 2019-09-17 | 2020-04-17 | 拉扎斯网络科技(上海)有限公司 | 数据更新方法、系统、装置、电子设备及计算机存储介质 |
CN112559018A (zh) * | 2019-09-26 | 2021-03-26 | 中电万维信息技术有限责任公司 | 一种基于html5的app热更新方法 |
CN110727456A (zh) * | 2019-10-12 | 2020-01-24 | 上海莉莉丝科技股份有限公司 | 应用程序补丁包的下载方法、装置、设备及系统 |
CN113678102A (zh) * | 2019-10-31 | 2021-11-19 | 谷歌有限责任公司 | 用于更新计算设备上的应用的存储器高效软件打补丁 |
CN111176716A (zh) * | 2019-12-17 | 2020-05-19 | 视联动力信息技术股份有限公司 | 升级包生成方法、装置、电子设备及存储介质 |
CN111176706A (zh) * | 2019-12-17 | 2020-05-19 | 视联动力信息技术股份有限公司 | 终端升级方法、装置、电子设备及存储介质 |
CN111273939B (zh) * | 2020-01-20 | 2023-11-10 | Oppo(重庆)智能科技有限公司 | 信息处理方法、信息处理装置及终端设备 |
CN111314437A (zh) * | 2020-01-20 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 资源包的下载方法和装置、存储介质及电子装置 |
CN111273939A (zh) * | 2020-01-20 | 2020-06-12 | Oppo(重庆)智能科技有限公司 | 信息处理方法、信息处理装置及终端设备 |
CN111865676A (zh) * | 2020-07-10 | 2020-10-30 | 深圳市欢太科技有限公司 | 配置文件的更新检查方法、装置、服务器及存储介质 |
CN111865676B (zh) * | 2020-07-10 | 2023-05-23 | 深圳市欢太科技有限公司 | 配置文件的更新检查方法、装置、服务器及存储介质 |
CN112235378B (zh) * | 2020-09-29 | 2022-12-16 | 北京三快在线科技有限公司 | 数据更新方法、装置、存储介质及电子设备 |
CN112235378A (zh) * | 2020-09-29 | 2021-01-15 | 北京三快在线科技有限公司 | 数据更新方法、装置、存储介质及电子设备 |
CN112245911A (zh) * | 2020-11-06 | 2021-01-22 | 网易(杭州)网络有限公司 | 一种发布游戏程序的方法、装置、存储介质及计算机设备 |
CN112245911B (zh) * | 2020-11-06 | 2024-03-12 | 网易(杭州)网络有限公司 | 一种发布游戏程序的方法、装置、存储介质及计算机设备 |
CN112579140A (zh) * | 2020-12-22 | 2021-03-30 | 四川虹微技术有限公司 | 一种软件升级方法及装置 |
CN112732315A (zh) * | 2020-12-30 | 2021-04-30 | 潍柴动力股份有限公司 | 一种软件差分升级方法及装置 |
CN114547085A (zh) * | 2022-03-22 | 2022-05-27 | 中国铁塔股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN116010997A (zh) * | 2023-03-20 | 2023-04-25 | 中国信息通信研究院 | 基于区块链的连续性校验的数据资源托管方法和装置 |
CN116166322A (zh) * | 2023-04-24 | 2023-05-26 | 麒麟软件有限公司 | 一种移植Linux内核的方法 |
CN116166322B (zh) * | 2023-04-24 | 2023-07-04 | 麒麟软件有限公司 | 一种移植Linux内核的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103973475B (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103973475A (zh) | 差异补丁包生成方法及下载方法、服务器、客户端 | |
US20170109369A1 (en) | Publish-subscribe platform for cloud file distribution | |
US9075693B2 (en) | Methods for updating applications | |
CN1988535B (zh) | 文件存储同步方法、系统及客户端 | |
US8316364B2 (en) | Peer-to-peer software update distribution network | |
CN102129378B (zh) | 一种软件菜单更新方法和装置 | |
CN102081536A (zh) | 一种增量升级方法及服务器 | |
US11226944B2 (en) | Cache management | |
US20060155674A1 (en) | Image server | |
CN103713928A (zh) | 增量文件生成方法、应用程序安装文件更新方法及装置 | |
US20090313322A1 (en) | Application Streaming Over HTTP | |
US11977637B2 (en) | Technique for authentication and prerequisite checks for software updates | |
CN103428188A (zh) | 一种文件更新方法、装置及相关设备 | |
US20140359066A1 (en) | System, method and device for offline downloading resource and computer storage medium | |
US20120179778A1 (en) | Applying networking protocols to image file management | |
CN102223411A (zh) | 采用p2p技术下载文件的方法和系统、客户端 | |
CN103731472A (zh) | 采用p2p技术下载文件的方法和系统、客户端 | |
CN105450682A (zh) | 一种用于数据同步保存、向客户端同步数据的方法、装置和系统 | |
CN103987064A (zh) | 接入点ap升级方法及装置 | |
CN105327508A (zh) | 网络游戏运行系统及方法 | |
US20170163767A1 (en) | Broadcast-based update management | |
CN111176706A (zh) | 终端升级方法、装置、电子设备及存储介质 | |
CN110895583B (zh) | 数据资源获取的方法、装置和系统 | |
CN105162747A (zh) | 用于压缩设备与解压缩设备探索及握手的系统和方法 | |
CN114731297A (zh) | 用于计算设备对等方匹配的消息限制的自组织网络组 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |