桌面虚拟化传输协议之android spice

桌面虚拟化传输协议之android spice,第1张

云计算是目前计算机领域的一个热门领域,桌面虚拟化是其中的一个重要应用,即把桌面系统在服务器端虚拟化,然后通过传输协议传输数据到客户端来实现桌面虚拟化,这样的好处就在于不管用什么设备,只要通过客户端都可以访问到云端的系统,随时随地都可以在一个系统上工作。

目前有两大标准的桌面传输协议,分别是RBP和RDP。

那么对于移动设备来说,很显然,RDP协议更适合移动设备,因为移动设备在3G,4G情况下不可能用耗费大流量的RFB协议,并且延迟比较高。而RDP协议由于传输的数据量较少,对网络条件要求不高。所以,针对于移动平台来说,RDP协议比较合适。

但是,由于RDP协议是微软的产品,受限于其证书,并不是开源产品,所以不能用于移动设备。那么,开源的类RDP协议的 SPICE 协议,就隆重登场了,结合我们的主题,在android平台上应用spice协议。下面,我们来介绍spice在android平台上的应用。

Spice事实上并没有android版本,但是它有linux版本,而android是基于linux的,所以,我们可以通过使用NDK来交叉编译Spice库到android上使用。也就是说,我们可以通过使用JNI来调用libspice.so(通过NDK交叉编译),从而在android平台上使用Spice。

Spice服务器通过通道(Channel)来与客户端通信,其中jpeg模块是通过NDK编译好的库,使用JNI调用,把服务器发送过来图像命令转化为图像,再把图像交给android的View显示出来。

在实际使用中,需要对图像的解析过程进行优化,否则显示的延迟很大。一个解决方案是使用更快的jpeg解析库。

最后,推荐一个开源的spice安卓客户端 remote-desktop-clients

以上只是对Spice工作原理的简单描述,详细介绍查看官方文档:

读了两篇文章,总结一下SPICE的VDI协议。

1、徐浩,兰雨晴 2013年(计算机工程与科学)发表的文章:“基于SPICE协议的桌面虚拟化技术研究与改进方案”;

2、石屹嵘,龚德志,2013年 (电信科学)发表的文章:“基于SPICE 开源协议的云桌面技术架构研究”;

张两篇文章都介绍了“SPICE”框架,

其中文章二对比了几种桌面远程显示技术。

目前的技术实现方式和协议主要有以下4 种:

SPICE架构包括客户端、SPICE服务端和相应的QXL设备、QXL驱动等,如下图所示。客户

端运行在用户终端设备上,为用户提供桌面环境。SPICE服务端以动态连接库的形式与KVM虚拟

机整合,通过SPICE协议与客户端进行通信。

分为3个部分:

SPICE协议最大的特点是其架构中增加的位于Hypervisor中的QXL设备,本质上是KVM虚

拟化平台中通过软件实现的PCI显示设备,利用循环队列等数据结构供虚拟化平台上的多个虚拟

机共享实现了设备的虚拟化。但是,这种架构使得SPICE协议紧密地依赖于服务器虚拟化软/硬件基础设施,SPICE必须与KVM虚拟化环境绑定。传统的远程桌面传输协议工作在虚拟机Guest OS中,而SPICE协议本身运行在虚拟机服务器中,可以直接使用服务器的硬件资源。

1.1 SPICE协议核心技术

1.2 SPICE协议改进


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/396179.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存