用于计算机桌面远程共享的方法 【技术领域】
本发明涉及一种用于特别经由 RUI 型图形共享协议的计算机桌面远程共享的方法。 背景技术
越来越多的应用允许配备有终端的用户实施终端的远程服务器所提供的计算机应用。 通常已知使用因特网网络以使个人能够从终端 ( 例如位于他的住宅的计算机 ) 连 接到例如位于他的工作地的远程服务器, 以便访问专业应用, 比如他的邮件或者账户。
根据第一方式, 通过使用包括轻质和最小或者甚至不存在的操作系统的终端 10( 图 1) 来实现经由因特网网络的这一远程访问。
实际上, 在这一第一方式中, 这样的终端 10 仅有如下功能, 该功能一方面实现在 监视器 12 上显示根据从服务器 16( 该服务器托管用户 11 需要的应用 ) 接收的数据生成的 图像, 而另一方面向这一服务器 16 发送用户 11 通过使用键盘和 / 或鼠标 14 输入的命令。
服务器 16 就它的部分而言因此经由因特网型网络 15 接收这些命令并且使用操作 系统 18 以向托管的应用施加从数据捕获工具 14 发出的命令。
概括而言, 完全在链路附接的主机服务器 18 这一级实现对应用装置的管理, 而终 端 10 发挥在终端用户 11 与服务器 18 之间的远程人 / 机界面的作用, 特别地, 来生成显示 的图像。
例如在 K.Ocheltree、 S.Millman、 M.Macdonnell、 D.Hobbs、 J.Nieth 和 R.Baratto 的 “14.2 : Net2displaytm : a proposed VESA standard for remoting displays and I/O devices over networks” 文献中描述了这一第一方式。
它引起的弊端在于未实现在若干用户之间对在远程服务器这一级托管的桌面进 行共用共享, 这一共用共享使得为共享相同桌面的所有用户同样地显示这一桌面和 / 或关 联应用。
在这样的共用共享中, 在所有共用用户这一级显示由用户控制的对桌面的每次修 改和 / 或它的关联应用。
此外, 这样的方法不容易实施对桌面及其应用的称为虚拟共享的个人共享, 这一 虚拟共享使得按照这些命令在每个用户这一级显示不同个人桌面。
在这样的虚拟共享中, 仅在这一虚拟桌面的用户这一级显示由用户控制的对桌面 的修改和 / 或它的关联应用。
实际上, 在 Net2Display 方式中未提供在若干用户之间的桌面共享, 其中仅提供 相同客户端对若干桌面的利用 ( 用于给定的会话 )。
根据第二方式, 通过使用包括如下操作系统的终端来执行远程访问, 该操作系统 被充分开发成使若干用户能够共同共享相同桌面。
例如在终端级实施的在来自美国公司 Microsoft Inc. 的 WindowsTM2008 之下的
RDP 6 操作系统中实现这样的方式。
然而, 这一方式基于如下工具, 这些工具的技术特性 ( 例如在通信协议、 存储器容 量和 / 工作频率方面 ) 相对于来自高速公共因特网访问领域的特性而言并不适合并且有所 不同。
实际上, 这样的领域的特征在于使用如下数字电视解码器, 这些解码器呈现有限 资源以及为了实施它的有限应用而具体开发的专用协议。
因而, 经由这样的数字解码器共享桌面需要解码器及其应用的高成本和复杂适配 性以使得它们兼容于待共享的应用的协议和语言。 发明内容 在这一背景中, 本发明的目的在于通过提出一种用于通过使用实施起来简易、 公 共和容易的协议 ( 特别地利用高速因特网访问数字解码器 ) 远程共享计算机桌面的方法来 解决这些弊端中的至少一个弊端。
观察结果表明 RUI(“远程用户界面” ) 型图形共享协议表现为兼容用于实现经由 数字解码器共享共用和虚拟桌面, 其中一方面考虑它的实施简易性从而支持开发新功能, 而另一方面考虑在后续描述中具体描述的它的如下性质, 该性质基于图形界面远程存储和 图像发送。
因此, 本发明涉及一种用于响应于经由电信网络访问服务器的客户端终端发出的 命令来远程共享在这一服务器中执行的应用所生成的计算机桌面, 客户端终端的命令借助 称为焦点的录入区来录入, 其特征在于客户端终端按照 RUI 型图形界面传输协议向服务器 发送借助不同焦点录入的专用于桌面共享的命令, 从而服务器借助所述焦点来匹配接收的 命令与共享的桌面, 以便响应于来自终端的命令按照这一 RUI 型协议借助对代表服务器的 这一桌面的图形界面中的像素状态的指示来发送这一图形界面。
由于本发明, 用户可以在现有数字视频解码器中借助轻质并且易于实施的协议来 容易实施远程计算机桌面的共享。
实际上, RUI 型协议发送旨在指示像素需要产生的显示的信号, 从而对于一般与电 视机或者计算机屏幕关联的数字解码器而言向这一屏幕发送这一信息表现得易于实施。
此外, 如随后所见, RUI 型协议支持对即将开发的屏幕进行共享的简单功能。 因而, 易于获得根据共用或者虚拟模式的用于共享屏幕所必需的命令。
概括而言, 将多个焦点用于管理桌面共享可以使得容易和经济地实施这一共享。
在一个实施例中, 服务器向共用共享相同桌面的客户端终端发送相同图形界面。
根据一个实施例, 执行相同图形界面共用共享的每个客户端终端发送的命令按照 它们的接收顺序由它们的服务器执行, 向执行共用共享的所有客户端终端发送服务器在执 行命令之后为这一共用桌面生成的图形界面。
在一个实施例中, 服务器向虚拟共享相异桌面的客户端终端发送相异图形界面。
根据一个实施例, 由执行不同图形界面虚拟共享的客户端终端之一发送的命令仅 关于与这一终端关联的桌面的图形界面由它们的服务器执行。
在一个实施例中, RUI 型协议基于 “远程帧缓冲器” (RFB) 型协议。
根据一个实施例, 该方法考虑以下 RFB 型命令中的至少一个命令 :
-“GetVirtualDesktopList” : 用于从客户端终端向服务器发送消息以便请求在服 务器上可用的可能桌面,
-“VirtualDesktopList” : 使得服务器通过发送可用桌面列表来响应客户端终端 的请求,
-“VirtualDesktopAuthentication” , 使得客户端终端可以经由该功能选择在已 经存在的虚拟桌面上连接,
-“NotifyClientConnection” , 用于向客户端终端通知来自其它客户端终端的连 接请求,
-“VirtualDesktopAuthenticationAllowance” : 用于接受或者拒绝在共用模式下 桌面的共享, 通过从服务器向需要这一共享的客户端终端发送消息来通知这一接受或者拒 绝。
在一个实施例中, 服务器一方面将客户端终端的标识符与一组焦点标识符相关 联, 每个焦点标识符与至少一个客户端侧数据捕获外设对应, 而另一方面将终端的标识符 与虚拟桌面关联。
本发明也涉及一种服务器, 该服务器用于响应于经由电信网络访问这一服务器的 客户端终端发出的命令来执行对本地执行的一个或者多个应用生成的计算机桌面的远程 共享, 其特征在于本发明包括按照根据前述实施例之一的方法来操作的以下装置 : - 用于从客户端终端接收专用于桌面共享并且按照 RUI 型图形界面传输协议的命 令的装置, 以及
- 用于管理用于多个焦点或者从客户端终端录入命令的区域的装置, 这些客户端 终端可以访问应用所呈现的相同资源,
- 用于响应于终端按照 RUI 型协议借助对代表桌面的图形界面中的像素状态的指 示来发送这一图形界面的装置。
本发明也涉及一种终端, 该终端用于响应于这一终端经由电信网络从称为焦点的 命令区发出的命令来远程共享在服务器中执行的应用所生成的计算机桌面, 其特征在于本 发明包括根据实施例之一的的方法来操作的以下装置 :
- 用于向服务器发送与针对客户端终端的焦点关联并且按照 RUI 型图形界面传输 协议的专用于桌面共享的命令的装置, 以及
- 用于按照 RUI 型协议借助对代表桌面的图形界面中的像素状态的指示从服务器 接收这一图形界面的装置。
附图说明
本发明的其它特征和优点根据下文参照以下附图出于示例而非限制目的给出的 描述将清楚地显现 :
- 已经描述的图 1 示意地表示根据现有技术的终端向服务器的远程访问系统,
- 图 2 示意地表示 RFB 型协议的操作,
- 图 3 表示描述根据本发明的两个客户端终端向服务器的远程访问的功能图。
- 图 4 表示实施本发明的 RFB 服务器执行的操作的流程图。具体实施方式
对下文实现的本发明的描述实施 RUI 型协议、 如例如在 Tristan Richardson 的文 献 “The RFB Protocol” (Real VNC Ltd, 第 3.8 版 ( 更新于 2009 年 2 月 26 日 )(http:// www.realvnc.com)) 中描述的 RFB 协议。
根据这样的协议, 称为 RFB 终端或者客户端终端的用户终端 20 显示由托管硬件装 置 - 部件 - 和软件装置 - 软件的远程 RFB 服务器 28 生成的图形界面 22, 以根据这一终端 20 经由它的数据捕获工具 24 发出的命令来确定这一图形界面 22 的特性。
实际上, RFB 协议的特征在于使用简易特性指令、 比如用于在屏幕的给定位置 (x, y) 显示数据像素矩形的命令。
RFB 服务器形成的每个图像存储于缓冲存储器——称为服务器 28 的 “帧缓冲器” 中、 一般用 RGB( 红绿蓝 ) 格式来编码, 该格式构成最直接的图像编码方式 ( 三个平面对应 于三原色红、 绿和蓝 )。
借助它的图形特性, RUI 协议 ( 比如 RFB 协议 ) 未表现为实现产生复杂应用、 比如 计算机桌面的远程共享。
然而根据本发明的具体观察, RFB 协议容易实现共享相同桌面 ( 共用共享 ) 并且 共享用于管理不同桌面的应用装置 ( 个人或者虚拟共享 ) 针对若干用户。 在第一情况下, 对桌面的共用共享直接归因于 RUI 型协议的如下性质 : 远程生成 界面的图像和 / 或它的应用可以共享以不同终端原处创建的它的图像。
换而言之, 这样的 RUI 型协议实现对相同桌面的简易和容易共享, 因为对后者的 管理并不是直接由 RFB 终端实现而是集中于 RFB 服务器这一级。
因而, RUI 型服务器必须容易实施用于根据来自不同终端的指令来管理共用桌面 和 / 或它的应用的装置, 比如指令栈 ( 所有这些 RFB 终端共享对图形界面的修改 )。
在第二情况虚拟共享下, 应当注意 RUI 型协议实施对与实现将容易开发的新功能 的图形界面的像素关联的数据进行的编码。
例如, RFB 协议实施在 RFB 服务器与它的 RFB 终端之间的交换以确定像素数据的 格式和编码, 其中格式是指像素的颜色 ( 例如 24 位或者 16 位 ), 而编码是指在屏幕上对像 素矩形进行标识的方式。
因而可以生成新功能以将虚拟桌面与不同 RFB 终端关联, 使得可以特别地关于与 每个 RFB 终端关联的虚拟桌面实施这一 RFB 终端发出的命令。
举例而言, 已经开发以下功能以实现经由 RFB 标准管理这样的虚拟桌面, 在 RFB 标 准中常用名称如下 :
- 命名为 “GetVirtualDesktopList” 的功能, 该功能从客户端终端向 RFB 服务器发 送用于请求在给定的服务器上的可用桌面的消息。
八位组数目 1
类型 [ 值 ] U810 描述 消息 - 类型- 命名为 “VirtualDesktopList” 的功能, 该功能作为响应从 RFB 服务器向 RFB 客 户端发送消息以给出可用桌面的列表。
出于这一目的, 可以用以下方式形成虚拟桌面的结构或者 “VIRTUAL_DESKTOP” :
而 USER 结构如下 :字节数目 4 32 类型 [ 值 ] U32 U8 数组 描述 user_id User_name
- 命名为 “VirtualDesktopAuthentication” 的功能, 该功能从 RFB 客户端向服务 器发送用于认证已经存在的虚拟桌面的消息。
- 命名为 “NotifyClientConnection” 的功能, 该功能从 RFB 服务器向客户端终端 发送用于向客户端终端 (CLIENT1) 通知来自其它客户端终端 (CLIENT2) 的在 CLIENT1 利用 的虚拟桌面上的连接请求的消息。字节数目 1 Sizeof(USER)
类型 [ 值 ] U811 USER 描述 消息 - 类型 new_user
- 命名为 “VirtualDesktopAuthenticationAllowance” 的功能, 该功能从 RFB 客户 端终端向服务器发送用于接受或者拒绝其它客户端在给定的虚拟桌面上连接的消息。
- 称为 “VirtualDesktopAuthenticationResult” 的功能, 该功能向 RFB 客户端发 送 RFB 服务器消息以向给定的虚拟桌面通知连接成功或者失败。
- 命名为 “VirtualDesktopDisconnect” 的向 RFB 服务器发送用于从虚拟桌面断开 的 RFB 客户端消息。
- 命名为 “VirtualDesktopSwitch” 的功能, 该功能从 RFB 客户端 RFB 客户端向 RFB 服务器发送用于通知向客户端侧虚拟桌面改变的消息。字节数目 1 4 4 类型 [ 值 ] U8 14 U8 U32 描述 消息 - 类型 User_id new_virtual_desktop_id在这一情况下, 客户端必须已经连接到 “new_virtual_desktop_id” 标识的虚拟桌 面以建立连接。
- 命名为 “VirtualDesktopInputEvent” 的功能, 该功能从 RFB 客户端向 RFB 服务 器发送用于来自键盘、 鼠标或者任何其它数据捕获外设的事件的消息, 该消息伴随有客户 端标识符以及如下指示符, 该指示符指示该事件是否为桌面所独占。
因此表明, 用这样的功能来丰富的 RFB 协议使多个终端 20 能够与 RFB 服务器 24 关联, 以便生成针对每个终端 20 的虚拟桌面。
在图 3 中图示了这样的实施, 该图表示包括相应驱动器 41 和 51 的两个客户端终 端 40 和 50, 这些驱动器可以向 VNC 服务器 32 发送用于虚拟网络连接的命令, 该服务器托管
计算机桌面和与后者关联的软件应用。
RFB 终端的通信装置 43 和 53 通过例如使用 IP 协议来与 RFB 服务器 32 的装置 33 进行通信。
通常, 这些通信实施 “GetVirtualDesktopList” 功能以从客户端终端向 RFB 服务 器发送消息以便请求在服务器 32 上的可用桌面, 并且实施 “VirtualDesktopList” 使得 RFB 服务器通过发送可用桌面的列表来响应来自 RFB 客户端的请求。
通过 “VirtualDesktopAuthentication” 功能, 终端 40 或者终端 50 可以从这一列 表选择将连接到已经存在的虚拟桌面上。
然而这一虚拟桌面可能已经由客户端终端 (CLIENT1) 使用, 然后向 CLIENT1 通知 来自其它客户端终端 (CLIENT2) 的连接请求——“NotifyClientConnection” 功能。
后者可以经由 “VirtualDesktopAuthenticationAllowance” 接受或者拒绝在共用 模式下共享桌面, 通过从 RFB 服务器向 RFB 客户端发送消息来通知这一接受或者拒绝—— “VirtualDesktopAuthenticationResult” 功能。
应当注意这些操作实施于服务器 32 的操作级 34, 该操作级也对针对每个共用或 者共享桌面的命令进行分类。 实际上, 服务器 32 所接收的不同命令是在命令栈 60( 图 4) 这一级上编译的, 选择 操作 62 将针对所有桌面的操作 64( 例如在同时按压 “CTRL” 、 “ALT” 和 “DEL” 键盘键之时激 活程序管理器 ) 和针对某一虚拟桌面的操作 63 相分离。
在后一情况下, 应用装置 36( 图 3) 向相关桌面 37 或者 38( 图 3 和图 4) 或者 67 和 68( 图 4) 发送每个指令。
一旦处理指令, 可以利用 “VirtualDesktopDisconnect” 命令从 RFB 服务器断开 RFB 客户端或者改变客户端侧虚拟桌面——“VirtualDesktopSwitch” 命令。
应当注意, 为了发送命令, 用户可以实施任何类型的数据捕获工具 ( 比如键盘、 鼠 标或者任何其它数据外设, 该命令伴随有客户端标识符以及如下指示符, 该指示符指示事 件是否为桌面所独占 ( 称为 “VirtualDesktopInputEvent” )。
在这一实施例中, 这一标识符实现在 RFB 服务器这一级生成的、 在焦点 ( 即可以与 键盘、 鼠标、 触屏或者更一般地与任何客户端终端命令录入对应的录入区 ) 与虚拟桌面之 间的对应表。
因此, 在如上文所述打开会话之后, 借助焦点来发送所有它的请求的 RFB 客户端 与虚拟桌面自动关联。
本发明可以有诸多变化。例如, RFB 终端可以呈现与可以是本地 ( 接连接到服务 器 ) 或者远程 ( 经由因特网型网络间接连接到服务器 ) 的一个或者多个监视器关联的若干 数据捕获工具 ( 例如键盘或者鼠标设备 )。
此外, RFB 服务器也可以是 RFB 终端, 从而它与其它终端共用或者虚拟地共享它的 资源。
最后, 客户端终端可以有权同时访问若干桌面、 例如公用桌面 ( 共享 ) 和虚拟桌面 ( 未共享或者与有限数目的其它客户端终端共享 )。