CN102868731B - 软件在线升级及加速下载的方法和装置 - Google Patents

软件在线升级及加速下载的方法和装置 Download PDF

Info

Publication number
CN102868731B
CN102868731B CN201210309118.3A CN201210309118A CN102868731B CN 102868731 B CN102868731 B CN 102868731B CN 201210309118 A CN201210309118 A CN 201210309118A CN 102868731 B CN102868731 B CN 102868731B
Authority
CN
China
Prior art keywords
client
version
file
upgrade
service apparatus
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
CN201210309118.3A
Other languages
English (en)
Other versions
CN102868731A (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.)
University of Jinan
Original Assignee
University of Jinan
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 University of Jinan filed Critical University of Jinan
Priority to CN201210309118.3A priority Critical patent/CN102868731B/zh
Publication of CN102868731A publication Critical patent/CN102868731A/zh
Application granted granted Critical
Publication of CN102868731B publication Critical patent/CN102868731B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种软件在线升级及加速下载的方法和装置。它包括:客户端在线升级进程装置、客户端共享守护进程装置、跟踪服务器装置、升级服务器代理装置、多个升级服务器装置,各升级服务器装置存储内容完全相同,并形成一个环队列的升级服务器池,各个升级服务器装置上的版本仓库执行版本控制的“同步”原语操作实现实时同步。该方法适用于客户端并发量大的情况,占用升级服务器资源小,减轻了升级服务器压力,提高了软件在线升级的效率和服务质量。

Description

软件在线升级及加速下载的方法和装置
技术领域
本发明涉及一种软件在线升级技术,尤其涉及一种软件在线升级及加速下载的方法和装置。
背景技术
软件升级主要是指通信设备在有新版本的软件可利用时,从软件任意老版本升级到新版本的过程,从而达到实现软件新功能或修正软件缺陷的目的。
现有实现中,软件在线升级方案主要是基于服务器式的自动升级,具体有以下几种方法:(1)基于增量更新包的升级方法。对每个软件版本提供增量升级包,该方法缺点是每次升级都需制作升级包,效率低下;(2)基于文件版本号的升级方法。该方法在升级过程中根据文件版本号来决定是否升级为新文件,其缺点是在服务器上需要手工维护文件版本列表;(3)基于文件修订日期的升级方法。该方法在升级过程中根据修订日期来决定是否升级为新文件,其缺点基于文件修订日期判定是否为新版本并不十分准确;(4)基于文件MD5信息摘要的升级方法。该方法是根据文件的MD5信息摘要来判定是否存在新版本,缺点是需要在服务器上维护一个文件MD5列表,且每次服务器上文件发生变动后,需要重新维护MD5列表,效率低下。
在进一步的实现中,现有技术存在代码版本控制的方法。代码版本控制能防止软件开发过程中意外的文件丢失、允许回滚到早期版本、并能对版本进行分支、合并和管理。在版本控制的基本框架中,版本仓库是数据集中的中央仓库,以典型的文件目录树方式来保存版本信息。每个用户可以连接到版本仓库,将版本仓库中指定版本文件目录树结构检出到本地,称作工作拷贝,对工作拷贝内的文件目录树进行修改,然后将本地工作拷贝检入到版本仓库,从而完成对版本仓库的修改。
综上,目前现有软件在线升级技术至少存在如下问题:(1)如何实现软件版本管理的自动化,减少软件升级的人为干预,使处于任意版本的软件自动升级为最新版本;(2)当发现新版本存在严重缺陷或导致软件部分功能不正常时,如何简单有效地回退到升级前版本或指定老版本,从而保证软件的稳定性、可靠性和兼容性;(3)当软件客户端升级并发量增加、升级文件数量和大小增大、服务压力负载严重情况下,如何保证客户端升级文件下载速度和成功率。
发明内容
本发明的目的就是为解决上述问题,提供一种软件在线升级及加速下载的方法和装置,软件在线升级方法和装置解决现有技术中软件在线升级文件的版本自动化管理问题,减少软件版本库的人为干预,保证软件可以由任意老版本升级到最新版本,同时提供软件回退的方法,当软件升级出现故障,保证软件升级后可以回退到之前任意老版本;文件下载加速方法和装置提供一种软件升级数据包下载加速方法和装置,用以保证软件升级过程中升级速度和成功率。
为实现上述目的,本发明采用如下技术方案:
一种软件在线升级及加速下载装置,它包括:
客户端在线升级进程装置,负责管理本地软件工作拷贝,并与升级服务器代理装置进行通讯及更新本地工作拷贝,本地工作拷贝的当前版本完整文件目录树作为点到点网络中的种子对等节点;
客户端共享守护进程装置,该进程负责将客户端作为对等节点加入到点到点网路,共享本地工作拷贝中最新版本的文件目录树;
跟踪服务器装置,用于接收客户端共享守护进程装置的请求,存储并实时维护各个点到点网络中的对等客户端工作拷贝当前版本号、客户端IP地址和端口;
升级服务器代理装置,按照负载均衡策略将每个到达升级服务器代理装置的请求按时间顺序分发给后端的升级服务器池中的一台升级服务器装置,同时采用加权轮询调度算法提供服务,保证请求分配的公平性和合理性;
多个升级服务器装置,每个升级服务器装置均用于存储和管理版本仓库中所有版本软件的文件目录树,同时向客户端提供获取指定版本文件文件目录树SHA1哈希值列表的服务,服务器内版本仓库中各个版本的完整文件目录树都作为点到点网络中的种子对等节点;各升级服务器装置存储内容完全相同,并形成一个环队列的升级服务器池,各个升级服务器装置上的版本仓库执行版本控制的“同步”原语操作实现实时同步。
所述客户端共享守护进程装置除了采用跟踪服务器装置获取点到点网络中对等客户端的信息,还支持在跟踪服务器装置负载较重或出现故障时,从分布式哈希表DHT网络中获取对等客户端的信息。
所述跟踪服务器装置支持的通讯协议包括HTTP/HTTPS协议和UDP协议。
所述升级服务器代理装置支持的通信协议包括HTTP WebDAV协议和SSH协议。
一种采用软件在线升级及加速下载装置的方法,具体工作过程为:
1)客户端共享守护进程装置负责将客户端加入到点到点网络,向跟踪服务器装置提交包含客户端本地软件的全球唯一标识符UUID、工作拷贝当前版本号、客户端IP地址和端口信息,同时对工作拷贝的当前版本文件目录树提供共享服务;
2)跟踪服务器装置接收客户端共享守护进程装置请求,存储并实时更新该软件UUID对应的点到点网络中客户端本地工作拷贝当前版本号、客户端IP地址和端口列表,并将此列表返回给客户端共享守护进程装置;
3)客户端共享守护进程装置实时与升级服务器代理装置进行通讯,升级服务器代理装置将请求按负载均衡策略分发给升级服务器池中的一台升级服务器装置,客户端共享守护进程装置获取该升级服务器装置版本仓库中所有版本软件的文件目录树SHA1哈希值并同步到本地,并将本地工作拷贝版本与升级服务器装置版本仓库版本进行比较,若发现升级服务器装置版本高于本地版本,向客户端在线升级进程装置推送升级提醒;
4)客户端在线升级进程装置发现新版本后,针对工作拷贝中的每个文件,与升级服务器代理装置进行通讯,得到本地工作拷贝中的软件文件目录树的几种状态信息;
5)当发现新版本存在严重缺陷或导致软件部分功能不正常,客户端在线升级进程装置对本地工作拷贝内文件目录树进行回退操作;若本地工作拷贝历史版本中存在回退后老版本,执行版本控制的“合并”原语操作,对文件目录树进行反向增量修改,达到软件版本回退功能;若本地工作拷贝历史版本中不存在回退后老版本,则执行版本控制的“更新”到指定版本原语操作,从升级服务器代理装置下载所需文件进行版本回退;
6)客户端共享守护进程装置从升级服务器代理装置下载文件采用单点多线程和多点下载方式进行加速;
7)客户端共享守护进程装置首先根据检测出的软件新版本版本号和本软件UUID,去跟踪服务器装置进行查询,获得拥有该软件新版本号的点到点网络对等客户端列表;客户端在线升级进程装置尝试与这些对等客户端建立连接,并请求下载文件;下载成功后,客户端在线升级进程装置需要检测该文件的文件目录树SHA1哈希值,若与升级服务器装置版本仓库该版本文件的SHA1哈希值一致,则表示下载成功,否则表示下载失败,客户端在线升级进程装置需要再次更换对等客户端或向升级服务器代理装置请求下载相应文件。
为降低跟踪服务器装置请求压力,引入分布式哈希表DHT网络,在不需要跟踪服务器装置的情况下,每个客户端负责一个小范围路由列表,并存储一部分版本号数据,从而实现整个DHT网络的寻址和存储;在客户端完全连接不上跟踪服务器装置和升级服务器装置的情况下,仍能从点到点网络中对等客户端下载所需文件。
所述步骤4)中,不同状态信息为:
若状态为未修改且为最新,说明该文件已是最新版本,不需要进行任何处理;
若状态为本地忽略,说明该文件不参与升级,则执行版本控制的“忽略”原语操作,跳过该文件检测;
若文件为已修改且过期,说明文件存在新版本,而且本地文件被人为修改,此时会产生告警推送给管理人员;该情况通常是客户端本地软件非法修改造成的;
若状态为未修改且过期,说明该文件存在新版本,从升级服务器装置的版本仓库中下载该文件,覆盖本地相应文件,执行版本控制的“更新”原语操作,完成该文件的升级;
若状态为本地工作拷贝不存在,说明该文件为新增文件,则需要执行版本控制的“检出”原语操作,从升级服务器装置的版本仓库中下载该文件。
所述步骤6)中,加速过程为:首先,客户端在线升级进程装置通过升级服务器代理装置从升级服务器池中的一台升级服务器装置按照多线程下载方式获取下载文件;其次,在下载同时,客户端在线升级进程装置共享本地工作拷贝当前版本,为点到点网络中的对等客户端提供上传服务,从而加速文件下载。
本发明的有益效果是:不需要在升级服务器装置人工维护升级文件版本信息,不需要升级服务器装置指导客户端如何操作,通过代码版本控制的“检出”、“更新”、“忽略”、“合并”和“回滚”等原语操作,自动实现软件在线升级、个性化文件防更新以及软件升级回退。该方法不依赖客户端已有功能,并能保证在出现问题后客户端回退到之前任意版本。本发明实施例提供的文件加速下载方法和装置,一方面,客户端通过跟踪服务器装置或DHT网络实现点到点网络中的对等客户端工作拷贝共享,各客户端在对等客户端上下载所需文件的同时又提供共享上传服务;另一方面,提供升级服务器代理装置和升级服务器池,通过负载均衡策略分担升级服务器装置的压力,从这两方面达到加速下载的目标。该方法适用于客户端并发量大的情况,占用升级服务器装置资源小,减轻了升级服务器装置压力,提高了软件在线升级的效率和服务质量。
附图说明
图1为本发明软件在线升级方法中获取对等客户端的流程示意图。
图2为本发明软件在线升级方法和装置实施例的流程示意图。
图3为本发明软件数据包下载加速方法和装置实施例的流程示意图。
图4为软件在线升级方法实施例的结构示意图。
图5为本发明软件在线升级软件回退实施例流程示意图。
图6为本发明软件升级方法实施例跟踪服务器装置支持的通信协议。
图7为本发明软件升级方法实施例升级服务器代理装置支持的通信协议。
具体实施方式
下面结合附图与实施例对本发明做进一步说明。
一种软件在线升级及加速下载装置,它包括:
客户端在线升级进程装置,负责管理本地软件工作拷贝,并与升级服务器代理装置进行通讯及更新本地工作拷贝,本地工作拷贝的当前版本完整文件目录树作为点到点网络中的种子对等节点;
客户端共享守护进程装置,该进程负责将客户端作为对等节点加入到点到点网路,共享本地工作拷贝中最新版本的文件目录树;
跟踪服务器装置,用于接收客户端共享守护进程装置的请求,存储并实时维护各个点到点网络中的对等客户端工作拷贝当前版本号、客户端IP地址和端口;
升级服务器代理装置,按照负载均衡策略将每个到达升级服务器代理装置的请求按时间顺序分发给后端的升级服务器池中的一台升级服务器装置,同时采用加权轮询调度算法提供服务,保证请求分配的公平性和合理性;
多个升级服务器装置,每个升级服务器装置均用于存储和管理版本仓库中所有版本软件的文件目录树,同时向客户端提供获取指定版本文件文件目录树SHA1哈希值列表的服务,服务器内版本仓库中各个版本的完整文件目录树都作为点到点网络中的种子对等节点;各升级服务器装置存储内容完全相同,并形成一个环队列的升级服务器池,各个升级服务器装置上的版本仓库执行版本控制的“同步”原语操作实现实时同步。
所述客户端共享守护进程装置除了采用跟踪服务器装置获取点到点网络中对等客户端的信息,还支持在跟踪服务器装置负载较重或出现故障时,从分布式哈希表DHT网络中获取对等客户端的信息。
所述跟踪服务器装置支持的通讯协议包括HTTP/HTTPS协议和UDP协议。
所述升级服务器代理装置支持的通信协议包括HTTP WebDAV协议和SSH协议。
图1为本发明软件在线升级方法中获取对等客户端实施例的流程示意图,如图1所示。该方法包括:
步骤100,客户端共享守护进程装置向跟踪服务器装置发送请求,提交客户端本地软件UUID、工作拷贝当前版本号、客户端IP地址和端口信息。
步骤101,跟踪服务器装置响应客户端共享守护进程装置,返回请求软件的所有对等客户端工作拷贝当前版本号、对等客户端IP地址和端口列表。
在上述实施例中,客户端共享守护进程装置获取点到点网络中对等客户端除了采用跟踪服务器装置外,还支持在跟踪服务器装置负载较重或出现故障时,从DHT网络中获取该信息,具体为步骤102。
步骤102,客户端共享守护进程通过DHT网络寻找点到点网络中可用的对等客户端信息,该步骤作为步骤101的补充。
图2为本发明软件在线升级方法中在线升级的流程示意图,如图2所示。该方法包括:
步骤110,客户端共享守护进程向升级服务器代理装置发出请求,获取该软件在升级服务器代理装置版本仓库中所有版本文件目录树的SHA1哈希值,并同步到本地。为了实现实时获取,该步骤在较短时间间隔内定时执行。
步骤111,客户端共享守护进程装置对比本地工作拷贝当前版本与升级服务器装置版本仓库最新版本,若发现升级服务器装置版本高于本地版本,则向客户端共享守护进程装置推送升级提醒。
步骤112,客户端共享守护进程装置与升级服务器代理装置进行通讯,获取本地工作拷贝中的软件文件目录树状态。
步骤113,状态为未修改且为最新。
步骤114,执行版本控制的“空”操作,不需要进行升级。
步骤115,状态为本地忽略。
步骤116,执行版本控制的“忽略”原语操作,跳过该文件检测。
步骤117,状态为未修改且过期的。
步骤118,执行版本控制的“更新”原语操作,从升级服务器装置版本仓库中下载该文件,替换原有文件,完成文件修订。
步骤119,状态为本地工作拷贝不存在。
步骤120,执行版本控制的“检出”原语操作,从升级服务器装置版本仓库中下载该文件。
步骤121,文件为已修改且过期,本地软件文件被人为修改,通常情况下是由本地文件被破坏引起的。
步骤122,产生告警推送给管理人员。
步骤123,客户端在线升级进程装置采用加速方式从升级服务器代理装置下载文件。
步骤124,对下载的文件进行校验计算SHA1哈希值。若此哈希值与升级服务器装置版本仓库中对应版本的文件相同,表示下载成功。
步骤125,若此SHA1哈希值与升级服务器装置版本仓库中对应版本的文件不同,说明下载文件校验失败,需要再次进行多点下载或从升级服务器代理装置进行多线程下载。
步骤126:判断本地工作拷贝的文件目录树中是否存在下一个未处理文件或目录。若存在,则处理下一个文件或目录,否则结束在线升级过程。
图3为本发明软件数据包下载加速方法和装置的流程示意图,是对上述在线升级实施例步骤123的细化,如图3所示。该方法包括:
步骤131:客户端在线升级进程装置选择下载加速方式,判断下载方式为单点多线程下载或多点下载。
步骤132,若采用多线程下载,客户端在线升级进程装置与升级服务器代理装置进行通讯,按照负载均衡策略与后端的升级服务器装置池中的升级服务器装置进行连接。
步骤133,客户端在线升级进程装置从升级服务器代理装置后端的具体升级服务器装置中采用多线程方式下载所需文件。
在上述在线升级实施例中,同时支持单点多线程下载与多点下载。单点多线程下载流程为步骤132、133,多点下载步骤为134、135替换上述步骤132、133,具体为:
步骤134,执行获取对等客户端实施例流程,获取到与更新后版本相同的对等客户端列表。
步骤135,客户端在线升级进程装置尝试连接列表中的对等客户端,从工作拷贝中下载所需文件。
图4为本发明软件在线升级方法实施例的结构示意图,如图4所示。该软件在线升级系统包括处于点到点网络中的数个客户端在线升级进程装置和客户端共享守护进程装置、升级服务器代理装置、跟踪服务器装置和DHT网络。其中,客户端在线升级进程装置用于同步升级服务器装置版本仓库中所有版本文件目录树SHA1哈希值到本地,通过与升级服务器代理装置通讯下载所需文件;客户端共享守护进程装置负责与跟踪服务器装置或DHT网络进行通讯,提供客户端本地软件UUID、工作拷贝版本号、客户端IP地址和端口等信息,发现点到点网络中的对等客户端;跟踪服务器装置用于提供特定软件的所有对等客户端信息列表查询服务,辅助客户端发现对等客户端;DHT网络提供了客户端发现的另一种机制,当跟踪服务器装置瘫痪的情况下,保证系统运转正常;升级服务器代理装置是升级服务器装置池的前端,负责将对升级请求按负载均衡原则分发给服务器池后端的升级服务器装置。在线升级服务器代理装置后端包括升级服务器池和多个升级服务器装置。升级服务器代理装置在接收到客户端在线升级请求后,按照负载均衡策略分发给服务器池中的一台升级服务器装置,并从这台升级服务器装置上采用多线程方式下载所需文件。
图5为本发明软件在线升级软件回退实施例流程示意图,如图5所示。该方法包括:
步骤141,客户端在线升级进程装置向升级服务器代理装置发出软件回退到指定版本的请求。
步骤142,客户端在线升级进程装置检测回退后版本号是否低于当前工作拷贝版本号。
步骤143,若回退后版本号低于当前工作拷贝当前版本号,说明可以进行回退。此时检测回退后的版本是否存在于本地工作拷贝历史版本中。
步骤144,若回退后的版本存在于本地工作拷贝历史版本中,执行版本控制的“回滚”到指定版本原语操作,完成该文件回退。
步骤145,若回退后的版本不在本地工作拷贝历史版本中,从升级服务器代理装置中下载所需文件。
步骤146,执行版本控制的“更新”到指定版本原语操作,完成该文件的更新,从而实现文件回退。
步骤147,若本地工作拷贝中还存在未处理文件或目录,则处理下一个,否则结束软件回退。
图6为本发明软件升级方法实施例跟踪服务器装置支持的通信协议,用于客户端共享守护进程装置与跟踪服务器装置通讯,发现点到点网络中的对等客户端,其支持的通讯协议包括HTTP/HTTPS协议和UDP协议。HTTP/HTTPS协议在传输层上是一种有状态的TCP协议,采取请求与应答方式完成客户端共享守护进程装置与跟踪服务器装置的通讯,具有较好的连接穿透能力,一般不会被防火墙所屏蔽;UDP协议作为HTTP协议的补充,其占用带宽不到HTTP协议的50%,并且UDP是无状态的,不会受到路由器所处理的TCP连接总数的限制。
图7为本发明软件升级方法实施例升级服务器代理装置支持的通信协议,用于客户端在线升级进程装置与升级服务器代理装置之间通讯,包括HTTP WebDAV协议和SSH协议。HTTPWebDAV协议扩展了HTTP1.1协议,使得在线升级客户端进程通过升级服务器代理装置直接对升级服务器进行读写,支持文件锁定、解锁以及版本控制;而SSH协议提供了一种版本控制协议传输的封装方式,该协议可靠、安全,对传输数据进行压缩和加密,防止DNS和IP欺骗,为在线升级客户端进程与升级服务器代理通信提供了一个安全的隧道。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。

Claims (7)

1.一种软件在线升级及加速下载装置,其特征是,它包括:
客户端在线升级进程装置,负责管理本地软件工作拷贝,并与升级服务器代理装置进行通讯及更新本地工作拷贝,本地工作拷贝的当前版本完整文件目录树作为点到点网络中的种子对等节点;
客户端共享守护进程装置,负责将客户端作为对等节点加入点到点网路,共享本地工作拷贝中最新版本的文件目录树;
跟踪服务器装置,用于接收客户端共享守护进程装置的请求,存储并实时维护各个点到点网络中的对等客户端工作拷贝当前版本号、客户端IP地址和端口;
升级服务器代理装置,按照负载均衡策略将每个到达升级服务器代理装置的请求按时间顺序分发给后端的升级服务器池中的一台升级服务器装置,同时采用加权轮询调度算法提供服务,保证请求分配的公平性和合理性;
多个升级服务器装置,每个升级服务器装置均用于存储和管理版本仓库中所有版本软件的文件目录树,同时向客户端提供获取指定版本文件文件目录树SHA1哈希值列表的服务,服务器内版本仓库中各个版本的完整文件目录树都作为点到点网络中的种子对等节点;各升级服务器装置存储内容完全相同,并形成一个环队列的升级服务器池,各个升级服务器装置上的版本仓库执行版本控制的“同步”原语操作实现实时同步。
2.如权利要求1所述的软件在线升级及加速下载装置,其特征是,所述客户端共享守护进程装置除了采用跟踪服务器装置获取点到点网络中对等客户端的信息,还支持在跟踪服务器装置负载较重或出现故障时,从分布式哈希表DHT网络中获取对等客户端的信息。
3.如权利要求1所述的软件在线升级及加速下载装置,其特征是,所述跟踪服务器装置支持的通讯协议包括HTTP/HTTPS协议和UDP协议。
4.如权利要求1所述的软件在线升级及加速下载装置,其特征是,所述升级服务器代理装置支持的通信协议包括HTTP WebDAV协议和SSH协议。
5.一种采用权利要求1或2或3或4所述的软件在线升级及加速下载装置的方法,其特征是,具体工作过程为:
1)客户端共享守护进程装置负责将客户端加入点到点网络,向跟踪服务器装置提交包含客户端本地软件的全球唯一标识符UUID、工作拷贝当前版本号、客户端IP地址和端口信息,同时对工作拷贝的当前版本文件目录树提供共享服务;
2)跟踪服务器装置接收客户端共享守护进程装置请求,存储并实时更新该软件UUID对应的点到点网络中客户端本地工作拷贝当前版本号、客户端IP地址和端口列表,并将此列表返回给客户端共享守护进程装置;
3)客户端共享守护进程装置实时与升级服务器代理装置进行通讯,升级服务器代理装置将请求按负载均衡策略分发给升级服务器池中的一台升级服务器装置,客户端共享守护进程装置获取该升级服务器装置版本仓库中所有版本软件的文件目录树SHA1哈希值并同步到本地,并将本地工作拷贝版本与升级服务器装置版本仓库版本进行比较,若发现升级服务器装置版本高于本地版本,向客户端在线升级进程装置推送升级提醒;
4)客户端在线升级进程装置发现新版本后,针对工作拷贝中的每个文件,与升级服务器代理装置进行通讯,得到本地工作拷贝中的软件文件目录树的几种状态信息:
若状态为未修改且为最新,说明该文件已是最新版本,不需要进行任何处理;
若状态为本地忽略,说明该文件不参与升级,则执行版本控制的“忽略”原语操作,跳过该文件检测;
若文件为已修改且过期,说明文件存在新版本,而且本地文件被人为修改,此时会产生告警推送给管理人员;该情况通常是客户端本地软件非法修改造成的;
若状态为未修改且过期,说明该文件存在新版本,从升级服务器装置的版本仓库中下载该文件,覆盖本地相应文件,执行版本控制的“更新”原语操作,完成该文件的升级;
若状态为本地工作拷贝不存在,说明该文件为新增文件,则需要执行版本控制的“检出”原语操作,从升级服务器装置的版本仓库中下载该文件;
5)当发现新版本存在严重缺陷或导致软件部分功能不正常,客户端在线升级进程装置对本地工作拷贝内文件目录树进行回退操作;若本地工作拷贝历史版本中存在回退后老版本,执行版本控制的“合并”原语操作,对文件目录树进行反向增量修改,达到软件版本回退功能;若本地工作拷贝历史版本中不存在回退后老版本,则执行版本控制的“更新”到指定版本原语操作,从升级服务器代理装置下载所需文件进行版本回退;
6)客户端共享守护进程装置从升级服务器代理装置下载文件采用单点多线程和多点下载方式进行加速;
7)客户端共享守护进程装置首先根据检测出的软件新版本版本号和本软件UUID,去跟踪服务器装置进行查询,获得拥有该软件新版本号的点到点网络对等客户端列表;客户端在线升级进程装置尝试与这些对等客户端建立连接,并请求下载文件;下载成功后,客户端在线升级进程装置需要检测该文件的文件目录树SHA1哈希值,若与升级服务器装置版本仓库该版本文件的SHA1哈希值一致,则表示下载成功,否则表示下载失败,客户端在线升级进程装置需要再次更换对等客户端或向升级服务器代理装置请求下载相应文件。
6.如权利要求5所述的方法,其特征是,为降低跟踪服务器装置请求压力,引入分布式哈希表DHT网络,在不需要跟踪服务器装置的情况下,每个客户端负责一个小范围路由列表,并存储一部分版本号数据,从而实现整个分布式哈希表DHT网络的寻址和存储;在客户端完全连接不上跟踪服务器装置和升级服务器装置的情况下,仍能从点到点网络中对等客户端下载所需文件。
7.如权利要求5所述的方法,其特征是,所述步骤6)中,加速过程为:首先,客户端在线升级进程装置通过升级服务器代理装置从升级服务器池中的一台升级服务器装置按照多线程下载方式获取下载文件;其次,在下载同时,客户端在线升级进程装置共享本地工作拷贝当前版本,为点到点网络中的对等客户端提供上传服务,从而加速文件下载。
CN201210309118.3A 2012-08-27 2012-08-27 软件在线升级及加速下载的方法和装置 Active CN102868731B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210309118.3A CN102868731B (zh) 2012-08-27 2012-08-27 软件在线升级及加速下载的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210309118.3A CN102868731B (zh) 2012-08-27 2012-08-27 软件在线升级及加速下载的方法和装置

Publications (2)

Publication Number Publication Date
CN102868731A CN102868731A (zh) 2013-01-09
CN102868731B true CN102868731B (zh) 2014-12-17

Family

ID=47447317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210309118.3A Active CN102868731B (zh) 2012-08-27 2012-08-27 软件在线升级及加速下载的方法和装置

Country Status (1)

Country Link
CN (1) CN102868731B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104219271B (zh) * 2013-06-05 2017-10-27 北京齐尔布莱特科技有限公司 基于多线程异步下载页面的多服务器同步方法
CN103729454A (zh) * 2014-01-03 2014-04-16 北京数码大方科技股份有限公司 三维文件处理方法和装置
CN104050282B (zh) * 2014-06-27 2017-08-01 北京思特奇信息技术股份有限公司 资源文件更新方法及装置
CN104239098A (zh) * 2014-09-09 2014-12-24 北京金山安全软件有限公司 软件的自动升级方法、装置及移动终端
CN105468395B (zh) * 2014-09-10 2019-11-05 阿里巴巴集团控股有限公司 更新方法、装置及系统
CN107453994A (zh) * 2016-05-30 2017-12-08 北京信威通信技术股份有限公司 基于dht网络的数据传输方法及装置
CN107634975A (zh) * 2016-07-18 2018-01-26 中兴通讯股份有限公司 一种数据同步方法、设备和系统
CN109691060B (zh) * 2016-11-17 2021-01-29 华为技术有限公司 电子设备、软件发放服务器及其方法
CN106685723A (zh) * 2017-01-03 2017-05-17 深圳国人通信股份有限公司 一种嵌入式网络设备的远程升级方法及系统
CN107329874A (zh) * 2017-05-25 2017-11-07 云南思普投资有限公司 一种准确稳定的系统监视器
CN107659458B (zh) * 2017-11-02 2021-04-13 广东亿迅科技有限公司 基于git版本控制的Agent部署升级方法及系统
CN109766131B (zh) * 2017-11-06 2022-04-01 上海宝信软件股份有限公司 基于多线程技术实现软件智能化自动升级的系统及方法
CN108241517B (zh) * 2018-02-23 2021-02-02 武汉斗鱼网络科技有限公司 一种软件升级方法、客户端及电子设备
CN109828768A (zh) * 2018-12-21 2019-05-31 福建新大陆支付技术有限公司 一种软件补丁的管理方法及系统
CN109901860B (zh) * 2019-02-21 2022-07-01 华数传媒网络有限公司 一种Android手机软件版本控制方法
CN111190915B (zh) * 2020-01-02 2023-05-16 腾讯科技(深圳)有限公司 一种道具标识或角色标识的确定方法、服务器及存储介质
CN111309366B (zh) * 2020-02-19 2023-06-30 北京字节跳动网络技术有限公司 一种管理注册核心的方法、装置、介质和电子设备
CN111327705A (zh) * 2020-03-02 2020-06-23 深圳前海达闼云端智能科技有限公司 软件下载方法及LwM2M系统
CN113612837B (zh) * 2021-07-30 2023-08-08 杭州朗和科技有限公司 数据处理方法、装置、介质和计算设备
CN114666311A (zh) * 2022-03-25 2022-06-24 深圳海星智驾科技有限公司 一种工程机械、工程机械软件升级方法及装置
CN114675852A (zh) * 2022-05-26 2022-06-28 青岛美迪康数字工程有限公司 一种医疗软件安装系统及方法
CN116521202B (zh) * 2023-05-04 2023-11-07 浙江大学 一种面向规模化远程零部件固件自动化升级的方法及装置
CN117093315B (zh) * 2023-10-11 2024-03-15 荣耀终端有限公司 一种升级内容显示方法、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101631143A (zh) * 2009-08-27 2010-01-20 中兴通讯股份有限公司 负载均衡环境中多服务器系统及其文件传输方法
CN101795203A (zh) * 2009-02-03 2010-08-04 华为软件技术有限公司 软件升级数据包的下载方法和装置
CN102025778A (zh) * 2010-11-25 2011-04-20 成都勤智数码科技有限公司 一种基于Shell的软件版本升级工作方法
CN102065110A (zh) * 2009-11-12 2011-05-18 钟惠波 一种基于p2sp的客户端软件在线升级的方法和系统
CN102377821A (zh) * 2011-10-17 2012-03-14 邦讯技术股份有限公司 网络终端设备的版本智能更新方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101795203A (zh) * 2009-02-03 2010-08-04 华为软件技术有限公司 软件升级数据包的下载方法和装置
CN101631143A (zh) * 2009-08-27 2010-01-20 中兴通讯股份有限公司 负载均衡环境中多服务器系统及其文件传输方法
CN102065110A (zh) * 2009-11-12 2011-05-18 钟惠波 一种基于p2sp的客户端软件在线升级的方法和系统
CN102025778A (zh) * 2010-11-25 2011-04-20 成都勤智数码科技有限公司 一种基于Shell的软件版本升级工作方法
CN102377821A (zh) * 2011-10-17 2012-03-14 邦讯技术股份有限公司 网络终端设备的版本智能更新方法和装置

Also Published As

Publication number Publication date
CN102868731A (zh) 2013-01-09

Similar Documents

Publication Publication Date Title
CN102868731B (zh) 软件在线升级及加速下载的方法和装置
CN102945175A (zh) 一种基于云计算环境的终端软件在线升级系统及其方法
US9934020B2 (en) Intelligent mobile application update
CN107819802A (zh) 一种在节点集群中的镜像获取方法、节点设备及服务器
US20160266890A1 (en) Intelligent mobile application update
EP3242463B1 (en) Content distribution method and system for mobile terminal application
CN103019757A (zh) 一种在多台客户端间同步软件的方法、装置及系统
CN104219329A (zh) 一种集群服务器中通过内容分发部署业务的方法
WO2015164026A1 (en) Enabling planned upgrade/downgrade of network devices without impacting network sessions
CN103678319A (zh) 资源文件更新方法、装置和系统及服务器
CN107294785B (zh) Cdn节点服务的自动部署方法及装置、计算机可读存储介质
CN111327697B (zh) 一种数据下载方法、装置、设备及存储介质
KR101528210B1 (ko) 소프트웨어 다운로드 방법 및 장치
CN102761599A (zh) 一种分布式系统中升级文件分发方法
CN101621398A (zh) 客户/服务器系统及其多个客户端自动同步配置的方法
CN109992291A (zh) 一种终端软件升级方法、装置、系统以及存储介质
EP4050850A1 (en) Service upgrading method, device and system
CN102647436A (zh) 一种基于点对点的文件发布方法及系统
CN107483241A (zh) 一种在网元升级过程中下载升级镜像版本的方法和装置
CN101175001A (zh) 一种分布式多程序产品自动更新系统及方法
US9846622B1 (en) Parallel computer system recovery
US9742884B2 (en) Retry mechanism for data loading from on-premise datasource to cloud
CN112052023A (zh) 一种智能终端升级策略管理方法
CN104298757B (zh) 一种兼容多版本移动客户端及数据库的方法及系统
US10387265B1 (en) Preventive hash loading

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant