專利名稱:一種客戶端啟動軟件的動態(tài)更新方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種啟動軟件的更新方法和裝置,特別是涉及一種分布式系統(tǒng)中客戶端啟動軟件的動態(tài)更新方法和裝置。
背景技術(shù):
目前移動通信領(lǐng)域的基站系統(tǒng)可能由分布在一個城市或地區(qū)的很廣范圍內(nèi)數(shù)以百計的基站組成,且為了便于維護,降低維護成本一般采用無人職守方式,通過網(wǎng)管系統(tǒng)進行自動化管理。
基站系統(tǒng)的各功能模塊的啟動都是由該模塊上的非易失性啟動引導存儲器(BOOT)上的啟動軟件來完成。目前該啟動軟件普遍采用專門的燒錄設備固化到BOOT上,一旦需要更新BOOT中的啟動軟件,就要求維護人員親自到上百個基站去取下相關(guān)模塊,替換其BOOT,這對于無人職守,分布廣泛的移動通信基站系統(tǒng)來說,無疑要耗費大量的人力、物力,增加了維護成本,加大了維護人員的工作量,也增加了系統(tǒng)的不穩(wěn)定性。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于提供一種客戶端啟動軟件的動態(tài)更新方法及其裝置,用于解決現(xiàn)有技術(shù)分布式系統(tǒng)中客戶端啟動軟件只能手工燒錄,無法動態(tài)更新的缺陷。
為了實現(xiàn)上述目的,本發(fā)明提供了一種客戶端啟動軟件的動態(tài)更新方法,適用于分布式系統(tǒng),其特征在于,包括步驟一,通過客戶端設置一第一啟動引導存儲器、一第二啟動引導存儲器;步驟二,服務器端與所述客戶端建立連接并向所述客戶端發(fā)送一動態(tài)更新啟動軟件的命令消息,所述客戶端從所述服務器端下載并保存更新啟動軟件;步驟三,根據(jù)引導存儲器啟動標志值判斷所述客戶端當前是從所述第一啟動引導存儲器還是從所述第二啟動引導存儲器啟動,將所述更新啟動軟件寫入非當前啟動引導存儲器,并設置所述客戶端下次從所述非當前啟動引導存儲器啟動;及步驟四,所述客戶端復位后從所述非當前啟動引導存儲器啟動,運行所述更新啟動軟件。
所述的客戶端啟動軟件的動態(tài)更新方法,其中,若所述客戶端當前從所述第一啟動引導存儲器啟動,則所述第二啟動引導存儲器啟動為非當前啟動引導存儲器;若所述客戶端當前從所述第二啟動引導存儲器啟動,則所述第一啟動引導存儲器啟動為非當前啟動引導存儲器。
所述的客戶端啟動軟件的動態(tài)更新方法,其中,所述步驟四中,還包括一判斷所述客戶端從所述非當前啟動引導存儲器啟動是否成功的步驟。
所述的客戶端啟動軟件的動態(tài)更新方法,其中,若所述客戶端從所述非當前啟動引導存儲器啟動失敗,則所述客戶端切換至所述當前啟動引導存儲器啟動,所述客戶端動態(tài)更新啟動軟件失敗。
為了實現(xiàn)上述目的,本發(fā)明還提供了一種客戶端啟動軟件的動態(tài)更新裝置,設置于分布式系統(tǒng)的客戶端,其特征在于,包括客戶端CPU、第一啟動引導存儲器、第二啟動引導存儲器、邏輯控制器以及非易失性隨機存取存儲器;所述邏輯控制器根據(jù)所述非易失性隨機存取存儲器中記錄的引導存儲器啟動模式值選擇從所述第一啟動引導存儲器或第二啟動引導存儲器啟動,并保存成功啟動的引導存儲器為當前啟動引導存儲器;所述客戶端CPU根據(jù)所述邏輯控制器中的啟動引導存儲器的編號將更新啟動軟件寫入非當前啟動引導存儲器,并將所述引導存儲器啟動模式值設置為非當前啟動引導存儲器;所述客戶端CPU在復位后根據(jù)所述引導存儲器啟動模式值從所述非當前啟動引導存儲器啟動,運行所述更新啟動軟件。
所述的客戶端啟動軟件的動態(tài)更新裝置,其中,所述邏輯控制器還包括一啟動引導存儲器定時切換模塊,用于在所述當前啟動引導存儲器與所述非當前啟動引導存儲器之間進行切換。
所述的客戶端啟動軟件的動態(tài)更新裝置,其中,當所述更新啟動軟件運行成功時,所述啟動引導存儲器定時切換模塊處于關(guān)閉狀態(tài);當所述更新啟動軟件運行失敗時,所述啟動引導存儲器定時切換模塊處于開啟狀態(tài)。
所述的客戶端啟動軟件的動態(tài)更新裝置,其中,當所述客戶端CPU從所述非當前啟動引導存儲器啟動失敗時,則所述客戶端CPU切換至所述當前啟動引導存儲器啟動。
所述的客戶端啟動軟件的動態(tài)更新裝置,其中,所述邏輯控制器為電可編程邏輯器。
本發(fā)明的有益技術(shù)效果在于相對于現(xiàn)有技術(shù)方法,本發(fā)明所提供的靈活可靠的動態(tài)更新方法和裝置可以根據(jù)需要在系統(tǒng)運行中,從有人職守的服務器端動態(tài)更新無人職守的客戶端啟動軟件,無需到分散的客戶端去更換BOOT,節(jié)省了大量人力、物力,降低了系統(tǒng)維護成本,大大增強了系統(tǒng)穩(wěn)定性。
以下結(jié)合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。
圖1為本發(fā)明客戶端啟動軟件動態(tài)更新裝置圖;圖2為本發(fā)明客戶端啟動軟件動態(tài)更新方法流程圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明的技術(shù)方案作進一步詳細的說明。
請參閱圖1所示,為本發(fā)明客戶端啟動軟件動態(tài)更新裝置圖。如圖1所示,該動態(tài)更新裝置設置于客戶端,包括CPU(Central Processing Unit,中央處理器)10、EPLD(Electrically Programmable Logic Device,電可編程邏輯器)20、BOOT 30和NVRAM(Non-Volatile Random Access Memory,非易失性隨機存取存儲器)40;BOOT 30用于存放不同版本的啟動軟件,其又包括BOOT0 301、BOOT1 302兩片BOOT;CPU 10只能從一片BOOT0 301或BOOT1 302啟動;NVRAM 40由于其具有掉電不丟失信息的特性,用于記錄BOOT啟動標志值(或稱為BOOT啟動模式值),即CPU 10復位后應該從BOOT0 301還是BOOT1302啟動。
EPLD 20在上電后根據(jù)NVRAM 40中記錄的BOOT啟動標志值選中一片BOOT,CPU 10從選中的BOOT啟動,即當前啟動BOOT。
EPLD 20在上電后將CPU 10的BOOT片選交給上述NVRAM 40記錄的BOOT啟動標志值對應的BOOT,使CPU 10從該BOOT啟動,并在BOOT啟動成功后保存當前啟動BOOT的編號;另外,作為一種BOOT保護機制,EPLD 20還包括一BOOT定時切換模塊201,用于實現(xiàn)BOOT定時切換,當選中的BOOT無法成功啟動時,EPLD 20的BOOT定時切換模塊201在定時時間到后將BOOT片選切換到另一片BOOT,使得CPU 10從另一片BOOT啟動,當BOOT成功啟動后,需要在啟動軟件中關(guān)閉該BOOT定時切換模塊201。
當需要動態(tài)更新啟動軟件時,CPU 10會讀取到當前啟動BOOT的編號,將更新的啟動軟件寫到非當前啟動BOOT中,并將NVRAM 40中的BOOT啟動標志值設定為非當前啟動BOOT,客戶端復位后,就會根據(jù)NVRAM 40中記錄的BOOT啟動標志值運行更新的啟動軟件,完成啟動軟件的動態(tài)更新。
EPLD 20也可為其他邏輯控制器。
而目前現(xiàn)有裝置則普遍采用一片BOOT,CPU 10只能從該BOOT啟動,BOOT所包含的啟動軟件的更新只能采用專門的燒錄設備固化到BOOT上。
請參閱圖2所示,為本發(fā)明客戶端啟動軟件動態(tài)更新方法流程圖。在圖2中,給出了本發(fā)明具體實施例的軟件流程,結(jié)合圖1所示,該流程包括如下步驟步驟200,系統(tǒng)正常運行后,服務器端與客戶端建立連接;步驟210,當軟件或硬件接口發(fā)生變化,需要更新客戶端BOOT的啟動軟件時,通過操作維護系統(tǒng)的服務器端(后臺)向客戶端發(fā)起動態(tài)更新客戶端啟動軟件的命令消息;步驟220,客戶端收到命令消息后,從服務器端下載更新的啟動軟件,經(jīng)校驗無誤后保存在隨機存儲器RAM(Random Access Memory)中;步驟230,接著客戶端根據(jù)啟動標志值判斷CPU當前是從BOOT0啟動還是從BOOT1啟動的,若CPU當前是從BOOT0啟動,BOOT0為當前啟動BOOT,那么BOOT1為非當前啟動BOOT;若CPU當前是從BOOT1啟動,BOOT1為當前啟動BOOT,那么BOOT0為非當前啟動BOOT;根據(jù)EPLD記錄的啟動標志值,確定當前啟動BOOT的編號,客戶端將下載獲得的更新的啟動軟件寫入到非當前啟動BOOT中,非當前啟動BOOT成為更新了啟動軟件的BOOT,由于EPLD中保留了當前啟動BOOT的編號,由EPLD來確保每次CPU寫B(tài)OOT操作都只能將數(shù)據(jù)寫入非當前啟動BOOT,用于保護當前啟動成功的BOOT啟動軟件不被破壞。
步驟240,然后客戶端將BOOT啟動模式值(即非當前啟動BOOT的BOOT啟動模式值)寫入NVRAM,指示下一次復位時,CPU從更新了啟動軟件的BOOT啟動;步驟250,復位客戶端;步驟260,客戶端復位后,客戶端的EPLD根據(jù)NVRAM中存儲的BOOT啟動模式值,將BOOT片選交給更新了啟動軟件的BOOT啟動,CPU從該更新了啟動軟件的BOOT啟動,運行更新的啟動軟件;步驟270,通過啟動軟件是否關(guān)閉了EPLD的BOOT定時切換模塊來判斷更新的啟動軟件是否成功運行,如果更新的啟動軟件成功運行,即CPU從該更新了啟動軟件的BOOT啟動成功,則轉(zhuǎn)至步驟280執(zhí)行,如果更新的啟動軟件無法成功運行(即運行失敗),即CPU從該更新了啟動軟件的BOOT啟動失敗,則轉(zhuǎn)至步驟290執(zhí)行;步驟280,啟動軟件關(guān)閉了EPLD的BOOT切換功能,BOOT定時切換模塊處于關(guān)閉狀態(tài),將當前啟動BOOT的編號寫入EPLD,客戶端設置更新了啟動軟件的BOOT為當前啟動BOOT,本次客戶端啟動軟件動態(tài)更新成功,以后客戶端使用新的啟動軟件啟動,即下一次運行更新的啟動軟件;步驟290,EPLD中BOOT定時切換模塊處于開啟狀態(tài),其BOOT定時切換功能起作用,待定時時間到后,將BOOT片選切換到包含舊啟動軟件的BOOT啟動,本次客戶端啟動軟件動態(tài)更新失敗,以后客戶端仍然使用舊的啟動軟件啟動,即下一次仍然運行舊的啟動軟件。
綜上所述,本發(fā)明方法和裝置克服了現(xiàn)有啟動軟件只能手工燒錄和替換的缺陷,可以動態(tài)更新客戶端的啟動軟件,并采用了有效的保護機制以確保動態(tài)更新的安全可靠,從而節(jié)省了大量人力、物力,降低了維護成本,增加了系統(tǒng)的穩(wěn)定性。
當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當可根據(jù)本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權(quán)利要求的保護范圍。
權(quán)利要求
1.一種客戶端啟動軟件的動態(tài)更新方法,適用于分布式系統(tǒng),其特征在于,包括步驟一,通過客戶端設置一第一啟動引導存儲器、一第二啟動引導存儲器;步驟二,服務器端與所述客戶端建立連接并向所述客戶端發(fā)送一動態(tài)更新啟動軟件的命令消息,所述客戶端從所述服務器端下載并保存更新啟動軟件;步驟三,根據(jù)引導存儲器啟動標志值判斷所述客戶端當前是從所述第一啟動引導存儲器還是從所述第二啟動引導存儲器啟動,將所述更新啟動軟件寫入非當前啟動引導存儲器,并設置所述客戶端下次從所述非當前啟動引導存儲器啟動;及步驟四,所述客戶端復位后從所述非當前啟動引導存儲器啟動,運行所述更新啟動軟件。
2.根據(jù)權(quán)利要求1所述的客戶端啟動軟件的動態(tài)更新方法,其特征在于,若所述客戶端當前從所述第一啟動引導存儲器啟動,則所述第二啟動引導存儲器啟動為非當前啟動引導存儲器;若所述客戶端當前從所述第二啟動引導存儲器啟動,則所述第一啟動引導存儲器啟動為非當前啟動引導存儲器。
3.根據(jù)權(quán)利要求1或2所述的客戶端啟動軟件的動態(tài)更新方法,其特征在于,所述步驟四中,還包括一判斷所述客戶端從所述非當前啟動引導存儲器啟動是否成功的步驟。
4.根據(jù)權(quán)利要求3所述的客戶端啟動軟件的動態(tài)更新方法,其特征在于,若所述客戶端從所述非當前啟動引導存儲器啟動失敗,則所述客戶端切換至所述當前啟動引導存儲器啟動,所述客戶端動態(tài)更新啟動軟件失敗。
5.一種客戶端啟動軟件的動態(tài)更新裝置,設置于分布式系統(tǒng)的客戶端,其特征在于,包括客戶端CPU、第一啟動引導存儲器、第二啟動引導存儲器、邏輯控制器以及非易失性隨機存取存儲器;所述邏輯控制器根據(jù)所述非易失性隨機存取存儲器中記錄的引導存儲器啟動模式值選擇從所述第一啟動引導存儲器或第二啟動引導存儲器啟動,并保存成功啟動的引導存儲器為當前啟動引導存儲器;所述客戶端CPU根據(jù)所述邏輯控制器中的啟動引導存儲器的編號將更新啟動軟件寫入非當前啟動引導存儲器,并將所述引導存儲器啟動模式值設置為非當前啟動引導存儲器;所述客戶端CPU在復位后根據(jù)所述引導存儲器啟動模式值從所述非當前啟動引導存儲器啟動,運行所述更新啟動軟件。
6.根據(jù)權(quán)利要求5所述的客戶端啟動軟件的動態(tài)更新裝置,其特征在于,所述邏輯控制器還包括一啟動引導存儲器定時切換模塊,用于在所述當前啟動引導存儲器與所述非當前啟動引導存儲器之間進行切換。
7.根據(jù)權(quán)利要求6所述的客戶端啟動軟件的動態(tài)更新裝置,其特征在于,當所述更新啟動軟件運行成功時,所述啟動引導存儲器定時切換模塊處于關(guān)閉狀態(tài);當所述更新啟動軟件運行失敗時,所述啟動引導存儲器定時切換模塊處于開啟狀態(tài)。
8.根據(jù)權(quán)利要求5、6或7所述的客戶端啟動軟件的動態(tài)更新裝置,其特征在于,當所述客戶端CPU從所述非當前啟動引導存儲器啟動失敗時,則所述客戶端CPU切換至所述當前啟動引導存儲器啟動。
9.根據(jù)權(quán)利要求5、6或7所述的客戶端啟動軟件的動態(tài)更新裝置,其特征在于,所述邏輯控制器為電可編程邏輯器。
全文摘要
本發(fā)明公開了一種客戶端啟動軟件的動態(tài)更新方法及其裝置,適用于分布式系統(tǒng),該方法包括步驟一,通過客戶端設置第一啟動引導存儲器、第二啟動引導存儲器;步驟二,服務器端與所述客戶端建立連接并向所述客戶端發(fā)送動態(tài)更新啟動軟件的命令消息,所述客戶端從所述服務器端下載并保存更新啟動軟件;步驟三,根據(jù)引導存儲器啟動標志值判斷所述客戶端當前是從所述第一啟動引導存儲器還是從所述第二啟動引導存儲器啟動,將所述更新啟動軟件寫入非當前啟動引導存儲器,并設置所述客戶端下次從所述非當前啟動引導存儲器啟動;及步驟四,所述客戶端復位后從所述非當前啟動引導存儲器啟動,運行所述更新啟動軟件。本發(fā)明實現(xiàn)了客戶端啟動軟件的動態(tài)更新。
文檔編號G06F9/445GK101078990SQ20061001199
公開日2007年11月28日 申請日期2006年5月25日 優(yōu)先權(quán)日2006年5月25日
發(fā)明者汪康洪, 丁華 申請人:中興通訊股份有限公司