楊波



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