余俊 萬喬喬 范志英
摘 要:視頻會(huì)議系統(tǒng)跨域分級(jí)部署存在終端分散、分級(jí)管理等缺點(diǎn),為解決終端軟件無法自動(dòng)升級(jí),升級(jí)效率低下等問題,提出了一種視頻會(huì)議系統(tǒng)跨域分布式升級(jí)方法。首先,基于MD5算法生成軟件版本摘要文件,通過軟件版本摘要文件的對(duì)比,進(jìn)行差異化升級(jí),減少升級(jí)內(nèi)容;其次,將分布式計(jì)算融入升級(jí)過程中,解決視頻會(huì)議系統(tǒng)的軟件跨域同步問題,實(shí)現(xiàn)一處發(fā)布、全域升級(jí),以提升視頻會(huì)議系統(tǒng)升級(jí)效率。文章闡述了該方法的流程設(shè)計(jì)及基于該方法設(shè)計(jì)實(shí)現(xiàn)的分布式升級(jí)服務(wù)和客戶端。此方法可適用于常見的跨域軟件系統(tǒng)。
關(guān)鍵詞:視頻會(huì)議系統(tǒng);軟件升級(jí);MD5;分布式計(jì)算;分布式協(xié)同;訂閱發(fā)布
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2020)02-00-03
0 引 言
視頻會(huì)議系統(tǒng)被廣泛應(yīng)用于政府、軍隊(duì)、企業(yè)、醫(yī)療、通信、交通等領(lǐng)域,在持續(xù)提升用戶溝通效率、縮減企業(yè)差旅費(fèi)用成本、提高管理成效等方面具有得天獨(dú)厚的優(yōu)勢(shì)[1]。
在某些特殊領(lǐng)域,跨域的視頻會(huì)議系統(tǒng)顯得尤為重要,不同于一般企業(yè)內(nèi)部的視頻會(huì)議,一方面,對(duì)實(shí)時(shí)性、可靠性、穩(wěn)定性的要求更高,一旦正式開通并提供服務(wù),不允許服務(wù)中斷或性能下降的問題出現(xiàn);另一方面,系統(tǒng)本身規(guī)模較大,節(jié)點(diǎn)成千上萬,并發(fā)的數(shù)據(jù)通信量大,且需根據(jù)樹形節(jié)點(diǎn)特征跨域分布,分域提供服務(wù)。
利用傳統(tǒng)的軟件在線升級(jí)方法難以滿足跨域視頻會(huì)議系統(tǒng)的性能要求,因此,本文首次提出了一種實(shí)時(shí)、高效、可靠的針對(duì)跨域視頻會(huì)議系統(tǒng)的軟件升級(jí)方法。
1 跨域視頻會(huì)議系統(tǒng)介紹
視頻會(huì)議系統(tǒng)基于C/S架構(gòu),以跨平臺(tái)軟件服務(wù)化框架為基礎(chǔ),采用開放業(yè)務(wù)平臺(tái)與服務(wù)器/視頻業(yè)務(wù)客戶端方式部署,各視頻業(yè)務(wù)終端向服務(wù)器進(jìn)行認(rèn)證和注冊(cè),具有視頻會(huì)議、視頻指揮、文件傳輸、發(fā)送短消息等業(yè)務(wù)功能,業(yè)務(wù)可按需定制,具有高度靈活性和擴(kuò)展性。
在某些特殊行業(yè),用戶編制為樹形結(jié)構(gòu),有著嚴(yán)格的層級(jí)關(guān)系,僅在中心部署一個(gè)服務(wù)器無法滿足用戶層次化的視頻業(yè)務(wù)需求。因此,需要對(duì)視頻會(huì)議系統(tǒng)進(jìn)行分域部署,在頂層節(jié)點(diǎn)部署一級(jí)服務(wù)中心,在各分域節(jié)點(diǎn)部署二級(jí)服務(wù)中心,各視頻業(yè)務(wù)終端向其歸屬域服務(wù)器注冊(cè),實(shí)現(xiàn)視頻業(yè)務(wù)。
跨域部署后,視頻業(yè)務(wù)客戶端分散在不同的域,部署在各個(gè)地方,且形態(tài)多樣,人工升級(jí)維護(hù)極其不便,為了實(shí)現(xiàn)跨域視頻業(yè)務(wù)系統(tǒng)客戶端的自動(dòng)在線升級(jí)、在線更新,必須實(shí)現(xiàn)一種跨域的在線升級(jí)方法,在某個(gè)域中進(jìn)行版本發(fā)布,通過分布式同步技術(shù)實(shí)現(xiàn)全域的視頻業(yè)務(wù)客戶端版本信息同步。
2 傳統(tǒng)的在線升級(jí)流程
傳統(tǒng)的軟件在線升級(jí)主要研究方向集中在軟件系統(tǒng)本身,力圖通過提高軟件系統(tǒng)自身的容錯(cuò)能力來實(shí)現(xiàn)版本同步、接口翻譯、錯(cuò)誤檢查和自動(dòng)回退等功能[2]。系統(tǒng)在線升級(jí)的方法加大了軟件系統(tǒng)的復(fù)雜程度,與視頻會(huì)議系統(tǒng)的高可靠性和實(shí)時(shí)性相矛盾。傳統(tǒng)方法的理想升級(jí)過程如圖1所示。
同時(shí),考慮到傳統(tǒng)軟件在線升級(jí)方法大部分是針對(duì)嵌入式設(shè)備,按照傳輸升級(jí)固件途徑,主要方法分為以下幾種:
(1)可通過串口RS 232/RS 485、CAN總線傳輸信息,但傳輸距離受限,實(shí)際應(yīng)用意義不大[3];
(2)若使用SD卡或U盤傳輸信息,那么對(duì)于分布較廣的終端來說,需要隨身帶U盤或SD卡去現(xiàn)場(chǎng)才能升級(jí)[4],對(duì)于遠(yuǎn)程升級(jí)而言無實(shí)際意義;
(3)無線網(wǎng)絡(luò)傳輸過程引導(dǎo)程序復(fù)雜,代碼量大,不適用于傳輸較大的固件[5]。
以上各方法均難以滿足視頻會(huì)議系統(tǒng)跨域、終端數(shù)量多、終端分布廣、遠(yuǎn)程升級(jí)等方面對(duì)系統(tǒng)升級(jí)的要求,且升級(jí)可靠性不高,容易造成資源浪費(fèi)。
3 跨域在線升級(jí)方案設(shè)計(jì)
3.1 流程設(shè)計(jì)
由于跨域的視頻會(huì)議系統(tǒng)是客戶端/服務(wù)器結(jié)構(gòu)模式[6],相應(yīng)的在線升級(jí)算法也包括服務(wù)端和客戶端兩部分,并且支持多軟件同時(shí)在線升級(jí)。
在服務(wù)端,此算法首先創(chuàng)建升級(jí)文件根目錄,存放待升級(jí)客戶端軟件版本,利用MD5算法對(duì)客戶端軟件安裝后的目錄下所有文件包括子目錄下的所有文件進(jìn)行遞歸遍歷[7],遞歸遍歷所有節(jié)點(diǎn);針對(duì)節(jié)點(diǎn)遍歷過程,創(chuàng)建軟件版本摘要文件,標(biāo)識(shí)每一個(gè)節(jié)點(diǎn)信息及文件信息,供客戶端使用;將此算法用C++封裝成服務(wù),并以命令的形式創(chuàng)建觸發(fā)器,最后啟動(dòng)服務(wù)即可實(shí)現(xiàn)在線升級(jí)服務(wù)端。服務(wù)端算法流程如圖2所示。
客戶端首次運(yùn)行時(shí),將提示是否做全面升級(jí),并遍歷本地升級(jí)目錄,創(chuàng)建本地軟件校驗(yàn)和列表,然后以消息中間件的形式從服務(wù)端獲取校驗(yàn)和列表,對(duì)比這兩個(gè)校驗(yàn)和列表,若不相同,則刪除出現(xiàn)在本地校驗(yàn)和列表但不在服務(wù)器校驗(yàn)和列表中的文件,下載出現(xiàn)在服務(wù)器校驗(yàn)和列表但不出現(xiàn)在本地校驗(yàn)和列表中的文件??蛻舳怂惴鞒倘鐖D3所示。
算法在性能方面的優(yōu)勢(shì)如下:
(1)節(jié)省帶寬,自動(dòng)檢查客戶的軟件版本,并以壓縮形式下載僅需要更新的應(yīng)用組件;
(2)安全性高,增加了防火墻服務(wù),只有授權(quán)的客戶才能下載升級(jí)軟件,且能讓客戶與服務(wù)器通過防火墻安全地進(jìn)行通信,數(shù)據(jù)可雙向通信,也可使用公鑰證書進(jìn)行完全加密。
3.2 升級(jí)服務(wù)設(shè)計(jì)
跨域的在線升級(jí)服務(wù)共設(shè)計(jì)為五個(gè)模塊,分別為軟件版本庫管理、校驗(yàn)和列表管理、域內(nèi)更新推送、跨域分布式同步、日志收集,如圖4所示。
軟件版本庫管理:軟件版本信息管理包括軟件版本的導(dǎo)入和檢出,內(nèi)部保存每個(gè)對(duì)象的標(biāo)識(shí)及服務(wù)器的運(yùn)行地址,并對(duì)外提供統(tǒng)一的軟件版本檢索接口,以滿足客戶端對(duì)軟件各階段版本的更新需求。
校驗(yàn)和列表文件管理:提供基于MD5算法校驗(yàn)和列表文件計(jì)算服務(wù),管理校驗(yàn)和列表文件,根據(jù)校驗(yàn)和列表文件對(duì)軟件版本庫建立映射關(guān)系。一方面,每當(dāng)軟件版本有更新時(shí),便自動(dòng)斷開服務(wù),重新計(jì)算數(shù)據(jù)文件,生成新的文件列表;另一方面,每當(dāng)客戶端進(jìn)行軟件版本請(qǐng)求時(shí),負(fù)責(zé)對(duì)比客戶端軟件版本校驗(yàn)和文件,完成差異化模塊提取。
跨域分布式同步:基于ZooKeeper分布式同步中間件,實(shí)現(xiàn)域間的軟件版本同步,首先通過同步版本校驗(yàn)和列表文件,然后基于校驗(yàn)和文件實(shí)現(xiàn)差異化更新,實(shí)現(xiàn)僅需一個(gè)域更新版本,便可全域版本同步的功能。
域內(nèi)更新推送:此模塊負(fù)責(zé)實(shí)現(xiàn)本域內(nèi)客戶端用戶的軟件版本升級(jí),基于一種消息訂閱發(fā)布模式[8],實(shí)現(xiàn)版本校驗(yàn)和文件推送和拉取??蛻舳藢?shí)現(xiàn)更新主要有兩種方式,一種是版本推送模式,服務(wù)器有版本更新時(shí),向各訂閱客戶端主動(dòng)推送版本校驗(yàn)和文件及在線升級(jí)數(shù)據(jù)文件;另一種是版本拉取模式,客戶端主動(dòng)向服務(wù)器發(fā)送版本校驗(yàn)和文件,檢查是否有更新,若有更新,服務(wù)器向客戶端發(fā)送在線升級(jí)文件,完成更新。
日志收集:實(shí)時(shí)收集在線升級(jí)相關(guān)的各種日志信息,包括版本更新信息、跨域版本同步信息、域內(nèi)客戶端在線升級(jí)信息等,對(duì)日志進(jìn)行自動(dòng)分析,并對(duì)出現(xiàn)錯(cuò)誤的情況進(jìn)行告警提示。
3.3 跨域版本信息同步實(shí)現(xiàn)
ZooKeeper是Apache Hadoop的一個(gè)子項(xiàng)目,主要用來解決分布式應(yīng)用中遇到的一些數(shù)據(jù)管理和同步問題[9],跨域的版本信息同步基于ZooKeeper,在跨域在線升級(jí)服務(wù)之間建立一條數(shù)據(jù)同步鏈,由于域與域之間采用骨干通信網(wǎng)絡(luò),多為光纖和有線網(wǎng)絡(luò),足以支撐一條數(shù)據(jù)同步鏈,因此在數(shù)據(jù)同步鏈技術(shù)上實(shí)現(xiàn)版本校驗(yàn)和數(shù)據(jù)同步,通過差異化對(duì)比實(shí)現(xiàn)軟件版本同步,進(jìn)而完成跨域版本信息同步,如圖5所示。
基于數(shù)據(jù)同步鏈,只需要在數(shù)據(jù)鏈中某一個(gè)升級(jí)服務(wù)節(jié)點(diǎn)部署軟件版本,然后通過分布式數(shù)據(jù)同步技術(shù),各級(jí)服務(wù)器間接完成軟件版本同步,所有客戶端通過訂閱-發(fā)布模式完成軟件的在線升級(jí),對(duì)大容量的視頻會(huì)議系統(tǒng)來說實(shí)現(xiàn)了“一次部署,全面升級(jí)”的目標(biāo),不僅減少了人為誤差,且靈活高效。
3.4 單域客戶端在線升級(jí)實(shí)現(xiàn)
單域客戶端節(jié)點(diǎn)數(shù)量較多,無法針對(duì)每個(gè)客戶端提供單獨(dú)的服務(wù)進(jìn)行軟件升級(jí),因此采用高性能消息中間件實(shí)現(xiàn),基于消息訂閱發(fā)布模型,將軟件版本信息發(fā)布到消息中間件,由消息中間件負(fù)責(zé)將信息推送到所有訂閱客戶端,實(shí)現(xiàn)各客戶端軟件的升級(jí)更新,如圖6所示。
采用訂閱發(fā)布的模型進(jìn)行軟件更新升級(jí)具有以下特點(diǎn):
(1)在線升級(jí)的各服務(wù)模塊及其所在服務(wù)器與視頻會(huì)議各終端之間完全解耦和;
(2)在線升級(jí)服務(wù)器發(fā)布的單個(gè)事件可被發(fā)送到多個(gè)訂閱者,特別適合視頻會(huì)議系統(tǒng)終端用戶數(shù)較多的情形;
(3)在線升級(jí)服務(wù)的多個(gè)實(shí)例可在不同機(jī)器上運(yùn)行,使得處理負(fù)載分?jǐn)偟皆S多CUP上。
4 結(jié) 語
跨域信息系統(tǒng)客戶端軟件的實(shí)時(shí)更新與維護(hù)較為繁瑣,本文提出了一種新的在線升級(jí)算法,有效規(guī)避了傳統(tǒng)在線升級(jí)方法的不足;并充分利用訂閱發(fā)布消息模型、分布式數(shù)據(jù)管理、分布式數(shù)據(jù)同步等技術(shù)[10],設(shè)計(jì)了一種跨域的信息系統(tǒng)在線升級(jí)方案,特別適合于分布范圍廣、系統(tǒng)容量大、并發(fā)程度高的系統(tǒng),且實(shí)時(shí)性、高效性、可靠性強(qiáng),目前已成功應(yīng)用于某大型視頻會(huì)議系統(tǒng)中,具有一定的推廣價(jià)值。
參 考 文 獻(xiàn)
[1]雷穎思.視頻會(huì)議系統(tǒng)技術(shù)及發(fā)展[J].計(jì)算機(jī)工程應(yīng)用技術(shù),2017(11):88-90.
[2]焦誠,李英.衛(wèi)星導(dǎo)航地面控制系統(tǒng)在線升級(jí)與驗(yàn)證方法[J].現(xiàn)代導(dǎo)航,2016,7(2):94-98.
[3]韋士雄.煤炭信息采集系統(tǒng)的信號(hào)處理和在線升級(jí)研究[D].濟(jì)南:山東大學(xué),2016.
[4]李敏,侯亞玲,劉穎.基于SD卡的FAT32文件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2017,7(7):96-98.
[5]張萌.基于ISP/IAP和CAN總線的遠(yuǎn)程升級(jí)系統(tǒng)研制[D].青島:中國海洋大學(xué),2013.
[6]劉勝娃,李衛(wèi),張?jiān)?長慶鉆井公司統(tǒng)一通信平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2017,7(4):62-63.
[7]李韓芬,張家鳳,陳瑩.MD5軟件在版本控制中的應(yīng)用研究[J].無線互聯(lián)科技,2016(17):43-45.
[8]鄭鵬怡,張振國,袁戰(zhàn)軍.基于發(fā)布訂閱機(jī)制的實(shí)時(shí)中間件的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2018(2):44-47.
[9]周繼鋒,馮鉆優(yōu),陳勝尊,等.分布式數(shù)據(jù)庫架構(gòu)企業(yè)實(shí)踐[M].北京:電子工業(yè)出版社,2017.
[10]劉春漲,王麗穎,靳慶庚,等.基于Paxos算法的分布式計(jì)算模型探究[J].物聯(lián)網(wǎng)技術(shù),2016,6(4):56-57.