VNC(Virtual Network Computing,虚拟网络计算),是一种远程操作执行软件,在各类应用场景中被广泛使用。在云计算技术迅猛发展的今天,用户所请求的服务将更多的在云端服务器上执行,数据也存储在云端服务器上。VNC可以成为终端用户使用云端资源的有效工具,拥有良好的应用前景。近年来,HTMLS成为Web技术发展的新热点。特别是HTMLS在图像呈现和通信方式上的新技术备受Web应用程序开发人员的瞩目。这些技术为基于Web的VNC连接提供了发展基础。
1.VNC
1.1发展现状
VNC远程操作执行软件允许用户通过网络从任何终端机器控制并使用远程服务器的桌面环境。用户的桌面状态将会在服务器端得到保持。当用户从不同终端访问服务器时,能够保持上一次的连接状态,保证数据和应用的一致性。2002年,美国电话电报公司AT&T把VNC以GPL形式发布,此后派生出了许多VNC软件。表一中列举了几种主流的VNC软件。
表1 主流的VNC软件
1.2 工作原理
VNC由三部分构成:服务器、客户端和RFB通信协议。RFB(Remote Frame Buffer,远程帧缓冲协议)是一种远程图形界面访问协议。它能发送服务器桌面图像到客户端,同时接收客户端操作并把事件发送到服务器。RFB协议对终端设备的资源需求很小,是一种真正面向瘦客户端的协议。
VNC的基本工作原理在于传输桌面图像。服务器以一定的频率扫描桌面像素,并把桌面图像以位图的形式传送到客户端。这种实现方式相对简单,但是数据量大。为了减少数据传输量,VNC采用增量传输的方法,即只传送发生变化的区域内的像素数据。这种方式在屏幕只有小部分区域发生变化时工作良好。但是当用户开关窗口或观看视频时,对带宽的需求会显著增加。
2.HTML5
2.1发展现状
HTMLS是HTML下一个主要的修订版本,目前仍处于发展制定阶段。HTMLS添加了许多新的语法特征,其中包括<video>,<audio>和<canvas>等元素。这些元素是为了更容易地在网页中添加和处理多媒体和图片而设计的。目前,Firefox,Chrome,Opera,Safari,Internet Explorer9等主流浏览器已陆续开始支持HTMLS技术。
2.2 WebSocket
WebSocket是HTMLS提供的一种允许浏览器与服务器之间进行全双工通信的网络技术。为了实现即时通信,目前常用的技术是轮询。轮询是指浏览器以特定的频率向服务器发出HTTP请求,之后由服务器返回数据给客户端浏览器。轮询模式的缺点是,浏览器需要不断向服务器发出请求。由于HTTP请求的报头很长,而报文数据可能是一个很小的值,这样将会浪费网络带宽和服务器资源。面对这种情况,HTMLS定义了新的WebSocket协议,以便节省资源,并达到实时通信的效果。使用WebSocket,服务器可以随时向浏览器推送信息,这在传统的无状态HTTP连接中是不可能实现的。
WebSocket的协议名称是ws。在新的通信方式下,网络连接的地址将会写为ws://localhost:8080/webSocketServer。由于ws是不同于HTTP的新协议,它需要服务器和客户端同时支持才能正常运行。目前,服务器对WebSocket的支持尚不普遍。下表是浏览器对WebSocket的支持信息。可以看出,现代浏览器对于WebSocket的支持是比较广泛的。
表2 主流浏览器对WebSocket的支持情况
3.基于WebSocket的VNC连接
3.1 noVNC简介
如果将VNC客户端用纯粹的HTMLS来实现,这样的应用将可以继承VNC和HTMLS跨平台、高效率通信等特性,在远程连接中将有良好的应用前景。noVNC是一种基于HTMLS和Javascript的VNC客户端,采用了WebSocket通信技术,因此需要同样支持WebSocket的VNC服务器才可以实现连接。但是目前,服务器对WebSocket的支持尚不普及,提供支持的只有x1lvnc和PocketVNC两种服务器。noVNC通过加设转换WebSocket为TCP socket的代理服务器,使得客户端可以连接到任意标准的VNC服务器。
4.三种VNC连接对比
建立VNC连接有两种传统方法:使用VNC专属的客户端或使用基于Java的浏览器插件。这两种方法的共同特点是,都需要客户在本地进行相应软件的安装。noVNC连接则不需要在客户端安装特定软件,只要通过浏览器从网页上发起连接即可。
在局域网环境内,通过100Mbps以太网实现从Windows客户机到TightVNC服务器的连接。实验表明,采用这三种方式的连接,在进行文件操作时普遍会感觉到操作延时。但对于常用的应用程序,如Word等,性能都普遍可以接受。
当三种连接进行第一帧初始化时,网络带宽的占用情况略有不同,测试结果如上图所示。从标准客户端连接,在图像进行第一帧初始化时,带宽占用率明显高于另外两种类型连接。重复进行初始帧渲染,可以观察到noVNC连接在三种连接类型中的带宽占用率是最低的。虽然对于单台客户机来说,带宽占用率的降低并没有显著影响。但是当网络上活跃用户越来越多时,每个用户带宽占用的些许降低对全网来说却是意义重大的。
图1 标准客户端连接带宽占用情况
图2 基于Java插件连接带宽占用情况
图3 noVNC连摇带宽占用情况
5.结论
随着云计算技术的发展,基于RFB协议的VNC因其开源、跨平台、易于实现等特性,在各类应用场景中得到了广泛使用。本文介绍了VNC和HTMLS技术的发展历程以及应用现状。将VNC客户端用纯粹的HTMLS技术实现,这样的应用将会有良好的应用前景。文中对三种不同类型的VNC连接进行了实验对比。实验的结果表明,基于WebSocket的noVNC连接,其初始化时的带宽占用率在三者中是最低的,而在性能方面和其他两种连接表现相当。该结果充分说明了HTMLS新技术的发展潜力。在未来,WebSocket在Web应用中会有良好的实用价值。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:新型Web技术在远程桌面连接中的应用