專利名稱:軟件更新方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,特別涉及服務(wù)器對遠(yuǎn)端系統(tǒng)進(jìn)行軟件更新的技術(shù)。
背景技術(shù):
隨著時(shí)代的進(jìn)步,信息科學(xué)飛速發(fā)展,各種系統(tǒng)的軟件和硬件升級換代的周期越來越短。由于軟件更新的成本較小,且可以帶來較大的收益,因此軟件的更新?lián)Q代周期尤其短。在各種實(shí)際應(yīng)用系統(tǒng)中,例如通信系統(tǒng)、自動(dòng)化系統(tǒng)等系統(tǒng)中,軟件升級更是一種普遍的現(xiàn)象。而在這類系統(tǒng)中,通常由于各部件分布的比較遠(yuǎn),且維護(hù)起來較困難,因此軟件更新的效率較低。而此類系統(tǒng)對業(yè)務(wù)工作的不間斷性要求較高,通常要求業(yè)務(wù)盡可能不中斷,即是在若必須中斷的情況下,也要求能夠使中斷的時(shí)間越短越好。因此在此類系統(tǒng)中,對系統(tǒng)更新方法的效率有很高的要求。即要求軟件升級對系統(tǒng)造成的影響最小。
通常,將完成相對完整功能的多個(gè)軟件的集合稱為軟件包,通常由版本來標(biāo)識。例如通信系統(tǒng)中基站的軟件包即是包含了所有基站軟件內(nèi)容的文件。將系統(tǒng)中當(dāng)前正在運(yùn)行的軟件稱為運(yùn)行軟件,由一個(gè)特定的版本來標(biāo)識。將舊版本的軟件替換成新版本軟件包里軟件進(jìn)行運(yùn)行的過程稱為軟件更新。軟件包中包含很多內(nèi)容,其中與軟件升級相關(guān)的內(nèi)容被稱為軟件升級軟件部分。
圖1是關(guān)鍵更新示意圖,如圖所示,假設(shè)基站原來運(yùn)行的舊版本軟件需要更新為新版本軟件,大致流程是這樣的首先,將包含新版本軟件的軟件包從服務(wù)器傳送到待升級的基站,負(fù)責(zé)傳送的功能由舊版本軟件完成;此時(shí)基站硬盤中保存了新版本軟件,但內(nèi)存中仍舊還在運(yùn)行舊版本軟件;此后,待升級的基站的硬件復(fù)位,初始化、新版本軟件校驗(yàn)通過后開始運(yùn)行,即基站運(yùn)行新版本軟件。
由此可見,在更新過程中,從服務(wù)器向基站傳送新版本軟件的軟件包,分發(fā)到基站中各個(gè)運(yùn)行部件,硬件復(fù)位各個(gè)部件,使內(nèi)存中的正在運(yùn)行的舊版本軟件替換成軟件包中的新版本軟件。
在實(shí)際應(yīng)用中,上述方案存在以下問題首先,無法適應(yīng)新軟件包格式的更改,即當(dāng)需要通過預(yù)先讀取軟件包,只對不相同的部分進(jìn)行傳送而提高傳送效率時(shí),由于新版軟件包格式已經(jīng)進(jìn)行了更改,舊版軟件就無法完成對新版軟件包識別;第二,無法無縫銜接新增功能,即當(dāng)新版軟件包增加了新功能,若此新功能使得新版軟件在進(jìn)行升級時(shí),需由原有的軟件對新軟件包進(jìn)行一定操作后才能完成升級,而舊版軟件沒有提供此功能,則無法完成升級的無縫銜接。
造成這種情況的主要原因在于,現(xiàn)有方法中,舊版軟件所提供的升級功能較為單一,無法以最佳的方式下載和升級新版本軟件。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種軟件更新方法,使得能夠在一次更新過程中,提供軟件新增功能的無縫銜接和新版本軟件的格式更改,同時(shí)使得軟件升級方法對未來的未知需求有最佳的適應(yīng)能力,同時(shí)提高軟件升級效率。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種軟件更新方法,包含以下步驟A服務(wù)器向待升級系統(tǒng)發(fā)送新版本軟件的升級相關(guān)部分;B在所述待升級系統(tǒng)的內(nèi)存中加載所述升級相關(guān)部分;C通過更改函數(shù)入口,將正在運(yùn)行的舊版本軟件的升級相關(guān)部分替換為所述新版本軟件的升級相關(guān)部分;
D所述待升級系統(tǒng)使用所述新版本軟件的升級相關(guān)部分,下載所述新版本軟件的剩余部分,完成所述新舊版本軟件的替換。
其中,所述步驟A中,在所述服務(wù)器向所述待升級系統(tǒng)發(fā)送所述新版本軟件的升級相關(guān)部分之前,還包含以下步驟所述服務(wù)器向所述基站發(fā)送所述新版本軟件的包頭部。
在所述步驟D之后,還包含復(fù)位所述待升級系統(tǒng)的步驟。
所述待升級系統(tǒng)是基站。
下載所述新版本軟件的包頭部時(shí),采用所述舊版本軟件的升級相關(guān)部分可以支持的格式,并且,所述包頭部中包含版本信息以及后續(xù)文件個(gè)數(shù)、大小。
下載所述新版本軟件的升級相關(guān)部分時(shí),采用所述舊版本軟件的升級相關(guān)部分可以支持的格式。
下載所述新版本軟件的剩余部分時(shí),采用所述新版本軟件的升級相關(guān)部分可以支持的格式。
通過比較可以發(fā)現(xiàn),本發(fā)明的技術(shù)方案與現(xiàn)有技術(shù)的區(qū)別在于,原有方法軟件更新的工作由舊版軟件完成。而本發(fā)明將要升級的軟件分為兩部分與軟件升級相關(guān)的部分和其余部分,同時(shí)將軟件更新也分為兩個(gè)步驟,更新與軟件升級相關(guān)的部分以及更新其余部分。使得在加載了與軟件升級相關(guān)的部分后,便可利用新的軟件升級部分來更新其余的新版本軟件。
這種技術(shù)方案上的區(qū)別,帶來了較為明顯的有益效果,即可以更新更改格式后的軟件,同時(shí)能夠提供新版本軟件新增功能的無縫銜接,可以在一次升級中體現(xiàn)新的升級功能。對未來未知的需求變動(dòng)有最佳的適應(yīng)能力。同時(shí)提高了軟件升級的效率。
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件更新方法中的軟件組成結(jié)構(gòu)圖;圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件更新方法的流程示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述。
首先需要說明,本發(fā)明適用于任何由中央服務(wù)器對遠(yuǎn)端系統(tǒng)進(jìn)行更新。在這種類型的系統(tǒng)中,通常對系統(tǒng)業(yè)務(wù)的工作連續(xù)性要求很高,即要求系統(tǒng)能夠不間斷的工作,在這類系統(tǒng)的軟件更新過程中,通常要求軟件更新對系統(tǒng)業(yè)務(wù)運(yùn)行帶來的影響達(dá)到最小,如果需要中斷業(yè)務(wù),也最好能夠使得業(yè)務(wù)中斷的時(shí)間盡可能短。通信系統(tǒng)就是一個(gè)典型的例子。在這類系統(tǒng)中,通常軟件的更新?lián)Q代很快,部件分布在較遠(yuǎn)處,維護(hù)起來比較困難。以下將結(jié)合附圖,通過對無線通信系統(tǒng)基站設(shè)備的軟件更新來說明本發(fā)明的軟件更新方法。
在本發(fā)明中,將軟件分為三個(gè)部分,如圖2所示,軟件由軟件包頭10,軟件升級相關(guān)部分11以及軟件其余部分12組成。
以下將原有軟件的版本稱為軟件A,將要升級的軟件版本稱為軟件B。下面結(jié)合附圖3根據(jù)本發(fā)明的一個(gè)實(shí)施例對本發(fā)明的軟件的更新方法進(jìn)行詳細(xì)的說明。
在步驟110,系統(tǒng)操作員控制服務(wù)器向基站傳送新版本軟件B包頭部以及與軟件升級相關(guān)的部分。此時(shí)基站仍然在運(yùn)行原有版本軟件A。軟件包的包頭部通常都是固定格式,包含了軟件包的總體信息,例如軟件包的版本信息、軟件包大小、后續(xù)文件個(gè)數(shù)等等?;拒浖嗀可以通過軟件B的包頭部信息識別軟件B后續(xù)文件的信息,通過軟件B的版本信息對軟件版本進(jìn)行合法控制,通過軟件的包頭部信息建立后續(xù)內(nèi)容列表,從而提高后續(xù)文件的傳送效率。軟件升級相關(guān)部分包含了升級軟件的自身信息,例如新函數(shù)的入口等等。通常軟件升級相關(guān)部分緊跟在包頭部后面,也是固定格式,因此可以依次獲取到。由于其采用的是固定格式,因此原有軟件A也可以順利識別。在傳送完軟件B的升級相關(guān)部分后,基站軟件A獲得了新功能函數(shù)的入口名稱。
接著進(jìn)入到步驟120,通過原有軟件A將軟件B的升級相關(guān)部分加載到預(yù)留內(nèi)存。這一步可以由系統(tǒng)操作員通過向基站發(fā)送命令來完成,也可以在軟件A中進(jìn)行設(shè)計(jì),使得軟件A能夠自動(dòng)識別以及加載,從而實(shí)現(xiàn)軟件B的升級相關(guān)功能的加載。在本發(fā)明中,對舊版本軟件A也有一定要求,即軟件A必須能夠?yàn)樾掳姹拒浖﨎預(yù)留一部分內(nèi)存,同時(shí)能夠?qū)⒔邮盏降男掳姹拒浖﨎升級相關(guān)信息加載到預(yù)留內(nèi)存部分。但是這一點(diǎn)并不會(huì)限制本發(fā)明的使用,因?yàn)樵谶M(jìn)行了前續(xù)的工作后,即利用現(xiàn)有技術(shù)進(jìn)行了第一次更新后,使得軟件擁有了上述功能,以后的更新就都可以使用本發(fā)明中的方法了。此時(shí),基站仍然在運(yùn)行原有軟件A,但是軟件B的升級相關(guān)部分已經(jīng)在內(nèi)存中了。
接著進(jìn)入步驟130,更改基站軟件函數(shù)入口,使升級相關(guān)部分更新為新版本軟件的升級部分。在此步驟中,可以在系統(tǒng)符號中尋找新功能的入口,而新功能的入口名稱已經(jīng)由原有軟件A在步驟110中在傳送完了新版本軟件B的升級相關(guān)部分之后獲得了。然后把功能函數(shù)替換成新的功能入口。這一步驟也可以設(shè)計(jì)相應(yīng)的功能由軟件來實(shí)現(xiàn)。通過這一步驟,原有軟件A的基站的業(yè)務(wù)運(yùn)行相關(guān)的部分?jǐn)嚅_了與軟件A升級相關(guān)部分的連接,而與預(yù)留內(nèi)存中的新版本軟件B的升級相關(guān)的部分相連接了,此時(shí),基站業(yè)務(wù)運(yùn)行相關(guān)的部分仍然在運(yùn)行原有軟件A,而升級相關(guān)部分已經(jīng)在運(yùn)行新版本軟件B的相關(guān)部分了。
接著進(jìn)入步驟140,系統(tǒng)使用新加載的升級相關(guān)功能來傳送新版本軟件的剩余部分。此時(shí)基站里與升級相關(guān)的部分已經(jīng)更新為了新版本軟件B的相關(guān)部分,而其余部分仍然在運(yùn)行原有軟件A。因此剩下的升級過程都由新版本軟件B的相關(guān)功能來完成了。例如,若為了提高傳送效率,新增加了壓縮功能,而原有軟件A沒有解壓縮功能,原有方法無法方便完成升級功能,而在本發(fā)明的方法中,由于已經(jīng)在上述的步驟中將升級相關(guān)的部分加載并運(yùn)行了,而解壓縮功能由于與升級相關(guān)也被包含在其中被加載了,因此此時(shí)的基站軟件具有了解壓縮功能,就能完成后續(xù)文件的接收以及解壓縮,從而完成功能的無縫銜接。又例如,為了提高傳送效率,增加了對軟件包的預(yù)先讀取,如相同則不進(jìn)行傳送,而僅僅傳送不相同的部分,像這樣引入了新的功能,則需更改軟件包的結(jié)構(gòu),從而造成原有運(yùn)行軟件無法識別新格式的軟件包,而在現(xiàn)有發(fā)明中,新軟件B的升級相關(guān)部分則能夠識別這種軟件包的格式更改,同時(shí)及時(shí)引入和利用了新的升級相關(guān)功能。在本步驟完成時(shí),基站中存在新舊兩種版本的軟件。
最后進(jìn)入步驟150,系統(tǒng)操作員復(fù)位基站各部件,開始運(yùn)行新版本軟件。從而完成了軟件的更新。在本步驟中,基站各部件在短時(shí)間內(nèi)復(fù)位后,即開始運(yùn)行新版本軟件,因此業(yè)務(wù)中斷時(shí)間很短。
雖然通過參照本發(fā)明的某些優(yōu)選實(shí)施例,已經(jīng)對本發(fā)明進(jìn)行了圖示和描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對其作各種各樣的改變,而不偏離所附權(quán)利要求書所限定的本發(fā)明的精神和范圍。
權(quán)利要求
1.一種軟件更新方法,其特征在于,包含以下步驟A服務(wù)器向待升級系統(tǒng)發(fā)送新版本軟件的升級相關(guān)部分;B在所述待升級系統(tǒng)的內(nèi)存中加載所述升級相關(guān)部分;C通過更改函數(shù)入口,將正在運(yùn)行的舊版本軟件的升級相關(guān)部分替換為所述新版本軟件的升級相關(guān)部分;D所述待升級系統(tǒng)使用所述新版本軟件的升級相關(guān)部分,下載所述新版本軟件的剩余部分,完成所述新舊版本軟件的替換。
2.根據(jù)權(quán)利要求1所述的軟件更新方法,其特征在于,所述步驟A中,在所述服務(wù)器向所述待升級系統(tǒng)發(fā)送所述新版本軟件的升級相關(guān)部分之前,還包含以下步驟所述服務(wù)器向所述基站發(fā)送所述新版本軟件的包頭部。
3.根據(jù)權(quán)利要求1所述的軟件更新方法,其特征在于,在所述步驟D之后,還包含復(fù)位所述待升級系統(tǒng)的步驟。
4.根據(jù)權(quán)利要求1所述的軟件更新方法,其特征在于,所述待升級系統(tǒng)是基站。
5.根據(jù)權(quán)利要求2所述的軟件更新方法,其特征在于,下載所述新版本軟件的包頭部時(shí),采用所述舊版本軟件的升級相關(guān)部分可以支持的格式,并且,所述包頭部中包含版本信息以及后續(xù)文件個(gè)數(shù)、大小。
6.根據(jù)權(quán)利要求1所述的軟件更新方法,其特征在于,下載所述新版本軟件的升級相關(guān)部分時(shí),采用所述舊版本軟件的升級相關(guān)部分可以支持的格式。
7.根據(jù)權(quán)利要求1所述的軟件更新方法,其特征在于,下載所述新版本軟件的剩余部分時(shí),采用所述新版本軟件的升級相關(guān)部分可以支持的格式。
全文摘要
本發(fā)明涉及通信領(lǐng)域,公開了一種軟件更新方法,使得能夠在一次更新過程中,提供軟件新增功能的無縫銜接和新版本軟件的格式更改,同時(shí)使得軟件升級方法對未來的未知需求有最佳的適應(yīng)能力,并能提高軟件升級效率。本發(fā)明將要升級的軟件分為兩部分與軟件升級相關(guān)的部分和其余部分,同時(shí)將軟件更新也分為兩個(gè)步驟,更新與軟件升級相關(guān)的部分以及更新其余部分。使得在加載了與軟件升級相關(guān)的部分后,便可利用新的軟件升級部分來更新其余的新版本軟件。
文檔編號G06F9/445GK1710539SQ200410049468
公開日2005年12月21日 申請日期2004年6月16日 優(yōu)先權(quán)日2004年6月16日
發(fā)明者劉正 申請人:華為技術(shù)有限公司