專利名稱:一種軟件升級方法及其系統的制作方法
技術領域:
本發明涉及通信領域的終端軟件的升級技術,更具體地說,涉及一種適用終端設備的軟件在線升級方法及其系統。
背景技術:
在產品開發過程中,經常需要對現有軟件系統進行更新和升級,軟件在線升級就是解決此類問題的一種實時高效方案,它不需要外部進行控制,只要在軟件系統中加入相關的具備下載升級功能的升級子模塊,軟件系統就會自動地根據預先設置的條件去在線下載和升級對應軟件。在軟件在線升級過程中,主要涉及到軟件下載、軟件更新、如何保證升級的可靠性和升級中出現異常以及系統的自恢復性等技術。
現有技術中提供了一種軟件在線升級的方法,在終端模塊的可配置區域劃出一區域存儲下載程序的監控結構變量,包括升級程序變量、監控變量、異常復位變量等;監控中心進行軟件升級時,將升級程序傳輸到終端模塊并保存到可配置區域中;對下載程序的監控變量賦值并存入可配置區域;停止看門狗,等看門狗規定時間到后,復位CPU,重啟終端;終端模塊重啟后,根據監控變量的值確定下一步流程升級、等待或異常復位而需要運行出廠程序;監控中心對運行升級包的監控模塊的運行情況進行監測,發現運行無誤后,下發取消監控命令;監控模塊收到取消監控命令后,將監控變量置為“否”,以后終端運行后,不再判斷是否異常復位,直接運行升級程序。
由上述可知,該方案存在以下缺點1)軟件升級的過程由監控中心來統一控制;2)設置標志復雜,而且需要單獨開辟配置區域來保存該設置標志,增加了軟件的復雜度和出錯概率;
3)軟件進行升級前都需要重新啟動系統,無法做到實時高效升級;4)對于升級軟件是否成功更新由監控中心來監控,極大的增加了軟件的復雜性,降低了終端系統的可靠性;5)終端軟件系統升級失敗后不能恢復為出廠程序,增加了額外的存儲空間,增大了終端的成本,不適用于小型終端設備,而且終端設備的自恢復功能比較差,一旦出廠程序也出問題,終端將無法啟動。
發明內容
本發明的目的在于提供一種根據下載的升級配置文件中的升級包信息,通過網絡協議下載并在線升級指定的終端軟件的軟件升級方法及其系統。
本發明解決其技術問題所采用的技術方案是構造一種軟件升級方法,該方法包括以下步驟S1.下載升級配置文件,獲取其中的升級包信息并保存;S2.根據所述升級包信息,調用網絡協議下載升級包到終端設備內存區域;S3.更新所述升級包到終端設備的非易失性存儲區域。
在本發明所述的方法中,在執行所述步驟S1之前進一步包括檢測系統軟件的升級需求或網絡服務器發送的升級信息,若檢測到所述升級需求或升級信息,則執行所述步驟S1。
在本發明所述的方法中,所述步驟S3包括S31.設置寫系統軟件標志,將所述升級包更新到終端設備的非易失性存儲區域中;S32.所述升級包完成到終端設備的非易失性存儲區域的更新后,清除所述寫系統軟件標志。
在本發明所述的方法中,所述步驟S31前進一步包括對所述下載的升級包的有效性和合法性進行驗證,若驗證通過,則執行所述步驟S31。
在本發明所述的方法中,所述方法進一步包括重新啟動所述終端系統,檢測所述寫系統軟件標志是否位于設置狀態,若沒有位于所述設置狀態,所述升級軟件包升級成功;
否則,從所述終端軟件的可配置區域中讀取服務器信息,根據所述服務器信息通過網絡協議下載Mini系統,并將其保存在所述終端設備的內存中;啟動所述Mini系統并順序執行所述步驟S1、步驟S2和步驟S3。
在本發明所述的方法中,所述升級包信息包括升級包的文件名與所述升級包的URL地址。
在本發明所述的方法中,所述步驟S2中,所述網絡協議包括HTTP協議或FTP協議。
一種軟件升級系統,包括升級服務器和終端設備,所述終端設備設有非易失性存儲設備區域,所述非易失性存儲設備區域用于存放系統軟件和系統啟動軟件,所述系統啟動軟件用于加載并運行終端軟件系統;所述系統軟件包括升級子模塊,用于軟件在線升級,所述升級服務器為終端設備提供軟件升級文件,還包括所述非易失性存儲設備區域還包括協議處理模塊,所述系統啟動軟件調用所述協議處理模塊完成所述升級文件的下載、備份和遠程加載。
在本發明所述的系統中,所述非易失性存儲設備區域設有寫系統軟件標志,所述系統軟件標志用于檢測所述升級軟件是否成功更新。
在本發明所述的系統中,所述服務器具體包括第一服務器,用于存儲終端軟件的升級配置文件;第二服務器,用于存儲終端軟件的升級包;所述終端設備根據從所述第一服務器下載的所述升級配置文件到所述第二服務器中下載對應的升級包。
本發明的有益效果是,1)本發明實現簡單,不需要監控中心對軟件升級過程進行監控,并采用系統啟動軟件對相關標志進行判斷,實現對軟件可靠性的檢驗,降低了終端系統軟件的復雜度;2)由啟動軟件調用協議并通過網絡來實現系統軟件備份,有效地利用了網絡資源并節約了終端存儲空間,降低成本;3)不需要每次升級都重啟系統,可以有效地做到實時高效地在線升級;
4)通過在終端系統的啟動軟件調用網絡協議遠程加載并啟動Mini系統,實現了在有限的空間中具備容錯恢復的功能,可靠性高;5)通過下載升級配置文件并根據該升級配置文件中的升級包信息下載并升級對應的終端系統軟件,在終端系統軟件有多個的情況下,具有極高的靈活性和可配置性,同時,也可以根據URL不同分布來降低相關在線升級服務器的網絡負載。
下面將結合附圖及實施例對本發明作進一步說明,附圖中圖1是本發明軟件升級的流程圖;圖2是圖1的軟件升級的詳細流程圖;圖3是本發明重啟終端系統后的流程圖。
具體實施例方式
如圖1所示,一種終端軟件在線升級的示意圖,包括以下步驟S100、下載升級配置文件,獲取其中的升級包信息并保存;S105、根據所述升級包信息,調用網絡協議下載升級包到終端設備內存區域;S110、更新所述升級包到終端設備的非易失性存儲區域。
本發明還同時公開了一種軟件升級系統,包括升級服務器和終端設備,所述終端設備設有非易失性存儲設備區域,所述非易失性存儲設備區域分為兩個用于存放系統軟件和系統啟動軟件,所述系統啟動軟件用于加載并運行終端軟件系統;所述系統軟件包括升級子模塊,用于軟件在線升級,所述升級服務器為終端設備提供軟件升級文件,還包括所述非易失性存儲設備區域還包括協議處理模塊,所述系統啟動軟件調用所述協議處理模塊完成所述升級文件的下載、備份和遠程加載。
所述非易失性存儲設備區域設有寫系統軟件標志,所述系統軟件標志用于檢測所述升級軟件是否成功更新。
所述服務器具體包括第一服務器,用于存儲終端軟件的升級配置文件;第二服務器,用于存儲終端軟件的升級包;所述終端設備根據從所述第一服務器下載的所述升級配置文件到所述第二服務器中下載對應的升級包。以下對上述步驟以及系統作詳細說明。
如圖2所示,步驟S200中,當系統軟件中的升級子模塊自動檢測到當前系統軟件需要升級,或者接收到網上服務器發來的升級信息時,就會產生一個單獨的子線程來啟動升級流程(步驟S202中)。
步驟S204中,當升級子線程成功創建后,首先從指定的升級服務器(即第一服務器)中將需要升級的升級配置文件下載到本地終端設備,然后再對該升級配置文件進行解析,并從中獲取道需要升級的文件名與再網絡上存放的URL地址,同時將其保存在非易失性存儲設備區域(步驟S206中)。
步驟S208中,升級子線程根據從上述升級配置文件的升級文件名與URL地址,調用協議模塊從與文件名和URL地址對應的下載服務器(即第二服務器)中下載需要升級的升級包,并將其保存在終端設備的內存區域,所述協議模塊為HTTP協議模塊或FTP協議模塊等。
步驟S210中,當升級包下載完畢,根據程序約定的算法和條件對升級包的有效性和合法性進行驗證。如果所述升級包驗證失敗,則升級子線程自動退出,不再繼續升級流程(步驟S212中)。如果該升級包驗證成功,則認為是合法的升級包,并啟動更新終端軟件系統過程。
步驟S214中,升級子線程首先設置寫系統軟件標志,然后把通過驗證的升級包更新到終端設備的非易失性存儲設備區域實現終端軟件的在線升級。(步驟S216中)。
步驟S218中,當成功更新升級包完成終端軟件的在線升級后,則清除上述步驟S214所設置的寫系統軟件標志位,升級子模塊完程在線升級軟件后,通知終端系統軟件升級完畢,由于不需要每次升級都重啟系統而由終端系統決定是否重新啟動終端系統以檢測軟件的在線升級是否成功完成,見步驟S220,這樣可以有效地做到實時高效的在線升級。
如圖3所示,步驟S300中,終端設備還可以通過重新啟動終端系統來檢測上述軟件升級是否成功。當終端設備重新啟動終端系統時,系統啟動軟件都會首先檢測是否設置了寫系統軟件標志(步驟S302中),如果設置,則認為前次升級失敗,終端軟件系統已經被破壞,不可使用(步驟S304中)。這時,啟動軟件將不再從終端設備的非易失性存儲設備中加載并運行終端軟件系統,而是根據從終端軟件的可配置區域中讀取的服務器信息,該服務器信息包括服務器地址、端口以及文件名等信息。然后,啟動協議模塊,根據服務器信息到指定的服務器去下載具備升級子模塊的Mini系統,并將其保存在終端設備(步驟S306中)。當運行Mini系統使其啟動后,Mini系統也將產生一個升級子線程,并重新執行圖2所示的從步驟S204-S220的升級流程,以恢復正常終端系統軟件(步驟S308中)。
步驟S310中,如果沒有設置寫系統軟件標志,表示終端軟件系統升級成功。步驟S312中,如果啟動軟件在加載終端系統軟件后,運行成功,那么就可以進入正常系統流程(步驟S314中)。
在具體實現過程中,有可能在更新軟件的過程中出現錯誤,卻認為是成功更新的情況。這時,在上述步驟S302中,就會出現寫系統軟件標志位已經被清除,但是,當啟動軟件在加載終端系統軟件后,運行失敗。這時,系統啟動軟件將會重新設置寫系統軟件標志,并再次重新啟動終端系統(步驟S316),再次執行上述步驟S300-S308的流程。
由此可知,上述在線軟件升級方法實現可靠,不存在當升級失敗后終端軟件系統就無法啟動,最終無法運行的問題,只要終端系統能連上網絡,那么終端系統最終都可以恢復。
權利要求
1.一種軟件升級方法,其特征在于,該方法包括以下步驟S1.下載升級配置文件,獲取其中的升級包信息并保存;S2.根據所述升級包信息,調用網絡協議下載升級包到終端設備內存區域;S3.更新所述升級包到終端設備的非易失性存儲區域。
2.根據權利要求1所述的方法,其特征在于,在執行所述步驟S1之前進一步包括檢測系統軟件的升級需求或網絡服務器發送的升級信息,若檢測到所述升級需求或升級信息,則執行所述步驟S1。
3.根據權利要求1所述的方法,其特征在于,所述步驟S3包括S31.設置寫系統軟件標志,將所述升級包更新到終端設備的非易失性存儲區域中;S32.所述升級包完成到終端設備的非易失性存儲區域的更新后,清除所述寫系統軟件標志。
4.根據權利要求3所述的方法,其特征在于,所述步驟S31前進一步包括對所述下載的升級包的有效性和合法性進行驗證,若驗證通過,則執行所述步驟S31。
5.根據權利要求1至4中任一項所述的方法,其特征在于,所述方法進一步包括重新啟動所述終端系統,檢測所述寫系統軟件標志是否位于設置狀態,若沒有位于所述設置狀態,所述升級軟件包升級成功;否則,從所述終端軟件的可配置區域中讀取服務器信息,根據所述服務器信息通過網絡協議下載Mini系統,并將其保存在所述終端設備的內存中;啟動所述Mini系統并順序執行所述步驟S1、步驟S2和步驟S3。
6.根據權利要求1所述的方法,其特征在于,所述升級包信息包括升級包的文件名與所述升級包的URL地址。
7.根據權利要求1所述的方法,其特征在于,所述步驟S2中,所述網絡協議包括HTTP協議或FTP協議。
8.一種軟件升級系統,包括升級服務器和終端設備,所述終端設備設有非易失性存儲設備區域,所述非易失性存儲設備區域用于存放系統軟件和系統啟動軟件,所述系統啟動軟件用于加載并運行終端軟件系統;所述系統軟件包括升級子模塊,用于軟件在線升級,所述升級服務器為終端設備提供軟件升級文件,其特征在于所述非易失性存儲設備區域還包括協議處理模塊,所述系統啟動軟件調用所述協議處理模塊完成所述升級文件的下載、備份和遠程加載。
9.根據權利要求8所述的系統,其特征在于,所述非易失性存儲設備區域設有寫系統軟件標志,所述系統軟件標志用于檢測所述升級軟件是否成功更新。
10.根據權利要求8所述的系統,其特征在于,所述服務器具體包括第一服務器,用于存儲終端軟件的升級配置文件;第二服務器,用于存儲終端軟件的升級包;所述終端設備根據從所述第一服務器下載的所述升級配置文件到所述第二服務器中下載對應的升級包。
全文摘要
本發明涉及一種軟件升級方法及其系統,該方法包括以下步驟S1.下載升級配置文件,獲取其中的升級包信息并保存;S2.根據所述升級包信息,調用網絡協議下載升級包到終端設備內存區域;S3.更新所述升級包到終端設備的非易失性存儲區域。本發明還同時公開了一種軟件升級的系統。本發明的軟件升級方法實現簡單、可靠,可以有效地做到實時高效地在線升級,并具備容錯恢復功能。
文檔編號H04L29/06GK101042651SQ20061006002
公開日2007年9月26日 申請日期2006年3月22日 優先權日2006年3月22日
發明者肖昌吉, 張坤, 湯智龍 申請人:華為技術有限公司