CN109117166B - 快速扩容的软件升级方法 - Google Patents

快速扩容的软件升级方法 Download PDF

Info

Publication number
CN109117166B
CN109117166B CN201811366164.0A CN201811366164A CN109117166B CN 109117166 B CN109117166 B CN 109117166B CN 201811366164 A CN201811366164 A CN 201811366164A CN 109117166 B CN109117166 B CN 109117166B
Authority
CN
China
Prior art keywords
server
index file
software
target
updated
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
CN201811366164.0A
Other languages
English (en)
Other versions
CN109117166A (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.)
Chongqing Huijiatong Information Technology Co ltd
Original Assignee
Chongqing Huijiatong Information 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 Chongqing Huijiatong Information Technology Co ltd filed Critical Chongqing Huijiatong Information Technology Co ltd
Priority to CN201811366164.0A priority Critical patent/CN109117166B/zh
Publication of CN109117166A publication Critical patent/CN109117166A/zh
Application granted granted Critical
Publication of CN109117166B publication Critical patent/CN109117166B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake

Landscapes

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

Abstract

本发明提供一种快速扩容的软件升级方法,包括:待更新设备被周期性唤醒后,根据本地索引文件中的服务器地址,从对应软件更新服务器中下载目标索引文件,判断本地索引文件与目标索引文件中的服务器地址是否相同,若相同,则根据本地索引文件中的设备型号,从目标索引文件中查找到对应的软件版本号,从本地索引文件中服务器地址对应的服务器中下载对应的软件升级包;否则,将目标索引文件中服务器地址对应的服务器作为目标服务器,从目标服务器中下载扩容索引文件,将本地索引文件中的服务器地址替换成目标索引文件中的服务器地址,根据本地索引文件中的设备型号,从扩容索引文件中查找到对应的软件版本号,从目标服务器下载对应的软件升级包。

Description

快速扩容的软件升级方法
技术领域
本发明属于计算机/IT领域,具体涉及一种快速扩容的软件升级方法。
背景技术
在计算机领域,对于已经安装的软件,经常需要对其进行升级,常用的升级方法有两种:第一种,待更新设备与软件更新服务器建立通信连接后,服务器向待更新设备主动推送更新提醒,待更新设备在收到更新提醒后可下载更新包完成软件升级;第二种,待更新设备定时主动向服务器查询是否有更新,如果有更新,则下载更新包完成软件升级,如果没有更新,则完成查询。第一种方式要求服务器要始终可以访问到待更新设备,这种方式对应用场景有限制:要么是在同一个网络内部(不能有NAT),要么需要建立服务器和待更新设备的长连接,否则服务器无法发送更新消息给待更新设备。当待更新设备的数量很大时,还会产生并发访问服务器的情况。第二种方式虽然对应用场景没有限制,但是待更新设备同时访问软件更新服务器会造成服务器瞬间的高负载,如果继续进行软件更新发生,还会有持续的高负载发生。通常解决类似高并发的问题是通过负载分担服务器来完成,前端部署一个高性能的负载分担服务器,后端部署若干台业务处理服务器。这种解决方案很经典,但是部署成本和技术难度也较高,对于一个业务刚起步,又有扩展需求的小型企业来说成本和门槛都太高。
发明内容
本发明提供一种基于快速扩容的软件升级方法,以解决目前软件升级负载分担方式成本和技术难度较高的问题。
根据本发明实施例的第一方面,提供一种快速扩容的软件升级方法,包括:待更新设备的升级任务被周期性唤醒后,根据本地索引文件中的服务器地址,从对应软件更新服务器中下载目标索引文件;
在所述目标索引文件下载成功后,所述待更新设备将所述本地索引文件中的服务器地址与所述目标索引文件中的服务器地址进行比较,若相同,则将所述本地索引文件中服务器地址对应的软件更新服务器作为目标服务器,根据所述本地索引文件中的设备型号,从所述目标索引文件中查找到对应的软件版本号,从对应目标服务器中下载对应的软件升级包进行软件升级;
若不相同,则将所述目标索引文件中服务器地址对应的软件更新服务器作为目标服务器,从对应目标服务器中下载扩容索引文件;在所述扩容索引文件下载成功后,所述待更新设备将所述本地索引文件中的服务器地址替换成所述目标索引文件中的服务器地址,并根据所述本地索引文件中的设备型号,从所述扩容索引文件中查找到对应的软件版本号,从对应目标服务器中下载对应的软件升级包进行软件升级。
在一种可选的实现方式中,在本地索引文件中配置有唤醒周期,值域为10至1440分钟,所述待更新设备被唤醒的时间为:N×唤醒周期+随机数,N为整数,随机数为随机生成的0至唤醒周期之间的任意整数,所述待更新设备被唤醒的时间是24小时制,精确到分钟,值域为:00:00至23:59。
在另一种可选的实现方式中,所述目标索引文件和扩容索引文件中配置有唤醒周期,若所述本地索引文件中的服务器地址与所述目标索引文件中的服务器地址相同,则所述待更新设备将所述本地索引文件和所述目标索引文件中的唤醒周期进行比较,若相同,则不更新唤醒周期,若不相同,则将所述本地索引文件中的唤醒周期替换为所述目标索引文件中的唤醒周期;
若所述本地索引文件中的服务器地址与所述目标索引文件中的服务器地址不相同,则所述待更新设备在所述扩容索引文件下载成功后,将所述本地索引文件和所述扩容索引文件中的唤醒周期进行比较,若相同,则不更新唤醒周期,若不相同,则将所述本地索引文件中的唤醒周期替换为所述扩容索引文件中的唤醒周期。
在另一种可选的实现方式中,根据唤醒周期可影响目标服务器的负载情况以及软件更新的及时性;对所述唤醒周期进行调节,其中唤醒周期越大,各个待更新设备并发访问目标服务器的概率越小,目标服务器的负载较小,同时软件更新的及时性降低。
在另一种可选的实现方式中,在所述目标索引文件下载失败时,所述待更新设备的升级任务进入空闲状态,等待下一次被唤醒;在所述扩容索引文件下载失败时,所述待更新设备将所述本地索引文件中服务器地址对应的软件更新服务器作为目标服务器,根据所述本地索引文件中的设备型号,从所述目标索引文件中查找到对应的软件版本号,从而从对应目标服务器中下载对应的软件升级包进行软件升级。
在另一种可选的实现方式中,在从对应目标服务器中下载对应的软件升级包进行软件升级之前,还包括:
判断所述本地索引文件中的软件版本号与查找到的软件版本号是否相同,若相同,则不进行升级,所述升级任务进入空闲状态,等待下一次被唤醒;若不相同,则从对应目标服务器中下载对应的软件升级包进行软件升级;
在从对应目标服务器中下载对应的软件升级包进行软件升级之后,还包括:更新所述本地索引文件中的软件版本号。
在另一种可选的实现方式中,所述软件更新服务器在唤醒周期到时,进入下一唤醒周期之前,将所述目标索引文件中的服务器地址恢复为其自身的服务器地址。
在另一种可选的实现方式中,基于服务器负载情况,在唤醒周期内的指定时间段,通过更改所述软件更新服务器中目标索引文件的服务器地址,使访问所述软件更新服务器的对应部分待更新设备从所述软件更新服务器迁移到对应目标服务器上,从而进行软件升级。
在另一种可选的实现方式中,所述待更新设备在从对应目标服务器中下载对应的软件升级包进行软件升级时,还向对应目标服务器上传其设备唯一标识,以便所述目标服务器记录对应待更新设备的更新时间以及本次更新的软件版本号。
在另一种可选的实现方式中,所述目标服务器将其记录的各个待更新设备的设备型号、软件版本号上传给根服务器,所述根服务器根据各个目标服务器记录的待更新设备的设备型号、软件版本号,对各个目标服务器的负载情况进行统计,并根据统计出的负载情况,对目标服务器的增减进行调整;
所述根服务器还用于统一将软件升级包下发给各个目标服务器,并对其自身和各个目标服务器的索引文件中的目标服务器地址、唤醒周期、所有设备型号以及与之对应的软件版本号中的至少一项进行更改;所述根服务器在整个系统中是唯一的,它的地址是待更新设备出厂预置的本地索引文件中的缺省的服务器地址。
本发明的有益效果是:
本发明前期成本投入较少,后期随着业务的发展可实现平滑扩容,当业务没有开展起来时,只需要投入根服务器来支持软件升级,当根服务器的性能不能满足升级要求时,可以创建新的软件更新服务器,将现有根服务器上的升级业务迁移到新服务器上,仍旧用根服务器做新上线设备的升级服务器,以此平滑地扩大系统升级业务的处理能力;本发明提供唤醒周期配置功能,通过调整唤醒周期,可以微调对服务器的负载;周期大些,再加上随机数的贡献,设备并发访问服务器的概率小些,服务器并发处理的负载低些;同时唤醒周期最大值1440的限制又能保证所有设备在更新软件包上线后一天内都能够完成升级;本发明除了安装新的软件更新服务器外,所有的软件包的管理、更新软件服务器的配置、业务迁移等都是通过根服务器来完成的,降低了软件维护的难度,同时可以从根服务器查看所有软件更新服务器的负载情况、设备在线情况。
附图说明
图1是本发明快速扩容的软件升级方法所应用系统的一个实施例结构图;
图2是本发明快速扩容的软件升级方法的一个实施例流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
在本发明的描述中,除非另有规定和限定,需要说明的是,术语“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
参见图1所示,为本发明快速扩容的软件升级方法所应用系统的一个实施例结构图。该系统可以包括软件更新服务器和待更新设备,在各个软件更新服务器中都配置有对应的索引文件,每个索引文件中都包括服务器地址、唤醒周期、所有设备型号以及与之对应的软件版本号,其中服务器地址的缺省值为自身的地址,在各个软件更新服务器指定路径下存放有与各个软件版本号对应的软件升级包;软件更新服务器中的一个为根服务器,根服务器可以对其本身及其他软件更新服务器对应索引文件中的服务器地址、唤醒周期、所有设备型号以及与之对应的软件版本号中的至少一项进行修改,为了便于根服务器与其他各个软件更新服务器进行数据交互,根服务器的配置文件中存储有其他各个软件更新服务器的地址,且其他各个软件更新服务器的配置文件中存储有根服务器的地址。另外,待更新设备中也配置有索引文件,该索引文件中包括服务器地址、唤醒周期、其设备型号及软件版本号,其中服务器地址的缺省值为待更新设备出厂时预置的根服务器地址,唤醒周期和软件版本号的缺省值为待更新设备出厂时预置的对应唤醒周期和软件版本号,该索引文件中的服务器地址、唤醒周期和软件版本号都是可变的,而设备型号是固定不变的,且软件更新服务器和待更新设备对应索引文件中的唤醒周期都是指待更新设备访问服务器的唤醒周期。
参见图2所示,为本发明快速扩容的软件升级方法的一个实施例流程图。该快速扩容的软件升级方法可以包括:
步骤S101、待更新设备的升级任务被周期性唤醒后,根据本地索引文件中的服务器地址,从对应软件更新服务器中下载目标索引文件。
步骤S102、在所述目标索引文件下载成功后,所述待更新设备将所述本地索引文件中的服务器地址与所述目标索引文件中的服务器地址进行比较,若相同,则执行步骤S103,若不相同,则执行步骤S104。
本实施例中,如果新增的软件更新服务器网络异常,或者软件更新服务器配置有误,待更新设备在下载目标索引文件过程中可能出现下载失败的情况,此时本发明使所述待更新设备的升级任务进入空闲状态,等待下一次被唤醒,而非持续向对应软件更新服务器请求下载目标索引文件直至获得目标索引文件,如此可以提高本发明的容错率。
步骤S103、将所述本地索引文件中服务器地址对应的软件更新服务器作为目标服务器,根据所述本地索引文件中的设备型号,从所述目标索引文件中查找到对应的软件版本号,从对应目标服务器中下载对应的软件升级包进行软件升级。
本实施例中,所述本地索引文件和目标索引文件中还配置有唤醒周期,当所述本地索引文件中的服务器地址与所述目标索引文件中的服务器地址相同时,所述待更新设备将所述本地索引文件和所述目标索引文件中的唤醒周期进行比较,若相同,则不更新唤醒周期,若不相同,则将所述本地索引文件中的唤醒周期替换为所述目标索引文件中的唤醒周期。本发明待更新设备被唤醒的时间是由唤醒周期来决定,具体地为:N×唤醒周期+随机数,N为整数,唤醒周期的值域为10至1440分钟,随机数为随机生成的0至唤醒周期之间的任意整数,所述待更新设备被唤醒的时间是24小时制,精确到分钟,值域为:00:00至23:59。例如当唤醒周期为360,某个待更新设备的随机数为80时,该待更新设备的唤醒时间就为80、440、800和1160,即1:20、7:20、13:20、19:20。本发明通过设置一个唤醒周期,并使唤醒周期的值域为10至1440分钟,待更新设备被唤醒时间等于N×唤醒周期+随机数,随机数为随机生成的0至唤醒周期之间的任意整数,这样在新版本软件发布后,可以保证在一天内完成所有待更新设备的软件升级;并且本发明每个待更新设备在生成唤醒时间时引入了随机数这一概念,由此可以避免在当前唤醒周期内大量待更新设备并发访问同一软件更新服务器,从而可以降低软件更新服务器并发负载率。此外,唤醒周期可影响目标服务器的负载情况以及软件更新的及时性;对所述唤醒周期进行调节,其中唤醒周期越大,各个待更新设备并发访问目标服务器的概率越小,目标服务器的负载较小,同时软件更新的及时性降低。本发明通过对唤醒周期进行调节,可以进一步降低软件更新服务器的并发负载率。
为了避免待更新设备从对应目标服务器重复下载最新版本软件进行升级,本发明在从对应目标服务器中下载对应的软件升级包进行软件升级之前,还包括:判断本地索引文件中的软件版本号与查找到的软件版本号是否相同,若相同,则不进行升级,所述升级任务进入空闲状态,等待下一次被唤醒;若不相同,则从对应目标服务器中下载对应的软件升级包进行软件升级;并且在从对应目标服务器中下载对应的软件升级包进行软件升级之后,还包括:更新所述本地索引文件中的软件版本号。本发明将待更新设备的当前软件版本号与从目标索引文件中查找到的与其设备型号对应的软件版本号进行比较,当两者相同时,表示待更新设备安装的对应软件为最新版本,此时不再下载软件升级包进行升级,由此可以降低对应软件更新服务器的负载率。
步骤S104、将所述目标索引文件中服务器地址对应的软件更新服务器作为目标服务器,从对应目标服务器中下载扩容索引文件;在所述扩容索引文件下载成功后,所述待更新设备将所述本地索引文件中的服务器地址替换成所述目标索引文件中的服务器地址,从而将该待更新设备的软件升级服务从所述本地索引文件中服务器地址对应的软件更新服务器,迁移到所述目标索引文件中服务器地址对应的软件更新服务器上,此后所述待更新设备根据所述本地索引文件中的设备型号,从所述扩容索引文件中查找到对应的软件版本号,从对应目标服务器中下载对应的软件升级包进行软件升级。
本实施例中,所述本地索引文件和扩容索引文件中还配置有唤醒周期,当所述本地索引文件中的服务器地址与所述目标索引文件中的服务器地址不相同时,所述待更新设备在所述扩容索引文件下载成功后,将所述本地索引文件和所述扩容索引文件中的唤醒周期进行比较,若相同,则不更新唤醒周期,若不相同,则将所述本地索引文件中的唤醒周期替换为所述扩容索引文件中的唤醒周期。
同样地,如果新增的软件更新服务器网络异常,或者软件更新服务器配置有误,待更新设备在下载扩容索引文件过程中可能出现下载失败的情况,此时本发明使所述待更新设备将所述本地索引文件中服务器地址对应的软件更新服务器作为目标服务器,根据所述本地索引文件中的设备型号,从所述目标索引文件中查找到对应的软件版本号,从而从对应目标服务器中下载对应的软件升级包进行软件升级。本发明在扩容索引文件下载失败时,转而从其本地索引文件中服务器地址对应的软件更新服务器下载对应的软件升级包进行软件升级,即待更新设备只要与各个软件更新服务器中的一个正常通讯,就可以实现软件升级,由此可以保证软件升级服务迁移的同时不会影响软件升级的顺利进行,增加了系统的容错性,从而可以提高用户良好体验度。
为了避免待更新设备从对应目标服务器重新下载最新版本软件进行升级,本发明在从对应目标服务器中下载对应的软件升级包进行软件升级之前,还包括:判断本地索引文件中的软件版本号与查找到的软件版本号是否相同,若相同,则不进行升级,所述升级任务进入空闲状态,等待下一次被唤醒;若不相同,则从对应目标服务器中下载对应的软件升级包进行软件升级;并且在从对应目标服务器中下载对应的软件升级包进行软件升级之后,还包括:更新所述本地索引文件中的软件版本号。本发明将待更新设备的当前软件版本号与从扩容索引文件中查找到的与其设备型号对应的软件版本号进行比较,当两者相同时,表示待更新设备安装的对应软件为最新版本,此时不再下载软件升级包进行升级,由此可以降低对应软件更新服务器的负载率。
另外,当设定在一天中的某个唤醒周期内进行软件升级服务迁移时,若在升级服务迁移完成后,软件更新服务器不恢复为其自身的服务器地址,那么此后所有访问该软件更新服务器的待更新设备都会继续进行迁移,显然这是与本发明的设计本意相违背的。为此,本发明所述软件更新服务器在唤醒周期到时,进入下一唤醒周期之前,将所述目标索引文件中的服务器地址恢复为其自身的服务器地址,由此可以同时保证软件升级和迁移的顺利进行。
下面对软件升级服务的迁移做详细描述:
由于待更新设备对应本地索引文件中服务器地址的缺省值为根服务器,因此新上线的待更新设备在进行软件升级时首先会访问根服务器。随着业务的增长,待更新设备数量也在增长,根服务器的负载也越来越重,根服务器的负载达到一定程度后,就需要增加新的软件更新服务器来减轻根服务器的负载。实现策略是将目前从根服务器升级的设备迁移到新的软件更新服务器上,而将未来升级设备保留在根服务器上。首先创建或安装新的软件更新服务器,在根服务器上配置新的软件更新服务器地址,通过根服务器在新的软件更新服务器上配置目标索引文件,目标索引文件中包括服务器地址(缺省值为新的软件更新服务器地址)、唤醒周期、所有设备型号以及与之对应的软件版本号,并在指定路径下存放与软件版本号对应的软件升级包。在将待更新设备从根服务器迁移到新的软件更新服务器上进行软件升级时,根服务器将其目标索引文件中自身的服务器地址修改为新的软件更新服务器的地址,并根据其目标索引文件中的唤醒周期,启动一个时长等于该唤醒周期的定时器。所有新上线的待更新设备在被唤醒后访问根服务器,从根服务器中下载目标索引文件,由于为了进行软件升级服务迁移,根服务器对应目标索引文件中的服务器地址已经被修改为新的软件更新服务器的地址,因此待更新设备在获取目标索引文件后,将新的软件更新服务器作为目标服务器,从新的软件更新服务器中下载软件升级包进行软件升级,由此便将待更新设备从根服务器迁移到了其他的软件更新服务器上进行软件升级。根服务器定时器到时后,进入下一唤醒周期之前,会将根服务的目标索引文件中的服务器地址改回根服务器地址,从而可以开始新设备的上线,由此实现了根服务器与其他软件更新服务器之间所有软件升级服务的迁移。
同样地,当除根服务器外的其他软件更新服务器的负载量较大,需要进行软件升级服务迁移时,根服务器可以对该软件更新服务器对应目标索引文件中的服务器地址进行修改,以将图1中待更新设备3从软件更新服务器2迁移到软件更新服务器3上进行软件升级为例,根服务器可以将软件更新服务器2对应目标索引文件中的服务器地址修改为软件更新服务器3的地址,由于待更新设备3的本地索引文件中的服务器地址为软件更新服务器2的地址,因此当待更新设备3从软件更新服务器2下载获得目标索引文件,确定本地索引文件与目标索引文件中的服务器地址不同后,会根据目标索引文件中的服务器地址,去访问软件更新服务器3,将软件更新服务器3作为目标服务器,从目标服务器中下载对应的软件升级包进行软件升级。同样地,软件更新服务器2在进入下一唤醒周期之前,会将其目标索引文件中的服务器地址改回其自身的服务器地址,由此实现了除根服务器外的其他软件更新服务器之间的所有软件升级服务迁移。
本发明不仅可以将唤醒周期内访问某个软件更新服务器的所有待更新设备从该软件更新服务器迁移到其他软件更新服务器进行软件升级,而且可以将唤醒周期内访问该软件更新服务器的部分待更新设备从该软件更新服务器迁移到其他软件更新服务器进行软件升级。具体地,基于服务器负载情况,在唤醒周期内的指定时间段,通过更改所述软件更新服务器中目标索引文件的服务器地址,使访问所述软件更新服务器的对应部分待更新设备从所述软件更新服务器迁移到对应目标服务器上,从而进行软件升级。
以根服务器对新上线的待更新设备分批次进行软件升级服务迁移为例,由于本发明中各个待更新设备的唤醒时间是由唤醒周期和随机数来决定的,随机数的引入使得各个待更新设备不会一拥而入地去访问根服务器。当新上线的待更新设备量很大时,新增一个软件更新服务器可能无法满足所有新上线待更新设备的迁移需求,为此需要分批次将新上线待更新设备迁移到不同的软件更新服务器上进行软件升级。结合图1所示,根服务器欲将唤醒周期内访问其的待更新设备分批次迁移到两个软件更新服务器:软件更新服务器2和软件更新服务器3上进行软件升级时,首先创建或安装新的软件更新服务器2和软件更新服务器3,在根服务器上配置新的软件更新服务器2和软件更新服务器3地址,通过根服务器在新的软件更新服务器2和软件更新服务器3上配置目标索引文件,目标索引文件中包括服务器地址(缺省值对应为新的软件更新服务器2地址和新的软件更新服务器3地址)、唤醒周期、所有设备型号以及与之对应的软件版本号,并在指定路径下存放与软件版本号对应的软件升级包。
根服务器将其目标索引文件中的服务器地址修改为软件更新服务器2的地址,并启动一个针对该软件更新服务器2设置的定时器(时长等于唤醒周期的1/2),当定时器到时后,将其目标索引文件中的服务器地址修改为软件更新服务器3的地址。如此,唤醒周期前半段时间内访问根服务器的该批次待更新设备在发现其本地索引文件中的服务器地址(为根服务器地址)与其获得的目标索引文件中的服务器地址(为软件更新服务器2的地址)不同后,会去访问目标索引文件中服务器地址对应的软件更新服务器2,从软件更新服务器2中下载软件升级包进行软件升级;唤醒周期后半段时间内访问根服务器的该批次待更新设备在发现其本地索引文件中的服务器地址(为根服务器地址)与其获得的目标索引文件中的服务器地址(为软件更新服务器3的地址)不同时,会去访问目标索引文件中服务器地址对应的软件更新服务器3,从软件更新服务器3中下载软件升级包进行软件升级,由此可以分批次对待更新设备的软件升级服务迁移,实现了根服务器与其他软件更新服务器之间部分软件升级服务的迁移,并且在迁移各批次待更新设备的软件更新服务时相互隔离互不干扰。
由于每批次设备数量不等,可能导致不同批次的设备的升级业务从根服务器转移到不同的软件更新服务器后,有些软件更新服务器负载比较大,此时可以通过增加新的软件更新服务器来实现减少负载比较大的软件更新服务器的负载。首先创建或安装一个新的软件更新服务器,在根服务器上配置新的软件更新服务器地址,通过根服务器在新软件更新服务器上配置目标索引文件,目标索引文件中包括信息:服务器地址(缺省值为新的软件更新服务器地址),待更新设备访问服务器的唤醒周期,所有设备型号、以及与之对应的软件版本号,并在指定路径下存放与软件版本号对应的软件升级包。结合图1所示,软件更新服务器2欲将唤醒周期内访问其的部分待更新设备迁移到软件更新服务器3进行软件升级时,根服务器可以将软件更新服务器2对应目标索引文件中的服务器地址修改为软件更新服务器3的地址,并启动一个针对软件更新服务器2的定时器(时长为唤醒周期的1/2)。唤醒周期内访问软件更新服务器的待更新设备在确定其本地索引文件中的服务器地址(为软件更新服务器2地址)与其获得的目标索引文件中的服务器地址(为软件更新服务器3地址)不同时,会去访问与目标索引文件中服务器地址对应软件更新服务器3,从软件更新服务器3中下载软件升级包进行软件升级。当根服务器中针对软件更新服务器2设置的定时器到时后,根服务器将软件更新服务器2对应目标索引文件中的服务器地址改回软件更新服务器2的地址,由此可以实现除根服务器外的其他软件更新服务器之间部分软件升级服务的迁移。同理如需增加某服务器的负载时,将索引文件中的服务器地址改成被增加负载的服务器地址即可。
另外,所述待更新设备在从对应目标服务器中下载对应的软件升级包进行软件升级时,还向对应目标服务器上传其设备唯一标识,以便所述目标服务器记录对应待更新设备的更新时间以及本次更新的软件版本号。所述目标服务器将其记录的各个待更新设备的设备型号、软件版本号上传给根服务器,所述根服务器根据各个目标服务器记录的待更新设备的设备型号、软件版本号,对各个目标服务器的负载情况进行统计,并根据统计出的负载情况,对目标服务器的增减进行调整;所述根服务器还用于统一将软件升级包下发给各个目标服务器,并对其自身和各个目标服务器的索引文件中的目标服务器地址、唤醒周期、所有设备型号以及与之对应的软件版本号中的至少一项进行更改;所述根服务器在整个系统中是唯一的,它的地址是待更新设备出厂预置的本地索引文件中的缺省的服务器地址。
具体地,在升级过程中,待更新设备会携带设备唯一标识获取对应服务器的索引文件,在服务器上就会保存一条对应记录,内容包括获取时间、对应设备的唯一标识;服务器根据这些记录可以统计出哪些设备通过当前服务器进行软件升级,升级的频率;根服务器可以统计出各个软件更新服务器以及自己共承载了多少设备的更新需求,企业可以依据这些数据调整和补充服务器的需求。根服务器可以获取所有软件更新服务器的设备型号及对应的软件版本号;根服务器可以统一下发软件升级包到所有软件更新服务器,同时修改各自服务器索引文件中对应的软件版本号,还可以添加新设备型号和对应软件版本号。
由上述实施例可见,本发明前期成本投入较少,后期随着业务的发展可实现平滑扩容,当业务没有开展起来时,只需要投入根服务器来支持软件升级,当根服务器的性能不能满足升级要求时,可以创建新的软件更新服务器,将现有根服务器上的升级业务迁移到新服务器上,仍旧用根服务器做新上线设备的升级服务器,以此平滑地扩大系统升级业务的处理能力;本发明提供唤醒周期配置功能,通过调整唤醒周期,可以微调对服务器的负载;周期大些,再加上随机数的贡献,设备并发访问服务器的概率小些,服务器并发处理的负载低些;同时唤醒周期的最大值1440的限制又能保证所有设备在更新软件包上线后一天内都能够完成升级;本发明除了安装新的软件更新服务器外,所有的软件包的管理、更新软件服务器的配置、业务迁移等都是通过根服务器来完成的,降低了软件维护的难度,同时可以从根服务器查看所有软件更新服务器的负载情况、设备在线情况。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (9)

1.一种快速扩容的软件升级方法,其特征在于,包括:
待更新设备的升级任务被周期性唤醒后,根据本地索引文件中的服务器地址,从对应软件更新服务器中下载目标索引文件;
在所述目标索引文件下载成功后,所述待更新设备将所述本地索引文件中的服务器地址与所述目标索引文件中的服务器地址进行比较,若相同,则将所述本地索引文件中服务器地址对应的软件更新服务器作为目标服务器,根据所述本地索引文件中的设备型号,从所述目标索引文件中查找到对应的软件版本号,从对应目标服务器中下载对应的软件升级包进行软件升级;
若不相同,则将所述目标索引文件中服务器地址对应的软件更新服务器作为目标服务器,从对应目标服务器中下载扩容索引文件;在所述扩容索引文件下载成功后,所述待更新设备将所述本地索引文件中的服务器地址替换成所述目标索引文件中的服务器地址,并根据所述本地索引文件中的设备型号,从所述扩容索引文件中查找到对应的软件版本号,从对应目标服务器中下载对应的软件升级包进行软件升级;所述本地索引文件、目标索引文件和扩容索引文件中配置有唤醒周期;
所述方法不仅可将唤醒周期内访问某个软件更新服务器的所有待更新设备从该软件更新服务器迁移到其他软件更新服务器进行软件升级,而且可将唤醒周期内访问该软件更新服务器的部分待更新设备从该软件更新服务器迁移到其他软件更新服务器进行软件升级:基于服务器负载情况,在唤醒周期内的指定时间段,通过更改所述软件更新服务器中目标索引文件的服务器地址,使访问所述软件更新服务器的对应部分待更新设备从所述软件更新服务器迁移到对应目标服务器上,从而进行软件升级,此后软件更新服务器会将其目标索引文件中的服务器地址改回其自身的服务器地址。
2.根据权利要求1所述的快速扩容的软件升级方法,其特征在于,所述唤醒周期的值域为10至1440分钟,所述待更新设备被唤醒的时间为:N×唤醒周期+随机数,N为整数,随机数为随机生成的0至唤醒周期之间的任意整数,所述待更新设备被唤醒的时间是24小时制,精确到分钟,值域为:00:00至23:59。
3.根据权利要求1或2所述的快速扩容的软件升级方法,其特征在于,若所述本地索引文件中的服务器地址与所述目标索引文件中的服务器地址相同,则所述待更新设备将所述本地索引文件和所述目标索引文件中的唤醒周期进行比较,若相同,则不更新唤醒周期,若不相同,则将所述本地索引文件中的唤醒周期替换为所述目标索引文件中的唤醒周期;
若所述本地索引文件中的服务器地址与所述目标索引文件中的服务器地址不相同,则所述待更新设备在所述扩容索引文件下载成功后,将所述本地索引文件和所述扩容索引文件中的唤醒周期进行比较,若相同,则不更新唤醒周期,若不相同,则将所述本地索引文件中的唤醒周期替换为所述扩容索引文件中的唤醒周期。
4.根据权利要求3所述的快速扩容的软件升级方法,其特征在于,根据唤醒周期可影响目标服务器的负载情况以及软件更新的及时性;对所述唤醒周期进行调节,其中唤醒周期越大,各个待更新设备并发访问目标服务器的概率越小,目标服务器的负载较小,同时软件更新的及时性降低。
5.根据权利要求1所述的快速扩容的软件升级方法,其特征在于,在所述目标索引文件下载失败时,所述待更新设备的升级任务进入空闲状态,等待下一次被唤醒;在所述扩容索引文件下载失败时,所述待更新设备将所述本地索引文件中服务器地址对应的软件更新服务器作为目标服务器,根据所述本地索引文件中的设备型号,从所述目标索引文件中查找到对应的软件版本号,从而从对应目标服务器中下载对应的软件升级包进行软件升级。
6.根据权利要求1或5所述的快速扩容的软件升级方法,其特征在于,在从对应目标服务器中下载对应的软件升级包进行软件升级之前,还包括:
判断所述本地索引文件中的软件版本号与查找到的软件版本号是否相同,若相同,则不进行升级,所述升级任务进入空闲状态,等待下一次被唤醒;若不相同,则从对应目标服务器中下载对应的软件升级包进行软件升级;
在从对应目标服务器中下载对应的软件升级包进行软件升级之后,还包括:更新所述本地索引文件中的软件版本号。
7.根据权利要求1所述的快速扩容的软件升级方法,其特征在于,所述软件更新服务器在唤醒周期到时,进入下一唤醒周期之前,将所述目标索引文件中的服务器地址恢复为其自身的服务器地址。
8.根据权利要求1所述的快速扩容的软件升级方法,其特征在于,所述待更新设备在从对应目标服务器中下载对应的软件升级包进行软件升级时,还向对应目标服务器上传其设备唯一标识,以便所述目标服务器记录对应待更新设备的更新时间以及本次更新的软件版本号。
9.根据权利要求8所述的快速扩容的软件升级方法,其特征在于,所述目标服务器将其记录的各个待更新设备的设备型号、软件版本号上传给根服务器,所述根服务器根据各个目标服务器记录的待更新设备的设备型号、软件版本号,对各个目标服务器的负载情况进行统计,并根据统计出的负载情况,对目标服务器的增减进行调整;
所述根服务器还用于统一将软件升级包下发给各个目标服务器,并对其自身和各个目标服务器的索引文件中的目标服务器地址、唤醒周期、所有设备型号以及与之对应的软件版本号中的至少一项进行更改;所述根服务器在整个系统中是唯一的,它的地址是待更新设备出厂预置的本地索引文件中的缺省的服务器地址。
CN201811366164.0A 2018-11-16 2018-11-16 快速扩容的软件升级方法 Active CN109117166B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811366164.0A CN109117166B (zh) 2018-11-16 2018-11-16 快速扩容的软件升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811366164.0A CN109117166B (zh) 2018-11-16 2018-11-16 快速扩容的软件升级方法

Publications (2)

Publication Number Publication Date
CN109117166A CN109117166A (zh) 2019-01-01
CN109117166B true CN109117166B (zh) 2022-03-11

Family

ID=64854063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811366164.0A Active CN109117166B (zh) 2018-11-16 2018-11-16 快速扩容的软件升级方法

Country Status (1)

Country Link
CN (1) CN109117166B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888523A (zh) * 2014-03-11 2014-06-25 北京京东尚科信息技术有限公司 一种用于确定软件版本升级文件下载地址的方法、装置及系统
CN105099774A (zh) * 2015-07-08 2015-11-25 上海斐讯数据通信技术有限公司 一种路由器软件升级方法及系统
CN106933625A (zh) * 2017-02-23 2017-07-07 湖北光谷天下传媒股份有限公司 一种多源软件更新的方法及系统
CN107016280A (zh) * 2017-03-31 2017-08-04 武汉票据交易中心有限公司 一种客户端应用程序的升级方法及系统
CN108089874A (zh) * 2017-12-27 2018-05-29 北京海泰方圆科技股份有限公司 软件的升级方法、装置和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060075001A1 (en) * 2004-09-30 2006-04-06 Canning Jeffrey C System, method and program to distribute program updates
CN102006334B (zh) * 2007-06-11 2013-01-02 华为技术有限公司 安装软件组件的方法、系统及装置
WO2013078951A1 (zh) * 2011-12-01 2013-06-06 腾讯科技(深圳)有限公司 软件升级方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888523A (zh) * 2014-03-11 2014-06-25 北京京东尚科信息技术有限公司 一种用于确定软件版本升级文件下载地址的方法、装置及系统
CN105099774A (zh) * 2015-07-08 2015-11-25 上海斐讯数据通信技术有限公司 一种路由器软件升级方法及系统
CN106933625A (zh) * 2017-02-23 2017-07-07 湖北光谷天下传媒股份有限公司 一种多源软件更新的方法及系统
CN107016280A (zh) * 2017-03-31 2017-08-04 武汉票据交易中心有限公司 一种客户端应用程序的升级方法及系统
CN108089874A (zh) * 2017-12-27 2018-05-29 北京海泰方圆科技股份有限公司 软件的升级方法、装置和系统

Also Published As

Publication number Publication date
CN109117166A (zh) 2019-01-01

Similar Documents

Publication Publication Date Title
EP1921871B1 (en) A method and download agent for downloading in parallel
KR100382851B1 (ko) 분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를관리하기 위한 방법 및 장치
CN102821000B (zh) 提高PaaS平台可用性的方法
US20210132849A1 (en) Data migration method and apparatus
US9185174B2 (en) Maintaining mobile device operations
US20070208782A1 (en) Updating of Data Processing and Communication Devices
US20020078222A1 (en) Updating information in network devices
CN105354044A (zh) 一种应用唤醒方法及装置
US20100088448A1 (en) Virtual computing accelerator and program downloading method for server-based virtual computing
WO2021051747A1 (zh) 数据更新方法、系统、装置、电子设备及计算机存储介质
WO2018010501A1 (zh) 全局事务标识gtid的同步方法、装置及系统、存储介质
KR20150111952A (ko) 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템
WO2013040906A1 (zh) 一种基站软件版本管理的方法和系统
CN106657433B (zh) 一种多网卡环境下物理网卡的命名方法和装置
CN105450682A (zh) 一种用于数据同步保存、向客户端同步数据的方法、装置和系统
CN105721204A (zh) 一种网络适配器的固件升级方法及系统
CN110019537A (zh) 本地缓存刷新方法、装置、计算机设备及存储介质
CN109831779B (zh) 一种升级包下载方法、装置、服务器、终端及系统
CN113079098B (zh) 路由更新的方法、装置、设备和计算机可读介质
CN109117166B (zh) 快速扩容的软件升级方法
CN110958293B (zh) 基于云服务器的文件传输方法、系统、服务器及存储介质
CN112069152A (zh) 一种数据库集群升级方法、装置、设备以及存储介质
CN112732292A (zh) 一种软件升级的方法、系统、设备及可读存储介质
US8682958B2 (en) Decoupling cluster data from cloud deployment
CN114422427B (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