用于在第一机器上显示与第二机器的驱动器关联的数据而不必映射该驱动器的方法和系统的制作方法

文档序号:6351347阅读:187来源:国知局

专利名称::用于在第一机器上显示与第二机器的驱动器关联的数据而不必映射该驱动器的方法和系统的制作方法
技术领域
:本公开涉及用于显示标识网络驱动器的特征的数据的方法和系统。本公开尤其涉及用于在远程计算装置上显示与客户计算装置的驱动器关联的数据而不必映射该驱动器的方法和系统。
背景技术
:在用于将远程生成的桌面环境的显示与本地提供的存储装置的列表相集成的传统环境中,标识本地提供的存储装置的特征的数据没有被包含到远程生成的桌面环境中。例如,一些传统系统可能将网络驱动器映射为本地卷,但通常不会使标识所映射的网络驱动器的特征的数据对桌面环境的用户可用。在其他传统系统中,提供对存储装置的统一命名规约(UNC)链接。然而,这些类型的系统通常不允许显示标识存储装置的特征的数据,例如,类型(名称/标签、图标、装置类别)、盘大小或可用空间。这些系统可能产生不方便的和潜在地不直观的终端用户体验,特别是在有多种可用的存储装置(例如,USB驱动器、CD-ROM驱动器、硬盘驱动器、软盘驱动器、网络映射的驱动器、共享,服务器驱动器和远程客户机驱动器的组合等)的情况下。图IA描述了现有系统的屏幕截图,其中没有提供标识由机器提供的驱动器的特征的数据并且其中将客户计算装置的驱动器映射为远程计算装置上的本地驱动器。在这个示例中,没有显示卷名或定制的图标或驱动器类型的图标。这样的环境可能导致不方便的且可能不直观的终端用户体验。
发明内容从最广义的解释,本公开描述用于在远程计算装置上执行的虚拟桌面中列举客户计算装置的客户机驱动器而不必明确地在该远程计算装置上映射该客户机驱动器的方法和系统。本发明给用户提供使用客户计算装置通过远程计算装置上的虚拟桌面访问该客户计算装置上的客户机驱动器的能力。该方法允许用户访问和查看驱动器信息(例如驱动器的类型,驱动器上空间的可用性、驱动器的容量)而不必明确地将该驱动器映射到远程计算>J-Uρα装直。本申请针对用于在远程计算装置上显示与客户计算装置的驱动器关联的数据而不必将该驱动器映射到该远程计算装置的方法和系统。在一个方面,本发明涉及用于在远程计算装置上执行的虚拟桌面中显示与客户计算装置的客户机驱动器关联的数据而不必明确地将该客户机驱动器映射到该远程计算装置上。在客户计算装置上执行的第一客户机代理建立与远程计算装置的用户会话。第一客户机代理将标识客户计算装置的客户机驱动器的数据发送到在远程计算装置上执行的第二客户机代理。第二客户机代理接收与客户计算装置的客户机驱动器关联的数据。第二客户机代理在用户会话的上下文中使用所接收的与客户计算装置的客户机驱动器关联的数据生成壳链接。壳链接可包括包含用于访问客户计算装置的客户机驱动器的信息的数据对象。第二客户机代理在远程计算装置上执行的虚拟桌面中显示与客户计算装置的客户机驱动器关联的数据。在一个实施例中,客户机驱动器还包括通用串行总线(USB)闪存驱动器。在进一步的实施例中,第二客户机代理拦截由客户计算装置生成的对于USB闪存驱动器的装置通知,并响应于所拦截的装置通知修改USB闪存驱动器壳链接。在一个实施例中,与客户计算装置的客户机驱动器关联的数据还包括客户机驱动器的盘空间数据。在一个实施例中,与客户计算装置的客户机驱动器关联的数据还包括客户机驱动器的图形数据表示。在一个实施例中,与客户计算装置的客户机驱动器关联的数据还包括构成客户机驱动器的卷名的用户指定的字母数字串。在一个实施例中,第二客户机代理生成壳链接的标识符。在另一个实施例中,第二客户机代理将所述壳链接的标识符注册在由远程计算装置上执行的操作系统提供的注册表中。在一个实施例中,第二机代理响应于安全策略禁止显示客户机驱动器。在一个实施例中,远程计算装置在光标移至在远程计算装置上显示的客户机驱动器上时显示与客户计算装置的客户机驱动器关联的数据。在又一个方面,本发明涉及用于在远程计算装置上执行的虚拟桌面中显示与客户计算装置的客户机驱动器关联的数据而不必明确地将该客户机驱动器映射到该远程计算装置上的系统。该系统包括客户计算装置和远程计算装置。该客户计算装置包括第一客户机代理,所述第一客户机代理与远程计算装置建立用户会话并且将标识客户计算装置的客户机驱动器的数据发送到在该远程计算装置上执行的第二客户机代理。该远程计算装置包括第二客户机代理,所述第二客户机代理接收与客户计算装置的客户机驱动器关联的数据、在所述用户会话的上下文中使用所接收的与客户计算装置的客户机驱动器关联的数据生成壳链接,并且将与客户计算装置的客户机驱动器关联的数据显示在远程计算装置上执行的虚拟桌面中。壳链接可包括包含用于访问客户计算装置的客户机驱动器的信息的数据对象。在一个实施例中,客户机驱动器还包括通用串行总线(USB)闪存驱动器。在另一个实施例中,第二客户机代理拦截由客户计算装置生成的对于USB闪存驱动器的装置通知,并响应于所拦截的装置通知来修改USB闪存驱动器壳链接。在一个实施例中,与客户计算装置的客户机驱动器关联的数据还包括客户机驱动器的盘空间数据。在一个实施例中,与客户计算装置的客户机驱动器关联的数据还包括客户机驱动器的图形数据表示。在一个实施例中,与客户计算装置的客户机驱动器关联的数据还包括构成客户机驱动器的卷名的用户指定的字母数字串。在一个实施例中,第二客户机代理生成壳链接的标识符。在另一个实施例中,第二客户机代理将所述壳链接的标识符注册在由远程计算装置上执行的操作系统提供的注册表中。在一个实施例中,第二代理响应于安全策略禁止显示客户机驱动器。在一个实施例中,远程计算装置在当光标移至在远程计算装置上显示的客户机驱动器上时显示与客户计算装置的客户机驱动器关联的数据。在下面的附图和说明中详细阐述了本发明的各种实施例的细节。通过参考下述结合附图的描述,本公开的前述和其它目的、方面、特征和优点将会更加明显并更易于理解,其中图IA是描述了系统的实施例的屏幕截图,其中标识网络计算环境中的客户计算装置的驱动器的特征的数据没有被描绘在远程计算装置的驱动器列举中,并且其中该客户计算装置的驱动器被映射为该远程计算装置上的本地驱动器;图IB是描述包括与远程机器通信的本地机器的网络环境的实施例的框图;图1C-1F是描述适用于此处所描述的方法和系统的计算机的实施例的框图;图2是描述用于在网络计算环境中的远程计算装置上显示与该网络计算环境中的客户计算装置的驱动器关联的数据而不必在该远程计算装置上映射该驱动器的系统的一个实施例的框图;图3A是描述用于在网络计算环境中的远程计算装置上显示与该网络计算环境中的客户计算装置的客户机驱动器关联的数据而不必在该远程计算装置上映射该驱动器的方法的一个实施例的流程图;图3B是描述用于在网络计算环境中的远程计算装置上显示与该网络计算环境中的客户计算装置的客户机驱动器关联的数据而不必在该远程计算装置上映射该客户机驱动器的方法的又一个实施例的流程图;图4是描述了其中将标识网络计算环境中的客户计算装置的驱动器的特征的数据描绘在远程计算装置的驱动器列举中而不必在该远程计算装置上映射该驱动器的系统的实施例的屏幕截图;图5是描述了其中将标识网络计算环境中的客户计算装置的驱动器的特征的数据描绘在远程计算装置的驱动器列举中而不必在该远程计算装置上映射该驱动器的系统的实施例的又一个屏幕截图;以及图6是描述了其中将标识网络计算环境中的客户计算装置的驱动器的特征的数据描绘在远程计算装置的驱动器列举中而不必在该远程计算装置上映射该驱动器的系统的实施例的又一个屏幕截图。具体实施例方式现参考图1B,描述了网络环境的实施例。总的来说,网络环境包括经由一个或者多个网络104与一个或者多个远程机器106a-106n(总的还称为服务器106或者远程机器106)通信的一个或者多个本地机器102a-102n(总的还称为本地机器102、客户机102、客户节点102、客户机器102、客户计算机102、客户装置102、端点102或端点节点102)。在一些实施例中,本地机器102既有作为客户节点寻求访问服务器所提供资源的能力,也有作为服务器向其他客户机102a-102n提供对所寄载的资源的访问的能力。虽然图IB示出的网络104是位于本地机器102和远程机器106之间,本地机器102和远程机器106还可以位于相同的网络104上。网络104可为局域网(LAN)(例如公司内网),城域网(MAN),或者广域网(WAN)(例如因特网或万维网)。在一些实施例中,在本地机器102和远程机器106之间可以有多个网络104。在这些实施例的一个中,网络104’(未示出)可为专用网并且网络104可为公网。在这些实施例的另一个中,网络104可为专用网并且网络104’可为公网。在又一个实施例中,网络104和104’可都为专用网。而在另一实施例中,网络104和104’可都为公网。网络104可以是任何类型和/或形式的网络,并且可包括任意下述网络点对点网络,广播网络,广域网,局域网,电信网络,数据通信网络,计算机网络,ATM(异步传输模式)网络,SONET(同步光纤网络)网络,SDH(同步数字体系)网络,无线网络和有线网络。在一些实施例中,网络104可以包括无线链路,诸如红外信道或者卫星频带。网络104的拓扑可为总线型、星型或环型网络拓扑。网络104可以具有对于本领域普通技术人员所熟知的、能够支持此处描述的操作的任何这样的网络拓扑。网络可包括利用用于移动装置间通信的任一或一些协议的移动电话网络,这些协议包括AMPS、TDMA,CDMA、GSM、GPRS或UMTS。在一些实施例中,不同类型的数据可以通过不同协议传输。在其他实施例中,同一类型的数据可通过不同协议传输。在一些实施例中,系统可包括多个逻辑分组的远程机器106。在这些实施例的一个中,服务器的逻辑分组可以被称为服务器群。在这些实施例的又一个中,远程机器106可为地理上分散的。在其他实施例中,服务器群可以作为单个实体被管理。仍在其他实施例中,服务器群包括多个服务器群。每个服务器群内的远程机器106可能是异构的一一个或多个远程机器106可根据一种类型的操作系统平台(例如,WINDOWSNT、WINDOWS2003、WIND0WS2008,WINDOWS7或WINDOWSServer2008R2,所有这些都是由华盛顿州Redmond的Microsoft公司出品的)操作,而一个或多个其它远程机器106可根据另一类型的操作系统平台(例如,Unix或Linux)操作。每个服务器群的远程机器106不必与同一服务器群中的另一个远程机器106在物理上接近。因此,逻辑上分组为服务器群的远程机器106组可以是使用广域网(WAN)连接或城域网(MAN)连接来互联的。例如,服务器群可包括物理上位于不同大陆或大陆、国家、州、城市、校园或房间的不同区域的远程机器106。如果远程机器106使用局域网(LAN)连接或一些直连形式进行连接,则可增加服务器群中的远程机器106间的数据传送速度。远程机器106可以是文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSLVPN服务器,或防火墙。在一些实施例中,远程机器106提供远程认证拨入用户服务,并且可被称为RADIUS服务器。在其他实施例中,远程机器106可以有作为应用服务器或者作为主应用服务器工作的能力。仍在其他实施例中,远程机器106是刀片服务器。而在其他实施例中,远程机器106执行向用户或客户计算机102提供对计算环境访问的虚拟机。在一个实施例中,远程机器106可包括活动目录。远程机器106可以是应用加速设备。对于其中远程机器106是应用加速设备的实施例,远程机器106可提供包括防火墙功能、应用防火墙功能,或负载平衡功能的功能。在一些实施例中,远程机器106包括诸如由位于美国加州SanJose的Citrix应用网络组、位于美国加州MountainView,的SilverPeakSystems公司、位于美国加州SanFrancisco的RiverbedTechnology公司、位于美国华盛顿州Seattle的F5Networks公司或位于美国加州Sunnyvale的JuniperNetworks公司制造的设备系列中的一个的设备。在一些实施例中,远程机器106代表本地机器102的用户执行应用。在其他实施例中,远程机器106执行虚拟机,该虚拟机提供执行会话,在该执行会话中应用代表本地机器102的用户来执行。在这些实施例的一个中,该执行会话是所寄载的桌面会话。在这些实施例的另一个中,该执行会话提供对计算环境的访问,该计算环境包括如下的一个或多个应用、多个应用、桌面应用、以及在其中可执行一个或多个应用的桌面会话。在一些实施例中,本地机器102与远程机器106通信。在一个实施例中,本地机器102与服务器群中的远程机器106之一直接通信。在又一个实施例中,本地机器102执行程序邻近应用(aprogramneighborhoodapplication)以与服务器群内的远程机器106通信。在又一个实施例中,远程机器106提供主节点的功能。在一些实施例中,本地机器102通过网络104与服务器群中的远程机器106通信。例如通过网络104,本地机器102可以请求执行服务器群中的远程机器106a-106n所寄载的各种应用,并接收应用执行结果的输出进行显示。在一些实施例中,只有主节点提供这样的功能,即识别和提供与远程机器106b相关的地址信息所需的功能,所述远程机器106b寄载所请求的应用。在一个实施例中,远程机器106提供web服务器的功能。在又一个实施例中,远程机器106a接收来自本地机器102的请求,将该请求转发到第二远程机器106b,并用远程机器106b对该请求的响应来对本地机器102的请求进行响应。在又一个实施例中,远程机器106a获得对本地机器102可用的应用的列举,以及与寄载由该应用的列举所识别的应用的远程机器106b相关联的地址信息。在又一个实施例中,远程机器106使用web接口提供对本地机器102的请求的响应。在一个实施例中,本地机器102直接与远程机器106通信以访问所识别的应用。在又一个实施例中,本地机器102接收通过执行远程机器106上所识别的应用而产生的输出数据,例如显示数据。在一些实施例中,远程机器106或服务器群可运行一个或多个应用,例如提供瘦客户端计算的应用或远程显示表示应用。在一个实施例中,远程机器106或服务器群作为应用来执行CitrixSystems有限公司的CITRIXACCESSSHTE的任一部分(例如产品METAFRAME或CITRIXPRESENTATI0NSERVER),由CitrixSystems有限公司出品的任何下列产品CITRIXXENAPP、CITRIXXENDESKTOP、CITRIXACCESSGATEWAY,和/或微软公司出品的MICROSOFTWINDOWS终端服务中的任意一个。在又一个实施例中,该应用是由位于美国佛罗里达州FortLauderdale的CitrixSystems有限公司开发的ICA客户机。仍在又一个实施例中,远程机器106可以运行应用,例如,该应用可以是提供诸如由位于美国华盛顿州Redmond的微软公司制造的MICROSOFTEXCHANGE的电子邮件服务的应用服务器、web或Internet服务器,或桌面共享服务器,或协同服务器。在又一个实施例中,任何应用可以包括任何类型的所寄载的服务或产品,例如位于美国加利福尼亚州SantaBarbara的CitrixOnlineDivision公司提供的G0T0MEETING,位于美国加利福尼亚州SantaClara的WebEx有限公司提供的WEBEX,或者位于美国华盛顿州Redmond的微软公司提供的MicrosoftOfficeLIVEMEETING。本地机器102可以执行、操作或者以其它方式提供应用,该应用可为任何类型和/或形式的软件、程序或者可执行指令,例如任何类型和/或形式的web浏览器、基于web的客户机、客户机一服务器应用、瘦客户端计算客户机、ActiveX控件、或者Java小应用程序、或者可以在本地机器102上执行的任意其它类型和/或形式的可执行指令。在一些实施例中,该应用可以是代表本地机器102在远程机器106上执行的基于服务器或者基于远程的应用。在其他实施例中,远程机器106可以使用任意瘦-客户端协议、表示层协议或远程显示协议来显示输出到本地机器102,所述协议例如由位于美国佛罗里达州Ft.Lauderdale的CitrixSystems有限公司出品的独立计算架构(ICA)协议;由位于美国华盛顿州Redmond的微软公司出品的远程桌面协议(RDP)5Xll协议;由AT&T贝尔实验室出品的虚拟网络计算(VNC)协议;由位于美国加里福尼亚州Sunnyvale和位于以色列Raanana的Qumranet有限公司出品的SPICE协议;由加里福尼亚州Milpitas的VESA公司出品的Net2Display协议;由位于加拿大不列颠哥伦比亚省的Burnaby的Teradici公司出品的PC-over-IP协议;由加里福尼亚州SanJose的WyseTechnology有限公司出品的TCX协议;由纽约州纽约市的哥伦比亚大学开发的THINC协议;或由马萨诸塞州Chelmsford的Desktone有限公司开发的Virtual-D协议。该应用可使用任何类型的协议,并且它可为,例如,HTTP客户端、FTP客户端、Oscar客户端或Telnet客户端。在其它实施例中,该应用包括与互联网协议电话(VoIP)通信相关的任何类型的软件,例如软IP电话。在进一步的实施例中,该应用包括与实时数据通信相关的任一应用,例如用于流式传输视频和/或音频的应用。本地机器102和远程机器106可以被部署为任意类型和形式的计算装置和/或在其上执行,例如能够与任意类型和形式的网络通信并且执行此处所描述的操作的计算机、网络装置或设备。图IC和ID描述了用于实施本地机器102或远程机器106的实施例的计算装置100的框图。如图IC和ID所示,每个计算装置100包括中央处理单元121和主存储器单元122。如图IC所示,计算装置100可包括存储装置128、安装装置116、网络接口118、1/0控制器123、显示装置124a-124n、键盘126和诸如鼠标的指示装置127。存储装置128可包括但不限于操作系统、软件和客户机代理120。如图ID所示,每个计算装置100也可包括另外的可选部件,例如存储器端口103、桥170、一个或多个输入/输出装置130a—130η(总的使用标号130表示)以及与中央处理单元121通信的高速缓冲存储器140。中央处理单元121是响应并处理从主存储器单元122取出的指令的任意逻辑电路。在一些实施例中,中央处理单元121由微处理器单元提供,例如由位于美国加利福尼亚州MountainView的Intel公司制造的微处理器单元;由位于美国伊利诺伊州Schaumburg的Motorola公司制造的微处理器单元;由位于美国加利福尼亚州SantaClara的Transmeta公司制造的微处理器单元;RS/6000处理器,由位于美国纽约州WhitePlains的InternationalBusinessMachines公司制造的微处理器单元;或者由位于美国加利福尼亚州Sunnyvale的AdvancedMicroDevices公司制造的微处理器单元。计算装置100可以基于这些处理器中的任意一种,或者能够如此处所述方式运行的任意其它处理器。主存储器单元122可以是能够存储数据并允许微处理器121直接访问任意存储位置的一个或多个存储器芯片,例如静态随机存取存储器(SRAM)、突发SRAM或同步突发SRAM(BSRAM)、动态随机存取存储器(DRAM)、快速页模式DRAM(FPMDRAM)、增强DRAM(EDRAM)、扩展数据输出RAM(EDORAM)、扩展数据输出DRAM(EDODRAM)、突发扩展数据输出DRAM(BED0DRAM)、增强DRAM(EDRAM)、同步DRAM(SDRAM),JEDECSRAM、PC100SDRAM、双倍数据速率SDRAM(DDRSDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、直接内存总线DRAM(DRDRAM)或铁电RAM(FRAM)0主存储器122可以基于上述存储器芯片的任意一种,或者能够如此处所述方式运行的任意其它可用存储器芯片。在图IC所示的实施例中处理器121通过系统总线150(在下面进行更详细的描述)与主存储器122进行通信。图ID描述了在其中处理器通过存储器端口103直接与主存储器122通信的计算装置100的实施例。例如,在图ID中主存储器122可以是DRDRAM。图ID描述其中主处理器121通过有时被称为后端总线的次级总线直接与高速缓存存储器140通信的实施例。其他实施例中,主处理器121使用系统总线150与高速缓存存储器140通信。高速缓存存储器140通常有比主存储器122更快的响应时间,并且通常由SRAM、BSRAM或EDRAM提供。在图IC所示的实施例中,处理器121通过本地系统总线150与各种I/O装置130进行通信。可以使用各种不同的总线将中央处理单元121连接到任意I/O装置130,包括VESAVL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于I/O装置是视频显示器124的实施例,处理器121可以使用高级图形端口(AGP)与显示器124通信。图ID描述了在其中主处理器121通过HYPERTRANSPORT、RAPIDI0、或INFINIBAND通信技术直接与I/O装置130b通信的计算机100的实施例。图ID也描述了在其中本地总线和直接通信相混合的实施例处理器121使用本地互连总线与I/O装置130a通信同时直接与I/O装置130b通信。计算装置100中可以有多种I/O装置130a_130n。输入装置包括键盘、鼠标、触控板、轨迹球、话筒,和绘图板。输出装置包括视频显示器、扬声器、喷墨打印机、激光打印机和热升华打印机。如图IC所示,I/O装置可以由I/O控制器123控制。I/O控制器可以控制一个或多个I/O装置,例如键盘126和指示装置127(如鼠标或光笔)。此外,I/O装置还可以为计算装置100提供存储和/或安装介质116。在其它实施例中,计算装置100可以提供USB连接(未示出)以接纳手持USB存储装置,例如由位于美国加利福尼亚州LosAlamitos的TwintechIndustry有限公司生产的USB闪存驱动系列装置。再次参考图1C,计算装置100可以支持任意适当的安装装置116,例如用于接纳诸如3.5英寸、5.25英寸磁盘或ZIP磁盘的软盘的软盘驱动器、⑶-ROM驱动器、⑶-R/RW驱动器、DVD-ROM驱动器、各种格式的磁带驱动器、USB装置、硬盘驱动器或适于安装软件和程序的任意其它装置。计算装置100还可以包括存储装置,诸如一个或者多个硬盘驱动器或者独立磁盘冗余阵列,用于存储操作系统和其它相关软件,以及用于存储诸如涉及客户机代理120的任意程序的应用软件程序。或者,可以使用安装装置116的任意一种作为存储装置。此外,操作系统和软件可从可引导介质运行,可引导介质例如是可引导CD,诸如ΚΝ0ΡΡΙΧ,其为一种用于GNU/Linux的可引导CD,可自knoppix.net作为GNU/Linux—个发行版获得。此外,计算装置100可以包括网络接口118以通过多种连接来与网络104对接,所述连接包括但不限于标准电话线路、LAN或WAN链路(例如802.11、Tl、T3、56kb、X.25、SNA、DECNET)、宽带连接(如ISDN、帧中继、ATM、千兆以太网、基于SONET的以太网(Ethernet-over-SONET))、无线连接、或上述任意或全部的某种组合。可使用多种通信协议(例如TCP/IP、IPX、SPX、NetBIOS、Ethernet、ARCNET、SONET、SDH、光纤分布数据接口(FDDI)、RS232、IEEE802.11、IEEE802.11a、IEEE802.lib、IEEE802.llg、CDMA、GSM、WiMax和直接异步连接)来建立连接。在一个实施例中,计算装置100可以通过任意类型和/或形式的网关或诸如安全套接字层(SSL)或传输层安全(TLS),或由位于美国佛罗里达州Ft.Lauderdale的CitrixSystems公司制造的Citrix网关协议的隧道协议来与其他计算装置100’通信。网络接口118可以包括内置网络适配器、网络接口卡、PCMCIA网络卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适用于将计算装置100对接到能够通信并执行这里所说明的操作的任意类型的网络的任意其它装置。在一些实施例中,计算装置100可以包括多个显示装置124a_124n或与其相连,这些显示装置各自可以是相同或不同的类型和/或形式。因而,任意一种I/O装置130a-130n和/或I/O控制器123可以包括任何类型和/或形式的适当的硬件、软件或硬件和软件的组合,以支持、允许或提供通过计算装置100连接和使用多个显示装置124a-124n。例如,计算装置100可以包括任意类型和/或形式的视频适配器、视频卡、驱动器和/或库,以与显示装置124a-124n对接、通信、连接或以其他方式使用显示装置124a_124n。在一个实施例中,视频适配器可以包括多个连接器以与多个显示装置124a-124n对接。在其它实施例中,计算装置100可以包括多个视频适配器,每个视频适配器与显示装置124a-124n中的一个或多个连接。在一些实施例中,计算装置100的操作系统的任一部分都可以被配置用于使用多个显示器124a-124n。在其它实施例中,显示装置124a_124n中的一个或多个可以由一个或多个其它计算装置提供,诸如(例如通过网络)与计算装置100连接的计算装置IOOa和100b。这些实施例可以包括被设计和构造来使用另一个计算机的显示装置作为计算装置100的第二显示装置124a的任何类型的软件。本领域的普通技术人员应认识和理解可以将计算装置100配置成拥有多个显示装置124a-124n的各种方式和实施例。在进一步的实施例中,I/O装置130可以是系统总线150和外部通信总线之间的桥,所述外部通信总线如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、FireWire总线、Fireffire800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超级HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤信道总线、串行SCSI总线。图IC和ID中所描述的类型的计算装置100通常地在操作系统的控制下运行,所述操作系统控制任务的调度和对系统资源的访问。计算装置100可运行任何操作系统,诸如任意版本的MICROSOFTWINDOWS操作系统;不同发行版本的Unix和Linux操作系统;用于Macintosh计算机的MACOS的任意版本;任意嵌入式操作系统;任意实时操作系统;任意开源操作系统;任意专有操作系统;任意用于移动计算装置的操作系统,或者能够在计算装置上运行且执行此处所描述的操作的任意其它操作系统。典型的操作系统包括但不限于WINDOWS3.x,WINDOWS95、WIND0WS98、WINDOWS2000,WINDOWSNT3.51、WINDOWSNT4.0,WINDOWS7,WINDOWSCE,WINDOWSXP和WIND0WSVISTA,所有这些均由位于美国华盛顿州Redmond的微软公司出品;由位于美国加利福尼亚州Cupertino的苹果计算机公司出品的MACOS;由位于美国纽约州Armonk的国际商业机器公司出品的OS/2;以及由位于美国犹他州SaltLakeCity的Caldera公司发布的可免费使用的Linux操作系统或者任意类型和/或形式的Unix操作系统,以及其它。计算装置100可以是任意工作站、电话、台式计算机、膝上型或笔记本电脑、服务器、掌上电脑、移动电话或其他便携电信装置、媒体播放装置、游戏系统、移动计算装置,或能够通信并有足够的处理器能力和存储容量以执行此处所述的操作的任意其它类型和/或形式的计算、电信或者媒体装置。例如,计算机装置100可包括由位于美国加利福尼亚州Cupertino的苹果计算机公司出品的IPOD系列装置、由位于日本东京的索尼公司出品的PLAYSTATI0N2、PLAYSTATI0N3或PERSONALPLAYSTATIONPORTABLE(PSP)装置,由位于日本京都的Nintendo有限公司出品的NINTENDODS,NINTENDOGAMEBOY,NINTENDOGAMEBOYADVANCED或NINTENDOREVOLUTION装置,或者由位于美国华盛顿州Redmond的微软公司出品的XBOX或XBOX360装置。在一些实施例中,计算装置100可以有不同的处理器、操作系统以及符合该装置的输入装置。例如,在一个实施例中,计算装置100是由Palm有限公司出品的TRE0180、270、600、650、680、700p、700w/wx、750、755p、800w、Centro或Pro智能电话。在这些实施例的一些中,TERO智能电话是在PalmOS操作系统的控制下操作并且包括笔输入装置以及五向导航装置。在其他实施例中,计算装置100是移动装置,例如,JAVA使能蜂窝电话或个人数字助理(PDA),诸如i55sr、i58sr、i85s、i88s、i90c、i95cl、i335、i365、i570、1576、i580、i615、i760、i836、i850、i870、i880、i920、i930、ic502、ic602、ic902、776或imllOO,以上这些均由位于美国伊利诺伊州Schaumburg的摩托罗拉公司制造;由位于日本京都的Kyocera公司制造的6035或7135;或者由位于韩国首尔的Samsung电子有限公司制造的i300或i330。在一些实施例中,计算装置100是由位于芬兰的诺基亚公司制造或由位于瑞典Lund的SonyEricssonMobileCommunicationsAB公司制造的移动装置。在其他实施例中,计算装置100是黑莓(Blackberry)手持或智能电话,诸如由ResearchInMotion有限公司制造的装置,包括黑莓7100系列、8700系列、7700系列、7200系列、黑莓7520、黑莓PEARL8100,8700系列、8800系列、黑莓Storm、黑莓Bold、黑莓Curve8900、黑莓PearlFlip。在其他实施例中,计算装置100是智能电话、PocketPC、PocketPC电话,或支持MicrosoftWindowsMobileSoftware的其它手持移动装置。此外,计算装置100可以是任意工作站、台式计算机、膝上型或笔记本电脑、服务器、掌上电脑、移动电话、任意其它计算机、或能够通信并有足够的处理器能力和存储容量以执行此处所述操作的其它形式的计算或者电信装置。在一些实施例中,计算装置100是数字音频播放器。在这些实施例的ー个中,计算装置100是诸如由位于美国加利福尼亚州Cupertino的苹果计算机公司制造的AppleIPOD、IPODTouch、IPODNANO和IPODSHUFFLE系列装置的数字音频播放器。在这些实施例的又ー个中,数字音频播放器可作为便携媒体播放器和作为大容量存储装置来工作。在其他实施例中,计算装置100是诸如由位于美国新泽西州RidgefieldPark的SamsungElectronicsAmerica公司制造的DigitalAudioPlayerSelectMP3播放器,或由位于美国伊利诺伊州Schaumburg的Motorola公司制造的Motorolam500或m25的数字音频播放器。在其他实施例中,计算装置100是便携媒体播放器,诸如由CreativeTechnologies有限公司制造的ZenVisionW、ZenVision系列、ZenPortableMediaCenter装置或DigitalMP3系列的MP3播放器。仍在其他实施例中,计算装置100是支持以下文件格式的便携媒体播放器或数字音频播放器,这些文件格式包括但不限于MP3、WAV、M4A/AAC、WMAProtectedAAC、AIFF、Audible有声读物、AppleLossless音频文件格式和·mov、·m4v以及·mp4MPEG_4(H.264/MPEG-4AVC)视频文件格式。在一些实施例中,计算装置100包括装置的组合,例如与数字音频播放器或便携媒体播放器相组合的移动电话。在这些实施例的ー个中,计算装置100是组合数字音频播放器和移动电话的MotorolaRAZR或MotorolaROKR系列。在这些实施例的又ー个中,计算装置100是由位于加利福尼亚州Cupertino的苹果公司制造的iPhone系列智能电话中的装置。在一个实施例中,计算装置102a可从远程机器106请求资源,同时向客户机102b提供远程机器106的功能。在这样的实施例中,就从远程机器106(其可以被称为服务器)接收数据而言,计算装置102a可以被称为客户机,而就第二客户机102b而言,计算装置102a可以被称为服务器。在又一个实施例中,客户机102可代表客户机102上的用户从远程机器106请求资源。如图IE所示,计算装置100可以包括多个处理器,并且可以提供用于对不只ー个数据片同时执行多个指令或者同时执行ー个指令的功能。在一些实施例中,计算装置100可包括具有ー个或多个核的并行处理器。在这些实施例的ー个中,计算装置100是共享内存并行装置,具有多个处理器和/或多个处理器核,将所有可用内存作为ー个全局地址空间进行访问。在这些实施例的又ー个中,计算装置100是分布式存储器并行装置,具有多个处理器,每个处理器仅访问本地存储器。在这些实施例的又ー个中,计算装置100既有共享的存储器又有仅由特定处理器或处理器子集访问的存储器。在这些实施例的又ー个中,如多核微处理器的计算装置100将两个或多个独立处理器组合在一个封装中,通常在ー个集成电路(IC)中。在这些实施例的又ー个中,计算装置100包括具有单元宽带引擎(CELLBROADBANDENGINE)架构的芯片,并包括高能处理器单元以及多个协同处理单元,高能处理器単元和多个协同处理单元通过内部高速总线连接在一起,可以将内部高速总线称为单元互连总线。在一些实施例中,处理器提供用于对多个数据片同时执行单个指令(SMD)的功能。其他实施例中,处理器提供用于对多个数据片同时执行多个指令(MMD)的功能。又一个实施例中,处理器可以在单个装置中使用SMD和MMD核的任意组合。在一些实施例中,计算装置100可包括图形处理单元。图IF所示的这些实施例的ー个中,计算装置100包括至少ー个中央处理单元121和至少ー个图形处理单元。在这些实施例的又ー个中,计算装置100包括至少ー个并行处理单元和至少ー个图形处理单元。在这些实施例的又ー个中,计算装置100包括任意类型的多个处理単元,多个处理単元中的ー个包括图形处理单元。在一个实施例中,资源可以是程序、应用、文档、文件、多个应用、多个文件、可执行程序文件、桌面环境、计算环境或对本地计算装置102的用户可用的其他资源。可以经由多种访问方法将资源传送到本地计算装置102,所述访问方法包括但不限于传统的直接安装在本地计算装置102上,经由应用流式传输的方法传送到本地计算装置102、将经由第三计算装置106b上的资源的执行所产生的并且经由表示层协议向本地计算装置102传输的输出数据传送到本地计算装置102,将通过经由在远程计算装置106上执行的虚拟机执行资源所产生的输出数据传送到本地计算装置102,或者从连接到本地计算装置102的可移动存储装置(例如USB装置)执行并产生输出数据,或经由在本地计算装置102上执行的虚拟机执行并产生输出数据。在一些实施例中,本地计算装置102将通过资源的执行所产生的输出数据传输到另ー个客户计算装置102b。在一些实施例中,本地计算装置102的用户连接到远程计算装置106并且在本地计算装置102上查看在远程计算装置106上生成的远程桌面环境的本地版本的显示,其包括多个数据对象。在这些实施例的ー个中,通过远程计算装置106(或通过第二远程计算装置106b)将至少一个资源提供给用户并且将其显示在远程桌面环境中。然而,可能存在通过本地计算装置102对用户可用的资源。例如,本地计算装置102可提供对本地盘驱动器、经由网络104可用的驱动器、可移动存储装置(例如,软盘、⑶/DVD,可移动盘(例如USB驱动器)等等)或其他装置128的访问,而且用户可能希望访问该装置128以存储或检索与由远程计算装置106代表用户执行的资源结合使用的数据。在这些实施例的又ー个中,用户可以通过与由远程计算装置106生成的远程桌面环境交互来作出从装置128检索数据或在装置128上存储数据的请求。现參考图2,所示框图描述用于在网络计算环境中的远程计算装置106上显示与该网络计算环境中的客户计算装置102的驱动器128b关联的数据而不必在该远程计算装置106上映射该驱动器128b的系统200的一个实施例。总的来说,系统200包括在远程计算装置106上执行的第二客户机代理202和在客户计算装置102上执行的第一客户机代理204。第二客户机代理202接收标识由客户计算装置102提供的驱动器128b的特征的数据。第二客户机代理202拦截由在远程计算装置106上执行的操作系统对由远程计算装置106提供的驱动器128的列举的请求。响应于所拦截的请求,第二客户机代理202指示在由远程计算装置提供的驱动器的列举中显示所接收的由客户计算装置102提供的数据,而不必映射驱动器。在一些实施例中,标识驱动器的特征的数据可包括而不限于用户指定的名称或标签(包括而不限于用户指定的驱动器标签-本地磁盘、⑶/DVD驱动器、网络驱动器-和用户指定的驱动器号-C、D、E等),驱动器的类型(硬盘驱动器、可移动驱动器、⑶-ROM、DVD、软盘驱动器、网络映射的驱动器、客户机共享等),装置类别、在桌面环境中表示驱动器的图形数据(例如,图标)以及盘的大小(包括,例如,盘的总大小和盘上可用空间的大小)。在这些实施例的ー个中,驱动器的类型是由驱动器标签指示的。仍參考图2,更具体地,第二客户机代理202在远程计算装置106上执行。在ー个实施例中,该远程计算装置106是如上文结合图1B-1F所描述的计算装置。在一些实施例中,第二客户机代理202包括接收器,该接收器用于从在客户计算装置102上执行的第一客户机代理204接收标识由客户计算装置102提供的驱动器128b的特征的数据。在这些实施例的ー个中,例如,第二客户机代理202包括被提供为动态链接库的接收器。在这些实施例的又ー个中,第二客户机代理202包括被提供为网络重定向器文件系统驱动程序的接收器。在这些实施例的又ー个中,第二客户机代理202是根据表示层协议与第一客户机代理204通信的表示层协议代理;例如,第二客户机代理202和第一客户机代理204可以根据上文结合图IB所述的任何表示层协议进行通信。在其他实施例中,第二客户机代理202被称为网络提供者组件并且执行驱动器列举、驱动器的映射和取消映射以及壳链接的创建和删除,所述壳链接识别驱动器128b而不使用映射。在一些实施例中,第二客户机代理202与在远程计算装置106上执行的壳(shell)进行通信。该壳是向计算装置的用户提供用户接ロ的软件。在一个实施例中,壳可以用第三方的壳来补充或替代。在MICROSOFTWINDOW中,缺省壳是EXPLORER,其确定桌面的配置(例如,任务栏、通知区域、开始菜单等)。在一些实施例中,第一客户机代理204在本地计算装置102上执行。在一个实施例中,该本地计算装置102是如上文结合图1B-1F所述的计算装置。在又一个实施例中,第一客户机代理204是在本地计算装置102上执行的表示层协议代理的一部分。在又ー个实施例中,第一客户机代理204与表示层协议代理进行通信。在一些实施例中,第一客户机代理204与在客户计算装置102上执行的壳通信。该壳是向计算装置的用户提供用户接ロ的软件。在一个实施例中,壳可以用第三方的壳来补充或替代。在MICROSOFTWINDOW中,缺省壳是EXPLORER,其确定桌面的配置(例如,任务栏、通知区域、开始菜单等)。在一些实施例中,驱动器128是如上文结合图1B-1D所述的存储装置128。在其他实施例中,驱动器128是可移动存储装置,例如USB驱动器。在其他实施例中,驱动器128是诸如磁盘驱动器或磁带驱动器的介质装置。在进ー步的实施例中,举例来说,驱动器128可以是存储区域网络中的存储装置。在一些实施例中,驱动器128是机器100外部的组件。在这些实施例的ー个中,驱动器128是机器100b,例如网络可访问的驱动器。在其他实施例中,驱动器128是闪速存储器数据存储装置。在进ー步的实施例中,驱动器128被物理地连接到机器100(即包括连接到机器100的外部装置也包括被嵌入到机器100中的内部装置)或无线地连接到机器100。在一些实施例中,驱动器128是客户机共享。在这些实施例的ー个中,该客户机共享充当到第三机器100上的驱动器128c的快捷方式。在这些实施例的又ー个中,该客户机共享充当安全标签。在这些实施例的又ー个中,有被分配不同级别的权限的多个客户机共享。在这些实施例的又ー个中,机器100的一些用户被允许访问该客户机共享而其他用户不可以访问该客户机共享。在这些实施例的又ー个中,驱动器128包括客户机目录和子目录、本地客户机共享以及对该客户机可访问的其他共享。在这些实施例的又ー个中,该系统包括用户接ロ,该用户接ロ允许管理员控制当由远程计算装置106生成与客户计算装置102的驱动器128b关联的数据的显示时需要考虑哪些类型的共享、子目录或其他驱动器128。现參考图3A,所示流程图描述用于在网络计算环境中的远程计算装置上显示与该网络计算环境中的客户计算装置的驱动器关联的数据而不必在该远程计算装置上映射该驱动器的方法的一个实施例。总的来说,该方法300包括由在远程计算装置上执行的第二客户机代理202接收标识由客户计算装置提供的驱动器的特征的数据(302)。该方法包括由第二客户机代理拦截在远程计算装置上执行的操作系统对由远程计算装置提供的驱动器的列举的请求(304)。响应于所拦截的请求,该方法包括由第二客户机代理202指示在由远程计算装置提供的驱动器的列举中显示所接收的由客户计算装置提供的数据而不必映射驱动器(306)。仍參考图3A,更具体地,在远程计算装置上执行的第二客户机代理202接收标识由客户计算装置提供的驱动器的特征的数据(302)。在一个实施例中,第二客户机代理202从第一客户机代理204接收该数据,所述第一客户机代理204在客户计算装置102上执行。在又一个实施例中,作为根据表示层协议建立的通信会话的一部分,第二客户机代理202通过在第二客户机代理202和第一客户机代理204之间建立的虚通道接收该数据。在一些实施例中,第二客户机代理202向第一客户机代理204发送对该数据的请求。在这些实施例的ー个中,第二客户机代理202发起数据检索请求(例如,当第二客户机代理202接收新的装置128已经连接到客户计算装置102的指示时,或当第二客户机代理202接收用户已经登录到客户计算装置102的指示吋)。在其他实施例中,第一客户机代理204将该数据传输到第二客户机代理202而不必先接收到对该传输的请求。在一个实施例中,第一客户机代理204收集所请求的数据并将所收集的数据传输到第二客户机代理202。在又一个实施例中,第一客户机代理204访问应用编程接ロ(API)以检索该数据。例如,并且不限于,第一客户机代理204可以使用诸如“GetLogicalDrives”、“GetDriveType”、“DeviceIoControI”、“GetVoIumeInformation,,、^GetVoIumeInformationByHandIe^或“GetDiskFreeSpace”的API来检索该数据。在又一个实施例中,第一客户机代理204可以在每当装置128b首次连接到客户计算装置102时检索该装置128b的数据(例如,在“即插即用”场景中);在这样的实施例中,第一客户机代理204可使用API(例如,举例来说,RegisterDeviceNotificationAPI)来从在客户计算装置102上执行的操作系统的组件(例如,OS即插即用管理器)接收关于装置128b的到达或移除的通知。在又ー个实施例中,第一客户机代理204可以(但不限于)根据MICROSOFTWINDOWSAPI(例如,但不限T-GetSystemMetriCs>WTSQuerySessionlnformation>GetCurrentProcessId或ProcessldToSessionld)生成命令、将该命令发送到在客户计算装置102上执行的操作系统,以及将从该操作系统接收的响应发送到第二客户机代理202。在一些实施例中,当检索UNC映射的驱动器128b的数据时,第一客户机代理204访问由在客户计算装置102上执行的操作系统提供的注册表。在这些实施例的ー个中,第一客户机代理204在该注册表内识别壳链接,该壳链接在当前用户的会话的上下文中识别远程驱动器(例如,HKEY_CURRENT_USER\Software\Microsoft\ffindows\CurrentVersion\Explorer\SessionInfo\<SessionID>\MyComputer\Namespace\<GUID>,其中,SessionID标识用户/終端服务会话,而GUID是该壳链接的唯一标识符);第一客户机代理204接着可以检索与所识别的壳链接关联的且识别驱动器128b的名称或标签的附加细节(例如,通过访问诸如HKEY_CLASSES_R00T\CLSID\〈⑶ID>的注册键并检索键值,所述键值从该键或子键识别所映射的驱动器的键值)。在这些实施例的又ー个中,与GUID关联的ー个或多个注册键识别附加的数据,诸如总的盘大小、可用盘空间、缺省图标等。在其他实施例中,第一客户机代理204使用API检索由客户计算装置102提供的一个或多个驱动器128b的列表;例如,第一客户机代理204可访问WNetEnumResourceAPI或WNetGetConnectionAPI。在一些实施例中,第一客户机代理204将驱动器128b的图形数据表示(例如,图标)传输到第二客户机代理202。在其他实施例中,第二客户机代理202响应于从第一客户机代理204接收的驱动器类型的标识来指示生成表示驱动器128b的图形数据。第二客户机代理拦截由在远程计算装置上执行的操作系统对由远程计算装置提供的驱动器的列举的请求(304)。在一些实施例中,第二客户机代理202拦截操作系统对其中ー个所列举的驱动器的特征的显示的请求。在这些实施例的ー个中,第二客户机代理202拦截列举、映射和1/0重定向请求。在一些实施例中,第二客户机代理202从第一客户机代理204接收客户计算装置102的用户已经生成对标识所列举驱动器的特征的数据的请求的指示。在这些实施例的一个中,例如,用户可以与远程生成的桌面环境的本地显示交互以便请求由远程计算装置106提供的和由客户计算装置102提供的驱动器128的列举,或者请求驱动器128的特征,例如名称、类型,或驱动器大小。在这些实施例的又ー个中,第二客户机代理202发送该指示到操作系统以进行处理。在这些实施例的又ー个中,操作系统生成用于从远程计算装置106检索所请求的数据的命令(例如查询驱动器128的驱动器大小)。在这些实施例的又ー个中,第二客户机代理202拦截所生成的命令并且确定对该命令的响应应该包括标识由客户计算装置102提供的驱动器128b的特征的数据。响应于所拦截的请求,第二客户机代理202指示在由远程计算装置提供的驱动器的列举中显示所接收的由客户计算装置102提供的数据,而不必映射该驱动器(306)。在一个实施例中,第二客户机代理202作出显示所接收的数据而不必映射所识别的驱动器128b的決定。在又一个实施例中,第二客户机代理202将至少一个注册表条目(例如,壳链接)与所接收的数据相关联,所述注册表条目被存储在专用于与客户计算装置102的会话的操作系统环境中。在又一个实施例中,所关联的注册表条目表示驱动器128b。在又一个实施例中,远程计算装置106上的壳(例如,WINDOWSExplorer)充当缺省壳,并且代表用户读取这些链接并且将它们呈现在用户接ロ単元中,该用户接ロ単元列举对客户计算装置102的用户可用的驱动器128a、b。在一个实施例中,客户计算装置102的用户通过使用指示装置(例如鼠标)将光标移至在远程生成的桌面环境的本地显示中显示的并且表示驱动器128的图标上,来生成对标识驱动器128的盘大小的数据的请求;第一客户机代理204拦截所生成的请求并且将所拦截的请求发送到第二客户机代理202,该第二客户机代理202将该拦截的请求转发到在远程计算装置106上执行的操作系统进行处理;作为处理该拦截的请求的一部分,第二客户机代理202可以与该操作系统通信以便指示显示标识由客户计算装置102提供的驱动器128b的特征的数据。在又一个实施例中,第二客户机代理202指示显示标识由驱动器128b提供的空间的总量的数据。在又一个实施例中,第二客户机代理202指示显示标识驱动器128b上可用空间量的数据。在一个实施例中,第二客户机代理202指示显示标识构成驱动器128b的卷名的用户指定的字母数字串的数据。在又一个实施例中,举例来说,客户计算装置102的終端用户已经指定卷名-而不是驱动器号-并且使用所指定的卷名将驱动器128b与其他驱动器(例如由远程计算装置102提供的驱动器128a或其他驱动器128)相区别;接着,第二客户机代理202指示在由远程计算装置106和客户计算装置102提供的驱动器128的列举中以诸如“[客户计算装置上的驱动器号]:on[客户计算装置的名称]”(例如,“ConMachineName”)的格式显示卷名。在一些实施例中,第二客户机代理202从第一客户机代理204接收由机器102提供的驱动器128b的驱动器号和机器102的机器名称。在这些实施例的ー个中,第二客户机代理202生成以\\机器名称\驱动器号为格式的符号链接,例如UNC链接。在这些实施例的又ー个中,第二客户机代理202生成以\\客户机\驱动器号为格式的符号链接,例如UNC链接。在这些实施例的又ー个中,第二客户机代理202指示在远程生成的桌面环境中显示该UNC链接,而不是指示操作系统挂载由客户计算装置102提供的驱动器128b。在这些实施例的又ー个中,第二客户机代理202除了指示操作系统挂载由客户计算装置102提供的驱动器128b之外,还指示在远程生成的桌面环境中显示UNC链接。在一个实施例中,第二客户机代理202在接收标识驱动器128b的特征的数据的同时还接收驱动器128b的图形数据表示;例如,第二客户机代理202可接收表示驱动器128b的图标。在又一个实施例中,第二客户机代理202指示在由远程计算装置106和客户计算装置102共同提供的驱动器128的列举中显示所收到的图标。在又一个实施例中,第二客户机代理202指示为不同类型的驱动器128显示不同的图标。例如,第二客户机代理202可能接收代表由客户计算装置102提供的驱动器128b的第一图标和代表由客户计算装置102提供的第二驱动器128b的第二图标;用户可采用对于不同驱动器显示不同图标以确定驱动器的类型(例如,USB、CD-ROM、硬盘驱动器等)。在其他实施例中,第二客户机代理202从第一客户机代理204接收驱动器128b的驱动器类型的标识,并且识别由远程计算装置106存储的图形数据,以用于生成驱动器128b的表示。在一些实施例中,第二客户机代理202拦截在远程计算装置106上执行的操作系统对由远程计算装置106提供的驱动器列举的请求,并且确定阻止由远程计算装置106提供的至少ー个驱动器的显示。在这些实施例的ー个中,举例来说,远程计算装置106正在将来自客户计算装置102的数据转发到第三机器106b;在这样的实施例中,可能是出于安全或其他策略理由,不显示机器106的驱动器,该机器106是生成远程桌面环境的机器和終端用户从其访问该远程桌面环境的机器之间的中间设备。在其他实施例中,第二客户机代理202拦截在远程计算装置106上执行的操作系统对由远程计算装置106提供的驱动器的列举的请求,并且确定不显示标识由客户计算装置102提供的驱动器128b的特征的数据。在这些实施例的ー个中,举例来说,由于安全或其他策略理由,阻止客户计算装置102的用户访问客户计算装置102的任何硬件或软件资源,并且仅允许其访问由远程计算装置106提供的资源。现參考图3B,所示流程图描述用于在网络计算环境中的远程计算装置106上执行的虚拟桌面中显示与客户计算装置102的驱动器128b相关联的数据而不必明确地映射驱动器128b的方法的又一个实施例。总的来说,该方法310包括在客户计算装置102上执行的客户机代理204建立与远程计算装置106的用户会话(步骤312)。在步骤314,客户机代理204将标识客户计算装置102的客户机驱动器128b的数据发送到在远程计算装置106上执行的客户机代理202。在步骤316,在远程计算装置106上执行的客户机代理202接收与客户计算装置102的客户机驱动器128b关联的数据。在步骤318,在远程计算装置106上执行的客户机代理202使用所接收的与客户机驱动器128b关联的数据在用户会话的上下文中建立壳链接。在步骤320,在远程计算装置106上执行的客户机代理202在远程计算装置106上执行的虚拟桌面中显示与客户计算装置102的客户机驱动器128b关联的数据。仍參考图3B,更具体地,在步骤312,在客户计算装置102上执行的客户机代理204建立与远程计算装置106的用户会话。客户机代理204可以使用本领域任何公知的方法或如此处描述的连接和通信方法来与远程计算装置106建立用户会话。用户能访问在远程计算装置106上执行的虚拟桌面。由远程计算装置106提供的不同环境提供不同的終端用户体验和安全需求,影响本地桌面环境驱动器和远程客户机驱动器的可用性和可视性。例如,在一个环境中,客户计算装置102根本不显示本地客户机桌面并且直接连接到虚拟桌面架构(VDI)上的全屏远程桌面。在一些实施例中,可能需要访问本地存储的数据,并且可以通过本公开的特征在远程计算装置106上的虚拟桌面环境中很容易地完成。在步骤314,客户机代理204将标识客户计算装置128b的客户机驱动器128b的数据发送到在远程计算装置106上执行的客户机代理202。在一些实施例中,第一客户机代理204—旦建立与远程计算装置106的连接就发送标识客户机驱动器128b的数据。在一些实施例中,第一客户机代理204发送标识所有客户机驱动器128的数据。在其他实施例中,第一客户机代理204发送仅标识客户计算装置102的预先确定的客户机驱动器128的数据。在一些实施例中,客户机驱动器128是在用户连接时被预先确定的。在其他实施例中,客户机驱动器是由管理员预先确定的。在一些实施例中,第一客户机代理204在接收来自远程计算装置106的请求后发送标识ー个或多个客户机驱动器128的数据到远程计算装置106。在一些实施例中,客户机代理响应于策略来忽略、禁止或以其他方式省略传输与客户机驱动器128b关联的数据。在一些实施例中,该省略是出于安全的目的,确保在所识别的客户机驱动器128b中存储的敏感信息对远程计算装置106不可见。这在多个用户能访问远程计算装置106或以其他方式共享由远程计算装置106利用的资源的情况下是尤其重要的。在一些实施例中,第一代理204在通过诸如即插即用的装置检测机制识别客户机驱动器128时发送标识客户机驱动器128b的数据。在一些实施例中,该装置检测机制可以通过在2004年9月29日提交的、标题为“SystemandMethodforEventDetectionandRe-DirectionOveraNetworkUsingaPresentationLevelProtocol,,、序号为10/711647的美国专利申请中描述的方式来实现,出于任何和所有目的,该美国专利申请的全部公开内容通过应用被全部包含于此。在一些实施例中,客户机驱动器128b是可移动驱动器,例如通用串行总线(USB)闪存驱动器,第一客户机代理204与客户计算装置102上的操作系统和注册表通信以便接收装置通知(例如装置到达客户计算装置102或从客户计算装置102移除)和接收可能包含关于该USB装置的信息的装置变化通知。在一些实施例中,第一客户机代理204将装置通知发送到第二客户机代理202,第二客户机代理202响应于接收来自装置检测机制的消息,在虚拟桌面中为该可移动的客户机驱动器128b生成新的壳链接或删除已有的壳链接。在其他实施例中,第二客户机代理202仅在接收来自用户的明确指令之后,为该可移动的客户机驱动器128b生成新的壳链接或删除已有的壳链接。在步骤316,在远程计算装置106上执行的客户机代理接收与客户计算装置102的客户机驱动器128b关联的数据。在一些实施例中,第一客户机代理204将与客户机装置102关联的所有数据发送到第二客户机代理202。在一些实施例中,第一客户机代理204发送与客户机装置102关联的最少数据并且第二客户机代理使用所接收的数据来计算与客户机驱动器128b相关的统计数据或其他信息。在一些实施例中,第一客户机代理204发送客户机驱动器128b的图形数据表示。这样的图形数据可包括标识或表示客户机驱动器类型(例如,可移动盘、CD-ROM和硬盘)的图标。在一些实施例中,与客户机驱动器关联的数据可包括构成该客户机驱动器的卷名的用户指定的字母数字串。在步骤318,在远程计算装置上执行的客户机代理使用所接收的与客户机驱动器关联的数据在用户会话的上下文中生成壳链接。在一些实施例中,壳链接包括包含用于访问客户计算装置的客户机驱动器的信息的数据对象。在其他实施例中,壳链接是包含用于访问该壳的命名空间中的另ー个对象的信息的数据对象。在一些实施例中,第二客户机代理生成所述壳连接的标识符并且将该标识符加入到虚拟桌面的操作系统的注册表。在ー些实施例中,标识符被称为全局唯一标识符,或GUID。使用GUID确保任何壳链接都是被唯一地标识的而不管在该系统中所涉及或包含的客户机或远程计算装置的数量。在一些实施例中,由在远程计算装置上执行的虚拟桌面的操作系统来处理壳链接。在远程计算装置上的虚拟桌面的上下文中执行的Window壳(即Explorer)将客户计算装置的客户机驱动器128b和与虚拟桌面关联的任何本地或网络驱动器一起显示。当用户选择所显示的壳链接吋,Windows壳处理到相应的客户机目标驱动器的重定向,因为在虚拟桌面环境中没有明确地映射该驱动器。当用户将光标移至所显示的壳链接上时,Windows壳显示与客户计算装置上相应的客户机驱动器关联的数据。可以由用户确定当光标移至所显示的壳链接上时显示的信息。在一些实施例中,所显示的信息是在制造时或由系统管理员预先确定的。在一些实施例中,响应于壳链接的右击或时间阈值设置,可以显示不同类型的信息。在步骤320,在远程计算装置上执行的客户机代理在远程计算装置上执行的虚拟桌面中显示与客户计算装置的客户机驱动器关联的数据。在一些实施例中,远程计算装置只显示与客户机驱动器关联的数据。在其他实施例中,远程计算装置可以显示与客户机驱动器关联的数据以及其是对用户可访问的所列举的或未被映射的驱动器的指示。现參考图4,所示屏幕截图描述其中第二客户机代理202指示显示标识由机器102提供的驱动器128b的特征的数据的系统的示例。如图4所示,将卷名(DonGE0RGY-DEV1)与表示驱动器128b的图标显示在一起。图4也描述了其中将驱动器的类型(⑶/DVD驱动器)和驱动器128b的图形表示列在一起的实施例。现參考图5,所示屏幕截图描述其中第二客户机代理202指示显示标识由机器102提供的驱动器128b的特征的数据的系统的又ー个示例。在一些实施例中,如图5所示,当客户计算装置102的終端用户使用指示装置(例如鼠标)将光标移至驱动器128b的表示上时,可以显示附加数据,例如驱动器128b上的可用空间量或者驱动器128b的总的盘大小。现參考图6,所示屏幕截图描述了其中将标识网络计算环境中的客户计算装置的驱动器的特征的数据描绘在远程计算装置的驱动器列举中,而不必在该远程计算装置上映射该驱动器的系统的实施例。如图6所示,该系统没有将驱动器128b作为本地驱动器映射到远程计算装置106;通过将驱动器128b指定为远程驱动器而不是相应的本地驱动器就证明了这一点。在一些实施例中,此处所述的方法和系统的实现给由多个联网机器提供的硬件和软件的用户提供了无缝的体验。例如,此处所述的方法和系统提供在远程生成的桌面中显示标识驱动器128b的特征的数据的功能,而不是将驱动器128b映射到远程计算装置106并由远程计算装置106根据对该远程装置106可用的符号来给所映射的驱动器分配驱动器号,从而改善了終端用户体验。应该理解,上文描述的系统可提供这些组件的任意多个或每一个并且这些组件可以在独立机器上提供,或者在一些实施例中,可在分布式系统的多个机器上提供。可以使用编程和/或工程技术将上文所描述的系统和方法实现为方法、装置或产品以提供软件、固件、硬件或上述的任何组合。此外,上述系统和方法可作为在一件或多件产品上实现或在其中实现的一个或多个计算机可读程序而被提供。此处使用的术语“产品”g在包括从ー个或多个计算机可读的装置、固件、可编程逻辑、存储器装置(例如,EEPROM、ROM、PROM、RAM、SRAM等)、硬件(例如,集成电路芯片、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)、电子装置、计算机可读的非易失存储单元(例如,⑶-ROM、软盘、硬盘等)可访问的或嵌入其中的代码或逻辑。所述产品可以是从经由网络传输线、无线传输介质、通过空间传播的信号、无线电波、红外信号等提供对计算机可读程序的访问的文件服务器可访问的。所述产品可以是闪存卡或磁带。所述产品包括硬件逻辑以及嵌入在计算机可读介质中由处理器执行的软件或可编程代码。通常,计算机可读程序可以任何编程语言来实现,如LISP、PERL、C、C++、C#、PROLOG,或者诸如JAVA的任何字节码语言。软件程序可以作为目标代码被存储在一件或多件产品上或其。已经描述了用于在网络计算环境中的远程计算装置上显示与网络计算环境中的客户计算装置的驱动器关联的数据而不必在远程计算装置上映射该驱动器的方法和系统的某些实施例,对本领域技术人员而言,显而易见可以使用包含本发明的概念的其他实施例。权利要求1.一种用于在远程计算装置上执行的虚拟桌面中显示与客户计算装置的客户机驱动器关联的数据,而不必明确地将该客户机驱动器映射到远程计算装置上的方法,所述方法包括Ca)由在客户计算装置上执行的第一客户机代理建立与远程计算装置的用户会话;(b)由在客户计算装置上执行的第一客户机代理发送标识客户计算装置的客户机驱动器的数据到在远程计算装置上执行的第二客户机代理;(c)由第二客户机代理接收与客户计算装置的客户机驱动器关联的数据;Cd)由第二客户机代理在所述用户会话的上下文中使用所接收的与客户计算装置的客户机驱动器关联的数据生成壳链接,其中,所述壳链接包括数据对象,所述数据对象包含用于访问客户计算装置的客户机驱动器的信息;以及Ce)由第二客户机代理在远程计算装置上执行的虚拟桌面中显示与客户计算装置的客户机驱动器关联的数据。2.根据权利要求I所述的方法,其中,所述客户机驱动器还包括通用串行总线(USB)闪存驱动器。3.根据权利要求2所述的方法,其中步骤(a)还包括由在客户计算机器上执行的第一客户机代理拦截由客户计算装置生成的对于USB闪存驱动器的装置通知,将该装置通知发送到在远程计算装置上执行的第二客户机代理,以及由第二客户机代理响应于所拦截的装置通知来修改所述USB闪存驱动器壳链接。4.根据权利要求I所述的方法,其中与客户计算装置的客户机驱动器关联的数据还包括客户机驱动器的盘空间数据。5.根据权利要求I所述的方法,其中与客户计算装置的客户机驱动器关联的数据还包括客户机驱动器的图形数据表示。6.根据权利要求I所述的方法,其中与客户计算装置的客户机驱动器关联的数据还包括构成客户机驱动器的卷名的用户指定的字母数字串。7.根据权利要求I所述的方法,还包括由第二客户机代理生成壳链接的标识符。8.根据权利要求6所述的方法,还包括由第二客户机代理将所述壳链接的标识符注册在由远程计算装置上执行的操作系统提供的注册表中。9.根据权利要求I所述的方法,还包括由第二客户机代理响应于安全策略禁止显示客户机驱动器。10.根据权利要求I所述的方法,还包括由远程计算装置在当光标移至远程计算装置上所显示的客户机驱动器上时,显示与客户计算装置的客户机驱动器关联的数据。11.一种用于在远程计算装置上执行的虚拟桌面中显示与客户计算装置的客户机驱动器关联的数据,而不必明确地将该客户机驱动器映射到所述远程计算装置上的系统,所述系统包括客户计算装置,其包括在客户计算装置上执行的第一客户机代理,所述第一客户机代理建立与远程计算装置的用户会话;并且将标识客户计算装置的客户机驱动器的数据发送到在远程计算装置上执行的第二客户机代理;和远程计算装置,其包括在远程计算装置上执行的第二客户机代理,所述第二客户机代理接收与客户计算装置的客户机驱动器关联的数据;在所述用户会话的上下文中使用所接收的与客户计算装置的客户机驱动器关联的数据生成壳链接,其中,所述壳链接包括数据对象,所述数据对象包含用于访问客户计算装置的客户机驱动器的信息;以及在远程计算装置上执行的虚拟桌面中显示与客户计算装置的客户机驱动器关联的数据。12.根据权利要求11所述的系统,其中,所述客户机驱动器还包括通用串行总线(USB)闪存驱动器。13.根据权利要求12所述的系统,其中第一客户机代理拦截由客户计算装置生成的对于USB闪存驱动器的装置通知,将该装置通知发送到在远程计算装置上执行的第二客户机代理,并且第二客户机代理响应于所拦截的装置通知来修改USB闪存驱动器壳链接。14.根据权利要求11所述的系统,其中与客户计算装置的客户机驱动器关联的数据还包括客户机驱动器的盘空间数据。15.根据权利要求11所述的系统,其中与客户计算装置的客户机驱动器关联的数据还包括客户机驱动器的图形数据表示。16.根据权利要求11所述的系统,其中与客户计算装置的客户机驱动器关联的数据还包括构成客户机驱动器的卷名的用户指定的字母数字串。17.根据权利要求11所述的系统,其中,第二客户机代理生成壳链接的标识符。18.根据权利要求16所述的系统,其中,第二客户机代理将所述壳链接的标识符注册在由远程计算装置上执行的操作系统提供的注册表中。19.根据权利要求11所述的系统,其中,第二客户机代理响应于安全策略禁止显示客户机驱动器。20.根据权利要求11所述的系统,其中,远程计算装置在当光标移至远程计算装置上所显示的客户机驱动器上时,显示与客户计算装置的客户机驱动器关联的数据。全文摘要描述了用于在远程计算装置上执行的虚拟桌面中显示与客户计算装置的客户机驱动器关联的数据而不必明确地将该客户机驱动器映射到该远程计算装置上的方法和系统。在客户计算装置上执行的第一客户机代理与远程计算装置建立用户会话。第一客户机代理将标识客户计算装置的客户机驱动器的数据发送到在远程计算装置上执行的第二客户机代理。第二客户机代理接收与客户机驱动器关联的数据,并且使用所接收的与客户机驱动器关联的数据在该用户会话的上下文中建立壳链接。第二客户机代理在远程计算装置上执行的虚拟桌面中显示与客户计算装置的客户机驱动器关联的数据。文档编号G06F15/17GK102656578SQ201080055182公开日2012年9月5日申请日期2010年12月9日优先权日2009年12月9日发明者G·莫姆驰劳威申请人:思杰系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1