一種關(guān)鍵點控制的嵌入式設(shè)備自動在線升級
2 基于關(guān)鍵點控制的系統(tǒng)軟件升級方案
基于關(guān)鍵點控制的升級方案是針對于上述雙系統(tǒng)升級方案的優(yōu)化和改進(jìn),通過業(yè)務(wù)分析和統(tǒng)計,為了修改增強(qiáng)業(yè)務(wù)功能或者修改BUG,終端升級的絕大部分場景是需要升級正常運行系統(tǒng),如果能夠?qū)崿F(xiàn)在正常運行系統(tǒng)中能夠升級自身,升級過程對用戶透明,則能夠解做到絕大部分升級過程用戶不可見。同時由于基本運行系統(tǒng)也會存在BUG或者需要增強(qiáng)功能,也有需要升級基本運行系統(tǒng)的情況。
本方案通過在系統(tǒng)中設(shè)定關(guān)鍵點,在升級過程中通過關(guān)鍵點值控制升級的流程,保證系統(tǒng)軟件升級安全性,同時做到升級過程對用戶透明,而且除了能夠升級正常運行系統(tǒng)外還可以升級基本運行系統(tǒng)(如基本運行系統(tǒng)中存在BUG需要修改時),增強(qiáng)了終端的靈活性,另外升級過程引入了XML格式的升級控制文件,有效的控制了網(wǎng)絡(luò)版本的兼容性。關(guān)鍵點記錄了當(dāng)前系統(tǒng)軟件的狀態(tài)。根據(jù)當(dāng)前系統(tǒng)軟件狀態(tài)的不同,軟件升級的流程不同,在基本運行系統(tǒng)和正常運行系統(tǒng)中都包含下面的關(guān)鍵點,各個關(guān)鍵點的取值和代表含義如下:
(1)系統(tǒng)啟動未驗證(SSNV):系統(tǒng)升級完成后沒有啟動過,此時不能保證系統(tǒng)能夠正常啟動,不能保證系統(tǒng)能夠運行業(yè)務(wù)功能,即沒有驗證系統(tǒng)的升級功能;正常運行系統(tǒng)處于SSNV狀態(tài)時,不能在該正常運行系統(tǒng)下升級基本運行系統(tǒng),否則可能會出現(xiàn)2個系統(tǒng)都不能正常啟動的狀態(tài)。同樣基本運行系統(tǒng)處于SSNV狀態(tài)時,不能在該基本運行系統(tǒng)中升級正常運行系統(tǒng)。
(2)系統(tǒng)升級未驗證(SUNV):系統(tǒng)已經(jīng)正常啟動,業(yè)務(wù)功能正常運行,但沒有驗證系統(tǒng)的升級功能。如果正常運行系統(tǒng)的升級功能沒有驗證,則不能在該系統(tǒng)下升級基本運行系統(tǒng),否則可能會造成基本運行系統(tǒng)被破壞,同時正常運行系統(tǒng)沒有升級功能的情況,以后終端再也不具有在線升級的功能。同樣基本運行系統(tǒng)處于SUNV狀態(tài)時,不能在正常運行系統(tǒng)中直接升級正常運行系統(tǒng)本身,需要重啟進(jìn)入基本運行系統(tǒng)進(jìn)行升級;
(3)系統(tǒng)升級已驗證(SUV):系統(tǒng)除了業(yè)務(wù)功能正常外,升級功能已經(jīng)驗證過,能夠進(jìn)行正常的升級。該狀態(tài)表明系統(tǒng)功能完全經(jīng)過驗證,如基本運行系統(tǒng)處于SUV狀態(tài),則在正常運行系統(tǒng)中可以自動升級自身,正常運行系統(tǒng)處于SUV狀態(tài)時,可以在正常運行系統(tǒng)中升級基本運行系統(tǒng)。
升級方案的具體控制流程中包含了關(guān)鍵點控制和判斷使用的時機(jī),終端啟動后判斷從哪個系統(tǒng)啟動,如果從正常運行系統(tǒng)啟動成功,此時假設(shè)正常運行系統(tǒng)的關(guān)鍵點狀態(tài)為SSNV狀態(tài),則設(shè)置為SUNV狀態(tài)(如圖3所示)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論