国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SPICE協(xié)議的Android云桌面客戶端研究

2016-10-20 05:17:16王浩杰屈喜龍
關(guān)鍵詞:服務(wù)器端桌面虛擬化

王 寧,王浩杰,屈喜龍

(湖南工程學(xué)院 計算機(jī)與通信學(xué)院,湘潭 411104)

?

基于SPICE協(xié)議的Android云桌面客戶端研究

王 寧,王浩杰,屈喜龍

(湖南工程學(xué)院 計算機(jī)與通信學(xué)院,湘潭 411104)

桌面虛擬化技術(shù)是提供云資源的一種重要途徑,將終端設(shè)備和用戶的桌面環(huán)境解耦合,結(jié)合應(yīng)用虛擬化技術(shù),為用戶提供了隨時隨地的桌面辦公環(huán)境.桌面虛擬化技術(shù)的核心是桌面?zhèn)鬏攨f(xié)議.從虛擬化的基本知識出發(fā),介紹了主流的桌面?zhèn)鬏攨f(xié)議,并著重分析了SPICE協(xié)議,對其框架進(jìn)行分析,在此基礎(chǔ)上介紹了SPICE 協(xié)議的Android客戶端,能夠通過客戶端訪問到云桌面.

SPICE協(xié)議;桌面虛擬化;Android終端;云桌面

隨著云計算的迅速發(fā)展,桌面虛擬化解決方案:桌面虛擬化架構(gòu)(Virtual Desktop Infrastructure,VDI)日益成熟.桌面虛擬化正逐漸成為重要的云計算應(yīng)用之一,它能夠在云端為用戶提供遠(yuǎn)程的計算機(jī)桌面服務(wù).VDI架構(gòu)是目前主流的一種桌面云解決方案.桌面虛擬化是一種基于云計算的用戶桌面部署模式,虛擬桌面以虛擬機(jī)的形式運(yùn)行在云端數(shù)據(jù)中心的服務(wù)器上,終端用戶通過桌面?zhèn)鬏攨f(xié)議訪問虛擬桌面,每一個用戶都享有一套獨(dú)立的桌面環(huán)境,其目標(biāo)是能夠使用任何設(shè)備,在任何時間,任何地點通過網(wǎng)絡(luò)訪問個人的桌面系統(tǒng).

VDI解決方案的核心是虛擬桌面?zhèn)鬏攨f(xié)議(Remote Transfer Protocol),目前主流的桌面?zhèn)鬏攨f(xié)議有:紅帽(Red Hat)公司的簡單協(xié)議獨(dú)立計算環(huán)境SPICE協(xié)議(Simple Protocol for Independent Computing Environment)、思杰(Citrix)公司的獨(dú)立運(yùn)算架構(gòu)ICA協(xié)議(Independent Computing Architecture)、微軟(Microsoft)公司的遠(yuǎn)程桌面協(xié)議RDP(Remote Desktop Protocol)、威睿(VMware)公司的PCoIP(PC-over-IP)協(xié)議等[1].SPICE是一個開源的桌面?zhèn)鬏攨f(xié)議,也是一個具有良好遠(yuǎn)程桌面體驗的桌面虛擬化框架.桌面?zhèn)鬏攨f(xié)議的性能是影響VDI效果的重要因素.

本文主要是對SPICE協(xié)議和其Android客戶端進(jìn)行研究,并對此進(jìn)行了相關(guān)的實驗.

1 桌面?zhèn)鬏攨f(xié)議

1.1 桌面?zhèn)鬏攨f(xié)議原理

用戶終端和服務(wù)器之間的通信由桌面?zhèn)鬏攨f(xié)議控制連接,能夠?qū)⒎?wù)器上的圖像、圖形、音頻等信息傳輸?shù)接脩艚K端,以及將用戶終端的輸入信息傳輸?shù)椒?wù)器端,包括鼠標(biāo),鍵盤,外設(shè)等的輸入信息[2].桌面?zhèn)鬏攨f(xié)議原理如圖1所示.

圖1 桌面?zhèn)鬏攨f(xié)議原理

1.2 桌面?zhèn)鬏攨f(xié)議的比較

當(dāng)前主流的桌面?zhèn)鬏攨f(xié)議主要有:SPICE、ICA、RDP、PCoIP等協(xié)議,各主流協(xié)議的分析比較[3]如表1所示.

表1 主流虛擬桌面?zhèn)鬏攨f(xié)議的比較

虛擬桌面是否流暢受到傳輸帶寬的制約.從上表可以看出,ICA協(xié)議對傳輸帶寬的需求是最低的,ICA是一個非開源的協(xié)議,它采用了處理性能強(qiáng)、效率高的數(shù)據(jù)壓縮算法,降低了對網(wǎng)絡(luò)帶寬的要求,但是它的圖像視覺體驗并不是很好,傳輸?shù)漠嬅嫘Ч菀资д?;虛擬桌面圖像數(shù)據(jù)的組織形式以及數(shù)據(jù)傳輸順序制約了圖像的顯示體驗.PCoIP協(xié)議是非開源的基于UDP的協(xié)議,它采用的是分層漸進(jìn)的方式顯示桌面內(nèi)容,但是為了得到最佳效果,需要添加額外的硬件支持;RDP協(xié)議是微軟公司的專有協(xié)議,在windows平臺下的支持度比較高,缺乏跨平臺性,對windows平臺下的技術(shù)有較強(qiáng)的依賴性.

SPICE協(xié)議是一個開源的協(xié)議,對傳輸帶寬的需求適中,但是在所有協(xié)議中它的綜合播放體驗是最好的,它具有廣泛的社區(qū)支持,穩(wěn)定性和安全性非常高,支持多種終端設(shè)備.對音視頻帶寬控制、多媒體應(yīng)用、單畫面顯示、多畫面顯示、以及GPU加速都有非常好的支持;它可以自適應(yīng)的感知用戶端設(shè)備的處理能力,然后在用戶的終端上進(jìn)行圖像渲染操作,同時采用緩存技術(shù)和壓縮技術(shù),并對傳輸數(shù)據(jù)進(jìn)行優(yōu)化,減少網(wǎng)絡(luò)帶寬占用[4].

2 SPICE協(xié)議的研究分析

2.1 SPICE協(xié)議的特點

SPICE協(xié)議主要被用于Red Hat桌面虛擬化解決方案中,是由Qumranet公司開發(fā)的專門針對遠(yuǎn)程桌面?zhèn)鬏數(shù)膮f(xié)議,它作為一個開源協(xié)議,吸收了眾多同類協(xié)議的優(yōu)點,發(fā)展較為迅速,具有良好的性能,在社區(qū)的推動下日益成熟.

SPICE協(xié)議能夠根據(jù)桌面?zhèn)鬏數(shù)膬?nèi)容來進(jìn)行數(shù)據(jù)傳輸,通過不同的“通道”(Channel)對圖像、視頻、音頻播放和用戶輸入等數(shù)據(jù)進(jìn)行傳輸,使得SPICE協(xié)議能夠根據(jù)網(wǎng)絡(luò)條件對傳輸?shù)臄?shù)據(jù)進(jìn)行控制,提供QoS(Quality of Service)控制;SPICE協(xié)議直接運(yùn)行在虛擬機(jī)服務(wù)器中,這使得SPICE可以直接使用服務(wù)器端的硬件資源,它通過虛擬設(shè)備接口VDI直接與服務(wù)端設(shè)備進(jìn)行交互;同時也使得SPICE協(xié)議和客戶虛擬機(jī)操作系統(tǒng)(Guest OS)相互獨(dú)立[5].

SPICE協(xié)議在多媒體數(shù)據(jù)的傳輸上具有良好的性能,能夠自動判斷并且可以調(diào)整圖像處理的位置,假如用戶的終端設(shè)備具有處理復(fù)雜圖像操作的能力,就盡量在用戶的終端進(jìn)行圖像操作的處理,傳輸圖像處理命令到終端,而不是直接傳輸渲染后的圖像,這樣能夠有效的減少網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量.

2.2 SPICE協(xié)議的消息格式

SPICE協(xié)議定義了一組協(xié)議消息與遠(yuǎn)程虛擬設(shè)備進(jìn)行交互,其中包括控制遠(yuǎn)程設(shè)備、網(wǎng)絡(luò)訪問、從遠(yuǎn)程設(shè)備上獲取輸入設(shè)備的輸入信息,以及相應(yīng)的輸入數(shù)據(jù).除此之外,還定義了一組用于支持遠(yuǎn)程服務(wù)器遷移的消息.SPICE通信會話根據(jù)傳輸和執(zhí)行的消息類型分多個虛擬通道,主要有以下六個通道:主通道作為主要的SPICE會話通道,顯示通道接收遠(yuǎn)程顯示更新,輸入通道發(fā)送鼠標(biāo)和鍵盤事件,光標(biāo)通道接收指針形狀和位置,播放通道接收音頻流,錄音通道發(fā)送客戶端音頻輸入.

SPICE協(xié)議以RedDateHeader開始并指明消息類型,消息類型由type指明,當(dāng)sub_list的值不為0時,表示該消息后帶有子消息,當(dāng)消息中包含有子消息時,子消息會在主消息被處理之前按照順序先被處理.消息體在RedDateHeader后面,表示主消息所包含的數(shù)據(jù),用size表示它的大小.RedSubMessageList主要包含子消息數(shù)量和子消息數(shù)組,其中type 表示子消息的類型.

表2 SPICE協(xié)議的消息格式

RedDateHeader RedSubMessagesList RedSubMessage

SPICE協(xié)議中的RedDateHeader結(jié)構(gòu)體定義如下:

typedef structSPICE_ATTR_PACKED SpiceDataHeader {

uint64_t serial; //消息的序列號.從1開始,后續(xù)逐漸增加

uint16_t type; //消息類型

uint32_t size; //消息體的大小,不是0,就是sub_list的實際大小

uint32_t sub_list;//后續(xù)數(shù)據(jù)的大小

}SpiceDataHeader.

2.3 協(xié)議連接的建立

SPICE協(xié)議是由客戶端發(fā)起通信連接會話.其過程如圖2所示.SPICE協(xié)議中由主通道負(fù)責(zé)連接會話,客戶端首先向服務(wù)器發(fā)送RedLinkMess消息,服務(wù)器收到RedLinkMess消息后,會向客戶端回應(yīng)RedLinkReply消息,并生成RSA密鑰對,同時將公鑰發(fā)送給客戶端.客戶端檢查連接的結(jié)果,如果結(jié)果正常,建立一個有效的連接,使用公鑰將用戶密碼進(jìn)行加密之后發(fā)送到服務(wù)端,在服務(wù)器端完成解密,連接完成之后將連接的結(jié)果發(fā)送到客戶端.

圖2 SPICE協(xié)議連接建立

RedLinkMess的定義如下:

typedef structSPICE_ATTR_PACKED SpiceLinkHeader {

uint32_tmagic;//必須為RED_MAGIC協(xié)議標(biāo)識

uint32_tmajor_version; //協(xié)議的主版本號

uint32_tminor_version;//協(xié)議的次版本號

uint32_t size;//后續(xù)數(shù)據(jù)的大小

}SpiceLinkHeader;

typedef structSPICE_ATTR_PACKED SpiceLinkMess {

uint32_t connection_id; //連接會話ID,針對一個新的會話,客戶端將此區(qū)域設(shè)置為0,創(chuàng)建其他通道連接時,使用分配的會話ID

uint8_t channel_type; //通道的類型

uint8_t channel_id; //要連接的通道ID,同一個ID可能會有多個通道.

uint32_t num_common_caps;//客戶端支持的普通協(xié)議功能的數(shù)量

uint32_t num_channel_caps; //客戶端支持的特殊協(xié)議功能的數(shù)量

uint32_t caps_offset; //這個結(jié)構(gòu)體的大小.相當(dāng)于size域的偏移量

} SpiceLinkMess;

RedLinkReply的定義:

typedef structSPICE_ATTR_PACKED SpiceLinkHeader {

uint32_tmagic; //必須為RED_MAGIC協(xié)議標(biāo)識

uint32_tmajor_version; //服務(wù)器端的主版本號

uint32_tminor_version;//服務(wù)器端的次版本號

uint32_t size; //后續(xù)數(shù)據(jù)的大小

}SpiceLinkHeader;

typedef structSPICE_ATTR_PACKED SpiceLinkReply {

uint32_t error; //版本號協(xié)商結(jié)果,錯誤碼

uint8_t pub_key[SPICE_TICKET_PUBKEY_BYTES]; //存放公鑰

uint32_t num_common_caps;//普通服務(wù)器通道功能詞數(shù)量

uint32_t num_channel_caps; //普通服務(wù)器通道功能詞數(shù)量

uint32_t caps_offset; //偏移量

}SpiceLinkReply;

2.4 SPICE框架的研究分析

SPICE協(xié)議提供了一個良好的遠(yuǎn)程桌面體驗的桌面虛擬化框架,如圖3所示,主要由客戶端(Guest)、服務(wù)端(Host)以及相關(guān)組件如QXL設(shè)備、運(yùn)行在Guest操作系統(tǒng)上的服務(wù)、Agent代理和QXL顯示驅(qū)動組成,旨在提供高質(zhì)量的遠(yuǎn)程虛擬桌面訪問;SPICE協(xié)議依賴于KVM(Kernel-based Virtualmachine),并與KVM緊密聯(lián)系在一起,它的顯示內(nèi)容是由模擬顯卡提供的[6].

Spice服務(wù)器端(Host)基于虛擬化環(huán)境QEMU/KVM,客戶機(jī)(Guest)直接位于服務(wù)器端,Spice Server負(fù)責(zé)與客戶端之間的通信,位于QEMU上層,嵌入在QEMU中的設(shè)備(Devices,即SPICE Devices)包括QXL設(shè)備(用于提高遠(yuǎn)程顯示性能)和VDI 接口設(shè)備,(定義了一套VDI接口),Guest處在虛擬化的平臺環(huán)境中,設(shè)備驅(qū)動(SPICE Drivers)安裝在Guest上,SPICE Agent運(yùn)行在Guest操作系統(tǒng)上,是一個可選模塊,與顯示配置、鼠標(biāo)位置和形態(tài)以及剪切板有關(guān);SPICE Server一方面通過SPICE協(xié)議中的多虛擬通道與遠(yuǎn)端的SPICE Client進(jìn)行通信,另一方面也通過VDI Port和QEMU進(jìn)行交互[7].

圖3 基于SPICE協(xié)議的桌面虛擬化框架

3 SPICE Android客戶端的研究分析

3.1 客戶端的總體框架

客戶端的架構(gòu)如圖4所示,主要可以分為兩個模塊,一個是C語言開發(fā)的協(xié)議處理模塊,另一個是Java語言開發(fā)的用戶交互模塊[8].

圖4 客戶端總體框架

3.2 實驗結(jié)果分析

實驗平臺為小米2S手機(jī),搭載的是Android OS 4.3操作系統(tǒng),處理器為主頻1.7GHz的高通 驍龍Snapdragon APQ8064Pro.在局域網(wǎng)環(huán)境中,通過客戶端能夠連接上搭建在服務(wù)器上的虛擬桌面,如圖5所示.在Android客戶端上能夠文檔編輯、網(wǎng)頁瀏覽,視頻播放、游戲等常用操作,如圖6、圖7、圖8所示,能夠滿足基本的辦公的需求.

圖5 虛擬桌面

圖6 瀏覽網(wǎng)頁

圖7 游戲操作

圖8 視頻播放

4 結(jié)語

本文首先介紹了桌面?zhèn)鬏攨f(xié)議,然后分析了SPICE協(xié)議及其框架,最后對Android客戶端進(jìn)行了簡要的分析介紹.Android云桌面客戶端能夠適用于多種移動設(shè)備,可以提高云桌面的靈活性,有較大的實用價值.參 考 文 獻(xiàn)

[1] Schlosser D,Binzenhofer A,Staehle B.Performance Comparison of Windows-based Thin-client Architectures[C].Proc of Australasian Telecommunication Networks and Applications Conference,2008.

[2] 徐 浩,蘭雨晴.基于SPICE協(xié)議的桌面虛擬化技術(shù)研究與改進(jìn)方案[J].計算機(jī)工程與科學(xué),2013,12:20-25.

[3] Fok A C F,Lecroart B,Chan E.An Adaptive Approach to Optimize Thin Client Protocols[C].Proc of Future Network andmobile Summit 2010Conference,2010.

[4] 李 博.基于SPICE協(xié)議的桌面虛擬化客戶端的設(shè)計與實現(xiàn)[D].華南理工大學(xué)碩士學(xué)位論文,2012.

[5] 賴孫榮.虛擬桌面框架Spice剖析及其客戶端的設(shè)計與實現(xiàn)[D].華南理工大學(xué)碩士學(xué)位論文,2012.

[6] 徐燕雯.基于KVM的桌面虛擬化架構(gòu)設(shè)計與實現(xiàn)[D].上海交通大學(xué)碩士學(xué)位論文,2012.

[7] 陳 權(quán).Android終端玩大型電腦游戲的一種實現(xiàn)方法[D].電子科技大學(xué)碩士學(xué)位論文,2013.

[8] 袁 野,何 嘉.基于Android的云桌面客戶端關(guān)鍵技術(shù)研究與實現(xiàn)[J].計算機(jī)應(yīng)用,2013,S1:26-28.

Research on Android Cloud Desktop Client Based on SPICE Protocol

WANG Ning,WANG Hao-jie,QU Xi-long

(College of Computer and Communication,Hunan Institute of Engineering,Xiangtan 411104,China)

Desktop virtualization technology,as an important cloud resources deliverymethod,decoupling the user's desktop environment and terminal device,and with application virtualization technology,begins to provide users with anytime,anywhere desktop office environment.Desktop virtualization’s core technology is desktop transfer protocol.On the basis of virtualization,desktop transfer protocol is introduced.The SPICE protocol and its framework are analyzed.With these Android client of SPICE protocol can have an access to the cloud desktop through the client.

SPICE protocol; desktop virtualization; Android terminal; cloud desktop

2015-11-25基金項目:2014年普通高等學(xué)校教學(xué)改革研究項目(414);湖南省自科基金資助項目(2016JJ2040).作者簡介:王 寧(1982-),男,碩士,講師,研究方向:計算機(jī)網(wǎng)絡(luò).

TP311

A

1671-119X(2016)02-0033-04

猜你喜歡
服務(wù)器端桌面虛擬化
桌面舞龍
基于APP在線控制雙擠出頭FDM桌面3D打印機(jī)的研制
基于OpenStack虛擬化網(wǎng)絡(luò)管理平臺的設(shè)計與實現(xiàn)
電子制作(2019年10期)2019-06-17 11:45:10
對基于Docker的虛擬化技術(shù)的幾點探討
電子制作(2018年14期)2018-08-21 01:38:20
淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
成功(2018年10期)2018-03-26 02:56:14
虛擬化技術(shù)在計算機(jī)技術(shù)創(chuàng)造中的應(yīng)用
電子測試(2017年11期)2017-12-15 08:57:56
在Windows中安裝OpenVPN
存儲虛擬化還有優(yōu)勢嗎?
網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
最貼心21款Win7桌面小工具展示
淳化县| 西乡县| 富源县| 八宿县| 成武县| 荆州市| 济阳县| 涪陵区| 南溪县| 项城市| 彰化县| 米易县| 宁安市| 阳新县| 桐梓县| 北京市| 桐柏县| 成都市| 金昌市| 庆城县| 漾濞| 临泽县| 红原县| 颍上县| 澜沧| 潢川县| 滦平县| 韩城市| 田东县| 左权县| 富顺县| 迭部县| 枣强县| 黄石市| 个旧市| 大同县| 阳朔县| 富民县| 安宁市| 卓尼县| 商水县|