楊波
摘 要: 當(dāng)高清化、高負(fù)載成為電視會議發(fā)展的主流,傳統(tǒng)的技術(shù)保障方式使得服務(wù)器遭遇到技術(shù)瓶頸,急需新的技術(shù)手段來保證會議系統(tǒng)的正常運(yùn)行。為此,在介紹電視會議和云計算相關(guān)概念的基礎(chǔ)上,提出了一種基于云計算的電視會議系統(tǒng)方案,該方案使用集群管理的方式來避免宕機(jī)事件的發(fā)生。采用該方案能減少電視會議系統(tǒng)建設(shè)成本,提高工作效率,進(jìn)一步加快部隊信息化建設(shè)的進(jìn)程。
關(guān)鍵詞: 電視會議; 云計算; 服務(wù)器; 集群管理; ZooKeeper
中圖分類號:TP393 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2013)09-25-03
0 引言
隨著全球經(jīng)濟(jì)的高速發(fā)展,電視會議市場也出現(xiàn)了較大的突破。經(jīng)過多年的發(fā)展,電視會議技術(shù)日趨成熟,電視會議系統(tǒng)已經(jīng)成為企事業(yè)單位系統(tǒng)建設(shè)的“標(biāo)配”。電視會議能讓身處異地的與會者不受時間、空間、網(wǎng)絡(luò)的限制,獲得語音、視頻、圖片、文件的自由通訊,方便單位內(nèi)部人員的溝通協(xié)作,降低通訊成本。但是,當(dāng)高清化成為市場的主流,電視會議服務(wù)器越來越不堪重負(fù),電視會議系統(tǒng)大容量負(fù)載、大規(guī)模用戶并發(fā)請求的通信要求使得傳統(tǒng)電視會議技術(shù)遇到了瓶頸。如果采用升級硬件平臺或是添加服務(wù)器的方法,不僅投入過于昂貴,而且不能根本性地解決問題[1]。
云計算的出現(xiàn),為這一問題的解決提供了較好的途徑。順應(yīng)當(dāng)前網(wǎng)絡(luò)應(yīng)用模式轉(zhuǎn)變的趨勢,可擴(kuò)展電視會議系統(tǒng)的體系結(jié)構(gòu),并部署于云計算平臺之上。云會議采用分布式部署,這使得資源的調(diào)度將更加便捷。而電視會議對于畫面的高清要求,也可以通過分布式部署來加以滿足。成熟的云計算技術(shù)將為電視會議提供優(yōu)質(zhì)高效的保障。
1 系統(tǒng)相關(guān)技術(shù)
1.1 電視會議
電視會議是一種交互的多媒體(語音、圖像、數(shù)據(jù))通信手段,是音視頻技術(shù)、壓縮技術(shù)、數(shù)據(jù)傳輸、交換技術(shù)等手段的綜合應(yīng)用,建立在通信網(wǎng)絡(luò)基礎(chǔ)上。電視會議的目的是將圖像、聲音和數(shù)據(jù)盡可能不失真地傳送到目的地。傳輸方式主要有雙絞線傳輸、同軸電纜傳輸、微波傳輸、衛(wèi)星傳輸、光纖傳輸?shù)鹊萚2]。
電視會議系統(tǒng)中傳輸?shù)膱D像是用戶最為關(guān)心的指標(biāo),影響圖像的因素有終端設(shè)備的硬件編解碼器、傳輸速率和視頻編碼格式。終端圖像編碼器將從攝像機(jī)得到的圖像進(jìn)行編碼傳輸,并將得到的圖像信號解碼到視頻輸出設(shè)備,直接影響到圖像的質(zhì)量。足夠的傳輸速率是圖像傳輸?shù)谋WC,通信線路的發(fā)展使圖像傳輸?shù)玫搅顺浞值谋WC。當(dāng)傳輸速率達(dá)到384Kbps以上時,用戶就可以得到清晰流暢的視頻圖像?,F(xiàn)在電視會議系統(tǒng)比較常用的傳輸速率在768K-4096Kbps,這樣的傳輸速率可以保證比較流暢的圖像質(zhì)量[3]。
1.2 集群管理
分布式應(yīng)用系統(tǒng)通常部署在一個有多臺服務(wù)器的集群環(huán)境中,當(dāng)集群規(guī)模達(dá)到一定程度后,宕機(jī)事件極易發(fā)生。對于一個高可用系統(tǒng),必須能夠容忍一定數(shù)量的機(jī)器故障,當(dāng)故障發(fā)生時,其他機(jī)器應(yīng)該可以感知到并作出相應(yīng)處理。ZooKeeper是Apache Hadoop開源項目中的子項目,提供了一個分布式的協(xié)調(diào)服務(wù)框架。ZooKeeper本身部署在2N+1(N>0)臺機(jī)器的集群系統(tǒng)中,可以容忍N(yùn)臺機(jī)器宕機(jī),在保證高可用性同時還支持高性能的寫操作。用戶構(gòu)建的分布式應(yīng)用可以使用ZooKeeper提供的namespace數(shù)據(jù)模型來表達(dá)用戶集群的結(jié)構(gòu),當(dāng)用戶集群中有機(jī)器宕機(jī)時,ZooKeeper可以提供通知機(jī)制,應(yīng)用系統(tǒng)可以根據(jù)自己的業(yè)務(wù)需求處理宕機(jī)事件。圖1給出了采用namespace數(shù)據(jù)模型描述的某個集群結(jié)構(gòu)。
該集群由3臺機(jī)器組成,分別對應(yīng)namespace模型中g(shù)roup節(jié)點下的3個子節(jié)點,這些子節(jié)點是瞬時順序節(jié)點。瞬時表示每個節(jié)點的壽命不會超過創(chuàng)建節(jié)點的進(jìn)程的壽命,當(dāng)創(chuàng)建節(jié)點的進(jìn)程結(jié)束時,這些節(jié)點會自動刪除,其他在該節(jié)點上設(shè)置了Watcher的進(jìn)程會收到通知;順序表示每個進(jìn)程創(chuàng)建節(jié)點都有一個序號,該序號是單調(diào)遞增的。利用節(jié)點的這種特性,集群中每臺機(jī)器對應(yīng)一個瞬時順序節(jié)點,當(dāng)某臺機(jī)器宕機(jī)后,其他機(jī)器中的進(jìn)程可以收到該節(jié)點被刪除的通知,這樣每臺機(jī)器都可以感知集群中機(jī)器的狀態(tài)信息,從而實現(xiàn)了集群管理[4]。
2 系統(tǒng)實現(xiàn)
2.1 會議系統(tǒng)構(gòu)成
電視會議系統(tǒng)主要由電視會議終端、多點控制單元和傳輸網(wǎng)絡(luò)三部分組成。如圖2所示。
電視會議終端主要功能是完成音視頻信號的輸入和輸出,并且傳輸數(shù)據(jù)信號。電視會議終端將音視頻信號和數(shù)據(jù)、指令等數(shù)字信號處理成數(shù)字碼流,再將它轉(zhuǎn)變成與網(wǎng)絡(luò)接口兼容的信號格式以信道幀結(jié)構(gòu)送入網(wǎng)絡(luò)進(jìn)行傳輸。當(dāng)兩個終端之間需要召開點對點會議的時候,使用終端里的撥號功能就可以實現(xiàn)互聯(lián)互通。而多個終端之間要參加會議的時候,就需要MCU(多點控制單元)。多點控制單元能實現(xiàn)電視會議終端多點間的音視頻互通和數(shù)據(jù)交換。它將處理后的音視頻信號分配給對應(yīng)連接的信道。實際上多點控制單元是一臺多媒體數(shù)據(jù)交換機(jī),實現(xiàn)多點間的連接,具備音視頻廣播、多畫面合成、信息交換等功能,實現(xiàn)各會議終端的連接與切換。它的作用就像電話交換系統(tǒng),按照用戶的需求進(jìn)行多點間的語音傳輸。多點控制單元為擁有多個分會場的會議召開提供了理想的解決方案。MCU的可堆迭結(jié)構(gòu)使得會議容量具有可擴(kuò)展性,可根據(jù)終端的增加來增加MCU的數(shù)量。在多點會議系統(tǒng)中,網(wǎng)關(guān)和網(wǎng)閘具有非常重要的作用。網(wǎng)關(guān)使符合不同標(biāo)準(zhǔn)的視頻終端之間的視頻會議成為現(xiàn)實。網(wǎng)關(guān)能提供不同標(biāo)準(zhǔn)終端之間的呼叫信號翻譯、控制信道信息、音頻編碼翻譯和多路復(fù)用技術(shù)。網(wǎng)閘是構(gòu)建成功的IP電話或多媒體網(wǎng)絡(luò)的關(guān)鍵組件。通過網(wǎng)閘,網(wǎng)絡(luò)管理員可配置、監(jiān)控和管理網(wǎng)絡(luò)系統(tǒng),使網(wǎng)絡(luò)管理員控制網(wǎng)絡(luò)資源(帶寬),限制區(qū)域內(nèi)最高帶寬和終端占用的帶寬,優(yōu)化IP網(wǎng)絡(luò)上實時的音頻、視頻和數(shù)據(jù)會議。
2.2 電視會議集群管理的實現(xiàn)
在電視會議系統(tǒng)中,需要對計算集群進(jìn)行管理。電視會議的所有服務(wù)器構(gòu)成該集群,當(dāng)集群中任何一臺服務(wù)器宕機(jī)時,應(yīng)用程序可以得到通知,及時處理相應(yīng)的事件。由于每個應(yīng)用程序需要在每臺服務(wù)器上部署,當(dāng)應(yīng)用程序的配置改變時,需要修改每臺機(jī)器的配置。當(dāng)集群規(guī)模大時,手工完成勞動量會很大,這時我們就要用到ZooKeeper。
ZooKeeper提供了構(gòu)建分布式應(yīng)用時通用的底層基礎(chǔ)設(shè)施,利用這些基礎(chǔ)設(shè)施,分布式系統(tǒng)能夠?qū)崿F(xiàn)配置管理、集群管理等核心功能,這些功能可以通過對ZooKeeper提供的namespace數(shù)據(jù)模型(一種類似文件系統(tǒng)的樹形結(jié)構(gòu))進(jìn)行適當(dāng)?shù)牟僮鞫鴮崿F(xiàn)。Namespace數(shù)據(jù)映像模型上的操作包括創(chuàng)建、刪除、修改等,這些操作具有順序一致性、原子性、單一系統(tǒng)映像(Single System Image)、可靠性、及時性(Timeliness)等特性,同時數(shù)據(jù)模型上的每個節(jié)點還支持安裝觸發(fā)器(Watcher)。我們可以利用ZooKeeper提供的數(shù)據(jù)模型(namespace)保存配置文件,當(dāng)配置有變動時,相應(yīng)的應(yīng)用程序可以得到通知,及時處理配置變更。
應(yīng)用服務(wù)器(App Server)被作為ZooKeeper集群的客戶端接入集群中,同時,它們又被作為用戶直接訪問的服務(wù)器。每個App Server在接入ZooKeeper集群時會向集群注冊自己,這樣可以利用ZooKeeper的集群管理功能,使得App Server能夠快速響應(yīng)集群的變化。為了達(dá)到上述目的,App Server需要實現(xiàn)一個集群管理器。集群管理器的設(shè)計非常簡單,只需要一個主要的類封裝ZooKeeper的功能即可,如圖3所示。
GroupManager在應(yīng)用程序中作為一個單獨(dú)模塊,向上提供集群管理API,應(yīng)用程序通過集群管理API可以“實時”感知集群信息,同時也“實時”上傳自己的負(fù)載信息到集群中被其他機(jī)器感知。GroupManager使用ZooKeeper對象(ZooKeeper Client)與ZooKeeper Server中對應(yīng)的znode。GroupManager在集群目錄上設(shè)置了Watcher,于是ZooKeeper向GroupManager發(fā)送節(jié)點變更通知,GroupManager根據(jù)集群管理對外提供的抽象功能,對事件進(jìn)行處理,向上層應(yīng)用程序提供宕機(jī)事件通知。在電視會議系統(tǒng)中,部署在多個機(jī)器上的應(yīng)用程序需要感知整個集群的狀態(tài),以及某個機(jī)器的信息,并在機(jī)器狀態(tài)變化時觸發(fā)自己的事件處理程序,所以在每個應(yīng)用程序中都有一個集群管理器的實例,應(yīng)用程序通過集群管理器訪問/管理集群。部分程序代碼如下:
Case SyncConnected:
{ switch(type)
{ case NodeChildrenChanged:
{ //集群節(jié)點有變化
int size=getSize();
List
If(size { //宕機(jī),找到宕機(jī)地址 List (children,curMachines); … } 在集群中部署的應(yīng)用程序都有自己的配置,有些配置是某個進(jìn)程獨(dú)有的,有些是不同物理機(jī)上所有進(jìn)程共享的。通常分布式應(yīng)用程序在多臺物理機(jī)上部署時,大部分配置都是一致的,可以將一致的部分抽取出來放在ZooKeeper Server的namespace中作為共享配置,當(dāng)某個進(jìn)程修改共享配置時,其他進(jìn)程會收到ZooKeeper提供的通知,做出相應(yīng)的處理。 應(yīng)用程序的配置完全由配置管理器來管理,配置管理器可以將應(yīng)用程序的配置存放在ZooKeeper znode中,并且保證對于共享配置的修改是同步的。當(dāng)應(yīng)用的某個進(jìn)程在修改共享配置時,其他進(jìn)程不可讀取/修改共享配置;在進(jìn)程修改配置結(jié)束后,其他進(jìn)程會收到共享配置更新的通知,然后做相應(yīng)的處理,所以事實上配置管理器還需要一個分布式鎖Lock來完成同步,即當(dāng)應(yīng)用程序(進(jìn)程)讀共享配置時,對共享配置加讀(共享)鎖,允許其他進(jìn)程加讀鎖,但不允許加寫(排他)鎖;當(dāng)進(jìn)程寫共享配置時,對共享配置加寫鎖,此時不允許其他進(jìn)程加讀鎖;對共享配置訪問完成后釋放相應(yīng)的鎖。 2.3 系統(tǒng)測試 編寫TEST類對電視會議集群管理進(jìn)行測試。服務(wù)器啟動后其配置管理模塊自動連接到ZooKeeper Server上,然后執(zhí)行寫配置過程,測試中隨機(jī)輸入兩個數(shù)字作為配置數(shù)據(jù),寫配置時,ConfigManager輸出日志表示申請到了寫鎖,然后更改了數(shù)據(jù),釋放寫鎖;接著測試讀配置功能,先申請讀鎖,讀取數(shù)據(jù),釋放讀鎖,最后打印出讀取的配置數(shù)據(jù)。系統(tǒng)測試結(jié)果如圖4所示。 3 結(jié)束語 本文設(shè)計了一種基于云計算的電視會議系統(tǒng)。該系統(tǒng)將集群管理的概念應(yīng)用到電視會議當(dāng)中,通過實際測試,系統(tǒng)運(yùn)行情況良好,符合系統(tǒng)設(shè)計的目標(biāo)。下一步還要對系統(tǒng)進(jìn)行長期的大量測試,研究并解決系統(tǒng)運(yùn)行中的偶發(fā)故障,逐步使該系統(tǒng)完善。 參考文獻(xiàn): [1] 鮑亮,陳榮.深入淺出云計算[M].清華大學(xué)出版社,2012. [2] 黎連業(yè),王安,李龍.云計算基礎(chǔ)與實用技術(shù)[M].清華大學(xué)出版社,2013. [3] 孫濤.面向云的視頻會議系統(tǒng)設(shè)計與實現(xiàn)[D].北京交通大學(xué),2011. [4] 沈旭磊,蔣瓊燕.UT斯達(dá)康基于云計算的高清視頻會議系統(tǒng)[J].電信網(wǎng)技術(shù),2011.10:83-85