与在平板计算装置的虚拟桌面内显示的远程应用交互的制作方法

文档序号:6360764阅读:162来源:国知局
专利名称:与在平板计算装置的虚拟桌面内显示的远程应用交互的制作方法
技术领域
本申请总的涉及显示和控制在平板计算装置上所显示的远程应用。本申请尤其涉及显示和控制在平板计算装置上所显示的虚拟桌面内的应用。
背景技术
平板计算机和计算装置通常执行在其中使用触摸屏产生用户输入的范例中执行 的操作系统。今天的平板计算机中很多被设计为捕获和处理触摸输入,并且在平板计算机上显示的许多应用被设计为适应在其中采用触摸屏产生用户输入的范例。一些应用被设计为专用于平板操作系统环境,使得用户能通过触摸屏与菜单、输入字段和其他应用接口元素交互。存在没有被配置为在其中触摸屏是接收用户输入的主要手段的系统范例内操作的各种应用。这些应用中很多被配置为在考虑了鼠标指针和鼠标的可用性的系统中执行。在大多数情况下,不同的环境带来一些问题,因为通常不能在平板计算机上加载或执行没有被配置成在平板电脑上执行的应用。当用户远程访问没有被设计成在平板计算机上执行的应用时可能出现问题。存在远程访问应用,其允许用户在平板计算机上远程地显示远程应用并与其交互。这些应用显示在远程计算机上执行的并且在多数情况下在考虑了鼠标指针和鼠标的存在的环境中执行的远程应用。当用户从不提供鼠标指针且不考虑鼠标的使用的平板计算机访问这些应用时,用户可能不能够成功地与该远程应用的所有元素进行交互。因此,需要一种系统,其在执行不提供鼠标指针的操作系统的计算机上显示鼠标指针。此外,需要一种方法来控制鼠标指针在平板计算机的整个桌面上的移动。

发明内容
在一个方面,本文描述的是用于在虚拟桌面内显示远程应用以及使用在虚拟桌面中显示的装置鼠标指针来控制所显示的远程应用的方法和系统。平板计算装置往往执行不考虑鼠标指针的操作系统。这些操作系统被设计成运行在主要考虑通过触摸屏接收输入的系统范例中。远程应用通常执行在考虑通过鼠标或指示装置接收部分用户输入的系统范例中。在许多情况下,这些远程应用被设计成与鼠标指针进行交互。由于这个原因,当端用户在不考虑鼠标指针的使用的平板计算系统范例中与远程应用交互时,远程应用的一些功能可能对该端用户不可用。通过平板计算装置的本地桌面来显示虚拟桌面的系统和方法(其中虚拟桌面包括鼠标指针)能克服当在不考虑鼠标指针的平板系统范例中显示被设计成在考虑鼠标指针的系统范例中执行的远程应用时所呈现出的内在限制。在又一个方面,本文描述的是用于使用鼠标指针与在平板计算装置上的虚拟桌面内显示的远程应用交互的方法。在一些情况下,虚拟桌面应用在平板计算装置上本地执行以产生和显示虚拟桌面。在其他情况下,虚拟桌面在平板计算装置上本地执行。该平板电脑本地执行产生和显示本地桌面的操作系统。在一些实施例中,平板计算装置操作系统不考虑鼠标指针。所述虚拟桌面可以被显示在所述本地桌面的上下文中,使得所述虚拟桌面看起来像所述本地桌面。可以在所述虚拟桌面中显示鼠标指针。虚拟桌面可以接收来自平板计算装置的用户的、在该虚拟桌面的上下文中执行远程应用的请求。可以通过虚通道将该用户请求传输到远程服务器。响应于接收该用户请求,该远程服务器可以执行该远程应用并且将由该远程应用产生的应用输出传输到平板计算装置。当收到该应用输出时,平板计算装置可以在虚拟桌面的上下文中所显示的应用输出窗口内显示该应用输出。接着,端用户可以使用所述鼠标指针与该远程应用交互。在一些实施例中,表示远程应用的图标被显示在虚拟桌面中。在一个实施例中,对应于所显示的图标的远程应用是在本地桌面中不可用的应用。在其他实施例中,显示图标还包括从远程服务器接收对应于所述平板计算装置的用户的用户应用列表。当收到该列表·时,将应用图标显示在虚拟桌面上,其中,每个应用图标对应于一个所列出的用户应用。在一些实施例中,虚拟桌面可以包括本地桌面的一个或多个定制。在一些情况下,该定制可包括在虚拟桌面的背景上显示本地桌面的墙纸。在其他情况下,定制可包括根据本地桌面的主题在虚拟桌面内显示元素。在一个实施例中,可以使用虚拟触控板控制在虚拟桌面内显示的鼠标指针。在一些实施例中,虚拟触控板包括在虚拟桌面内显示的触控板的交互式图像。在又一个实施例中,可以使用外部输入装置控制在虚拟桌面内显示的鼠标指针。在一些情况下,该外部输入装置可包括虚拟触控板。在又一个方面,本文描述的是使用鼠标指针与在平板计算装置上的虚拟桌面内显示的远程应用交互的方法。在一些情况下,虚拟桌面应用在平板计算装置上本地执行以产生和显示虚拟桌面。在其他情况下,虚拟桌面在平板计算装置上本地执行。该平板电脑本地执行产生和显示本地桌面的操作系统。在一些实施例中,平板计算装置操作系统不考虑鼠标指针。所述虚拟桌面可以被显示在所述本地桌面的上下文中,使得所述虚拟桌面看起来像所述本地桌面。可以在所述虚拟桌面中显示鼠标指针。在一些情况下,平板计算装置的用户可以使用在虚拟桌面内显示的交互式触控板来控制鼠标指针。虚拟桌面可以接收来自平板计算装置的用户的、在该虚拟桌面的上下文中执行远程应用的请求。可以通过虚通道将该用户请求传输到远程服务器。响应于接收该用户请求,该远程服务器可以执行该远程应用并且将由该远程应用产生的应用输出传输到平板计算装置。当收到该应用输出时,平板计算装置可以在虚拟桌面的上下文中所显示的应用输出窗口内显示该应用输出。接着,端用户可以使用所述鼠标指针与该远程应用交互。这个方面的实施例可包括在所述虚拟桌面内显示表示远程应用的图标。在一个实施例中,对应于所显示的图标的远程应用是在本地桌面中不可用的应用。在其他实施例中,显示图标还包括从远程服务器接收对应于所述平板计算装置的用户的用户应用列表。当收到该列表时,将应用图标显示在虚拟桌面上,其中,每个应用对应于一个所列出的用户应用。在又一个方面,本文描述的是用于与在桌面内显示的远程应用交互的系统,其中用户可以使用鼠标指针与该远程应用交互。该系统可包括平板计算装置,该平板计算装置执行产生和显示本地桌面的操作系统。在一些情况下,平板计算装置操作系统不考虑鼠标指针。该系统还可以包括由虚拟桌面应用产生的虚拟桌面。该虚拟桌面可以被显示在所述本地桌面的上下文中,使得所述虚拟桌面看起来像所述本地桌面。在一些情况下,虚拟桌面可包括鼠标指针。虚拟桌面应用可以在平板计算装置上本地执行,并且可以接收来自该平板计算装置的用户的、在该虚拟桌面的上下文中执行远程应用的请求。可以通过虚通道将所接收的用户请求传输到远程服务器,并且可以显示由在该服务器上执行的远程应用产生的应用输出。该应用输出可以被显示在应用输出窗口中,该应用输出窗口进一步被显示在虚拟桌面的上下文中。平板计算装置的用户可以使用鼠标指针与该远程应用进行交互。
在一些实施例中,虚拟桌面还可以包括虚拟触控板。平板计算装置的用户可以使用该虚拟触控板控制鼠标指针的移动。在一些实施例中,控制鼠标指针的移动可包括捕获 来自虚拟触控板的用户输入并且根据所捕获的用户输入重新定位所述鼠标指针。在一些实施例中,该系统可包括虚拟桌面,所述虚拟桌面还包括表示远程应用的图标。在其他实施例中,服务器可以通过执行在用户请求中识别的远程应用来响应接收到该用户请求。当执行该应用时,该服务器可以将由该远程应用产生的应用输出传输到平板计算装置。


下列附图描述了本文所述的方法和系统的某些示例性实施例,其中相同的附图标记指示相同的元素。应理解这些所描述的实施例是对所公开的方法和系统的举例说明而不是以任何方式进行限制。图IA描述提供对能执行应用程序的计算装置的远程访问的网络环境的实施例;图IB和IC描述计算装置的实施例的框图;图2A是描述用于在外部显示装置上的用户可配置显示布局中显示多个资源的系统的一个实施例的框图;图2B是描述用于将一个或者多个资源的显示映射到一个或者多个显示装置的系统的框图;图2C是描述用于在外部显示装置上的用户可配置显示布局中显示多个资源的系统的一个实施例的屏幕截图,其中用户可配置显示布局被划分为网格;图2D是描述用于在外部显示装置上的用户可配置、动态显示布局中显示多个资源的系统的一个实施例的屏幕截图;图3A是描述由接附到一个或者多个外部显示装置的移动计算装置提供的多个屏幕空间的一个实施例的框图;图3B是描述提供多个屏幕空间的移动计算装置的一个实施例的框图;图3C是描述由虚拟图形驱动程序管理的多个屏幕空间的逻辑表示的一个实施例的框图4A是描述用于附加屏幕空间的添加和配置的图形用户接口的一个实施例的框图;图4B是描述用于定制网格显示布局的图形用户接口的一个实施例的框图;图4C是描述可定制网格显示布局的一个实施例的屏幕截图;图4D是描述移动计算装置上非堆叠显示的一个实施例的屏幕截图;图4E是描述由外部显示装置显示通过移动计算装置上执行的多个资源产生的输出数据的方法中所采取的步骤的一个实施例的流程图;图5A是描述用于在客户计算装置上执行和显示多个资源的系统的一个实施例的框图;图5B是描述用于在服务器上执行多个资源并且在客户计算装置上显示该多个资 源的系统的一个实施例的框图;图6A是用于在远程服务器上执行来自移动计算装置的多个资源并且将结果显示在客户计算装置上的系统的一个实施例的框图;图6B是描述用于在远程服务器上执行来自移动计算装置的多个资源并且将结果显示在客户计算装置上的方法所采取步骤的一个实施例的流程图;图7A是描述用于显示和激活与移动计算装置和/或客户计算装置的断开的会话的服务器的一个实施例的框图;图7B是描述用于接收由至少一个之前断开的会话所产生的输出数据的方法所采取步骤的实施例的流程图;图7C是描述用于显示和激活与移动计算装置和/或客户计算装置的断开的会话的方法所采取步骤的一个实施例的流程图;图8A是描述在远程机器上产生用于在本地机器上显示的计算环境的系统的实施例的框图;图SB是描述在其中代理将来自不同源的应用集成到计算环境中的系统的一个实施例的框图;图9A是描述在远程机器上产生用于在本地机器上显示的计算环境的方法所采取步骤的一个实施例的流程图;图9B是描述用于在本地机器上显示由远程机器所产生的桌面环境的方法所采取步骤的一个实施例的流程图;图IOA是描述产生用于在本地机器上显示的包括来自多个远程机器的输出数据的计算环境的系统的实施例的框图;图IOB是描述产生用于在本地机器上显示的包括来自多个远程机器的输出数据的计算环境的系统的一个实施例的屏幕截图;图11是描述产生用于在本地机器上显示的包括来自多个远程机器的输出数据的计算环境的方法的一个实施例的流程图;图12A是描述用于在移动计算装置的屏幕上显示用于与产生在移动计算装置外的显示表面上显示的输出数据的资源进行交互的虚拟输入装置的系统的一个实施例的框图;图12B和12C是描述显示用于通过移动计算装置的用户与通过执行资源所产生的输出数据的显示进行交互的虚拟输入装置的移动计算装置的实施例的屏幕截图;图13是描述用于在移动计算装置的屏幕上显示用于与产生在移动计算装置外的显示表面上显示的输出数据的资源进行交互的虚拟输入装置的方法的一个实施例的流程图;图14是描述用于将与第一类型的输入/输出装置的用户交互转换为用于通过支持与第二类型的输入/输出装置交互的用户接口处理的命令的方法的一个实施例的流程图;图15A和MD是示出虚拟桌面和用于控制在虚拟桌面内显示的指针的系统的实施例的框图;图15C是示出用于使用虚拟桌面内显示的指针与远程应用交互的方法的流程图;图16是虚拟桌面的实施例的屏幕截图;·
图17A-17D是描述使用一个手持装置来控制在第二手持装置中显示的指针的系统的实施例的框图;图18是示出用于将一个手持装置与另一个手持装置进行同步并使用其中一个装置来控制另一个装置的方法的实施例的流程图。
具体实施例方式本文所述的方法、系统和设备不限于本文所描述和/或显示的特定的装置、方法、应用、条件或参数。应理解,在单独实施例的上下文中描述了本文所述的方法、系统和架构的特定特征,并且可以在本文所述的实施例的任一组合或子组合中提供本文所述的方法、系统和架构的特定特征。在本公开通篇使用了下列术语如本文所使用的,平板计算装置可以是任何移动计算装置。例如,平板计算装置可以是 IPAD、MOTOROLA X00M、DELL STREAK、ARCHOS、BLACKBERRY PLAYB00K、AMAZON KINDLE、FUJITSU LIFEB00K、HP SLATE、NETBOOK NAVIGATOR、TOSHIBA P0RTEGE、SAMSUNG GALAXY、VIEWSONIC VIEWPAD或任何其他台式计算机。平板计算装置可以执行任何下列操作系统ANDROID操作系统,WINDOWS操作系统、由APPLE发布的iOS、BLACKBERRY OS或适用于在平板计算机上执行的任何其他操作系统或嵌入式操作系统。在一些实施例中,移动计算装置或移动装置(如本文所使用的这些术语)指的是平板计算装置。如本文所使用的,虚拟桌面可以是能够显示由在远程位置执行的应用产生的应用输出的任何桌面应用。在一些实施例中,虚拟桌面应用可以是CITRix Xendesktop0在其他实施例中,虚拟桌面可以是在平板计算装置上本地执行的、但被配置成显示远程应用的桌面应用。在其他实施例中,虚拟桌面可以是在平板计算装置上远程地、本地或者远程和本地都可以执行的虚拟机。虚拟桌面可以在平板计算装置上本地执行,或者它们可以在外部计算机上远程执行并且可以被传输或者流式传输到平板计算装置。如本文所使用的,在某物的上下文中显示其他某些东西还可能意味着例如,在桌面中显示应用。当该应用是远程应用时,该远程应用可被显示在虚拟桌面中。另一个例子可以是在本地桌面的上下文中显示虚拟桌面时。在一些实施例中,这意味着将虚拟桌面显示在本地桌面之上,使得所述虚拟桌面看起来像所述本地桌面。尽管本地桌面不可见,但本地桌面会持续执行并且可以通过关闭虚拟桌面来访问本地桌面。在这个例子中,虚拟桌面被显示在本地桌面的上下文中。为了阅读下文各种实施例的描述,下列对于说明书的部分以及它们各自内容的描述是有用的A部分描述计算环境的实施例;B部分描述在多个显示屏上显示虚拟桌面;
C部分描述在移动装置上显示虚拟资源并与虚拟资源交互;以及D部分描述在虚拟桌面内显示应用并与在虚拟桌面内显示的应用交互。A部分计算环境的实施例图IA示出了计算环境101的一个实施例,所述计算环境101包括与一个或者多个服务器106A-106N (本文统称为“服务器106”)通信的一个或者多个客户机器102A-102N(本文统称为“客户机器102”)。在客户机器102和服务器106之间安装的是网络。在一个实施例中,计算环境101可包括在服务器106和客户机器102之间安装的设备。这个设备可以管理客户机/服务器连接,并且在一些情况下能够在多个后端服务器之间负载平衡客户机连接。在一些实施例中,客户机器102可以被称为单个客户机器102或单组客户机器102,而服务器106可以被称为单个服务器106或单组服务器106。在一个实施例中,单个客户机器102与不只一个服务器106通信,而在又一个实施例中,单个服务器106与不只一个客户机器102通信。在又一个实施例中,单个客户机器102与单个服务器106通信。在一些实施例中,客户机器102可以通过下列术语的任何一个而被引用客户机器102、客户机、客户计算机、客户装置、客户计算装置、本地机器、远程机器、客户机节点、端点、端节点或第二机器。在一些实施例中,服务器106可以通过下列术语的任何一个而被引用服务器、本地机器、远程机器、服务器群、主机计算装置或第一机器。在一个实施例中,客户机器102可以是虚拟机102C。尽管在一些实施例中该虚拟机102C可以是由XenSolutions、Citrix Systems、IBM、VMware公司开发的管理程序或任何其他管理程序管理的任一虚拟机,但该虚拟机102C可以是任何虚拟机。在其他实施例中,虚拟机102C可以被任何管理程序管理,而仍在其他实施例中,虚拟机102C可以被在服务器106上执行的管理程序或在客户机102上执行的管理程序管理。在一些实施例中,客户机器102可以执行、操作或者以其它方式提供应用,所述应用可为下列的任何一个软件、程序、可执行指令,虚拟机、管理程序、web浏览器、基于web的客户端、客户端一服务器应用、瘦客户端计算客户机、ActiveX控件、Java小应用程序、与例如软IP电话的互联网协议电话(VoIP)通信相关的软件,用于流式传输视频和/或音频的应用、用于促进实时数据通信的应用、HTTP客户端、FTP客户端、Oscar客户端、Telnet客户端或任何其他可执行指令集。其他实施例包括显示由在服务器106或其他位于远程的机器上远程地执行的应用产生的应用输出的客户装置102。在这些实施例中,客户装置102可在应用窗口、浏览器或其他输出窗口中显不应用输出。在一个实施例中,该应用是桌面,而在其他实施例中,该应用是产生桌面的应用。在一些实施例中,服务器106执行远程表示客户端或其他客户端或程序,所述远程表示客户端或其他客户端或程序使用瘦客户端或远程显示协议来捕获由在服务器106上执行的应用产生的显示输出并且将该应用显示输出传输到远程客户机102。瘦客户端或远程显示协议可以是下列协议的任何一个由位于美国佛罗里达州Ft. Lauderdale的Citrix Systems有限公司出品的独立计算架构(ICA)协议;或者由位于美国华盛顿州Redmond的微软公司出品的远程桌面协议(RDP)。计算环境可以包括不只一个服务器106A-106N,使得服务器106A-106N被一起逻辑分组到服务器群106中。服务器群106可包括地理上分散但逻辑上被一起分组到服务器群106中的服务器106,或者互相位置接近且逻辑上被一起分组到服务器群106中的服务器。在一些实施例中,在服务器群106中地理上分散的服务器106A-106N使用WAN、MAN或LAN通信,其中不同的地理区域可以被表征为不同的大陆、大陆的不同区域、不同的国家、不同的州、不同的城市、不同的校园、不同的房间、或前述地理位置的任何组合。在一些实施例中,服务器群106可以作为单个实体被管理,而在其他实施例中,服务器群106可包括多个服务器群106。
在一些实施例中,服务器群106可包括执行大体上相似类型的操作系统平台(例如,由美国华盛顿州Redmond的Microsoft公司出品的WINDOWS NT、UNIX、LINUX或SNOWLEOPARD)的服务器106。在其他实施例中,服务器群106可包括执行第一类型的操作系统平台的第一组服务器106,和执行第二类型的操作系统平台的第二组服务器106。在其他实施例中,服务器群106可包括执行不同类型的操作系统平台的服务器106。在一些实施例中,服务器106可以是任何服务器类型。在其他实施例中,服务器106可以是任何下列服务器类型文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器、防火墙、web服务器、应用服务器或者作为主应用服务器、执行活动目录的服务器106、或执行提供防火墙功能、应用功能,或负载平衡功能的应用加速程序的服务器106。在一些实施例中,服务器106可以是包括远程认证拨入用户服务的RADIUS服务器。在服务器106包括设备的实施例中,服务器106可以是由任何一个下列制造商制造的设备Citrix应用网络组、Silver Peak Systems 有限公司、Riverbed Technology 有限公司、F5 Networks 有限公司或Juniper Networks有限公司。一些实施例包括第一服务器106A,其接收来自客户机器102的请求,将该请求转发到第二服务器106B,并且用来自第二服务器106B的响应对由客户机器102产生的请求进行响应。第一服务器106A可以获取对客户机器102可用的应用的列举以及与寄载该应用列举中识别的应用的应用服务器106关联的地址信息。第一服务器106A接着可以使用web接口来呈现对该客户机的请求的响应,并且可以直接与客户机102通信以向客户机102提供对所识别的应用的访问。在一些实施例中,服务器106可以执行下列应用的任何一个使用瘦客户端协议传输应用显示数据到客户机的瘦客户端应用、远程显示表示应用、Citrix Systems有限公司的 CITRIX ACCESS SUITE 的任一部分(例如METAFRAME 或CITRIX PRESENTATION SERVER),由微软公司出品的MICROSOFT WINDOWS终端服务、或由Citrix Systems有限公司开发的ICA客户端。又一个实施例包括为应用服务器的服务器106,例如提供诸如由微软公司制造的MICROSOFT EXCHANGE的电子邮件服务的邮件服务器、web或Internet服务器、桌面共享服务器、协同服务器或任何其他类型的应用服务器。其他实施例包括执行任何一种下列类型的所寄载的服务器应用的服务器106 :由Citrix Online Division有限公司提供的GOTOMEETING,由位于美国加利福尼亚州Santa CIara的WebEx有限公司提供的WEBEX,或者由微软公司提供的 Microsoft Office LIVE MEETING。在一些实施例中,客户机器102可以是寻求访问由服务器106所提供资源的客户机节点。在其他实施例中,服务器106可向客户机102或客户机节点提供对所寄载的资源的访问。在一些实施例中,服务器106充当主节点,从而它与一个或多个客户机102或服务器106通信。在一些实施例中,该主节点可以识别并向一个或多个客户机102或服务器106提供与寄载所请求的应用的服务器106关联的地址信息。在其他实施例中,主节点可以是服务器群106、客户机102、客户机节点102的集群或设备。一个或多个客户机102和/或一个或多个服务器106可以通过在计算环境101中的机器和设备之间安装的网络104传输数据。网络104可以包括一个或多个子网,并且可以被安装在计算环境101中所包含的客户机102、服务器106、计算机器和设备的任何组合之间。在一些实施例中,网络104可以是局域网(LAN)、城域网(MAN)、广域网(WAN)、由位于客户机器102和服务器106之间的多个子网104构成的专用网104、具有专用子网104的主公网104、具有公共子网104的主专用网104或者具有专用子网104的主专用网104。另外 的实施例包括可以为任何下列网络类型的网络104 :点对点网络、广播网络、电信网络、数据通信网络、计算机网络、ATM (异步传输模式)网络、SONET (同步光纤网络)网络、SDH (同步数字体系)网络、无线网络、有线网络或者包括无线链路的网络104 (其中无线链路可以是红外信道或者卫星频带)。网络104的网络拓扑在不同的实施例中存在差异,可能的网络拓扑包括总线型网络拓扑、星型网络拓扑、环型网络拓扑、基于中继器的网络拓扑或者分层-星型网络拓扑。其他实施例可包括由移动电话网络组成的网络104,所述移动电话网络使用协议在移动装置间通信,这些协议可以是下列的任何一个AMPS、TDMA, CDMA、GSM、GPRSUMTS或能够在移动装置之间传输数据的任何其他协议。图IB所示的是计算装置100的实施例,其中图IA示出的客户机器102和服务器106可以被部署为本文示出和描述的计算装置100的任一实施例和/或在其上执行。计算装置100中包括与下列组件通信的系统总线150 :中央处理单元121、主存储器122、存储装置128、输入/输出(1/0)控制器123、显示装置124A-124N、安装装置116和网络接口 118。在一个实施例中,存储装置128包括操作系统、软件例程和客户机代理120。在一些实施例中,1/0控制器123还连接到键盘126和指示装置127。其他实施例可包括连接不只一个输入/输出装置130A - 130N的1/0控制器123。图IC所示的是计算装置100的一个实施例,其中图IA示出的客户机器102和服务器106可以被部署为本文示出和描述的计算装置100的任一实施例和/或在其上执行。计算装置100中包括系统总线150,系统总线150与下列组件通信桥170和第一 1/0装置130A。在又一个实施例中,桥170还与主中央处理单元121通信,其中该中央处理单元121还与第二 1/0装置130B、主存储器122和高速缓存存储器140通信。中央处理单元121内包括1/0端口、存储器端口 103和主处理器。计算机器100的实施例可包括由下列组件配置的任何一个表征的中央处理单元121 :响应并处理从主存储器单元122取出的指令的逻辑电路;微处理器单元,例如由Intel公司制造的微处理器单元、由Motorola公司制造的微处理器单元、由位于美国加利福尼亚州Santa Clara的Transmeta公司制造的微处理器单元;RS/6000处理器(例如由International Business Machines公司制造的那些处理器);处理器,例如由AdvancedMicro Devices公司制造的那些处理器;或者逻辑电路的任何其他组合。中央处理器单元122的其他实施例可包括下列的任何组合微处理器、微控制器、具有单个处理核的中央处理单元、具有两个处理核的中央处理单元或者具有不只一个处理核的中央处理单元。尽管图IC示出了包括单个中央处理单元121的计算装置100,但在一些实施例中,计算装置100可以包括一个或多个处理单元121。在这些实施例中,计算装置100可以存储和执行固件或其他可执行指令,当所述固件或其他可执行指令被执行时,指示一个或多个处理单元121同时执行指令或者对于单个数据片同时执行指令。在其他实施例中,计算装置100可以存储和执行固件或其他可执行指令,当所述固件或其他可执行指令被执行时,指示一个或多个处理单元121各自执行一组指令的一部分。例如,每个处理单元121可以被指示执行程序的一部分或者程序内的特定模块。在一些实施例中,处理单元121可包括一个或多个处理核。例如,处理单元121可以具有两个核、四个核、八个核等。在一个实施例中,处理单元121可包括一个或多个并行 处理核。在一些实施例中,处理单元121的处理核可访问作为全局地址空间的可用存储器,或者在其他实施例中,在计算装置100内的存储器可被分段并分配给处理单元121内的特定核。在一个实施例中,计算装置100中的一个或多个处理核或处理器可各自访问本地存储器。在又一个实施例中,计算装置100内的存储器可以在一个或多个处理器或处理核之间被共享,而其他处理器可以被特定的处理器或处理器子集访问。在计算装置100包括不只一个处理单元的实施例中,多个处理单元可以被包含在单个集成电路(IC)中。在一些实施例中,这些多个处理器可以通过内部高速总线连接在一起,可以将内部高速总线称为单元互连总线。在计算装置100包括一个或多个处理单元121,或处理单元121包括一个或多个处理核的实施例中,处理器可以对多个数据片同时执行单个指令(SMD),或者在其他实施例中,处理器可以对多个数据片同时执行多个指令(MMD)。在一些实施例中,计算装置100可以包括任何数量的SMD和MMD处理器。在一些实施例中,计算装置100可包括图形处理器或图形处理单元(未示出)。图形处理单元可包括软件和硬件的任何组合,并且还可以输入图形数据和图形指令、根据所输入的数据和指令来呈现图形、以及输出所呈现的图形。在一些实施例中,图形处理单元可以被包含在处理单元121之内。在其他实施例中,计算装置100可以包括一个或多个处理单元121,其中,至少一个处理单元121专用于处理和呈现图形。计算机器100的一个实施例包括通过次级总线(也被称为后端总线)与高速缓存存储器140通信的中央处理单元121,而计算机器100的又一个实施例包括通过系统总线150与高速缓存存储器通信的中央处理单元121。在一些实施例中,中央处理单元也使用本地系统总线150来与不只一种类型的I/O装置130A-130N进行通信。在一些实施例中,本地系统总线150可以是下列任何一种类型的总线VESA VL总线、ISA总线、EISA总线、微通道架构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。计算机器100的其他实施例包括的I/O装置130A-130N是与中央处理单元121通信的视频显示器124。计算机器100的其他版本包括经由下列连接的任何一个连接到I/O装置130A-130N的处理器121 HyperTransport、Rapid I/O或InfiniBand。计算机器100的另外的实施例包括使用本地互连总线与I/o装置130A通信且使用直接连接与I/O装置130B通信的处理器121。在一些实施例中,计算装置100包括主存储器单元122和高速缓存存储器140。高速缓存存储器140可以是任何存储器类型,并且在一些实施例中可以是下列类型的存储器的任何一种SRAM、BSRAM或EDRAM。其他实施例包括的高速缓存存储器140和主存储器单元122可以是下列类型的存储器的任何一种静态随机存取存储器(SRAM)、突发SRAM或同步突发SRAM (BSRAM)、动态随机存取存储器(DRAM)、快速页模式DRAM (FPM DRAM) J^SDRAM(EDRAM)、扩展数据输出RAM (EDO RAM)、扩展数据输出DRAM (EDO DRAM)、突发扩展数据输出 DRAM (BEDO DRAM)、增强 DRAM (EDRAM)、同步 DRAM (SDRAM), JEDEC SRAM.PC100 SDRAM、双倍数据速率SDRAM (DDR SDRAM)、增强SDRAM (ESDRAM)、同步链路DRAM (SLDRAM)、直接内存总线DRAM (DRDRAM)、铁电RAM (FRAM)或者任何其他类型的存储器。另外的实施例包括的中央处理单元121可以通过系统总线150、存储器端口 103或允许处理器121访问存储器122的任何其他连接、总线或端口来访问主存储器122。计算装置100的一个实施例支持下列安装装置116的任何一个AD-ROM驱动器、⑶-R/RW驱动器、DVD-ROM驱动器、各种格式的磁带驱动器、USB装置、可引导介质、可引导·⑶、诸如ΚΝ0ΡΡΙΧ 的用于分发GNU/Linux的可引导⑶、硬盘驱动器或适于应用或软件的任意其它装置。在一些实施例中,应用可以包括客户机代理120或客户机代理120的任何部分。计算装置100还可以包括存储装置128,所述存储装置128可以是一个或者多个硬盘驱动器,或者一个或多个独立盘冗余阵列,其中该存储装置被配置为存储操作系统、软件、程序应用或者客户机代理120的至少一部分。计算装置100的另一个实施例包括用作存储装置128的安装装置116。计算装置100还可以包括网络接口 118以通过多种连接来与局域网(LAN)、广域网(WAN)或互联网对接,所述连接包括但不限于标准电话线路、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、RS485、IEEE802. 11、IEEE802. 11a、IEEE802. lib、IEEE802. llg、CDMA、GSM、WiMax和直接异步连接)来建立连接。一种版本的计算装置100包括的网络接口 118能够通过任意类型和/或形式的网关或诸如安全套接字层(SSL)或传输层安全(TLS),或由Citrix Systems有限公司制造的Citrix网关协议的隧道协议来与其他计算装置100’通信。网络接口 118的版本可以包括下列的任何一个内置网络适配器、网络接口卡、PCMCIA网络卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适用于将计算装置100对接到能够通信并执行本文所述的方法和系统的网络的任意其它装置。计算装置100的实施例包括下列1/0装置130A-130N中的任何一个键盘126、指示装置127、鼠标、触控板、光笔、轨迹球、麦克风、绘图板、视频显示器、扬声器、喷墨打印机、激光打印机和热升华打印机,或者能执行本文所述的方法和系统的任何其他输入/输出装置。在一些实施例中,1/0控制器123可连接到多个1/0装置130A-130N以控制该一个或多个1/0装置。1/0装置130A-130N的一些实施例可以被配置为提供存储或安装介质116,而其他实施例可提供通用串行总线(USB)接口,用于接纳USB存储装置,例如由TwintechIndustry有限公司制造的USB闪存驱动系列装置。其他实施例包括的1/0装置130可以是在系统总线150和外部通信总线之间的桥,所述外部通信总线例如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超级HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤信道总线,或串行小型计算机系统接口总线。在一些实施例中,计算机器100可以连接多个显示装置124A-124N,在其他实施例中,计算装置100可以连接单个显示装置124,而仍在其他实施例中,计算装置100连接相同的显示类型或形式的显示装置124A-124N,或者连接不同的类型或形式的显示装置124A-124N。显示装置124A-124N的实施例可以由下列来支持和使能一个或多个I/O装置130A-130N、I/O控制器123、I/O装置130A-130N和I/O控制器123的组合、任何类型和/或形式的视频适配器、视频卡、驱动器和/或库,以与显示装置124A-124N对接、通信、连接或以其他方式使用显示装置124A-124N。在一些实施例中,计算装置100可以被配置为使用一个或多个显示装置124A-124N,这些配置包括具有多个连接器以与多个显示装置124A-124N对接;具有多个视频适配器,每个视频适配器连接到一个或多个显示装置124A-124N ;具有被配置成支持多个显示装置124A-124N的操作系统;使用在计算装置100内包含的电路和软件来连接并使用多个显示装置124A-124N;以及在主计算装置100和多 个从计算装置上执行软件以使得主计算装置100能够使用从计算装置的显示器作为该主计算装置100的显示装置124A-124N。在计算装置100的其他实施例中包括由多个从计算装置提供的且经由网络连接到主计算装置100的多个显示装置124A-124N。在一些实施例中,计算机器100可执行任何操作系统,而在其他实施例中,计算机器100可以执行任何下列操作系统MICROSOFT WINDOWS操作系统的多个版本,例如WINDOWS 3. X, WINDOWS 95, WINDOWS 98, WINDOWS 2000, WINDOWS NT 3. 51, WINDOWS NT4. 0,ffINDOffS CE,WINDOWS XP 和 WINDOWS VISTA ;不同发行版本的 Unix 和 Linux 操作系统;由苹果计算机公司出品的MAC OS的任意版本;由国际商业机器公司出品的OS/2 ;任意嵌入式操作系统;任意实时操作系统;任意开源操作系统;任意专有操作系统;用于移动计算装置的任意操作系统,或者任意其它操作系统。在又一个实施例中,计算机器100可以执行多个操作系统。例如,计算机器100可以执行PARALLELS或另一个虚拟化平台,所述PARALLELS或另一个虚拟化平台能执行或管理执行第一操作系统的虚拟机,而计算机器100执行不同于第一操作系统的第二操作系统。计算机器100可以体现在下列计算装置的任何一个中计算工作站、台式计算机、膝上型或笔记本电脑、服务器、掌上电脑、移动电话或便携电信装置、媒体播放装置、游戏系统、移动计算装置、上网本、由苹果计算机公司出品的IPOD系列装置中的装置、由索尼公司出品的PLAYSTATION系列装置中的任何一个、由Nintendo有限公司出品的Nintendo系列装置中的任何一个、由微软公司出品的XBOX系列装置中的任何一个,或能够通信并有足够的处理器能力和存储容量以执行本文所述的方法和系统的任意其它类型和/或形式的计算、电信或者媒体装置。在其他实施例中,计算机器100可以是移动装置,例如下列移动装置中的任何一个=JAVA使能蜂窝电话或个人数字助理(PDA),诸如i55sr、i58sr、i85s、i88s、i90c、i95cl或imllOO,以上这些均由摩托罗拉公司制造;由Kyocera公司制造的6035或7135 ;由Samsung电子有限公司制造的i300或i330 ;由Palm有限公司出品的TRE0180、270、600、650、680、700p、700w或750智能电话;具有不同处理器、操作系统和符合该装置的输入装置的任何计算装置;或者能够执行本文所述的方法和系统的任何其他移动计算装置。在其他实施例中,计算装置100可以是下列移动计算装置中的任何一个由Research In Motion有限公司制造的任一系列的黑莓(Blackberry)或其他手持装置、由苹果计算机公司制造的iPhone、由苹果计算机公司制造的iPacUPalm Pre、Pocket PC、PocketPC电话,或任何其它手持移动装置。B部分在多个显示屏上显示虚拟桌面现参考图2A,框图描述用于在一个或者多个显示装置上显示多个资源的系统的一个实施例。总的来说,该系统包括可以与一个或者多个外部显示装置202a-n通信的移动计算装置102。图2A中的实施例示出具有本地显示201的移动计算装置102,尽管在其他实施例中可以使用不具有本地显示的装置。移动计算装置102执行多个资源204a-n(总的称为204)。窗口管理系统206和虚拟图形驱动程序208管理在用户可配置显示布局中与多个资源的每一个关联的输出数据的显示的位置和尺寸。在许多实施例中,移动计算装置102向外部显示装置202传输与多个资源204的每一个关联的输出数据。在这些实施例的一些中,移动计算装置102在建立与外部显示装置202的连接后传输输出数据。在多个实施例·中,移动计算装置102将与多个资源204的每一个关联的输出数据传输到该装置的本地显示201。在许多实施例中,移动计算装置102将与多个资源204中的某一些关联的输出数据传输到本地显示201并且将与多个资源204中的其它资源关联的输出数据传输到外部显示装置 202a-n。现参考图2A并且更详细地,移动计算装置102执行多个资源204。在一个实施例中,移动计算装置102是如上结合图1A-1C描述的客户机102。在又一个实施例中,移动计算装置102显示与移动计算装置102所执行的多个资源204a-n中的资源204a关联的输出数据。在一些实施例中,移动计算装置102显示与多个资源204的每一个关联的输出数据。在一个实施例中,多个资源204中的一个资源可以包括但不限于数据文件、可执行文件、配置文件、应用程序、桌面环境(其自身可包括用于由用户执行的多个应用)、计算环境映像(诸如虚拟机映像),和/或操作系统软件或者需要执行计算环境映像的其他应用。在一个实施例中,移动计算装置102包括窗口管理服务206,允许外部显示装置202显示与移动计算装置102上执行的多个资源204的每一个关联的输出数据。在又一个实施例中,与允许一个资源204的输出只在本地显示201或者外部显示装置202上查看不同的是,窗口管理服务206允许在外部显示装置202或者本地显示201上大体同时查看在移动计算装置102上运行的多个资源。在又一个实施例中,窗口管理服务206结合虚拟图形驱动程序208管理在外部显示装置202和本地显示201上显示的窗口的显示布局。在一些实施例中,虚拟图形驱动程序208是管理虚拟屏幕帧缓存器的驱动程序级组件,虚拟屏幕帧缓存器用于存储将在移动计算装置102的本地显示201或者外部显示装置202上显示的输出数据。在这些实施例的一个中,窗口管理服务206结合虚拟图形驱动程序208管理用来显示输出数据的屏幕空间的边界和尺寸,以及管理在哪个显示装置上显示输出数据。在一些实施例中,外部显示装置202接收与多个资源204的每一个关联的输出数据并且以用户可配置显示布局显示该输出数据。在一个实施例中,外部显示装置202包括移动计算装置102连接的对接坞(dock)。在又一个实施例中,外部显示装置202包括用于例如经由蓝牙、Wi-Fi或者如上文结合图1A-1C所述的其它网络协议与移动计算装置102进行无线通信的接收器。在又一个实施例中,外部显示装置202是如上文结合图1B-1C所述的显示装置124。现参考图2B,框图描述用于在一个或者多个显示装置201和/或202上映射移动计算装置102的一个或者多个资源204的显示的系统的一个实施例。在多个实施例中,窗口管理服务206管理虚拟屏幕空间210。虚拟屏幕空间210可以映射到本地显示201和一个或者多个外部显示装置202。窗口管理服务206可以在虚拟屏幕空间210上定位与一个或者多个资源204的用户接口关联的输出数据以指定每个用户接口将显示的位置。在一些实施例中,窗口管理服务206根据用户偏好来定位输出数据。在另外的实施例中,窗口管理服务206根据策略来定位输出数据。在多个实施例中,窗口管理服务206基于与输出数据关联的资源204来定位输出数据。窗口管理服务206与虚拟图形驱动程序208通信以便将与资源204的用户接口关联的输出数据传输到本地显示201和一个或者多个外部显示装置202。在一些实施例中,窗口管理服务206可以将输出数据及其关联的坐标从虚拟屏幕空间210传输到虚拟图形驱动程序208。在多个实施例中,虚拟图形驱动程序208在虚拟屏幕帧缓存器中存储输出数 据。在许多实施例中,虚拟图形驱动程序208将虚拟屏幕帧缓存器中的条目传输到本地显示201和外部显示装置202。在许多实施例中,虚拟图形驱动程序208基于虚拟屏幕帧缓存器中条目的位置将该帧缓存器中的该条目传输到本地显示201或者外部显示装置202。现参考图2C,屏幕截图描述用户可配置显示布局的一个实施例,其中,外部显示装置202显示资源204的输出数据。在此实施例中,以网格显示布局显示资源204的输出数据。该网格显示布局可以在布置中包括一个或者多个单元。单元可以显示与资源关联的输出数据。在一些实施例中,不只一个的单元显示与同一资源关联的输出数据。在一些实施例中,这些单元具有相同的大小,而在其它实施例中,这些单元具有不同的大小。可以以任一配置来布置单元。在一些实施例中,可以以行、列、或者这两者来布置单元。单元可以具有与网格中的该单元位置关联的描述符。该描述符可以指示单元在行中的位置。在图2C中描述的实施例中,资源204a的单元可以具有描述符“1-1”,资源204b的单元可以具有描述符“1-2”,资源204c的单元可以具有描述符“1-3”,资源204d的单元可以具有描述符“2-1”,并且资源204d的单元可以具有描述符“2-2”。在其他实施例中,可以对单元进行编号,例如“单元1”、“单元2”等。然而,可以使用对本领域普通技术人员公知的选择描述符的任一系统。在各个实施例中,窗口管理服务206根据在本地显示201或者外部显示装置202上显示的资源204来配置网格显示布局。在一些实施例中,该服务206根据显示的资源204的数量来配置网格显示布局。在其他实施例中,服务206根据资源204的用户接口中的内容的大小或者数量来配置网格显示布局。例如,如果外部显示装置202将显示具有相当数量内容的四个资源,则窗口管理服务206可以使用四个一样的单元来配置网格显示布局。在又一个实施例中,如果外部显示装置202将显示四个资源并且一个资源包括三倍于其它资源的内容,则窗口管理服务206可以将网格显示布局配置为第一行中三个一样的单元并且第二行中单个单元。第二行中单个单元的宽度为第一行中单元的三倍。在多个实施例中,窗口管理服务206可以将网格显示布局配置为保留一个单元用于显示关于正在显示的资源的信息,诸如资源的菜单。在许多实施例中,窗口管理服务206可以将网格显示布局配置为保留一个单元用于允许用户配置该网格显示布局。现参考图2D,屏幕截图描述提供动态显示布局的用户可配置显示布局的一个实施例,其中,外部显示装置202显示与多个资源204关联的输出数据。在该实施例中,显示资源204的输出数据的外部显示装置202上的窗口可以被动态定位和确定大小。窗口管理服务206可以根据策略、资源204或者任何其他方法将资源的用户接口定位在默认位置并且具有所选择的默认的尺寸。窗口管理服务206可以对堆叠的用户接口排序使得高级别的用户接口遮掩低级别的用户接口。窗口管理服务206可以将输出数据传输到反映该遮掩的虚拟图形驱动程序208。用户可以通过例如点击和拖放窗口或者窗口边缘重新定位窗口或者重新调整窗口大小。在这些实施例中,虚拟图形驱动程序208可以检测用户对窗口的改变,并且将关于用户对窗口改变的信息传输到窗口管理服务206。窗口管理服务206可以处理该变化并且将更新的输出数据传输到虚拟图形驱动程序208。在一些实施例中,用户将资源204的用户接口移动到本地显示201或者外部显示装置202的任一位置。在一些实施例中,用户将资源204的用户接口移动到不同的显示装置。在一些实施例中,该更新的输出数据指示已经增加一个用户接口的尺寸或者已经调整位置以遮掩另一个用户接口。在其他实 施例中,该更新的输出数据指示已经减小一个用户接口的尺寸或者已经调整位置使得将会看到另一个用户接口的更多部分。现参考图3A,框图描述由接附到一个或者多个外部显示装置的移动计算装置提供的虚拟屏幕空间210的一个实施例。如图3A中所示,移动计算装置102包括虚拟图形驱动程序208和虚拟屏幕210。虚拟屏幕210包括多个虚拟屏幕空间310和312a_n。虚拟屏幕空间310可以是用于移动计算装置102上的本地显示201的本地显示屏幕空间。其它虚拟屏幕空间312a-n可以是对应于外部显示装置202的显示的扩展屏幕空间。窗口管理服务206和虚拟图形驱动程序208管理虚拟屏幕210。在一个实施例中,虚拟图形驱动程序208使用虚拟屏幕帧缓冲器来管理移动计算装置的本地显示201并且改变本地显示201的屏幕分辨率。在又一个实施例中,虚拟图形驱动程序208使用虚拟屏幕帧缓冲器来管理扩展的屏幕空间312并且改变扩展屏幕312的分辨率。在一些实施例中,虚拟图形驱动程序208分配并且管理多个虚拟屏幕空间310、312a-n以及虚拟屏幕帧缓存器。在这些实施例的一些中,每个虚拟屏幕空间和虚拟屏幕帧缓存器具有独立于其它屏幕空间和帧缓存器的分辨率。在这些实施例的一个中,与多个资源204的每一个关联的输出数据可以驻留在任一虚拟屏幕空间310、312a-n中。在这些实施例的又一个中,扩展屏幕空间312a-n中的每一个与至少一个外部显示装置202相关联,这取决于该装置的能力。在各个实施例中,窗口管理服务206和虚拟图形驱动程序208分配并管理与多个资源关联的输出数据在多个外部显示装置202上的显示。在这些实施例的一个中,例如,可以在移动计算装置102上显示与资源204a关联的输出数据,可以在一个外部显示装置202a上显示与资源204b关联的输出数据,并且在另一个外部显示装置202b上显示与资源204c关联的输出数据。在这些实施例的又一个中,窗口管理装置206根据资源204a的类型识别用于显示由资源204a产生的输出数据的其中一个外部显示装置202。例如,窗口管理服务206可以确定呈现视频的资源类型可以显示在电视屏幕上,而呈现字处理应用的资源类型可以呈现在膝上型计算机的显示器上。
现参考图3B,框图描述提供具有变化的分辨率的虚拟屏幕空间310、312a_n的虚拟屏幕210的移动计算装置102的一个实施例。在该实施例中,虚拟屏幕210包括对应于分辨率为320像素X240像素的移动计算装置102的本地显示201的本地显示屏幕空间310。虚拟屏幕210还包括对应于分辨率为1024像素X 768像素的外部显示装置202的显示的扩展屏幕312a,对应于分辨率为800像素X600像素的外部显示装置202的显示的扩展屏幕312n-l,以及对应于分辨率为640像素X480像素的外部显示装置202的显示的扩展屏幕312η。在许多实施例中,虚拟屏幕210可以包括具有任意分辨率的本地显示屏幕空间310和任意数量的扩展屏幕312。整个虚拟屏幕空间210可以映射到单个虚拟屏幕帧缓存器中,尽管也可使用映射到多个缓存器的实施例。现参考图3C,框图描述由虚拟图形驱动程序管理的多个虚拟屏幕空间的逻辑表示的一个实施例。在该实施例中,虚拟图形驱动程序208管理虚拟屏幕帧缓存器中具有不同分辨率的多个虚拟屏幕空间。在该实施例中,移动计算装置的本地显示201是主显示器并且对应扩展屏幕312a的外部显示装置202是次级显示器。在多个实施例中,在本地显示201上显示与本地显示屏幕空间310上的资源204关联的输出数据,并且在与扩展屏幕空间312a关联的外部显示装置202上显示与扩展屏幕空间312a上的资源204关联的输出数 据。现参考图4A,框图描述用于定制动态显示布局的图形用户接口的一个实施例。总的来说,用户选择屏幕空间并且设置参数来配置该空间。在该实施例中,用户从接口元素401选择屏幕空间。在多个实施例中,用户可以通过选择与屏幕空间关联的标签、图标、按钮或者单选按钮,从下拉菜单选择屏幕空间,将屏幕空间的名称键入文本框中,或者使用本领域内的普通技术人员公知的任一其它方法来选择屏幕空间。在另外的实施例中,用户可以创建新的屏幕空间。在此实施例中,用户可以通过选择“添加新显示”按钮403来创建新的屏幕空间,并且可以创建对应于新屏幕空间的接口元素401并且将其添加到图形用户接口。用户可以命名新的屏幕空间,分配对应于该空间的外部显示装置202,并且根据下述方法来配置该屏幕空间。在各个实施例中,图形用户接口可以包括用户操作的接口元素以设置空间的参数。在此实施例中,图形用户接口包括分别用于设置屏幕空间的分辨率和模式的接口元素402和404,并且在许多实施例中,图形用户接口可以包括用于设置诸如z顺序(z-order)或者默认位置的任何其它参数的接口元素。在此实施例中,用户通过从接口元素402选择对应于预定分辨率的单选按钮或者选择单选按钮来定制屏幕分辨率的宽度和高度来设置分辨率。在其他实施例中,用户可以通过下列方式来设置分辨率调整滑动块到期望的分辨率、从表示不同分辨率的屏幕空间的显示的缩略图组中选择缩略图或者点击和拖拉表示屏幕空间的图像边界来改变分辨率。在此实施例中,用户通过从接口元素404选择指示用户是否希望该屏幕空间是主显示、扩展显示、镜像主显示的显示或者被禁用的显示的单选按钮来设置模式,但是还可以使用任何其它模式。在其他实施例中,用户可以通过选择表示模式的图标、从下拉菜单中选择模式或者任一其它方法来设置该模式。现参考图4B,框图描述用于定制网格显示布局的图形用户接口的一个实施例。用户可以根据图4A中描述的任何方法来选择屏幕空间以进行定制。在许多实施例中,图形用户接口允许用户配置在其中显示多个资源204的每一个的输出数据的网格中单元的数量、尺寸和位置。在一个实施例中,用户可以通过选择用户接口元素406 (“添加单元”按钮)向网格中添加单元。每当用户选择“添加单元”按钮,新的编号的单元就出现在该网格中,并且用户可以通过选择单元和用户接口元素407 (“删除单元”按钮)来删除该单元。在许多实施例中,用户可以配置每个单元的位置、分辨率或者二者都配置。在一些实施例中,用户可以通过拖放单元到期望位置来配置位置。在其他实施例中,用户可以通过输入对应于单元的期望位置的数值来配置位置。例如,用户可以选择单元并且输入位置“2-1”来指示该单元应该出现在网格的第二行和第一列。在所有这些实施例中,剩余的单元可以响应于用户选择的新单元的位置来自动重新调整它们的位置。在各个实施例中,用户可以配置每个单元的分辨率。在一些实施例中,用户通过将单元的边界拖放到期望尺寸来配置分辨率。在其他实施例中,用户通过从一组分辨率中进行选择来配置分辨率。图4B中所示实施例描述了采用对应于一组分辨率的单选按钮形式的用户接口元素408,包括允许用户定制单元分辨率的单选按钮。在其他实施例中,用户可以通过选择复选框、点击按钮、从下拉菜单选择分辨率或者输入信息的任何其它公知方法来选择分辨率。·
在许多实施例中,用户可以在外部显示装置202显示输出数据之前配置网格显示布局。例如,用户可以在用户配置文件(user profile)中选择与多个资源204中每个资源的优选的单元位置和分辨率关联的设置。当执行资源时,窗口管理服务206可以查询该用户配置文件以确定如何显示资源204的用户接口。在其他实施例中,用户可以在通过外部显示装置202显示输出数据期间配置网格显示布局。例如,在移动计算装置102执行资源204时,用户可以选择或者修改与资源204的优选单元位置及分辨率关联的设置。在各个实施例中,用户可以将资源204的输出数据与网格显示布局中的单元相关联。在一些实施例中,用户可以选择网格显示布局上的单元并且将资源和该单元相关联,使得资源的输出数据出现在所选择的单元中。在一些实施例中,用户可以将多个资源与同一个单元相关联并且将资源进行优先级排序来确定如果正在执行所关联的资源中不只一个资源时在该单元中将显示哪个输出数据。在其他实施例中,用户可以通过将资源所产生的输出数据拖到网格显示布局中的单元来将该资源和该单元相关联。窗口管理服务206可以存储单元和资源204之间的关联。现参考图4C,屏幕截图描述定制的网格显示布局的一个实施例。在该实施例中,该网格显不布局包括对应于图4B中的网格布局中的单兀1、2和3的日历表420、文件浏览器422和电子邮件424的输出数据。在该实施例中,没有资源与对应于单元4 (空单元)的接口元素430相关联。在各种不同实施例中,空单元包括用于选择其输出数据在该单元中显示的资源的用户接口元素430。在一些实施例中,用户接口元素430列举其输出数据可在外部显示装置202上显示的至少一个资源204。在又一个实施例中,当用户经由用户接口元素430选择资源204时,窗口管理系统206接收所选择资源204的标识。窗口管理系统206可以将所选择资源与对应于用户接口元素430的单元相关联。甚至在又一个实施例中,与虚拟图形驱动程序208通信的窗口管理系统206管理所选择资源和对应于用户接口元素430的单元之间的关联以便将与该资源关联的数据输出到该可定制网格显示布局中的单元。现参考图4D,屏幕截图描述由移动计算装置102提供的动态显示布局的一个实施例,移动计算装置102在移动计算装置102的本地显示201上显示多个资源204的每一个所产生的输出数据。在该实施例中,因为移动计算装置102不接附任何外部显示装置,所以所有资源的输出数据都可以被显示在本地显示201上。在该实施例中,该动态布局包括四个窗口 440、442、444和446,这四个窗口包含在移动计算装置102上执行的四个资源所产生的输出数据。在各个实施例中,当首先执行资源204时,用于资源204的窗口 440可以动态显示在移动计算装置204的本地显示201上。在许多实施例中,用户可以通过例如拖放窗口 440的边界到期望位置来动态地重新调整窗口 440的大小。在另外的实施例中,用户可以将窗口 440移动到本地显示201上的任一位置。在一些实施例中,用户可以将窗口 440移动到与移动计算装置102连接的外部显示装置202。在一些实施例中,用户可以在移动计算装置102的本地显示201上最小化该窗口 440。在许多实施例中,用户可以将焦点从显示与一个资源204a关联的输出数据的窗口改变到显示与另一个资源204b关联的输出数据的窗口。用户可以通过选择包含期望资源204b的输出数据的窗口来改变焦点。当用户改变焦点到资源204b时,资源204b所产生的输出数据可以遮掩移动计算装置102上执行的其它资源204所产生的输出数据。在又一个实施例中,如本领域内技术人员显而易见的,可以以任何方式和/或形式在任何显示上调整窗口 440-448,如在本地显示201或者外部显示装置202上。 现参考图4E,流程图描述用于通过外部显示装置202显示由在移动计算装置102上执行的资源204产生的输出数据的方法中所采取的步骤的一个实施例。总的来说,该方法包括由移动计算装置102执行多个资源204的步骤(步骤402)。该方法包括由外部显示装置202在用户可配置显示布局中显示所接收的、与多个资源204的每一个相关联的输出数据的步骤(步骤404)。仍参考图4E,并且更具体地,移动计算装置102执行多个资源204(步骤402)。在一个实施例中,移动计算装置102大体上同时执行多个资源204。在又一个实施例中,移动计算装置102大体上同时执行多个资源204的子集。外部显示装置在用户可配置网格显示布局中显示所接收的、由多个资源204的每一个产生的输出数据(步骤404)。如上文结合图2A-2D所述的,在各个实施例中,移动计算装置102对于多个资源204的每一个确定是否将与资源204关联的输出数据传送到外部显示装置202。在一些实施例中,窗口管理服务206管理虚拟屏幕空间210中资源204的大小、位置、分辨率或者任何其它特征。在一个实施例中,在移动计算装置102上执行的并且与虚拟图形驱动程序208通信的窗口管理服务206识别外部显示装置202显示其输出数据的资源204。在又一个实施例中,窗口管理服务206从虚拟图形驱动程序208接收接附到移动计算装置102的外部显示装置202的标识。在又一个实施例中,窗口管理服务206评估多个资源204的每一个来确定外部显示装置202是否显示由多个资源204的每一个所产生的输出数据。在又一个实施例中,窗口管理服务206评估与多个资源204的每一个关联的设置来确定外部显示装置202是否应该显示由多个资源204的每一个所产生的输出数据。在又一个实施例中,窗口管理服务206评估与多个资源204的每一个关联的用户指定的优选设置来确定外部显示装置202是否显示由多个资源204的每一个所产生的输出数据。在一个实施例中,窗口管理服务206指示虚拟图形驱动程序208将由移动计算装置上执行的资源204所产生的输出数据转发给外部显示装置202用于显示。在又一个实施例中,响应于确定与资源204关联的设置指示由资源204所产生的输出数据能显示在外部显示装置202上,窗口管理服务206指示虚拟图形驱动程序208将由资源204所产生的输出数据转发给该外部显示装置。在又一个实施例中,多个设置与资源204相关联,多个设置的每一个指示由资源204所产生的输出数据是否应该被显示在多类外部显示装置202的每一个上;例如,与资源204关联的第一设置可以指示如果外部显示装置202是电视屏幕则所产生的输出数据应该被显示在外部显示装置202上,以及与资源204a关联的第二设置可以指示如果外部显示装置202具有低于特定尺寸和/或分辨率的显示则所产生的输出数据不应该被显示在外部显示装置202上。在一个实施例中,窗口管理服务206指示虚拟图形驱动程序208将资源204的输出数据以网格显示布局显示在外部显示装置202上。在又一个实施例中,窗口管理服务206指示虚拟图形驱动程序208将资源204的输出数据以动态显示布局显示在外部显示装置202上。在又一个实施例中,窗口管理服务206评估与多个资源204的每一个关联的设置来识别显示布局,外部显示装置202应该根据该显示布局来显示多个资源204的每一个所产生的输出数据。在又一个实施例中,窗口管理服务206评估与多个资源204的每一个关联的用户指定的优选设置来识别显示布局,外部显示装置202应该根据该显示布局显示由多 个资源204的每一个产生的输出数据;例如,在一些实施例中,用户指定外部显示装置202应该为其显示输出数据的多个资源204的子集。在一个实施例中,虚拟图形驱动程序208将由移动计算装置上执行的资源204所产生的输出数据转发给外部显示装置202用于显示。在又一个实施例中,虚拟图形驱动程序208指示移动计算装置102的操作系统来将由移动计算装置上执行的资源204所产生的输出数据转发给外部显示装置202用于显示。在又一个实施例中,虚拟图形驱动程序208将显示布局的标识转发给外部显示装置202。在又一个实施例中,虚拟图形驱动程序208指示移动计算装置102的操作系统来将显示布局的标识转发给外部显示装置202。现在参考图5A,框图描述用于通过外部显示装置202显示资源204的第二用户接口的系统的一个实施例,该资源204的第二用户接口不同于由正在执行资源204的移动计算装置102显示的资源204的第一用户接口。该系统包括窗口管理服务206、虚拟图形驱动程序208和可以提供不只一个用户接口 502a-n的资源204。在一些实施例中,资源204可以提供为移动计算装置102上的本地显示201优化的用户接口 502a。在其他实施例中,资源204可以提供为在外部显示装置202上显示而优化的用户接口 504b。在另外的实施例中,资源204可以提供为在不同外部显示装置202上显示而优化的用户接口 502a-n。在各个实施例中,窗口管理服务206提供允许资源动态改变用户接口 502的功能,以适用于将要显示由资源所产生输出数据的外部显示装置202。在一些实施例中,窗口管理服务206向资源204指示将显示该资源的输出数据的外部显示装置202的属性。作为响应,该资源204提供适用于该外部显示装置202的属性的用户接口 502b-n,其可以不同于提供给移动计算装置的本地显示201的用户接口 502a。在各个实施例中,移动计算装置101可以执行多个资源204,并且每个资源可以提供为在移动计算装置102的本地显示201或者在外部显示装置202上显示而优化的多个用户接口 502。尽管图2A、2B、2C、2D、3A、3B、3C、4A、4B、4C、4D和 4E考虑了本地显示 201,但在一些
实施例中,移动装置102可以显示与本地显示201功能大体上相同的虚拟桌面。例如,虚拟桌面可以具有与本地显示201大体上相同的外观和感觉。在一些情况下,虚拟桌面可能与本地显示201没有明显区别。可以将虚拟桌面显示在本地显示201的上下文中,使得该虚拟桌面看起来像本地显示201。在这种情况下,用户可以以该用户与本地显示201交互的大体上相同的方式来与虚拟桌面进行交互。C部分在移动装置上显示虚拟资源并且与虚拟资源交互现参考图5A,框图描述用于在客户机102b上执行和显示多个资源204a_204n (总的称为204)的系统的一个实施例。在一个实施例中,该系统包括客户机102a,其中客户机102a是移动计算装置并且和另一个客户机102b相连。在一个实施例中,客户机102b包括移动计算装置102a所接附的对接坞。在又一个实施例中,客户机102b包括用于例如经由如上文结合图1A-1C描述的蓝牙、Wi-Fi或者其他联网协议与移动计算装置102a无线通信的接收器。在又一个实施例中,客户机102b包括如上文结合图1B-1C所述的外部显示124。
在一个实施例中,一个或者多个资源204在移动计算装置102a上执行。在又一个实施例中,移动计算装置102a访问客户机102b的硬件和/或软件组件来执行资源204。在又一个实施例中,资源204的一种版本在客户机102b上执行。在一个实施例中,该客户机102b上的资源204的版本可以是在客户机102b上安装的资源204的本地副本。在又一个实施例中,客户机102b上的该版本可以提供比移动计算装置102a上可用的资源204的功能更多的功能。在又一个实施例中,客户机102b上的该版本可以是产生与在移动计算装置102a上执行的资源204相同输出数据的另一个资源204b。在又一个实施例中,移动计算装置102a和客户机102b共享硬件和软件资源以执行一个或者多个资源204。在一些实施例中,虚拟资源可以是虚拟桌面或者上下文桌面。虚拟桌面可以是在客户机102b上执行的资源。在一些实施例中,虚拟桌面可包括表示在远程计算机上执行的应用的一个或多个图标。该远程计算机可以是客户机102b或者可以是另一个服务器或客户机。尽管图5A考虑了包括虚拟资源的客户机102b,但在一些实施例中,该虚拟资源驻留在服务器上。资源204的执行可以以多种方式转移到客户机102b。在一个实施例中,在移动计算装置102a上终止资源204的执行,并且启动客户机102b上的资源204的版本。在又一个实施例中,将与移动计算装置102a上的资源204的执行状态有关的信息和/或数据值传送到客户机102b。在又一个实施例中,不将任何与移动计算装置102a上的资源204的执行状态有关的信息和/或数据值传送到客户机102b。在这样的实施例中,当该执行从移动计算装置102a转移到客户机102b时,不将最近的更新传送到客户机102b。在又一个实施例中,当该执行从移动计算装置102a转移到客户机102b时,将资源204传送到客户机102b。在一个实施例中,当将资源传送到客户机102b时,还传送与执行状态有关的信息和/或数据值。在一些实施例中,客户机102b包括不由移动计算装置102a提供的操作或者性能特征。在这些实施例的一个中,相比于移动计算装置102a的处理器和存储器,客户机102b具有更强大的处理器和/或更大的存储器。在这些实施例的又一个中,客户机102b提供对移动计算装置102a不可用的I/O装置、显示装置、安装装置、或者其他外围设备,诸如键盘或者打印机。在这些实施例的又一个中,客户机102b可以提供期望由移动计算装置102a的用户所使用的特征、资源或者外围设备。例如用户可能想要访问在经由网络上的连接可用的远程机器上提供的文件或者应用程序。在这些实施例的又一个中,客户机102b提供对于移动计算装置102a或移动计算装置102a的用户不可用的、网络104上的机器的访问,诸如机器群38中的那些机器。在一个实施例中,一个或者多个资源204可以在移动计算装置102a上的虚拟机中执行。在又一个实施例中,移动计算装置102a上执行的虚拟机基于远程位置提供对计算环境的访问。在又一个实施例中,在移动计算装置102a中存储的应用程序执行以访问与移动计算装置102a上提供的计算环境关联的数据。在又一个实施例中,移动计算装置102a执行虚拟化软件,该虚拟化软件的至少一部分被存储在移动计算装置102a上。在又一个实施例中,移动计算装置102a以访问在移动计算装置102a上存储的一个或者多个应用程序通过执行操作系统来提供对计算环境的访问,该操作系统和一个或者多个应用程序可以访问在移动计算装置102a中存储的用户数据。在一个实施例中,响应于在移动计算装置102a中存储的数据,移动计算装置102a执行虚拟机。在又一个实施例中,移动计算装置响应于在移动计算装置102a中存储的策略·来执行虚拟机。在又一个实施例中,移动计算装置102a执行提供对所请求资源或者计算环境的访问的虚拟机,该虚拟机是响应于在移动计算装置102a中存储的虚拟机映像来执行的。在又一个实施例中,移动计算装置102a将虚拟机的执行转移到客户机102b。在又一个实施例中,客户机102b连接到移动计算装置102a、执行虚拟机,并且响应于在移动计算装置102a中存储的数据提供对计算环境的访问。在一个实施例中,客户机102b可以安装移动计算装置102a的存储装置作为客户机102b的可移除硬盘驱动器或者存储单元128。在一些实施例中,移动计算装置102a可以是客户机102b的即插即用装置(PnP),使得诸如由美国华盛顿州Redmond的微软公司出品的PnP协议用在移动计算装置102a和客户机102b之间,诸如经由I/O装置130a_130n或者网络接口 118。在一个实施例中,客户机102基于移动计算装置102a中提供的便携计算环境来提供对计算环境的访问。客户机102b基于虚拟化软件、虚拟机映像或者用户数据来执行虚拟机和虚拟化层以执行计算环境。在一些实施例中,客户机102b包括用于访问在移动计算装置102a中存储的数据的收发器。在一些实施例中,移动计算装置102a上的加载机制基于在移动计算装置102a中存储的便携计算环境来驱动客户机102b上的计算环境的建立。在其他实施例中,客户机102b的加载机制驱动计算环境的建立。在又一个实施例中,移动计算装置102a上的加载机制和客户机102b的加载机制一起运行来建立计算环境。现参考图5B,框图描述用于在远程服务器106上执行资源204并且在客户计算装置102b上显示输出数据的系统的一个实施例。在一个实施例中,该系统包括移动计算装置102a、客户机102b和服务器106。移动计算装置102a可以以参考图5A所述的多种可能方式接附或者连接到客户机102b。在一个实施例中,客户机102b连接到远程服务器106以请求由服务器106执行资源204。在一些实施例中,服务器106可以具有在客户机102b中不存在的操作或者性能特征。在又一个实施例中,服务器106具有对于客户机102b不可用的更强的硬件和/或软件资源。在又一个实施例中,服务器106提供对于客户机102b并不直接可用的网络104上机器的访问,诸如机器群38中的那些机器。
在一个实施例中,一个或者多个资源204在客户机102b上执行。在又一个实施例中,一个或者多个资源204可以包括应用程序以建立与服务器106的远程连接。客户机102b可以执行、操作或者以其他方式提供该应用,其可以是任意类型和/或形式的软件、程序或者可执行指令,诸如任意类型和/或形式的web浏览器、基于web的客户端、客户端-服务器应用程序、瘦客户端计算客户端、ActiveX控件或者Java小程序,或者能够在客户机102上执行的任何其它类型和/或形式的可执行指令。在一些实施例中,该应用可以是在服务器106上代表客户机102执行的基于服务器的应用程序。在一个实施例中,服务器106可以使用表示层协议和客户机102通信,该表示层协议诸如由美国佛罗里达州Ft. Lauderdale的Citrix系统公司出品的独立计算架构(ICA)协议或者由美国华盛顿州Redmond的微软公司出品的远程桌面协议(RDP)。在一个实施例中,如上文结合图5A所述的,可以在客户机102b的虚拟机中执行一个或者多个资源204。在又一个实施例中,服务器106连接到客户机102b、执行虚拟机并且提供对计算环境的访问。在一个实施例中,服务器106可以将虚拟机映像传输给客户机102b。在又一个实施例中,服务器106将在服务器106上执行的虚拟机映像所产生的输出数据传输到客户机102b。在又一个实施例中,该虚拟机映像包括移动计算装置102a的多个··资源204每一个的版本。以一种或者多种方式显示来自资源204的执行的输出数据。在一个实施例中,在移动计算装置102a上显示通过在服务器106上执行资源204a所产生的输出数据。在又一个实施例中,在客户机102b上显示通过在服务器106上执行资源204所产生的输出数据。在又一个实施例中,在客户机102b上将来自服务器106的输出数据显示为计算环境的一部分。在又一个实施例中,在移动计算装置102a上本地执行资源204并且将其显示在客户机102b上。在一些实施例中,同时在移动计算装置102a和客户机102b上显示输出数据。在图5A和图5B中,资源204可以是虚拟桌面,例如本文所述的任何虚拟桌面。在其他实施例中,资源204可以是由在服务器106或客户机102上执行的虚拟桌面应用绘制的鼠标指针。在其他实施例中,资源204可以是由在服务器106或客户机102上执行的虚拟桌面应用绘制的虚拟触控板。现参考图6A,框图描述用于在服务器上远程执行移动计算装置的资源并且在移动计算装置、客户机或者二者上显示由资源产生的输出数据的系统的一个实施例。在一个实施例中,该系统包括通过连接104与客户机102b通信的移动计算装置102a。该系统还包括服务器106,该服务器106通过连接104’与移动计算装置102a通信并且通过连接104”与客户机102b通信。在一个实施例中,一个或者多个资源204在移动计算装置102a上执行。在又一个实施例中,一个或者多个资源204可以包括用于与客户机102b建立连接104和/或与服务器106建立连接104’的应用程序。在一个实施例中,移动计算装置102a或者客户机102b可以执行、操作或者以其他方式提供该应用,其可以是任意类型和/或形式的软件、程序、或者可执行指令,诸如任意类型和/或形式的web浏览器、基于web的客户端、客户端-服务器应用程序、瘦客户端计算客户端、ActiveX控件或者Java小程序,或者能够在移动计算装置102上执行的任意类型和/或形式的可执行指令。在一些实施例中,该可以是代表移动计算装置102a或者客户机102b在服务器106上执行的基于服务器或者基于远程的应用程序。在一个实施例中,服务器106可以使用任何表示层协议与移动计算装置102a或者客户机102b通信,所述表示层协议例如由位于美国佛罗里达州Ft. Lauderdale的CitrixSystems公司出品的独立计算架构(ICA)协议或由位于美国华盛顿州Redmond的微软公司出品的远程桌面协议(RDP)。在一个实施例中,如上文结合图5A所述的,一个或者多个资源204可以在移动计算装置102a上的虚拟机中执行。在一个实施例中,移动计算装置102a将虚拟机的执行转移到客户机102b和/或服务器106。在又一个实施例中,移动计算装置102a将虚拟机中资源204的执行转移到客户机102b和/或服务器106。在一个实施例中,当移动计算装置102a接附到客户机102b时,移动计算装置102a可以将所接附客户机102b的标识传输给服务器106。服务器106可以识别客户机102b上的虚拟机。在一些实施例中,服务器106可以断开与在移动计算装置102a上的虚拟机中执行的资源204的连接并且将资源204连接到客户机102b上的虚拟机。在这些实施例中,服务器106可以将关于该资源的执行状态的信息传输给客户机102b上的虚拟机。在其他实施例中,服务器106可以通过将虚拟机从移 动计算装置102a断开连接并且将该虚拟机连接到客户机102b来转移在虚拟机中执行的资源的执行。在一个实施例中,服务器106向客户机102b提供对计算环境的访问。这样的计算环境的例子是由美国佛罗里达州Ft. Lauderdale的Citrix公司发行的XenDesktop。在又一个实施例中,对于移动计算装置102a在服务器106上执行的资源204的输出通过连接104”被显示为客户机102b上的计算环境的一部分。在又一个实施例中,对于移动计算装置102a的在服务器106上执行的资源204的输出通过连接104”被显示在客户机102b上但不作为计算环境的一部分。现参考图6B,流程图描述用于在服务器上远程执行移动计算装置的资源并且将资源的输出显示在客户装置上的方法所采取步骤的一个实施例。该方法包括由移动计算装置102a上的代理经由第一会话连接到服务器106,以在服务器106上执行资源204和显示所执行的资源204的输出数据的步骤(步骤810)。该方法还包括由该移动计算装置102a上的代理经由第二会话连接到客户机102b的步骤(步骤812)。该方法还包括由客户机102b上执行的代理与服务器106建立第三会话的步骤(步骤814)。在一个实施例中,服务器106在客户机102b上显示计算环境。在又一个实施例中,计算环境包括显示在远程服务器106上执行资源204所产生的输出。在一个实施例中,移动计算装置102a上的代理或者应用程序连接到服务器106,以建立连接104’(步骤810)。在又一个实施例中,在移动计算装置102a和服务器之间建立第一会话,用于移动计算装置102a访问服务器106上的资源204。在又一个实施例中,移动计算装置102a经由第一会话在服务器106上执行资源。在又一个实施例中,该执行的输出被显示在移动计算装置102a上。在进一步的实施例中。该执行的输出被传输到客户机102b。移动计算装置102a上的代理通过连接104经由第二会话与客户机102b相连接(步骤812)。在一个实施例中,通过建立第一会话的代理来建立第二会话。在又一个实施例中,通过与建立第一会话的代理不同的代理来建立第二会话。在一个实施例中,第一会话和第二会话根据基本相同的协议工作。在又一个实施例中,第一会话和第二会话根据不同的协议工作。在又一个实施例中,可以从多种可能的连接中选择移动计算装置102a和客户机102b之间的连接。在一个实施例中,客户机102b上的代理通过网络104”在客户机102b和服务器106之间建立第三会话(步骤814)。在又一个实施例中,服务器106通过连接104”将计算环境传输到客户机102b。在示例性实施例中,计算环境是由美国佛罗里达州Ft. Lauderdale的Citrix Systems公司发行的XenDesktop。在一个实施例中,将执行资源204所产生的输出数据合并到对计算环境的显示中。在又一个实施例中,将执行资源204所产生的输出数据从服务器106通过连接104”传输到客户机计算装置102b。在又一个实施例中,将执行资源204所产生的输出数据显示在不同于计算环境的客户机102b上。在一个实施例中,在移动计算装置102a上执行资源204并且将执行资源204所产生的输出数据通过连接104’传输到服务器106,以通过连接104”将其转发到客户机102b用来显示。在又一个实施例中,将资源的执行转移到或者重新定位到客户机102b。在又一个实施例中,将资源204所产生的输出数据显示在计算环境的内部。在又一个实施例中,将 资源204的执行转移到服务器106。在一个实施例中,将来自服务器106上该执行的输出数据传输到移动计算装置102a和/或客户机102b。在图6A和6B中,在一些实施例中,资源204可以是虚拟桌面,例如本文所述的任意虚拟桌面。在其他实施例中,资源204可以是由在服务器106或客户机102上执行的虚拟桌面应用绘制的鼠标指针。在其他实施例中,资源204可以是由在服务器106或客户机102上执行的虚拟桌面应用绘制的虚拟触控板。图7A描述用于显示和激活在移动计算装置和服务器之间的断开的会话的系统的一个实施例。在图7A中,框图描述了包括移动计算装置102和服务器106的系统900,但是任一类型的客户机可以用来替代移动计算装置102。在一个实施例中,移动计算装置102包括输入模块908、客户端进程910、网络模块912和显示模块924。输入模块908提供用于移动计算装置102的用户与移动计算装置102交互的接口,例如请求从服务器106远程执行会话918中的应用916。现参考图7A,更详细地,用于显示和激活断开的会话的服务器106包括网络模块920、数据存储926和服务器进程922。网络模块920接收与移动计算装置102的用户关联的认证信息。数据存储926列举与用户关联的至少一个断开的会话。服务器进程922将与该用户关联的至少一个断开的会话的图形表示传输到移动计算装置102。服务器进程922接收连接到该至少一个断开的会话的请求。服务器进程922将移动计算装置102连接到在数据存储926中列举的所请求的至少一个断开的会话。在一个实施例中,会话918是在服务器106上执行的进程,支持一个或者多个应用916的执行。在一些实施例中,会话918的执行包括桌面应用916的执行,通过该桌面应用916可以开始其他应用916的执行。在其他实施例中,会话918是移动计算装置102和由在服务器106上执行的虚拟机提供的寄载桌面之间的会话。在这些实施例的一个中,桌面会话918’在会话918中执行。在这些实施例的又一个中,一个或者多个应用916在会话918中执行的桌面会话918’中执行。在其他实施例中,会话918’可以在第二会话918中执行。在这些实施例的一个中,例如服务器106上的虚拟机执行会话918并且第二会话918’(诸如在其中执行多个应用916的桌面会话)在会话918中执行。在又一个实施例中,会话918包括单个应用916的执行的实例。在一个实施例中,输入模块908例如是提供让用户选择的一个或者多个图标或菜单选择的图形用户接口。在又一个实施例中,至少一个图标或者菜单选择表示可用于远程执行的特定应用916。在又一个实施例中,选择图标或者菜单选择开始向服务器106传送登录请求以访问该应用916。在又一个实施例中,图标或者菜单选择不代表任何特定的应用916,而是表示通常的服务器106登录程序。在又一个实施例中,输入模块108是非图形用户接口。在此实施例中,用户可以输入命令来向服务器106发送登录请求。输入命令可包括键入预定的字符集或者在输入装置(例如键盘或者小键盘)上按下特定的按键序列。在一个实施例中,登录请求包括用户提供的认证信息。在又一个实施例中,输入模块908接受用户提供的认证信息的输入,其可以包括任何类型的认证信息,包括但不限于任何用户名-密码/PIN组合,语音采样、一次性通行码、生物学数据、数字证书或者智能卡数据。在一些实施例中,输入模块908与附加的硬件外围设备通信以促进用户认证信息的接受。可以从移动计算装置传输与用户相关的信息并且由服务器接收该信息。在一个实·施例中,输入模块908接受认证信息并且将其提供给客户端进程910。在又一个实施例中,客户端进程910管理远程执行的会话的移动计算装置侧功能。在又一个实施例中,客户端进程910向服务器106转发包括认证信息和终止或者断开会话918的请求的用户输入。又一个实施例中,服务器106接收与移动计算装置102的用户相关的信息并且响应于该信息来认证用户。在又一个实施例中,客户端进程910处理从服务器106接收的数据,例如通过将在会话918中产生的图形输出数据或者来自会话918的输出数据的图形表示转发到显示模块924。网络模块912提供移动计算装置102和服务器106之间的通信。网络模块920为服务器106提供通信功能。在一个实施例中,网络模块912发送用户输入,所述用户输入例如认证信息和访问、断开或者终止服务器106上执行的会话918的请求。在又一个实施例中,网络模块912还接收来自会话918的输出数据并且将该输出数据转发给客户端进程910。在又一个实施例中,网络模块912将用户输入封装到预定协议中并且根据预定协议重组会话输出数据,以用于传输到服务器106。在又一个实施例中,网络模块912对输出的传输进行加密并且对输入的传输进行解密。在一些实施例中,网络模块920接收与移动计算装置102的用户相关的认证信息。在又一个实施例中,网络模块920通过一个或者多个数据网络或者链路921接收来自移动计算装置102的通信。在又一个实施例中,网络模块920将输出数据传输到移动计算装置102。在又一个实施例中,网络模块920加密输出的通信并且解密输入的通信。在一个实施例中,服务器106的网络模块920通过网络104与移动计算装置102的网络模块912进行通信。在又一个实施例中,一旦输入的通信根据协议被解密或获取(如果需要),则视情况将其转发到会话918或者服务器进程922。在一些实施例中,网络模块920以用于传输的协议封装输出的通信,并从根据通信协议接收的传输中获取输入的数据。在这些实施例的一个中,网络模块920使用至少一个通信协议来封装数据。在这些实施例的又一个中,能够封装在移动计算装置和主机服务之间的通信中所使用的次级协议的第一通信协议确保在中断的网络连接期间保持数据。在这些实施例的又一个中,缓冲移动计算装置和主机服务之间传输的数据。例如当移动计算装置在同一网络中的不同接入点之间漫游时,在临时中断的网络连接期间保持被缓冲的数据。类似地,在又一个实施例中,当移动计算装置在网络之间切换时(例如从有线网络到无线网络),在到主机服务的连接临时中断期间保持所缓冲的数据。在这些实施例的又一中,当由于服务器侧组件的故障(例如服务器侧代理的故障)、由于系统中超时或者由于其他原因导致网络连接中断时还可以保持所缓冲的数据。在这些实施例的又一个中,网络模块920通过将次级协议封装在第一通信协议中来提供会话持续性和可靠性。在一个实施例中,响应于认证信息来识别已经与用户关联的至少一个之前断开的应用会话。在又一个实施例中,响应于认证信息来识别已经与用户关联的至少一个之前断开的桌面会话。在一些实施例中,移动计算装置102接收由至少一个之前断开的会话所产生的输出数据。在这些实施例的一个中,在至少一个之前断开的会话中执行的应用产生输出数据。在这些实施例的又一个中,移动计算装置102使用接收的输出数据产生至少一个之前断开的会话的图形表示。仍在这些实施例的又一个中,移动计算装置102接收输出数据的图形表示。移动计算装置102可以接收和显示表示与用户关联的至少一个之前断开的会话 的图形表示。在一个实施例中,显示模块924将至少一个之前断开的会话的图形表示显示给移动计算装置102的用户。在一些实施例中,将输出数据显示给用户。在其他实施例中,将图形用户接口和所接收的图形表示一起显示给用户。在又一个实施例中,所接收的图形表示包括图形用户接口元素。在又一个实施例中,将由断开的会话所产生的输出数据的基于文本的表示显示给用户。在一个实施例中,显示模块924显示来自远程执行的会话918的、由应用916或者会话918所产生的输出数据。在又一个实施例中,显示模块924将从客户端进程910接收的输出数据直接转发给显示装置,诸如上文结合图IB和IC描述的显示装置124,或者其它适合形式的显示装置。在一些实施例中,将所接收的输出数据加密、封装在协议中,或者既加密又封装在协议中。在这些实施例的一个中,显示模块924首先操作输出数据,使得输出数据可以由诸如计算机视频卡的标准显示适配器来解析。用户可以请求连接到至少一个之前断开的会话,并且可以将该请求传输到服务器。在一个实施例中,移动计算装置102的用户选择要连接的图形表示。在又一个实施例中,移动计算装置102响应于由用户所选择的对应图形表示的选择来传输连接请求。响应于所传输的请求,接收由与该用户关联的至少一个之前断开的会话所产生的输出数据。如下文所述的,接收和显示由会话以及由在会话中执行的应用产生的输出数据。服务器进程922管理会话918的执行和终止以及那些会话918到移动计算装置102的连接和断开连接。在一个实施例中,服务器进程922可以初始化新会话918、将移动计算装置102从会话918断开、检测移动计算装置102从会话918断开、定位用户已经断开的会话918、定位移动计算装置102的用户连接到客户机计算装置102b的会话918、接收连接到断开的会话的请求,并且将用户连接到断开的会话918。在又一个实施例中,根据用户个人偏好和授权权限来配置会话918。输出发送器924将输出数据从会话918通过网络模块920传输到移动计算装置102。在一个实施例中,输出发送器924拦截会话918中产生的输出数据并且确定哪个移动计算装置102连接到会话918。如果会话918连接到移动计算装置102,输出发送器924经由网络模块920将输出数据传输到所连接的装置。在一个实施例中,如果会话918没有连接到移动计算装置102,则输出发送器924抛弃该输出数据并且等待接收后来的输出数据。在又一个实施例中,如果会话918没有连接到移动计算装置102,则输出发送器924忽略所有进一步的输出数据,直到输出发送器924接收到会话918已经连接到移动计算装置102的通知为止。在一些实施例中,如下文详细描述的,如果会话918没有连接到移动计算装置102,则输出发送器924将与用户关联的至少一个断开的会话的图形表示传输到移动计算装置102。在一个实施例中,输出发送器924存储该数据,直到输出发送器924接收到会话918已经连接到移动计算装置102的通知。在又一个实施例中,输出发送器924尝试向移动计算装置102发送输出数据,直到服务器进程922通知输出发送器924移动计算装置102已经从服务器106断开连接为止。在又一个实施例中,输出发送器924通过查询数据存储926来确定会话918连接到哪个移动计算装置102或者其他客户机(如果有的话)。 在又一个实施例中,服务器进程922通过查询数据存储926来确定会话918连接到哪个移动计算装置102或者其他客户机(如果有的话),并且将该确定传输到输出发送器924。响应于该信息来识别与用户关联的至少一个已经断开的会话。在一个实施例中,与用户关联的至少一个已经断开的会话持续执行至少一个应用。在又一个实施例中,与用户关联的至少一个已经断开的会话持续执行桌面会话。在又一个实施例中,服务器106识别至少一个断开的会话。在一个实施例中,识别第一服务器上执行的第一会话。在一些实施例中,识别在第二服务器上执行的第二会话。在这些实施例的一个中,第一会话和第二会话的其中一个被识别为断开的会话。在其他实施例中,识别在第一服务器上执行的第二会话。在这些实施例的一个中,第一会话和第二会话的其中一个被识别为断开的会话。数据存储926包括和由用户启动的会话918相关的信息。在一个实施例中,将数据存储926存储在易失性或者非易失性存储器中。在又一个实施例中,将数据存储926分布在多个服务器上。表I示出在示例性数据存储926的一部分中包含的数据。表I
会话会话I会话2会话3
用户ID用户I用户2用户I
客户机ID第一客户机第一客户机~
客户机地址 172. 16. O. 50172. 16. O. 50
状态活动的断开活动的
字处理器111电子表格
进程号I3权利要求
1.一种用于使用鼠标指针与在平板计算装置上的虚拟桌面内所显示的远程应用交互的方法,所述方法包括 在平板计算装置上本地执行虚拟桌面,所述平板计算装置执行产生和显示本地桌面的操作系统,其中,所述平板计算装置操作系统没有考虑鼠标指针; 在所述本地桌面的上下文中显示所述虚拟桌面,使得所述虚拟桌面看起来像所述本地桌面; 在所述虚拟桌面内显示鼠标指针; 由所述虚拟桌面接收来自所述平板计算装置的用户的、在所述虚拟桌面的上下文中执行远程应用的请求; 通过虚通道将所接收的用户请求传输到远程服务器,其中,所述远程服务器响应于接收所述用户请求来执行所述远程应用并且将由所述远程应用产生的应用输出传输到所述平板计算装置; 将所接收的应用输出显示在所述虚拟桌面的上下文中所显示的应用输出窗口中;以及 使用所述鼠标指针与所述远程应用交互。
2.根据权利要求I所述的方法,还包括在所述虚拟桌面内显示表示远程应用的图标。
3.根据权利要求2所述的方法,其中,对应于所显示的图标的远程应用在本地桌面内不可用。
4.根据权利要求2所述的方法,其中,在所述虚拟桌面内显示表示远程应用的图标还包括 从所述远程服务器接收对应于所述平板计算装置的用户的用户应用列表; 在所述虚拟桌面上显示应用图标,每个应用图标对应于一个所列出的用户应用。
5.根据权利要求I所述的方法,其中本地执行所述虚拟桌面还包括执行包含所述本地桌面的一个或多个定制的虚拟桌面。
6.根据权利要求5所述的方法,其中,执行包含一个或多个定制的虚拟桌面还包括在所述虚拟桌面的背景上显示所述本地桌面的墙纸。
7.根据权利要求5所述的方法,其中,执行包含一个或多个定制的虚拟桌面还包括根据所述本地桌面的主题在所述虚拟桌面内显示元素。
8.根据权利要求I所述的方法,还包括用虚拟触控板控制所述鼠标指针。
9.根据权利要求8所述的方法,其中,所述虚拟触控板包括在所述虚拟桌面内显示的触控板的交互式图像。
10.根据权利要求I所述的方法,还包括用外部输入装置控制所述鼠标指针。
11.根据权利要求10所述的方法,其中,所述外部输入装置包括虚拟触控板。
12.一种用于使用鼠标指针与在虚拟桌面内所显示的远程应用交互的方法,所述方法包括 在平板计算装置上本地执行虚拟桌面,所述平板计算装置执行产生和显示本地桌面并且不考虑鼠标指针的操作系统; 在所述本地桌面的上下文中显示所述虚拟桌面,使得所述虚拟桌面看起来像所述本地桌面; 在所述虚拟桌面内显示鼠标指针,其中,所述平板计算装置的用户使用在所述虚拟桌面内所显示的交互式触控板来控制所述鼠标指针; 由所述虚拟桌面接收来自所述用户的、在所述虚拟桌面的上下文中执行远程应用的请求; 通过虚通道将所接收的用户请求传输到远程服务器,其中,所述远程服务器响应于接收所述用户请求来执行所述远程应用并且将由所述远程应用产生的应用输出传输到所述平板计算装置; 将所接收的应用输出显示在所述虚拟桌面的上下文中所显示的应用输出窗口中;以及 使用所述鼠标指针与所述远程应用交互。
13.根据权利要求12所述的方法,还包括在所述虚拟桌面内显示表示远程应用的图标。
14.根据权利要求13所述的方法,其中,在所述虚拟桌面内显示表示远程应用的图标还包括 从所述远程服务器接收对应于所述平板计算装置的用户的用户应用列表; 在所述虚拟桌面上显示应用图标,每个应用图标对应于一个所列出的用户应用。
15.一种用于使用鼠标指针与在虚拟桌面内所显示的远程应用交互的系统,所述系统包括 平板计算装置,其执行产生和显示本地桌面的操作系统,其中,所述平板计算装置操作系统不考虑鼠标指针; 虚拟桌面,其由虚拟桌面应用产生并且被显示在所述本地桌面的上下文中,使得所述虚拟桌面看起来像所述本地桌面,其中所述虚拟桌面包含鼠标指针;以及所述虚拟桌面应用,其在所述平板计算装置上本地执行以便 接收来自所述平板计算装置的用户的、在所述虚拟桌面的上下文中执行远程应用的请求, 通过虚通道将所接收的用户请求传输到远程服务器, 接收由在服务器上执行的所述远程应用产生的应用输出, 将所接收的应用输出显示在所述虚拟桌面的上下文中所显示的应用输出窗口中;以及 使用所述鼠标指针与所述远程应用交互。
16.根据权利要求15所述的系统,其中所述虚拟桌面还包括虚拟触控板。
17.根据权利要求16所述的系统,其中用户使用所述虚拟触控板控制所述鼠标指针的移动。
18.根据权利要求17所述的系统,其中,控制鼠标指针的移动还包括捕获来自所述虚拟触控板的用户输入并且根据所捕获的用户输入重新定位所述鼠标指针。
19.根据权利要求15所述的系统,其中所述虚拟桌面还包括表示远程应用的图标。
20.根据权利要求15所述的系统,其中,所述远程服务响应于接收所述用户请求来执行所述远程应用。
全文摘要
由在平板计算装置上本地执行的虚拟桌面应用产生的虚拟桌面还可显示远程应用。该平板计算装置执行没有考虑鼠标指针且显示本地桌面的操作系统。在许多情况下,虚拟桌面被显示在平板计算装置上,使得虚拟桌面看起来像本地桌面。因此,虚拟桌面包括可被用于与远程应用交互的鼠标指针。当远程应用在远程服务器上执行时,它们产生图形应用输出。该图形应用输出被传输到平板计算装置并且被显示在虚拟桌面内所显示的应用输出窗口中。使用虚拟触控板或其他虚拟输入装置,用户可以经由在虚拟桌面上显示的应用输出来与远程应用进行交互。
文档编号G06F9/44GK102918490SQ201180027146
公开日2013年2月6日 申请日期2011年4月1日 优先权日2010年4月1日
发明者G·平托, D·科瑞斯基, A·玛拉诺 申请人:思杰系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1