使用无线设备的虚拟桌面访问转让专利

申请号 : CN201380069240.0

文献号 : CN104956351B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 雅各布·贾瑞德·萨默斯

申请人 : 思杰系统有限公司

摘要 :

本文中的各个方面至少描述了用于从第一计算设备向第二计算设备传输数据的方法、系统和计算机可读存储介质。第一计算设备包括主机,而第二计算设备包括用于接收虚拟桌面会话的瘦客户机。在一个实施例中,方法包括产生与蓝牙应用相联系的一个或多个蓝牙数据包。由第一计算设备的处理器执行蓝牙应用。方法还包括将使用ICA(独立计算架构)协议所产生的蓝牙数据包从第一计算设备传输到第二计算设备。蓝牙数据包在第二计算设备上被转换为USB数据包,并被传输至与第二计算设备通信连接的蓝牙设备。

权利要求 :

1.第一计算设备,包括:

至少一个处理器;以及

存储器,其存储计算机可执行指令,其中,由所述至少一个处理器执行所述计算机可执行指令导致所述第一计算设备执行以下操作:执行虚拟应用,所述虚拟应用被配置为经由与第二计算设备建立的虚拟会话并利用远程显示协议来与所述第二计算设备交互;

通过所述虚拟应用为通信连接到所述第二计算设备的无线设备产生一个或多个第一类型的数据包;以及使用所述远程显示协议向所述第二计算设备传输所述一个或多个所述第一类型的数据包,其中,响应于在所述第二计算设备接收到所述一个或多个所述第一类型的数据包,所述第二计算设备将所述一个或多个所述第一类型的数据包转换为一个或多个第二类型的数据包且将所述一个或多个所述第二类型的数据包传输到所述无线设备。

2.根据权利要求1所述的第一计算设备,其中,所述一个或多个所述第一类型的数据包包括蓝牙数据包,并且所述一个或多个所述第二类型的数据包包括通用串行总线(USB)数据包,且其中,通过使用射频设备的方式,将所述无线设备与所述第二计算设备通信连接,所述射频设备通过USB连接被连接至所述第二计算设备。

3.根据权利要求1所述的第一计算设备,其中,所述无线设备包括以下设备中的一个:视频投影仪、键盘和鼠标。

4.根据权利要求1所述的第一计算设备,其中,所述第二计算设备包括无线通信设备。

5.根据权利要求4所述的第一计算设备,其中,所述无线通信设备包括以下设备中的一个:手机、笔记本电脑、上网本和平板电脑。

6.根据权利要求1所述的第一计算设备,其中,所述第一计算设备包括主机,且所述第二计算设备包括瘦客户机。

7.根据权利要求1所述的第一计算设备,其中,所述一个或多个所述第二类型的数据包包括USB数据包,其中,所述USB数据包通过设置在所述第二计算设备的USB总线的方式被传输至所述无线设备。

8.一种在通信连接的计算设备之间传输数据的方法,包括:

在第一计算设备执行虚拟应用,所述虚拟应用被配置为经由与第二计算设备建立的虚拟会话并利用远程显示协议来与所述第二计算设备交互;

通过所述虚拟应用为通信连接到所述第二计算设备的无线设备产生一个或多个第一类型的数据包;以及使用所述远程显示协议从所述第一计算设备向所述第二计算设备传输所述一个或多个所述第一类型的数据包,其中,响应于在所述第二计算设备接收到所述一个或多个所述第一类型的数据包,所述第二计算设备将所述一个或多个所述第一类型的数据包转换为一个或多个第二类型的数据包且将所述一个或多个所述第二类型的数据包传输到所述无线设备。

9.根据权利要求8所述的方法,其中,所述一个或多个所述第一类型的数据包包括蓝牙数据包,并且所述一个或多个所述第二类型的数据包包括通用串行总线(USB)数据包,且其中,通过使用射频设备的方式,将所述无线设备与所述第二计算设备通信连接,所述射频设备通过USB连接被连接至所述第二计算设备。

10.根据权利要求8所述的方法,其中,所述无线设备包括以下设备中的一个:视频投影仪、键盘和鼠标。

11.根据权利要求8所述的方法,其中,所述第二计算设备包括无线通信设备。

12.根据权利要求11所述的方法,其中,所述无线通信设备包括以下设备中的一个:手机、笔记本电脑、上网本和平板电脑。

13.根据权利要求8所述的方法,其中,所述第一计算设备包括主机,且所述第二计算设备包括瘦客户机。

14.根据权利要求8所述的方法,其中,所述一个或多个所述第二类型的数据包包括通用串行总线USB数据包,其中,所述USB数据包通过设置在所述第二计算设备的USB总线的方式被传输至所述无线设备。

15.一种用于在通信连接的计算设备之间传输数据的系统,包括:第一计算设备和第二计算设备;

其中所述第一计算设备包括:

至少一个第一处理器;以及

存储器,其存储当由所述至少一个第一处理器执行时使得所述第一计算设备执行以下操作的指令:执行虚拟应用,所述虚拟应用被配置为经由与所述第二计算设备建立的虚拟会话并利用远程显示协议来与所述第二计算设备交互;

通过所述虚拟应用为通信连接到所述第二计算设备的无线设备产生一个或多个第一类型的数据包;以及在虚拟通道上将所述一个或多个所述第一类型的数据包传输到所述第二计算设备;以及其中所述第二计算设备包括:

至少一个第二处理器;以及

存储器,其存储当由所述至少一个第二处理器执行时使得所述第二计算设备执行以下操作的指令:利用所述远程显示协议,经由所述虚拟会话与所述虚拟应用交互;

接收通过所述虚拟通道从所述第一计算设备传输的所述一个或多个所述第一类型的数据包;

将所述一个或多个所述第一类型的数据包转换为一个或多个第二类型的数据包,以及将所述一个或多个所述第二类型的数据包传输至所述无线设备。

16.根据权利要求15所述的系统,其中,所述一个或多个所述第一类型的数据包包括蓝牙数据包,并且所述一个或多个所述第二类型的数据包包括通用串行总线(USB)数据包,且其中,通过使用射频设备的方式,将所述无线设备与所述第二计算设备通信连接,所述射频设备通过USB连接被连接至所述第二计算设备。

17.根据权利要求15所述的系统,其中,所述无线设备包括以下设备中的一个:视频投影仪、键盘和鼠标。

18.根据权利要求15所述的系统,其中,所述第二计算设备包括无线通信设备。

19.根据权利要求18所述的系统,其中,所述无线通信设备包括以下设备中的一个:手机、笔记本电脑、上网本和平板电脑。

20.根据权利要求15所述的系统,其中,所述第一计算设备包括主机,且所述第二计算设备包括瘦客户机。

说明书 :

使用无线设备的虚拟桌面访问

[0001] 相关申请的交叉引用
[0002] 本申请要求名为“使用无线设备的虚拟桌面访问(VIRTUAL DESKTOP ACCESS USING WIRELESS DEVICES)”且于2013年1月2日提交的美国专利申请第13/732,905号的优先权,其整体通过引用被并入本文。
[0003] 领域
[0004] 大体上,本文所述的方面涉及到计算机、软件和网络。更具体地,本文所述的方面涉及到从主机到与客户机通信连接的一个或多个无线设备的数据传输。
[0005] 背景
[0006] 使用桌面虚拟化方案能向使用计算设备的任何用户提供按需服务。用户可使用运行在任何操作系统上的几乎任何桌面应用。桌面应用可被实现在中央服务器上,并传输给多个客户机。因此,用户或许可以通过使用其客户机计算设备的方式远程访问来自中央服务器的期望的应用。
[0007] 智能手机、平板电脑和其他无线设备具有使用无线协议与其他设备进行通信的能力。例如,当在无线连接上联网时,可使用蓝牙技术。例如,当诸如蓝牙装置的适配器被连接到计算设备的USB端口时,客户机计算设备或许可以使用诸如蓝牙的无线协议与无线设备进行通信。然而,虽然这种无线设备或许可以通过这种无线协议与客户机计算设备进行通信,但是这些无线设备或许不能访问由服务器提供的虚拟桌面应用。因此,有必要克服这些缺点。
[0008] 概述
[0009] 鉴于上述背景,为了提供对本文所述的一些方面的基本理解,以下给出了本公开的简化的概述。该概述并不是广义的综述,亦非旨在确定权利要求的关键或重要元素或描绘权利要求的范围。以下的概述仅仅将所述的各个方面以简化的形式呈现,以作为下面提供的更详细的描述的序言。
[0010] 为了说明上述缺点和阅读本公开后将意识到的额外的优点,本文的方面描述用于从主机计算设备向无线设备传输数据的新方法和系统,其中无线设备与客户机计算设备通信连接。
[0011] 本文中的方面至少描述了用于从第一计算设备向一个或多个无线设备传输数据的方法、系统和计算机可读存储介质,其中无线设备与第二计算设备通信连接。例如,该方法包括产生与存储在第一计算设备的存储器中的应用相关联的一个或多个第一类型的数据包。该方法还包括使用ICA(独立计算架构)协议从第一计算设备向第二计算设备传输第一类型的数据包,其中第一类型的数据包在第二计算设备中被转换为一个或多个第二类型的数据包,且其中第二类型的数据包被传输到与第二计算设备通信连接的一个或多个无线设备的其中一个无线设备。
[0012] 本公开的实施方式还描述了以下内容:
[0013] 1.第一计算设备,包括:
[0014] 至少一个处理器;以及
[0015] 至少一个存储器,其用于存储计算机可执行指令,其中,由所述至少一个处理器执行所述计算机可执行指令导致所述第一计算设备执行方法,所述方法包括:
[0016] 产生一个或多个第一类型的数据包;以及
[0017] 使用独立计算架构(ICA)协议向第二计算设备传输所述第一类型的数据包,其中,所述第一类型的数据包在所述第二计算设备中被转换为一个或多个第二类型的数据包,所述一个或多个第二类型的数据包被传输到与所述第二计算设备通信上连接的无线设备。
[0018] 2.根据项目1所述的第一计算设备,其中,所述第一类型的数据包包括蓝牙数据包,并且所述第二类型的数据包包括USB数据包,且其中,通过使用射频设备的方式,将所述无线设备与所述第二计算设备通信连接,所述射频设备通过USB连接被连接至所述第二计算设备。
[0019] 3.根据项目1所述的第一计算设备,其中,所述无线设备包括以下设备中的一个:视频投影仪、键盘和鼠标。
[0020] 4.根据项目1所述的第一计算设备,其中,所述第二计算设备包括无线通信设备。
[0021] 5.根据项目4所述的第一计算设备,其中,所述无线通信设备包括以下设备中的一个:手机、笔记本电脑、上网本和平板电脑。
[0022] 6.根据项目1所述的第一计算设备,其中,所述第一计算设备包括主机,且所述第二计算设备包括瘦客户机。
[0023] 7.根据项目1所述的第一计算设备,其中,所述第二类型的数据包包括USB数据包,其中,所述USB数据包通过设置在所述第二计算设备的USB总线的方式被传输至所述无线设备。
[0024] 8.一种方法,包括:
[0025] 产生一个或多个第一类型的数据包;以及
[0026] 使用独立计算架构(ICA)协议从所述第一计算设备向第二计算设备传输所述第一类型的数据包,其中,所述第一类型的数据包在所述第二计算设备被转换为一个或多个第二类型的数据包,所述一个或多个第二类型的USB数据包被传输到与所述第二计算设备通信上连接的无线设备。
[0027] 9.根据项目8所述的方法,其中,所述第一类型的数据包包括蓝牙数据包,并且所述第二类型的数据包包括USB数据包,且其中,通过使用射频设备的方式,将所述无线设备与所述第二计算设备通信连接,所述射频设备通过USB连接被连接至所述第二计算设备。
[0028] 10.根据项目8所述的方法,其中,所述无线设备包括以下设备中的一个:视频投影仪、键盘和鼠标。
[0029] 11.根据项目8所述的方法,其中,所述第二计算设备包括无线通信设备。
[0030] 12.根据项目11所述的方法,其中,所述无线通信设备包括以下设备中的一个:手机、笔记本电脑、上网本和平板电脑。
[0031] 13.根据项目8所述的方法,其中,所述第一计算设备包括主机,且所述第二计算设备包括瘦客户机。
[0032] 14.根据项目8所述的方法,其中,所述第二类型的数据包包括USB数据包,其中,所述USB数据包通过设置在所述第二计算设备的USB总线的方式被传输至所述无线设备。
[0033] 15.一种系统,包括:
[0034] 第一计算设备,所述第一计算设备包括:
[0035] 至少一个第一处理器;以及
[0036] 存储指令的至少一个存储器,当所述指令由所述至少一个第一处理器执行时,使得所述第一计算设备执行:
[0037] 产生一个或多个第一类型的数据包;以及
[0038] 将所述一个或多个第一类型的数据包在独立计算架构(ICA)通道上传输;以及[0039] 第二计算设备,所述第二计算设备包括:
[0040] 至少一个第二处理器;以及
[0041] 存储指令的至少一个存储器,当所述指令由所述至少一个第二处理器执行时,使得所述第二计算设备执行:
[0042] 接收通过所述ICA通道从所述第一计算设备传输的所述一个或多个第一类型的数据包;以及
[0043] 将所述一个或多个第一类型的数据包转换为一个或多个第二类型的数据包,所述一个或多个第二类型的数据包被传输至无线设备,所述无线设备通信连接至所述第二计算设备。
[0044] 16.根据项目15所述的系统,其中,所述第一类型的数据包包括蓝牙数据包,并且所述第二类型的数据包包括USB数据包,且其中,通过使用射频设备的方式,将所述无线设备与所述第二计算设备通信连接,所述射频设备通过USB连接被连接至所述第二计算设备。
[0045] 17.根据项目15所述的系统,其中,所述无线设备包括以下设备中的一个:视频投影仪、键盘和鼠标。
[0046] 18.根据项目15所述的系统,其中,所述第二计算设备包括无线通信设备。
[0047] 19.根据项目15所述的系统,其中,所述无线通信设备包括以下设备中的一个:手机、笔记本电脑、上网本和平板电脑。
[0048] 20.根据项目15所述的系统,其中,所述第一计算设备包括主机,且所述第二计算设备包括瘦客户机。
[0049] 结合附图中的至少一个附图来大体上示出和/或描述说明性实施例的各个方面,所述各个方面在权利要求中更全面地进行陈述。
[0050] 从以下说明和附图中将更充分地理解本公开的这些和其他优势、方面和新颖特征以及其所描述实施例的细节。
[0051] 附图简述
[0052] 因此,在概括地描述完本公开的各个方面之后,现在将参考附图,附图未必按比例绘制,且其中:
[0053] 图1示出了可实现本公开的各个方面的操作环境。
[0054] 图2A示出了可实现本公开的各个方面的系统框图。
[0055] 图2B是根据本公开的实施例的主机计算设备上的软件栈和客户机计算设备上的软件栈的关系框图。
[0056] 图3示出根据本公开的一个或多个实施例的计算环境的框图。
[0057] 图4A是示出诸如由主机执行的蓝牙应用的无线应用如何将蓝牙数据包传输给客户机的操作流程图。
[0058] 图4B是示出根据本公开的实施例如何从主机接收到诸如蓝牙数据包的数据包并由客户机使用的操作流程图。
[0059] 详细描述
[0060] 在以下各个实施方式的描述中,参考了附图,所述附图形成了本说明书的一部分并且在附图中以说明的方式来示出各种实施方式,在所述实施方式中可以实践本文所描述的各个方面。应该理解的是,可以利用其它实施例并且可以进行结构上和功能上的修改,而不违背本公开的范围和精神。
[0061] 本文所描述的各个方面可体现为方法、数据处理系统或装置、或计算机程序产品。因此,所述各个方面可采取以下形式:完全硬件的实施例、完全软件的实施例或结合软件和硬件方面的实施例。此外,这些方面可采取计算机程序产品的形式,其可由一个或多个计算机可读存储介质存储,计算机可读存储介质具有体现为存储介质中或存储介质上的计算机可读程序代码或指令。可使用任何合适的计算可读存储介质,其中包括硬磁盘驱动器、诸如CD和DVD的光盘和/或其他光介质或光驱动器、NAS(网络附加存储)设备和/或其任意组合。
此外,诸如一个或多个数字信号的各种信号可包括可在计算设备之间传输的数据(未编码的、编码的或加密的数据)。计算设备可包括一个或多个计算机(例如,PC、台式机、笔记本电脑)、一个或多个便携式无线计算设备(例如,无线电话、PDA、笔记本电脑、记事本)或包括能够执行固件和/或软件的处理器和存储器的任何类型的计算设备。
[0062] 图1示出了可实现本公开的各个方面的操作环境。操作环境包含主机计算设备104和客户机计算设备108。主机计算设备104可通过数据通信链路116的方式向客户机计算设备108传输数据。数据可包括任何类型的数据。例如,数据可包括一个或多个应用、一个或多个命令以及诸如电影、幻灯片、图片或任何其他媒体的多媒体数据。数据可包括与发现设备有关的一个或多个命令,例如,所述设备为一个或多个与客户机计算设备108通信连接的无线设备。无线设备可使用任何无线通信协议与客户机进行通信,无线通信协议例如为如在IEEE 802.15中规定的无线个域网(WPAN)协议、蓝牙协议、近场通信(NFC)协议、如在IEEE 802.11中规定的Wi-Fi协议或任何其他无线协议。在一些方面,一个或多个应用可包括支持发现诸如WPAN设备、蓝牙设备、Wi-Fi设备和/或NFC设备的无线设备的应用。在一些方面,一个或多个应用可提供对一个或多个所发现的无线设备的控制。主机上的用户可为控制一个或多个所发现的设备提供输入。可通过数据通信链路116将一个或多个指令作为来自多媒体数据的单独的流向一个或多个所发现的设备传输。用于传输一个或多个指令和多媒体数据的通信通道可包括专属所有权通信通道。
[0063] 客户机计算设备108可与射频设备或收发器112通信连接。射频设备或收发器112可包括能够与一个或多个无线设备进行通信的射频设备。例如,射频设备或收发器112可包括蓝牙射频设备。虽然射频设备112可在客户机计算设备108上实现或被并入客户机计算设备108,但是射频设备112可包括能无线接收和传输数据包的可连接的微型适配器装置。射频设备112例如可通过USB(通用串行总线)的方式被连接到客户机计算设备108。射频设备112可通过客户机计算设备108上的端口的方式被连接到客户机计算设备108。UB连接可能符合用于与一个或多个无线设备通信的任何版本的无线协议。射频设备112可能通过无线连接的方式与一个或多个无线设备120、124通信连接。例如,一个或多个设备120、124可包括无线电话、记事本、笔记本电脑、可用的视频投影机和/或任何其他的无线设备。在一个实施例中,一个或多个设备120、124可包括一个或多个蓝牙设备。传输链路116可包括有线或无线传输链路116。例如,传输链路116可包括分组交换数据链路和/或移动通信无线链路或其组合。例如,分组交换数据链路可包括互联网。主机计算设备104和客户机计算设备108可被配置,使得由主机计算设备104传输的数据可被传输给一个或多个设备120、124。一个或多个设备120、124可包括笔记本电脑、屏幕投影仪或任何其他能够显示客户机接收到的任何视频数据的无线设备。例如,在本公开的一些方面,桌面虚拟化可被延伸至一个或多个蓝牙设备。
[0064] 主机计算设备104可包括服务器,而客户机计算设备108可包括瘦客户机。主机计算设备104可包括执行瘦客户机应用的服务器,瘦客户机应用使用瘦客户机协议从主机计算设备104向客户机计算设备108传输数据。
[0065] 虽然图1示出了单个客户机计算设备108,但是在其他实施例中,客户机计算设备108可包括多个与主机计算设备104进行通信的客户机计算设备。因此,在一些实施例中,主机计算设备104可将数据传输给多个客户机计算设备(未示出),其中每个客户机计算设备都可与一个或多个射频设备通信连接。例如,在一些实施例中,客户机计算设备108可包括计算机、笔记本电脑、诸如手机或智能手机的无线计算设备。每个射频设备可与一个或多个无线设备进行无线通信。在这种实施例中,服务器或许能够向多个设备中的每一个设备提供虚拟桌面。
[0066] 图2A示出了可实现本公开的各个方面的系统框图。图2A对应一个实施例,其中第一类型的数据包从主机传输,并在客户机上被转化或转换为第二类型的数据包。在一个实施例中,第一类型的数据包包括蓝牙数据包,而第二类型的数据包包括USB数据包。本公开的各方面提供将蓝牙数据传输给客户机,并在客户机上将蓝牙数据包转换为USB数据包,而不是在主机上将蓝牙数据转化为USB数据。通过将蓝牙数据转化为USB数据延迟到在客户机上接收到蓝牙数据包之后的方式,本公开的各方面提供了提高数据传输速率的方式。
[0067] 图2A中所示的系统包括主机存储器204,其被通信连接至主机处理器208。主机存储器204可包括用于存储主处理器208所用的数据的系统RAM或主存储器。主存储器204可存储用于实现虚拟软件驱动212和ICA(独立计算架构)协议驱动216的数据。ICA(独立计算架构)协议包括表示层协议,例如,由佛罗里达州的罗德岱堡的思杰系统(Citrix System)公司提供的表示层协议。主机处理器208可执行存储在主机存储器204的数据,以调用虚拟软件驱动212和ICA协议驱动216。主机存储器204和主机处理器208可设置在上文中结合图1描述的主机计算设备104。
[0068] 图2A中所示的系统还包括客户机存储器220,其被通信连接至客户机处理器224。客户机存储器220可包括用于存储客户机处理器224所使用的数据的系统RAM或主存储器。
主存储器220可存储用于实现软件驱动/USB软件驱动228和ICA(独立计算架构)协议驱动
232的数据。软件驱动可由通信连接至客户机的一个或多个无线设备的生产商提供。客户机处理器224可执行存储在客户机存储器220中的数据,以调用软件驱动/USB软件驱动228和ICA协议驱动232。客户机存储器220和客户机处理器224可设置在上文中结合图1描述的客户机计算设备108。
[0069] 主机处理器208可执行存储在主机存储器204的数据,以调用虚拟软件驱动212。虚拟软件驱动212允许主机计算设备以原始格式的数据包的形式向客户机计算设备传输数据,而不是从主机传输USB数据包。本公开的方面允许在主机计算设备上用虚拟软件驱动212代替USB软件驱动。通过用虚拟软件驱动代替USB软件驱动,将数据包从主机向客户机传输,而不需要将数据转化为USB数据。在客户机上,为了与一个或多个无线设备(其通过射频设备的方式连接至客户机计算设备)进行通信,数据被转换为USB数据。客户机计算设备将数据包转换为USB数据包。在转换之后,USB数据包在客户机计算设备上通过射频设备的方式被传输给一个或多个无线设备。
[0070] 可在主机上转换数据包,而不是在客户机上将数据包转为USB数据包,并接着将USB数据包通过数据通信链路233传输;然而,在此实例中,将影响有效数据速率,因为USB协议本质上需要与诸如蓝牙协议的其他协议有关的更多命令和/或交互。因此,数据包从主机传输,而在客户机上进行转换。例如,可从主机上直接向客户机传输蓝牙数据包。因此,例如从主机向客户机传输蓝牙命令可在更短的时间内实现。因此,例如当通过数据通信链路传输蓝牙数据包、而不是USB数据包的时候,有效传输速率可能更高。通过在数据通信链路233上消除USB数据包的传输,提高了有效传输速度,且主机计算设备或许能够列举在客户机计算设备上发现的设备。当传输USB数据包时,USB数据包的第一字节包括数据包标识符(PID)字节,随后是其比特形式的补码。4位比特形式的补码提供误差检测;然而,使用这种PID字节在USB命令传输中提供大量的冗余。此外,由于非常短的数据包超时阈值,要使用USB数据包就需要使用短的电缆长度。与USB协议相关的冗余对于在数据通信链路233上的有效数据速率可能具有负面影响。因此,对于将诸如蓝牙数据包转换为USB数据包的数据包转换可被延迟到直到客户机接收到蓝牙数据包。
[0071] 因此,根据本公开的各方面,主机或许能够在客户机上发现各种无线设备,并建立可从主机向一个或多个无线设备传输诸如任何多媒体数据的数据的通道。例如,多媒体数据可包括电影或演示资料。
[0072] 本公开的一些方面中,以从主机计算设备发送的主机蓝牙命令的方式控制在客户机本地的蓝牙无线设备,其中主机蓝牙命令在客户机计算设备上进行转换。在一些方面中,在客户机上的蓝牙数据包转换能使得客户机发现与客户机计算设备进行通信的蓝牙设备,从而将在客户机上提供的已有的虚拟桌面会话桥接给这些蓝牙设备中的任何一个。在一些方面,虚拟软件驱动212可包括蓝牙虚拟软件驱动,且ICA协议驱动216、232可包括蓝牙ICA协议驱动。这些驱动可根据要求或根据需要被主机处理器208调用,以促进主机和客户机之间的数据通信及发现和列举客户机本地的蓝牙设备。例如,如果在不使用诸如ICA协议的专用表示协议的直接链接上影响主机和客户机之间的USB数据传输,那么,例如,可由主机处理器208调用蓝牙虚拟软件驱动和蓝牙ICA协议驱动,以促进从主机到客户机的蓝牙数据包传输,且因此,可在客户机上进行蓝牙数据包到USB数据包的转换。
[0073] 可通过实现ICA虚拟通道的方式将数据包从主机传输到客户机。在本公开的一些方面,ICA协议驱动216、232提供软件通信接口,通过软件通信接口可将数据从主机向客户机传输。ICA协议驱动216、232促进在数据包和ICA协议包之间的压缩和解压缩。在主机和客户机之间的虚拟通道通信管道可被延伸至包含诸如蓝牙数据包的数据包传输。
[0074] 系统200可设置在诸如结合图1描述的主机和客户机计算设备104、108的计算设备。当由客户机处理器224执行时,客户机存储器220可存储计算机代码或计算机可执行指令,其实现了软件驱动/USB软件驱动228和ICA协议驱动232。客户机处理器224可使用多个地址线对客户机存储器220进行寻址的方式执行计算机代码或计算机可执行指令。软件驱动和USB软件驱动228对从主机接收到的数据进行操作。数据可包括包含命令和用于显示的视频数据的任何类型的数据。例如,数据可包括一个或多个应用、电影、幻灯片、图片或任何其他媒体。
[0075] 图2B是根据本公开的实施例的主机计算设备上的软件栈和客户机计算设备上的软件栈的关系框图。如图2B中所示,主机上的软件栈包括蓝牙应用层230、主机操作系统(OS)层234、虚拟软件驱动层238和ICA(独立计算机架构)协议驱动242。客户机上的软件栈包括USB硬件总线264、USB软件驱动260、软件驱动254、客户机操作系统(OS)层250和ICA(独立计算机架构)协议驱动246。
[0076] 应用层230可与任何类型的应用相联系。例如,应用可包括发现并列举在客户机的无线范围之内的本地蓝牙设备的程序。例如,蓝牙应用可向客户机提供多媒体演示的传输。可将演示传输给可与任何蓝牙无线设备通信连接的客户机计算设备的蓝牙射频设备。例如,蓝牙无线设备可包括能够使用蓝牙协议进行通信的视频投影仪。在主机234上的操作系统可与客户机250上的操作系统不同。虚拟软件驱动238促进源自应用层230的数据的传输。
可将ICA协议驱动242用于封装诸如蓝牙数据包的用于使用ICA协议进行传输的数据包。如图2B中所示,可通过ICA通道272的方式将数据从主机向客户机传输。
[0077] ICA协议驱动246可被用于接收通过ICA通道272提供的ICA数据包。当将蓝牙数据包从主机传输并由ICA协议驱动242封装的时候,ICA数据包可通过使用软件驱动254的方式被转换为蓝牙数据包。可通过使用USB软件驱动260的方式将蓝牙数据包转换为USB数据包。USB数据包可经由USB硬件总线264被传输到射频设备268。射频设备268与一个或多个无线设备进行无线通信。例如,无线设备可包括诸如视频投影仪的蓝牙装置(未示出)。
[0078] 图3示出根据本公开的一个或多个实施例的计算环境300的框图。计算环境300包括主机计算设备301(例如,合并至少一个处理器和至少一个存储器的作用的任何计算设备)。主机计算设备301可对应于结合图1所示的主机计算设备104。根据一个或多个方面,主机计算设备301可以是在单服务器或多服务器桌面虚拟化系统(例如,云系统)中的服务器,其被配置成为客户机访问设备提供虚拟机。主机计算设备301可具有用于控制服务器及其关联部件的总体操作的主机处理器303,其中包含随机存取存储器(RAM)305、非易失性存储器307、输入/输出(I/O)模块309和存储器315。主机存储器303可能与结合图2描述的主机处理器208相同。
[0079] I/O模块309可包括鼠标、按键、触摸屏、扫描仪、光学读取器和/或触笔(或其他输入设备),主机计算设备301的用户通过其可提供输入,并还可包括用于提供音频输出的一个或多个扬声器,以及用于提供文本、视听和/或图形输出的视频显示设备。可将软件存储于存储器315和/或其他储存器中,以向主机处理器303提供用于使得主机计算设备301能够执行各种功能的指令。例如,存储器315可存储由主机计算设备301使用的软件,诸如操作系统317、应用程序319和关联数据库321。可替代的是,主机计算设备301的一些或全部计算机可执行指令可体现为存储于非易失性存储器307的固件的形式(未示出)。例如,非易失性存储器307可包括只读存储器(ROM)、电可擦除ROM或闪速存储器。
[0080] 主机计算设备301可实现结合图1所示的主机计算设备104,并且可经由一个或多个电信链接通信连接至一个或多个计算客户机设备340、342。一个或多个客户机计算设备340、342的每一个可包括瘦客户机。瘦客户机可依赖主机计算设备301产生和实现各种应用。可经由WAN访问客户机计算设备的其中一个或多个340,而可通过LAN访问客户机计算设备的另一个或多个342。客户机计算设备340、342可包括台式计算机、笔记本电脑、移动通信设备或者包括至少一个处理器和至少一个存储器的任何数字装置。一个或多个客户机计算设备340、342可以包括以上结合主机计算设备301所描述的元件中的许多元件或全部元件。
图3中所描绘的网络连接包括局域网(LAN)325和广域网(WAN)329,但还可包括其他网络(未示出)。主机计算设备301可通过网络接口或适配器323连接到LAN 325。主机计算设备301可包含调制解调器327或用于通过互联网330的方式在WAN 329上建立通信的其他WAN网络接口。将理解的是,所示出的网络连接为说明性的,并且可使用在主机计算设备301和一个或多个客户机计算设备340、342之间建立通信链路的其他方式。主机计算设备301和/或一个或多个客户机计算设备340、342可还包括任何类型的便携式无线计算设备(例如,手机、智能手机、PDA、记事本等)。一个或多个客户机计算设备340、342的每一个可与结合附图1描述的客户机计算设备108相同。
[0081] 本公开是利用各种其它的通用或专用计算系统环境或配置进行操作的。适合结合本公开使用的公知的计算系统、环境和/或配置的实例包括但不限于个人计算机、服务器计算机、手持式设备或便携式设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子设备、网络PC、小型计算机、大型计算机、包括任何上述系统或设备的分布式计算环境、等等。
[0082] 在一些实施例中,可通过以下术语中的任何一个引用一个或多个客户机设备340、342的每一个:客户端机器;客户机;客户端计算机;客户机设备;客户机计算设备;本地机器;远程机器;客户机节点;端点;或端点节点。
[0083] 在一个实施例中,一个或多个客户机设备340、342的每一个可包括虚拟机。虚拟机可以是任何虚拟机,而在一些实施方式中,虚拟机可以是由思杰系统、IBM、威睿(VMware)所开发的管理程序(hypervisor)或任何其它管理程序所管理的任何虚拟机。可在主机计算设备301上执行管理程序。
[0084] 例如,客户机340可执行、操作或以其他形式提供应用,所述应用可以是以下项中的任何一个:软件;程序;可执行的指令;虚拟机;管理程序;网页浏览器;基于网页的客户机;客户机服务器应用;瘦客户机计算客户机;ActiveX控件;Java小程序;与网际网络语音协议(VoIP)通信相关的软件,如软IP电话;视频流和/或音频流的应用;便于实时数据通信的应用;HTTP客户机;FTP客户机;奥斯卡(Oscar)客户机;远程登录客户机;或者,任何其他可执行指令的集合。
[0085] 另一些其他实施例包含显示应用输出的一个或多个客户机计算设备340、342,所述应用输出由在主机计算设备301上远程执行的应用所产生。在这些实施例中,客户机计算设备340、342可以执行虚拟机接收器程序或应用,以使用客户机监视器在应用窗口、浏览器或其他输出窗口中显示视频输出。在一个示例中,应用是产生桌面视图的应用。桌面视图可包括提供操作系统的实例的用户界面的图形壳(shell),本地和/或远程应用程序可以在其中被整合。如本文所使用的应用程序是在已经加载了操作系统的实例(以及可选地,还有桌面)之后执行的程序。
[0086] 在一些实施例中,主机计算设备301可以执行使用瘦客户机或远程显示协议采集由在主机计算设备301上执行的应用生成的显示输出并向一个或多个远程客户机计算设备340、342传输应用显示输出的远程呈现客户机或其他客户机或程序。瘦客户端或远程显示协议可以是下列协议中的任意一个:由佛罗里达州的罗德岱堡的思杰系统公司制作的独立计算架构(ICA)协议;或由华盛顿州的雷德蒙德的微软公司制作的远程桌面协议(RDP)。
[0087] 在一些实施例中,主机计算设备301可以是任何服务器类型。在其它实施例中,主机计算设备301可以是以下服务器类型中的任何种:文件服务器;应用服务器;网页服务器;代理服务器;装置;网络装置;网关;应用网关;网关服务器;虚拟化服务器;部署服务器;SSL VPN服务器;防火墙;网页服务器;应用服务器;作为主应用服务器的应用服务器;执行活动目录的服务器;或执行应用加速程序的服务器,其中所述应用加速程序提供防火墙功能、应用功能或负载平衡功能。一些实施例包含主机计算设备301,主机计算设备301从客户机计算设备340、342接收请求并将请求转发给服务器(未示出),并以来自第二服务器的响应来响应由客户机设备340、342产生的请求。主机计算设备301可以获取客户机器340、342的其中一个可用的应用的列表以及与应用服务器(未示出)有关的地址信息。例如,主机计算设备301然后可使用网页接口来显示对客户端请求的响应,并且直接与一个或多个客户机计算设备340、342通信以便为一个或多个客户机计算设备340、342提供对所识别的应用的访问。在一个代表性的实施例中,主机计算设备301可包括一个或多个服务器,所述一个或多个服务器能够处理一个或多个蓝牙应用,并将与一个或多个蓝牙应用有关的蓝牙数据传输给一个或多个客户机计算设备340、342。
[0088] 在一些实施例中,客户机计算设备340、342可以是搜寻对由主机计算设备301提供的资源的访问的客户机节点。在其他实施例中,主机计算设备301可以向客户机计算设备340、342或客户机节点提供对被托管资源的访问。在一些实施例中,除了主机计算设备301之外,一个或多个服务器(未示出)可能起主节点的作用,从而使主节点与一个或多个客户机计算设备340、342进行通信。在一些实施例中,主节点可以识别与托管被请求应用的服务器(一个或多个服务器中的服务器)相关联的地址信息并向一个或多个客户机计算设备
340、342提供该地址信息。然而,在其他实施例中,主节点可以是服务器群、一个或多个客户机计算设备340、342、客户机节点集群或装置。由主机计算设备310提供的资源可包括任何类型的蓝牙应用,蓝牙应用产生蓝牙数据包。
[0089] 如图3中所示,主机计算设备301可在互联网330上向客户机340、342传输数据。WAN 329和/或LAN 325可包括一个或多个子网,并可使用下列项的任意组合将其实现:客户机计算设备340、342;主机计算设备301;数字装置(未示出);以及包含在计算环境300中的网络设备(未示出)。可使用以下网络类型的任意组合来实现互联网330:ATM(异步传输模式);
SONET(同步光纤网络);SHD(同步数字体系);无线;和/或电缆。WAN 329和LAN 325的网络拓扑在不同实施例内可以不同,且可能的网络拓扑包括但不限于:总线网络拓扑;星形网络拓扑;环形网络拓扑;基于中继器的网络拓扑;或分层的星形网络拓扑。其他的实施例可包含使用协议在移动设备之间进行通信的手机网络,其中协议可包含但不限于:AMPS;TDMA;
CDMA;GSM;GPRS;UMTS;LTE;WiMAX;EDGE,或者能够在移动设备之间传输数据的任何其他协议。
[0090] 图4A是示出诸如由主机执行的蓝牙应用的无线应用如何将蓝牙数据包传输给客户机的操作流程图。
[0091] 在步骤404中,主机产生用于向客户机传输的数据包。数据包可包括任何类型的多媒体数据。例如,多媒体数据可包括电影或演示资料。例如,蓝牙应用可产生数据包。例如,主机可执行蓝牙应用,蓝牙应用可提供远程发现或列举在客户机上的蓝牙设备。例如,蓝牙应用可提供命令并控制在客户机本地的蓝牙设备。蓝牙应用可搜索并选择一个或多个无线设备的合适的蓝牙设备,以便向其传输数据。例如,蓝牙设备可包括蓝牙视频投影仪。
[0092] 接着,在步骤408中,虚拟软件驱动对诸如蓝牙数据包的数据包进行操作,以为通过ICA通信通道的传输做准备。虚拟软件驱动接口与ICA协议驱动通过接口连接。
[0093] 接着在步骤412中,ICA协议驱动可被用于封装用于使用ICA协议传输的蓝牙数据包。ICA协议驱动可在主机和客户机之间建立虚拟通信通道。
[0094] 在步骤416中,虚拟通道被延伸至包含用于在虚拟通信通道中传输的诸如蓝牙数据包的数据包。其后,在步骤420中,可通过ICA虚拟通信通道的方式将数据传输至客户机。ICA虚拟通信通道可将其能力扩展至包含传输被封装的蓝牙数据包。
[0095] 图4B是示出根据本公开的实施例如何从主机接收到诸如蓝牙数据包的数据包并由客户机使用的操作流程图。
[0096] 流程在图4B继续,在步骤424中,其中ICA数据包由客户机计算设备接收。客户机计算设备可利用ICA协议驱动来接收和转换ICA数据包。
[0097] 在步骤428中,蓝牙和USB软件驱动对ICA数据包进行操作,以便产生USB数据包。USB数据包可经由USB硬件总线被传输到射频设备。
[0098] 接着,在步骤432中,射频设备与一个或多个无线设备进行无线通信,并可以进行蓝牙视频投影仪的配对。例如,基于用户在主机提供的控制,可能发生主机和/或客户机与蓝牙视频投影仪之间的配对。可使用由主机提供的蓝牙命令来提供控制。
[0099] 其后,在步骤436中,虚拟桌面被延伸至一个或多个蓝牙设备。例如,诸如可使用蓝牙的视频投影仪的蓝牙装置或许可以接收由主机传输的视频流,并随后将视频流显示到屏幕上。因此,可通过客户机计算设备的方式,建立从主机计算设备到诸如蓝牙设备的无线设备的虚拟链接。在其他实施例中,一个或多个无线设备可包括能够通过客户机的射频设备使用通信协议的方式与主机进行通信的一个或多个无线设备,所述通信协议包括:例如,无线个域网(WPAN)、蓝牙、近场通信(NFC)和/或Wi-Fi协议。
[0100] 为了提供对一些方面的基本理解,以上给出了本公开的简化的概述。其并不旨在确定本公开的关键或重要的元素或描绘本公开的范围。尽管未被要求,但是本文所述的各方面可体现为方法、数据处理系统或体现为用于存储计算机可执行指令的计算机可读介质,计算机可执行指令能够由计算机系统的处理器执行。本公开的方面已经以其说明性实施例的形式被描述。根据对本文的全部公开内容的阅读,可能得到所公开的申请的精神和范围内的许多其他实施例、修改和变型。例如,可用不同于所列举的顺序执行在说明性附图中所示的步骤,且根据本公开内容的各个方面,所说明的一个或多个步骤是可选择的。而且,例如,尽管左通道视频流可用于获取用于右通道的传输率因子和SSIM指数,可以考虑的是,在其他实施例中,右通道视频流可用于获取用于左通道的传输率因子和SSIM指数。尽管相对特定示例描述了一些实施例,但是其他实施例包含上面描述的系统和技术的许多变型和排列。
[0101] 虽然已经以针对结构特征和/或方法步骤的语言描述了本主题,但是应该理解的是,在所附权利要求中定义的主题不必限于以上所述的具体特征或步骤。相反,上述特定特征和步骤被公开为实现所附权利要求的说明性形式。