專利名稱:一種軟件升級及回退方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信設(shè)備中的軟件升級技術(shù),特別是涉及一種軟件升級及回退方法。
背景技術(shù):
在電信設(shè)備中,衡量可靠性的一個重要指標(biāo)是平均無故障運行時間(MTBF)。在實際統(tǒng)計中,影響MTBF指標(biāo)導(dǎo)致系統(tǒng)中斷服務(wù)的各種中斷中,最關(guān)鍵的情況就是計劃性中斷,而計劃性中斷的最主要的活動就是升級和升級失敗后的回退。軟件的升級和回退都可能導(dǎo)致系統(tǒng)服務(wù)的中斷,盡量的縮小這個中斷時間,就等于提高了系統(tǒng)的可靠性,因此如何降低升級和升級失敗后的回退時間是提高系統(tǒng)可靠性中要考慮的重要問題。
一般而言,軟件版本越高,所提供的功能越多越強(qiáng)。因此,可以在不改變硬件設(shè)備的條件下,通過對軟件版本進(jìn)行升級來修改原有軟件版本的缺陷,實現(xiàn)更多功能。通??梢酝ㄟ^操作維護(hù)中心(OMC)對電信設(shè)備中的軟件版本進(jìn)行升級。
對于電信設(shè)備,其一般都由一個個機(jī)架以及相關(guān)的機(jī)架內(nèi)或機(jī)架外的服務(wù)器、操作維護(hù)臺等組成,機(jī)架中是一個或多個機(jī)框,機(jī)框可能包括一個或多個業(yè)務(wù)框、配電框、風(fēng)扇框等。對于業(yè)務(wù)框,則其由一般業(yè)務(wù)板、接口板、信令板、系統(tǒng)板等單板組成,這些單板上運行的軟件和數(shù)據(jù)一般在第一次啟動或升級時需要從后臺服務(wù)器加載。當(dāng)進(jìn)行電信設(shè)備的軟件升級時,需要為電信設(shè)備中的單板加載新版本的軟件和數(shù)據(jù)。
現(xiàn)有技術(shù)一進(jìn)行電信設(shè)備軟件升級的方法為在電信設(shè)備的加載服務(wù)器上劃分主備兩個區(qū),分別放置升級前和升級后的程序和數(shù)據(jù)。當(dāng)進(jìn)行升級時,將加載服務(wù)器上的主備區(qū)進(jìn)行切換,即將存放升級后程序和數(shù)據(jù)的存儲區(qū)稱為主區(qū),將存放升級前程序和數(shù)據(jù)的存儲區(qū)稱為備區(qū)。然后令各個單板加載服務(wù)器主區(qū)中的程序和數(shù)據(jù),從而完成所有單板的升級。當(dāng)升級失敗時,需要回退到原始的軟件版本?;赝诉^程為首先切換加載服務(wù)器上的主備區(qū),即將存放升級前程序和數(shù)據(jù)的存儲區(qū)稱為主區(qū),將存放升級后程序和數(shù)據(jù)的存儲區(qū)稱為備區(qū),這樣主區(qū)就重新恢復(fù)到升級前的軟件和數(shù)據(jù),然后單板復(fù)位,重新加載主區(qū)的軟件和數(shù)據(jù),就能夠?qū)崿F(xiàn)升級失敗后的回退。
但是,在這種升級及回退方法中,當(dāng)升級失敗要回退時,由于所有單板需要重新從加載服務(wù)器上加載軟件,導(dǎo)致回退時間比較長,從而影響了系統(tǒng)的可靠性。
針對上述軟件升級及回退時間較長的缺點,還存在一種電信設(shè)備軟件升級的方法可以盡可能地縮短升級及回退時間。該方法包括首先控制備用單板在線升級到升級后的軟件版本,然后備用單板重新啟動,倒換單板,將原來的備用作為主用單板提供業(yè)務(wù),而將原來的主用單板降備,并對降備的單板進(jìn)行升級操作,最后啟動降備的單板,從而完成所有單板的升級。
采用這種操作方法可以盡可能地縮短升級中斷時間,但這個操作本身比較復(fù)雜,對軟件的設(shè)計要求也較高,因此實現(xiàn)起來比較困難。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種軟件升級及回退方法,使其能縮短軟件升級及回退的時間,提高系統(tǒng)的可靠性。
為達(dá)到上述發(fā)明目的,采用了如下技術(shù)方案一種軟件升級及回退方法,其特征在于,將設(shè)備中單板的非易失性存儲器分為主區(qū)和備區(qū),該方法包括a、設(shè)備加載并運行舊版本軟件,在進(jìn)行軟件升級時,將新版本軟件及其配置數(shù)據(jù)下載到設(shè)備中單板的非易失性存儲器的備區(qū);b、激活新版本軟件,完成新版本軟件的升級,設(shè)備運行新版本軟件;
c、判斷新版本軟件運行是否正常,若運行正常,則新版本軟件升級成功,進(jìn)行設(shè)備中單板的非易失性存儲器主備區(qū)切換,將升級后的軟件版本切換為主區(qū),并結(jié)束升級流程;否則進(jìn)行舊版本軟件回退,設(shè)備中單板加載并運行非易失性存儲器主區(qū)中的升級前的舊版本軟件,并結(jié)束升級流程。
較佳地,步驟a中所述的設(shè)備加載舊版本軟件可以為設(shè)備中單板第一次啟動時,從后臺服務(wù)器加載舊版本軟件,并將加載的舊版本軟件寫入單板的非易失性存儲器;或者,設(shè)備中單板非第一次啟動時,后臺服務(wù)器控制單板從其本身的非易失性存儲器中加載舊版本軟件。
較佳地,所述的后臺服務(wù)器控制單板從其本身的非易失性存儲器中加載舊版本軟件可以為后臺服務(wù)器向單板發(fā)送加載命令,該命令中包含要加載軟件版本信息;單板選擇與加載命令中軟件版本信息一致的非易失性存儲器主區(qū)或備區(qū)軟件進(jìn)行加載,若主區(qū)和備區(qū)的軟件與加載命令中的軟件版本信息均不一致,則從后臺服務(wù)器加載,且在加載命令的控制下選擇是否將加載的軟件版本寫入單板的非易失性存儲器。
較佳地,所述的寫入單板的非易失性存儲器可以為寫入非易失性存儲器的主區(qū)。
當(dāng)新版本軟件包含補(bǔ)丁時,較佳地,所述步驟a可以進(jìn)一步包括將新版本軟件的補(bǔ)丁下載到設(shè)備中單板的非易失性存儲器的備區(qū)。
較佳地,步驟b中所述的激活新版本軟件可以為修改設(shè)備后臺服務(wù)器的加載控制,使得設(shè)備中單板在后臺服務(wù)器的控制下,從單板的非易失性存儲器備區(qū)加載新版本軟件及其配置數(shù)據(jù)。
較佳地,步驟c中所述的判斷新版本軟件運行是否正常可以為在一段預(yù)設(shè)時間內(nèi)試運行新版本軟件,并執(zhí)行軟件版本驗證操作,若經(jīng)過運行和驗證操作后,新版本軟件的運行狀況符合預(yù)定要求,則判定新版本軟件運行正常,否則判定新版本軟件運行不正常。
較佳地,步驟c中所述的進(jìn)行設(shè)備中單板的非易失性存儲器主備區(qū)切換可以為將主區(qū)標(biāo)志修改為備區(qū)標(biāo)志和將備區(qū)標(biāo)志修改為主區(qū)標(biāo)志。
較佳地,步驟c中所述的設(shè)備中單板加載非易失性存儲器主區(qū)中的升級前的舊版本軟件可以為修改后臺加載控制,并向單板發(fā)送加載命令,設(shè)備中單板接收到加載命令后,在該命令的控制下,從單板的非易失性存儲器中加載升級前的舊版本軟件及其配置數(shù)據(jù)。
較佳地,所述的非易失性存儲器可以為閃存Flash或電可擦除只讀存儲器EEPROM。
由上述技術(shù)方案可見,本發(fā)明提供一種軟件升級及回退方法,將設(shè)備中單板的非易失性存儲器分為主區(qū)和備區(qū)兩個軟件區(qū),其中存放兩份版本的軟件及其配置數(shù)據(jù)和補(bǔ)丁。在進(jìn)行軟件升級時,將新版本軟件及其配置數(shù)據(jù)和補(bǔ)丁下載到設(shè)備中單板的非易失性存儲器的備區(qū)后,通過修改后臺服務(wù)器的加載控制,要求設(shè)備中單板加載與接收到的加載命令中版本信息一致的新版本軟件,從而完成新版本軟件的升級;升級失敗后所進(jìn)行的回退過程同樣是修改后臺服務(wù)器的加載控制,要求設(shè)備中單板加載與接收到的加載命令中版本信息一致的升級前的舊版本軟件。即,本發(fā)明是通過提供設(shè)備中單板的非易失性存儲器主備區(qū)實現(xiàn)快速升級和回退,這樣,在升級失敗后的軟件回退時,設(shè)備中單板不需要再從后臺服務(wù)器下載舊版本軟件,而是直接從單板的非易失性存儲器中加載舊版本軟件即可,能夠有效縮短升級失敗的軟件回退時間,提高設(shè)備的可靠性。另外,本發(fā)明的軟件升級和回退方法,實現(xiàn)簡單,對軟件的設(shè)計要求也沒有增高。
圖1為本發(fā)明中軟件升級及回退方法的總體示意性流程圖。
圖2為本發(fā)明實施例一的軟件升級及回退方法的工作流程圖。
圖3為本發(fā)明實施例一中軟件升級時激活新版本軟件的具體操作流程圖。
圖4為本發(fā)明實施例一中軟件升級失敗后的軟件回退具體流程圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,說明本發(fā)明的具體實施方式
。
圖1為本發(fā)明中軟件升級及回退方法的總體流程圖。如圖1所示,該方法包括步驟101,將新版本軟件及其配置數(shù)據(jù)下載到設(shè)備中單板的非易失性存儲器備區(qū)。
步驟102,激活新版本軟件,完成新版本軟件的升級。
步驟103,設(shè)備運行新版本軟件。
步驟104,判斷新版本軟件運行是否正常,若運行正常,則執(zhí)行步驟105;否則執(zhí)行步驟106。
步驟105,進(jìn)行設(shè)備中單板的非易失性存儲器主備區(qū)切換,將升級后的軟件版本切換為主區(qū)并結(jié)束升級流程,則新版本軟件升級成功。
步驟106,進(jìn)行舊版本軟件回退,設(shè)備中單板加載并運行非易失性存儲器主區(qū)中的升級前的舊版本軟件,并結(jié)束升級流程,則新版本軟件升級失敗。
由上述技術(shù)方案可見,本發(fā)明通過在單板的非易失性存儲器上劃分主備區(qū),分別存儲升級前和升級后的軟件版本,從而實現(xiàn)快速升級和升級失敗后的快速回退,能夠有效縮短升級及回退時間,提高設(shè)備的可靠性。
下面舉具體實施例說明本發(fā)明的具體實施方式
。
圖2為本發(fā)明實施例的軟件升級及回退方法的工作流程圖。在本實施例中,單板的非易失性存儲器可以為閃存(Flash),將Flash的存儲器分為主區(qū)和備區(qū),分別存放一種版本的軟件。如圖2所示,該方法包括步驟201,判斷設(shè)備中單板是否為第一次啟動,若是,則執(zhí)行步驟202及其后續(xù)步驟,否則執(zhí)行步驟203及其后續(xù)步驟;本步驟中,設(shè)備中單板啟動時,如果是該單板第一次啟動,由于單板的Flash中還沒有存儲任何的軟件,因此這時單板啟動時,要從后臺服務(wù)器加載軟件,并寫入單板的Flash主區(qū)中;當(dāng)單板非第一次啟動時,單板的Flash中存儲有相應(yīng)的軟件,這時單板啟動時,則從單板的Flash加載軟件。
步驟202,從后臺服務(wù)器加載軟件,并執(zhí)行步驟204。
步驟203,后臺服務(wù)器控制單板從單板的Flash加載軟件;本步驟中,后臺服務(wù)器首先向單板發(fā)送加載命令,該命令中包含要加載軟件的版本信息;單板選擇與加載命令中版本信息一致的Flash主區(qū)或備區(qū)中的軟件進(jìn)行加載,若主區(qū)和備區(qū)的軟件與加載命令中的版本信息均不一致,則從后臺服務(wù)器加載,且在加載命令的控制下選擇是否將加載的軟件版本寫入單板的Flash;若加載命令中要求將后臺服務(wù)器中的軟件版本寫入單板的Flash,則將該軟件寫入單板的Flash主區(qū);有時,單板需要加載一些測試程序,以測試設(shè)備的某些性能,這時,就不需要將該測試程序?qū)懭雴伟宓腇lash中,那么加載命令就不會要求將后臺服務(wù)器中的軟件版本寫入單板的Flash。
步驟204,設(shè)備運行當(dāng)前版本軟件。
步驟205,判斷是否進(jìn)行軟件升級,若是,則執(zhí)行步驟206及其后續(xù)步驟,否則返回步驟204。
步驟206,將新版本軟件及其配置數(shù)據(jù)和補(bǔ)丁下載到設(shè)備中單板的Flash備區(qū)。
步驟207,激活新版本軟件,完成新版本軟件的升級。
步驟208,新版本軟件試運行。
步驟209,判斷新版本軟件運行是否正常,若運行正常,則執(zhí)行步驟210;否則執(zhí)行步驟211。若經(jīng)過運行和驗證操作后,新版本軟件的運行狀況符合預(yù)定要求,則判定新版本軟件運行正常,否則判定新版本軟件運行不正常。
本步驟中,判斷新版本軟件運行是否正常的方法可以為在一段預(yù)設(shè)時間內(nèi)試運行新版本軟件,并執(zhí)行軟件版本驗證操作,例如,進(jìn)行電話撥測、查看話務(wù)統(tǒng)計指標(biāo)、查看設(shè)備狀態(tài)等操作,以驗證新版本軟件運行是否正?;?。
步驟210,進(jìn)行單板的Flash主備區(qū)切換,將升級后的軟件版本切換為主區(qū)并結(jié)束升級流程,則新版本軟件升級成功。
本步驟中,進(jìn)行單板的Flash主備區(qū)切換的方法可以為,將非易失性存儲器中代表主區(qū)的標(biāo)志指向新版本軟件所在的區(qū);這樣,在Flash主區(qū)中存儲的軟件版本即為升級后的新版本軟件。
步驟211,進(jìn)行舊版本軟件回退,設(shè)備中單板加載并運行Flash主區(qū)中的升級前的舊版本軟件,并結(jié)束升級流程,則新版本軟件升級失敗。
至此,整個軟件升級及回退的流程結(jié)束。
在上述流程的步驟207中,激活新版本軟件即是使設(shè)備中的各個單板開始運行新版本的軟件,此過程是由后臺服務(wù)器來控制進(jìn)行的,具體處理流程如圖3所示,該流程為步驟207a,修改設(shè)備后臺服務(wù)器的加載控制,并向設(shè)備中單板發(fā)送加載命令;步驟207b,設(shè)備中單板接收后臺服務(wù)器的加載命令,在該命令的控制下,從單板的Flash備區(qū)加載新版本軟件及其配置數(shù)據(jù)和補(bǔ)丁;這樣就完成了新版本軟件的激活。在此之后,就可以對新版本軟件的運行進(jìn)行測試了。如果經(jīng)過測試表明新版本軟件運行不正常,那么就會開始步驟211中的升級失敗后的軟件回退過程,即,使設(shè)備仍然返回到升級前的狀態(tài),運行升級前的舊版本軟件。該回退過程的具體操作如圖4所示,具體包括步驟211a,修改后臺服務(wù)器的加載控制,向設(shè)備中單板發(fā)送加載命令;步驟211b,設(shè)備中單板在后臺服務(wù)器發(fā)送的加載命令的控制下,從單板的Flash主區(qū)加載升級前的舊版本軟件及其配置數(shù)據(jù)和補(bǔ)丁。
這樣,就快速完成了升級失敗后的軟件回退,此后,設(shè)備繼續(xù)運行舊版本軟件,為用戶提供正常服務(wù)。
由上述實施方式可以看出,本發(fā)明的升級和回退方法是通過提供單板的Flash主備區(qū)來實現(xiàn)的,而且升級和回退過程中軟件的加載是通過軟件的版本信息控制的。這樣能夠大大縮短升級和回退時間,而且實現(xiàn)簡單,對軟件設(shè)計要求沒有增高,能夠提高系統(tǒng)的可靠性。
在本實施例中,如果單板的Flash主區(qū)長度覆蓋備區(qū),那么備區(qū)就不可用,即不能將軟件寫入Flash備區(qū),這時,備區(qū)不可用的狀態(tài)是能夠查詢的。另外,當(dāng)Flash的后半段存儲區(qū)為主區(qū)時,主區(qū)中長出的內(nèi)容折到備區(qū)的開始段,即Flash的存儲區(qū)開始段填寫。
在本實施例中,單板的非易失性存儲器為Flash,當(dāng)然也可以采用其他類型的非易失性存儲器,如電可擦除只讀存儲器(EEPROM)等,只要能夠?qū)崿F(xiàn)存儲的功能即可。
以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種軟件升級及回退方法,其特征在于,將設(shè)備中單板的非易失性存儲器分為主區(qū)和備區(qū),該方法包括a、設(shè)備加載并運行舊版本軟件,在進(jìn)行軟件升級時,將新版本軟件及其配置數(shù)據(jù)下載到設(shè)備中單板的非易失性存儲器的備區(qū);b、激活新版本軟件,完成新版本軟件的升級,設(shè)備運行新版本軟件;c、判斷新版本軟件運行是否正常,若運行正常,則新版本軟件升級成功,進(jìn)行設(shè)備中單板的非易失性存儲器主備區(qū)切換,將升級后的軟件版本切換為主區(qū),并結(jié)束升級流程;否則進(jìn)行舊版本軟件回退,設(shè)備中單板加載并運行非易失性存儲器主區(qū)中的升級前的舊版本軟件,并結(jié)束升級流程。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟a中所述的設(shè)備加載舊版本軟件為設(shè)備中單板第一次啟動時,從后臺服務(wù)器加載舊版本軟件,并將加載的舊版本軟件寫入單板的非易失性存儲器;或者,設(shè)備中單板非第一次啟動時,后臺服務(wù)器控制單板從其本身的非易失性存儲器中加載舊版本軟件。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述的后臺服務(wù)器控制單板從其本身的非易失性存儲器中加載舊版本軟件為后臺服務(wù)器向單板發(fā)送加載命令,該命令中包含要加載軟件版本信息;單板選擇與加載命令中軟件版本信息一致的非易失性存儲器主區(qū)或備區(qū)軟件進(jìn)行加載,若主區(qū)和備區(qū)的軟件與加載命令中的軟件版本信息均不一致,則從后臺服務(wù)器加載,且在加載命令的控制下選擇是否將加載的軟件版本寫入單板的非易失性存儲器。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述的寫入單板的非易失性存儲器為寫入非易失性存儲器的主區(qū)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)新版本軟件包含補(bǔ)丁時,所述步驟a進(jìn)一步包括將新版本軟件的補(bǔ)丁下載到設(shè)備中單板的非易失性存儲器的備區(qū)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟b中所述的激活新版本軟件為修改設(shè)備后臺服務(wù)器的加載控制,使得設(shè)備中單板在后臺服務(wù)器的控制下,從單板的非易失性存儲器備區(qū)加載新版本軟件及其配置數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟c中所述的判斷新版本軟件運行是否正常為在一段預(yù)設(shè)時間內(nèi)試運行新版本軟件,并執(zhí)行軟件版本驗證操作,若經(jīng)過運行和驗證操作后,新版本軟件的運行狀況符合預(yù)定要求,則判定新版本軟件運行正常,否則判定新版本軟件運行不正常。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟c中所述的進(jìn)行設(shè)備中單板的非易失性存儲器主備區(qū)切換為將非易失性存儲器中代表主區(qū)的標(biāo)志指向新版本軟件所在的區(qū)。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟c中所述的設(shè)備中單板加載非易失性存儲器主區(qū)中的升級前的舊版本軟件為修改后臺加載控制,并向單板發(fā)送加載命令,設(shè)備中單板接收到加載命令后,在該命令的控制下,從單板的非易失性存儲器中加載升級前的舊版本軟件及其配置數(shù)據(jù)。
10.根據(jù)權(quán)利要求1到9中任意一項所述的方法,其特征在于,所述的非易失性存儲器為閃存Flash或電可擦除只讀存儲器EEPROM。
全文摘要
本發(fā)明公開一種軟件升級及回退方法,將設(shè)備中單板的非易失性存儲器分為主區(qū)和備區(qū)兩個軟件區(qū),其中存放兩份版本的軟件及其配置數(shù)據(jù)和補(bǔ)丁。在進(jìn)行軟件升級時,將新版本軟件及其配置數(shù)據(jù)和補(bǔ)丁下載到設(shè)備中單板的非易失性存儲器的備區(qū)后,通過修改后臺服務(wù)器的加載控制,要求設(shè)備中單板加載與接收到的加載命令中版本信息一致的新版本軟件,從而完成新版本軟件的升級;升級失敗后所進(jìn)行的回退過程為修改后臺服務(wù)器的加載控制,要求設(shè)備中單板加載與接收到的加載命令中版本信息一致的升級前的舊版本軟件。
文檔編號G06F11/14GK1889041SQ20061009918
公開日2007年1月3日 申請日期2006年8月2日 優(yōu)先權(quán)日2006年8月2日
發(fā)明者童運民 申請人:華為技術(shù)有限公司