一種可批量軟件在線恢復(fù)與軟件在線升級的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信控制技術(shù)領(lǐng)域,尤其涉及一種可批量軟件在線恢復(fù)與軟件在線升級的方法和系統(tǒng)。
【背景技術(shù)】
[0002]通信行業(yè)的迅猛發(fā)展,導(dǎo)致了應(yīng)用場景的千差萬別、錯綜復(fù)雜。設(shè)備的維護、更換成本節(jié)節(jié)攀升,對后臺運營提出了很高的要求。因此,通過遠(yuǎn)程升級實現(xiàn)遠(yuǎn)程通信設(shè)備程序更新和維護顯得尤為重要。
[0003]通信行業(yè)存在設(shè)備遠(yuǎn)程部署、批量部署的應(yīng)用場景,例如一個架設(shè)在荒郊野外的鐵塔,其上面會同時安裝多個天線控制設(shè)備。傳統(tǒng)的升級必須到塔下,甚至爬到塔上,然后利用專用工具升級,這使用戶無法接受。后期,提出了遠(yuǎn)程升級,即通過GPRS、WIFI等方式在監(jiān)控中心升級,設(shè)備維護條件得到極大改善。但是,上述遠(yuǎn)程升級方式還存在極大的弊端,例如,必須一對一逐個升級,費事費力,一旦升級失敗,程序無法恢復(fù)、運行,必須再通過傳統(tǒng)的升級方式去升級。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提出一種可批量軟件在線恢復(fù)與軟件在線升級的方法和系統(tǒng),能夠?qū)崿F(xiàn)對多個遠(yuǎn)程設(shè)備的軟件進行批量在線更新和恢復(fù)。
[0005]為達(dá)此目的,本發(fā)明采用以下技術(shù)方案:
一種可批量軟件在線恢復(fù)與軟件在線升級的方法,包括:
51、集中控制設(shè)備批量下發(fā)軟件在線升級/軟件在線恢復(fù)的指令給多個遠(yuǎn)程設(shè)備;
52、若為軟件在線升級指令,則遠(yuǎn)程設(shè)備獲取升級軟件數(shù)據(jù)信息,對上一個版本軟件備份,進行軟件升級;若軟件升級成功,則結(jié)束;若軟件升級失敗,則將軟件恢復(fù)為上一個版本軟件;
53、若為軟件在線恢復(fù)指令,則遠(yuǎn)程設(shè)備將現(xiàn)有軟件恢復(fù)為已備份的上一個版本軟件。
[0006]其中,若集中控制設(shè)備下發(fā)的是軟件在線升級指令,則在所述步驟S2、若為軟件在線升級指令,則遠(yuǎn)程設(shè)備獲取升級軟件數(shù)據(jù)信息,對上一個版本軟件備份,進行軟件升級;若軟件升級成功,則結(jié)束;若軟件升級失敗,則將軟件恢復(fù)為上一個版本軟件之前,還包括:
將原始的升級文件通過特定的編碼格式生成不同遠(yuǎn)程設(shè)備類型和不同軟件版本的升級鏡像文件;
集中控制設(shè)備通過掃描算法掃描所有總線上的遠(yuǎn)程設(shè)備,并分配地址、建立連接。
[0007]其中,所述步驟S2、若為軟件在線升級指令,則遠(yuǎn)程設(shè)備獲取升級軟件數(shù)據(jù)信息,對上一個版本軟件備份,進行軟件升級;若軟件升級成功,則結(jié)束;若軟件升級失敗,則將軟件恢復(fù)為上一個版本軟件,具體為:
S200、若集中控制設(shè)備向所有需要進行軟件在線升級的遠(yuǎn)程設(shè)備發(fā)送軟件在線升級指令,則集中控制設(shè)備選擇多個升級鏡像文件和需要更新軟件程序的遠(yuǎn)程設(shè)備,并設(shè)置升級鏡像文件與遠(yuǎn)程設(shè)備的對應(yīng)關(guān)系后批量下發(fā)軟件在線升級開始指令;
S210、遠(yuǎn)程設(shè)備接收到該指令后回復(fù)該指令,并進入升級下載模式;集中控制設(shè)備通過通信協(xié)議將選擇的升級鏡像文件分成多個數(shù)據(jù)幀,批量下發(fā)到對應(yīng)的遠(yuǎn)程設(shè)備;
S220、遠(yuǎn)程設(shè)備對接收到的數(shù)據(jù)幀進行驗證;若驗證不通過,則結(jié)束下載,并退出升級下載模式;若驗證通過,則將接收到的數(shù)據(jù)幀寫入內(nèi)部存儲器;
S230、升級鏡像文件下載結(jié)束,集中控制設(shè)備向?qū)?yīng)的所有進行軟件升級的遠(yuǎn)程設(shè)備批量下發(fā)軟件在線升級結(jié)束指令;
S240、遠(yuǎn)程設(shè)備接收到該指令后對接收到的升級鏡像文件進行解密并驗證數(shù)據(jù)完整性,若驗證通過則遠(yuǎn)程設(shè)備重啟;
S250、遠(yuǎn)程設(shè)備重啟后進入程序更新模式以覆蓋上一個版本軟件,并對上一個版本軟件備份;
S260、若遠(yuǎn)程設(shè)備升級成功,則進入新應(yīng)用程序執(zhí)行;若升級失敗,則自動恢復(fù)上一個版本軟件,并執(zhí)行上一個版本軟件。
[0008]其中,所述步驟S3、若為軟件在線恢復(fù)指令,則遠(yuǎn)程設(shè)備將現(xiàn)有軟件恢復(fù)為已備份的上一個版本軟件,具體為:
若集中控制設(shè)備向所有需要進行軟件在線恢復(fù)的遠(yuǎn)程設(shè)備發(fā)送軟件在線恢復(fù)指令,則遠(yuǎn)程設(shè)備將現(xiàn)有軟件恢復(fù)為已備份的上一個版本軟件,并運行該軟件。
[0009]其中,所述升級鏡像文件,包括:CRC32校驗、文件長度、文件名稱、廠家代號、軟件版本、設(shè)備類型;所述數(shù)據(jù)幀包括,幀頭、地址、收發(fā)序號、數(shù)據(jù)長度、設(shè)備地址、設(shè)備類型、軟件版本、數(shù)據(jù)、CRC校驗和尾幀。
[0010]其中,集中控制設(shè)備可以同時選擇多個不同的升級鏡像文件和批量更新程序的遠(yuǎn)程設(shè)備,I個升級鏡像文件可以與多個具有相同設(shè)備類型的遠(yuǎn)程設(shè)備對應(yīng)。
[0011]其中,所述步驟S210中的集中控制設(shè)備通過通信協(xié)議將選擇的升級鏡像文件分成多個數(shù)據(jù)幀,按照地址、設(shè)備類型、軟件版本與遠(yuǎn)程設(shè)備的對應(yīng)關(guān)系批量下發(fā)到對應(yīng)的遠(yuǎn)程設(shè)備,在下發(fā)過程中,通過數(shù)據(jù)幀錯序重發(fā)、丟包重發(fā)方式控制數(shù)據(jù)下發(fā)的穩(wěn)健性。
[0012]其中,當(dāng)軟件在線升級時,遠(yuǎn)程設(shè)備先執(zhí)行原有版本軟件備份,然后再開始升級;升級過程中出錯,設(shè)備無法運行更新后的升級軟件時會自動恢復(fù)到原有版本程序,并回歸正常設(shè)備運行狀態(tài)。
[0013]一種采用上述任一項所述的一種可批量軟件在線恢復(fù)與軟件在線升級的方法的系統(tǒng),包括集中控制設(shè)備及與所述集中控制設(shè)備連接的多個遠(yuǎn)程設(shè)備,所述集中控制設(shè)備和遠(yuǎn)程設(shè)備通過RS485總線連接。
[0014]其中,所述集中控制設(shè)備與遠(yuǎn)程設(shè)備之間通信采用主從、應(yīng)答模式,集中控制設(shè)備為主設(shè)備,遠(yuǎn)程設(shè)備為從設(shè)備,一主多從。
[0015]有益效果:
本發(fā)明所述的一種可批量軟件在線恢復(fù)與軟件在線升級的方法及系統(tǒng),由于該技術(shù)方案采用了批量更新方式,可以快速實現(xiàn)多個不同類型設(shè)備的遠(yuǎn)程在線更新,操作更便捷,更新效率更高。如果出現(xiàn)程序缺失、升級異常,通過自動恢復(fù)機制可以使遠(yuǎn)程設(shè)備自動從異常中恢復(fù)到正常工作狀態(tài),大大提高設(shè)備穩(wěn)定性和無故障運行率。實現(xiàn)數(shù)據(jù)重發(fā)、多重校驗功能,使整個過程具有更高可靠性和安全性。
【附圖說明】
[0016]圖1是本發(fā)明具體實施例提供的一種可批量軟件在線恢復(fù)與軟件在線升級的方法的流程圖。
[0017]圖2是本發(fā)明具體實施例提供的一種可批量軟件在線恢復(fù)與軟件在線升級的系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0018]下面結(jié)合附圖并通過【具體實施方式】來進一步說明本發(fā)明的技術(shù)方案。
[0019]實施例1:
圖1是本發(fā)明具體實施例提供的一種可批量軟件在線恢復(fù)與軟件在線升級的方法的流程圖。如圖1所示,本發(fā)明所述的一種可批量軟件在線恢復(fù)與軟件在線升級的方法,包括:
51、集中控制設(shè)備I批量下發(fā)軟件在線升級/軟件在線恢復(fù)的指令給多個遠(yuǎn)程設(shè)備2;
52、若為軟件在線升級指令,則遠(yuǎn)程設(shè)備2獲取升級軟件數(shù)據(jù)信息,對上一個版本軟件備份,進行軟件升級;若軟件升級成功,則結(jié)束;若軟件升級失敗,則將軟件恢復(fù)為上一個版本軟件;
53、若為軟件在線恢復(fù)指令,則遠(yuǎn)程設(shè)備2將現(xiàn)有軟件恢復(fù)為已備份的上一個版本軟件。
[0020]可見,本發(fā)明所述的方法,通過采用批量更新方式,可以快速實現(xiàn)多個不同類型設(shè)備的遠(yuǎn)程在線更新,操作更便捷,更新效率更高。如果出現(xiàn)程序缺失、升級異常,通過自動恢復(fù)機制可以使遠(yuǎn)程設(shè)備2自動從異常中恢復(fù)到正常工作狀態(tài),大大提高設(shè)備穩(wěn)定性和無故障運行率。
[0021]在本實施例中,若集中控制設(shè)備I下發(fā)的是軟件在線升級指令,則在所述步驟S2、若為軟件在線升級指令,則遠(yuǎn)程設(shè)備2獲取升級軟件數(shù)據(jù)信息,對上一個版本軟件備份,進行軟件升級;若軟件升級成功,則結(jié)束;若軟件升級失敗,則將軟件恢復(fù)為上一個版本軟件之前,還包括:
將原始的升級文件通過特定的編碼格式生成不同遠(yuǎn)程設(shè)備類型和不同軟件版本的升級鏡像文件;
集中控制設(shè)備I通過掃描算法掃描所有總線上的遠(yuǎn)程設(shè)備2,并分配地址、建立連接。
[0022]通過對原始的升級文件進行格式處理,滿足特定通信協(xié)議的要求,實現(xiàn)生成適合不同遠(yuǎn)程設(shè)備2類型和不同軟件版本的升級鏡像文件。集中控制設(shè)備I通過其規(guī)定的掃描算法掃描與其相連的總線上的遠(yuǎn)程設(shè)備2,并為遠(yuǎn)程設(shè)備2分配地址,建立連接。
[0023]所述步驟S2、若為軟件在線升級指令,則遠(yuǎn)程設(shè)備2獲取升級軟件數(shù)據(jù)信息,對上一個版本軟件備份,進行軟件升級;若軟件升級成功,則結(jié)束;若軟件升級失敗,則將軟件恢復(fù)為上一個版本軟件,具體為:
S200、若集中控制設(shè)備I向所有需要進行軟件在線升級的遠(yuǎn)程設(shè)備2發(fā)送軟件在線升級指令,則集中控制設(shè)備I選擇多個升級鏡像文件和需要更新軟件程序的遠(yuǎn)程設(shè)備2,并設(shè)置升級鏡像文件與遠(yuǎn)程設(shè)備2的對應(yīng)關(guān)系后批量下發(fā)軟件在線升級開始指令;
S210、遠(yuǎn)程設(shè)備2接收到該指令后回復(fù)該指令,并進入升級下載模式;集中控制設(shè)備I通過通信協(xié)議將選擇的升級鏡像文件分成多個數(shù)據(jù)幀,批量下發(fā)到對應(yīng)的遠(yuǎn)程設(shè)備2 ;
S220、遠(yuǎn)程設(shè)備2對接收到的數(shù)據(jù)幀進行驗證;若驗證不通過,則結(jié)束下載,并退出升級下載模式;若驗證通過,則將接收到的數(shù)據(jù)幀寫入內(nèi)部存儲器;
S230、升級鏡像文件下載結(jié)束,集中控制設(shè)備I向?qū)?yīng)的所有進行軟件升級的遠(yuǎn)程設(shè)備2批量下發(fā)軟件在線升級結(jié)束指令;
S240、遠(yuǎn)程設(shè)備2接收到該指令后對接收到的升級鏡像文件進行解密并驗證數(shù)據(jù)完整性,若驗證通過則遠(yuǎn)程設(shè)備2重啟;
S250、遠(yuǎn)程設(shè)備2重啟后進入程序更新模式以覆蓋上一版本軟件,并對上一版本軟件備份;遠(yuǎn)程設(shè)備2重啟進入在線程序更新模式,首先對上一版本軟件鏡像備份,然后用接收到的升級鏡像文件覆蓋上一版本軟件。
[0024]S260、若遠(yuǎn)程設(shè)備2升級成功,則進入新應(yīng)用程序執(zhí)行;若升級失敗,則自動恢復(fù)上一個版本軟件,并執(zhí)行上一個版本軟件。當(dāng)遠(yuǎn)程設(shè)備2升級結(jié)束,跳轉(zhuǎn)到新應(yīng)用程序執(zhí)行。若跳轉(zhuǎn)成功,升級成功,實現(xiàn)設(shè)備軟件的在線升級,否則升級失敗,用備份的軟件鏡像重新覆蓋升級失敗的程序區(qū),自動恢復(fù)原軟件版本并執(zhí)行,設(shè)備從升級失敗的異常中恢復(fù)到正常工作模式。
[0025]在上述內(nèi)容中,所述升級鏡像文件,包括但不限于:CRC32校驗、文件長度、文件名稱、廠家代號、軟件版本、設(shè)備類型;所述數(shù)據(jù)幀包括但不限于:幀頭、地址、收發(fā)序號、數(shù)據(jù)長度、設(shè)備地址、