張 龍,耿小峰
(1.西安歐亞學(xué)院 信息工程學(xué)院,陜西 西安 710065;2.西安融科通信技術(shù)有限公司,陜西 西安 710100)
基于混合模式的桌面共享機(jī)制的實(shí)現(xiàn)策略
張龍1,耿小峰2
(1.西安歐亞學(xué)院 信息工程學(xué)院,陜西 西安710065;2.西安融科通信技術(shù)有限公司,陜西 西安710100)
桌面共享作為目前視頻交流的一個(gè)重要策略廣泛應(yīng)用在視頻電話會(huì)議通訊方案中。然而高消耗的CPU問題、帶寬費(fèi)用等依然是桌面共享存在的關(guān)鍵問題?;谔岣逤PU利用率,降低對(duì)網(wǎng)絡(luò)帶寬的要求,提升視頻通信的質(zhì)量,本文提出了分布式和集中式結(jié)合的混合模式選擇策略,并進(jìn)行了小規(guī)模的測試,測試結(jié)果顯示有效地提高了CPU的利用率,尤其是對(duì)網(wǎng)絡(luò)帶寬的要求有效降低,在1 Mb帶寬的網(wǎng)絡(luò)環(huán)境下已經(jīng)可以滿足視頻會(huì)議中桌面共享、應(yīng)用程序共享的要求并且收到了良好的通信效果。
視頻會(huì)議;桌面共享;混合模式;分布式;集中式
目前,視頻會(huì)議系統(tǒng)可以提供桌面共享、應(yīng)用程序共享的功能,即桌面共享者客戶端將其屏幕信息采用鉤子技術(shù)獲取后,通過指定編碼技術(shù)將數(shù)據(jù)壓縮后傳至?xí)h服務(wù)器或其他與會(huì)者客戶端。其中,若是通過會(huì)議服務(wù)器模式,則服務(wù)器通過組播將信息分別派送到其他與會(huì)者客戶端用于顯示。雖然學(xué)術(shù)界、技術(shù)領(lǐng)域提出了一些優(yōu)化的方法和技術(shù),如通過高壓縮比的編、解碼算法、區(qū)域比對(duì)傳輸算法等,也有學(xué)者通過部署代理服務(wù)器的方法,通過組播以滿足高并發(fā)容量的需求。但是這些技術(shù)或方法更多是通過犧牲CPU換取減小帶寬的目的。雖然某種程度上解決了一些問題,但也暴露出一些缺陷,如通過高壓縮比的編、解碼技術(shù)會(huì)給客戶端帶來較高CPU消耗,若是通過代理服務(wù)器模式會(huì)存在硬件成本和帶寬費(fèi)用的提高。如何在服務(wù)規(guī)模和成本中尋求合理解決方案一直是學(xué)術(shù)界、技術(shù)界努力探索的問題。
本設(shè)計(jì)目的是提供一種基于混合模式實(shí)現(xiàn)桌面共享的系統(tǒng)及方法,其采用分布式和集中式混合的模式,可解決現(xiàn)有桌面共享存在的上述技術(shù)問題。
基于混合模式實(shí)現(xiàn)桌面共享的系統(tǒng),包括共享者客戶端、ICE(Internet Connectivity Establishment,即互動(dòng)式連接建立)服務(wù)器、Reflector服務(wù)器、多個(gè)觀察者客戶端[1]:
1)共享者客戶端是桌面數(shù)據(jù)信息提供者,它借助ICE服務(wù)器和觀察者客戶端建立P2P(peer-to-peer,即點(diǎn)對(duì)點(diǎn))連接,然后通過UDP協(xié)議將桌面數(shù)據(jù)直接發(fā)送給多個(gè)觀察者客戶端。在無法建立P2P連接的情況下,共享客戶端也可通過ICE服務(wù)器的透明轉(zhuǎn)發(fā)機(jī)制將數(shù)據(jù)采用UDP協(xié)議發(fā)送至觀察者客戶端[2-3];
2)ICE服務(wù)器是通過ICE協(xié)議實(shí)現(xiàn)客戶端之間P2P的建立,同時(shí)在無法建立P2P連接情況下,承擔(dān)數(shù)據(jù)透明轉(zhuǎn)發(fā)的任務(wù)[2-3],ICE工作原理如圖1所示;
3)Reflector服務(wù)器是通過組播技術(shù)完成信息的組播功能,桌面共享者通過反向連接到Reflector上,此時(shí)Reflector充當(dāng)觀察者的角色,即從共享者端獲取數(shù)據(jù),同時(shí)其他觀察者也相繼連接到Reflector上向其請求數(shù)據(jù),Reflector根據(jù)各個(gè)觀察者的編、解碼能力及請求內(nèi)容逐一轉(zhuǎn)發(fā)共享者桌面數(shù)據(jù),從而完成桌面共享的目的。其中為了同時(shí)支持多個(gè)會(huì)議服務(wù)的目的,Reflector服務(wù)器引入了Pub/Sub(出版/訂閱)協(xié)議,該協(xié)議是配合Reflector組播完成具體會(huì)議桌面信息的組播服務(wù)的,即桌面共享者通過創(chuàng)建會(huì)議主題,其他觀察者通過訂閱該主題,從而完成信息轉(zhuǎn)發(fā)歸屬到特定會(huì)議中。其中共享者客戶端通過Reflector服務(wù)器與其余一個(gè)或多個(gè)觀察者客戶端之間采用TCP協(xié)議進(jìn)行通信[2-3]。
4)觀察者客戶端在接收到共享者的桌面數(shù)據(jù)后,進(jìn)行解碼處理,然后將其數(shù)據(jù)信息展示在顯示部分[2-3]。
圖1 ICE工作原理Fig.1 The working principle of ICE
2.1關(guān)鍵技術(shù)
根據(jù)通信雙方防火墻規(guī)則和業(yè)務(wù)需求采用分布式模式或集中式模式進(jìn)行通信,關(guān)鍵點(diǎn)是排序技術(shù),排序算法的依據(jù)根據(jù)目前的防火墻技術(shù)破解的難易程度和業(yè)務(wù)需求排序,再將兩者進(jìn)行加權(quán)求和打分,按照分?jǐn)?shù)高低進(jìn)行分類,1表示分布式,2表示集中式,系統(tǒng)架構(gòu)如圖2所示,圖2是桌面共享系統(tǒng)架構(gòu)圖,其中,桌面共享者和觀察者可根據(jù)雙方的NAT類型(Symmetric/Cone)以及防火墻規(guī)則(允許/禁止UDP分組),選擇UDP或TCP協(xié)議進(jìn)行通信。采用UDP協(xié)議時(shí),ICE服務(wù)器負(fù)責(zé)P2P打洞和UDP分組的透明轉(zhuǎn)發(fā);采用TCP協(xié)議時(shí),Refelctor服務(wù)器負(fù)責(zé)從共享者端主動(dòng)讀取桌面內(nèi)容,然后再根據(jù)觀看者的帶寬自適應(yīng)地調(diào)節(jié)要同步的桌面內(nèi)容后發(fā)送給觀察者??蛻舳丝筛鶕?jù)NAT/Firewall的實(shí)際情況,自動(dòng)地選擇合適的工作模式。此外,使用桌面共享功能時(shí),系統(tǒng)允許分布式和集中式兩種工作模式并存。
2.2架構(gòu)功能模塊
1)ICE(Internet Connectivity Establishment,即互動(dòng)式連接建立)協(xié)議處理模塊
ICE協(xié)議模塊主要是為了客戶端之間實(shí)現(xiàn)P2P(peer-to-peer,即點(diǎn)對(duì)點(diǎn))連接,其中通過使用多種協(xié)議及網(wǎng)絡(luò)連接機(jī)制,如 STUN (Simple Traversal of UDP Through NATs——STUN),TURN(Traversal Using Relay NAT——TURN),ICE可以了解到客戶端所在網(wǎng)絡(luò)結(jié)構(gòu)以及這些設(shè)備可以實(shí)現(xiàn)通信的各類網(wǎng)絡(luò)地址[4-5]。ICE的基本流程分兩個(gè)步驟,第一步就是收集各種類型的地址,第二步就是將本地和遠(yuǎn)端的地址進(jìn)行配對(duì)、排序,然后執(zhí)行連通性檢查。
2)Reflector組播處理模塊
Reflector組播處理模塊主要是完成信息的組播功能,桌面共享者通過反向連接到Reflector模塊上,Reflector充當(dāng)觀察者的角色,即從共享者端獲取信息,同時(shí)其他觀察者也相繼連接到Reflector上向其請求信息,Reflector根據(jù)各個(gè)觀察者的編、解碼能力及請求內(nèi)容逐一轉(zhuǎn)發(fā)共享者信息,從而完成桌面共享的目的。
3)Pub/Sub(出版/訂閱)協(xié)議處理模塊
Pub/Sub協(xié)議處理模塊是配合Reflector組播處理模塊完成具體場合桌面信息的組播服務(wù)的,其中桌面共享者通過創(chuàng)建會(huì)議主題,其他觀察者通過訂閱該主題,從而完成信息轉(zhuǎn)發(fā)歸屬到特定會(huì)議中。通過這種方法便可以實(shí)現(xiàn)Reflector組播處理模塊同時(shí)為多個(gè)會(huì)議服務(wù)的目的[6]。
圖2 系統(tǒng)架構(gòu)Fig.2 The system architecture
2.3具體實(shí)現(xiàn)
系統(tǒng)分為客戶端和服務(wù)器兩種角色兩部分,下面分別描述一下桌面共享功能的客戶端和服務(wù)器端的基本流程:
1)客戶端
步驟1:獲取服務(wù)器配置,客戶端啟動(dòng)桌面共享功能后,首先通過桌面共享模塊設(shè)置接口將服務(wù)器的地址信息傳給該模塊,包括ICE和Refelctor兩個(gè)服務(wù)器的地址及所使用協(xié)議等;
步驟2:登陸ICE服務(wù)器,桌面共享模塊登陸接口嘗試登陸ICE服務(wù)器,若登陸失敗,則表明用戶的防火墻規(guī)則可能禁止UDP分組,因此只能采用集中式模式。從而轉(zhuǎn)到步驟3。若登陸成功,則即可以采用分布式模式或采用集中式模式。這個(gè)取決于通信雙方防火墻規(guī)則和業(yè)務(wù)需求;
步驟3:登陸Reflector服務(wù)器,客戶端登陸接口通過TCP模式連接到Reflector服務(wù)器;
步驟4:啟動(dòng)共享者,客戶端通過桌面共享模塊共享者啟動(dòng)接口創(chuàng)建桌面共享,并通過消息形式廣播給所有觀察者,消息內(nèi)容可分為2種,若共享者支持分布式模式,則消息包括共享者自身本地地址、NAT地址和Relay地址。若共享者不支持分布式模式,則消息為reflector服務(wù)器地址;
步驟5:啟動(dòng)觀察者,觀察者在收到共享者廣播過來的消息后,首先調(diào)用桌面共享模塊觀察者啟動(dòng)接口以便啟動(dòng)觀察者桌面共享模塊,接著根據(jù)共享者和觀察者雙方的防火墻情況自動(dòng)選擇合適的工作模式;
步驟6:結(jié)束共享,當(dāng)共享者或觀察者結(jié)束共享時(shí),可主動(dòng)關(guān)閉與對(duì)端或者Reflector服務(wù)器的連接,其中一旦所有與會(huì)者結(jié)束桌面共享服務(wù),則Reflector即可結(jié)束該會(huì)議的主題會(huì)話,以便釋放資源;
2)服務(wù)器
步驟1:啟動(dòng)ICE服務(wù)器,實(shí)時(shí)接收和處理客戶端端請求,協(xié)助客戶端完成穿墻打洞的工作;
步驟2:啟動(dòng)Relector服務(wù)器,實(shí)時(shí)監(jiān)聽和處理客戶端連接請求,其中無論共享者還是觀察者,在連接Reflector服務(wù)器成功之后,首先向服務(wù)器發(fā)送創(chuàng)建或訂閱VNC會(huì)話的請求。Reflector服務(wù)器根據(jù)上述信息可以將與會(huì)者組織到同一個(gè)VNC會(huì)話中,并通過號(hào)碼和類型來區(qū)分與會(huì)者的身份。
圖3 文檔共享Fig.3 Document Share
基于本文提出的方法,設(shè)計(jì)了“融科”視頻會(huì)議系統(tǒng)(RK-VC),在進(jìn)行測試時(shí),首先啟動(dòng)ICE[7]服務(wù)器,實(shí)時(shí)接收和處理客戶端端請求,再啟動(dòng)Relector服務(wù)器,實(shí)時(shí)監(jiān)聽和處理客戶端連接請求,等待共享者或觀察者的連接;然后客戶端的共享者或觀察者在瀏覽器輸入服務(wù)地址進(jìn)行登錄連接,客戶端登陸接口通過TCP[8]模式連接到Reflector服務(wù)器,共享者客戶端通過桌面共享模塊啟動(dòng)接口創(chuàng)建桌面共享,并通過消息形式廣播給所有觀察者,觀察者在收到共享者廣播過來的消息后,首先調(diào)用桌面共享模塊觀察者啟動(dòng)接口以便啟動(dòng)觀察者桌面共享模塊,接著根據(jù)共享者和觀察者雙方的防火墻情況自動(dòng)選擇合適的工作模式,測試的部分界面如圖3所示為文檔共享測試。
目前實(shí)現(xiàn)了音/視頻交互、文字交流、文檔共享等桌面共享的交互手段。通過實(shí)際應(yīng)用測試,基于混合模式的桌面共享機(jī)制有效改善CPU的利用率,提高了在有限帶寬條件下遠(yuǎn)程桌面共享交互時(shí)的通信效果。
本文提出了一種分布式和集中式結(jié)合的混合模式選擇策略,特點(diǎn)主要有以下兩個(gè):
1)通過出版訂閱的模式解決了單服務(wù)器同時(shí)為多個(gè)會(huì)議服務(wù)的難題,同時(shí)通過服務(wù)器的組播極大減輕了共享者客戶端的帶寬消耗和CPU壓力。
2)本設(shè)計(jì)允許分布式和集中式兩種桌面共享工作模式并存,可根據(jù)帶寬、服務(wù)器硬件條件自適應(yīng)地選擇合適的桌面共享工作模式,從而保證在有限硬件資源下進(jìn)行大規(guī)模的桌面共享服務(wù),也允許根據(jù)使用場景進(jìn)行靈活配置。
經(jīng)過小規(guī)模的遠(yuǎn)程視頻通話測試,測試結(jié)果顯示有效地提高了CPU的利用率,尤其是對(duì)網(wǎng)絡(luò)帶寬的要求有效降低,目前在1 Mb帶寬的網(wǎng)絡(luò)環(huán)境下已經(jīng)可以滿足視頻會(huì)議中桌面共享、應(yīng)用程序共享的要求并且收到了良好的通信效果,目前正在進(jìn)行公網(wǎng)大規(guī)模測試,預(yù)期效果良好。
[1]楊建英.基于VNC的桌面共享沖突解決機(jī)制的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件2011,(5):229-231.
[2]楊建英.基于P2P和VNC的測井解釋協(xié)同平臺(tái)的研究與實(shí)現(xiàn)[D].濟(jì)南:山東科技大學(xué),2010.
[3]孫一波,劉菁.大規(guī)模視頻會(huì)議中的多人桌面共享系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2005(14):139-141.
[4]姚玉姝,陳宏亮,李曉珊,等.教師桌面發(fā)布與共享實(shí)驗(yàn)教學(xué)軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].科技廣場,2011(5):103-106.
[5]羅峰.基于P2P和網(wǎng)絡(luò)編碼的遠(yuǎn)程桌面共享[J].重慶郵電大學(xué)學(xué)報(bào)(自然科學(xué)版)2007(4):454-457.
[6]劉波濤,王艷春.無紙化會(huì)議系統(tǒng)在局域網(wǎng)多媒體電子會(huì)議中的應(yīng)用[J].中國新技術(shù)新產(chǎn)品,2010(5):42.
[7]宋職政,羊彥,孟超普.基于ICE2PCS01的有源功率因素校正的電路設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013(7):98-100.
[8]張雅瓊.基于NS2模擬軟件的TCP協(xié)議實(shí)驗(yàn)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013(9):27-29.
The implementation strategy of mixed mode based on desktop sharing mechanism
ZHANG Long1,GENG Xiao-feng2
(1.Information Engineering School,Xi'an Eurasia University,Xi′an 710065,China;2.Xi′an RongKe Communication Technology Co Ltd,Xi'an 710100,China)
Desktop sharing is an important strategy in video communication is widely used in video conferencing communication scheme.However,CPU,high bandwidth costs is still the key problem existing desktop sharing.Based on the improved CPU utilization rate,reduce the demand for network bandwidth,improve the quality of video communication,this paper presents a hybrid mode selection strategy combined with the distributed and centralized,and the small scale test,test results show that can effectively improve the utilization rate of CPU,especially the demand for network bandwidth is reduced effectively,in 1Mb the bandwidth of the network environment can satisfy the desktop video conferencing in sharing,application sharing and received better communication effect.
video conference;desktop sharing;mixed model;distributed;centralized
TN99
A
1674-6236(2016)05-0142-03
2015-04-19稿件編號(hào):201504209
張 龍(1977—),男,陜西西安人,碩士,講師。研究方向:軟件工程。