软件更新方法

文档序号:6408365阅读:133来源:国知局
专利名称:软件更新方法
技术领域
本发明涉及通信领域,特别涉及服务器对远端系统进行软件更新的技术。
背景技术
随着时代的进步,信息科学飞速发展,各种系统的软件和硬件升级换代的周期越来越短。由于软件更新的成本较小,且可以带来较大的收益,因此软件的更新换代周期尤其短。在各种实际应用系统中,例如通信系统、自动化系统等系统中,软件升级更是一种普遍的现象。而在这类系统中,通常由于各部件分布的比较远,且维护起来较困难,因此软件更新的效率较低。而此类系统对业务工作的不间断性要求较高,通常要求业务尽可能不中断,即是在若必须中断的情况下,也要求能够使中断的时间越短越好。因此在此类系统中,对系统更新方法的效率有很高的要求。即要求软件升级对系统造成的影响最小。
通常,将完成相对完整功能的多个软件的集合称为软件包,通常由版本来标识。例如通信系统中基站的软件包即是包含了所有基站软件内容的文件。将系统中当前正在运行的软件称为运行软件,由一个特定的版本来标识。将旧版本的软件替换成新版本软件包里软件进行运行的过程称为软件更新。软件包中包含很多内容,其中与软件升级相关的内容被称为软件升级软件部分。
图1是关键更新示意图,如图所示,假设基站原来运行的旧版本软件需要更新为新版本软件,大致流程是这样的首先,将包含新版本软件的软件包从服务器传送到待升级的基站,负责传送的功能由旧版本软件完成;此时基站硬盘中保存了新版本软件,但内存中仍旧还在运行旧版本软件;此后,待升级的基站的硬件复位,初始化、新版本软件校验通过后开始运行,即基站运行新版本软件。
由此可见,在更新过程中,从服务器向基站传送新版本软件的软件包,分发到基站中各个运行部件,硬件复位各个部件,使内存中的正在运行的旧版本软件替换成软件包中的新版本软件。
在实际应用中,上述方案存在以下问题首先,无法适应新软件包格式的更改,即当需要通过预先读取软件包,只对不相同的部分进行传送而提高传送效率时,由于新版软件包格式已经进行了更改,旧版软件就无法完成对新版软件包识别;第二,无法无缝衔接新增功能,即当新版软件包增加了新功能,若此新功能使得新版软件在进行升级时,需由原有的软件对新软件包进行一定操作后才能完成升级,而旧版软件没有提供此功能,则无法完成升级的无缝衔接。
造成这种情况的主要原因在于,现有方法中,旧版软件所提供的升级功能较为单一,无法以最佳的方式下载和升级新版本软件。

发明内容
有鉴于此,本发明的主要目的在于提供一种软件更新方法,使得能够在一次更新过程中,提供软件新增功能的无缝衔接和新版本软件的格式更改,同时使得软件升级方法对未来的未知需求有最佳的适应能力,同时提高软件升级效率。
为实现上述目的,本发明提供了一种软件更新方法,包含以下步骤A服务器向待升级系统发送新版本软件的升级相关部分;B在所述待升级系统的内存中加载所述升级相关部分;C通过更改函数入口,将正在运行的旧版本软件的升级相关部分替换为所述新版本软件的升级相关部分;
D所述待升级系统使用所述新版本软件的升级相关部分,下载所述新版本软件的剩余部分,完成所述新旧版本软件的替换。
其中,所述步骤A中,在所述服务器向所述待升级系统发送所述新版本软件的升级相关部分之前,还包含以下步骤所述服务器向所述基站发送所述新版本软件的包头部。
在所述步骤D之后,还包含复位所述待升级系统的步骤。
所述待升级系统是基站。
下载所述新版本软件的包头部时,采用所述旧版本软件的升级相关部分可以支持的格式,并且,所述包头部中包含版本信息以及后续文件个数、大小。
下载所述新版本软件的升级相关部分时,采用所述旧版本软件的升级相关部分可以支持的格式。
下载所述新版本软件的剩余部分时,采用所述新版本软件的升级相关部分可以支持的格式。
通过比较可以发现,本发明的技术方案与现有技术的区别在于,原有方法软件更新的工作由旧版软件完成。而本发明将要升级的软件分为两部分与软件升级相关的部分和其余部分,同时将软件更新也分为两个步骤,更新与软件升级相关的部分以及更新其余部分。使得在加载了与软件升级相关的部分后,便可利用新的软件升级部分来更新其余的新版本软件。
这种技术方案上的区别,带来了较为明显的有益效果,即可以更新更改格式后的软件,同时能够提供新版本软件新增功能的无缝衔接,可以在一次升级中体现新的升级功能。对未来未知的需求变动有最佳的适应能力。同时提高了软件升级的效率。


图1是根据本发明的一个实施例的软件更新方法中的软件组成结构图;图2是根据本发明的一个实施例的软件更新方法的流程示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
首先需要说明,本发明适用于任何由中央服务器对远端系统进行更新。在这种类型的系统中,通常对系统业务的工作连续性要求很高,即要求系统能够不间断的工作,在这类系统的软件更新过程中,通常要求软件更新对系统业务运行带来的影响达到最小,如果需要中断业务,也最好能够使得业务中断的时间尽可能短。通信系统就是一个典型的例子。在这类系统中,通常软件的更新换代很快,部件分布在较远处,维护起来比较困难。以下将结合附图,通过对无线通信系统基站设备的软件更新来说明本发明的软件更新方法。
在本发明中,将软件分为三个部分,如图2所示,软件由软件包头10,软件升级相关部分11以及软件其余部分12组成。
以下将原有软件的版本称为软件A,将要升级的软件版本称为软件B。下面结合附图3根据本发明的一个实施例对本发明的软件的更新方法进行详细的说明。
在步骤110,系统操作员控制服务器向基站传送新版本软件B包头部以及与软件升级相关的部分。此时基站仍然在运行原有版本软件A。软件包的包头部通常都是固定格式,包含了软件包的总体信息,例如软件包的版本信息、软件包大小、后续文件个数等等。基站软件A可以通过软件B的包头部信息识别软件B后续文件的信息,通过软件B的版本信息对软件版本进行合法控制,通过软件的包头部信息建立后续内容列表,从而提高后续文件的传送效率。软件升级相关部分包含了升级软件的自身信息,例如新函数的入口等等。通常软件升级相关部分紧跟在包头部后面,也是固定格式,因此可以依次获取到。由于其采用的是固定格式,因此原有软件A也可以顺利识别。在传送完软件B的升级相关部分后,基站软件A获得了新功能函数的入口名称。
接着进入到步骤120,通过原有软件A将软件B的升级相关部分加载到预留内存。这一步可以由系统操作员通过向基站发送命令来完成,也可以在软件A中进行设计,使得软件A能够自动识别以及加载,从而实现软件B的升级相关功能的加载。在本发明中,对旧版本软件A也有一定要求,即软件A必须能够为新版本软件B预留一部分内存,同时能够将接收到的新版本软件B升级相关信息加载到预留内存部分。但是这一点并不会限制本发明的使用,因为在进行了前续的工作后,即利用现有技术进行了第一次更新后,使得软件拥有了上述功能,以后的更新就都可以使用本发明中的方法了。此时,基站仍然在运行原有软件A,但是软件B的升级相关部分已经在内存中了。
接着进入步骤130,更改基站软件函数入口,使升级相关部分更新为新版本软件的升级部分。在此步骤中,可以在系统符号中寻找新功能的入口,而新功能的入口名称已经由原有软件A在步骤110中在传送完了新版本软件B的升级相关部分之后获得了。然后把功能函数替换成新的功能入口。这一步骤也可以设计相应的功能由软件来实现。通过这一步骤,原有软件A的基站的业务运行相关的部分断开了与软件A升级相关部分的连接,而与预留内存中的新版本软件B的升级相关的部分相连接了,此时,基站业务运行相关的部分仍然在运行原有软件A,而升级相关部分已经在运行新版本软件B的相关部分了。
接着进入步骤140,系统使用新加载的升级相关功能来传送新版本软件的剩余部分。此时基站里与升级相关的部分已经更新为了新版本软件B的相关部分,而其余部分仍然在运行原有软件A。因此剩下的升级过程都由新版本软件B的相关功能来完成了。例如,若为了提高传送效率,新增加了压缩功能,而原有软件A没有解压缩功能,原有方法无法方便完成升级功能,而在本发明的方法中,由于已经在上述的步骤中将升级相关的部分加载并运行了,而解压缩功能由于与升级相关也被包含在其中被加载了,因此此时的基站软件具有了解压缩功能,就能完成后续文件的接收以及解压缩,从而完成功能的无缝衔接。又例如,为了提高传送效率,增加了对软件包的预先读取,如相同则不进行传送,而仅仅传送不相同的部分,像这样引入了新的功能,则需更改软件包的结构,从而造成原有运行软件无法识别新格式的软件包,而在现有发明中,新软件B的升级相关部分则能够识别这种软件包的格式更改,同时及时引入和利用了新的升级相关功能。在本步骤完成时,基站中存在新旧两种版本的软件。
最后进入步骤150,系统操作员复位基站各部件,开始运行新版本软件。从而完成了软件的更新。在本步骤中,基站各部件在短时间内复位后,即开始运行新版本软件,因此业务中断时间很短。
虽然通过参照本发明的某些优选实施例,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。
权利要求
1.一种软件更新方法,其特征在于,包含以下步骤A服务器向待升级系统发送新版本软件的升级相关部分;B在所述待升级系统的内存中加载所述升级相关部分;C通过更改函数入口,将正在运行的旧版本软件的升级相关部分替换为所述新版本软件的升级相关部分;D所述待升级系统使用所述新版本软件的升级相关部分,下载所述新版本软件的剩余部分,完成所述新旧版本软件的替换。
2.根据权利要求1所述的软件更新方法,其特征在于,所述步骤A中,在所述服务器向所述待升级系统发送所述新版本软件的升级相关部分之前,还包含以下步骤所述服务器向所述基站发送所述新版本软件的包头部。
3.根据权利要求1所述的软件更新方法,其特征在于,在所述步骤D之后,还包含复位所述待升级系统的步骤。
4.根据权利要求1所述的软件更新方法,其特征在于,所述待升级系统是基站。
5.根据权利要求2所述的软件更新方法,其特征在于,下载所述新版本软件的包头部时,采用所述旧版本软件的升级相关部分可以支持的格式,并且,所述包头部中包含版本信息以及后续文件个数、大小。
6.根据权利要求1所述的软件更新方法,其特征在于,下载所述新版本软件的升级相关部分时,采用所述旧版本软件的升级相关部分可以支持的格式。
7.根据权利要求1所述的软件更新方法,其特征在于,下载所述新版本软件的剩余部分时,采用所述新版本软件的升级相关部分可以支持的格式。
全文摘要
本发明涉及通信领域,公开了一种软件更新方法,使得能够在一次更新过程中,提供软件新增功能的无缝衔接和新版本软件的格式更改,同时使得软件升级方法对未来的未知需求有最佳的适应能力,并能提高软件升级效率。本发明将要升级的软件分为两部分与软件升级相关的部分和其余部分,同时将软件更新也分为两个步骤,更新与软件升级相关的部分以及更新其余部分。使得在加载了与软件升级相关的部分后,便可利用新的软件升级部分来更新其余的新版本软件。
文档编号G06F9/445GK1710539SQ200410049468
公开日2005年12月21日 申请日期2004年6月16日 优先权日2004年6月16日
发明者刘正 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1