前言
在使用VMWare虚拟机Unity的操作就不说了,这里只讲如何开发出这样的功能的,也就是阐述其技术原理!
有时候隔行如隔山,其实在软件开发行业内部更是如此,比如长期做WEB,做数据库,做ERP等等的程序员,是很难自己去分析并获得这样技术知识的。
所以下面的内容是分享给不熟悉的又有兴趣的人的!
如何理解VMWare的无缝模式(以及Parallels Desktop的融合模式)?
抛开虚拟的概念来看,这实际上是在两台电脑之间的操作,也就是主机电脑远程映射操作客户机电脑的应用。
注意这里的核心是远程操作,底层协议其实也不存在自创,也不神秘,而是大名鼎鼎的RDP协议!
RDP协议设计初衷
要知道RDP的全称其实是Remote Display Protocol,也就是远程显示协议
微软最开始设计RDP协议的时候,其传输主体是围绕应用的UI内容,而如今我们所熟知的远程桌面由于名气太大,应用太普遍,以至于很多人将RDP理解为Remote Desktop Protocol,也就是远程桌面协议?
远程桌面 or 远程应用?
RDP既然是以应用为主体,那远程桌面为啥看起来像将整个远程电脑的系统全部”搬过来“呢?其实也很简单,将桌面也理解为一个独立应用即可!
大部分人平时接触最多的是远程桌面,比如Windows自带的远程桌面连接,VNC,FreeRDP, RdpAdmin等等软件,这类软件多是因为符合日常操作习惯!
那么有没有一种方法让你只远程操作一个应用,而不是整个桌面呢?答案是肯定的,而且微软在WIN2008/WIN7后为了在虚拟化应用市场上与VMWare, Ctrix等大厂竞争,也是自带提供了相应的模块,叫做RemoteApp!
虚拟机融合模式技术原理
话题到了这里已经很清晰了,可能你还想进一步了解如何开发RemoteApp,这部分微软的RDP也有相应文档,但大部分是关于如何配置模块,配置应用,以及在客户端如何远程启动应用,使用场景也主要是企业客户,普通人并不是很需要!
如果想了解更多可以自行百度或者在Windows搜索条输入RemoteApp,会出来一个”RemoteApp与远程桌面”的菜单项,打开后再去研究。
如何开发远程应用?
个人开发者可以了解一下开源项目FreeRDP,该项目很早就支持了RemoteApp技术,VMWare和Parallels其实内部也就是使用了该技术,且作为其虚拟化应用的技术基础之一,目前FreeRDP还支持Android系统,在使用该技术的应用中,你还可以实现比如在手机上远程打开操作一个Windows程序的功能,且效果极佳,绝对不是那种图像比例缩放的远程操作类能比的,因为从RDP协议原理上来讲,其实就是原生UI的重绘!
原文地址:http://www.cnblogs.com/caibirdy1985/p/VMWare_Unity_Technology_RDP_Remote_App.html