软件升级方法和装置转让专利

申请号 : CN200710176214.4

文献号 : CN100583782C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘红祥王蔚

申请人 : 华为技术有限公司

摘要 :

本发明涉及一种软件升级方法和装置,软件升级的方法包括如下步骤:升级工具与升级对象建立连接;检测升级对象中是否存在升级操作标识号,若存在,则在升级工具的数据库中查询是否存在相应的标识号,若是,则对应启动升级操作;在升级对象中采集其已完成的原子级操作的序号,并据此下发原子级操作命令,对应保存当前操作的序号;升级工具按照原子级操作的顺序,在检测到当前原子级操作已完成时,下发下一个原子级操作命令。软件升级的装置包括可执行本发明软件升级方法的功能模块。本发明对升级操作的进度能够有效控制,避免了中断退出时导致的升级失控和对升级对象构成的影响,还可以在接续升级操作时,节约因重复执行步骤所占用的资源和时间。

权利要求 :

1、一种软件升级方法,包括如下步骤: 升级工具与升级对象建立连接; 升级工具检测所述升级对象中是否存在升级操作标识号,若存在,则根据该升级操作标识号在升级工具的数据库中查询是否存在相应的升级操作标识号,若是,则升级工具对应启动升级操作; 升级工具在升级对象中采集其已完成的原子级操作的序号,根据采集到的原子级操作序号,向升级对象下发原子级操作命令,并将当前下发的原子级操作命令所对应的原子级操作的序号对应保存在升级对象中; 升级工具在检测到当前原子级操作已完成时,按照原子级操作的顺序,下发下一个原子级操作命令。

2、 根据权利要求1所述的软件升级方法,其特征在于,向升级对象下发 原子级操作命令后,还包括:所述原子级操作命令用于使升级对象在接收到 该原子级操作命令后完成该原子级操作,并维持完成状态。

3、 根据权利要求1或2所述的软件升级方法,其特征在于,若升级工具 检测到升级对象中没有升级操作标识号时,则执行下述步骤:升级工具启动一新的升级操作,并对应所述新的升级操作设置升级操作 标识号,将所述升级操作标识号保存在升级工具中,并对应保存在升级对象 中;升级工具从所述新的升级操作的第一个原子级操作开始执行软件升级操作;升级工具向升级对象下发原子级操作命令,并将当前下发的原子级操作 命令所对应的原子级操作的序号对应保存在升级对象中;升级工具按照原子级操作的顺序,在检测到当前原子级操作已完成时, 下发下一个原子级操作命令。

4、 根据权利要求l或2所述的软件升级方法,其特征在于,若升级工具检测升级对象中存在升级操作标识号,且检测到自身数据库中没有与升级对象中的升级搡作标识号相对应的升级操作标识号,则执行下述步骤:升级工具向升级对象发出警告消息,用于提示存在一未完成的升级操作。

5、 根据权利要求1或2所述的软件升级方法,其特征在于,升级工具与 升级对象建立连接之后,还包括:当升级工具检测到一升级操作的启动信息 时,判断升级对象中是否存在升级操作标识号,若存在,则取消所述升级操 作的启动操作。

6、 根据权利要求1或2所述的软件升级方法,其特征在于,所述根据采 集到的原子级搡作序号,向升级对象下发原子级操作命令的步骤具体为:升 级工具向升级对象下发采集到的原子级操作序号的下一序号的原子级操作命 令。

7、 根据权利要求1或2所述的软件升级方法,其特征在于,所述根据采 集到的原子级操作序号,向升级对象下发原子级操作命令的步骤具体为:升 级工具将采集到的原子级操作序号设置到提示消息中,并向升级对象发送所 述提示消息,在接收到升级对象对提示消息的响应后,下发采集到的原子级 操作序号下一序号或所述响应的参数中设定的序号的原子级操作命令。

8、 一种软件升级装置,其特征在于,包括:检测模块,用于在启动升级搡作时,检测升级对象中是否存在升级搡作 标识号;升级操作标识模块,用于当检测模块的检测结果为升M"象中不存在升 级操作标识号的情况下,设置升级操作标识号保存到升级操作标识模块和升 级对象中;或当检测模块的检测结果为升级对象中存在升级操作标识号的情 况下,将所述升级对象中存储的升级操作标号与升级操作标识模块存储的升 级操作标识号进行比较;原子级操作序号采集模块,用于根据比较结果从升级对象中采集原子级 操作序号;升级操作模块,用于根据检测模块的检测结果和/或原子级操作序号采集 模块采集的原子级操作序号向升级对象下发原子级操作命令,并将当前下发 的原子级操作命令所对应的原子级操作的序号对应保存在升级对象中。

9、 根据权利要求8所述的软件升级装置,其特征在于,所述升级操作标识模块包括:设置单元,用于当检测结果为升级对象中不存在升级操作标识号时,设置升级操作标识号,并保存到设置单元与升级对象中;比较单元,用于当检测结果为升级对象中存在升级操作标识号时,将检 测到的升级操作标识号与所述设置单元中存储的升级操作标识号进行比较。

10、 根据权利要求8或9所述的软件升级装置,其特征在于,所述升级 操作模块包括:升级启动单元,用于当检测模块的检测结果为升级对象中不存在升级操 作标识号的情况下,向升级对象下发第一个原子级操作命令,并将当前下发 的原子级操作命令所对应的原子级操作的序号对应保存在升级对象中;升级接续单元,用于当检测模块的检测结果为升级对象中存在升级操作 标识号的情况下,根据采集到的原子级操作序号向升级对象下发原子级操作 命令,并将当前下发的原子级操作命令所对应的原子级操作的序号对应保存 在升级对象中。

说明书 :

软件升级方法和装置

技术领域

本发明涉及一种软件升级方法和装置,尤其涉及一种采用软件升级工具 执行的软件升级方法和装置。
背景4支术
软件升级是无线^喿作维护(Operations & Maintenance,以下简称0M) 的重要场景之一。无线网络,如GSM、 CDMA和WCDMA等的软件升级从升级前 准备、正式升级到升级后验证往往要持续两三天的时间;通常需要版本包上
载、健康检查、数据备份、老版本卸载、新版本安装、前台复位和业务验证 等等步骤,因此往往存在下述缺陷:升级时间长;升级步骤繁瑣;对运维人 员技能要求高。软件版本升级的影响重大,但可靠性低,长期以来一直是无 线0M的弱点。
为解决软件版本升级的难题,用升级工具来代替手工升级正成为一种选 择,升级工具正朝着筒单化、自动化、远程化、批量化的方向发展,其功能 越来越强大,在节省升级时间、降低用服技能要求、减少出错概率等方面发 挥着更大的作用,最终达到降低成本、提升客户满意度的目的。目前一般用 升级工具来完成升级对象的软件升级,升级工具在功能方面需考虑较多因素, 重点在于协助完成数据^f分、版本卸载和安装等功能性环节。
在实现本发明的过程中,发明人发现现有技术中,升级工具在升级进度 保护方面的考虑不足,至少存在如下问题:当升级操作正常完成前,如果升 级工具因各种原因退出,会导致升级失控。升级失控的影响,以电信设备为 例, 一般体现为:升级操作的中断退出会造成业务中断,即不能正常通话,电信设备的业务中断可能会持续较长时间,严重影响了设备的正常工作,并 且,若电信设备执行的升级操作若未进行完就中断,在再次启动升级工具进 行升级操作时,可能会不再响应新的升级操作,这种失控的不确定状态会造
成不同程度的损失;即使升级对象在重新启动升级工具后响应,升级工具也 会从升级操作的第一步骤开始走流程,不能从之前已完成的步骤接续上,导
致需重复走流程甚至会导致升级失败。
软件升级操作退出的情况,通常是升级工具在升级过程中退出引起的, 其原因主要包括以下几种:
(一) 异常退出:
1. 因为升级工具自身的程序缺陷(BUG)导致运行时异常退出;
2. 因为通讯故障,比如远程升级过程中发生网络中断,导致升级工具 与升级对象失去联系而异常退出;
3. 因为操作人员误执行"退出,,搡作而异常退出;
(二) 正常退出
在整个软件升级流程中,由于某些环节耗时较长,或者需要等待某些条 件满足后才能继续进行,则操作人员可以选择先退出升级工具,等条件满足 后再重新运行升级工具,接着后续的升级,例如基站控制器(Base Station Controller,以下筒称BSC )主机升级完成后,操作人员会观察一两天的时 间,确保新版本正常运行后,再把应急工作站升级,在这一两天的观察时间 里,可以先退出升级工具。
可见,软件升级操作中的中断退出有些是不可避免,而有些是应该被中 断的,那么,如何避免中断退出给软件升级操作带来的影响是本发明将要解 决的问题。

发明内容

本发明实施例提供一种软件升级方法和装置,以克服现有技术中软件升级工具在中断升级操作退出时,升级操作会失控而对升级对象构成影响的问 题,提高升级操作的可靠性,并且节约升级操作重新启动时重复执行升级操 作所占用的资源和时间。
本发明通过一些实施例提供了 一种软件升级方法,包括如下步骤:
升级工具与升级对象建立连接;
升级工具检测升级对象中是否存在升级操作标识号,若存在,则根据该 升级操作标识号在升级工具的数据库中查询是否存在相应的升级操作标识 号,若是,则升级工具对应启动升级操作;
升级工具在升级对象中采集其已完成的原子级操作的序号,根据采集到
的原子级操作序号,向升级对象下发原子级操作命令,并将当前下发的原子 级操作命令所对应的原子级操作的序号对应保存在升级对象中;
升级工具按照原子级操作的顺序,在检测到当前原子级操作已完成时, 下发下一个原子级操作命令。
本发明通过另一些实施例提供了一种软件升级装置,包括: 检测模块,用于在启动升级操作时,检测升级对象中是否存在升级操作 标识号;
升级操作标识模块,用于当检测模块的检测结果为对象中不存在升级操 作标识号的情况下,设置升级操作标识号保存到升级操作标识模块和升级对 象中;或当检测模块的检测结果为对象中存在升级操作标识号的情况下,将 所述升级对象中存储的升级操作标识号与升级操作标识模块存储的升级操作 标识号进行比较;
原子级操作序号采集模块,用于根据比较结果从升级对象中采集原子级 操作序号;
升级操作模块,用于根据检测模块的检测结果和/或原子级操作序号采集 模块采集的原子级操作序号向升级对象下发原子级操作命令,并将当前下发 的原子级操作命令所对应的原子级操作的序号对应保存在升级对象中。在上述技术方案中, 一次软件升级操作被划分为若干个原子级操作,对 应升级操作,在升级工具和升级对象中保存了升级操作标识号,且随着原子 级操作的进行,在升级对象中对应记录了原子级操作的序号。升级对象接收 到每一原子级操作命令后,执行当前的原子级操作,完成当前的原子级操作 后维持当前状态等待下一命令,即封存当前升级操作状态,当升级操作中断, 升级工具退出时,也可以维持这一状态,则软件升级的进度能够被有效的控 制。则上述技术方案实现了在升级工具中断退出时,不会导致升级失控,对 升级对象构成影响,并且在升级工具与升级对象再次连接时,可以根据升级 操作标识号和原子级搡作序号正确接续上一次升级操作,节约了重复执行升 级操作步骤所占用的资源和时间。
下面通过具体实施例并结合附图对本发明做进一步的详细描述。

附图说明

图1为本发明软件升级方法具体实施例一的流程图; 图2为本发明软件升级方法具体实施例二的流程图; 图3为本发明软件升级装置具体实施例的结构示意图。

具体实施方式

软件升级方法实施例一
如图1所示为本发明软件升级方法具体实施例一的流程图,本实施例的 软件升级方法是软件的升级工具对升级对象执行升级操作时,所执行的流程, 具体包括如下步骤:
步骤l、升级工具与升级对象建立连接;
步骤2、升级工具检测升级对象中是否存在升级操作标识号,若存在, 则执行步骤3,若不存在,则结束升级操作或执行其他流程;
步骤3、升级工具根据该升级操作标识号在升级工具自身的数据库中查询是否存在相应的升级操作标识号,若是,则执行步骤4,若否,则结束升 级操作或执行其他流程;
步骤4、升级工具根据该升级操作标识号启动相应升级操作;
步骤5、升级工具在升级对象中采集其已完成的原子级操作的序号,根 据采集到的原子级操作序号,向升级对象下发下一序号的原子级操作命令, 并将当前原子级操作命令的序号对应保存在升级对象中;
步骤6、升级工具按照原子级操作的顺序,在4企测到当前原子级操作已 完成时,下发下一个原子级操作命令,直到监测到该升级操作退出,升级操 作的退出可以为全部原子级搡作命令执行完毕,升级搡作完成,或者可以为 搡作人员选择的中途退出,或者还可以为异常退出。
在上述步骤5中向升级对象下发原子级操作命令之后,还可以包括:该 原子级操作命令用于使升级对象在接收到该原子级操作命令后,完成该原子 级操作,并维持完成状态。
在本实施例的技术方案中,升级工具的每次升级操作均对应分配有唯一 的标识号,并分别保存在软件升级工具和升级对象中。并且,升级工具将一 次升级操作划分为若干个原子级操作,每个原子级操作对应有序号,在执行 该原子级操作时,其序号被保存进升级对象中,以便在升级操作中断退出后, 再次启动时可以依据序号进行接续。
所谓原子级操作是指这个操作动作不可划分为更细的l喿作,或者某个操 作虽然可以划分为若干更细小的操作,但在处理逻辑上把它视为一个整体, 执行时全部执行,〗敬销时全部撤销。以"CDMA基站子系统(CDMA Base Station Sub-System,以下简称CBSS )远程一键式升级工具,,为例,CBSS软件升级的 全流程可以划分为以下环节:客户端登陆主用机—升级参数设置—上传US到 主用机—同步US到备用机—上传安装包到主用机—同步安装包到备用机— 设置人机语言(醒L)命令执行受阻—升级可行性检查—系统运行状况健康检 查—升级备用后台管理模块(Back Administration Module,以下简称BAM)—主备BAM倒换—升级前台—业务验证—升级另一台BAM。如何划分原子级 操作可根据实际情况灵活处理,比如"升级后台BAM"这一环节,既可视为 一个原子级操作,也可细分出"备份配置数据,,—"备份旧版本软件,,—"卸 载旧版本,,—"安装新;f反本"—"配置凄t据加载"等多个原子级操作。
升级操作开始后,升级工具按照升级流程一个步骤一个步骤地执行原子 级操作,升级工具按照升级流程将这些原子级操作排好序,每执行完一个原 子级操作就记录下来,记录方式是将当前原子级^l喿作的序号写进升级对象的 操作系统,例如Windows搡作系统的注册表里,或者也可以写进独立的升级 进度记录文件中,更新已存储的原子级操作序号。
如果升级工具在升级操作没有完成前正常退出或异常退出,升级操作会 封存一段时间。所谓的封存,通常应针对升级对象的可用态进行,例如升级 对象升级到新版本后,可以退出升级工具,观察一两天,此时即为封存,等 新版本运行一两天正常后再接着执行后续升级操作,直到整个升级活动圓满 结束。而对于升级对象处于不可用态执行的封存,在一定时间内是允许的, 即可以封存较短时间,但应尽快结束不可用态。 一种具体的实现形式是由升 级操作人员来保证什么时候"封存",什么时候结束"封存",如果是工具 异常退出,则应尽快连上。例如升级工具给升级对象下发了 "BSC主机复位" 命令后就退出,升级对象在接收到该命令后,会在没有升级工具支持的情况 下继续执行完主机复位重启这一原子级操作,然后维持该状态,等待下一条 操作指令,在等待期间BSC主机的业务不受影响,即在执行完"BSC主机复 位,,这一原子级操作后,将当前的软件升级操作封存。根据所处的原子级操 作环节不同,允许封存的时间有长有短,不同的原子级才喿作对升级对象的影 响是不一样的,有的原子级操作完成后升级对象处于稳定态、业务可用态, 则封存时间可以相对较长,有的原子级操作完成后导致业务中断,必须紧接 着后续操作,则封存时间应相对较短。例如:执行"卸栽旧版本,,原子级操 作后,升级对象中已经没有业务软件了,则处于不可用状态,必须紧接着执行"安装新版本,,的原子级操作,进入一个新的稳定、可用态。封存期间升 级对象一般不是完全正常的运行状态,需要升级工具尽早连上完成剩余的升 级活动。
当升级工具重新启动,并完成登陆验证后,将自身保存的软件升级操作
标识号和升级对象保存的标识号作对比,升级工具;^测标识号的结果可能出 现三种情况:l)升级对象存在标识号且与升级工具中存储的标识号相同,表 明上次升级4喿作未完成就退出,则重新启动后可继续升级;2)升级对象中存 在标识号但与升级工具中存储的标识号不同,表明有另外一个升级工具在进 行升级操作,则本升级工具不能对该升级对象执行升级操作;3)升级对象中 不存在标识号,则可以开始一次全新的升级。当标识号匹配上后,即第一种 情况表明此升级工具即为上次未完成升级操作的执行工具。而后升级工具从 注册表或升级进度记录文件里读取已完成的原子级才喿作的序号,然后从下一 序号开始执行剩下的升级操作。
上述技术方案,能够以软件升级操作的原子级操作为单位,对升级进度 进行封存,则软件升级的进度能够被有效的控制,在升级工具正常或异常退 出时,也不会导致升级失控造成升级对象处于不可用或混乱状态,对升M 象构成影响,提高了升级操作的可靠性,并且能够在升级工具退出再连接上 时,接续上一次的升级操作,避免了资源和时间上的浪费,且满足了用户使 用上的灵活性需求。
软件升级方法实施例二
如图2所示为本发明软件升级方法具体实施例二的流程图,本实施例是 在实施例一的基础上,若步骤2中,升级工具^r测到升级对象中不存在升级 操作标识号时,即出现第三种情况,则执行其他流程的一个具体实施方式是 启动一新的升级操作,具体为执行下述步骤:
步骤A1、升级工具启动一新的升级操作,并对该新的升级操作设置升级 操作标识号,将该升级操作标识号保存在升级工具中,并对应保存在升级对象中;
步骤A2、升级工具从新的升级操作的第一个原子级操作开始执行升级操
作;
步骤A3、升级工具向升级对象下发原子级搡作命令,并将当前原子级操 作命令的序号对应保存在升级对象中;
步骤A4、升级工具按照原子级操作的顺序,在4企测到当前原子级操作已 完成时,下发下一个原子级操作命令,直到监测到该升级"l喿作退出。
在上述实施例中,当升级对象没有未完成升级操作,则升级对象可以启 动一新的升级操作,并对应分配唯一的升级操作标识号,同时在执行每个原 子级操作时,将其序号保存在升级对象中,以备升级操作中断时,能够使升 级对象维持在当前原子级操作完成的状态下,并且当升级操作再次启动时能 够接续操作,避免出现升级对象因升级失控造成的运行异常,以及节约了升 级操作重新运行所浪费的资源和时间。
软件升级方法实施例三
本发明软件升级方法具体实施例三以实施例一技术方案为基础,在实施 例一的步骤3中,若升级工具检测到自身数据库中没有与升级对象中的升级 操作标识号相对应的升级操作标识号时,即出现第二种情况,则执行其他流 程的一种具体实施方式是执行下述步骤:
步骤B1、升级工具向升级对象发出警告消息,该警告消息用于提示升级
对象存在一未完成的升级操作。
本实施例的技术方案可防止升级操作执行混乱,因为对于一个升级对象 来说,不可能同时存在两个处于活动状态的升级操作,例如从A版本升级到 B版本,从B版本升级到C版本,这两个升级操作不能够同时执行。所以升 级工具需要检测升级对象是否已经在执行升级操作。上述技术方案,在检测 到升级对象中已有一未完成升级操作,而当前升级工具并不是执行该升级操 作的对应工具,则应该提示用户,等待完成升级对象中已有的升级操作后再执行该工具对应的升级操作。
升级操作混乱的情况还可能出现在用户操作某一升级工具进行一次升级 操作的过程中又启动了 一次同样的升级操作,那么为保证升级操作的正常进
行,可执行下述步骤:
升级工具与升级对象建立连接之后,当升级工具检测到一升级操作的启 动信息时,判断升级对象中是否存在升级操作标识号,若存在,则取消升级 操作的再次启动操作。
上述的技术方案有效阻止了在升级操作中断后或执行时另 一升级操作的 运行,能够防止因升级操作的同时运行而导致的升级操作失控。
软件升级方法实施例四
本发明软件升级方法具体实施例四与实施例一的区别在于:实施例一的 步骤5中,升级工具根据采集到的原子级操作序号,向升级对象下发采集到 的原子级操作序号的下一序号的原子级操作命令,即接续上一步骤执行,而 在本实施例中,升级工具才艮据采集到的原子级操作序号,向升级对象下发原 子级操作命令的步骤具体为:
步骤51、升级工具将采集到的原子级操作序号设置到提示消息中,并向 升级对象发送该提示消息,用于提示升级对象目前已完成的升级操作的状态;
步骤52、升级工具在接收到升级对象对该提示消息的响应后,若检测到 该响应参数中为空,则下发采集到的原子级操作序号下一序号的原子级操作 命令,若检测到该响应的参数中设定有序号,则下发设定序号的原子级操作 命令。
在实施例一的技术方案中,能够实现升级操作在中断后重启时能够接续 上次升级操作继续进行,而本实施例的技术方案,为用户提供了更加灵活的 升级操作方法,升级工具向升级对象的用户提示当前升级操作进行到的步骤, 用户可回复确定的响应,则从下一步继续执行升级操作,用户也可以在响应 的参数中设置以前某一原子级操作的序号,即从前面的任一步骤开始执行,该响应回复给升级工具后,升级工具即按照响应中的参数执行升级操作。当 然,升级操作中各原子级操作的可重复执行性可能各有不同,升级工具可进 一步根据具体情况提示用户可以选择从哪些步骤开始重新执行。 软件升级装置实施例
如图3所示为本发明软件升级装置具体实施例的结构示意图,该装置包
括:
检测模块IO,用于在启动升级操作时,检测升级对象中是否存在升级操 作标识号;升级操作标识模块20,用于当检测模块10的检测结杲为升级对 象中不存在升级操作标识号的情况下,设置升级操作标识号保存到升级搡作 标识模块20和升级对象中,或当检测模块10的检测结果为升级对象中存在 升级操作标识号的情况下,将升级对象中存储的升级操作标号与升级操作标 识模块20存储的升级操作标识号进行比较;原子级操作序号采集模块30, 用于根据比较结果从升级对象中采集原子级操作序号;升级操作模块40,用 于根据检测模块10的检测结果和/或原子级操作序号采集模块30采集的原子 级操作序号向升级对象下发原子级操作命令,并将当前原子级操作命令的序 号对应保存在升级对象中。
本实施例的软件升级装置可以实现本发明软件升级方法任意实施例的技 术方案。其中,升级操作标识模块20具体可以由下述单元组成,如图3所示: 设置单元201,用于当^r测结果为升级对象中不存在升级操作标识号时,设 置一新的升级操作标识号,并保存到设置单元201与升级对象中;比较单元 202,用于当检测结果为升级对象中存在升级操作标识号时,将^^测到的升级 操作标识号与设置单元201中存储的升级操作标识号进行比较。升级操作模 块40具体可以由下述单元组成,如图3所示:升级启动单元401,用于当检 测模块10的检测结果为升级对象中不存在升级操作标识号时,启动一新的升 级操作,即向升级对象下发第一个原子级操作命令,并将当前原子级操作命 令的序号对应保存在升级对象中;升级接续单元402,用于当检测模块的检测结果为升级对象中存在升级操作标识号的情况下,根据采集到的原子级操 作序号向升级对象下发原子级操作命令,并将当前原子级操作命令的序号对 应保存在升级对象中,即接续上一次的升级操作。在具体应用中,该升级操
作模块40还可以根据原子级操作序号并结合比较结果,确定应下发的原子级 操作命令。
本实施例的技术方案,能提高升级操作的可靠性,并且节约升级操作重 新启动时重复执行升级操作所占用的资源和时间。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读 取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述 的存储介质包括:ROM、 RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其 限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术
人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或 者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技
术方案的本质脱离本发明各实施例技术方案的精神和范围。