虚拟容器的部署和管理的利记博彩app

文档序号:6594721阅读:171来源:国知局
专利名称:虚拟容器的部署和管理的利记博彩app
技术领域
本发明通常涉及信息技术(IT)系统,尤其是涉及用于在企业环境中部署和管理 应用程序的系统和方法。
背景技术
企业环境包括多个管理端点,例如用户工作站、开关和路由器。该企业环境由对管 理端点执行各种信息技术(IT)任务的管理计算机管理。这些任务可包括在端点上部署或 管理软件应用程序,或可包括保持端点安全。企业往往希望将应用程序安全地部署到具有特定的配置的管理端点。还希望以安 全和受控的方式在管理端点上运行应用程序,例如符合许可限制或防止用户不知不觉地改 变端点的配置。以轻便的方式部署应用程序以便应用程序的正确运行不依赖于端点的特定 配置也可能是优选的。所需要的是用于以安全、受控和轻便的方式将软件安装并维持在管理端点上的系 统和方法。

发明内容
上述的需要由用于使用容器在管理端点上虚拟化应用程序的系统、方法和计算机 程序产品满足。管理端点从IT自动化装置接收虚拟化容器。虚拟化容器包括应用程序和 虚拟化模块。虚拟化模块包括用于虚拟化应用程序的计算机程序指令。由应用程序在执行 期间进行的操作系统API调用被拦截,且计算机程序指令的一部分基于该操作系统API调 用被执行。计算机程序指令更改应用程序的行为,以实现应用程序的文件和数据的虚拟化。 虚拟化容器以及可支持虚拟化容器的部署和更新的代理,可从IT自动化装被部署及更新。


图1是一个示出在一个实施方式中包括信息技术(IT)自动化装置的环境的高级 图示,该信息技术自动化装置用于在管理端点106上部署并管理容器;图2是一个示出在一个实施方式中用于充当装置和/或管理端点的计算机的高级 方框图;图3是一个示出在一个实施方式中的管理端点的方框图;图4是一个示出在一个实施方式中的IT自动化装置的方框图;图5是一个示出在一个实施方式中用于使用容器来虚拟化应用程序的方法的流 程图6是一个示出在一个实施方式中用于在企业环境中管理容器的方法的流程图。附图仅为了说明的目的而描述本发明的实施方式。本领域技术人员将容易从下面 的描述中认识到,可使用本文所示的结构和方法的可选实施方式而不偏离本文所述的发明 的原理。
具体实施例方式图1是一个示出在一个实施方式中包括用于在管理端点106上部署和管理容器 108的信息技术(IT)自动化装置102(装置)的环境100的高级图示。也称为端点的管理 端点106是计算设备,例如用户工作站或路由器。装置102可以由例如IT职员之一的操作 员配置成部署并管理各种类型的容器108。图1示出具有一个装置102和两个管理端点106 的环境100。然而,环境100可包括与装置102进行通信的数千个管理端点106。此外,环 境100可包括多个装置102,一些装置可能用于备份或负载平衡目的。装置102和管理端点 106通过网络104,例如互联网或公司内联网,进行通信。管理端点106包括由装置102提供,也称为虚拟容器的容器108。容器108可包括 在管理端点106上运行的应用程序,例如字处理器或系统实用程序。容器108通过在应用 程序和管理端点106的操作系统之间添加一层来提供虚拟化。容器108可更改应用程序的 行为,以便使应用程序及其数据与管理端点106的其余部分隔离。这可增加应用程序的轻 便性,并防止应用程序负面地影响管理端点106的其余部分(例如,通过包含在应用程序中 的恶意软件)。容器108也可限制应用程序的使用以符合许可限制或为了安全或其它依从 性原因。在一个实施方式中,应用程序的行为通过拦截应用程序对操作系统所提供的API 进行的调用来更改。容器108可由装置102产生并部署到端点106。单个容器可被部署到 很多个端点106,且单个端点可具有多个容器(例如,用于多个应用程序)。图2是一个示出在一个实施方式中用于充当装置102和/或管理端点106的计算 机200的高级方框图。此图示出了耦合到芯片集204的至少一个处理器202。此外,存储器 206、存储设备208、键盘210、图形适配器212、指示设备214和网络适配器216也耦合到芯 片集204。显示器218耦合到图形适配器212。在一个实施方式中,芯片集204的功能由存 储控制器集线器220和I/O控制器集线器222提供。在另一实施方式中,存储器206直接 耦合到处理器202而不是芯片集204。存储设备208是任何计算机可读存储介质,例如硬盘驱动器、光盘只读存储器 (⑶-ROM)、DVD或固态存储设备。存储器206保存处理器202所使用的指令和数据。指示设 备214可为鼠标、跟踪球或其它类型的指示设备,并与键盘210结合使用来将数据输入到计 算机系统200中。图形适配器212在显示器218上显示图像和其它信息。网络适配器216 将计算机系统200耦合到局域网或广域网。如在本领域中已知的,计算机200可具有与图2所示的那些部件不同的和/或除 了图2所示的那些部件以外的部件。此外,计算机200可以缺少某些示出的部件。在一个 实施方式中,充当装置102的计算机200缺少键盘210、指示设备214、图形适配器212和/ 或显示器218。而且,存储设备208可为本地的和/或远离计算机200(例如体现在存储区 域网(SAN)内)。如在本领域中已知的,计算机200适合于执行用于提供本文所述的功能的计算机程序模块。如本文使用的,术语“模块”指用来提供规定的功能的计算机程序逻辑。因此,模 块可以在硬件、固件和/或软件中实现。在一个实施方式中,程序模块存储在存储设备208 上、被装入存储器206中,并由处理器202执行。本文所述的实体的实施方式可包括其它模块和/或与这里所述的模块不同的模 块。此外,在其它实施方式中,模块的属性的功能可由其它或不同的模块执行。而且,为了 使説明更清楚和方便,“模块”這术语有时候在这个描述中被省略。图3是一个示出在一个实施方式中的管理端点106的方框图。如上所述,管理端 点106可为用户工作站。管理端点106执行操作系统302,例如微软Windows Vista、Mac OS X或Linux。操作系统302能够运行各种应用程序,并提供各种应用程序接口(API)调 用以支持应用程序。由OS提供的API的例子包括对运行应用程序、访问文件和在显示器上 创建视窗的调用。操作系统302包括可存储各种系统文件、应用程序和用户数据的文件系 统304。在一个实施方式中,文件系统304存储在管理端点106的存储设备208上。如上所述,容器108可由装置102部署到管理端点106。容器108能够在管理端点 上执行应用程序324,同时通过虚拟化为应用程序提供封闭式环境。管理端点106可具有多 个容器108A和108B。容器108可执行多个应用程序324,虽然为了清楚起见,下面的讨论 使用了单个应用程序。容器108的应用程序3M包括应用程序文件3M和应用程序设置320。这些应用 程序文件314包括各种可执行文件、应用程序数据文件和应用程序3M执行所需要的库。应 用程序设置320包括对应用程序324的设置和选项,例如记录值。应用程序设置320还可 存储在文件中。各种后台程序例如Daemons或Windows服务也可通过应用程序文件314和 /或应用程序设置320规定。一组应用程序文件314和应用程序设置320最初被包括在容器108中,但应用程 序文件和应用程序设置可随着时间由执行应用程序3M更改。在一个实施方式中,应用程 序文件314和应用程序设置320包括容器108的应用程序3M所需的所有文件和设置。这 容器被称为“完全容器化的”容器。在没有被完全容器化的容器108中,应用程序3M所使 用的一些文件和设置可位于容器的外部(例如,在也被操作系统302使用的文件系统304 的一部分中)。这可能对减小容器108的大小是有用的,但這也可能减少容器的独立性、轻 便性和安全性。在一个实施方式中,应用程序文件314和应用程序设置320存储在容器108内的 影子复制316中。这个影子复制316包括由应用程序3M预期的目录结构。在一个实施方 式中,影子复制316存储在对容器108保留的文件系统304的目录中。例如,在Windows操 作系统中,特定容器108的文件可都位于“c:\containers\containl”目录中。如果所包含 的应用程序3M预期库位于“c:\windows\system32\libxx. dll”处,则该容器108所需要 的特定的库可被存储为 “c:\containers\containl\windows\system32\libxx. dll”。文件 可实际上存在于“c:\windows\system32\libxx. dll”,然而这个文件不是容器108的部分, 且不被完全容器化的容器中的应用程序3M使用。因为应用程序3M只需要某些文件,一些正常包含很多文件的影子复制316的目 录(例如,系统文件目录)可只包含很少的文件。此外,一些可能是空的目录,可在如果任 何文件需要由应用程序3M创建時加以利用。空目录提供应用程序324的预期目录结构。
7在没有被完全容器化的容器108中,如果所需要的文件没有在影子复制316中找到,它可从 文件系统304的其余部分搜索到。容器108可包括用于启动应用程序3 的初始用户界面322,例如链結。一个链接 到到应用程序文件314内的适当可执行文件的链結免却用户必须行进到影子复制316中的 位置以启动应用程序324,并从用户的观点看维持应用程序直接在操作系统302上运行的 现象。初始用户界面322可以是链結、快捷方式、URL或放置在方便的位置处例如用户桌面 上的其它用户界面元素。薄膜310和虚拟化模块312与容器初始化模块318协作实现容器108的虚拟化功 能。虚拟化功能可更改应用程序功能(如应用程序文件314和应用程序设置320所提供的 应用程序功能)以实现例如数据隔离、容器管理或应用程序用户接口的更改。容器初始化模块318开始容器108的虚拟化功能。在一个实施方式中,容器初始 化模块318在应用程序被执行时被调用。容器初始化模块318确定最近执行的应用程序是 否是来自容器108内的应用程序,或是直接安装在操作系统302中(即,不在容器中)的应 用程序。如果它被确定为不在容器108中的应用程序,则容器初始化模块318允许应用程 序正常执行而不加以干预。如果它被确定为在容器108内的应用程序324,则容器初始化模 块313识别容器108并执行或启动该容器的虚拟化模块312 (在下面进一步描述)。容器初 始化模块318接着可允许应用程序324的执行继续进行。容器初始化模块318安装在管理端点106的操作系统302中,并可由管理端点上 的多个容器108使用。在一个实施方式中,每当新的应用程序被启动时,操作系统302就通 知容器初始化模块318。容器初始化模块318可与操作系统302挂钩,以便接收这些通知。 在一个实施方式中,容器初始化模块318监控操作系统302的行动以确定新的应用程序何 时被启动。容器初始化模块318可根据在文件系统304中的应用程序的位置来确定应用程 序是否容器108的一部分。在一个实施方式中,容器初始化模块318可维持安装在端点上 的容器化的应用程序324的签名的列表,并使用该列表来确定最近执行的应用程序是否被 容器化。虚拟化模块312为特定的容器108提供虚拟化功能。虚拟化模块312可充当管理 应用程序324的一种管理程序。虚拟化模块312在执行应用程序3M和操作系统302之间 插入一层,允许根据如上所述管理政策(例如,由于安全或许可原因的限制使用,改变应用 程序外观,等等)控制和抑制应用程序。在一个实施方式中,虚拟模块312使代码与各种OS API调用挂钩以拦截这些调用并执行期望的操作。在一个实施方式中,虚拟化模块312在后 台执行并监控应用程序以拦截OS API调用。虚拟化模块312可配置成只拦截与同一容器 108相关的来自应用程序324的OS API调用,以尽量减少在处理器202上的任何额外的载 荷或其它系统性能的降低。在一个实施方式中,虚拟化模块312拦截来自容器108的应用程序324的OS API 调用。例如,如果应用程序3 进行OS API调用以将文件写到文件系统304,则这个OS API 调用由虚拟化模块312拦截。虚拟化模块312中的代码可接着使写入出现在不同的位置 处。这可用以保持文件与影子复制316内的容器108相关并与文件系统的其余部分隔离, 并且,当应用程序不在容器中时,对用户维持文件被写到正常的位置的现象。例如,如果用 户将文件保存到 "c:\program_files\wordprocessor\userfiles\docl. txt“,应用程序因此进行 OS API 调用以将文件写到 “c:\program_files\wordprocessor\userfiles\docl. txt”,则虚拟化模块312可拦截该调用,并更改该调用的文件名参数,以使文件实际上被写 到"c \containers\containl\program_f iles\wordprocessor\userf iles\docl. txt,,。虚 拟化模块312可对其它文件操作例如文件读取执行类似的重定向。这些重定向可根据容器 是否如上所述被完全容器化或部分容器化来不同地执行。虚拟化模块312也可拦截并更改其它类型的OS API调用。可被更改的其中一类 的OS API调用是导向到管理端点的显示器218的调用。例如,应用程序视窗的标题栏可被 更改以说明应用程序3M在容器108中运行。虚拟化模块312也可为了安全或许可原因而 限制应用程序324的使用。例如,在网页浏览应用程序中,如果用户试图下载可能危险的 可执行文件,浏览器所调用的从远程位置取回文件的OS API功能可被拦截,且操作可被阻 止,或可在确定是否允许OS API调用继续进行之前对文件执行进一步的检查。当应用程序 3 被执行时,容器虚拟化模块318可以调用虚拟化模块312中的初始化功能。初始化功能 在应用程序3M被执行时可为特定的用户建立用户环境,且在应用程序被终止时可整理环 境。初始化功能可启动任何所需的服务或deamons。薄膜310可包括指定容器108的行为的信息。在薄膜310中的信息可由虚拟化模 块312读取,以确定虚拟化模块312在拦截API调用或初始化用户环境时应采取什么行动。 薄膜310可规定对应用程序324的各种用户偏好,并可规定对应用程序的外观进行的各种 更改。使用于网页浏览器应用程序时,薄膜可包括被列入白名单或被列入黑名单的网站的 列表。当API被网页浏览器应用程序调用以从用户指定的网站取回数据时,虚拟化模块312 可拦截该调用,并可在薄膜310中检查网站的列表,以在允许API调用继续进行之前确定网 站是否被列入黑名单。薄膜310可包括基于软件许可证或公司政策的使用限制。虚拟化模块312可查询 这些限制以确定是否允许特定API调用或是否允许应用程序执行。薄膜310还可存储虚拟 化模块312所收集的使用信息。例如,在网页浏览器应用程序中,每当用户访问网站时,虚 拟化模块312可将网站的名称存储在薄膜310中。代理306通过网络104与装置102进行通信,并对管理端点106执行由装置102指 示的各种管理功能,。代理306还可将来自管理端点106的信息提供到装置102。代理306 可安装在管理端点106上作为端点的初始建立过程的部分。代理306可将容器初始化模块 318安装在管理端点106上(例如,在从装置102下载模块之后)。代理306还可将从装置 102接收的容器108安装在管理端点106上。容器108的影子复制316可如上所述存储在 容器的影子复制的指定位置处。容器108的薄膜310和虚拟化模块312可存储在用户不可 写入的文件系统304中的特定位置上。代理306也可更新装置102所指示的容器。例如,装置102可将命令发送到代理 306,以如上所述,将某些网站添加到网页浏览器应用程序的黑名单。响应于该命令,代理 306可更改薄膜310中的数据以包括网站作为被列入黑名单的网站。此外,代理306可在薄 膜310中设置开关,以根据来自装置102的命令启用或禁止应用程序3M执行。这允许管 理员容易启用或禁止应用程序3M在端点106上的执行(包括在应用程序被执行时立即禁 用应用程序)。代理306也可从端点106移除容器108。如果与容器108相关的文件限于 影子复制316,该移除可能涉及影子复制的简单删除(以及薄膜310和虚拟化模块312的移除),而不影响操作系统302或其它应用程序。有时候,虚拟模块312的更新可被产生并存储,用于分布在装置102处。代理306 有时可在端点106处检查装置102以找到容器108中的虚拟化模块312的更新版本。这个 检查可通过例如比较版本号或文件签名来完成。如果代理306确定有更新的虚拟化模块 312,代理可下载其虚拟化模块并安装它来代替当前的虚拟化模块。代理306可类似地更新 薄膜310、应用程序文件314和应用程序设置316。用于虚拟化应用程序的如上所述的容器108的使用可防止用户执行危险或被禁 止的行动,并可监控和限制应用程序324的使用。容器108也可将应用程序324的任何影 响(包括恶意软件的影响)保持在影子复制316内,并保护的管理端点106和环境100的 其余部分。容器108还通过在部署时为影子复制316内的应用程序提供必要的文件来增加 应用程序324的轻便性。在一个实施方式中,容器108可安装在来自便携式存储设备的管 理端点106上。图4是一个示出在一个实施方式中的IT自动化装置102的方框图。如上所述,装 置104可用于在管理端点106上创建、部署和管理容器108。在一个实施方式中,容器创建模块402用于创建将被部署在管理端点106上的容 器108。系统管理员可将特定应用程序324(例如,字处理应用程序)的安装程序提供到容 器创建模块402。这个安装程序可包括包含应用程序文件以及安装脚本或可执行程序的程 序包。一个例子是由微软公司创建的Windows安装器所使用的“MSI”文件。系统管理员也 可将额外的信息提供给容器创建模块402,以使它能够执行安装程序并创建容器108。这个 额外的信息可指定运行该安装的操作系统(例如,微软Windows)以及被提供给安装程序的 各种选项或参数。额外的信息也可指定升级机器(例如,使用IP地址),安装程序可在升级 机器上运行来创建容器108。在一个实施方式中,升级机器可以是装置104本身。容器创建模块402包括捕获模块414,其可在升级程序上的安装程序的执行期间 捕获各种事件。捕获模块414捕获在安装期间创建的各种文件(例如,应用程序和库)及 其在文件系统内的位置。捕获模块414也捕获对环境中的设置例如保存到寄存器的设置进 行的更改。在一个实施方式中,捕获模块414捕获一些或全部安装程序的输入和输的出操 作。捕获模块414可观察安装程序的运行时间逻辑,并可确定应用程序需要哪些文件、库和 设置。例如,捕获模块414可观察安装程序以检查某些库的存在的,即使那些库不是由安装 程序创建的。捕获模块414也可观察并捕获在安装期间创建的任何服务或其它实体。在一 个实施方式中,捕获模块414与各种系统调用挂钩以执行其监控和捕获功能。容器创建模块402根据来自捕获模块414的信息来创建影子复制316。影子复制 316包括如捕获模块414所确定的各种文件、设置、服务和安装程序所创建的其它实体。影 子复制316还可包括应用程序所需的其它文件或设置。如果容器108被配置为如上所述的 “完全容器化的”容器,所有这样的文件都可被包括。如果它不是“完全容器化的”,可从影 子复制316省略可能已经存在于管理端点上(例如,在操作系统目录中)的文件。在一个实施方式中,容器创建模块402还接收虚拟化模块312和薄膜310。可使 用标准或定制的发展工具创建并编译包含更改各种API调用并执行其它功能的代码的虚 拟化模块312。可通过以虚拟模块312所理解的特定格式保存系统管理员所指定的各种容 器设置来创建薄膜310。在一个实施方式中,容器创建模块302将影子复制316,、虚拟模块312和薄膜310封装在一起以形成容器108。容器创建模块402可将所创建的容器108存 储在容器数据库410中用于以后的部署。容器数据库410包括容器创建模块402所创建的容器108。这可包括影子复制 316 (包括文件和设置)、虚拟化模块312和薄膜310。它还可包括每个容器108的各种属 性,例如在容器内的应用程序的名称,以及容器可运行的可能的平台和操作系统。系统管理 员可进接到容器数据库410,并在选择容器108以部署到端点106时根据属性搜索。部署模块406将存储在容器数据库410中的容器108部署到不同的管理端点。部 署可由系统管理员单独地指定,或可根据脚本或其它标准被自动化。单个容器108可被部 署到数千个管理端点106。部署模块406将容器108安装在管理端点106上,并将它配置 成使得在容器内的应用程序3M可由用户在管理端点106处容易执行。部署也可由用户在 管理端点106处发起。在这种情况下,用户可接触装置102并请求部署。用户可下载将容 器108——包括影子复制316、薄膜310和虚拟模块312——安装在管理端点106上的自我 执行文件。部署模块406可与管理端点106上的代理306协作以部署容器108。例如,部署模 块406可通过网络104将容器发送到代理306。如上所述,代理306将影子复制316置于 对文件系统304中的容器指定的特定位置处。代理306也将薄膜310和虚拟化模块312置 于适当的位置处。代理306也例如通过将快捷方式添加到用户的桌面来创建初始用户界面 322。容器管理器408管理被部署到管理端点106的容器108。容器管理器408可通过 管理端点106上的代理306来管理容器。容器管理器408可发送启用或禁止容器108实施 对应用程序的使用限制的命令。这使薄膜310中的数据如上所述被更改。容器管理器408 可从薄膜310取回使用数据。容器管理器408可提供薄膜310、虚拟化模块312或影子复制 316的更新的版本。这些更新可如上所述改变应用程序324的行为或容器108的虚拟化功 能。容器管理器408也可使在管理端点上的容器重新闪烁,以使容器返回到如被部署时的 其初始状态。这对开始发生故障且不能被容易修复的应用程序可能是有用的。重新闪烁可 通过将容器再次部署到管理端点来实现。用户界面模块可用于由系统管理员控制容器创建模块402、部署模块406或容器 管理器408的任何一个。通过用户界面模块412,系统管理员可在环境100中将容器创建、 部署并管理到管理端点。图5是在一个实施方式中示出用于使用容器108来虚拟化应用程序的方法的流程 图。在管理端点106处的用户执行容器化的应用程序324(即具有容器108的应用程序)。 在一个实施方式中,容器初始化模块318识别容器化的应用程序3M的执行(502)。容器初 始化模块318通过执行容器108的虚拟化模块312来初始化应用程序3M的虚拟化(504)。 虚拟化模块312可执行设置功能,例如启动所需的服务或准备用户环境。虚拟化模块312通 过例如挂钩或监控来自执行应用程序324的API调用来拦截这些调用(506)。对于被拦截 的API调用,虚拟化模块312确定执行关于API调用的行动(508)。例如,虚拟化模块312 可确定允许调用未改变地继续进行,阻止调用,更改调用的参数,或进行其它API调用。虚 拟化模块312可使用薄膜310中的信息来确定要执行的行动。虚拟化模块312接着执行所 确定的行动(510)。
11
图6是一个示出在一个实施方式中用于在企业环境100中管理容器108的方法的 流程图。容器创建模块402用于创建应用程序的容器(602),其中容器108包括具有应用 程序文件的影子复制316和用于提供虚拟化应用程序的功能的虚拟化模块312。影子复制 316可通过在升级机器上运行应用程序安装程序来创建。容器108透过使用部署模块406 被部署到管理端点106(604)。该部署可由用户在管理端点106处发起。在管理端点106处 的容器108由容器管理器408管理(606)。该管理可包括例如启用容器108、禁用容器、从 容器取回使用信息、或更新容器(包括应用程序324、虚拟化模块312和薄膜310)。上面的描述被包括以示出优选实施方式的操作,且并不意味着限制本发明的范 围。本发明的范围仅由下面的权利要求限制。从上面的讨论中,对相关领域的技术人员来 说,由本发明的精神和范围包括的很多变化将是明显的。
权利要求
1.一种用于使用容器来虚拟化计算机上的应用程序的计算机实现的方法,所述方法包括从远程计算机接收虚拟化容器,所述虚拟化容器包括应用程序和虚拟化模块,所述虚 拟化模块包括用于虚拟化所述应用程序的计算机程序指令;在所述应用程序的执行期间拦截由所述应用程序进行的操作系统应用程序接口(API) 调用;以及根据所述操作系统API调用执行所述虚拟化模块的所述计算机程序指令的一部分,其 中所述计算机程序指令更改所述应用程序的行为以实现所述应用程序的虚拟化。
2.如权利要求1所述的计算机实现的方法,还包括 确定所述应用程序已开始执行;以及响应于确定所述应用程序已开始执行,执行初始化功能,所述初始化功能包括为包括 在所述虚拟化容器中的所述应用程序的用户建立环境。
3.如权利要求1所述的计算机实现的方法,其中所述计算机程序指令的被执行部分防 止所述应用程序访问恶意软件。
4.如权利要求1所述的计算机实现的方法,还包括使所述虚拟化容器重新闪烁以使所述虚拟化容器返回到其初始状态。
5.如权利要求1所述的计算机实现的方法,还包括 确定新的应用程序已开始在所述计算机上执行;确定所述新的应用程序是虚拟化容器的部分;以及响应于确定所述新的应用程序是所述虚拟化容器的部分,使用于虚拟化所述应用程序 的所述计算机程序指令与适当的操作系统API调用挂钩。
6.一种用于在计算环境中向管理端点提供虚拟化应用程序的计算机实现的方法,所述 方法包括将代理部署到管理端点,所述代理适合于在所述管理端点上执行以支持虚拟化容器到 所述端点的部署;以及响应于所述代理将包含应用程序的虚拟化容器部署到所述管理端点,其中所述虚拟化 容器包括计算机程序指令,当所述计算机程序指令在所述管理端点上被执行时虚拟化所述 应用程序,所述虚拟化包括在所述应用程序的执行期间拦截由所述应用程序进行的操作系统应用程序接口(API) 调用;以及更改所述应用程序的行为以实现所述应用程序的虚拟化。
7.如权利要求6所述的计算机实现的方法,还包括在所述管理端点处更新所部署的虚拟化容器,所述更新包括向管理端点提供用于虚拟 化所述应用程序的计算机程序指令,其中所更新的计算机程序指令实现所述应用程序的更 新的管理政策。
8.一种用于使用容器虚拟化计算机上的应用程序的系统,所述系统包括存储可执行计算机程序模块的计算机可读存储介质,所述可执行计算机程序模块包括用于从远程计算机接收虚拟化容器的模块,所述虚拟化容器包括应用程序和虚拟化模块,所述虚拟化模块包括用于虚拟化所述应用程序的计算机程序指令;用于在所述应用程序的执行期间拦截由所述应用程序进行的操作系统应用程序接口 (API)调用的模块;以及用于根据所述操作系统API调用执行所述虚拟化模块的所述计算机程序指令的一部 分的模块,其中所述计算机程序指令更改所述应用程序的行为以实现所述应用程序的虚拟 化。
9.如权利要求8所述的系统,还包括 用于确定所述应用程序已开始执行的模块;以及用于响应于确定所述应用程序已开始执行而执行初始化功能的模块,所述初始化功能 包括为包括在所述虚拟化容器中的所述应用程序的用户建立环境。
10.如权利要求8所述的系统,其中所述计算机程序指令的被执行部分防止所述应用 程序访问恶意软件。
11.如权利要求8所述的系统,还包括用于使所述虚拟化容器重新闪烁以使所述虚拟化容器返回到其初始状态的模块。
12.如权利要求8所述的系统,还包括用于确定新的应用程序已开始在所述计算机上执行的模块; 用于确定所述新的应用程序是虚拟化容器的部分的模块;以及 用于响应于确定所述新的应用程序是所述虚拟化容器的部分来使用于虚拟化所述应 用程序的所述计算机程序指令与适当的操作系统API调用挂钩的模块。
13.一种用于在计算环境中向管理端点提供虚拟化应用程序的系统,所述系统包括信 息技术(IT)装置,所述IT装置用于将代理部署到管理端点,所述代理适合于在所述管理端点上执行以支持虚拟化容器到 所述端点的部署;以及响应于所述代理将包含应用程序的虚拟化容器部署到所述管理端点,其中所述虚拟化 容器包括计算机程序指令,当所述计算机程序指令在所述管理端点上被执行时虚拟化所述 应用程序,所述虚拟化包括在所述应用程序的执行期间拦截由所述应用程序进行的操作系统应用程序接口(API) 调用;以及更改所述应用程序的行为以实现所述应用程序的虚拟化。
14.如权利要求13所述的系统,其中所述IT装置还被配置以便用于在所述管理端点处更新所部署的虚拟化容器,所述更新包括向管理端点提供用于虚拟 化所述应用程序的计算机程序指令,其中所更新的计算机程序指令实现所述应用程序的更 新的管理政策。
15.一种具有计算机可读存储介质的计算机程序产品,所述计算机可读存储介质具有 在其上记录的用于使用容器虚拟化计算机上的应用程序的可执行计算机程序指令,所述计 算机程序产品包括用于从远程计算机接收虚拟化容器的模块,所述虚拟化容器包括应用程序和虚拟化模 块,所述虚拟化模块包括用于虚拟化所述应用程序的计算机程序指令;用于在所述应用程序的执行期间拦截由所述应用程序进行的操作系统应用程序接口(API)调用的模块;以及用于根据所述操作系统API调用执行所述虚拟化模块的所述计算机程序指令的一部 分的模块,其中所述计算机程序指令更改所述应用程序的行为以实现所述应用程序的虚拟 化。
16.如权利要求15所述的计算机程序产品,还包括 用于确定所述应用程序已开始执行的模块;以及用于响应于确定所述应用程序已开始执行而执行初始化功能的模块,所述初始化功能 包括为包括在所述虚拟化容器中的所述应用程序的用户建立环境。
17.如权利要求15所述的计算机程序产品,其中所述计算机程序指令的被执行部分防 止所述应用程序访问恶意软件。
18.如权利要求15所述的计算机程序产品,还包括用于使所述虚拟化容器重新闪烁以使所述虚拟化容器返回到其初始状态的模块。
19.如权利要求15所述的计算机程序产品,还包括用于确定新的应用程序已开始在所述计算机上执行的模块; 用于确定所述新的应用程序是虚拟化容器的部分的模块;以及 用于响应于确定所述新的应用程序是所述虚拟化容器的部分来使用于虚拟化所述应 用程序的所述计算机程序指令与适当的操作系统API调用挂钩的模块。
全文摘要
系统使用容器虚拟化管理端点上的应用程序。管理端点从IT自动化装置接收虚拟化容器。虚拟化容器包括应用程序和虚拟化模块。虚拟化模块包括用于虚拟化应用程序的计算机程序指令。应用程序在执行期间所进行的操作系统API调用被拦截,且计算机程序指令的一部分基于操作系统API调用而被执行。计算机程序指令更改应用程序的行为以实现应用程序的文件和数据虚拟化。虚拟化容器以及可支持虚拟化容器的部署和更新的代理,可从IT自动化装置被部署及更新。
文档编号G06F3/00GK102150105SQ200980135139
公开日2011年8月10日 申请日期2009年9月9日 优先权日2008年9月9日
发明者M·R·格雷, M·卡辛, M·赖特 申请人:凯思网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1