虚拟桌面配置和操作技术的制作方法

文档序号:6435362阅读:108来源:国知局
专利名称:虚拟桌面配置和操作技术的制作方法
技术领域
本发明涉及计算机领域,尤其涉及计算机中的虚拟机。
技术背景
虚拟机平台通过在每一操作系统自己的虚拟机内运行该操作系统来启用多个客操作系统在物理机上的同时执行。可以在虚拟机中提供的一个示例性服务是虚拟桌面会话。虚拟桌面会话本质上是在虚拟机内运行的个人计算机环境;然而,客操作系统的图形用户界面被发送至远程客户机。该体系结构类似于远程桌面环境;然而,每个用户被给予他们自己的客操作系统,而不是使多个用户同时连接到同一操作系统。
许多顾客部署虚拟桌面会话以便减少桌面部署的所有权的总成本。例如,虚拟桌面会话允许顾客(例如公司)购买具有便宜硬件和极少本地软件的计算机系统,因为软件在虚拟桌面主机(例如,虚拟桌面服务器)上执行。而且,由于虚拟桌面是从中央位置控制的,因此管理员能从中央位置较容易地访问和管理服务器。部署虚拟桌面环境的一个主要问题在于,在虚拟机可被远程客户机访问之前,虚拟机需要预先配置有多个设置。这些配置步骤中的一些是乏味的并且难以实行,因为客操作系统缺乏被远程配置的方式。手动地或经由定制脚本来配置一些虚拟桌面是麻烦的;这样配置几千台虚拟机则是管理上的噩梦。 因此,用于配置和控制虚拟桌面的技术是合乎需要的。发明内容
一示例性的实施例描述了被配置成部署虚拟桌面会话的计算机系统。在所示实施例中,计算机系统可包括、但不限于与计算机可读存储介质耦合的逻辑处理器。该示例性实施例中的计算机可读存储介质可包括、但不限于在由逻辑处理器执行时使虚拟化平台建立到包括客操作系统的虚拟机的分区间通信信道的指令,其中虚拟机被配置成自动地信任经由分区间通信信道接收的消息而无需验证这些消息;在由逻辑处理器执行时使虚拟化平台经由分区间通信信道将桌面配置信息发送至虚拟机的指令;在由虚拟机中的虚拟处理器执行时使虚拟桌面配置服务按照接收到的虚拟桌面配置信息来配置客操作系统的指令; 以及在由虚拟机中的虚拟处理器执行时使客操作系统与客户机建立虚拟桌面会话的指令。 除以上之外,权利要求书具体实施方式
和附图中也描述了其他技术。
除了计算机系统以外,一示例性实施例提供了包括用于部署虚拟桌面的可执行指令的计算机可读存储介质。在该示例中,计算机可读存储介质包括、但不限于在由逻辑处理器执行时使虚拟化平台在虚拟机内执行客操作系统的指令;在由逻辑处理器执行时使虚拟化平台建立存储器的共享区域的指令,所述存储器的共享区域在虚拟化平台和虚拟机之间共享;在由虚拟处理器执行时在虚拟机和客户机之间建立虚拟桌面会话的指令;以及在由逻辑处理器执行时使虚拟化平台通过经由存储器的共享区域向虚拟机发送命令来管理虚拟桌面会话的指令。除以上之外,权利要求书具体实施方式
和附图中也描述了其他技术。
在另一示例实施例中,提供了用于部署虚拟桌面会话的操作过程。在该例中,操作过程包括、但不限于执行主操作系统,其中所述主操作系统被分配至第一网络域;由系统管理程序实例化包括客操作系统的虚拟机;在主操作系统和虚拟机之间建立存储器的共享区域;将命名管道端点连接至存储器的共享区域;在客操作系统和客户机之间开始虚拟桌面会话,其中客操作系统被分配给第二网络域;以及由主操作系统经由第一命名管道接口将用于控制虚拟桌面会话的命令发送至虚拟机。除以上之外,权利要求书具体实施方式
和附图中也描述了其他技术。
本领域技术人员将理解,此处所描述的一个或多个方面可包括但不限于用于实现此处所引用的方面的电路和/或编程;该电路和/或编程实质上可以是配置成实现本文所述方面的硬件、软件和/或固件的任何组合,这取决于系统设计者的设计选择。
以上是概述,并且因此必然包含细节的简化、一般化及省略。本领域技术人员将明白,本概述只是说明性的并且决不旨在是限制性的。


图1示出了一示例计算机系统。
图2示出了描述一示例性虚拟机服务器的操作环境。
图3示出了描述一示例性虚拟机服务器的操作环境。
图4示出了虚拟桌面服务器的高级框图。
图5示出了数据中心的高级框图。
图6示出了虚拟桌面服务器的高级框图。
图7描绘了一操作过程。
图8描绘了图7的操作过程的替换实施例。
图9描绘了一操作过程。
图10描绘了图9的操作过程的替换实施例。
图11描绘了一操作过程。
图12描绘了图11的操作过程的替换实施例。
具体实施方式
本发明可使用一个或多个计算机系统。图1及以下讨论旨在提供可在其中实现所公开的主题的合适计算环境的简要概括描述。
贯穿本说明书使用的术语电路可包括诸如硬件中断控制器、硬盘驱动器、网络适配器、图形处理器、基于硬件的视频/音频编解码器等硬件组件,以及用于操作这些硬件的固件。术语电路还可包括由固件和/或软件来配置的微处理器、专用集成电路、以及处理器,例如多核通用处理单元的核(读取并执行程序指令的单元)。处理器可由从例如RAM、 ROM、固件和/或大容量存储等存储器加载的指令来配置,从而具体化可用于配置逻辑处理器来执行功能的逻辑。在其中电路包括硬件和软件的组合的示例实施例中,实现者可以编写具体化逻辑的源代码,该源代码随后被编译成可由硬件执行的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件实现的功能或软件实现的功能之间几乎没有差别的地步,因而选择硬件还是软件来实现此处描述的功能只是一个设计选择。换言之,由于本领域的技术人员可以理解软件进程可被变换成等效的硬件结构,且硬件结构本身可被变换成等效的软件进程,因此选择硬件实现或是软件实现留给了实现者。
现在参考图1,描绘了示例性计算系统100。计算机系统100可包括处理器102, 例如,执行核。尽管示出了一个处理器102,但在其他实施例中,计算机系统100可具有多个逻辑处理器,例如每一处理器衬底有多个执行核,和/或各自可具有多个执行核的多个处理器衬底。如图1所示,各种计算机可读存储介质110可由一个或多个系统总线互连,系统总线将各种系统组件耦合到逻辑处理器102。系统总线可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。在示例实施例中,计算机可读存储介质110可以包括例如随机存取存储器(RAM) 104、存储设备106 (例如电机硬盘驱动器、固态硬盘驱动器等)、固件108 (例如闪速RAM或ROM)、以及可移动存储设备118 (例如CD-ROM、软盘、DVD、闪速驱动器、外部存储设备等)。本领域的技术人员应当理解,可使用其他类型的计算机可读存储介质,如磁带盒、闪存卡、和/或数字视频盘。
计算机可读存储介质110可提供对计算机100的处理器可执行指令122、数据结构、程序模块和其他数据的非易失性和易失性存储。基本输入/输出系统(BIOS) 120可被存储在固件108中,它包含帮助在诸如启动期间在计算机系统100内的各元件之间传递信息的基本例程。包括操作系统和/或应用程序的多个程序可被存储在固件108、存储设备 106、RAM 104和/或可移动存储设备118上,并且可由逻辑处理器102来执行。
命令和信息可由计算机100通过输入设备116来接收,输入设备可包括但不限于键盘和定点设备。其他输入设备可以包括话筒、操纵杆、游戏手柄、扫描仪等等。这些和其它输入设备常通过耦合到系统总线的串行端口接口连接到逻辑处理器102,但也可通过其它接口连接,如并行端口、游戏端口或通用串行总线(USB)。显示器或其他类型的显示设备也可经由诸如视频适配器等可以是图形处理器112的一部分或可连接到图形处理器单元112 的接口来连接到系统总线。除了显示器之外,计算机通常包括其他外围输出设备,如扬声器和打印机(未示出)。图1的示例性系统还包括主适配器、小型计算机系统接口(SCSI)总线和连接到SCSI总线的外部存储设备。
计算机系统100可使用至一个或多个远程计算机,如远程计算机的逻辑连接在网络化环境中操作。远程计算机可以是另一计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点,并且通常包括上面关于计算机系统100所述的许多或全部元件。
当在LAN或WAN联网环境中使用时,计算机系统100可通过网络接口卡114连接至LAN或WAN。NIC 114可以是内置或外置的,其可以连接到系统总线。在联网环境中,相对于计算机系统100所描述的程序模块或其部分可被储存在远程存储器存储设备中。可以理解,所描述的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。 虽然可构想本发明的许多实施例尤其适用于计算机化的系统,然而在本说明中不意味着将本发明限于那些实施例。
转向图2,示出了可被用来生成虚拟机的示例性虚拟机服务器。在该实施例中,系统管理程序微内核202可被配置成控制并仲裁对计算机系统200的硬件的访问。系统管理程序微内核202可以隔离一个分区中的进程,使其不能访问另一分区的资源。例如,系统管理程序微内核202可以生成称为分区的执行环境,如子分区1到子分区N(其中N是大于1的整数)。在该实施例中,子分区是系统管理程序微内核202支持的基本隔离单元。每一子分区可被映射到在系统管理程序微内核202控制之下的一组硬件资源,例如,存储器、设备、逻辑处理器周期等。在各实施例中,系统管理程序微内核202可以是独立的软件产品、 操作系统的一部分、嵌入在主板的固件中、专用集成电路、或其组合。
系统管理程序微内核202可以通过限制物理计算机系统中的客操作系统的存储器视图来实施分区划分。当系统管理程序微内核202实例化一虚拟机时,它可以将系统物理存储器(SPM)的页(例如,具有开始和结束地址的固定长度存储器块)分配给虚拟机作为客物理存储器(GPM)。在该实施例中,客操作系统的受限的系统存储器视图受到系统管理程序微内核202所控制。术语客物理存储器是从虚拟机的视点描述存储器页的简写方式, 术语系统物理存储器是从物理系统的观点描述存储器页的简写方式。因此,被分配给虚拟机的存储器页会有客物理地址(客操作系统所使用的地址)和系统物理地址(页的实际地址)。
客操作系统可以虚拟化客物理存储器。虚拟存储器是一种管理技术,其允许操作系统过度提交存储器,并且给予应用程序对连续的工作存储器的唯一访问。在虚拟化环境中,客操作系统可以使用一个或多个页表来将称为虚拟客地址的虚拟地址转换成客物理地址。在该例中,存储器地址可以具有客虚拟地址、客物理地址以及系统物理地址。
在所描绘的示例中,父分区组件也可被认为是类似于Xen的开源系统管理程序的域0,父分区组件可以包括主机204。主机204可以是操作系统(或一组配置实用程序),主机204可以被配置成通过使用虚拟化服务提供者228 (VSP)向子分区1_N中执行的客操作系统提供资源。VPS 228(—般在开源社区中被称为后端驱动程序)可用来通过虚拟化服务客户机(VSC)(在开源社区或类虚拟化设备中一般称为前端驱动程序)对到硬件资源的接口进行多路复用。如图所示,虚拟化服务客户机可以在客操作系统的上下文中执行。然而, 这些驱动程序不同于客操作系统中的其余驱动程序,因为向它们提供了系统管理程序而非客操作系统。在一示例性实施例中,虚拟化服务提供者2 与虚拟化服务客户机216和218 通信所使用的路径可以被视为虚拟化路径。
如图所示,仿真器234(例如虚拟化IDE设备、虚拟化视频适配器、虚拟化NIC等) 可被配置成在主机204中运行并被附连到可供客操作系统220和222使用的资源。例如, 当客操作系统触摸被映射到设备的寄存器所处的存储器位置或被映射到设备的存储器时, 微内核系统管理程序202可截取该请求并将该客操作系统试图写入的值传递给相关联的仿真器。该例中的资源可以被认为是到虚拟设备的接口,并且其中该设备可以被附连到主板。该例中仿真器的使用可以被视为仿真路径。仿真路径与虚拟化路径相比是低效的,因为和在VSP和VSC之间传递消息相比,它需要更多的CPU资源来对设备进行仿真。例如,可以将为了经由仿真路径把值写入盘所需的被映射至寄存器的存储器上的几百个动作减少为在虚拟化路径中从VSC被传递至VSP的单个消息。
每一子分区可包括一个或多个虚拟处理器Q30和23 ,客操作系统Q20和222) 可管理并调度线程以便在这些线程上执行。一般而言,虚拟处理器是提供具有特定体系结构的物理处理器的表示的可执行指令以及相关联的状态信息。例如,一个虚拟机可具有带有英特尔x86处理器特性的虚拟处理器,而另一虚拟处理器可具有PowerPC处理器的特性。 本例中的虚拟处理器可被映射到计算机系统的逻辑处理器,使得实现虚拟处理器的指令将受到逻辑处理器的支持。由此,在包括多个逻辑处理器的实施例中,各虚拟处理器可以由各逻辑处理器同时执行,同时例如其他逻辑处理器执行系统管理程序指令。分区中虚拟处理器和存储器的组合可被认为是虚拟机。
客操作系统Q20和222)可包括任何操作系统,如来自微软 、苹果 、开源社区等的操作系统。客操作系统可包括用户/内核操作模式,并且可具有能包括调度器、存储器管理器等的内核。一般而言,内核模式可包括逻辑处理器中的执行模式,该执行模式授予至少对特权处理器指令的访问。每一客操作系统可具有相关联的文件系统,该文件系统上存储有诸如终端服务器、电子商务服务器、电子邮件服务器等应用以及客操作系统本身。客操作系统可调度线程来在虚拟处理器上执行,并且可实现此类应用的实例。
现在参考图3,它示出虚拟机服务器的一个替代体系结构。图3描绘了与图2的组件相类似的组件;然而,在该示例实施例中,系统管理程序302可包括微内核组件以及和图2的主机204中的组件(如虚拟化服务提供者2 和设备驱动程序224)相类似的组件, 而管理操作系统304可包含例如用于配置系统管理程序302的配置实用程序。在该体系结构中,系统管理程序302可以执行与图2的系统管理程序微内核202相同或相似的功能 ’然而,在该体系结构中,系统管理程序304可被配置成向在子分区中执行的客操作系统提供资源。图3的系统管理程序302可以是独立的软件产品、操作系统的一部分、嵌入在主板的固件内,或者系统管理程序302的一部分可以由专用集成电路来实现。
现在参考图4,它示出虚拟桌面服务器400的高级框图。在一实施例中,虚拟桌面服务器400可以被配置成部署到客户机(例如,诸如智能电话等移动设备、具有和图1所示组件相似的组件的计算机系统等等)的虚拟桌面会话(VDQ。简言之,虚拟桌面技术使用户能与虚拟机中运行的客操作系统远程地交互。不同于远程桌面会话,在虚拟桌面会话中,只有一个用户登录到客操作系统中并且对其具有总控制,例如,用户可以作为管理员运行并且在该客操作系统上具有完全权限。在所示例子中,虚拟桌面服务器400可以具有与图2和图3的计算机系统200或300类似的组件。在所示例子中,虚拟化平台402是如上在图2和图3中所述的虚拟化基础结构组件的逻辑抽象。在以下章节中被描述为在虚拟化平台402 “以内”的功能可以在图2和图3所述的一个或多个元件中实现。例如,虚拟桌面管理器430可以在图2的主机204中实现。更具体地,虚拟桌面管理器430可以在父分区中运行的主操作系统中实现。
启动虚拟桌面会话要求在虚拟机内对客操作系统进行实例化。这一示例性实施例中,虚拟桌面管理器430(例如,处理器可执行指令的模块)可以响应于请求而启动虚拟机 414 (连同客操作系统428)。虚拟桌面管理器430可以在逻辑处理器上执行,并且可以指示虚拟化平台402(例如微内核系统管理程序20 为分区分配存储器。虚拟化平台402可以在虚拟机414中执行并设置虚拟设备,并且将引导加载程序加载到虚拟机存储器中。引导加载程序可以在虚拟处理器上执行并且加载客操作系统428。例如,可以加载会话管理器 408,会话管理器408可以实例化诸如运行时子系统似6等环境子系统,运行时子系统426 可以包括诸如操作系统核410等内核模式部分。例如,在一实施例中,环境子系统可以被配置成将服务的子集展示给应用程序并提供到内核420的接入点。当加载客操作系统428 时,引导加载程序可以退出,并将对虚拟机的控制转交给客操作系统428。客操作系统4 可以执行图4所示的各个模块,并且将其自身配置为主存一虚拟桌面会话。例如,客操作系统4 可以包括使远程呈现引擎406和/或配置服务434在引导时启动的注册表值。
虚拟桌面会话可以在客操作系统4 通过网络从客户机接收到连接请求时启动。 连接请求首先可由远程呈现引擎406处理。远程呈现引擎406可以被配置成监听连接消息并将它们转发至会话管理器408。如图2所示,当会话被生成时,远程呈现引擎406可以运行该会话的协议栈实例。一般而言,协议栈实例可被配置成将用户界面输出路由到相关联的客户机、以及将从相关联的客户机接收到的用户输入路由到操作系统内核410。简言之, 操作系统内核410可以被配置成管理屏幕输出收集来自键盘、鼠标和其它设备的输入。
用户凭证(诸如用户名/ 口令组合)可由远程呈现引擎406接收并被传递至会话管理器408。会话管理器408可以将凭证传递至登录过程,登录过程可以将凭证路由至认证引擎424以进行验证。认证引擎似4可以生成系统令牌,系统令牌可以在每当用户尝试执行一进程以确定用户是否具有运行该进程或线程的安全凭证时使用。例如,当进程或线程尝试获得访问时(例如,打开、关闭、删除和/或修改例如文件、设置或应用程序这样的对象),该线程或进程可由安全子系统422认证。安全子系统422可以相对于与对象相关联的访问控制列表来检验系统令牌,并且基于系统令牌中的信息和访问控制列表的比较来确定线程是否具有许可。如果安全子系统422确定线程被授权,则允许该线程访问该对象。
继续对图4的描述,在一实施例中,操作系统内核410可以包括图形显示界面 416 (OTI)和输入子系统412。在一示例实施例中,输入子系统412可以被配置成经由虚拟桌面会话的协议栈实例从客户机接收用户输入,并将该输入发送至操作系统内核410。在一些实施例中,用户输入可包括指示绝对和/或相对鼠标移动命令、鼠标坐标、鼠标点击、 键盘信号、操纵杆移动信号等的信号。例如图标上的鼠标双击等用户输入可被操作系统内核410接收,并且输入子系统412可被配置成确定图标位于与该双击相关联的坐标处。输入子系统412随后可被配置成向可执行与该图标相关联的应用的进程的运行时子系统4 发送通知。
绘制命令可从应用程序和/或桌面被接收,并由⑶I 416处理。⑶I 416 —般可包括能生成图形对象绘制命令的进程。在该示例实施例中,GDI 416可以被配置成将命令传递给远程显示子系统418,该远程显示子系统418可以为会话实例化显示驱动程序。在一示例实施例中,远程显示子系统418可被配置成包括虚拟显示驱动程序,虚拟显示驱动程序可被配置成接收绘制命令并将它们发送至客户机。
图4中还示出配置服务434。在一示例性实施例中,配置服务434可用于设置客操作系统428以便在客户机连接前实施虚拟桌面会话。例如,配置服务434可以在客操作系统428内运行,并且在客操作系统4 引导时执行。由于特定的配置设置需要管理特权, 因此可以将配置服务434配置成作为具有系统范围特权的进程来运行。配置服务434可采取的一些示例性动作包括、但不限于以下动作将用户的帐户标识符添加至客操作系统 428的管理员用户列表;将帐户标识符添加至已授权的虚拟桌面用户列表;设置注册表值; 开启客操作系统防火墙;以及将远程呈现引擎406监听连接的端口打开。在以下段落中更详细地描述了配置服务434。
在一示例性实施例中,可以在虚拟化平台402和客操作系统4 之间建立通信信道以便配置和控制客操作系统428。由于远程用户可以对虚拟机414具有完全控制,因此需要在适当位置有安全性,以确保用于配置和控制客操作系统428的任何信道不能也用来攻击虚拟化平台402或连接到内部网络的其它计算机系统。传统上,使用联网的通信信道来设置和控制客操作系统428。然而,当客操作系统4 不与虚拟化平台402处于同一网络域中时,网络信道难以部署,且虚拟化平台402被配置成拒绝域外的传入的连接请求。通过使用不是基于网络的通信信道,客户机(虚拟桌面会话)无需具有对虚拟化平台402的域的任何访问,在虚拟化平台402处维持服务提供者的全部“高度安全的”数据。
在一示例性实施例中,可以使用分区间通信信道404来与配置服务器434通信,以便配置和/或管理虚拟桌面会话。分区间通信信道404可以被配置成由虚拟机414隐式地信任,而不被虚拟化平台402所信任。在该例中,可以将例如数据和/或命令等信息容易地路由至客操作系统428,而无需验证该信息。另一方面,可以在虚拟化平台402采取动作之前,验证和认证从虚拟机414接收到的数据。此为,由于分区间通信信道404不使用联网, 因此客操作系统4 可以被排除在内部网络以外。
分区间通信信道404可以被虚拟机414隐式地信任(即,经由信道接收到的信息是固有地已认证/确认的),因为只有虚拟化平台402可以创建分区间通信信道404。例如, 在一实施例中,可以将分区间通信信道404至少部分地实现为在虚拟机414和虚拟化平台 402之间共享的存储器区域。在共享的存储器区域中,可以实现一个或多个环缓冲区,并将这些缓冲区映射至虚拟化平台402和虚拟机414,作为在虚拟化平台402和虚拟机414之间的全双工通信信道。在一示例性实施例中,分区间通信信道可以包括在题为“Partition Bus (分区总线)”的第7,689,800号美国专利中描述的特征,该专利的内容通过引用被完全结合于此。
虚拟化平台402可以将信息写至可由虚拟机414读取的分区间通信信道404。在一示例性实施例中,分区间通信信道404可以是基于消息的。也就是说,虚拟化平台402和虚拟机414可以被配置成将数据分组写至分区间通信信道404。在同一个或另一个示例性实施例中,分区间通信信道404可以是事件驱动的。在该配置中,当信息被写入信道时,可以指示接收者通过例如图2的系统管理程序202来从分区间通信信道404读取信息。
现在参见图5,它示出数据中心的高级框图,数据中心包括虚拟桌面服务器400、 虚拟桌面服务器502、许可服务器504、中介服务器508、网关512和客户机514。数据中心可被配置成部署到客户机的虚拟桌面会话。在所示例子中,虚拟化平台402、虚拟桌面服务器502、许可服务器404、中介服务器408和网关512可以是内联网的一部分,用于登录到这些系统中的用户凭证可以是同一域(即基础结构域520)的成员。基础结构域520以虚线示出,将虚拟桌面服务器400切成两半,以说明在一示例性实施例中,虚拟机414可以是一个不同的域的一部分,或者不是任何域的部分。
数据中心可以包括内部网络,其将多个虚拟桌面服务器(502和400)耦合到中介服务器508和许可服务器504,虚拟桌面服务器可包括类似于图2或3所示组件的组件。如本领域的技术人员可理解,尽管示出了两个虚拟桌面服务器,但数据中心可具有更多个虚拟桌面服务器。同时,尽管虚拟桌面服务器400被示出为运行一个虚拟机014),但是每个虚拟桌面服务器可以同时主存许多虚拟机。或者换句话说,数据中心可以有M个虚拟桌面服务器(其中M是大于1的整数),M个虚拟化主机的每一个可以主存N个虚拟机(其中N 也是大于1的整数)。
中介服务器508可以充当客户机514到内联网的接口。简言之,中介服务器508可以包括与关于图1所述的组件相似的组件。中介服务器508可以具有将其对接到诸如因特网等公共网络的网络适配器,以及将其对接到内部网络(即,内联网)的另一网络适配器。在该例中,中介服务器508可以充当内部网络的网关,从而允许虚拟桌面服务器和许可服务器504远离公共网络。
当客户机514的用户希望虚拟桌面会话时,他或她可以点击图标,客户机514可以将一个或多个信息分组发送至中介服务器508。中介服务器508可以包括软件指令模块,软件指令在执行时使逻辑处理器选择一个适当的虚拟化主机来实例化虚拟机以主存虚拟桌面会话。可以收集用户凭证(例如用户名和口令组合),中介服务器508可以检验会话数据库510以确定数据中心是否包括与诸如用户名/ 口令组合这样的用户凭证相关联的任何断开的虚拟桌面会话。如果会话数据库510包括与用户凭证相关联的断开的虚拟桌面会话, 则中介服务器508可以向具有该断开会话的虚拟化主机发送一信号,并且指示它执行虚拟机。如果会话数据库510不具有指示用户的断开会话的信息,则中介服务器508可以选择一适当的虚拟桌面服务器,例如,具有可用来实例化虚拟机以主存虚拟桌面会话的资源的服务器。
虚拟化平台402可以实例化虚拟机414,并且在虚拟处理器上执行客操作系统 428。回过头参考图4,客操作系统4 可以运行远程呈现引擎406 ;将虚拟NIC 516的因特网协议(IP)地址返回至中介服务器508 ;并且等待来自客户机514的连接。中介服务器 508可以在信息分组中将虚拟NIC 516的IP地址返回至客户机514,使客户机514的逻辑处理器将客户机重定向至IP地址虚拟机414。网关512可以接收连接请求并将它转发至虚拟 NIC 516。
在至少一个示例性实施例中,会话管理器408可以被配置成检验客户机514在启动虚拟桌面会话之前是否与有效的许可证相关联。远程呈现引擎406可以从客户机514接收许可证(或与许可证相关联的信息),并将该信息发送至虚拟化平台402,虚拟化平台402 可以将许可证(或与许可证相关联的信息)发送至许可服务器504。许可服务器514可以包括许可证确认引擎506,许可证确认引擎506可以被配置成确定与客户机514相关联的许可证是否有效。如果许可证是有效的,许可证确认引擎506可以将信号发回虚拟桌面服务器400,并且可以启动虚拟桌面会话。在这一点上,远程呈现引擎406可以将指示客操作系统4 的图形用户界面的一个或多个信息分组流传送到客户机514,并且从客户机514接收指示用户输入的一个或多个信息分组。
在一示例性实施例中,当虚拟化平台402从中介服务器508接收一请求以实例化虚拟机时,虚拟桌面管理器430可以执行命令和/或信息,并且经由分区间通信信道404将命令和/或信息发送至虚拟机414以便配置客操作系统4 来实施虚拟桌面会话。配置服务434可以接收该命令和/或信息,并且相应地配置客操作系统428。例如,虚拟桌面管理器430可以发送尝试连接的用户的身份、保护客操作系统428的防火墙的所需设置、注册表值、允许用户操作的应用程序的列表、用来启用虚拟桌面会话并且用来将用户的身份添加至已授权的虚拟桌面用户列表的命令、等等。配置服务434可以在虚拟处理器上执行并且改变适当的设置。
一旦虚拟桌面会话在运行时,虚拟桌面管理器430就可以经由分区间通信信道 404来管理运行的虚拟桌面会话。例如,虚拟桌面管理器430可以向虚拟机414发布命令,诸如使客操作系统4 关闭、断开用户、重置客操作系统4 等的命令。在同一个或另一个实施例中,虚拟桌面管理器430可以管理虚拟桌面会话,接收虚拟机414的状态信息、来自远程远程呈现引擎406的状态信息,并且/或者将控制虚拟桌面会话的命令发送至配置服务434。例如,虚拟桌面管理器430可以接收虚拟机414的指示虚拟机414是否在运行、暂停、就绪、引导的状态信息,以及可被发送至客户机的IP地址列表。此外,虚拟桌面管理器 430可以接收客操作系统428的状态信息,诸如登录到虚拟桌面会话的用户的身份,并且可以将该信息的一些或全部传送至中介服务器508。
现在参考图6,它示出示例性的分区间通信信道404配置的高级示图。在所示实施例中,分区间通信信道404可以用共享的存储器区域602来实现,共享的存储器区域602可以包括由环缓冲区实现的通信信道,该环缓冲区被映射到虚拟机414和虚拟化平台402两者。如图所示,在一示例性实施例中,虚拟桌面服务提供者604和虚拟桌面服务客户机606 可以被配置成发送/接收经由共享存储器区域602传递的消息。虚拟桌面服务提供者604 和虚拟桌面服务客户机606以虚线示出以表示它们被认为是任选的,在一实施例中,它们的功能可被虚拟桌面管理器430和配置服务434所包含。服务器命名管道端点608和客户机命名管道端点610也以虚线示出。这些虚线也用来表示这些元件也被视为是任选的。在一示例性实施例中,服务器命名管道端点608和客户机命名管道端点610可以附连到虚拟桌面服务提供者604和虚拟桌面服务客户机606,以及/或者可以被直接连到虚拟桌面管理器430和配置服务434和共享存储器区域602。同样,RPC存根612和614也以虚线示出以表明它们也被认为是任选的。在该示例性实施例中,虚拟桌面管理器430和配置服务434 可以被配置成将远程过程调用(RPC)发布到虚拟桌面服务提供者604和虚拟桌面服务客户机606。共享存储器区域602可以是可以从例如被分配给虚拟机414的存储器池收集的一个或多个随机存取存储器页。
在一示例性实施例中,虚拟桌面管理器430可以被配置成使用虚拟桌面服务提供者604和虚拟桌面服务客户机608来与配置服务434通信。在该示例性实施例中,虚拟桌面管理器430可以被配置成与虚拟桌面服务提供者604通信,而不是直接与共享存储器区域602通信。在该所示的实施例中,虚拟桌面服务提供者604(例如,可执行指令的内核模式模块)可以在虚拟化平台402和虚拟机414之间创建共享存储器区域602。一般而言, 虚拟桌面服务提供者604被配置成将分组添加至分区间通信信道404和从分区间通信信道 404移除分组,所述分组包含配置信息(即数据和/或命令)。
在一示例性实施例中,虚拟桌面服务提供者604可以使客操作系统4 加载虚拟桌面服务客户机606,虚拟桌面服务提供者604可以创建共享存储器区域602。例如,虚拟桌面服务提供者604可以被配置成将设备标识符注入(即加载)至为输入/输出驱动程序附连到主板而预留的存储器区域中。当客操作系统428引导时,客操作系统428中运行的即插即用管理器可以检测到该设备标识符并且搜索驱动程序储存库,并且找到虚拟化服务提供者606。虚拟化服务提供者606可以加载并设置共享存储器区域602。虚拟桌面服务客户机606可以将分组写至共享存储器区域602。虚拟桌面服务提供者604可以检测该分组,并且可以打开信道。虚拟桌面服务客户机606是另一个可执行指令的内核模式模块,该模块可向配置服务434展示一接口,该接口可用于传递从虚拟桌面服务提供者604接收到的消息。配置服务434可以接收虚拟桌面会话的配置信息,并且可以配置客操作系统4 以便实施与客户机514的虚拟桌面会话。
在另一示例性实施例中,虚拟化平台402和虚拟机414可任选地实现与虚拟桌面服务提供者604和虚拟桌面服务客户机606操作的命名管道接口(608和610)。在该示例性实施例中,分区间通信信道404可以看上去像是命名管道。该配置有助于允许第三方开发者对可附连到命名管道端点的现有代码进行重用。命名管道是用于在两个进程间的通信的概念。在该示例性实施例中,命名管道端点(608和610)可被配置成将消息发布至分区间通信信道404,而不是在进程间进行通信。
在又一示例性实施例中,虚拟桌面管理器430和配置服务434可包括远程过程调用存根(612和614)。在该示例性实施例中,虚拟桌面管理器430可以调用RPC存根612来发起对配置服务434的函数调用。在该示例性实施例中,RPC存根(612和614)可被配置成发起对虚拟桌面服务提供者604和虚拟桌面服务客户机606的函数调用。分区间通信信道404可用于将来自虚拟化平台402的RPC调用隧穿至客操作系统428。
以下是描绘操作过程的一系列流程图。为便于理解,流程图被组织成使得初始流程图通过总体“大图”视点来演示各实现,并且后续的流程图提供以虚线示出的进一步的附加物和/或细节。此外,本领域的技术人员可以理解,虚线所描绘的操作过程被认为是任选的。
图7示出了用于配置虚拟桌面会话的操作过程,包括操作700、702、704、706和 708。操作700开始操作过程,操作702示出建立到包括客操作系统的虚拟机的分区间通信信道,其中虚拟机被配置成自动地信任经由分区间通信信道接收到的消息,而无需认证这些消息。例如且返回图5,在一示例性实施例中,虚拟化平台402可以建立到虚拟机414的分区间通信信道404。例如,虚拟化平台402可以使虚拟机414开启分区间通信信道404。 响应于请求,虚拟机414可为信道分配一个或多个客存储器页,并且接受连接请求。虚拟化平台402和/或虚拟机414然后可将数据写至共享存储器。
在该示例实施例中,虚拟机414可被配置成由于建立信道的方式而隐式地信任经由分区间通信信道404接收到的消息。例如且参考图6,在一示例性实施例中,虚拟化主机 402可以通过影响哪些设备附连到虚拟主板而开启分区间通信信道404。由于虚拟化平台 402是开启这一信道的唯一实体,因此虚拟机414可以隐式地信任,经由该信道接收到的任何信息(例如数据和/或命令)是由控制它的模块所发送的。
在该示例性配置中,由于虚拟化平台402是可将设备标识符注入被分配给IO设备的地址空间中的唯一实体,因此由上述过程建立的所产生的信道可被例如配置服务434隐式地信任。在这点上,配置服务434可以隐式地信任,它经由分区间通信信道404接收到的任何消息实际上是由虚拟桌面管理器430发送到,而无需再经历联网配置中通常使用的授权和认证过程。
转至操作704,它示出经由分区间通信信道将虚拟桌面配置信息发送至虚拟机。例如且再次返回图5,分区间通信信道404可用于将用于设置虚拟桌面会话的配置信息从虚拟化平台402传输至虚拟机414。在一个具体的例子中,虚拟桌面管理器430可以响应于从中介服务器508接收到连接请求而生成配置信息。例如,中介服务器508可以从客户机514 接收连接请求,并且获得用户名/ 口令组合。中介服务器508可以将用户名/ 口令组合发送至虚拟桌面管理器430,后者可以运行并生成配置信息的一个或多个分组,这些分组使配置服务434配置客操作系统428以便实施与客户机514的虚拟桌面会话。
继续图7的描述,操作706示出按照接收到的虚拟桌面配置信息来配置客操作系统。例如且返回图5,虚拟机414可以接收用于设置客操作系统4 来实施虚拟桌面会话的配置信息,并且使用该信息来配置客操作系统428。例如,在客操作系统428内执行的配置服务434可以经由分区间通信信道404接收配置信息,并且用它来设置客操作系统428,使其能从客户机514接收传入的连接请求。
现在转至图7的操作708,它示出建立与客户机的虚拟桌面会话。返回图5,远程呈现引擎406可以监视虚拟NIC 516上的端口是否有来自客户机514的连接请求。响应于接收到请求,远程呈现引擎406可以启动与客户机514的虚拟桌面会话,并且启动将指示客操作系统428的图形用户界面的数据分组流传送至客户机514。
现在参考图8,它示出图7所述操作过程的替代操作过程。该替代操作过程包括附加的操作810和812连同细化操作814-822。如图所示,操作810示出将经由分区间通信信道从虚拟机接收到的虚拟机因特网协议地址发送至客户机。例如且回过头参考图5,在一示例性实施例中,虚拟NIC 516的IP地址可由配置服务434经由分区间通信信道404传送至虚拟桌面管理器430。在该示例性实施例中,虚拟机414的IP地址可由配置服务434通过查询虚拟NIC516获得。配置服务434然后可经由分区间通信信道404将IP地址发送至虚拟桌面管理器430。在一具体的示例实施例中,配置服务434可以接收IP地址并将其传递至图6的虚拟桌面服务客户机606,后者可将IP地址写至共享存储器。虚拟桌面服务提供者604可接收关于消息被写至共享存储器的信号(即,分区间通信信道404可以是基于事件的);访问共享存储器;以及读取IP地址。虚拟桌面服务提供者604然后可将IP地址传递至虚拟桌面管理器430。虚拟桌面管理器430可以执行并将IP地址发送至图4的中介服务器508,后者可将IP地址路由至客户机514。然后,客户机514可尝试连接到该IP地址以实施虚拟桌面会话。
继续图8的描述,操作812示出经由分区间通信信道从虚拟机发送一命令,其中该命令指定了执行客操作系统以下载客操作系统补丁的时间。在一示例性实施例中并且参考图5,图4的补丁管理器432 (例如可执行指令模块)被配置成调度实例化虚拟机414的时间以便供其下载客操作系统428的操作系统补丁。在该示例性实施例中,补丁管理器432 可以被配置成从客操作系统4 接收指示它被调度以经由分区间通信信道404获取补丁的时间的信号,并将该时间保存在存储器中。补丁管理器432可以检测该时间并将其与当前时间相比较。在当前时间与所检测的时间相同的情况下,补丁管理器432可被配置成向虚拟桌面管理器430发送一信号以实例化虚拟机414并且运行客操作系统428。客操作系统 428可以启动更新过程并且经由虚拟NIC 516下载一个或多个补丁。
转至细化操作814,它示出在一示例性实施例中,虚拟桌面配置信息包括用于启用虚拟桌面会话的命令。例如并且回过头参考图5,在示例性实施例中,可能需要配置客操作系统428以允许远程连接。例如,客操作系统4 可能需要设置特定的注册表键以便允许远程连接。在该例中,当配置服务434接收命令以启用远程连接时,配置服务434可以打开客操作系统428的注册表;定位与允许远程连接相关联的注册表键;以及设置该键的允许远程接收机连接的注册表值。
现在转至细化操作816,它示出在一实施例中,虚拟桌面配置信息包括用于将与客户机相关联的用户帐户添加至所允许的虚拟桌面用户列表的命令。例如并且回过头参考图 5,在示例性实施例中,可能需要配置客操作系统428以允许远程连接供用户帐户登录。在该例中,可以对配置服务434进行配置,以启用将会登录的特定用户的远程连接。这增加了另一安全级别,因为客操作系统4 无需用可连接并依赖管理员来保证列表最新的一列用户来预先部署。在该例中,虚拟桌面管理器430可以从图5的中介服务器508接收与客户机514相关联的用户名,并将其写至分区间通信信道404。配置服务434可以在虚拟处理器上执行,并且接收用户名以及将该用户添加至所允许的虚拟桌面用户列表的请求。配置服务434可以在虚拟处理器上执行,并且配置客操作系统428以便将用户名添加至被允许远程地连接至客操作系统428的远程用户列表。
图8的细化步骤818示出,在一实施例中,虚拟桌面配置信息包括用于将与客户机相关联的用户帐户添加至客操作系统的管理员组的命令。例如,在一实施例中,虚拟桌面管理器430可以从图5的中介服务器508接收一个或多个信息分组。在该例中,中介服务器 508可以传送实例化虚拟桌面会话的请求,并且该请求可以包括用户名。在该例中,虚拟桌面管理器430可被配置成将该用户名添加至客操作系统428的管理员列表。例如,管理员可在目录中设立有管理员特权的用户帐户,并将其与一用户名相关联。中介服务器508可以接收该用户名并且在目录中查找该用户帐户;确定用户具有管理员特权;并且将该信息传送至虚拟桌面管理器430。
虚拟桌面管理器430可以使虚拟机414被实例化,并且使分区间通信信道404被建立。虚拟桌面管理器430可以(经由分区间通信信道404)向配置服务434发送一信号, 以便将该用户名添加至客操作系统428的管理员组。然后,配置服务434可以改变与用户名列表相关联的注册表设置以便包括与客户机514相关联的用户名。
继续图8的描述,细化操作820示出,在一实施例中,虚拟配置信息包括用于打开虚拟桌面会话用以接收来自客户机的用户输入的网络端口的命令。例如,在一实施例中,配置服务434可以接收打开端口的命令,使得客户机514可以连接至虚拟机414。配置服务 434可以接收该命令并且在虚拟处理器上执行。配置服务434可以修改网络软件栈以便开启远程呈现引擎406用来接受传入连接的端口。例如,远程呈现引擎406可以被配置成向客操作系统4 注册以使用特定端口。如果该端口是关闭的,客操作系统4 会丢弃接收到的与该端口号相关联的任何数据,并且远程呈现引擎406将不会接收到它。例如,端口会是传输控制协议端口,该端口是充当远程呈现引擎406的通信端点的软件构造。
现在转至细化操作822,它示出在一个实施例中,虚拟桌面配置信息包括用于设置客操作系统防火墙设置的命令。例如并且回过头参考图5,在一示例性实施例中,客操作系统4 可能需要正确地配置防火墙以便允许虚拟桌面连接。例如,客操作系统4 可以运行阻挡传入连接的软件防火墙。在该示例实施例中,配置信息可以包括用于指示配置服务 434将虚拟桌面的例外添加至防火墙的命令。例如,配置服务434可以经由分区间通信信道 404接收该命令,并且可以配置客操作系统的防火墙以允许传入的虚拟桌面连接。
现在参考图9,它示出用于部署虚拟桌面的操作过程。该操作过程以操作900开始,操作902示出在虚拟机内执行客操作系统。例如并且转至图5,虚拟化平台402可以实例化并控制虚拟机414。在虚拟机414内,可以在虚拟处理器上引导客操作系统428,虚拟处理器可以被调度为逻辑处理器上的线程。系统管理程序调度器(例如虚拟化平台402的组件)可以执行并调度指示虚拟处理器的线程以便在逻辑处理器上运行。客操作系统428 然后可在逻辑处理器上执行。
转至操作904,它示出建立在虚拟化平台和虚拟机之间共享的共享存储器区域的操作。例如,并转向图6,可以将分区内通信信道404至少部分地实现为在虚拟机414和虚拟化平台402之间共享的存储器区域602。在一示例性实施例中,在虚拟机414内执行的一个或多个进程以及在虚拟化平台402内执行的一个或多个进程可以异步地访问、独立地访问、和/或同时访问共享存储器区域602。
在一示例性实施例中,通过使用虚拟桌面服务提供者604和虚拟桌面服务客户机 606,可以从至少一个共享存储器区域602建立分区间通信信道404。在该例中,虚拟桌面服务提供者604可以执行并且使虚拟桌面服务客户机606加载和配置共享存储器区域602,使得虚拟桌面服务提供者604可以访问它。虚拟桌面服务客户机606可以在虚拟处理器上执行,并将控制分组写至该存储器区域,后者可被虚拟桌面服务提供者604所检测。类似于前述实施例,在该示例性配置中,由于虚拟化平台402是可将设备标识符注入为虚拟机414内的IO设备分配的地址空间中的唯一实体,因此所产生的信道可被例如配置服务434隐式地信任。在这点上,配置服务434可以自动地认证经由分区间通信信道404接收到的消息,而无需经历联网配置中通常使用的授权和认证过程。
继续图9的描述,操作906示出在虚拟机和客户机之间建立虚拟桌面会话。转至图5,远程呈现引擎406可以监视端口是否有来自客户机514的连接请求。响应于接收到请求,远程呈现引擎406可以与上述类似地启动与客户机514的虚拟桌面会话,并且启动将指示客操作系统428的图形用户界面的数据分组流传送至客户机514。
继续图9的描述,操作908示出通过经由共享存储器区域将命令发送至虚拟机而管理虚拟桌面会话。例如,虚拟桌面管理器430可以接收来自管理员的请求,并且经由共享存储器将命令发送至配置服务434。在一示例性实施例中,该命令可包括、但不限于用于关闭客操作系统428、断开用户、重置客操作系统4 等的命令。除了发送命令以外,虚拟桌面管理器430可以从虚拟机414获得指示其状态、已登录用户的身份等的数据。
图10示出图9所述的操作过程的替换实施例,包括附加的操作/细化1010-1026。 操作1010开始操作过程,且该操作示出经由共享存储器区域将与客户机相关联的用户帐户标识符发送至虚拟机。例如并且参考图5,诸如虚拟桌面管理器430(例如一个或多个可执行指令模块)等虚拟化平台402可以在逻辑处理器上运行,并且从客户机514接收用户帐户标识符。在该例中,用户帐户标识符可以与从客户机514接收到的虚拟桌面连接请求相关联。由于虚拟桌面服务器400可以连接至内联网和基础结构域520的一部分,因此客户机请求会首先由中介服务器508授权和确认,然后被路由至虚拟桌面管理器430。
类似于上述示例性实施例,可以经由共享存储器区域602发送用户帐户标识符 (例如用户名),连同用于把用户帐户标识符添加至客操作系统4 上的管理员用户列表的命令、用于把用户帐户标识符添加至启用虚拟桌面的用户列表的命令、和/或用于和用户名相关联的所允许应用程序的列表。在该例中,配置服务434可以接收用户帐户标识符和任何相关联的命令,并且相应地配置客操作系统428。
再次参照图10,操作1012示出将经由共享存储器区域接收到的虚拟桌面状态信息发送至中介服务器。例如,并且转至图5,在一示例性实施例中,虚拟化平台402可以包括可执行指令(例如虚拟桌面管理器430),所述可执行指令可以在逻辑处理器上执行并且使虚拟桌面会话的状态信息被发送至中介服务器508。例如,虚拟桌面会话的状态信息可包括描述会话是活动还是处于断开状态的信息、与登录到客操作系统428的用户相关联的用户名、和/或用户已登录到客操作系统428中的时间长度等等。在该示例性实施例中,虚拟桌面状态信息可由虚拟桌面管理器430从共享存储器区域602接收。中介服务器508可以接收该数据并更新会话数据库510。在一示例性实施例中,管理员会查询会话数据库510 以接收该信息。
操作1014示出将经由共享存储器区域接收到的虚拟桌面许可证确认请求发送至许可服务器。转回至图5,在一示例性实施例中,当客户机514连接到客操作系统4 时,可以将许可证呈现给会话管理器408。在该示例性实施例中,会话管理器408可以将该许可证写至共享存储器区域602。虚拟桌面管理器430可以接收该许可证并将该许可证发送至许可服务器504进行确认。在该示例性实施例中,客操作系统4 无需具有到许可服务器 504的网络连接来确认许可证。
操作1016示出通过共享存储器区域来路由远程过程调用。例如并且转至图6,在一示例性实施例中,虚拟桌面管理器430可以被配置成发起对配置服务434的远程过程调用,以便使配置服务434配置客操作系统4 来实施虚拟桌面会话。然而,连接可以通过共享存储器区域602来隧穿,而不是建立与虚拟机414的TCP/IP连接来实现远程过程调用。 在该示例性实施例中,远程过程调用存根612可由虚拟桌面管理器430访问,虚拟桌面管理器430可以发起远程过程调用来管理(例如控制和/或获得)来自配置服务434的数据。 取代经由网络连接发布指示函数调用的分组,RPC存根612可以被配置成与虚拟桌面服务提供者604对接,虚拟桌面服务提供者604可以接收函数调用并且经由共享存储器区域把消息发送至虚拟桌面服务客户机606。虚拟桌面服务客户机606可以路由该远程过程函数调用RPC存根614,后者可以如同通过网络连接接收到函数调用那样处理该函数调用。
转至操作1018,它示出经由连接到共享存储器区域的命名管道端点将命令发送至虚拟机。例如并且转至图6,在一示例性实施例中,共享存储器区域602可以连接至命名管道端点608和610,后者可以连接至虚拟桌面管理器430、补丁管理器432或者被配置成连接至命名管道的任何其它第三方代码。在该示例性实施例中,命名管道端点可以被配置成直接与共享存储器区域和/或虚拟桌面服务提供者/客户机(604和606)对接。一般而言, 命名管道可以是用于进程间通信的双工构造。同一命名管道的多个实例可以被实例化,每个实例可包括一组端点并且具有其自身的缓冲区和句柄以提供用于通信的管道。当一进程将消息写至命名管道输入缓冲区时,命名管道端点将该消息发送至输出缓冲区,并通知另一客户机有一消息到达。
转至操作1020,它示出经由共享存储器区域将客操作系统被授权执行的应用程序的列表发送至虚拟机。例如,用户可以在虚拟桌面会话期间运行的应用程序的列表可经由共享存储器区域602被传送至配置服务434。配置服务434可以修改该用户的所允许的应用程序的列表并且配置客操作系统428,使得客操作系统4 在与用户帐户相关联的虚拟桌面会话期间只能运行列表上的应用程序。例如,配置服务434可以通过将所允许的应用程序的列表添加到客操作系统4 上的用户帐户来配置该用户帐户。当用户登录到客操作系统428上时,可以创建封装有用户的特权的访问令牌。访问令牌可以在用户尝试打开应用程序时被检验,且令牌可相对于访问控制列表来检验。如果用户帐户未列在访问控制列表中,则客操作系统428的安全子系统422可拒绝运行应用程序的请求。
图10的操作1022示出经由共享存储器区域将虚拟桌面配置信息发送至虚拟机。 例如且再次转至图6,共享存储器区域602可用于将用于设置虚拟桌面会话的配置信息从虚拟化平台402传输至虚拟机414。在一个具体的例子中,虚拟桌面管理器430可以响应于从中介服务器508接收到连接请求而生成配置信息。例如,中介服务器508可以从客户机514接收连接请求,并且获得用户名/ 口令组合。中介服务器508可以将用户名/ 口令组合发送至虚拟桌面管理器430,后者可以运行并生成配置信息的一个或多个分组,这些分组使配置服务434配置客操作系统428以便实施与客户机514的虚拟桌面会话。
图10的细化操作IOM示出,在一实施例中,虚拟化平台被分配给第一联网域,客操作系统被分配给第二联网域。例如并且转至图5,在本发明的一个实施例中,虚拟化平台 402可以被分配给第一联网域(例如基础结构域520),客操作系统4 可以被分配给第二联网域。例如,客操作系统4 可以被分配给公司域,该公司向维持数据中心的实体按月支付费用,来向其雇员提供虚拟桌面会话。在该例中,公司向其雇员提供具有瘦客户机的计算机系统,雇员可以在到达公司开始工作时连接到虚拟桌面服务器400。
图10的细化操作10 示出,在一实施例中,虚拟化平台被分配给第一联网域,客操作系统被分配给局域网上的计算机集合。类似于细化操作1024,虚拟化平台402可以被分配给第一联网域(例如基础结构520),客操作系统4 可以作为工作组的一部分来操作。 工作组不具有服务器和客户机;工作组更像是对等网络。或者换句话说,客操作系统4 可能不属于一个域,而是连接到局域网对等网络。
现在转至图11,它示出用于部署虚拟桌面会话的操作过程,包括操作1100、1102、 1104、1106、1108、1110和1112。操作1100开始操作过程,操作1102示出执行主操作系统, 其中主操作系统被分配给第一网络域。例如,在一示例性实施例中,主操作系统(例如图2 的主机204)可以在逻辑处理器上执行。参考图4,在该示例性实施例中,虚拟化平台402可以用与上面参考图2所述的类似的结构来实现。在一具体例子中,虚拟桌面管理器430可以实现为一用户模式进程,该用户模式进程在父分区内运行的主操作系统中执行。该例中的主操作系统可以被分配给第一网络域,例如基础结构域520。在该例中,存储在基础结构域520的活动目录服务器上的用户帐户标识符可以被登录到主操作系统中。
继续图11的描述,操作1104示出由系统管理程序对包括客操作系统的虚拟机进行实例化。例如,系统管理程序(例如图2的微内核系统管理程序202)可以实例化虚拟机 414。例如,虚拟桌面管理器430可以发起启动虚拟机414的请求,系统管理程序可以将虚拟机414从存储器加载到子分区中并且引导客操作系统428,客操作系统4 可以在虚拟处理器上执行并且运行配置服务4;34和远程呈现引擎406。
转至操作1106,它示出在主操作系统和虚拟机之间建立共享存储器区域。例如, 分区间通信信道404可以至少部分地由在主操作系统和虚拟机414之间共享的共享存储器区域602来实现。在该示例性实施例中,主操作系统可以实例化虚拟桌面服务提供者604。 虚拟桌面服务提供者604可以将设备标识符注入到被映射到IO设备的存储器区域中,客操作系统428中运行的即插即用模块可以检测该设备标识符并且加载虚拟桌面服务客户机 606。虚拟桌面服务客户机606可以在虚拟处理器上执行,并且配置所设立的共享存储器区域602,使得虚拟桌面服务提供者604可以访问它。虚拟桌面服务客户机606可以在虚拟处理器上执行,并将控制分组写至共享存储器区域602,后者可被虚拟桌面服务提供者604所检测并且可以打开信道。
转至操作1108,它示出将命名管道端点连接至共享存储器区域。例如并且转至图 5,在一示例性实施例中,主操作系统可以在逻辑处理器上执行,并且执行使服务器命名管道端点608被加载到存储器中并被连接至虚拟桌面服务提供者604的指令。在虚拟机414 内,虚拟桌面服务客户机606可以在虚拟处理器上执行,并且使客户机命名管道端点610 加载和连接。在该示例性实施例中,虚拟桌面430和配置服务434、或者包括可用于连接至命名管道的代码的任何其它应用程序,可以经由共享存储器区域602把消息从虚拟化平台 402传递至客操作系统428。在一替代实施例中,命名管道端点(608和610)可被配置成与共享存储器区域直接对接。在该配置中,虚拟桌面服务提供者604和虚拟服务客户机606 的功能会被包含到命名管道端点(608和610)中。
转至操作1110,它示出启动客操作系统和客户机之间的虚拟桌面会话,其中客操作系统被分配给第二网络域。转至图5,远程呈现引擎406可以监视端口是否有来自客户机 514的连接请求。响应于接收到请求,远程呈现引擎406可以启动与客户机514的虚拟桌面会话,并且启动将指示客操作系统4 的图形用户界面的数据分组流传送至客户机514。例如并且转至图5,在本发明的一个实施例中,虚拟化平台402可以被分配给第一联网域(例如基础结构域520),客操作系统4 可以被分配给第二联网域。
转至操作1112,它示出由主操作系统经由第一命名管道接口将控制虚拟桌面会话的命令发送至虚拟机。例如,虚拟桌面管理器430可以接收来自管理员的请求,并且经由分区间通信信道404将命令发送至配置服务434。在一示例性实施例中,该命令可包括、但不限于用于关闭客操作系统428、断开用户、重置客操作系统4 等的命令。配置服务434可以接收命令并且采取适当的动作。例如,如果命令是要使用户退出客操作系统428,则配置服务434可以访问客操作系统4 的远程退出应用程序界面,并使用户退出。类似地,配置服务434可以访问客操作系统428的应用程序界面以便断开用户或重置客操作系统428。
参考图12,它示出图11所示操作过程的替代实施例。图12示出附加操作1214, 该操作示出经由第一命名管道接口将虚拟桌面配置信息发送至虚拟机。例如且再次转至图 6,共享存储器区域602可用于将用于设置虚拟桌面会话的配置信息从虚拟化平台402传输至虚拟机414。在该例中,命名管道端点(608和610)可被连接至虚拟桌面服务提供者604 和虚拟桌面服务客户机606。虚拟桌面管理器430可被配置成使用服务器命名管道端点608 来将配置信息发送至配置服务434。在一个具体的例子中,虚拟桌面管理器430可以从中介服务器508接收启动客操作系统428的请求。在该具体例子中,该请求会包括要被添加至客操作系统4 上的管理员列表的用户名。在该例中,虚拟桌面管理器430可以使用命名管道进程间通信代码将一消息发送至服务器命名管道端点608,所述消息包括要把用户名添加至客操作系统428的管理员帐户列表的命令。命名管道端点608可以将该消息转换成虚拟桌面服务提供者604可处理的格式并且路由该消息。虚拟桌面服务客户机604可以将该消息写至共享存储器区域602。虚拟桌面服务客户机606可以检测该消息并从共享存储器区域602检索该消息。虚拟桌面服务客户机606可以将该消息发送至客户机命名管道端点610,后者可以将该消息转换成可由配置服务434中运行的命名管道代码所处理的格式、并且路由该消息。在该例中,配置服务434可以接收该消息,并且经由应用程序接口将用户名添加至客操作系统428的管理员列表。
前述的详细描述通过示例和/或操作图阐述了系统和/或进程的各实施例。在这样的框图和/或示例包含一个或多个功能和/或操作的范围内,本领域技术人员将理解,这样的框图,或示例内的每一功能和/或操作可以分别地和/或共同地通过范围广泛的硬件、 软件、固件或几乎其任何组合来实现。
尽管示出和描述了此处所描述的本主题的特定方面,但是,对于本领域的技术人员显而易见的是,基于此处的原理,在不偏离此处所描述的主题以及其广泛的方面的情况下,可以作出更改和修改,因此,所附权利要求书将包含在它们的范围内,所有这样的更改和修改都将在此处所描述的主题的真正的精神和范围内。
权利要求
1.一种被配置成部署虚拟桌面会话的计算机系统G00),包括处理器(102);耦合至所述处理器(10 的存储器(106和/或104),所述存储器(106和/或104)包括在执行时使所述处理器(10 执行以下动作的计算机可执行指令建立到包括客操作系统0 )的虚拟机G14)的分区间通信信道004),其中所述虚拟机(414)被配置成自动地信任经由分区间通信信道(404)接收的消息而无需认证所述消息;经由所述分区间通信信道(404)将虚拟桌面配置信息发送至所述虚拟机(414);按照接收到的虚拟桌面配置信息来配置所述客操作系统0 );以及建立与客户机(514)的虚拟桌面会话。
2.如权利要求1所述的计算机系统,其特征在于,所述存储器还包括在执行时使所述处理器执行以下动作的计算机可执行指令将经由所述分区间通信信道从所述虚拟机接收到的虚拟机因特网协议地址发送至所述客户机。
3.如权利要求1所述的计算机系统,其特征在于,所述存储器还包括在执行时使所述处理器执行以下动作的计算机可执行指令经由所述分区间通信信道从所述虚拟机接收命令,其中所述命令指定要执行所述客操作系统以下载客操作系统补丁的时间。
4.如权利要求1所述的计算机系统,其特征在于,所述虚拟桌面配置信息包括启用虚拟桌面会话的命令。
5.如权利要求1所述的计算机系统,其特征在于,所述虚拟桌面配置信息包括用于将与所述客户机相关联的用户帐户添加至所允许的虚拟桌面用户的列表的命令。
6.如权利要求1所述的计算机系统,其特征在于,所述虚拟桌面配置信息包括用于将与所述客户机相关联的用户帐户添加至所述客操作系统的管理员组的命令。
7.如权利要求1所述的计算机系统,其特征在于,所述虚拟桌面配置信息包括用于打开所述虚拟桌面会话用以接收来自所述客户机的用户输入的网络端口的命令。
8.如权利要求1所述的计算机系统,其特征在于,所述虚拟桌面配置信息包括用于设置客操作系统防火墙设置的命令。
9.一种计算机可读存储介质(106和/或104),包括用于部署虚拟桌面的可执行指令, 所述计算机可读存储介质(106和/或104)包括在执行时使处理器(10 执行以下动作的指令在虚拟机G14)内执行客操作系统0 );建立在虚拟化平台(40 和所述虚拟机(414)之间共享的共享存储器区域(602);使虚拟桌面会话在所述虚拟机(414)和客户机(514)之间被建立;以及通过经由所述共享存储器区域(60 将命令发送至所述虚拟机(414)来管理所述虚拟桌面会话。
10.如权利要求9所述的计算机可读存储介质,其特征在于,所述计算机可读存储介质还包括在执行时使所述处理器执行以下动作的计算机可执行指令经由所述共享存储器区域将与所述客户机相关联的用户帐户标识符发送至所述虚拟机。
11.如权利要求9所述的计算机可读存储介质,其特征在于,所述计算机可读存储介质还包括在执行时使所述处理器执行以下动作的计算机可执行指令将经由所述共享存储器区域接收到的虚拟桌面状态信息发送至中介服务器。
12.如权利要求9所述的计算机可读存储介质,其特征在于,所述计算机可读存储介质还包括在执行时使所述处理器执行以下动作的计算机可执行指令将经由所述共享存储器区域接收到的虚拟桌面许可证确认请求发送至许可服务器。
13.如权利要求9所述的计算机可读存储介质,其特征在于,在执行时使所述处理器经由所述共享存储器区域管理所述虚拟桌面会话的指令还包括在执行时使所述处理器执行以下动作的计算机可执行指令通过所述共享存储器区域来路由远程过程调用。
14.如权利要求9所述的计算机可读存储介质,其特征在于,在执行时使所述处理器建立到所述虚拟机的共享存储器区域的指令还包括在执行时使所述处理器执行以下动作的计算机可执行指令经由连接至所述共享存储器区域的命名管道端点将命令发送至所述虚拟机。
15.如权利要求9所述的计算机可读存储介质,其特征在于,所述计算机可读存储介质还包括在执行时使所述处理器执行以下动作的计算机可执行指令经由所述共享存储器区域将所述客操作系统被授权执行的应用程序的列表发送至所述虚拟机。
全文摘要
本发明涉及虚拟桌面配置和操作技术。这里公开了用于配置和操作虚拟桌面会话的技术。在一示例性实施例中,可以在虚拟化平台和虚拟机之间建立分区间通信信道。分区间通信信道可用于配置客操作系统来实施虚拟桌面会话并且管理运行的虚拟桌面会话。除以上之外,权利要求书具体实施方式
和附图中也描述了其他技术。
文档编号G06F9/455GK102495750SQ201110307909
公开日2012年6月13日 申请日期2011年9月29日 优先权日2010年9月30日
发明者A·帕莱卡, D·L·格林, I·本-沙哈尔, M·阿拉迪, S·萨姆帕斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1