描述了用于在虚拟环境中运行附加组件的系统和方法。可以通过在主操作系统中的组件代理和在虚拟环境中运行的服务器进程之间建立通信链路来在该虚拟环境中执行附加组件。该服务器进程基于转发来自操作系统的命令的组件代理所转发的命令来执行附加组件。
【技术实现步骤摘要】
【国外来华专利技术】在虚拟环境中运行附加组件 背景在应用程序虚拟化中,主操作系统在计算设备上创建模拟计算机环境和虚 拟环境,以执行虚拟应用程序而无需在本地安装虚拟应用程序且无需改变主操 作系统。虽然虚拟应用程序使用本地硬件资源本地地执行,并且可以与主操作 系统交互,但是可以向主操作系统隐藏虚拟环境的各方面(例如注册表项、文 件等)。这是可能的,因为虚拟环境包含在计算设备上执行虚拟应用程序所需的各 组件,诸如注册表项、文件、环境变量、用户界面元素、以及全局对象等。虚 拟环境中的这些组件对于主操作系统而言是不可见的。诸如外壳扩展、插件等 与虚拟应用程序相关联的附加组件对于主操作系统而言也是不可见的,因为主 操作系统不能访问附加组件的注册表项或文件。结果,主操作系统一直不知道 虚拟环境中可用的附加组件,并且不能使用虚拟环境中可用的附加组件所提供 的功能。概述提供本概述以便以介绍与在虚拟环境中运行应用程序的附加组件相关的 概念。这些概念在以下详细描述中进一步描述。本概述并不旨在标识出所要求 保护的主题的必要特征,也不旨在用于确定所要求保护的主题的范围。在一个实施例中,包括在操作系统中的组件代理与包括一个或多个虚拟应 用程序的虚拟环境通信。附加组件与该一个或多个虚拟应用程序相关联,并且 组件服务器进程接收由该组件代理转发的命令并且执行附加组件。附图简述参考附图描述了详细描述。在附图中,参考标号的最左位标识了该参考标 号首次出现在其中的附图。在所有附图中使用相同的标号来指示相同的特征和 组件。附图说明图1示出了在一个实施例中用于在虚拟环境中运行附加组件的示例性系统。图2示出了在另一实施例中用于在虚拟环境中运行附加组件的示例性系统。图3示出了用于在虚拟环境中运行附加组件的示例性过程流程图。图4示出了示例性的基于计算的设备。详细描述以下专利技术描述了用于在虚拟环境中运行附加组件的系统和方法。附加组件 可以通过在主操作系统(即操作系统)和在虚拟环境中运行的服务器进程之间 建立通信链路来在虚拟环境中执行。操作系统包括与在服务器进程中执行的附 加组件进行通信的组件代理。所描述的系统和方法还允许通过网络按需访问和 使用虚拟化的附加组件。虽然所描述的用于在虚拟环境中运行附加组件的系统和方法的各方面可 以在任何数量的不同计算系统、环境、和/或配置中实现,但是在以下示例性系 统体系结构的上下文中描述各实施例。图1示出了用于在虚拟环境中运行附加组件的示例性系统100。系统100 可以是诸如个人计算机等独立计算设备的一部分或被包括在其中,或者可以作 为若干计算设备的一部分来包括。附加组件可以是外壳(shell)扩展、插件、或可以向现有应用程序提供附加功能的任何其他类似的实体。为此,系统100 包括计算设备上的操作系统102和虚拟环境104。在一个实现中,系统100可 以在单个计算设备上实现,以便于在该计算设备上运行的一个或多个虚拟环境 之间的资源共享。计算设备可以被实现为诸如台式计算设备、膝上型计算机、 移动计算设备等任何已知的计算设备。此外,操作系统102包括与虚拟环境104通信的组件代理106。虚拟环境 104包括组件服务器进程108和诸如虚拟应用程序110等一个或多个虚拟应用 程序。组件服务器进程108包括与虚拟应用程序相关联的一个或多个附加组件, 诸如与虚拟应用程序110相关联的附加组件112。为了访问由驻留在虚拟环境104中的附加组件112所提供的功能,组件代 理106被配置成与组件服务器进程108通信以便执行附加组件112。为此,组 件代理106可以使用诸如远程过程调用114等应用程序接口 (API)来与组件 服务器进程108通信。5在示例性操作中,对于虚拟环境104中可用的每个附加组件112,向操作 系统102注册组件代理106。注册可以例如在计算设备上模拟虚拟环境104时 执行。为了访问附加组件112,操作系统102调用对应的组件代理106。如果 操作系统102首次调用组件代理106,则组件代理106在虚拟环境104中启动 组件服务器进程108,并且使用远程过程调用114与组件服务器进程108通信。 远程进程调用114允许在虚拟环境(例如虚拟环境104)中执行来自组件代理 106的过程或命令,而无需为该交互提供显式的代码细节。一个示例实施包括其中有多于一个虚拟环境在系统100中运行的情况,组 件代理106检査在其中启动组件服务器进程108的虚拟环境(例如虚拟环境 104)是否是正确的虚拟环境。为此,组件代理106确定对应的附加组件112 在虚拟环境104中是否可用。一旦标识了正确的虚拟环境(例如虚拟环境104), 则组件代理106在所标识的虚拟环境(例如虚拟环境104)中启动组件服务器 进程108。在另一示例性实施例中,组件代理106使用足够的信息来注册以便 直接连接到在适当的虚拟环境中运行的服务器。如果服务器没有在正确的虚拟 环境中运行,则组件代理可以检测到这一点并且启动服务器。在又一示例性实 施例中,组件代理106能够访问每个虚拟环境的清单,以确定在不启动虚拟环 境内的服务器并且不与该服务器通信的情况下支持什么组件。组件服务器进程108接收由组件代理106转发的命令并且相应地执行附加 组件112。该命令可以包括用于在虚拟环境104中实现共同界面的指令,例如 更新上下文菜单、共享菜单等。如果操作系统102先前调用了组件代理106,并启动了组件服务器进程 108,则组件服务器进程108直接将所有命令转发给附加组件112以供进一步 的处理。例如,操作系统102可以是来自微软 公司的>\^11(10 5 操作系统,而 附加组件112可以是在虚拟环境104中可用的^\^11(10 3 操作系统外壳扩展。 ^\^1010\¥3 操作系统通过外壳扩展代理(例如组件代理106)与虚拟环境014交 互,以便在服务器进程(例如组件服务器进程108)中创建外壳扩展(例如附 加组件112)的对应实例。 一旦创建了外壳扩展的实例,则Windows 操作系统 通过经由外壳扩展代理(例如组件代理106)将所有命令转发给服务器进程(例 如组件服务器进程108)、服务器进程进而将命令转发给外壳扩展来访问外壳 扩展。可以理解,当有若干虚拟环境在计算设备上运行时,可以使用类似的方法6来运行附加组件。此外,每个虚拟环境可以具有在其上运行的若干虚拟应用程 序以及附加组件。此外,可以有同一应用程序和附加组件的多个版本在计算设 备上的不同虚拟环境中运行。图2示出了在另一实施例中用于在虚拟环境中运行附加组件的示例性系统200。系统200可以被实现为诸如个人计算机等独立计算设备或在包括多个计 算设备的服务器-客户机体系结构中实现。附加组件可以是外壳扩展、插件、或 可以向现有应用程序提供附加功能的任何相似的实体。为此,系统200包括客 户机设备上的操作系统202、虚拟环境204、和服务器组件206。在一示例中, 虚拟环境204可以由主存在服务器组件206上的应用程序来模拟。操作系统202包括与虚拟环境204通信的组件代理208。虚拟环境204包 括组件服务器进程210、附加组件212、和诸如虚拟应用程序214等一个或多 个虚拟化的应用程序。此外,其他附加组件216可以本文档来自技高网...
【技术保护点】
一种在一个或多个计算设备上实现的系统(200),包括: 操作系统(202); 包括在所述操作系统中的组件代理(208); 与所述组件代理通信的虚拟环境(204); 所述虚拟环境中的组件服务器进程(210); 所 述虚拟环境中的一个或多个虚拟应用程序(214);以及 与所述一个或多个虚拟应用程序(214)相关联的一个或多个附加组件(212),其中所述组件服务器进程接收由所述组件代理转发的命令并且执行所述附加组件。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:NA雅格布森,JM希恩,
申请(专利权)人:微软公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。