Guacamole通过浏览器以网页远程控制电脑

标签: 浏览器相关 Guacamole 控制 网页 远程 | 发表时间:2013-06-20 22:18 | 作者:iefans
出处:http://www.iefans.net

Guacamole 是一个以 HTML5 为基础的网页应用程序(web application),使用者可以在浏览器中通过这个网页应用程序并配合远程桌面的传输协议(例如 VNC 或 RDP)来操控远程的电脑。

除了网页应用程序之外,Guacamole 也是一个专案名称,这个专案的内容就是发展一套 API 提供给 Guacamole 网页应用程序使用,而这个 API 亦可用于其他类似的应用程序或服务。

网页应用程序(Web Application)

一般谈到 Guacamole 一词,通常是指以 Guacamole API 为基础所发展出来的网页应用程序,而这个网页应用程序事实上是远程操控系统中的一环,Guacamole 配合整个系统即可建立一个支持各种协议的远程桌面 gateway。

由于 Guacamole 只使用到 HTML5 与一些其他的标准,让 Guacamole 在 client 端只需要新的浏览器,即可通过网络操控远程电脑的桌面。

在以前 Guacamole 是一个单纯的 HTML5 VNC client,而在更之前的版本,它还只是一个由 JavaScript 写成的 telnet client,称为 RealMint,但现在的 Guacamole 已经是完全不同的东西了,目前它的架构大幅成长后,已经涵盖各种远程桌面的协议,亦可同时操控多台电脑,非常实用,甚至 Guacamole 的开发者也是使用它来在远程的电脑做开发。

Guacamole API

Guacamole 专案将其所开发出来的 API 用于网页应用程序上,也就是上述的 Guacamole 网页应用程序,虽然这个应用程序是 Guacamole 最大的卖点之一,但是这个专案所发展的 API 也不容小觑,尤其是要将 HTML5 远程操控电脑的功能,整合至现有的应用程序或系统架构时,这样的 API 会是一个非常有用的工具。

Guacamole API 提供了一个以 JavaScript 为基础的通道(并非使用 WebSocket),让你可以很方便且有效率的做文字资料的串流(streaming),另外它也实做了一个支持 Guacamole 传输协议的 client,这个 client 可以接收经过通道传输的 Guacamole 串流资料,然后将远程电脑的画面呈现在浏览器中。

另外,这个 API 也提供跨浏览器的鼠标与键盘事件(events)、屏幕键盘与支持硬件加速 compositing 的 synchronized nestable layers。

一般有 HTML5 远程桌面需求的专案,可以直接使用 Guacamole API 所提供的功能,这样可以省去非常多开发上的时间。

实作与架构

实作与架构

事实上 Guacamole 并不是一个单纯的网页应用程序,它是由好几个部份组合而成的架构,许多功能都是由一些比较低阶的组件所提供的。

Guacamole 通讯协议(protocol)

Guacamole 网页应用程序本身并不支持任何远程桌面的通讯协议,当然也不支持 VNC 或 RDP 等,它本身只有支持自己的 Guacamole 传输协议,这个协议包含远程画面的绘制(remote display rendering)与事件(event)的传递,然而一个包含这两种功能的协议事实上就跟一般的远程桌面协议有同等的功能,只是 Guacamole 协议在设计理念上跟一般的远程桌面协议有些不同,Guacamole 的目标是希望可以相容于各种桌面环境。

Guacamole 中实作了各种远程桌面协议中的功能,并且加入一些特定的远程桌面协议支持(例如 RDP 与 VNC 等),而一般的远程桌面协议与 Guacamole 之间则是通过一个 middle layer 来转换,实作这个转换的程序实际上就是撰写一个远程桌面的 client,只不过将原本显示在本机的画面通过 Guacamole 协议传送到远程。

guacd

guacd 就是上述 middle layer 中负责转换的程序,这个程序是 Guacamole 最主要的核心,它可以动态载入各种不同的远程桌面协议支持(也称为 client plugin),并且使用这些协议依照网页应用程序所传回的指令,连线到远程被控制的电脑。

在技术层面上,guacd 是一个伴随 Guacamole 的 daemon process,它会在背景执行并且倾听来自于网页应用程序的 TCP 连线。这个 guacd 不直接支持任何远程桌面协议,而是只有支持基本的 Guacamole 协议,在需要的时候才去载入指定的远程桌面协议 client plugin。

当 guacd 载入 client plugin 之后,client plugin 会自己独立执行,并且全权控制所有与网页应用程序之间的连线,直到 client plugin 执行结束为止。

guacd 与所有的 client plugins 都会需要一个共同的 libguac 函式库,这个函式库可以让程序开发者更容易使用 Guacamole 传输协议。

网页应用程序(Web Application)

在 Guacamole 架构中跟使用者最接近的就是网页应用程序的部份,就像上面所提过的,这个网页应用程序并不包含任何远程桌面协议的支持,它只是一个前端的使用者介面,实作基本的图形介面与使用者认证而已,真正的远程桌面操控都是靠著 guacd 来处理。

目前在伺服器端的网页应用程序是以 Java 来实作,但是其实也可以使用其他语言,毕竟 Guacamole 本质上是一个 API,所以它也希望可以支持不同的语言。

参考资料: Guacamole
via: 海豹杂记

This article addresses: http://www.iefans.net/guacamole-liulanqi-wangye-yuancheng-kongzhi-diannao/

Here is no comments yet by the time your rss reader get this, Do you want to be the first commentor? Hurry up

相关 [guacamole 浏览器 网页] 推荐:

Guacamole通过浏览器以网页远程控制电脑

- - IE浏览器中文网站
Guacamole 是一个以 HTML5 为基础的网页应用程序(web application),使用者可以在浏览器中通过这个网页应用程序并配合远程桌面的传输协议(例如 VNC 或 RDP)来操控远程的电脑. 除了网页应用程序之外,Guacamole 也是一个专案名称,这个专案的内容就是发展一套 API 提供给 Guacamole 网页应用程序使用,而这个 API 亦可用于其他类似的应用程序或服务.

啊!Geek:为你的计算器做个网页浏览器

- zeaz - 煎蛋
计算器能做什么,能算加剪乘,能玩超级玛丽(计算器上还能玩超级马里呐),甚至还能上网浏览网页,不过是黑白,且纯字符的. 纽约大学名为 Christopher Mitchell 的家伙为自家的 TI-83+ 和TI-84+SE 计算器编写了一个网页浏览器,虽然不能媲美现在烂大街的iPhone,擦,但哥也是可以上网的“智能计算机了”.

[图]网页浏览器历史 | 小众软件 > 日志

- MArCoRQ - 小众软件 - Appinn
你知道互联网上最早的浏览器是什么吗. 知道是谁在浏览器的历史长河里执着又不愿突破始终如一的市场占有率吗. 下面这张图片,详细展示了主流浏览器的重要版本诞生时间以及当时的市场占用率,. via 译言网 &Ultimate HTML5 Cheatsheat by Tech King. ©2011 scavin for 小众软件 | 原文链接 | 85 留言 | 联系我们 | 投稿 | 更新列表 | 订阅指南.

用 Chrome 浏览器一边浏览网页一边做慈善

- 丹枫 - Chrome迷
啊~~~,如果人人都献出一点爱,世界将变成美好的人间……. Google 今天就搞了一个让你使用 Chrome 浏览器上网的同时,还可以献出自己爱心的活动. 参与这个活动很简单,你只需要装上 Google 官方推出的 Chrome for a Cause 这枚扩展再浏览网页就可以了,这个扩展会实时统计你打开的标签页数量,你打开的标签越多,那么献出的爱心也就越多(当然是 Google 捐助).

微软正式发布Spartan浏览器 集成网页标注

- - 博客园_新闻
创见干货:微软今天正式发布 Spartan 浏览器,集成网页标注、Cortana 语音助手、阅读列表等功能,注册 Windows Insider 项目的用户可以尝鲜了. Spartan 目前仍处于预发布状态,意味着代码中可能仍存在漏洞,比较适合有经验的开发者使用. 北京时间 3 月 31 日早间消息,微软今天首次公开发布了新的 Project Spartan 浏览器,Windows Insider 项目的参与者将可以尝试这款新浏览器.

亚马逊发表在云端绘制网页的 Silk 浏览器

- 牛牛 - Engadget 中国版
做为今天发表的 Kindle Fire 非常重要的组成成份,是新发表的 Silk 浏览器. Silk 浏览器将绘制网页的工作交由 Kindle Fire 本身和亚马逊的 EC2 云端伺服器分担,形成亚马逊称呼为「Split Browser」的新模式. 之所以取名为 Silk(「丝」),是取其「无形,但连结强韧」之意,除了本来就将伺服器交由亚马逊代管的网站可以享受到相当大的加速之外,Silk 也可以学习其他网路浏览​​者的习惯,来判断该如何最佳化绘制的流程,以及事先将什么网页放入快取,加快网页的载入.

Tabulate!,快速分享整个Chrome浏览器正在浏览的网页链接

- Jacky - Chrome迷
将目前正在浏览的一个网页迅速做成短url并且分享给好友,貌似这扩展我们以前介绍过. 是一枚可以快速的保存你目前正在Chrome上浏览的所有标签的网页地址,做成指定的url,并在这个url页面上显示出你正在浏览哪些网页的Chrome扩展. 如果你和我一样,习惯一下开10多个页面,当我使用 Tabulate! 后,可以迅速的将这十多个网页链接做成一个url地址,分享到社交网站.

微软推出圣诞节浏览器测试网页比拼HTML 5功力

- - WPDang
微软的IE团队在即将到来的圣诞前,推出了一个新的测试浏览器性能的网页,去年的圣诞节前微软就曾做过类似的测试,当时的网页以雪花为主体,用漫天飞舞的大雪来测试浏览器的性能. 今年的测试内容除了雪花之外,还加上了一些可爱的企鹅. 当用户登陆页面之后并点击开始测试,会发现网页出现了很多雪花,以及五只可爱的企鹅,并且还加有一支可爱的卡通歌曲,从应景来说非常贴合即将到来的圣诞节,算得上在娱乐的精神下完成了对各家浏览器的基准测试工作.

什么因素会影响浏览器打开网页的速度?

- - IE浏览器中文网站
相信大家在使用浏览器上网的时候会遇到这么一个问题,在网络环境好的情况下,使用不同的浏览器他们打开网页的速度都会差不多. 但是在网络环境比较慢的情况下,每个浏览器打开网页的速度却差别比较大. 为什么在同样的环境下每个浏览器打开网页的情况会有差异呢. 是什么因素使得有些浏览器的速度快,有些则很慢呢. 想必这个是很多用户不一定了解的问题,这里给大家分享一篇很好的科普文章,比较全面的介绍了是什么因素让浏览器速度更快,有兴趣的童靴们可以了解一下,全文如下:.

Google最新稳定版Chrome浏览器支持Instant Pages,0秒打开搜索结果中网页

- Brandon - 36氪
在6月份的Google Inside Search大会上,Google发布了通过图片搜索图片、桌面语音搜索,还有Instant Pages功能. Instant Pages主要是为用户节省时间,当你搜索某关键词到达搜索结果页之后,通过Instant Pages技术,结果中的目标网页可以在0秒内瞬间打开.