CN106909427A - 一种软件更新方法、装置和软件更新数据发布方法、系统 - Google Patents

一种软件更新方法、装置和软件更新数据发布方法、系统 Download PDF

Info

Publication number
CN106909427A
CN106909427A CN201710179392.6A CN201710179392A CN106909427A CN 106909427 A CN106909427 A CN 106909427A CN 201710179392 A CN201710179392 A CN 201710179392A CN 106909427 A CN106909427 A CN 106909427A
Authority
CN
China
Prior art keywords
file
residual quantity
bag
patch
quick experience
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
CN201710179392.6A
Other languages
English (en)
Other versions
CN106909427B (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
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 filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201710179392.6A priority Critical patent/CN106909427B/zh
Publication of CN106909427A publication Critical patent/CN106909427A/zh
Application granted granted Critical
Publication of CN106909427B publication Critical patent/CN106909427B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种软件更新方法、装置和软件更新数据发布方法、系统。当满足预设条件时,获取指定软件的扫描库,并根据该扫描库对本地安装的指定软件进行扫描,确定对该指定软件进行更新所需要安装的补丁,以及从扫描库获取所需要安装的补丁的快速体验包的关键信息;根据关键信息下载相应的快速体验包,根据快速体验包确定对该指定软件进行更新所需要的差量文件的关键信息;根据差量文件的关键信息下载相应的差量文件,通过合并该指定软件的本地文件和差量文件得到完整的安装包。可见,本技术方案排除累计更新包中对该指定软件更新无用的文件;且这种差量文件的体积比累计更新文件的体积小,下载时可节省下载流量,对带宽资源的要求不高。

Description

一种软件更新方法、装置和软件更新数据发布方法、系统
技术领域
本发明涉及计算机技术领域,具体涉及一种软件更新方法、装置和软件更新数据发布方法、系统。
背景技术
现有的软件或者系统发布后,会对程序上的各种漏洞或缺陷进行软件或系统的更新,通常情况下每进行一次更新就发布一个相应的安装包,以便用户进行下载安装。这样会导致软件或系统更新的碎片化较为严重。为了解决软件或系统更新碎片化严重的问题,微软引入了一种累计更新包的发布机制,即不再使用过去的分散独立安装包的形式,而是改用每月一个大累计更新包的形式。特别是,在2016年8月份,微软已经在其官方博客中表示,这种累计更新的方式除了运用在windows10系统中,还将逐步应用到目前支持更新的所有系统(win7sp1、win8.1等),同时会逐步取消分散独立安装包的更新发布形式。
若完全采用了微软提出的新的更新发布机制,在目前更新的实现方案下,会存在如下问题:(1)累计更新包的体积较大(例如,win10x64累计更新已超过1G),若要对国内海量用户集中发布,对带宽资源将是一个严峻的挑战,发布难度加大;(2)对具体的某台用户电脑来说,累计更新包中存在很多无用信息,这会造成不必要的流量浪费。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种软件更新方法和相应的装置,以及一种软件更新数据发布方法和相应的系统。
依据本发明的一个方面,提供了一种软件更新方法,其中,该方法包括:
当满足预设条件时,获取指定软件的扫描库,并根据该扫描库对本地安装的指定软件进行扫描,确定对该指定软件进行更新所需要安装的补丁,以及从扫描库获取所需要安装的补丁的快速体验包的关键信息;
根据快速体验包的关键信息下载相应的快速体验包,根据所下载的快速体验包确定对该指定软件进行更新所需要的差量文件的关键信息;
根据所述差量文件的关键信息下载相应的差量文件,通过合并该指定软件的本地文件和所述差量文件得到完整的安装包,并进行安装。
可选地,所述获取指定软件的扫描库包括:
从指定路径下载该指定软件的最新版本的全量扫描库;
或者,从指定路径下载该指定软件的增量扫描库,并与本地的该指定软件的扫描库的进行合并。
可选地,所述根据快速体验包的关键信息下载相应的快速体验包包括:
根据快速体验包的关键信息从键值服务器集群系统请求快速体验包索引信息;
根据请求到的快速体验包索引信息从内容分发网络CDN下载相应的快速体验包。
可选地,所述快速体验包索引信息包括:快速体验包下载URL和快速体验包校验信息;
所述根据请求到的快速体验包索引信息从内容分发网络CDN下载相应的快速体验包包括:根据快速体验包下载URL从CDN下载相应的快速体验包,并利用快速体验包校验信息对所下载的快速体验包进行校验。
可选地,所述根据所述差量文件的关键信息下载相应的差量文件包括:
根据差量文件的关键信息从键值服务器集群系统请求差量文件索引信息;
根据请求到的差量文件索引信息从CDN下载相应的差量文件。
可选地,所述差量文件索引信息包括:差量文件下载URL和差量文件校验信息;
所述根据请求到的差量文件索引信息从CDN下载相应的差量文件包括:根据差量文件下载URL从CDN下载相应的差量文件,并利用差量文件校验信息对所下载的差量文件进行校验。
可选地,该方法进一步包括:
当下载不到相应的差量文件时,下载补丁全量包,并安装。
根据本发明的另一方面,提供了一种软件更新数据发布方法,其中,该方法包括:
从指定软件的服务器获取该指定软件的更新数据;所述更新数据包括:扫描库、补丁的快速体验包、补丁的全量包和差量集合文件;
将补丁的快速体验包、补丁的全量包和差量集合文件发布到分布式网络中供终端设备下载;
将所述扫描库通过指定通道进行发布,所述扫描库中包含补丁的快速体验包的关键信息,从而使得终端设备获取扫描库并根据扫描库确定对其本地安装的指定软件进行更新所需要安装的补丁。
可选地,所述将补丁的快速体验包、补丁的全量包和差量集合文件发布到分布式网络中供终端设备进行下载包括:
将补丁的快速体验包、补丁的全量包和差量集合文件发布到内容分发网络CDN的各个节点上;
计算补丁的快速体验包的索引信息,以及计算差量集合文件中的各差量文件的索引信息;
将快速体验包的关键信息和索引信息对应保存到键值服务器集群系统中,以及将各差量文件的关键信息和索引信息对应保存到键值服务器集群系统中;
其中,
补丁的快速体验包的索引信息包括:快速体验包下载URL和快速体验包校验信息;
差量文件的索引信息包括:差量文件下载URL和差量文件校验信息。
可选地,该方法进一步包括:
键值服务器集群系统在接收到终端设备发送的包含快速体验包的关键信息的请求时,向该终端设备返回相应的快速体验包索引信息,以及在接收到终端设备发送的包含差量文件的关键信息的请求时,向该终端设备返回相应的差量文件的索引信息。
可选地,该方法进一步包括:
CDN在接收到终端设备发送的包含快速体验包下载URL的请求时,向终端设备返回相应的快速体验包,以及在接收到终端设备发送的包含差量文件下载URL的请求时,从差量集合文件中截取相应的差量文件并返回给该终端设备。
可选地,该方法进一步包括:
CDN在接收到终端设备发送的补丁全量包下载请求时,将相应的补丁全量包返回给终端设备。
可选地,该方法进一步包括:
对扫描库和计算得到的各索引信息进行备份处理。
根据本发明的又一方面,提供了一种软件更新装置,其中,该装置包括:
扫描处理单元,适于当满足预设条件时,获取指定软件的扫描库,并根据该扫描库对本地安装的指定软件进行扫描,确定对该指定软件进行更新所需要安装的补丁,以及从扫描库获取所需要安装的补丁的快速体验包的关键信息;
更新处理单元,适于根据快速体验包的关键信息下载相应的快速体验包,根据所下载的快速体验包确定对该指定软件进行更新所需要的差量文件的关键信息;以及适于根据所述差量文件的关键信息下载相应的差量文件,通过合并该指定软件的本地文件和所述差量文件得到完整的安装包,并进行安装。
可选地,所述扫描处理单元,适于从指定路径下载该指定软件的最新版本的全量扫描库;或者,从指定路径下载该指定软件的增量扫描库,并与本地的该指定软件的扫描库的进行合并。
可选地,所述更新处理单元,适于根据快速体验包的关键信息从键值服务器集群系统请求快速体验包索引信息;以及适于根据请求到的快速体验包索引信息从内容分发网络CDN下载相应的快速体验包。
可选地,所述快速体验包索引信息包括:快速体验包下载URL和快速体验包校验信息;
所述更新处理单元,适于根据快速体验包下载URL从CDN下载相应的快速体验包,并利用快速体验包校验信息对所下载的快速体验包进行校验。
可选地,所述更新处理单元,适于根据差量文件的关键信息从键值服务器集群系统请求差量文件索引信息;以及适于根据请求到的差量文件索引信息从CDN下载相应的差量文件。
可选地,所述差量文件索引信息包括:差量文件下载URL和差量文件校验信息;
所述更新处理单元,适于根据差量文件下载URL从CDN下载相应的差量文件,并利用差量文件校验信息对所下载的差量文件进行校验。
可选地,所述更新处理单元,进一步适于当下载不到相应的差量文件时,下载补丁全量包,并安装。
根据本发明的再一方面,提供了一种软件更新数据发布系统,其中,该系统包括:发布服务器和分布式网络;
发布服务器,适于从指定软件的服务器获取该指定软件的更新数据;所述更新数据包括:扫描库、补丁的快速体验包、补丁的全量包和差量集合文件;适于将补丁的快速体验包、补丁的全量包和差量集合文件发布到分布式网络中供终端设备下载;以及适于将所述扫描库通过指定通道进行发布,所述扫描库中包含补丁的快速体验包的关键信息,从而使得终端设备获取扫描库并根据扫描库确定对其本地安装的指定软件进行更新所需要安装的补丁。
供终端设备进行下载。
可选地,所述分布式网络包括:内容分发网络CDN和键值服务器集群系统;
所述发布服务器,适于将补丁的快速体验包、补丁的全量包和差量集合文件发布到内容分发网络CDN的各个节点上;计算补丁的快速体验包的索引信息,以及计算差量集合文件中的各差量文件的索引信息;将快速体验包的关键信息和索引信息对应保存到键值服务器集群系统中,以及将各差量文件的关键信息和索引信息对应保存到键值服务器集群系统中;
其中,
补丁的快速体验包的索引信息包括:快速体验包下载URL和快速体验包校验信息;
差量文件的索引信息包括:差量文件下载URL和差量文件校验信息。
可选地,键值服务器集群系统,适于在接收到终端设备发送的包含快速体验包的关键信息的请求时,向该终端设备返回相应的快速体验包索引信息,以及在接收到终端设备发送的包含差量文件的关键信息的请求时,向该终端设备返回相应的差量文件的索引信息。
可选地,所述CDN,适于在接收到终端设备发送的包含快速体验包下载URL的请求时,向终端设备返回相应的快速体验包,以及在接收到终端设备发送的包含差量文件下载URL的请求时,从差量集合文件中截取相应的差量文件并返回给该终端设备。
可选地,所述CDN,适于在接收到终端设备发送的补丁全量包下载请求时,将相应的补丁全量包返回给终端设备。
可选地,所述发布服务器,进一步适于对扫描库和计算得到的各索引信息进行备份处理。
根据本发明的技术方案,通过使用指定软件的扫描库,对本地安装的指定软件进行扫描,获得该指定软件需要安装的补丁的快速体验包,进而确定该指定软件进行更新需要的差量文件的关键信息,根据该差量文件的关键信息下载相应的差量文件,合并该指定软件的本地文件和差量文件得到完整的安装包后,进行安装以修复该指定软件存在的漏洞或缺陷。可见,本技术方案是根据指定软件的更新需求进行差量文件的下载,排除了累计更新包中对该指定软件更新无用的文件;且这种差量文件的体积比累计更新文件的体积小,下载时可节省下载流量,对带宽资源的要求不高。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种软件更新方法的流程示意图;
图2示出了根据本发明一个实施例的软件更新数据发布方法的流程示意图;
图3示出了根据本发明一个实施例的软件更新和软件更新数据发布的整体流程示意图;
图4示出了根据本发明一个实施例的软件更新装置的结构示意图;
图5示出了根据本发明一个实施例的软件更新数据发布系统的结构示意图;
图6示出了根据本发明另一个实施例的软件更新数据发布系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种软件更新方法的流程示意图。从客户端侧说明本方案的软件更新实施过程。如图1所示,该方法包括:
步骤S110,当满足预设条件时,获取指定软件的扫描库,并根据该扫描库对本地安装的指定软件进行扫描,确定对该指定软件进行更新所需要安装的补丁,以及从扫描库获取所需要安装的补丁的快速体验包的关键信息。
满足预设条件是指满足软件更新的预设条件,例如,当用户主动触发软件更新时,或者后台定时器到达预设时间时,需要进行软件更新。因为软件的更新服务器在监测到软件发布方进行软件的更新后,更新服务器端会同步更新数据,并发布该软件的扫描库,扫描库中会记录该软件更新的补丁名称、描述信息等,用户可以根据自身需求进行相应的补丁的下载;同时扫描库中还有于补丁相对应的快速体验包的关键信息(即快速体验包的Key)。在本实施例中,当满足预设条件时,获取该指定软件的扫描库,根据该扫描库对本地安装的指定软件进行扫描,找出扫描库中有的,而本地安装的该指定软件中没有的补丁,即确定出该指定软件需要安装的补丁,以及获取需要安装的补丁的快速体验包的关键信息。
例如,一个具体的扫描方法是:当获取到扫描库后,枚举扫描库中的所有更新补丁,得到一更新列表;从更新列表中取一个更新,若该更新的父依赖通过检测,枚举该更新的所有子更新,得到子更新列表,从子更新列表中取出一个子更新,若该子更新的父依赖通过检测,判断该子更新是否已经安装,若没有安装,再判断该子更新是否适用,若判断为是,则添加该子更新到子更新扫描结果集,直至子更新列表遍历完毕;当子更新列表遍历完毕后,在子更新扫描结果集不为空的情况下,将该子更新对应的更新添加至扫描结果集,直至更新列表遍历完毕,得到扫描结果集,则扫描结束。通过该扫描结果集就可以确定出该指定软件需要安装的更新补丁。
步骤S120,根据快速体验包的关键信息下载相应的快速体验包,根据所下载的快速体验包确定对该指定软件进行更新所需要的差量文件的关键信息。
当扫描结束后,获取到快速体验包的关键信息后,可以根据该关键信息下载该快速体验包。为了进一步确定该指定软件需要更新的文件,可以通过下载的快速体验包确定该指定软件进行更新所需要的差量文件的关键信息,这里差量文件指的是二进制差量(binary diff patch,即碎片文件),差量文件可以理解为该指定软件的缺失文件。
例如,一个具体的确定差量文件的方法是:当快速体验包下载后,解压到临时安装目录中(该临时安装目录可以自定义),枚举说是有以psf.cix.xml结尾的文件,得到xml文件集合,总xml文件结合中取出一个xml文件,枚举该xml文件中所有的files/file节点,得到文件集合,从文件集合中取出一个文件,判断winsxs历史版本中是否存在该文件,若存在,复制该文件到临时安装目录,若不存在,则将该文件的相对路径写入缺失文件清单中(差量文件清单),当遍历xml文件集合中每一个xml文件的文件集合后,得到该指定软件的差量文件清单,根据该差量文件清单,获得差量文件清单中的差量文件的关键信息。
步骤S130,根据差量文件的关键信息下载相应的差量文件,通过合并该指定软件的本地文件和差量文件得到完整的安装包,并进行安装。
例如,一个具体的安装方法是:获得差量文件清单中的差量文件的关键信息后,通过该关键信息向文件服务器获取相应的差量文件包并下载,下载成功后,将其解压到临时安装目录,根据临时安装目录,通过CBS启动安装。需要说明的是,在本具体例子中,因为临时安装目录中包含有winsxs历史版本中已经存在的文件,则该临时安装目录即是该指定软件的完整安装包的安装目录,相当于步骤S130通过合并该指定软件的本地文件和差量文件得到完整的安装包。
可见,本技术方案是根据指定软件的更新需求进行差量文件的下载,排除了累计更新包中对该指定软件更新无用的文件;且这种差量文件的体积比累计更新文件的体积小,下载时可节省下载流量,对带宽资源的要求不高。
同时,累计更新包的更新机制是累计一段时间后对软件的更新进行统一发布,只能使用户分时段进行更新,会造成更新的滞后。而本技术方案中,用户可以随时启动更新,从相应的更新服务器中获得更新数据包,让用户早于软件发布方的发布及时获得更新。
另外,该方案中用户可以通过扫描库自行选择指定软件进行更新所需要安装的补丁,提升了用户的体验。并且用户还可以通过对更新后软件的使用体验,反馈问题,以便对其他用户进行提醒或者屏蔽相关问题,降低了用户因更新软件造成的无法使用的风险。
在本发明的一个实施例中,步骤S110中的获取指定软件的扫描库可以从指定路径下载该指定软件的最新版本的全量扫描库,该全量扫描库是相应的更新服务器已经发布的全量扫描库。
在本发明的一个实施例中,步骤S110中的获取指定软件的扫描库也可以是从指定路径下载该指定软件的增量扫描库,并与本地的该指定软件的扫描库的进行合并。
例如,当用户手动或后台定时器触发扫描时,首先更新增量扫描库libleak2_diff.dat(增量库逻辑先不实现),请求成功后,加载本地下发的扫描全库的最新版本libleak2.dat以及增量扫描库libleak2_diff.dat,两者合并后,再依据扫描库中规则对本地的指定软件进行扫描,生成扫描结果集。
当指定软件的更新数据发布后,可以从键值服务器集群系统KV请求索引信息以及从内容分发网络CDN请求更新数据,完成所需数据包的下载。
当所需数据包为快速体验包,在本发明的一个实施例中,步骤S120根据快速体验包的关键信息下载相应的快速体验包包括:根据快速体验包的关键信息从键值服务器集群系统请求快速体验包索引信息;根据请求到的快速体验包索引信息从内容分发网络CDN下载相应的快速体验包。其中,上述的快速体验包索引信息包括:快速体验包下载URL和快速体验包校验信息。
那么上述的根据请求到的快速体验包索引信息从内容分发网络CDN下载相应的快速体验包包括:根据快速体验包下载URL从CDN下载相应的快速体验包,并利用快速体验包校验信息对所下载的快速体验包进行校验,校验通过以后,下载的快速体验包才可以解压。
当所需数据包为差量文件,在本发明的一个实施例中,步骤S130中的根据差量文件的关键信息下载相应的差量文件包括:根据差量文件的关键信息从键值服务器集群系统请求差量文件索引信息;根据请求到的差量文件索引信息从CDN下载相应的差量文件。其中,差量文件索引信息包括:差量文件下载URL和差量文件校验信息。
那么上述的根据请求到的差量文件索引信息从CDN下载相应的差量文件包括:根据差量文件下载URL从CDN下载相应的差量文件,并利用差量文件校验信息对所下载的差量文件进行校验。
在一个具体的例子中,当根据扫描库扫描完成后,可以从扫描结果集中选择需要安装的更新,然后启动安装过程。首先,根据获得的快速体验包的关键信息key,使用该key向KV请求快速体验包的索引信息,当KV返回快速体验包索引信息后,从中提取出快速体验包下载URL,然后利用该URL向CDN请求快速体验包,当CDN返回快速体验包后,利用索引信息中的摘要等校验信息对快速体验包进行校验。快速体验包校验通过后,根据快速体验包确定该指定软件进行更新所需要的碎片文件(差量文件)的关键信息key,使用碎片文件的key向KV请求碎片文件的索引信息,当KV返回碎片文件的索引信息后,从中提取出碎片文件的下载URL,然后利用该URL向CDN请求碎片文件,当CDN返回碎片文件后,利用CDN索引信息中的摘要等校验信息对碎片文件进行校验。所有碎片都校验通过后,通过合并本地文件及碎片文件生成完整包,最后调用CBS接口对合成的完整包进行安装。
如果根据下载的快速体验包无法确定该指定软件进行更新所需要的差量文件的关键信息,无法下载相应的差量文件时,在本发明的一个实施例中,图1所示的方法进一步包括:当下载不到相应的差量文件时,下载补丁全量包,并安装。
图2示出了根据本发明一个实施例的软件更新数据发布方法的流程示意图,从服务器侧说明本方案的软件更新数据发布实施过程。当有软件更新时,需要将新数据同步并加以处理,然后发布给用户,以便用户进行软件的更新安装。如图2所示,该方法包括:
步骤S210,从指定软件的服务器获取该指定软件的更新数据;更新数据包括:扫描库、补丁的快速体验包、补丁的全量包和差量集合文件。
为了及时进行更新数据的发布,需要从指定软件的服务器获取该指定软件的更新数据。为了实现本方案中的差量更新,方便用户安装,需要获取的更新数据包括:扫描库、补丁的快速体验包、补丁的全量包和差量集合文件。
为了获取该指定软件的更新数据,可以搭建一台标准WSUS服务器(例如,搭建在winserver 2012r2x64上),定时(例如,每30分钟一次)从指定软件的服务器同步最新的更新数据库。更新数据库里面会包含重要的更新信息,主要有:全平台扫描库、所有更新的快速体验包URL、所有更新的完整包URL及更新的差量集合文件URL。作为更新数据的唯一数据源,这台WSUS服务器更新数据必须快速、可靠,应该做到外网不可访问、内网严格限制访问、关闭所有不必要的端口等。
步骤S220,将补丁的快速体验包、补丁的全量包和差量集合文件发布到分布式网络中供终端设备下载。
根据获取到的更新数据库中的URL,将更新数据(快速体验包、完整包、差量集合文件)下载到本WSUS服务器中,以便终端设备可以进行下载。具体地,首先,将下载的更新数据文件(快速体验包、完整包及差量集合文件)上传到内容分发网络CDN并同步到全网结点;其次,计算这些更新文件key及索引信息(更新文件的摘要信息、大小及发布到CDN上的pdown格式的URL)推送到键值KV服务器群集建立索引。
同时,还需要对扫描库按平台进行拆分,并以特定目录结构存放于本WSUS服务器。因为扫描库中可能是各种类型或各种系统平台的综合,需要将扫描库按照类型或者系统平台进行拆分。例如,扫描库中包含win7、win8.1、win10、office软件等,需要将该扫描库拆分成win7扫描库、win8.1扫描库、win10扫描库、office软件扫描库,然后以特定目录结构存放于本WSUS服务器,以便终端设备可以下载指定软件的最新版本的扫描库。
具体的拆分过程可以是:在WSUS服务器调用WsusUtil命令导出扫描全库,使用UpdateMake根据特定产品ID导出更新列表,使用WsusScan根据扫描全库以及更新列表生成各个软件或平台的扫描库,分别打包成独立文件后存储。这里的UpdateMake和WusuScan是自实现的命令。
步骤S230,将扫描库通过指定通道进行发布,扫描库中包含补丁的快速体验包的关键信息,从而使得终端设备获取扫描库并根据扫描库确定对其本地安装的指定软件进行更新所需要安装的补丁。
例如,通过360漏洞修修复服务器V5通道发布拆分后的扫描库。
可见,依据本发明的软件更新数据发布方案,可以为终端设备提供差量文件的下载,以便终端设备完成软件的更新,排除累计更新包中对该指定软件更新无用的文件;且这种差量文件的体积比累计更新文件的体积小,在进行更新数据发布的时候对带宽资源的要求不高。
而且,如果是国外软件,从该软件的发布方服务器中直接获取更新数据,会给用户带来下载速度慢等问题,严重影响用户体验。而本发明的技术方案直接向用户提供软件的更新数据,特别是针对国内用户使用国外软件的情况,更新数据的下载速度远大于直接获取更新数据。
在本发明的一个实施例中,步骤S220中的将补丁的快速体验包、补丁的全量包和差量集合文件发布到分布式网络中供终端设备进行下载包括:将补丁的快速体验包、补丁的全量包和差量集合文件发布到内容分发网络CDN的各个节点上;计算补丁的快速体验包的索引信息,以及计算差量集合文件中的各差量文件的索引信息;将快速体验包的关键信息和索引信息对应保存到键值服务器集群系统中,以及将各差量文件的关键信息和索引信息对应保存到键值服务器集群系统中。
其中,补丁的快速体验包的索引信息包括:快速体验包下载URL和快速体验包校验信息;差量文件的索引信息包括:差量文件下载URL和差量文件校验信息。
进一步地,上述方法进一步包括:
键值服务器集群系统在接收到终端设备发送的包含快速体验包的关键信息的请求时,向该终端设备返回相应的快速体验包索引信息,以及在接收到终端设备发送的包含差量文件的关键信息的请求时,向该终端设备返回相应的差量文件的索引信息。
那么,CDN在接收到终端设备发送的包含快速体验包下载URL的请求时,向终端设备返回相应的快速体验包,以及在接收到终端设备发送的包含差量文件下载URL的请求时,从差量集合文件中截取相应的差量文件并返回给该终端设备。
如果终端设备侧无法确定该指定软件进行更新所需要的差量文件的关键信息,无法下载相应的差量文件时,会发送补丁全量包下载请求,那么,在本发明的一个实施例中,上述方法进一步包括:
CDN在接收到终端设备发送的补丁全量包下载请求时,将相应的补丁全量包返回给终端设备。
在本发明的一个实施例中,图2所示的方法进一步包括:对扫描库和计算得到的各索引信息进行备份处理。
更新数据发布完成后,需要对数据进行备份,以防止服务器突然出现的异常情况。这里,主要需要备份已经计算完成的索引信息及各平台扫描库。另外,可以采用异地备份策略,备份于其它服务器,以便更好的避免异常情况的发生。
图3示出了根据本发明一个实施例的软件更新和软件更新数据发布的整体流程示意图。如图3所示,整个流程需要经过服务器侧和客户端侧相结合完成。在服务器侧包括有WSUS服务器、CDN和KV。
当指定软件进行更新后,WSUS服务器会进行更新数据的同步(更新数据主要包括:全平台扫描库、所有更新的快速体验包、所有更新的完整包及差量集合文件),下载更新数据,提取并拆分全量扫描库,发布更新数据(更新数据主要包括:所有更新的快速体验包、所有更新的完整包及差量集合文件)到CDN上,CDN同步更新数据到全国各个结点上;WSUS服务器会推送更新数据的索引信息到KV,以便KV建立更新数据的索引缓存。然后,WSUS服务器会对更新文件中PE文件进行加白处理,最后通过V5通道发布拆分后扫描库。
当进行软件更新时,客户端侧触发扫描后,通过发布的扫描库更新本地的扫描库,然后通过更新后的扫描库扫描安装在本地的指定软件的本地环境,得到该指定软件需要安装的更新。触发安装程序,计算需要安装的更新的快速体验包的key,使用该快速体验包的key向KV请求快速体验包的索引信息;KV接收到指定软件的快速体验包的索引信息请求后,根据索引缓存,将快速体验包的索引信息(索引信息包括:快速体验包的URL和校验信息)返回给客户端;客户端接收快速体验包的索引信息后,根据快速体验包的URL向CDN发送下载请求;CDN返回快速体验包的数据;客户端下载快速体验包,根据校验信息校验下载的快速体验包,并根据快速体验包确定该指定软件的碎片文件的key,使用碎片文件的key向KV发送碎片文件的索引信息请求;KV接收到指定软件的碎片文件的索引信息请求后,根据索引缓存,将碎片文件的索引信息(索引信息包括:碎片文件的URL和校验信息)返回给客户端;客户端接收碎片文件的索引信息后,根据碎片文件的URL向CDN发送下载请求,CDN返回碎片文件的数据;客户端下载碎片文件,根据校验信息校验下载的碎片文件,校验成功后,合并碎片文件和本地文件得到指定软件的完整包,根据完整包进行指定软件的安装。
图4示出了根据本发明一个实施例的软件更新装置的结构示意图。如图3所示,该软件更新装置400包括:
扫描处理单元410,适于当满足预设条件时,获取指定软件的扫描库,并根据该扫描库对本地安装的指定软件进行扫描,确定对该指定软件进行更新所需要安装的补丁,以及从扫描库获取所需要安装的补丁的快速体验包的关键信息。
满足预设条件是指满足软件更新的预设条件,例如,当用户主动触发软件更新时,或者后台定时器到达预设时间时,需要进行软件更新。因为软件的更新服务器在监测到软件发布方进行软件的更新后,更新服务器端会同步更新数据,并发布该软件的扫描库,扫描库中会记录该软件更新的补丁名称、描述信息等,用户可以根据自身需求进行相应的补丁的下载;同时扫描库中还有于补丁相对应的快速体验包的关键信息(即快速体验包的Key)。在本实施例中,当满足预设条件时,获取该指定软件的扫描库,根据该扫描库对本地安装的指定软件进行扫描,找出扫描库中有的,而本地安装的该指定软件中没有的补丁,即确定出该指定软件需要安装的补丁,以及获取需要安装的补丁的快速体验包的关键信息。
例如,一个具体的扫描方法是:当获取到扫描库后,枚举扫描库中的所有更新补丁,得到一更新列表;从更新列表中取一个更新,若该更新的父依赖通过检测,枚举该更新的所有子更新,得到子更新列表,从子更新列表中取出一个子更新,若该子更新的父依赖通过检测,判断该子更新是否已经安装,若没有安装,再判断该子更新是否适用,若判断为是,则添加该子更新到子更新扫描结果集,直至子更新列表遍历完毕;当子更新列表遍历完毕后,在子更新扫描结果集不为空的情况下,将该子更新对应的更新添加至扫描结果集,直至更新列表遍历完毕,得到扫描结果集,则扫描结束。通过该扫描结果集就可以确定出该指定软件需要安装的更新补丁。
更新处理单元420,适于根据快速体验包的关键信息下载相应的快速体验包,根据所下载的快速体验包确定对该指定软件进行更新所需要的差量文件的关键信息;以及适于根据差量文件的关键信息下载相应的差量文件,通过合并该指定软件的本地文件和差量文件得到完整的安装包,并进行安装。
当扫描结束后,获取到快速体验包的关键信息后,可以根据该关键信息下载该快速体验包。为了进一步确定该指定软件需要更新的文件,可以通过下载的快速体验包确定该指定软件进行更新所需要的差量文件的关键信息,这里差量文件指的是二进制差量(binary diff patch,即碎片文件),差量文件可以理解为该指定软件的缺失文件。
例如,一个具体的确定差量文件的方法是:当快速体验包下载后,解压到临时安装目录中(该临时安装目录可以自定义),枚举说是有以psf.cix.xml结尾的文件,得到xml文件集合,总xml文件结合中取出一个xml文件,枚举该xml文件中所有的files/file节点,得到文件集合,从文件集合中取出一个文件,判断winsxs历史版本中是否存在该文件,若存在,复制该文件到临时安装目录,若不存在,则将该文件的相对路径写入缺失文件清单中(差量文件清单),当遍历xml文件集合中每一个xml文件的文件集合后,得到该指定软件的差量文件清单,根据该差量文件清单,获得差量文件清单中的差量文件的关键信息。然后通过该关键信息向文件服务器获取相应的差量文件包并下载,下载成功后,将其解压到临时安装目录,根据临时安装目录,通过CBS启动安装。需要说明的是,在本具体例子中,因为临时安装目录中包含有winsxs历史版本中已经存在的文件,则该临时安装目录即是该指定软件的完整安装包的安装目录,相当于通过合并该指定软件的本地文件和差量文件得到完整的安装包。
可见,本技术方案是根据指定软件的更新需求进行差量文件的下载,排除了累计更新包中对该指定软件更新无用的文件;且这种差量文件的体积比累计更新文件的体积小,下载时可节省下载流量,对带宽资源的要求不高。
同时,累计更新包的更新机制是累计一段时间后对软件的更新进行统一发布,只能使用户分时段进行更新,会造成更新的滞后。而本技术方案中,用户可以通过本方案中的客户端随时启动更新,从相应的更新服务器中获得更新数据包,让用户早于软件发布方的发布及时获得更新。
另外,该方案中用户可以通过扫描库自行选择指定软件进行更新所需要安装的补丁,提升了用户的体验。并且用户还可以通过客户端对更新后软件的使用体验,反馈问题,以便对其他用户进行提醒或者屏蔽相关问题,降低了用户因更新软件造成的无法使用的风险。
在本发明的一个实施例中,扫描处理单元410,适于从指定路径下载该指定软件的最新版本的全量扫描库,该全量扫描库是相应的更新服务器已经发布的全量扫描库。或者,从指定路径下载该指定软件的增量扫描库,并与本地的该指定软件的扫描库的进行合并,例如,当用户手动或后台定时器触发扫描时,首先更新增量扫描库libleak2_diff.dat(增量库逻辑先不实现),请求成功后,加载本地下发的扫描全库的最新版本libleak2.dat以及增量扫描库libleak2_diff.dat,两者合并后,再依据扫描库中规则对本地的指定软件进行扫描,生成扫描结果集。
当指定软件的更新数据发布后,可以从键值服务器集群系统KV请求索引信息以及从内容分发网络CDN请求更新数据,完成所需数据包的下载。
当所需数据包为快速体验包,在本发明的一个实施例中,更新处理单元420,适于根据快速体验包的关键信息从键值服务器集群系统请求快速体验包索引信息;以及适于根据请求到的快速体验包索引信息从内容分发网络CDN下载相应的快速体验包。
其中,上述的快速体验包索引信息包括:快速体验包下载URL和快速体验包校验信息。
那么,更新处理单元420,适于根据快速体验包下载URL从CDN下载相应的快速体验包,并利用快速体验包校验信息对所下载的快速体验包进行校验,校验通过以后,下载的快速体验包才可以解压。
当所需数据包为差量文件,在本发明的一个实施例中,更新处理单元420,适于根据差量文件的关键信息从键值服务器集群系统请求差量文件索引信息;以及适于根据请求到的差量文件索引信息从CDN下载相应的差量文件。
其中,上述的差量文件索引信息包括:差量文件下载URL和差量文件校验信息。
那么,更新处理单元420,适于根据差量文件下载URL从CDN下载相应的差量文件,并利用差量文件校验信息对所下载的差量文件进行校验。
在一个具体的例子中,当根据扫描库扫描完成后,可以从扫描结果集中选择需要安装的更新,然后启动安装过程。首先,根据获得的快速体验包的关键信息key,使用该key向KV请求快速体验包的索引信息,当KV返回快速体验包索引信息后,从中提取出快速体验包下载URL,然后利用该URL向CDN请求快速体验包,当CDN返回快速体验包后,利用索引信息中的摘要等校验信息对快速体验包进行校验。快速体验包校验通过后,根据快速体验包确定该指定软件进行更新所需要的碎片文件(差量文件)的关键信息key,使用碎片文件的key向KV请求碎片文件的索引信息,当KV返回碎片文件的索引信息后,从中提取出碎片文件的下载URL,然后利用该URL向CDN请求碎片文件,当CDN返回碎片文件后,利用CDN索引信息中的摘要等校验信息对碎片文件进行校验。所有碎片都校验通过后,通过合并本地文件及碎片文件生成完整包,最后调用CBS接口对合成的完整包进行安装。
如果根据下载的快速体验包无法确定该指定软件进行更新所需要的差量文件的关键信息,无法下载相应的差量文件时,在本发明的一个实施例中,更新处理单元420,进一步适于当下载不到相应的差量文件时,下载补丁全量包,并安装。
图5示出了根据本发明一个实施例的软件更新数据发布系统的结构示意图。如图5所示,该软件更新数据发布系统500包括:发布服务器510和分布式网络520;
发布服务器510,适于从指定软件的服务器获取该指定软件的更新数据;更新数据包括:扫描库、补丁的快速体验包、补丁的全量包和差量集合文件;适于将补丁的快速体验包、补丁的全量包和差量集合文件发布到分布式网络520中供终端设备下载;以及适于将扫描库通过指定通道进行发布(例如,通过360漏洞修修复服务器V5通道发布拆分后的扫描库),扫描库中包含补丁的快速体验包的关键信息,从而使得终端设备获取扫描库并根据扫描库确定对其本地安装的指定软件进行更新所需要安装的补丁。
为了及时进行更新数据的发布,需要从指定软件的服务器获取该指定软件的更新数据。为了实现本方案中的差量更新,方便用户安装,需要获取的更新数据包括:扫描库、补丁的快速体验包、补丁的全量包和差量集合文件。
为了获取该指定软件的更新数据,可以搭建一台标准WSUS服务器(例如,搭建在winserver 2012r2x64上),定时(例如,每30分钟一次)从指定软件的服务器同步最新的更新数据库。更新数据库里面会包含重要的更新信息,主要有:全平台扫描库、所有更新的快速体验包URL、所有更新的完整包URL及更新的差量集合文件URL。作为更新数据的唯一数据源,这台WSUS服务器更新数据必须快速、可靠,应该做到外网不可访问、内网严格限制访问、关闭所有不必要的端口等。
根据获取到的更新数据库中的URL,将更新数据(快速体验包、完整包、差量集合文件)下载到本WSUS服务器中,以便终端设备可以进行下载。具体地,首先,将下载的更新数据文件(快速体验包、完整包及差量集合文件)上传到内容分发网络CDN并同步到全网结点;其次,计算这些更新文件key及索引信息(更新文件的摘要信息、大小及发布到CDN上的pdown格式的URL)推送到键值KV服务器群集建立索引。
同时,还需要对扫描库按平台进行拆分,并以特定目录结构存放于本WSUS服务器。因为扫描库中可能是各种类型或各种系统平台的综合,需要将扫描库按照类型或者系统平台进行拆分。例如,扫描库中包含win7、win8.1、win10、office软件等,需要将该扫描库拆分成win7扫描库、win8.1扫描库、win10扫描库、office软件扫描库,然后以特定目录结构存放于本WSUS服务器,以便终端设备可以下载指定软件的最新版本的扫描库。
具体的拆分过程可以是:在WSUS服务器调用WsusUtil命令导出扫描全库,使用UpdateMake根据特定产品ID导出更新列表,使用WsusScan根据扫描全库以及更新列表生成各个软件或平台的扫描库,分别打包成独立文件后存储。这里的UpdateMake和WusuScan是自实现的命令。
可见,依据本发明的软件更新数据发布方案,可以为终端设备提供差量文件的下载,以便终端设备完成软件的更新,排除累计更新包中对该指定软件更新无用的文件;且这种差量文件的体积比累计更新文件的体积小,在进行更新数据发布的时候对带宽资源的要求不高。
而且,如果是国外软件,从该软件的发布方服务器中直接获取更新数据,会给用户带来下载速度慢等问题,严重影响用户体验。而本技术方案的更新服务器直接向用户提供软件的更新数据,特别是针对国内用户使用国外软件的情况,更新数据的下载速度远大于直接获取更新数据。
图6示出了根据本发明另一个实施例的软件更新数据发布系统的结构示意图。如图6所示,该软件更新数据发布系统600包括:发布服务器610和分布式网络620。其中,发布服务器610和图5所示的发布服务器510具有对应相同的功能,相同的部分在此不再赘述。
分布式网络620包括:内容分发网络CDN 621和键值服务器集群系统622;
发布服务器610,适于将补丁的快速体验包、补丁的全量包和差量集合文件发布到内容分发网络CDN 621的各个节点上;计算补丁的快速体验包的索引信息,以及计算差量集合文件中的各差量文件的索引信息;将快速体验包的关键信息和索引信息对应保存到键值服务器集群系统622中,以及将各差量文件的关键信息和索引信息对应保存到键值服务器集群系统622中。
其中,补丁的快速体验包的索引信息包括:快速体验包下载URL和快速体验包校验信息;差量文件的索引信息包括:差量文件下载URL和差量文件校验信息。
进一步地,键值服务器集群系统622,适于在接收到终端设备发送的包含快速体验包的关键信息的请求时,向该终端设备返回相应的快速体验包索引信息,以及在接收到终端设备发送的包含差量文件的关键信息的请求时,向该终端设备返回相应的差量文件的索引信息。
具体地,CDN 621,适于在接收到终端设备发送的包含快速体验包下载URL的请求时,向终端设备返回相应的快速体验包,以及在接收到终端设备发送的包含差量文件下载URL的请求时,从差量集合文件中截取相应的差量文件并返回给该终端设备。
如果终端设备侧无法确定该指定软件进行更新所需要的差量文件的关键信息,无法下载相应的差量文件时,会发送补丁全量包下载请求,那么,在本发明的一个实施例中,CDN 621,适于在接收到终端设备发送的补丁全量包下载请求时,将相应的补丁全量包返回给终端设备。
在本发明的一个实施例中,发布服务器610,进一步适于对扫描库和计算得到的各索引信息进行备份处理。
更新数据发布完成后,需要对数据进行备份,以防止服务器突然出现的异常情况。这里,主要需要备份已经计算完成的索引信息及各平台扫描库。另外,可以采用异地备份策略,备份于其它服务器,以便更好的避免异常情况的发生。
综上所述,根据本发明的技术方案,通过使用指定软件的扫描库,对本地安装的指定软件进行扫描,获得该指定软件需要安装的补丁的快速体验包,进而确定该指定软件进行更新需要的差量文件的关键信息,根据该差量文件的关键信息下载相应的差量文件,合并该指定软件的本地文件和差量文件得到完整的安装包后,进行安装以修复该指定软件存在的漏洞或缺陷。可见,本技术方案是根据指定软件的更新需求进行差量文件的下载,排除了累计更新包中对该指定软件更新无用的文件;且这种差量文件的体积比累计更新文件的体积小,下载时可节省下载流量,对带宽资源的要求不高。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的软件更新装置和软件更新数据发布系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种软件更新方法,其中,该方法包括:
当满足预设条件时,获取指定软件的扫描库,并根据该扫描库对本地安装的指定软件进行扫描,确定对该指定软件进行更新所需要安装的补丁,以及从扫描库获取所需要安装的补丁的快速体验包的关键信息;
根据快速体验包的关键信息下载相应的快速体验包,根据所下载的快速体验包确定对该指定软件进行更新所需要的差量文件的关键信息;
根据所述差量文件的关键信息下载相应的差量文件,通过合并该指定软件的本地文件和所述差量文件得到完整的安装包,并进行安装。
A2、如A1所述的方法,其中,所述获取指定软件的扫描库包括:
从指定路径下载该指定软件的最新版本的全量扫描库;
或者,从指定路径下载该指定软件的增量扫描库,并与本地的该指定软件的扫描库的进行合并。
A3、如A1所述的方法,其中,所述根据快速体验包的关键信息下载相应的快速体验包包括:
根据快速体验包的关键信息从键值服务器集群系统请求快速体验包索引信息;
根据请求到的快速体验包索引信息从内容分发网络CDN下载相应的快速体验包。
A4、如A3所述的方法,其中,
所述快速体验包索引信息包括:快速体验包下载URL和快速体验包校验信息;
所述根据请求到的快速体验包索引信息从内容分发网络CDN下载相应的快速体验包包括:根据快速体验包下载URL从CDN下载相应的快速体验包,并利用快速体验包校验信息对所下载的快速体验包进行校验。
A5、如A1所述的方法,其中,所述根据所述差量文件的关键信息下载相应的差量文件包括:
根据差量文件的关键信息从键值服务器集群系统请求差量文件索引信息;
根据请求到的差量文件索引信息从CDN下载相应的差量文件。
A6、如A5所述的方法,其中,
所述差量文件索引信息包括:差量文件下载URL和差量文件校验信息;
所述根据请求到的差量文件索引信息从CDN下载相应的差量文件包括:根据差量文件下载URL从CDN下载相应的差量文件,并利用差量文件校验信息对所下载的差量文件进行校验。
A7、如A1-A6中任一项所述的方法,其中,该方法进一步包括:
当下载不到相应的差量文件时,下载补丁全量包,并安装。
本发明还公开了B8、一种软件更新数据发布方法,其中,该方法包括:
从指定软件的服务器获取该指定软件的更新数据;所述更新数据包括:扫描库、补丁的快速体验包、补丁的全量包和差量集合文件;
将补丁的快速体验包、补丁的全量包和差量集合文件发布到分布式网络中供终端设备下载;
将所述扫描库通过指定通道进行发布,所述扫描库中包含补丁的快速体验包的关键信息,从而使得终端设备获取扫描库并根据扫描库确定对其本地安装的指定软件进行更新所需要安装的补丁。
B9、如B8所述的方法,其中,所述将补丁的快速体验包、补丁的全量包和差量集合文件发布到分布式网络中供终端设备进行下载包括:
将补丁的快速体验包、补丁的全量包和差量集合文件发布到内容分发网络CDN的各个节点上;
计算补丁的快速体验包的索引信息,以及计算差量集合文件中的各差量文件的索引信息;
将快速体验包的关键信息和索引信息对应保存到键值服务器集群系统中,以及将各差量文件的关键信息和索引信息对应保存到键值服务器集群系统中;
其中,
补丁的快速体验包的索引信息包括:快速体验包下载URL和快速体验包校验信息;
差量文件的索引信息包括:差量文件下载URL和差量文件校验信息。
B10、如B9所述的方法,其中,该方法进一步包括:
键值服务器集群系统在接收到终端设备发送的包含快速体验包的关键信息的请求时,向该终端设备返回相应的快速体验包索引信息,以及在接收到终端设备发送的包含差量文件的关键信息的请求时,向该终端设备返回相应的差量文件的索引信息。
B11、如B10所述的方法,其中,该方法进一步包括:
CDN在接收到终端设备发送的包含快速体验包下载URL的请求时,向终端设备返回相应的快速体验包,以及在接收到终端设备发送的包含差量文件下载URL的请求时,从差量集合文件中截取相应的差量文件并返回给该终端设备。
B12、如B9所述的方法,其中,该方法进一步包括:
CDN在接收到终端设备发送的补丁全量包下载请求时,将相应的补丁全量包返回给终端设备。
B13、如B9-B12中任一项所述的方法,其中,该方法进一步包括:
对扫描库和计算得到的各索引信息进行备份处理。
本发明还公开了C14、一种软件更新装置,其中,该装置包括:
扫描处理单元,适于当满足预设条件时,获取指定软件的扫描库,并根据该扫描库对本地安装的指定软件进行扫描,确定对该指定软件进行更新所需要安装的补丁,以及从扫描库获取所需要安装的补丁的快速体验包的关键信息;
更新处理单元,适于根据快速体验包的关键信息下载相应的快速体验包,根据所下载的快速体验包确定对该指定软件进行更新所需要的差量文件的关键信息;以及适于根据所述差量文件的关键信息下载相应的差量文件,通过合并该指定软件的本地文件和所述差量文件得到完整的安装包,并进行安装。
C15、如C14所述的装置,其中,
所述扫描处理单元,适于从指定路径下载该指定软件的最新版本的全量扫描库;或者,从指定路径下载该指定软件的增量扫描库,并与本地的该指定软件的扫描库的进行合并。
C16、如C14所述的装置,其中,
所述更新处理单元,适于根据快速体验包的关键信息从键值服务器集群系统请求快速体验包索引信息;以及适于根据请求到的快速体验包索引信息从内容分发网络CDN下载相应的快速体验包。
C17、如C16所述的装置,其中,
所述快速体验包索引信息包括:快速体验包下载URL和快速体验包校验信息;
所述更新处理单元,适于根据快速体验包下载URL从CDN下载相应的快速体验包,并利用快速体验包校验信息对所下载的快速体验包进行校验。
C18、如C14所述的装置,其中,
所述更新处理单元,适于根据差量文件的关键信息从键值服务器集群系统请求差量文件索引信息;以及适于根据请求到的差量文件索引信息从CDN下载相应的差量文件。
C19、如C18所述的装置,其中,
所述差量文件索引信息包括:差量文件下载URL和差量文件校验信息;
所述更新处理单元,适于根据差量文件下载URL从CDN下载相应的差量文件,并利用差量文件校验信息对所下载的差量文件进行校验。
C20、如C14-C19中任一项所述的装置,其中,
所述更新处理单元,进一步适于当下载不到相应的差量文件时,下载补丁全量包,并安装。
本发明还公开了D21、一种软件更新数据发布系统,其中,该系统包括:发布服务器和分布式网络;
发布服务器,适于从指定软件的服务器获取该指定软件的更新数据;所述更新数据包括:扫描库、补丁的快速体验包、补丁的全量包和差量集合文件;适于将补丁的快速体验包、补丁的全量包和差量集合文件发布到分布式网络中供终端设备下载;以及适于将所述扫描库通过指定通道进行发布,所述扫描库中包含补丁的快速体验包的关键信息,从而使得终端设备获取扫描库并根据扫描库确定对其本地安装的指定软件进行更新所需要安装的补丁。
供终端设备进行下载。
D22、如D21所述的系统,其中,所述分布式网络包括:内容分发网络CDN和键值服务器集群系统;
所述发布服务器,适于将补丁的快速体验包、补丁的全量包和差量集合文件发布到内容分发网络CDN的各个节点上;计算补丁的快速体验包的索引信息,以及计算差量集合文件中的各差量文件的索引信息;将快速体验包的关键信息和索引信息对应保存到键值服务器集群系统中,以及将各差量文件的关键信息和索引信息对应保存到键值服务器集群系统中;
其中,
补丁的快速体验包的索引信息包括:快速体验包下载URL和快速体验包校验信息;
差量文件的索引信息包括:差量文件下载URL和差量文件校验信息。
D23、如D22所述的系统,其中,
键值服务器集群系统,适于在接收到终端设备发送的包含快速体验包的关键信息的请求时,向该终端设备返回相应的快速体验包索引信息,以及在接收到终端设备发送的包含差量文件的关键信息的请求时,向该终端设备返回相应的差量文件的索引信息。
D24、如D23所述的系统,其中,
所述CDN,适于在接收到终端设备发送的包含快速体验包下载URL的请求时,向终端设备返回相应的快速体验包,以及在接收到终端设备发送的包含差量文件下载URL的请求时,从差量集合文件中截取相应的差量文件并返回给该终端设备。
D25、如D22所述的系统,其中,
所述CDN,适于在接收到终端设备发送的补丁全量包下载请求时,将相应的补丁全量包返回给终端设备。
D26、如D21-D25中任一项所述的系统,其中,
所述发布服务器,进一步适于对扫描库和计算得到的各索引信息进行备份处理。

Claims (10)

1.一种软件更新方法,其中,该方法包括:
当满足预设条件时,获取指定软件的扫描库,并根据该扫描库对本地安装的指定软件进行扫描,确定对该指定软件进行更新所需要安装的补丁,以及从扫描库获取所需要安装的补丁的快速体验包的关键信息;
根据快速体验包的关键信息下载相应的快速体验包,根据所下载的快速体验包确定对该指定软件进行更新所需要的差量文件的关键信息;
根据所述差量文件的关键信息下载相应的差量文件,通过合并该指定软件的本地文件和所述差量文件得到完整的安装包,并进行安装。
2.如权利要求1所述的方法,其中,所述获取指定软件的扫描库包括:
从指定路径下载该指定软件的最新版本的全量扫描库;
或者,从指定路径下载该指定软件的增量扫描库,并与本地的该指定软件的扫描库的进行合并。
3.如权利要求1所述的方法,其中,所述根据快速体验包的关键信息下载相应的快速体验包包括:
根据快速体验包的关键信息从键值服务器集群系统请求快速体验包索引信息;
根据请求到的快速体验包索引信息从内容分发网络CDN下载相应的快速体验包。
4.一种软件更新数据发布方法,其中,该方法包括:
从指定软件的服务器获取该指定软件的更新数据;所述更新数据包括:扫描库、补丁的快速体验包、补丁的全量包和差量集合文件;
将补丁的快速体验包、补丁的全量包和差量集合文件发布到分布式网络中供终端设备下载;
将所述扫描库通过指定通道进行发布,所述扫描库中包含补丁的快速体验包的关键信息,从而使得终端设备获取扫描库并根据扫描库确定对其本地安装的指定软件进行更新所需要安装的补丁。
5.如权利要求4所述的方法,其中,所述将补丁的快速体验包、补丁的全量包和差量集合文件发布到分布式网络中供终端设备进行下载包括:
将补丁的快速体验包、补丁的全量包和差量集合文件发布到内容分发网络CDN的各个节点上;
计算补丁的快速体验包的索引信息,以及计算差量集合文件中的各差量文件的索引信息;
将快速体验包的关键信息和索引信息对应保存到键值服务器集群系统中,以及将各差量文件的关键信息和索引信息对应保存到键值服务器集群系统中;
其中,
补丁的快速体验包的索引信息包括:快速体验包下载URL和快速体验包校验信息;
差量文件的索引信息包括:差量文件下载URL和差量文件校验信息。
6.如权利要求5所述的方法,其中,该方法进一步包括:
键值服务器集群系统在接收到终端设备发送的包含快速体验包的关键信息的请求时,向该终端设备返回相应的快速体验包索引信息,以及在接收到终端设备发送的包含差量文件的关键信息的请求时,向该终端设备返回相应的差量文件的索引信息。
7.一种软件更新装置,其中,该装置包括:
扫描处理单元,适于当满足预设条件时,获取指定软件的扫描库,并根据该扫描库对本地安装的指定软件进行扫描,确定对该指定软件进行更新所需要安装的补丁,以及从扫描库获取所需要安装的补丁的快速体验包的关键信息;
更新处理单元,适于根据快速体验包的关键信息下载相应的快速体验包,根据所下载的快速体验包确定对该指定软件进行更新所需要的差量文件的关键信息;以及适于根据所述差量文件的关键信息下载相应的差量文件,通过合并该指定软件的本地文件和所述差量文件得到完整的安装包,并进行安装。
8.如权利要求7所述的装置,其中,
所述扫描处理单元,适于从指定路径下载该指定软件的最新版本的全量扫描库;或者,从指定路径下载该指定软件的增量扫描库,并与本地的该指定软件的扫描库的进行合并。
9.一种软件更新数据发布系统,其中,该系统包括:发布服务器和分布式网络;
发布服务器,适于从指定软件的服务器获取该指定软件的更新数据;所述更新数据包括:扫描库、补丁的快速体验包、补丁的全量包和差量集合文件;适于将补丁的快速体验包、补丁的全量包和差量集合文件发布到分布式网络中供终端设备下载;以及适于将所述扫描库通过指定通道进行发布,所述扫描库中包含补丁的快速体验包的关键信息,从而使得终端设备获取扫描库并根据扫描库确定对其本地安装的指定软件进行更新所需要安装的补丁。
供终端设备进行下载。
10.如权利要求9所述的系统,其中,所述分布式网络包括:内容分发网络CDN和键值服务器集群系统;
所述发布服务器,适于将补丁的快速体验包、补丁的全量包和差量集合文件发布到内容分发网络CDN的各个节点上;计算补丁的快速体验包的索引信息,以及计算差量集合文件中的各差量文件的索引信息;将快速体验包的关键信息和索引信息对应保存到键值服务器集群系统中,以及将各差量文件的关键信息和索引信息对应保存到键值服务器集群系统中;
其中,
补丁的快速体验包的索引信息包括:快速体验包下载URL和快速体验包校验信息;
差量文件的索引信息包括:差量文件下载URL和差量文件校验信息。
CN201710179392.6A 2017-03-23 2017-03-23 一种软件更新方法、装置和软件更新数据发布方法、系统 Active CN106909427B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710179392.6A CN106909427B (zh) 2017-03-23 2017-03-23 一种软件更新方法、装置和软件更新数据发布方法、系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710179392.6A CN106909427B (zh) 2017-03-23 2017-03-23 一种软件更新方法、装置和软件更新数据发布方法、系统

Publications (2)

Publication Number Publication Date
CN106909427A true CN106909427A (zh) 2017-06-30
CN106909427B CN106909427B (zh) 2020-09-22

Family

ID=59195234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710179392.6A Active CN106909427B (zh) 2017-03-23 2017-03-23 一种软件更新方法、装置和软件更新数据发布方法、系统

Country Status (1)

Country Link
CN (1) CN106909427B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109257228A (zh) * 2018-10-25 2019-01-22 网宿科技股份有限公司 一种数据更新方法和边缘服务器
CN109918097A (zh) * 2017-12-12 2019-06-21 优信数享(北京)信息技术有限公司 一种二进制差量热更新的方法,装置及系统
CN111221559A (zh) * 2019-11-05 2020-06-02 北京达佳互联信息技术有限公司 应用更新方法、装置、存储介质、终端及服务器
CN111343217A (zh) * 2018-12-18 2020-06-26 阿里巴巴集团控股有限公司 资源数据下载方法、装置、终端设备及计算机存储介质
CN112764772A (zh) * 2019-11-06 2021-05-07 腾讯科技(深圳)有限公司 更新文件的预下载方法、加载方法、装置、设备及介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1735862A (zh) * 2003-12-15 2006-02-15 微软公司 用于更新网络化环境中的安装组件的系统和方法
CN1777867A (zh) * 2003-12-15 2006-05-24 微软公司 使用增量压缩打补丁更新文件的系统和方法
CN1790266A (zh) * 2004-12-14 2006-06-21 微软公司 用于下载更新的方法和系统
CN103634410A (zh) * 2013-12-12 2014-03-12 北京奇虎科技有限公司 基于内容分发网络cdn的数据同步方法,客户端及服务器
CN103745158A (zh) * 2014-01-26 2014-04-23 北京奇虎科技有限公司 修复系统漏洞的方法和装置
US8713555B1 (en) * 2007-06-21 2014-04-29 Open Invention Network, Llc Security patch update processor
CN103973475A (zh) * 2013-02-05 2014-08-06 腾讯科技(深圳)有限公司 差异补丁包生成方法及下载方法、服务器、客户端
CN104462975A (zh) * 2014-12-19 2015-03-25 北京奇虎科技有限公司 一种程序扫描方法、装置及系统
CN106293762A (zh) * 2016-08-17 2017-01-04 杭州迪普科技有限公司 一种实时更新虚拟补丁的方法和装置
CN106919843A (zh) * 2017-01-24 2017-07-04 北京奇虎科技有限公司 漏洞修复系统、方法及设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1735862A (zh) * 2003-12-15 2006-02-15 微软公司 用于更新网络化环境中的安装组件的系统和方法
CN1777867A (zh) * 2003-12-15 2006-05-24 微软公司 使用增量压缩打补丁更新文件的系统和方法
CN1790266A (zh) * 2004-12-14 2006-06-21 微软公司 用于下载更新的方法和系统
US8713555B1 (en) * 2007-06-21 2014-04-29 Open Invention Network, Llc Security patch update processor
CN103973475A (zh) * 2013-02-05 2014-08-06 腾讯科技(深圳)有限公司 差异补丁包生成方法及下载方法、服务器、客户端
CN103634410A (zh) * 2013-12-12 2014-03-12 北京奇虎科技有限公司 基于内容分发网络cdn的数据同步方法,客户端及服务器
CN103745158A (zh) * 2014-01-26 2014-04-23 北京奇虎科技有限公司 修复系统漏洞的方法和装置
CN104462975A (zh) * 2014-12-19 2015-03-25 北京奇虎科技有限公司 一种程序扫描方法、装置及系统
CN106293762A (zh) * 2016-08-17 2017-01-04 杭州迪普科技有限公司 一种实时更新虚拟补丁的方法和装置
CN106919843A (zh) * 2017-01-24 2017-07-04 北京奇虎科技有限公司 漏洞修复系统、方法及设备

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918097A (zh) * 2017-12-12 2019-06-21 优信数享(北京)信息技术有限公司 一种二进制差量热更新的方法,装置及系统
CN109257228A (zh) * 2018-10-25 2019-01-22 网宿科技股份有限公司 一种数据更新方法和边缘服务器
CN111343217A (zh) * 2018-12-18 2020-06-26 阿里巴巴集团控股有限公司 资源数据下载方法、装置、终端设备及计算机存储介质
CN111221559A (zh) * 2019-11-05 2020-06-02 北京达佳互联信息技术有限公司 应用更新方法、装置、存储介质、终端及服务器
CN111221559B (zh) * 2019-11-05 2024-05-14 北京达佳互联信息技术有限公司 应用更新方法、装置、存储介质、终端及服务器
CN112764772A (zh) * 2019-11-06 2021-05-07 腾讯科技(深圳)有限公司 更新文件的预下载方法、加载方法、装置、设备及介质
CN112764772B (zh) * 2019-11-06 2024-05-24 腾讯科技(深圳)有限公司 更新文件的预下载方法、加载方法、装置、设备及介质

Also Published As

Publication number Publication date
CN106909427B (zh) 2020-09-22

Similar Documents

Publication Publication Date Title
CN106909427A (zh) 一种软件更新方法、装置和软件更新数据发布方法、系统
CN106921731B (zh) 漏洞修复方法及装置
CN106919843B (zh) 漏洞修复系统、方法及设备
CN107896244B (zh) 一种版本文件的分发方法、客户端及服务器
CN106293811A (zh) 一种自动打包发布方法及装置
CN111090452B (zh) 服务环境的切换方法及计算机可读存储介质
CN102109989A (zh) 一种控制浏览器缓存的方法、装置和系统
CN105279436B (zh) 软件更新方法及系统
CN102541596A (zh) 一种操作系统升级方法及装置
CN110231956B (zh) 应用程序版本构建的方法、系统及装置
CN104699511B (zh) 插件升级方法及装置
CN106131612A (zh) 安卓app动态加载资源功能模块的方法及系统
CN106371881A (zh) 一种用于服务器内程序版本更新的方法和系统
CN108319554A (zh) 应用功能的测试方法、计算机可读存储介质和终端设备
CN105872842A (zh) 一种多桌面独立升级方法及装置
CN105553671B (zh) 一种数字证书的管理方法、装置及系统
CN106250548A (zh) 一种代码更新方法
CN106686073A (zh) 一种信息处理方法及系统
US9454361B2 (en) System and method of merging of objects from different replicas
CN110795495A (zh) 数据处理方法、装置、电子设备及计算机可读介质
CN112698852A (zh) App灰度升级方法、装置、终端设备及计算机可读存储介质
CN104407897A (zh) 一种程序智能升级的方法及系统
CN110874316B (zh) 扫描代码的方法、装置和系统
CN114880227B (zh) 一种应用于芯片领域的代码仓库管理方法及系统
CN107871021B (zh) 一种获得网页搜索关键字的标识特征的方法及装置

Legal Events

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