時(shí)青
(凱易訊網(wǎng)絡(luò)技術(shù)開發(fā)(南京)有限公司,江蘇 南京 210012)
淺析電信設(shè)備軟件自動升級系統(tǒng)的開發(fā)與實(shí)現(xiàn)
時(shí)青
(凱易訊網(wǎng)絡(luò)技術(shù)開發(fā)(南京)有限公司,江蘇 南京 210012)
隨著社會科技水平的提高,電信行業(yè)取得了突飛猛進(jìn)的發(fā)展,隨之而來電信設(shè)備軟件程序的更新?lián)Q代也越來越頻繁,從而大大增加了系統(tǒng)升級工作的難度。對此,本文重點(diǎn)研究電信設(shè)備軟件自動升級系統(tǒng)的設(shè)計(jì)開發(fā),力求實(shí)現(xiàn)電信系統(tǒng)各設(shè)備軟件的自動升級,從而提高電信系統(tǒng)的工作效率與質(zhì)量。
電信設(shè)備軟件;自動升級系統(tǒng);開發(fā)實(shí)現(xiàn)
隨著電信業(yè)務(wù)規(guī)模的逐漸擴(kuò)大,電信網(wǎng)絡(luò)系統(tǒng)越來越復(fù)雜,系統(tǒng)所使用的設(shè)備軟件越來越多,再加上客戶需求的不斷變化,網(wǎng)絡(luò)科技手段的提高,電信設(shè)備軟件的升級成為電信系統(tǒng)日常工作的主要內(nèi)容。然而,傳統(tǒng)的設(shè)備軟件升級方法需要工作人員的全程監(jiān)督,耗費(fèi)了大量的人力物力,不利于電信系統(tǒng)效益的增加。因此,相關(guān)研究學(xué)將程序自動更新理念應(yīng)用到電信設(shè)備軟件的自動升級研究中。
2.1 程序自動升級定義分析
所謂程序自動升級就是本地服務(wù)器利用相關(guān)網(wǎng)絡(luò)協(xié)議通過互聯(lián)網(wǎng)在遠(yuǎn)程服務(wù)器中下載關(guān)于某程序的新版文件,然后在本地客戶端對新舊文件進(jìn)行比對,最后自動進(jìn)行替換。
程序自動升級系統(tǒng)一般是按照以下思路進(jìn)行設(shè)計(jì)的:本地服務(wù)器客戶端會自動檢測當(dāng)前程序的版本號,然后將版本號與遠(yuǎn)程服務(wù)器中所記錄的關(guān)于該程序的版本號進(jìn)行比對,如果本地版本比遠(yuǎn)程版本舊,那么本地客戶端就會通過HTTP或者SCOKS等協(xié)議自動從互聯(lián)網(wǎng)上下載更新程序所需要的文件目錄,從而完成更新。為提高自動更新效率,避免出現(xiàn)錯(cuò)誤,該設(shè)計(jì)思路規(guī)定如果本地程序更新需要的文件過多,那么本地客戶端會直接下載最新版本的程序從而自動進(jìn)行安裝。另外,在自動更新完成后,本地程序的版本號也會自動更新,并且與遠(yuǎn)程服務(wù)器中的版本保持一致。
2.2 程序自動升級工作流程
第一,客戶端自動判斷是否需要升級。通常情況下客戶使用的升級程序會默認(rèn)開機(jī)自啟動,因此在客戶打開計(jì)算機(jī)后,升級程序就會自動開啟。此時(shí),升級程序會通過互聯(lián)網(wǎng)與程序中已經(jīng)規(guī)定的某一固定網(wǎng)站連接,比對當(dāng)前程序版本是否為最新,如不是則會在計(jì)算機(jī)界面上彈出提示窗口,提醒用戶進(jìn)行程序升級。當(dāng)然,自動升級系統(tǒng)不會提醒用戶升級,而是自動后臺運(yùn)行升級,只有在升級完成后對用戶進(jìn)行提醒。
第二,確定需要下載的文件。自動升級系統(tǒng)通過比對新舊兩版程序模塊數(shù)量、文件數(shù)量、文件修改時(shí)間等確定升級需要哪些文件,同時(shí)判斷這些文件是否已經(jīng)存在。例如:用戶有時(shí)已經(jīng)下載了升級所需的全部文件,但是卻沒有升級安裝,此時(shí)系統(tǒng)通過檢測發(fā)現(xiàn)所需文件已經(jīng)存在,不會再重新下載,而是直接自動升級。
第三,下載文件并進(jìn)行校對。自動升級系統(tǒng)按照所需文件目錄從遠(yuǎn)程服務(wù)器中下載文件,并將文件存儲在固定的文件夾內(nèi)。然后,自動升級程序會對已經(jīng)下載的進(jìn)行測試檢驗(yàn)以確保這些文件是程序升級所需的。
第四,文件替換備份,完成自動升級。自動升級程序先將舊版程序壓縮存儲在備份目錄,然后用已經(jīng)下載的文件替換舊版程序內(nèi)的相應(yīng)文件或者將文件放到指定位置,最后系統(tǒng)會更新客戶端的相關(guān)信息使新版程序號與遠(yuǎn)程中的程序號保持一致,從而完成升級工作。
2.3 設(shè)計(jì)開發(fā)程序自動升級系統(tǒng)的技術(shù)難點(diǎn)
第一,確保自動升級系統(tǒng)的開機(jī)自啟動。升級程序的開機(jī)自啟動是實(shí)現(xiàn)程序自動升級的關(guān)鍵,通常情況,需要在程序運(yùn)行注冊表中編寫相應(yīng)代碼。
第二,具備網(wǎng)絡(luò)協(xié)議客戶端接口。網(wǎng)絡(luò)協(xié)議是自動升級系統(tǒng)查詢并獲得升級文件的途徑,因此技術(shù)人員采用了HTTP、FTP等常見的引用層協(xié)議。
第三,信息安全存儲技術(shù)。版本信息的安全存儲是程序自動升級的前提,因此為確保本地版本信息的安全,技術(shù)人員通常將本地版本信息寫入客戶端注冊表中。
第四,新舊版本的自動比對技術(shù)。每一個(gè)程序都包含著大量的文件,因此為提高升級效率,在升級之前先比對舊版本升級所需的程序十分重要。通常情況下,自動升級系統(tǒng)會通過比對文件的日期來確定所需的文件。
另外,自動升級系統(tǒng)還需要具備多線程處理以及斷點(diǎn)續(xù)傳等功能,因此在設(shè)計(jì)開發(fā)系統(tǒng)時(shí)還需要用到多線程以及斷點(diǎn)續(xù)傳技術(shù)。
3.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
電信設(shè)備軟件的自動升級系統(tǒng)主要有三個(gè)結(jié)構(gòu)層組成:控制層,該結(jié)構(gòu)層的主要工作是控制整個(gè)自動升級工作的順利進(jìn)行;業(yè)務(wù)層,在客戶端進(jìn)行新舊程序?qū)Ρ?、文件替換備份等具體工作,屬于執(zhí)行結(jié)構(gòu);通信層,負(fù)責(zé)自動系統(tǒng)中的內(nèi)部通信,實(shí)現(xiàn)控制層對業(yè)務(wù)層的具體控制,同時(shí)通信層還負(fù)責(zé)連接本地客戶端與遠(yuǎn)程服務(wù)器,實(shí)現(xiàn)遠(yuǎn)程服務(wù)器中文件的下載與傳輸。因此,電信設(shè)備軟件自動升級系統(tǒng)的具體工作流程如下:
圖1 電信設(shè)備軟件自動升級系統(tǒng)工作流程
根據(jù)上圖分析看出,電信設(shè)備軟件自動升級系統(tǒng)的工作流程與前文所述的程序自動升級流程類似,因此本文在此不多贅述。
3.2 電信設(shè)備軟件自動升級系統(tǒng)技術(shù)分析
電信設(shè)備軟件自動升級系統(tǒng)要想實(shí)現(xiàn)工作必須依靠通信、加密、數(shù)據(jù)庫等技術(shù)的支持,因此文章重點(diǎn)對自動升級系統(tǒng)采用的技術(shù)進(jìn)行探討研究。
(1)通信技術(shù)
自動升級系統(tǒng)所應(yīng)用的通信技術(shù)主要是指系統(tǒng)從遠(yuǎn)程服務(wù)器與客戶端之間進(jìn)行文件傳輸所采用的網(wǎng)絡(luò)協(xié)議,具體包括以下幾種:
第一,TCP/IP技術(shù)。這是一種應(yīng)用最廣泛的通信協(xié)議,是計(jì)算機(jī)從互聯(lián)網(wǎng)中獲取信息以及上傳信息都需要的通信協(xié)議。該通信協(xié)議具體分為傳輸控制協(xié)議與網(wǎng)際協(xié)議,是一種由許多協(xié)議所組成的協(xié)議組。
第二,F(xiàn)IP協(xié)議技術(shù)。該協(xié)議是實(shí)現(xiàn)兩臺不同主機(jī)之間數(shù)據(jù)傳輸?shù)姆椒ǎ梢詫⒈镜刂鳈C(jī)與遠(yuǎn)程主機(jī)連接起來。然而,在使用該協(xié)議是必須要進(jìn)行身份信息認(rèn)證的。
第三,HTTP協(xié)議。是一種將TCP協(xié)議作為地層的數(shù)據(jù)傳輸協(xié)議,HTTP協(xié)議可以確保服務(wù)器與客戶端信息傳遞的準(zhǔn)確無誤,從而避免數(shù)據(jù)信息丟失,可靠性較強(qiáng)。
(2)軟件自動升級系統(tǒng)的加密保護(hù)技術(shù)
軟件升級過程是軟件安全防護(hù)減弱的階段,因此自動升級系統(tǒng)必要具備一定的保護(hù)能力,所以在設(shè)計(jì)開發(fā)自動升級系統(tǒng)時(shí)需要使用加密保護(hù)技術(shù)。當(dāng)前常見的加密保護(hù)算法有:
第一,MD5算法。該算法可以說是目前應(yīng)用比較廣泛的一種算法,并且該算法的安全性相對于MD4的安全性有了很大提高,這是因?yàn)椋涸撍惴ㄔ黾恿说谒妮喦颐恳徊蕉加幸粋€(gè)唯一的加法常數(shù);雪崩效應(yīng)加快;每一輪的左移位移量各不相同。
第二,RSA算法。該算法也是一種比較流行的算法,雖然該算法容易理解和掌握,但是該算法的安全性過于依賴大數(shù)因子分解,并且其密鑰的產(chǎn)生過程復(fù)雜,運(yùn)算速度過慢。
第三,DES算法。該算法是一種比較有效的加密保護(hù)技術(shù),它可以為系統(tǒng)提供高質(zhì)量的數(shù)據(jù)保護(hù)服務(wù),并且安全性較高。同時(shí),該算法的經(jīng)濟(jì)性較強(qiáng),應(yīng)用范圍比較廣。
(3)軟件版本檢測控制技術(shù)
對新舊軟件版本進(jìn)行檢測是確定進(jìn)行自動升級的關(guān)鍵所在,可以確??蛻舳伺c遠(yuǎn)程服務(wù)器版本的一致。這種檢測更新包括兩種:遠(yuǎn)程服務(wù)器中的軟件檢測更新和客戶端的軟件更新。
第一,遠(yuǎn)程服務(wù)器中的軟件檢測更新。其目的是確保遠(yuǎn)程服務(wù)器中的軟件程序文件是最新的文件,從而為客戶端的程序更新提供準(zhǔn)確依據(jù)。
第二,客戶端的軟件檢測更新技術(shù)。該技術(shù)的主要工作是比較客戶端中軟件版本信息與遠(yuǎn)程服務(wù)器中的軟件版本信息,從而判斷是否需要進(jìn)行更新升級。
4.1 自動升級系統(tǒng)斷點(diǎn)續(xù)傳技術(shù)的實(shí)現(xiàn)
斷點(diǎn)續(xù)傳技術(shù)主要應(yīng)對的是文件傳輸過程錯(cuò)誤或者網(wǎng)絡(luò)故障而造成的數(shù)據(jù)斷點(diǎn)問題。采用該技術(shù)可以確保第二次傳輸從上次傳輸斷點(diǎn)位置開始,從而避免數(shù)據(jù)文件的丟失。要想實(shí)現(xiàn)這種技術(shù),自動升級系統(tǒng)需要具備以下功能:
首先,具有斷點(diǎn)記錄功能。自動升級系統(tǒng)在客戶端儲存一個(gè)update.xml文件。當(dāng)系統(tǒng)需要對當(dāng)前的升級狀態(tài)進(jìn)行標(biāo)記時(shí),該配置文件中的endpos會記錄本地客戶端已經(jīng)收到的文件大小,filelen則被用來記錄正在傳輸?shù)恼麄€(gè)文件的總字節(jié)長度,從而為下次傳輸確定起始位置提供依據(jù)。而當(dāng)自動升級程序重新啟動時(shí),系統(tǒng)首先讀取update.xml文件,讀取上次升級的狀態(tài)標(biāo)記,判斷上次傳輸是否完整,若不完整則需要確定上次升級的停止位置,然后從該位置開始重新下載,完成軟件程序升級。
其次,向遠(yuǎn)程服務(wù)器發(fā)送連接申請。斷點(diǎn)續(xù)傳的通信協(xié)議申請與普通申請不同,其申請命令中增加了一條Range字段。該字段中記錄了續(xù)傳文件的具體范圍,從而確保文件斷點(diǎn)連接的準(zhǔn)確性,完成文件傳輸。
4.2 電信設(shè)備軟件自動升級各功能模塊的實(shí)現(xiàn)
本文在所設(shè)計(jì)的自動升級系統(tǒng)中添加了自動升級服務(wù)器,該服務(wù)器需要實(shí)現(xiàn)的功能有控制、發(fā)送、版本管理以及消息收發(fā)等功能。對此,文章結(jié)合自動服務(wù)器的具體功能對其進(jìn)行了分析:
第一,控制功能的實(shí)現(xiàn)。整個(gè)自動升級服務(wù)器的核心是控制模塊,該模塊的主要功能是監(jiān)督管理整個(gè)服務(wù)器的正常工作,包括控制相應(yīng)消息的發(fā)送、服務(wù)器異常情況的上報(bào)與處理、管理狀態(tài)機(jī)等。其中管理狀態(tài)機(jī)是實(shí)現(xiàn)整個(gè)自動升級活動的關(guān)鍵環(huán)節(jié)。
第二,發(fā)送功能的實(shí)現(xiàn)。服務(wù)器的發(fā)送功能需要發(fā)送模塊的參與,其主要的工作職責(zé)是將相應(yīng)的軟件數(shù)據(jù)包發(fā)送到本地客戶端,并且向控制模塊上報(bào)軟件數(shù)據(jù)包發(fā)送過程中的工作狀態(tài)。
另外,對整個(gè)系統(tǒng)而言,其控制層與業(yè)務(wù)層在整個(gè)系統(tǒng)正常工作的過程中同樣發(fā)揮著重要作用,其二者與自動升級服務(wù)器一起構(gòu)成了一個(gè)完整的自動升級服務(wù)系統(tǒng)。
電信設(shè)備軟件的自動升級是電信企業(yè)日常管理工作的重要內(nèi)容之一,由于傳統(tǒng)的系統(tǒng)升級方法需要耗費(fèi)大量的人力以及物力,因此本文主要針對設(shè)備軟件的自動升級系統(tǒng)進(jìn)行研究分析。文章首先對常見程序自動升級理論進(jìn)行了分析,然后闡述了電信設(shè)備軟件自動升級系統(tǒng)的具體設(shè)計(jì),最后探討了該自動升級系統(tǒng)的具體實(shí)現(xiàn)方式。
[1]陳剛,羌玲玲.用VC++實(shí)現(xiàn)軟件的自動升級[J].計(jì)算機(jī)應(yīng)用與軟件,2010(10).
[2]譚亞科.電信設(shè)備軟件自動升級設(shè)計(jì)與實(shí)現(xiàn)[J].電子科技,2013 (10).
[3]徐曉蕾,方志威.適合網(wǎng)絡(luò)單元的軟件自動升級解決方案[J].電信技術(shù),2011(9).
[4]宋凌怡.軟件通用自動升級方法的研究與實(shí)現(xiàn)[J].安順學(xué)院學(xué)報(bào),2011(3).
[5]肖首先.局域網(wǎng)環(huán)境下的軟件在線自動升級——基于VB6+ SQL Server2000的實(shí)現(xiàn)方法[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2011(1).
Analysis on the Development ofAutomatic Update System for Telecomm Equipment Software
Shi Qing
(Kaiyi Network Technology Development(Nanjing)Co.,LTD,Nanjing 210012,Jiangsu)
tract】 With the increasing of the social and technological level,the telecom industry has made great achievement,accompanied by more and more frequent upgrading of telecomm equipment software,which greatly increases the difficulty of system upgrade.Therefore,this paper focuses on the the design and development of automatic upgrade of telecom equipment software,realizing the automatic upgrade of telecommunications system software,to improve the work efficiency and quality of telecom system.
words】 telecom equipment software;automatic update system;development
時(shí)青,男,江蘇睢寧人,本科,助理工程師,研究方向:網(wǎng)絡(luò)通訊、運(yùn)營商網(wǎng)絡(luò)控制和管理。