在多会话平台上虚拟化装置管理服务的制作方法

文档序号:14254436阅读:227来源:国知局
在多会话平台上虚拟化装置管理服务的制作方法

相关申请的交叉引用

本申请要求2015年8月3日申请的名为“多会话平台上的虚拟化装置管理服务(virtualizingdevicemanagementservicesonamulti-sessionplatform)”的美国非临时申请第14/816,800号的优先权。上文所提到的申请以全文引用的方式且出于所有目的并入本文中。

本公开的方面涉及计算机硬件和软件。具体来说,本公开的一个或多个方面大体涉及用于服务(例如,装置驱动程序)的虚拟化和管理的计算机硬件和软件,所述服务被设计成用于单个会话环境且专用于管理装置使得所述服务可用于单个操作系统、多会话环境中。



背景技术:

随着多会话环境的虚拟化的出现,虚拟服务提供商面临计算装置的相容性问题,所述计算装置与运用单个工作站思维加以设计的装置管理服务(例如装置驱动程序)协同工作。装置管理服务控制计算装置对各种应用程序的访问。通过使单个操作系统服务虚拟环境中的多个会话,计算装置在多个会话试图与计算装置或其装置管理服务交互时可能不会工作,所述计算装置已经被设计成假设单个操作系统将服务单个会话。在单个操作系统、多会话环境中,驻留在服务器处的装置管理服务可能不能够访问计算装置以控制或管理特定会话中的计算装置。此外,如果装置管理服务能够访问这些计算装置,那么装置管理服务的使用会在不同会话之间产生冲突,这是因为每一会话在不考虑其它会话的情况下写入到相同系统资源且从相同系统资源进行读取,从而可能导致计算装置停止工作和/或造成送达用户的不正确输出。虽然在许多状况下,计算装置可以是作为外围装置连接到用户的计算机的基于usb的装置(例如智能卡和智能卡读取器),但在其它状况下,计算装置还可以是独立装置,例如具有其自身的装置管理服务的可绘图平板计算机。

当前的“解决方案”涉及虚拟架构的成本高的修改。具体地说,虚拟机针对每一会话/用户创建,其中每一虚拟机具有整个操作系统的单独图像、相关联数据库(例如注册表)和服务器资源(例如存储器)的单独分配。然而,创建包含整个操作系统的单独图像的单独虚拟机会引起使用大量磁盘空间且引起巨大的维护和管理成本。



技术实现要素:

以下呈现本文中所描述的各种方面的简化概述。此概述并非广泛综述,且并不打算识别关键或重要要素或划定权利要求书的范围。以下概述仅按简化形式呈现一些概念,作为对以下提供的更详细描述的介绍性序言。

本公开的方面通过公开用于提供装置管理服务(例如装置驱动程序)的虚拟化的方法、计算机可读媒体、软件系统和设备使得所述装置管理服务的虚拟例项可用于多会话环境中来解决上文所描述的一个或多个问题,所述装置管理服务专用于管理特定装置且被设计成用于如下假设或在如下假设下被设计:所述特定装置和所述装置管理服务将用于单个会话/用户环境中。此外,可在所述多会话环境中针对每一会话创建重定向和/或虚拟化层以执行全局数据库重定向、对象名称转换和文件系统转换,从而确保会话边界得以维持且全局/共享资源不会被会话不适当地变更。作为一实例,所述重定向/虚拟化层可重定向与会话相关联且用于全局资源的通信以访问特定针对于所述会话的所述资源的虚拟例项。作为另一实例,所述重定向/虚拟化层可将与会话相关联且用于全局数据库的位置的通信重定向到对应于所述全局数据库的所述位置的会话特定数据库的位置。作为又一实例,所述重定向/虚拟化层可用会话特定对象名称替换与所述会话相关联的通信中的全局对象名称(例如以访问虚拟例项特定针对于所述会话的全局对象的所述虚拟例项)。

在一些实施例中,一种系统可包含第一计算装置和通过广域网以通信方式耦合到所述第一计算装置的第二计算装置。所述第一计算装置可配置成提供包含多个会话的虚拟环境。每一会话可特定针对于不同用户且包含由所述第一计算装置执行的应用程序的至少一个虚拟例项。所述第二计算装置可与会话相关联且配置成与特定针对于所述会话的所述应用程序的虚拟例项交互。所述第二计算装置可以通信方式耦合到配置成由装置管理服务管理的服务管理装置。所述会话可包含用于所述会话的所述装置管理服务的虚拟例项和用于所述会话的重定向层。所述重定向层可配置成拦截特定针对于所述会话的所述应用程序的所述虚拟例项与用于所述会话的所述装置管理服务的所述虚拟例项之间的通信。

在一些实施例中,一种设备可包含处理器和存储指令的计算机可读媒体,所述指令在由所述处理器执行时将所述设备配置成执行数个步骤。举例来说,所述设备可产生多个会话,其中每一会话特定针对于不同用户且包含应用程序的至少一个虚拟例项。所述设备可基于从不同于所述设备的用户装置接收的一个或多个用户输入而执行用于会话的所述应用程序的虚拟例项的一个或多个功能。所述设备可确定所述用户装置是否连接到配置成由装置驱动程序管理的外围装置。所述设备可响应于确定所述用户装置连接到配置成由所述装置驱动程序管理的所述外围装置而产生用于所述会话的所述装置驱动程序的虚拟例项和用于所述会话的所述装置驱动程序的所述虚拟例项的重定向层。

在一些实施例中,一种方法可包含通过计算装置产生多个会话,其中每一会话特定针对于不同用户且包含应用程序的至少一个虚拟例项。此外,所述计算装置可基于从不同于所述计算装置的用户装置接收的一个或多个用户输入而执行用于会话的所述应用程序的虚拟例项的一个或多个功能。所述计算装置可响应于确定所述用户装置连接到配置成由装置驱动程序管理的外围装置而产生用于所述会话的所述装置驱动程序的虚拟例项和用于所述会话的所述装置驱动程序的所述虚拟例项的重定向层。所述计算装置可将与会话相关联且打算用于全局资源的消息重路由到特定针对于所述会话的所述全局资源的虚拟例项。

以下更详细地论述这些特征连同许多其它特征。

附图说明

本公开是通过实例说明且在附图中不受限制,在附图中,相同参考数字指示类似元件且其中:

图1描绘可根据本文中描述的一个或多个说明性方面使用的说明性计算机系统架构。

图2描绘可根据本文中描述的一个或多个说明性方面使用的说明性远程访问系统架构。

图3描绘可根据本文中描述的一个或多个说明性方面使用的说明性虚拟化(管理程序)系统架构。

图4描绘根据本文中所描述的一个或多个说明性方面的用于实施多会话环境的说明性系统。

图5描绘根据本文中所描述的一个或多个说明性方面的多会话环境的说明性会话视图。

图6描绘根据本文中的一个或多个说明性方面的用于特定服务管理装置的会话1的一部分的分解框图视图。

图7描绘根据本文中所论述的一个或多个说明性方面的虚拟化装置管理服务的会话启动和加载的说明性流程。

图8描绘根据本文中所论述的一个或多个说明性方面的启用应用程序和使用所述应用程序和服务管理装置的说明性流程。

具体实施方式

作为下文更详细地描述的主题的一般介绍,本文中所描述的方面关于服务的虚拟化和管理,所述服务专用于管理被设计成用于如下假设或在如下假设下设计的装置:装置和其管理服务将用于单个用户环境中。通过虚拟化这些服务且创建此类服务的多个例子,此类装置可由多用户环境中的其虚拟化服务使用和管理。

在各种实施例的以下描述中,对以上识别且形成此处的一部分的附图进行参考,并且其中借助于说明展示可实践本文中描述的方面的各种实施例。应理解,在不脱离本文中所描述的范围的情况下,可利用其它实施例,且可进行结构和功能修改。各个方面能够有其它实施例并且以各种不同方式实践或实行。

应理解,本文中所使用的措词和术语是出于描述的目的且不应被看作是限制性的。相反地,应对本文中使用的短语和术语给予其最广泛的解释和含义。“包含(including)”和“包括(comprising)”和其变体的使用打算涵盖其后列出的项目和其等效物以及额外项目和其等效物。术语“安装”、“连接”、“耦合”、“定位”、“接合”和类似术语的使用打算包含直接和间接安装、连接、耦合、定位和接合。

计算架构

可在包含独立式、联网、远程访问(又名,远程桌面)、虚拟化和/或基于云的环境等多种不同系统环境中利用计算机软件、硬件和网络。图1说明可用以在独立式和/或联网环境中实施本文中所描述的一个或多个说明性方面的系统架构和数据处理装置的一个实例。各种网络节点103、105、107和109可通过例如因特网的广域网(wan)101互连。也可或替代地使用其它网络,包含专用内联网、公司网络、lan、城域网(man)无线网络、个人网络(pan)等等。网络101是出于说明的目的,且可由较少或额外计算机网络替换。局域网(lan)可具有任何已知lan拓扑中的一个或多个,且可使用多种不同协议中的一个或多个,例如以太网。装置103、105、107、109和其它装置(未展示)可通过双绞线电线、同轴电缆、光纤、无线电波或其它通信媒体连接到网络中的一个或多个。

如本文中所使用且在图式中描绘的术语“网络”不仅指远程存储装置通过一个或多个通信路径耦合在一起的系统,而且指可不时地耦合到具有存储能力的此类系统的独立装置。因此,术语“网络”不仅包含“物理网络”,而且包含“内容网络”,其包括可归于驻留在所有物理网络上的单个实体的数据。

组件可包含数据服务器103、网页服务器105以及客户端计算机107、109。数据服务器103提供对用于执行本文中描述的一个或多个说明性方面的数据库和控制软件的总体访问、控制和管理。数据服务器103可连接到网页服务器105,通过所述网页服务器105,用户按请求与数据交互和获得数据。替代地,数据服务器103可充当网页服务器自身且直接连接到因特网。数据服务器103可通过网络101(例如,因特网)通过直接或间接连接或通过某一其它网络连接到网页服务器105。用户可以使用远程计算机107、109与数据服务器103交互,例如使用网页浏览器以通过由网页服务器105代管的一个或多个外部暴露网站而连接到数据服务器103。客户端计算机107、109可以与数据服务器103协同使用以访问其中存储的数据,或者可以用于其它目的。举例来说,从客户端装置107,用户可使用因特网浏览器(如此项技术中已知)或通过执行在计算机网络(例如因特网)上与网页服务器105和/或数据服务器103通信的软件应用程序来访问网页服务器105。

服务器与应用程序可在相同物理机器上组合,且保留单独的虚拟或逻辑地址,或可驻留于单独的物理机器上。图1说明可使用的网络架构的仅一个实例,且所属领域的技术人员将了解,使用的特定网络架构和数据处理装置可变化,且对于其提供的功能性是次要的,如本文中进一步描述。举例来说,由网页服务器105和数据服务器103提供的服务可在单个服务器上组合。

每一组件103、105、107、109可以是任一类型的已知计算机、服务器或数据处理装置。数据服务器103例如可包含控制数据服务器103的总体操作的处理器111。数据服务器103可进一步包含随机存取存储器(ram)113、只读存储器(rom)115、网络接口117、输入/输出接口119(例如键盘、鼠标、显示器、打印机等)和存储器121。输入/输出(i/o)119可包含多种接口单元和驱动器,以用于读取、写入、显示和/或打印数据或文件。存储器121可进一步存储用于控制数据处理装置103的总体操作的操作系统软件123、用于指示数据服务器103执行本文中所描述的方面的控制逻辑125,和提供可或可不结合本文中所描述的方面使用的次要、支持和/或其它功能性的其它应用软件127。所述控制逻辑在本文中也可以被称作数据服务器软件125。数据服务器软件的功能性可指基于被编码到控制逻辑中的规则而自动做出的操作或决策、通过用户对系统提供输入而手动做出的操作或决策,和/或基于用户输入(例如,询问、数据更新等)的自动处理的组合。

存储器121还可存储用于执行本文中所描述的一个或多个方面的数据,包含第一数据库131和第二数据库129。在一些实施例中,第一数据库可包含第二数据库(例如,作为单独图表、报告等)。也就是说,取决于系统设计,信息可存储于单个数据库中,或分成不同逻辑、虚拟或物理数据库。装置105、107、109可具有与如关于装置103所描述的架构类似或不同的架构。所属领域的技术人员应了解,如本文中所描述的数据处理装置103(或装置105、107、109)的功能性可散布在多个数据处理装置上,例如以将处理负荷分布在多个计算机上,从而基于地理位置、用户访问类别、服务质量(qos)等分离交易。

一个或多个方面可以由如本文中所描述的一个或多个计算机或其它装置执行的计算机可用或可读数据和/或计算机可执行指令来体现,例如在一个或多个程序模块中体现。通常,程序模块包含在由计算机或其它装置中的处理器执行时执行特定任务或实施特定抽象数据类型的例程、程序、对象、组分、数据结构等等。模块可按随后被编译供执行的源代码编程语言来撰写,或可按例如(但不限于)超文本标记语言(html)或可扩展标记语言(xml)的脚本语言来撰写。计算机可执行指令可存储于例如非易失性存储装置等计算机可读媒体上。可利用任何合适的计算机可读存储媒体,包含硬盘、cd-rom、光学存储装置、磁性存储装置和/或其任何组合。另外,表示如本文中所描述的数据或事件的各种传输(非存储)媒体可在源与目的地之间以穿过信号传导媒体(例如金属线、光纤和/或无线传输媒体(例如空气和/或空间))的电磁波的形式传送。本文中所描述的各种方面可体现为方法、数据处理系统或计算机程序产品。因此,可全部或部分地以软件、固件和/或硬件或硬件等效物(例如,集成电路、现场可编程门阵列(fpga)等)来体现各种功能性。可使用特定数据结构更有效地实施本文中所描述的一个或多个方面,且预期此类数据结构在本文中所描述的计算机可执行指令和计算机可用数据的范围内。

进一步参考图2,可在远程访问环境中实施本文中所描述的一个或多个方面。图2描绘包含在可根据本文中所描述的一个或多个说明性方面使用的说明性计算环境200中的通用计算装置201的实例系统架构。可将通用计算装置201用作被配置以提供用于客户端访问装置的虚拟机的单个服务器或多服务器桌面虚拟化系统(例如,远程访问或云系统)中的服务器206a。通用计算装置201可具有用于控制服务器和其相关联组件的总体操作的处理器203,所述相关联组件包含ram205、rom207、i/o模块209和存储器215。

i/o模块209可包含通用计算装置201的用户可借以提供输入的鼠标、小键盘、触摸屏、扫描器、光学阅读器和/或触控笔(或其他输入装置),且还可包含用于提供音频输出的扬声器和用于提供文本、视听和/或图形输出的视频显示装置中的一个或多个。软件可存储于存储器215和/或其它存储装置内以将用于将通用计算装置201配置成专用计算装置以便执行如本文中所描述的各种功能的指令提供到处理器203。举例来说,存储器215可存储由计算装置201使用的软件,例如操作系统217、应用程序219和相关联数据库221。

计算装置201可在支持到例如终端240(也被称作客户端装置)的一个或多个远程计算机的连接的联网环境中操作。终端240可以是个人计算机、移动装置、膝上型计算机、平板计算机或服务器,其包含上文关于通用计算装置103或201所描述的元件中的许多或全部。图2中描绘的网络连接包含局域网(lan)225和广域网(wan)229,但也可包含其它网络。当用于lan联网环境中时,计算装置201可以通过网络接口或适配器223而连接到lan225。当用于wan联网环境中时,计算装置201可包含调制解调器227或其它广域网接口以用于建立经由例如计算机网络230(例如因特网)的wan229的通信。应了解,所展示的网络连接是说明性的,且可使用在计算机之间建立通信链路的其它构件。计算装置201和/或终端240也可以是包含例如电池、扬声器和天线(未示出)的各种其它组件的移动终端(例如,移动电话、智能手机、个人数字助理(pda)、笔记本电脑等)。

本文中所描述的方面也可与众多其它通用或专用计算系统环境或配置一起操作。可适合与本文中所描述的方面一起使用的其它计算系统、环境和/或配置的实例包含但不限于个人计算机、服务器计算机、手持式或膝上型计算机装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费型电子装置、网络个人计算机(pc)、微型计算机、大型计算机、包含以上系统或装置中的任一个的分布式计算环境等等。

如图2中所展示,一个或多个客户端装置240可与一个或多个服务器206a到206n(通常在本文中被称作“服务器206”)通信。在一个实施例中,计算环境200可包含安装在服务器206与客户端机器240之间的网络设备。网络设备可以管理客户端/服务器连接,且在一些状况下可以负荷多个后端服务器206当中的平衡客户端连接。

客户端机器240在一些实施例中,可被称作单个客户端机器240或客户端机器240的单个群组,而服务器206可被称作单个服务器206或服务器206的单个群组。在一个实施例中,单个客户端机器240与多于一个服务器206通信,而在另一实施例中,单个服务器206与多于一个客户端机器240通信。在又另一实施例中,单个客户端机器240与单个服务器206通信。

在一些实施例中,客户端机器240可由以下非详尽术语中的任一个参考:客户端机器;客户端;客户端计算机;客户端装置;客户端计算装置;本地机器;远程机器;客户端节点;端点;或端点节点。在一些实施例中,服务器206可由以下非详尽术语中的任一个参考:服务器;本地机器;远程机器;服务器集群;或主机计算装置。

在一个实施例中,客户端机器240可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施例中,虚拟机可以是由1型或2型管理程序管理的任何虚拟机,所述管理程序例如,由citrix系统、ibm、vmware或任何其它管理程序开发的管理程序。在一些方面中,虚拟机可由管理程序管理,而在各方面中,虚拟机可由在服务器206上执行的管理程序或在客户端240上执行的管理程序管理。

一些实施例包含客户端装置240,其显示由在服务器206或其它位于远处的机器上远程执行的应用程序产生的应用程序输出。在这些实施例中,客户端装置240可执行虚拟机接收器程序或应用程序以在应用程序窗口、浏览器或其它输出窗中显示输出。在一个实例中,应用程序是桌面,而在其它实例中,应用程序是产生或呈现桌面的应用程序。桌面可包含图形壳层,其提供用于其中可集成本地和/或远程应用程序的操作系统的例项的用户接口。如本文中所使用的应用程序是在已加载操作系统(且任选地,以及桌面)的例项之后执行的程序。

在一些实施例中,服务器206使用远程呈现协议或其它程序以将数据发送到精简客户端或客户端上执行的远程显示应用程序,以呈现由服务器206上执行的应用程序产生的显示输出。精简客户端或远程显示协议可以是以下非详尽性协议列表中的任一个:由佛罗里达劳德代尔堡(ft.lauderdale,florida)的思杰系统(citrixsystems)公司开发的独立计算架构(ica)协议;或由华盛顿雷德蒙德(redmond,washington)的微软(microsoft)公司制造的远程桌面协议(rdp)。

远程计算环境可包含多于一个服务器206a到206n,使得服务器206a到206n例如在云计算环境中一起逻辑分组为服务器集群206。服务器集群206可包含虽然地理上分散却逻辑分组在一起的服务器206,或位置相互接近但逻辑分组在一起的服务器206。在一些实施例中,在服务器集群206内的地理上分散的服务器206a到206n使用wan(广)、man(都市)或lan(本地)通信,其中不同地理区域可表征为:不同大陆;大陆的不同区域;不同国家;不同州;不同城市;不同园区;不同房间;或先前地理位置的任何组合。在一些实施例中,可将服务器集群206作为单个实体管理,而在其它实施例中,服务器集群206可包含多个服务器集群。

在一些实施例中,服务器集群可包含执行大体上类似类型的操作系统平台(例如,windows、unix、linux、ios、android、symbian等)的服务器206。在其它实施例中,服务器集群206可包含执行第一类型的操作系统平台的一个或多个服务器的第一群组,和执行第二类型的操作系统平台的一个或多个服务器的第二群组。

服务器206可按需要被配置为任何类型的服务器,例如,文件服务器、应用程序服务器、网页服务器、代理服务器、设备、网络设备、网关、应用程序网关、网关服务器、虚拟化服务器、部署服务器、安全套接字层(ssl)vpn服务器、防火墙、网页服务器、应用程序服务器,或配置为主应用程序服务器、执行活动目录的服务器,或执行提供防火墙功能性、应用程序功能性或负载平衡功能性的应用程序加速程序的服务器。还可使用其它服务器类型。

一些实施例包含第一服务器206a,其接收来自客户端机器240的请求,将请求转发到第二服务器206b,且用来自第二服务器206b的响应来响应由客户端机器240产生的请求。第一服务器206a可获取可用于客户端机器240的应用程序的列举,以及与代管在应用程序的列举内识别的应用程序的应用程序服务器206相关联的地址信息。第一服务器206a可接着使用网页接口来呈现对客户端的请求的响应,且与客户端240直接通信以向客户端240提供对所识别应用程序的访问。一个或多个客户端240和/或一个或多个服务器206可经由例如网络101等网络230传输数据。

图2展示说明性桌面虚拟化系统的高阶架构。如所展示,桌面虚拟化系统可以是单个服务器或多服务器系统或云系统,其包含被配置成将虚拟桌面和/或虚拟应用程序提供到一个或多个客户端访问装置240的至少一个虚拟化服务器206。如本文中所使用,桌面是指可代管和/或执行一个或多个应用程序的图形环境或空间。桌面可包含图形壳层,其提供用于其中可集成本地和/或远程应用程序的操作系统的例项的用户接口。应用程序可包含在已装载操作系统(且任选地,还有桌面)的例项后执行的程序。操作系统的每一例项可以是物理的(例如每装置一个操作系统)或虚拟的(例如os的许多例项在单个装置上运行)。每一应用程序可在本地装置上执行,或在位于远处的装置(例如,远程)上执行。

进一步参考图3,计算机装置301可被配置为虚拟化环境中的虚拟化服务器,例如,单个服务器、多服务器或云计算环境。图3中说明的虚拟化服务器301可部署为图2中说明的服务器206的一个或多个实施例或其它已知计算装置,和/或由图2中说明的服务器206的一个或多个实施例或由其它已知计算装置实施。虚拟化服务器301中包含硬件层310,所述硬件层310可包含一个或多个物理磁盘304、一个或多个物理装置306、一个或多个物理处理器308和一个或多个物理存储器316。在一些实施例中,固件312可存储于物理存储器316中的存储器元件内且可由物理处理器308中的一个或多个执行。虚拟化服务器301可进一步包含操作系统314,所述操作系统314可存储于物理存储器316中的存储器元件中且可由物理处理器308中的一个或多个执行。又另外,管理程序302可存储于物理存储器316中的存储器元件中且可由物理处理器308中的一个或多个执行。

在物理处理器308中的一个或多个上执行的可以是一个或多个虚拟机332a到332c(通常332)。每一虚拟机332可具有虚拟磁盘326a到326c和虚拟处理器328a到328c。在一些实施例中,第一虚拟机332a可使用虚拟处理器328a执行包含工具堆栈324的控制程序320。控制程序320可被称作控制虚拟机、dom0、域0、会话0或用于系统管理和/或控制的其它虚拟机。在一些实施例中,一个或多个虚拟机332b到332c可使用虚拟处理器328b到328c执行客操作系统330a到330b。

虚拟化服务器301可包含硬件层310,所述硬件层310具有与虚拟化服务器301通信的一件或多件硬件。在一些实施例中,硬件层310可包含一个或多个物理磁盘304、一个或多个物理装置306、一个或多个物理处理器308和一个或多个存储器216。物理组件304、306、308和316可包含例如上文所描述的组件中的任一个。物理装置306可以包含例如网络接口卡、视频卡、键盘、鼠标、输入装置、监视器、显示装置、扬声器、光盘驱动器、存储装置、通用串行总线连接、打印机、扫描器、网络元件(例如,路由器、防火墙、网络地址转换器、负载平衡器、虚拟专用网络(vpn)网关、动态主机配置协议(dhcp)路由器等),或连接到虚拟化服务器301或与虚拟化服务器301通信的任一装置。硬件层310中的物理存储器316可包含任何类型的存储器。物理存储器316可存储数据,且在一些实施例中,可存储一个或多个程序或可执行指令的集合。图3说明固件312存储于虚拟化服务器301的物理存储器316内的实施例。存储在物理存储器316中的程序或可执行指令可由虚拟化服务器301的一个或多个处理器308执行。

虚拟化服务器301还可包含管理程序302。在一些实施例中,管理程序302可以是由虚拟化服务器301上的处理器308执行以创建且管理任何数目个虚拟机332的程序。管理程序302可被称作虚拟机监视器或平台虚拟化软件。在一些实施例中,管理程序302可以是可执行指令与监视在计算机器上执行的虚拟机的硬件的任何组合。管理程序302可以是2型管理程序,其中管理程序在操作系统314内执行,操作系统314在虚拟化服务器301上执行。虚拟机接着在高于管理程序的级别处执行。在一些实施例中,2型管理程序在用户的操作系统的情境内执行,使得2型管理程序与用户的操作系统交互。在其它实施例中,在虚拟化环境中的一个或多个虚拟化服务器201可替代地包含1型管理程序(未展示)。1型管理程序可通过直接访问硬件层310内的硬件和资源而在虚拟化服务器301上执行。也就是说,虽然2型管理程序302通过主操作系统314访问系统资源,如所展示,但1型管理程序可在无主操作系统314的情况下直接访问所有系统资源。1型管理程序可直接在虚拟化服务器301的一个或多个物理处理器308上执行,且可包含存储在物理存储器316中的程序数据。

在一些实施例中,管理程序302可按模拟能够直接访问系统资源的操作系统330或控制程序320的任一方式将虚拟资源提供到在虚拟机332上执行的操作系统330或控制程序320。系统资源可包含但不限于物理装置306、物理磁盘304、物理处理器308、物理存储器316和包含在虚拟化服务器301硬件层310中的任何其它组件。管理程序302可用于仿真虚拟硬件、分割物理硬件、虚拟化物理硬件和/或执行提供对计算环境的访问的虚拟机。在又其它实施例中,管理程序302控制在虚拟化服务器301上执行的虚拟机332的处理器调度和存储器分割。管理程序302可包含:加州帕洛阿尔托(paloalto,california)的vmware公司制造的管理程序;xen管理程序,其为开源产品,其开发由开源xen.org团体开发;由微软提供的hyperv、virtualserver或虚拟pc管理程序,或其它管理程序。在一些实施例中,虚拟化服务器301执行创建客操作系统可在其上执行的虚拟机平台的管理程序302。在这些实施例中,虚拟化服务器301可被称作主机服务器。此虚拟化服务器的实例为由佛罗里达劳德代尔堡的思杰系统公司提供的xenserver。

管理程序302可创建客操作系统330于其中执行的一个或多个虚拟机332b到332c(通常332)。在一些实施例中,管理程序302可加载虚拟机图像以创建虚拟机332。在其它实施例中,管理程序302可执行虚拟机332内的客操作系统330。在又其它实施例中,虚拟机332可执行客操作系统330。

除创建虚拟机332之外,管理程序302还可以控制至少一个虚拟机332的执行。在其它实施例中,管理程序302可以通过由虚拟化服务器301提供的至少一个硬件资源(例如,在硬件层310内可用的任何硬件资源)的抽象来呈现至少一个虚拟机332。在其它实施例中,管理程序302可控制虚拟机332访问虚拟化服务器301中可用的物理处理器308的方式。控制对物理处理器308的访问可包含确定虚拟机332是否应可以访问处理器308和物理处理器能力被呈现给虚拟机332的方式。

如图3中所展示,虚拟化服务器301可代管或执行一个或多个虚拟机332。虚拟机332是可执行指令的集合,其在由处理器308执行时模仿物理计算机的操作以使得虚拟机332可极类似于物理计算装置而执行程序和过程。虽然图3说明虚拟化服务器301代管三个虚拟机332的实施例,但在其它实施例中,虚拟化服务器301可代管任何数目个虚拟机332。在一些实施例中,管理程序302给每一虚拟机332提供可用于虚拟机332的物理硬件、存储器、处理器和其它系统资源的唯一虚拟视图。在一些实施例中,唯一虚拟视图可基于虚拟机权限、将策略引擎应用于一个或多个虚拟机标识符、访问虚拟机的用户、在虚拟机上执行的应用程序、由虚拟机访问的网络或任何其它所要准则中的一个或多个。举例来说,管理程序302可创建一个或多个不安全虚拟机332和一个或多个安全虚拟机332。可阻止不安全虚拟机332访问可准许安全虚拟机332访问的资源、硬件、存储器位置和程序。在其它实施例中,管理程序302可给每一虚拟机332提供可用于虚拟机332的物理硬件、存储器、处理器和其它系统资源的大体上类似虚拟视图。

每一虚拟机332可包含虚拟磁盘326a到326c(通常326)和虚拟处理器328a到328c(通常328)。在一些实施例中,虚拟磁盘326是虚拟化服务器301的一个或多个物理磁盘304的虚拟化视图或虚拟化服务器301的一个或多个物理磁盘304的一部分。物理磁盘304的虚拟化视图可由管理程序302产生、提供和管理。在一些实施例中,管理程序302给每一虚拟机332提供物理磁盘304的唯一视图。因此,在这些实施例中,包含在每一虚拟机332中的特定虚拟磁盘326在与其它虚拟磁盘326比较时可以是唯一的。

虚拟处理器328可以是虚拟化服务器301的一个或多个物理处理器308的虚拟化视图。在一些实施例中,物理处理器308的虚拟化视图可由管理程序302产生、提供和管理。在一些实施例中,虚拟处理器328具有至少一个物理处理器308的大体上全部相同特性。在其它实施例中,虚拟处理器308提供物理处理器308的经修改视图以使得虚拟处理器328的特性中的至少一些不同于对应物理处理器308的特性。

装置管理服务虚拟化系统

图4描绘根据本文中所描述的一个或多个说明性方面的说明性计算系统400。如图4中所展示,计算系统400可包含通过广域网408(例如因特网、内联网和/或其组合)连接到多个客户端装置404a到404c(通常404)的远程服务器402。客户端装置404可以是任何类型的计算装置,例如个人计算机、服务器、精简客户端、平板计算机、智能电话等等,且包含网络节点103或计算装置201的一个或多个组件。服务管理装置406a到406c(通常406)可通过有线(例如通过通用串行总线端口,例如usb-c端口)或无线连接(例如蓝芽、wi-fi等)与客户端装置404操作性地连接。服务管理装置406可包含例如智能卡406a、基于usb的装置406b、控制器406c(例如游戏控制器、远程控件等)等等。在客户端装置404是由装置管理服务管理和控制的情况下,客户端装置404d可被视为服务管理装置。作为一实例,平板计算机或打印机可具有管理装置的操作的对应服务。

远程服务器402可向客户端装置404提供虚拟应用程序递送解决方案。虚拟应用程序递送解决方案提供应用程序虚拟化,使得客户端装置404的用户可远程地访问使用从客户端装置404接收的输入完全在远程服务器402上执行的一个或多个应用程序且与所述一个或多个应用程序交互。在此虚拟应用程序递送解决方案中,远程服务器402可仅执行用于多个会话的单个操作系统和每一会话内的多个应用程序。也就是说,远程服务器402可能不虚拟化服务器的操作系统的一个或多个例项,这是因为针对每一会话创建虚拟化操作系统成本高且涉及大量的磁盘空间。在一些实施例中,应用程序认为,实际上当其与应用程序虚拟化层(未示出)介接时,其与安装在远程服务器402上的操作系统直接介接,所述应用程序虚拟化层充当远程服务器402的操作系统的代理。在一些实施例中,计算系统400可不包含管理程序。

远程服务器402还可包含可由每一会话访问的全局注册表数据库410和/或还可以通信方式与所述全局注册表数据库410耦合。装置管理服务被设计成在服务管理装置406在单个会话环境中操作的假设下将信息写入到全局注册表数据库410和从全局注册表数据库410读取信息。

在一个或多个布置中,远程服务器402可包含执行数个任务的会话管理器。会话管理器可提供会话接口,所述会话接口准许第三方供应商或合作伙伴运用会话管理器注册其装置管理服务和/或使用注册软件开发工具包(sdk)注册应用程序虚拟化服务(例如由思杰系统公司开发的xenapp)。第三方供应商或合作伙伴可在供会话管理器使用的虚拟会话主机(vsh)服务数据库中注册装置管理服务。在注册期间,可创建供多会话环境中的装置管理服务使用的策略。一个策略可包含使会话管理器在启动了例项后,即产生用于所述会话中的装置管理服务的虚拟化例项,使得每一会话具有其自身的装置管理服务的虚拟化例项。此外,另一策略可包含何时虚拟化资源。又另一策略可包含何时和/或在何处重路由所指定命令(例如送达全局注册表数据库410的写入命令)。再又另一策略可包含分配远程服务器402或以通信方式耦合到远程服务器402的数据库的一个或多个存储器位置(例如文件),所述一个或多个存储器位置待分配以供其服务管理装置406和/或其装置管理服务使用。在会话的启动期间,会话管理器可基于注册表数据库410的所指定一个或多个存储器位置分配存储器位置以用于所创建的且来自服务管理装置406和/或其装置管理服务的命令可路由到的特定会话。此外,会话管理器可创建注册表数据库410中的虚拟资源和/或存储器位置到特定针对于会话的存储器位置(例如下文在图6中所论述的会话特定数据库606)的映射。注册sdk可提供各种选项以包含访问权限和装置管理服务的级别。装置管理服务可能会暴露标准接口,使得告知其各种事件(例如启动、中断、会话事件等)。sdk还可使得管理员能够监视且控制装置管理服务的每一会话特定例项的行为。

服务管理装置406可由装置管理服务管理,所述装置管理服务提供用于与操作系统交互的接口和/或指令。装置管理服务使得与操作系统一起执行的应用程序访问服务管理装置406的硬件功能。举例来说,装置管理服务可呈用于与特定服务管理装置406一起使用的装置驱动器的形式。当操作系统或应用程序指示特定服务管理装置406通过发出命令来执行特定功能时,服务管理装置406的对应的装置管理服务可拦截所述命令,将所述命令转换成特定服务管理装置406可理解的形式(例如格式),且将所转换命令发送到特定服务管理装置406以供执行。类似地,特定服务管理装置406的打算用于由应用程序或操作系统接收的任何输出可在由应用程序或操作系统接收之前被截断且转换成应用程序可理解的形式。因此,装置管理服务使得应用程序能够与特定服务管理装置406通信,且无需精确了解服务管理装置406的特定硬件或软件命令策略。

用户可将服务管理装置406与其客户端装置404连接,以供由远程服务器402提供的虚拟化应用程序使用。作为一实例,用户可通过智能卡读取器将智能卡406a连接到客户端装置404a以供由远程服务器402提供的虚拟应用程序使用。可在如下假设下设计服务(例如用于特定类型的智能卡或智能卡读取器的驱动程序):智能卡406a或其智能卡读取器将用于单个会话或单个用户环境中,这可能导致数个问题。

当一个会话中的应用程序的一个虚拟例项覆写由不同会话中的应用程序的另一虚拟例项存储的数据时,可能会出现一个问题。作为一实例,用于智能卡406a的装置管理服务(例如装置驱动程序)可指示应用程序的例项将信息写入到全局注册表数据库410、客户端装置404和/或智能卡406a的特定存储器位置(例如,特定文件)(或从所述特定存储器位置读取信息)。然而,装置管理服务可能不考虑对应于不同会话的同一应用程序的多个例项,在所述不同会话中,应用程序的每一例项可向同一全局注册表数据库410发起此类命令(例如写入命令、读取命令等)。因此,装置管理服务可指示第一会话中的应用程序的一个例项将信息写入全局注册表数据库410的特定存储器位置且还可不适当地指示第二(例如不同)会话中的应用程序的另一例项将信息写入到全局注册表数据库410的同一存储器位置,从而引起由后续写入指令覆写的信息的损失。

此外,一个会话中的应用程序的一个例项对数据的不当覆写可引起不同会话中的应用程序的另一例项读取不正确数据。按照以上实例,在第二会话中的应用程序的例项已将信息写入到全局注册表数据库410的特定存储器位置,借此不适当地覆写先前由第一会话中的应用程序的例项写入到全局注册表数据库410的特定存储器位置的信息之后,第一会话中的应用程序的例项可读取存储在全局注册表数据库410的特定存储器位置中的信息,所述信息现在由于不当覆写而相对于第一会话中的应用程序的例项是不准确的。使问题恶化的是,第一会话中的应用程序的例项可能未察觉从全局注册表数据库410的存储器位置读取的信息相对于第一会话的应用程序的例项是不准确的。

然而,如此处简要地描述且如下文将进一步详细描述,远程服务器402可创建装置管理服务(例如用于智能卡406a的装置驱动程序)的多个虚拟化例项以及利用重定向层以将写入指令、读取指令或其它指令适当地路由到适当目的地,以便在多会话环境中维持每一会话之间的边界。因此,按照以上实例,信息可能不会由正在不同会话中执行的应用程序覆写,从而弥补上文所描述的问题。

在将导致上文所描述的问题的多会话环境的典型设置中,用于服务管理装置的装置管理服务与系统服务在相同会话(例如会话0)中执行。此外,如果多会话环境成功地施行会话边界,那么装置管理服务可能不能够在不同会话中访问服务管理装置。然而,图5中展示的多会话环境500的设置弥补了这些问题。

图5描绘根据本文中所描述的一个或多个说明性方面的多会话环境500的说明性会话视图。多会话环境500可包含多个不同会话(例如会话0、会话1……会话n)。如图5中所展示,每一会话可描绘虚拟化装置管理服务与由此类服务管理的对应的装置之间的关系。一个会话(例如会话0)可特定针对于系统服务,且充当管理员,所述系统服务可包含用于远程服务器402的单个操作系统。例如操作系统的系统服务的虚拟化例项不能不会产生且可能存在管理程序。尽管会话0可包含系统服务,但其可能不包含用于管理服务管理装置406的装置管理服务(或其虚拟化例项)。

对于待用于特定会话中的每一服务管理装置406,其管理服务(例如其装置驱动程序)的虚拟化会话例项504和对应的重定向/虚拟化层506可通过用于管理会话内的服务管理装置406的装置类型506的会话管理器创建。因此,会话(例如会话1……会话n)可各自包含装置管理服务(例如装置驱动程序的虚拟化例项)的会话例项504以与所述会话一起使用以管理特定装置类型。此外,会话管理器可针对每一例项产生重定向/虚拟化层506以辅助装置管理服务的例项506管理装置类型。举例来说,会话1可包含装置管理服务a的会话例项504a和重定向虚拟层506a以管理装置类型a(例如用于智能卡406a的智能卡类型)。会话1还可包含装置管理服务b的会话例项504b和重定向虚拟层506b以管理装置类型b(例如基于usb的装置406b的usb装置类型)。类似地,会话n可包含装置管理服务a的另一会话例项504a和重定向虚拟层506a以管理装置类型a(例如用于智能卡406a的智能卡类型)。会话n还可包含装置管理服务b的会话例项504b和重定向虚拟层506b以管理装置类型b(例如基于usb的装置406b的usb装置类型)。

尽管在图5中针对两个装置类型a和b展示装置管理服务的两个例项504和重定向/虚拟化层506,但可利用多于或少于两个装置管理服务504和重定向/虚拟化层506,所述多于或少于两个装置管理服务504和重定向/虚拟化层506可对应于所述会话中利用的不同装置类型的数目。

图6描绘根据本文中的一个或多个说明性方面的用于特定服务管理装置的会话1的一部分的分解框图视图。在创建新会话期间,会话管理器可使用启动过程以创建虚拟服务主机过程容器,其可代管各种装置管理服务。在启动过程期间,会话管理器可创建初始化和通知接口602以与窗口的客户端/服务器运行时子系统(crss)和图形子系统以及认证子系统(例如winlogon、logonui)介接。另外,初始化和通知接口602可向装置管理服务a的会话例项504a提供初始化和中断接口。因此,装置管理服务a的会话例项504a可在调用了启动过程时开始其装置特定监视。装置管理服务a的会话例项504a还可相应地处置中断且重启通知。此外,初始化和通知接口602可准许装置管理服务a的会话例项504a接收代管会话特定通知(例如锁定、解锁、登录、预注销等)。此外,在启动过程期间,会话管理器还可创建与经过预注册的第三方服务相关联的任何其它启动过程且运用虚拟服务主机过程加载所述过程。举例来说,会话管理器可创建新过程,所述新过程将在由远程服务器402创建的每一会话中代管经过预配置的装置管理服务。

当虚拟化用户应用程序604中的一个或多个希望访问服务管理装置406的功能性时。重定向虚拟层608可将来自应用程序且打算用于服务管理装置406的通信(例如命令或指令)重路由到装置管理服务a的会话例项504a,从而可接着将所述通信重新格式化和/或以其它方式变换成服务管理装置406可理解的格式。装置管理服务a的会话例项504a接着可将经过变换的通信发送到服务管理装置406。作为响应,服务管理装置406可执行由经过变换的通信指示的功能。作为一实例,在服务管理装置406是智能卡406a的状况下,智能卡406a可检索用户的认证证书或执行某一其它功能。服务管理装置406可在适当时将响应性通信发送到应用程序。然而,重定向虚拟层608可将通信重路由到装置管理服务a的会话例项504a,从而可接着将响应性通信重新格式化和/或以其它方式变换成应用程序可理解的格式。

重定向虚拟层506a可拦截且检测发送到装置管理服务a的会话例项504a和从所述会话例项504a发送的每一通信。如果通信符合预定准则,那么重定向虚拟层可执行一动作(例如通信可被重新路由和/或特定资源可被虚拟化)。预定准则可在第三方或另一实体注册装置管理服务期间予以设定。

在一些情况下,预定准则可以是通信是否包含对全局对象/资源(例如非特定针对于会话的对象或资源)的引用。在这些情况下,重定向虚拟层506a可重定向与会话相关联且用于全局资源的通信以访问特定针对于会话的全局资源的虚拟例项。举例来说,重定向虚拟层506a可确定供会话使用的全局资源的虚拟例项是否存在于重定向数据库610和/或会话特定数据库606中。如果不存在,那么重定向虚拟层506a可产生供会话使用的全局资源的虚拟例项,将全局资源的全局例项的虚拟例项存储在重定向数据库610和/或会话特定数据库606中的一个或多个中,和更新存储在重定向数据库610中的映射以包含全局资源与全局资源的虚拟例项之间的对应关系。重定向虚拟层506a还可定向通信以访问特定针对于会话的全局资源的虚拟例项而非访问全局资源自身。否则,如果重定向虚拟层506a通过查阅存储在重定向数据库610中的映射来确定供会话使用的全局资源的虚拟例项存在,那么重定向虚拟层506a可使用所述映射以定向通信从而访问特定针对于会话的全局资源的虚拟例项而非访问全局资源自身。

在本文中所论述的许多实例中,预定准则可能是送达特定文件或存储器位置的写入或读取命令。作为一实例,如果通信是送达全局注册表数据库410中的被分配用于服务管理装置406的资源(例如存储器位置)和/或全局注册表数据库410中的全局装置特定信息的写入命令或读取命令,那么重定向虚拟化层506a可将那些命令重定向到会话特定数据库606且此类命令可能不会发送到全局注册表数据库410。每一会话(例如会话1……会话n)可与其自身的会话特定数据库606相关联,所述会话特定数据库606可以是供注册表数据库重定向使用的远程服务器402的逻辑存储器分区。

重定向虚拟层506a可查阅重定向数据库610,所述重定向数据库610可存储路由策略(例如注册表数据库410中的存储器位置到会话特定数据库606中的存储器位置的映射)。在使用所述映射的情况下,重定向虚拟层506a和/或会话管理器可从写入命令或读取命令检索全局注册表数据库410的既定存储器位置,且确定对应于全局注册表数据库410的存储器位置的会话特定数据库606的存储器位置。重定向虚拟层506a接着可重路由写入命令或读取命令,使得写入命令或读取命令将信息写入到会话特定数据库606的对应的存储器位置或从会话特定数据库606的对应的存储器位置读取信息,而非从全局注册表数据库410的最初指定存储器位置读取信息。作为一实例,对于写入命令,信息可被写入到会话特定数据库606的文件a,而非将信息写入到全局注册表数据库410的文件a,会话特定数据库606的文件a已被分配以供服务管理装置406使用。作为另一实例,对于读取命令,可从会话特定数据库606中的文件a读取信息,而非从从全局注册表数据库410中的文件a读取信息。

由于来自全局注册表数据库410(可由每一会话访问)的写入命令和读取命令到会话特定数据库606(可仅由其对应的会话访问)的重定向,因此在特定会话中运行的服务的一个例项可能不能够修改在另一会话中运行的服务的另一例项的资源(当两个会话都使用同一类型的服务管理装置406时)。通过利用所述重定向,可避免关于通过服务的一个例项将信息不当地覆写到全局注册表数据库410引起通过另一例项从全局注册表数据库410不准确地读取信息的以上实例。

另外,在一个或多个布置中,重定向虚拟层506a可基于所述映射而确定全局注册表数据库410中的既定存储器位置不具有会话特定数据库606中的对应的存储器位置。当特定数据库606中不存在对应的存储器位置时且当所述通信是送达全局/共享系统资源(例如全局注册表数据库410的存储器位置)时,重定向虚拟层506a可通过一个或多个策略来配置以虚拟化资源和/或分配会话特定数据库606中的存储器以对应于全局注册表数据库410中的既定存储器位置、将所述通信重定向到会话特定数据库606中的最新分配的存储器位置,和更新所述映射以反映新的对应关系。

在通信是读取命令且会话特定数据库606不具有存储在读取命令由重定向虚拟层506a所重定向到的存储器位置处的信息的情况下,重定向层506a可再次将读取命令重定向到全局注册表数据库410(例如读取命令中所指示的全局注册表数据库410的原始存储器位置)。在此状况下,会话管理器可将读取命令的全局注册表数据库410的存储器位置存储在会话特定数据库606中以供装置管理服务和应用程序稍后参考。另外或替代地,在一些实施例中,会话管理器可在启动过程期间运用默认值填入会话特定数据库606的一个或多个对应的存储器位置,而非路由读取命令以从全局注册表数据库410的存储器位置读取。在一个或多个布置中,用于会话特定数据库606的一个或多个存储器位置的默认值可由用户、管理员和/或装置管理服务a的会话例项504a预设。在一个或多个额外或替代布置中,默认值可以是当前存储在全局注册表数据库410的对应的存储器位置中的值。因此,存储在会话特定数据库606的对应的存储器位置中的值将匹配存储于全局注册表数据库410的存储器位置中的值,全局注册表数据库410的存储器位置被分配以供服务管理装置406或其装置管理服务a使用。

在一些实施例中,在装置管理服务的注册期间,第三方和/或另一实体可创建关于应在存储在重定向数据库610中的映射中为哪些全局资源或存储器位置分配会话特定虚拟化资源和/或会话特定存储器位置的指示。在此类实施例中,在启动过程期间(例如,在会话创建期间),会话管理器可查阅重定向数据库610以确定哪些资源和/或全局存储器位置(例如注册表数据库410的存储器位置)应具有被配置用于供特定会话使用的服务管理装置406或其装置管理服务a的对应的虚拟化资源和对应的存储器位置。

重定向虚拟层506a还可充当对象名称转换层。在一个或多个替代布置中,对象名称转换层可以是与重定向虚拟层506a分离的层。对象名称转换层可使用对象名称转换数据库612(在本文中也被称作转换数据库612),所述对象名称转换数据库612可存储名称转换策略以提供会话特定对象名称解析。

因为例如装置管理服务a的装置管理服务被设计成用于单个会话环境,所以此类服务可使用全局对象名称(例如不特定针对于例如会话1的特定会话的对象名称)。因此,为了使装置管理服务适应于多会话环境,全局对象名称可改变为会话特定对象名称。全局对象名称到会话特定对象名称的映射可存储在对象名称转换数据库612中,可在启动过程期间(例如在会话创建期间)分配且填入对象名称转换数据库612。在一些情况下,可在装置管理服务的注册期间指定用于装置管理的会话特定对象名称的分类。

参考图6中展示的会话1,重定向虚拟层506a可检测去往和来自装置管理服务a的会话例项504a的通信以确定通信是否含有全局对象名称(例如不特定针对于特定会话的对象名称)。重定向虚拟层506a可通过查阅存储在对象名称转换数据库612中的全局对象名称的列表来确定通信是否包含全局对象名称。如果通信包含全局对象名称,那么重定向虚拟层506a在对象名称转换数据库612中查询用于每一全局对象名称的会话特定对象名称,且在所述通信中运用会话特定对象名称替换全局对象名称。

类似地,重定向虚拟层608可检测去往和来自用户应用程序604的通信以确定通信是否含有全局对象名称(例如不特定针对于例如会话1的会话的对象名称)且在所述通信中可运用会话特定对象名称替换全局对象名称,所述会话特定对象名称可指示用于所述对象的会话。作为一实例,“foo”的全局对象名称可用会话特定对象名称“foo.session1”替换以指示所述对象特定针对于会话1。通过将系统的全局对象名称重命名为会话特定对象名称,装置管理服务a的会话例项504a可使用会话特定对象名称进行通信以确保会话边界得以维持和/或以其它方式不被其它会话越过。第三方供应商或合作伙伴可指定供会话使用的会话特定命名约定,使得装置管理服务可都在工作站和多会话平台中进行而无任何修改。因此,第三方供应商和合作伙伴可专注于统一服务模型且不会花费大量精力和时间来修改用于工作站和多会话平台的装置管理服务。

在一些实施例中,重定向数据库610和/或重定向层608可通过将全局对象名称重命名为会话特定对象名称来重定向用于文件的通信。

在一些实施例中且如图6所展示,会话(例如会话1)可包含装置驱动程序614,所述装置驱动程序614与装置管理服务a的会话例项504a相关联且与服务管理装置406通信。装置驱动程序614可驻留在远程服务器402和/或客户端装置404的内核空间中。在一些情况下,装置驱动程序614可以是在远程服务器402上执行的操作系统的一部分。在其它情况下,装置驱动程序614可以独立于在远程服务器402上执行的操作系统(例如不是所述操作系统的一部分)且可由第三方供应商供应。在这些情况下,装置管理服务a的会话例项504a可在用户模式中执行,而执行装置功能的实际驱动程序(例如装置驱动程序614)可在远程服务器402的内核空间中执行。

尽管以上结合图6的论述是参考一个服务管理装置和其对应的装置管理服务,但所述会话可包含第二服务管理装置和其对应的装置管理服务。所述会话可相对于第二服务管理装置和其对应的装置管理服务以类似方式操作。此外,对应于不同用户的不同会话可包含一个或多个服务管理装置和其对应的装置管理服务,且可以与上文结合图6所论述的方式类似的方式操作。

图7描绘根据本文中所论述的一个或多个说明性方面的虚拟化装置管理服务的会话启动和加载的说明性流程。在一个或多个实施例中,图7的步骤和/或其一个或多个步骤可由一个或多个计算装置执行。在其它实施例中,图7中说明的方法和/或其一个或多个步骤可体现在存储于计算机可读媒体(例如非暂时性计算机可读存储器)中的计算机可执行指令中。在一些情况下,图7的步骤中的一个或多个可以不同次序执行。在一些情况下,图7的步骤中的一个或多个可省略和/或以其它方式执行。

所述方法可在步骤处702开始,在所述步骤中,远程服务器402可通过启动过程在多会话虚拟化环境中发起和/或以其它方式创建会话。作为一实例,客户端装置404a处的用户可希望远程地访问在远程服务器402上执行的应用程序。所述用户可登录门户以访问由远程服务器402提供的虚拟化应用程序服务。远程服务器402可响应于接收到用户的认证证书而认证用户,且如果用户被认证,那么在由远程服务器402管理的多会话环境中针对所述用户发起会话。如果未认证用户的认证证书,那么远程服务器402可将指示未认证用户的消息发送到客户端装置404a以用于显示给用户。

如果已认证用户,那么在步骤704处,远程服务器402可识别连接到用户的客户端装置的服务管理装置且确定每一对应的装置管理服务是否已被预配置(例如在创建此会话之前注册和/或以其它方式设置)。第三方实体可注册和/或以其它方式配置其装置管理服务以用于多会话环境中。举例来说,在装置管理服务的配置期间,一个或多个路由策略(例如存储器位置、文件、数据库等的映射)和文件或对象名称转换策略可被确定(例如由第三方选择)以供重定向虚拟层稍后使用。如果尚未预配置装置管理服务,那么远程服务器402可能不能够充分将通信(例如写入命令、读取命令等)重定向到会话特定数据库和/或将全局对象名称转换为会话特定对象名称,且因此,可能不会导致上文所论述的覆写和不准确的读取问题。对于与连接到用户的客户端装置的服务管理装置相关联的且尚未进行预配置以准许创建装置管理服务、路由策略和/或重命名策略的虚拟化例项中的一个或多个的每一装置管理服务,远程服务器402可进行到步骤710且开始其它会话过程(例如用以针对所述用户设置会话的其它过程)。此外,警示消息可从远程服务器402传输到用户的客户端装置4064以用于显示给用户。警示消息可指示连接到用户的客户端装置404的服务管理装置406可能不会恰当地运行且可能显示不准确的信息。另外,远程服务器402可阻止将来自未注册和/或未经过配置的装置管理服务的命令写入到全局注册表数据库410以确保存储在全局注册表数据库410中的信息相对于多会话环境的其它会话保持准确。

对于与连接到用户的客户端装置的服务管理装置相关联且已经预配置以准许创建装置管理服务、路由策略和/或重命名策略的虚拟化例项中的一个或多个的每一装置管理服务,远程服务器402可在步骤706处初始化装置管理服务主机和加载一个或多个经过预配置的装置管理服务的虚拟化会话例项。举例来说,远程服务器402可在会话1中创建装置管理服务a的会话例项504a和装置管理服务b的会话例项504b。装置管理服务的虚拟化会话例项可包含装置管理服务的所有功能性。

在步骤708处,远程服务器402可针对在步骤706中创建的装置管理服务的每一会话例项建构重定向虚拟层(例如重定向虚拟层506、608)。在一个或多个布置中,在装置管理服务的注册和/或配置期间,远程服务器402可确定和/或以其它方式从装置管理服务或其相关联第三方实体接收路由策略和名称转换策略。远程服务器402接着可使用此类策略以配置重定向虚拟层。此外,远程服务器402可产生会话特定数据库606、重定向数据库610和/或对象名称转换数据库612(如果尚未产生的话)。

在步骤710处,远程服务器402可发起其它会话过程以用于在多会话环境中创建用户的会话。举例来说,远程服务器402可创建用户的应用程序的虚拟化例项以供用户的客户端装置使用。

图8描绘根据本文中所论述的一个或多个说明性方面的启用应用程序和使用所述应用程序和服务管理装置的说明性流程。在一个或多个实施例中,图8的步骤和/或其一个或多个步骤可由一个或多个计算装置执行。在其它实施例中,图8中说明的方法和/或其一个或多个步骤可体现在存储于计算机可读媒体(例如非暂时性计算机可读存储器)中的计算机可执行指令中。在一些情况下,图8的步骤中的一个或多个可以不同次序执行。在一些情况下,图8的步骤中的一个或多个可省略和/或以其它方式执行。

所述流程可在步骤802处开始,在步骤802中,远程服务器402可在多会话环境的会话中启用应用程序的虚拟化例项。举例来说,远程服务器402可创建应用程序的虚拟化会话特定例项以用于一个会话中。所述例项可包含应用程序的所有功能性,且可由远程服务器402使用由用户的客户端装置404提供的输入来执行。输出可发送到客户端装置404以用于显示给用户。

在步骤804处,远程服务器402可确定应用程序的虚拟化应用程序例项中的一个或多个(例如每一个)与装置管理服务的虚拟化会话例项中的一个或多个(例如每一个)之间是否存在开放的通信信道。举例来说,如果通信在装置管理服务的虚拟化会话例项中的至少一个与同一会话内的虚拟化应用程序例项中的至少一个之间传输,那么可存在开放的通信信道。如果不存在开放的通信信道,那么所述过程可进行到在下文详细论述的步骤808。否则,如果存在开放的通信信道(例如通信在装置管理服务的虚拟化会话例项与虚拟化应用程序例项之间传输),那么重定向虚拟层可拦截且检测所述通信以识别对例如非会话特定存储器位置、文件、注册表数据库410等的全局资源的引用,且还识别全局对象名称(例如系统对象名称、操作系统对象名称等)。

在步骤806处,重定向虚拟层可针对对例如非会话特定存储器位置、文件、注册表数据库410等全局资源的引用中的每一个执行通信重定向和/或系统对象名称转换,且还针对在步骤804中识别的全局对象名称(例如系统对象名称、操作系统对象名称)执行通信重定向和/或系统对象名称转换。

作为一实例,来自应用程序(或替代地,来自装置管理服务的会话例项)的通信可以是送达不特定针对于任何会话的全局注册表数据库410、文件或其它存储器位置的写入命令。重定向虚拟服务器506可通过查阅重定向数据库610确定是否存在特定针对于与通信相关联的会话的对应的存储器位置或文件。如果不存在会话特定数据库(例如会话特定数据库606),那么重定向虚拟层506可创建会话特定数据库606,所述会话特定数据库606可以是远程服务器402的存储器分区。一旦创建或如果会话数据库606已经存在但并不具有映射到写入命令中指定的全局注册表数据库410的存储器位置或文件的存储器位置或文件,那么重定向虚拟层506可分配会话特定数据库606中的存储器位置或文件,将全局注册表数据库410的存储器位置或文件映射到会话特定数据库606的存储器位置或文件,且更新用于存储在重定向数据库610中的会话的映射。此外,写入命令可被重定向以将其信息写入到会话特定数据库606的存储器位置或文件,且可能不会将其信息写入到全局注册表数据库410的既定存储器位置或文件。

作为另一实例,来自应用程序(或替代地,来自装置管理服务的会话例项)的通信可以是来自不特定针对于任何会话的全局注册表数据库410、文件或其它存储器位置的读取命令。重定向虚拟服务器506可通过查阅重定向数据库610确定是否存在特定针对于与通信相关联的会话的对应的存储器位置或文件。如果不存在会话特定数据库(例如会话特定数据库606)或如果会话特定数据库606不具有映射到全局注册表数据库的既定存储器位置或文件的存储器位置或文件,那么重定向虚拟层可准许读取命令从不特定针对于任何会话的全局注册表数据库410、文件或其它存储器位置进行读取。否则,如果会话特定数据库606中存在映射到全局注册表数据库410的既定存储器位置或文件的存储器位置或文件,那么重定向虚拟层506可重定向读取命令以读取存储于会话特定数据库606中的存储器位置或文件中的信息而非从全局注册表数据库410的既定存储器位置或文件读取信息。

作为又一实例,重定向虚拟层506、608可针对对不特定针对于任何会话的全局系统对象名称的任何引用运用对象名称转换数据库612中发现的通信的对应的会话特定对象名称来重命名所述通信中的引用。举例来说,全局对象名称“foo”可重命名为“foo.session1”以用于会话1且重命名为“foo.session2”以用于会话2。

在步骤808处,远程服务器402可进行到正常应用程序启用。举例来说,用户可通过用户的客户端装置与应用程序的虚拟化例项交互。应用程序的虚拟化例项的功能可由远程服务器402执行。

在步骤810处,重定向虚拟层506、608可确定虚拟应用程序例项是否试图访问和/或能够访问会话特定数据库606,所述会话特定数据库606可包含经过重定向的注册表和/或经过重定向的文件系统。如果是这样的话,那么除非全局系统对象的虚拟化会话特定例项已经被创建且存储在会话特定数据库606中,否则重定向虚拟层506、608可在步骤812中创建全局系统对象的虚拟化会话特定例项且将其存储在会话特定数据库606中。此外,重定向虚拟层506、608可更新用于存储在重定向数据库610中的会话的映射以包含全局系统对象的虚拟化会话特定例项的位置和其与全局系统对象的对应关系。因此,应用程序例项可访问且使用全局系统对象的虚拟化会话特定例项,且从服务管理装置检索数据。另外,当重定向虚拟层506、608拦截全局系统对象的后续通信时,全局系统对象可使用重定向数据库610以确定全局系统对象是否具有全局系统对象的对应的虚拟化会话特定例项,且如果是这样的话,那么可被指示使用全局系统对象的虚拟化会话特定例项。其它会话可能无法访问全局系统对象的虚拟化会话特定例项。否则,如果应用程序例项不试图和/或不能够访问会话特定数据库606,那么全局系统对象可能无法在步骤814中被虚拟化。

在一些情况下,在步骤804和/或806处,重定向虚拟层可虚拟化应用程序与装置管理服务的会话例项之间的通信信道。另外,在步骤810和/或812处,重定向虚拟层可虚拟化供应用程序和装置管理服务的会话例项使用的各种类型的资源。

在一些实施例中,重定向虚拟层可执行文件系统转换。举例来说,重定向虚拟层将与会话相关联的消息所路由到的位置可取决于与请求相关联且用于所述位置的写入请求是否已经被接收。与会话相关联的用于全局注册表数据库410的位置的包含第一或初始写入请求的每一写入请求可重定向到对应于全局注册表数据库410的位置的会话特定目录606的位置且更新存储在重定向数据库610中的映射以反映对应关系。来自文件的读取请求将继续来自原始文件,直到试图(例如通过写入请求)改变文件的访问和/或内容为止。对于在写入访问后打开的读取请求,文件将自动重定向到会话特定筒仓(例如会话特定目录606)。作为一实例,重定向虚拟层可响应于接收到用于全局注册表数据库410的位置的读取请求而通过使用存储在重定向数据库610中的映射来确定是否已经存在与会话相关联的到全局注册表数据库410的位置的先前所拦截写入访问。如果是这样的话,重定向虚拟层可将读取请求重路由到会话特定数据库606的对应于全局注册表数据库410的位置的位置以读取信息。否则,如果不存在与会话相关联的到全局注册表数据库410的位置的先前写入访问,那么重定向虚拟层可将读取请求路由到全局注册表数据库410的位置以读取信息。

如本文中所使用,当会话中的组件(例如重定向虚拟层)据称在执行功能时,远程服务器402可执行所述功能。

尽管已经以特定地针对结构特征和/或方法动作的语言来描述主题,但应理解,所附权利要求书中所界定的主题未必限于上文所描述的特定特征或动作。事实上,上文所描述的特定特征和动作是被公开作为实施权利要求书的实例形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1