CN102057355B - 同步虚拟机和应用程序生存周期 - Google Patents

同步虚拟机和应用程序生存周期 Download PDF

Info

Publication number
CN102057355B
CN102057355B CN2009801223875A CN200980122387A CN102057355B CN 102057355 B CN102057355 B CN 102057355B CN 2009801223875 A CN2009801223875 A CN 2009801223875A CN 200980122387 A CN200980122387 A CN 200980122387A CN 102057355 B CN102057355 B CN 102057355B
Authority
CN
China
Prior art keywords
virtual machine
application
layer
institute
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2009801223875A
Other languages
English (en)
Other versions
CN102057355A (zh
Inventor
I·塞杜金
D·埃什纳
R·M·弗莱尔斯
M·O·尼亚里
A·E·诺索夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102057355A publication Critical patent/CN102057355A/zh
Application granted granted Critical
Publication of CN102057355B publication Critical patent/CN102057355B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

虚拟环境可被配置成协调虚拟机和在其中执行的应用程序的生存周期。在一个实现中,虚拟环境包括应用层和虚拟机层。应用层与虚拟机层进行通信来按照与应用程序一致的方式来协调并引导虚拟机创建和删除。例如,应用层接收要启动应用程序的请求。应用层从相关联的应用程序属性中确定要创建的虚拟机的类型和/或数量。应用层随后引导适当的虚拟机的创建(通过虚拟机层),并进一步引导其中所请求的应用程序的安装。在检测到应用程序从所创建的虚拟机中的移除时,应用层可自动地引导相应的虚拟机的移除或停止使用。

Description

同步虚拟机和应用程序生存周期
背景
1.背景和相关技术
传统计算机系统现在通常用于各种目的,无论是出于生产力、娱乐还是其他。这种情况的一个原因是计算机系统不仅往往用任务自动化来增加效率,而且计算机系统还容易地随着时间为这些任务被配置和重新配置。例如,如果用户发现一个或多个应用程序运行地太慢,则用户添加更多存储器(例如,RAM)、添加或换出一个或多个处理器(例如,CPU、GPU等)是相对直截了当的做法。添加或改进当前存储,或者甚至添加或更换可用于共享或处理工作负载的其他外围设备也可以是直截了当的做法。类似地,用户安装或升级计算机上的包括操作系统在内的各种应用程序也是相对直截了当的做法。这在理论上甚至在大型企业范围中往往是正确的。
然而,在实践中,纯粹添加或更换物理计算机硬件的能力常常可能是令人畏缩的,尤其是在大规模的情况下,有时候会导致若干小时的额外时间来安置并配置新的计算机系统(或升级组件)。幸运的是,近来虚拟机(“VM”)技术的开发已经改进或消除了许多这些类型的约束。例如,虚拟机包括作为额外且唯一的计算机系统来操作的一组电子文件,虽然是在另一物理主机计算机系统的范围和资源限制之内的。
另外,每一虚拟机的文件集就资源访问而言可容易地被配置和重新配置,并且在单个物理主机上可安装有多个不同的虚拟机。此外,每一虚拟机可按不同级别来访问主机的资源。此外,任意给定主机计算机系统上的虚拟机的数量以及对于每一虚拟机的资源分配可相对容易地随着时间而改变。然而,每一虚拟机的用户往往不受这些改变的影响,并且一般能够访问并查看每一不同的虚拟机,就像该虚拟机是带有其自己的资源的单独且不同的物理计算机系统一样。出于至少这些原因,企业正在越来越多地使用虚拟机技术。
另外,虚拟系统的另一优点是管理员可提前很短时间根据需要添加几乎尽可能多的虚拟机以便运行特定应用程序。例如,系统管理员可确定要在某一时刻创建一个或多个虚拟机来处理一个网络位置中的数据库应用程序的需求,并确定要创建另一组虚拟机来处理另一网络位置处的网络和电子邮件通信的需求。在作出确定之后,系统管理员本质上在需要时创建虚拟机,然后为这些应用程序配置虚拟机。这些配置可涉及系统管理员(或者在某些情况下,不同的应用程序管理员)将相关应用程序安装在新的虚拟机上。所有这些预配和安装可在确定初始需求之后的几个小时之内发生。
当然,管理员能够建立并设置虚拟机来处理应用程序的容易度可导致与管理虚拟机以及其上运行的应用程序相关的其他问题。具体地,一个越来越常见的问题是企业常常比其能够跟踪的更快地创建并使用虚拟机。由于虚拟机创建的速度,任意给定管理员可能不知道在给定时刻创建了多少虚拟机以及为任意特定物理主机创建了哪些虚拟机。
类似地,在标识哪些虚拟机正在运行以及哪些应用程序正在虚拟机上运行时常常发生记录保持断开连接的情况。用于保持对这些信息的跟踪的常规机制一般涉及管理员维护关于创建了什么和删除或停止使用了什么的详细日志(例如,在电子表格上)。这不仅对于大量虚拟机和应用程序而言可能是费力的,而且在管理员将要创建的与其他管理员将要输入到日志中的之间常常存在一致性的缺失。这对于可具有大量正在安装并使用虚拟机的管理员或用户的企业系统而言尤其如此。
因此,系统管理员保持对一组物理主机上的一组特定虚拟机的跟踪但是不知道另一管理员已经在那些虚拟机上安装了其他应用程序并非是不常见的,尤其对于大型企业。如果最初创建虚拟机的管理员试图删除或停止使用该虚拟机,则该管理员可能接收到指示其他应用程序正在该虚拟机上运行的出错消息。最初的管理员随后可能将该虚拟机置之不理。在其他管理员稍后移除阻止删除该虚拟机的其他应用程序,但无法删除该虚拟机的情况下,该虚拟机可能几乎无限期地保留在系统上。
因此,可以明白,给定应用程序的生存周期常常无法与虚拟机的生存周期一致。这部分地是由于几乎不能确保在管理员卸载了应用程序并且不再需要该虚拟机时管理员会停止使用或移除该虚拟机。出于这些和其它原因,实现虚拟化技术的企业常常碰到通常称为“虚拟机蔓延”(或“VM蔓延”)的问题。
实质上,虚拟机蔓延描述了其中企业可不断地创建虚拟机,但另外却失去了对正如何使用虚拟机和/或谁可能仍然在使用虚拟机的跟踪的情景。可以明白,虚拟机蔓延可造成对企业资源的不必要的耗尽。这种耗尽至少部分地是由于应该被删除的虚拟机可能仍然把持着不能被其它虚拟机使用的各种硬件资源而发生。这种耗尽也至少部分地是由于企业的员工可能需要花费大量的资源来正确地标识系统中每一虚拟机的详情并判定虚拟机是否真正需要而发生的。
因此,对于管理企业中的虚拟机有许多可以解决的困难。可以明白,当企业使用涉及在多个不同虚拟(和物理)机处执行的多个组件的分布式应用程序时,这些困难可能特别棘手。
简要概述
本发明的各实现用被配置成高效地管理企业中虚拟机的创建、操作和停止使用的系统、方法和计算机程序产品来克服本领域中的一个或多个问题。例如,在一个实现中,系统包括响应于要安装或卸载应用程序的请求通过一个或多个虚拟机层来协调并引导虚拟机创建和删除的应用层。应用层还可通过在系统中运行的其它执行应用程序所引用的公共数据结构来协调正在安装和/或卸载的程序。由此,应用层可确保虚拟机和应用程序生存周期一致。
例如,从应用层的角度来看的一种方法可涉及在应用层中接收要启动应用程序的一个或多个请求。该方法还可涉及从所请求的应用程序的一个或多个属性中确定应该部署一个或多个虚拟机中的哪一些来执行所请求的应用程序。另外,该方法可涉及将一个或多个虚拟机命令从应用层发送至虚拟机层来为所请求的应用程序部署所确定的一个或多个虚拟机。此外,该方法可涉及将所请求的应用程序安装在所部署的一个或多个虚拟机上。
除上述之外,从管理一个或多个虚拟机的创建、操作和停止使用的整个系统的角度来看的一种方法可涉及在应用层(103)处接收要启动应用程序的一个或多个请求。所请求的应用程序包括指示要使用的虚拟机的类型和数量的一个或多个属性。该方法还可涉及审阅应用层中的一个或多个数据结构来标识在计算机化环境中可用的一个或多个虚拟机。另外,该方法可涉及指示虚拟机层将所请求的应用程序安装在一个或多个物理主机处安装的可用虚拟机中的一个或多个上。此外,该方法可涉及在通过数据结构标识了所请求的应用程序已经从虚拟机卸载之后,应用层自动地引导虚拟机从相应的物理主机的移除。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的其他特征和优点将在随后的描述中阐述,并且部分地将从本说明书中显而易见,或可以通过本发明的实施来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加显而易见,或可通过对下文中所述的本发明的实践来领会。
附图简述
为了描述可以获得本发明的上文所列举的及其他优点和特征的方式,将通过参考附图中所示的本发明的各具体实施例来呈现上文简要描述的本发明的更具体的描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:
图1A示出根据本发明一实现的其中应用层用虚拟机层来实现一个或多个应用程序安装指令的概略示意图;
图1B示出其中应用层将所请求的应用程序安装或配置在虚拟机层所建立的一个或多个虚拟机中的图1A的示意图;
图1C示出其中应用层标识先前安装的应用程序已经被卸载并因此通过虚拟机层来移除相应虚拟机的概略示意图;
图2示出从应用层的角度来看的用于安装与所请求的应用程序相对应的虚拟机的流程图;以及
图3示出从整个系统的角度来看的用于协调应用程序和虚拟机的生存周期的流程图。
详细描述
本发明的各实现涉及被配置成高效地管理企业中虚拟机的创建、操作和停止使用的系统、方法和计算机程序产品。例如,在一个实现中,系统包括响应于要安装或卸载应用程序的请求通过一个或多个虚拟机层来协调并引导虚拟机创建和删除的应用层。应用层还可通过在系统中运行的其它执行应用程序所引用的公共数据结构来协调正在安装和/或卸载的程序。由此,应用层可确保虚拟机和应用程序生存周期一致。
如此处将更全面地理解的,本发明的各实现可用包括应用层和虚拟化管理层(或“虚拟机层”)的软件系统来实现这些和其它目的。这两个层具有不同的责任并使用唯一的对话彼此通信。可以明白,此处描述的这些和其它组件可提供对混合虚拟和物理硬件环境的支持以及对所提出的软件栈体系结构的具体实例化。具体地,本发明的各实现可用于提供在联合虚拟机管理器上的联合应用程序平台。该联合应用程序平台进而可由表示应用程序和虚拟环境的声明性模型的一个或多个数据结构来驱动。
例如,根据本发明一实现的至少一种方法包括基于应用程序的声明性模型来构造虚拟环境。另外,根据本发明一实现的方法可包括控制虚拟环境中虚拟机的生存周期与应用程序生存周期一致。另外,这些方法可包括监视并管理在基于声明性模型的虚拟环境中运行的应用程序。如此处将会理解的,这些方法实际上可在任何操作环境中实现,包括“内部部署(on-premise)”构造的虚拟环境或在“云”中构造的虚拟环境(即网络中的某处),或者其中应用程序模块内部部署地运行或在云中运行的虚拟环境。
图1A示出包括一起工作以结合应用程序来安装并管理虚拟机的应用层103和虚拟机层107的系统100的概略图。例如,图1A示出应用层103至少包括执行应用程序105。一般而言,执行应用程序105包括通过执行声明性模型所描述的工作流来执行各种请求(例如,安装应用程序)的一个或多个可执行指令集。如下文中更全面的理解的,执行应用程序105从各个声明性模型115接收关于给定应用程序的信息,并将该信息细化为被发送至各个虚拟机的具体命令。
例如,图1A示出应用层103包括应用程序储存库110。应用程序储存库110还包括将各个应用程序135与包括应用程序的各种“意图”的相应的属性137进行相关的一组以上提到的声明性模型115。声明性模型115中的这些应用程序意图(即,属性137中的)可包括用于每一应用程序135的各种硬件和虚拟机规范以及应用程序生存周期信息。具体地,应用程序的给定声明性模型115的意图可包括除了可以或应该使用的虚拟机的数量之外对于给定应用程序135的运行可能需要的虚拟机的种类(例如,专门配置的虚拟机模板、或甚至现有虚拟机)。例如,如果所请求的应用程序115是分布式应用程序,则声明性意图可为分布式应用程序的每一组件指定多个不同的虚拟机(以及甚至虚拟机的类型)以及多个不同的物理主机(或物理主机的类型)。这些声明性模型意图还可包括关于给定应用程序的各种生存周期信息,诸如在安装之前期间可执行应用程序的最大时间间隔。
另外,图1A示出应用层103经由执行应用程序105可包括一个或多个公共数据结构123。一般而言,一个或多个公共数据结构123可由各种各样的组件(包括系统中的其他执行应用程序)访问。公共数据结构123存储并关于系统100中安装的应用程序和虚拟机的状态信息并将这些状态信息相关。例如,在至少一个实现中,数据结构123指示何时何地安装了各个应用程序(物理和/或网络位置)以及何时何地安装了各个虚拟机(物理和/或网络位置)。如前所述,数据结构123还可包括关于执行应用程序105已经细化的/从声明性模型115中确定的应用程序和/或虚拟机生存周期的信息。因为数据结构123通常可由大量组件访问,所以数据结构123可由应用层103和虚拟机层107中的多个不同的组件引用和更新以便帮助维持一致性。
再次参考附图,图1A示出虚拟机层107可包括一个或多个虚拟机管理器120。虚拟机管理器120进而包括用于安装和卸载虚拟机以及分配给定主机上的虚拟机的资源的一个或多个可执行指令集。虚拟机管理器120还监视物理主机上的每一虚拟机的执行。例如,在虚拟机管理器120安装给定虚拟机时,虚拟机管理器120还安装向虚拟机管理器120提供反馈的一个或多个监视代理。这些反馈可包括所分配的资源使用的本质(例如,处理器和存储器分配是否足够)以及安装在其中的各个应用程序如何运行。
另外,图1A示出虚拟机管理器120可被配置成与一个或多个虚拟机库125进行通信。一般而言,虚拟机库125由各自表示“开机备用(hot standby)”的一个或多个虚拟机模板150组成,这些模板可由虚拟机管理器120复制并安装到给定物理主机(例如,130)上。例如,图1A示出虚拟机库125包括虚拟机“VM1”150a、“VM2”150b、“VM3”150c和“VM4”150d的存储。这些虚拟机150(a-d)中的每一个进而可被专门配置成与特定类型的应用程序和甚至特定版本的应用程序一起工作。例如,虚拟机150a和150b可被专门配置(在资源分配/要求方面)为与特定版本的数据库应用程序一起工作,而虚拟机150c和150d可被专门配置(在资源分配/要求方面)为与其他版本的数据库应用程序或者另选地因特网应用程序一起工作。
在任何情况下,系统100中的上述组件中的每一个被配置成一起工作来确保应用程序和虚拟机作为相同生存周期的一部分被一起安装并一起卸载。在至少一个实现中,这种协调一般通过应用层103经由执行应用程序105来处理。例如,图1A示出应用层103接收要安装应用程序(即应用程序135a)的一个或多个请求/指令113,且该请求113由执行应用程序105接收。作为响应,执行应用程序105在应用层103中发送一个或多个请求140来确定应该如何处理该请求。例如,图1A示出执行应用程序105将一个或多个请求发送给应用程序储存库110来标识意指所请求的应用程序或以其他方式与所请求的应用程序相关联的属性。具体地,图1A示出执行应用程序105发送请求与应用程序135a相关联的属性的请求140。
应用程序储存库110进而标识与所请求的应用程序135a相关联的一个或多个声明性模型115。例如,图1A示出应用程序储存库110包括用于将属性137a和137b与应用程序135a和135b相关联的声明性模型115的存储。这些属性陈述了关于每一应用程序135的各种声明性意图。这些声明性意图可包括应用程序应该运行的长度、应该安装来处理应用程序的虚拟机的数量和/或类型。这些声明性意图还可包括诸如应用程序应该在其中执行的各个网络(或物理)位置等的信息。例如,管理员可指派某些应用程序只在受保护的服务器和/或安全网络位置上执行。
在任一情况下,在接收到请求140之后,图1A示出应用程序储存库110回过来用一个或多个消息145来响应执行应用程序105。执行应用程序105随后可解释或“细化”从储存库110接收的属性137a并将其作为相应的指令/命令集存储在一个或多个公共数据结构123中的一个中。一般而言,该上下文中的细化意味着逐渐详细描述来自从储存库110接收的信息的细节,诸如通过将数据添加至声明性模型(例如,从消息145中的属性137a接收的)并将所添加的数据写入数据结构123。如此处更全面地理解的,细化详细描述了细节直到声明性模型足够具体来被特定虚拟机驱动程序理解并转换。
在至少一个实现中,与应用程序的声明性模型相对应的属性137可包括指示该特定应用程序135a理想上被安装在两个不同的虚拟机上且这些虚拟机应该被配置成用于数据库使用的信息。图1A因此示出数据结构123至少包括应用程序135a应该被安装在虚拟机150a和150b上的指示。另外,属性137a还可包括在特定物理主机上执行应用程序135a的偏好。因此,例如,图1A还示出数据结构125指示应用程序135应该被安装在物理主机130上。
在确定了用于所请求的应用程序的各个属性和指令之后,应用层103随后可将一个或多个指令发送给虚拟机层107来安装适当的虚拟机。例如,图1A示出执行应用程序105将与存储在数据结构123中的经细化的信息相对应的一个或多个指令147发送至虚拟机层107。具体地,图1A示出指令147包括要安装虚拟机150a(“VM1”)和150b(“VM2”)的一个或多个请求,并且虚拟机层107中的虚拟机管理器120接收这些指令。
虚拟机层107随后执行这些请求。例如,图1A示出虚拟机管理器120与虚拟机库125协调来标识要安装的所请求的模板,在这种情况下是虚拟机150a和150b。另外,图1A示出虚拟机管理器120将一个或多个请求155发送至物理主机130来安装虚拟机150a和150b。在至少一个实现中,虚拟机层107(例如,经由虚拟机管理器120)还将指示虚拟机安装和配置现在已完成的一个或多个消息(未示出)传回应用层103(例如,至执行应用程序105)。
例如,虚拟机管理器120可将安装确认信息(未示出)直接传递到数据结构123中。执行应用程序105随后可将数据结构123作为周期审阅的一部分来读取,或者响应于数据结构123已被更新的某一信号来读取。执行应用程序105随后标识所请求的虚拟机已经完成安装。在其他情况下,虚拟机管理器120将该信息直接传递给执行应用程序105,执行应用程序105随后将该信息输入到数据结构123中。在任一情况下,虚拟机管理器120所提供的信息不仅可包括在主机130上安装的单纯事实,还包括诸如虚拟机名称和网络地址等的其他相关信息。
在确认所请求的虚拟机的安装/部署之后,应用层103随后可通过虚拟机层107来安装和配置所请求的应用程序。出于该目的,图1B示出执行应用程序105直接与在主机130处部署的虚拟机150的驱动程序进行通信。例如,执行应用程序105可使用虚拟机管理器120所提供的诸如虚拟机名称和网络地址等的信息来定位并标识适当的虚拟机驱动程序。
另外,图1B示出应用层103(经由执行应用程序105)将一个或多个消息/指令160a和160b发送至虚拟机层107。相应地定址的虚拟机150a和150b的驱动程序随后在物理主机130处接收消息160a和160b。一般而言,消息160a和160b不仅可包括用于所请求的应用程序135a的应用程序安装指令,还可包括与先前从应用程序储存库110接收的属性137a相关的指令。例如,消息160a和160b可包括特定命令形式的关于应用程序的生存周期的专门转换/细化的声明性意图信息、应用程序应该如何在虚拟机中执行的信息以及任何监视信息。
每一虚拟机150(a-b)的驱动程序进而在虚拟机中转化和/或实现用于相应的应用程序容器(未示出)的这些命令(160)。具体地,所示虚拟机驱动程序将足够详述的声明性模型转换成要在虚拟机中执行的命令性动作。这些所转换的指令进而根据模型中所声明的意图(例如,经由属性137)来控制和配置所安装虚拟机150中的应用程序容器和应用程序模块。
按照如此的方法,可以理解,驱动程序所进行的转换可将应用程序容器实现及其当前配置的详情的知识考虑在内。因此,在一个实现中,虚拟机驱动程序还可与执行应用程序105进行通信来请求任何其他模型数据(例如,可存储在数据结构123中)。例如,虚拟机150驱动程序可请求与其转换工作相关的模型数据,并且只在完成命令之前请求。虚拟机驱动程序还可插装应用程序模块及其应用程序容器来发出如模型中所声明的关于其在环境中的行为和变化的事件。
虚拟机驱动程序所提供的信息不仅可包括与所安装的应用程序135a和/或虚拟机150(a-b)相关的健康信息,还包括关于应用程序终止事件的信息。例如,当在主机130处正在卸载应用程序、已经卸载应用程序或者将要卸载应用程序时,虚拟机驱动程序可将一个或多个消息发送至执行应用程序105。虚拟机驱动程序所提供的信息进而可在数据结构123中接收并存储。例如,虚拟机150驱动程序将一个或多个这样的消息直接发送至数据结构123,或者发送至随后相应地更新数据结构123的执行应用程序105。在任一情况下,应用层103经由执行应用程序105可因此标识何时其需要开始停止使用相应的虚拟机。
例如,图1C示出当特定应用程序已经从虚拟机150卸载时可发生的状况。具体地,当应用程序被卸载时,图1C示出虚拟机层107(例如,经由物理主机130处的驱动程序)将一个或多个消息170发送至应用层103来指示该应用程序135a要被卸载或已经被卸载。如前所述,例如,物理主机130可将消息170直接传递至数据结构123,而在替换实现中,物理主机130将消息170直接发送至执行应用程序105。在任一情况下,数据结构123最终被更新来反映该应用程序移除。例如,图1C示出数据结构123包括应用程序135a现在已经被卸载的信息。在该示例中,因为应用程序135a是在虚拟机150a和150b处安装的唯一应用程序,所以应用层103经由执行应用程序105因此确定虚拟机150a和150b现在需要从物理主机130删除,因为它们不再使用。
因此,图1C示出应用层103经由执行应用程序105将一个或多个消息180发送至虚拟机层107。如前一样,虚拟机管理器120随后在虚拟机层107中接收消息180。在所示示例中,消息180包括要从其上安装虚拟机150a和150b(即,“VM1”和“VM2”)的一个或多个物理主机,在这种情况下是物理主机130中移除虚拟机150a和150b的指令。作为响应,虚拟机层107随后执行任何移除虚拟机并确认虚拟机的移除所需的动作。例如,图1C示出虚拟机管理器120将一个或多个相应的消息190发送至物理主机130,其中消息指示物理主机130移除或卸载虚拟机150a和150b。
可以明白,存在许多“移除”或“停止使用”虚拟机(150b)的方式和机制。例如,任意给定虚拟机可被设置为“检查点”或基于先前“检查点”来存储。一般而言,检查点表示操作系统(或虚拟机中的其他文件结构集)的特定时间点的状态。例如,每次用户将操作系统补丁应用于虚拟机时,虚拟机(或运行或存储虚拟机的管理组件)可将该特定文件状态存储为检查点。
此外,虚拟机(或运行或存储虚拟机的管理组件)可为给定虚拟机维护多个不同的检查点。因此,例如,虚拟机库125中的某些虚拟机可区别地来设置,不仅与特定应用程序配置有关,而且还基于用于应用操作系统补丁或升级的各个检查点。类似地,安装在物理主机130处的虚拟机150a-b还可经历多个不同的检查点更新,其中的某一些可专门适用于执行应用程序135a。
结果,在某些情况下,在通过或移除全部虚拟机或仅仅将虚拟机回退到特定检查点来移除应用程序135a时,管理员可选择“移除”或“停止使用”物理主机130处的特定版本的虚拟机150a-b。在这种情况下,从虚拟机120发送的指令190可另选地或另外地包括将虚拟机150a-b回退到可能更广泛地适用于稍后可在物理主机130处安装的其他应用程序的先前检查点的指令。
可以明白,在物理主机130上保持较早版本的虚拟机150a-b可节约在稍后用于将整个虚拟机150从库125复制回物理主机130时可能需要的资源。当然,无论是如何被移除或停止使用(即完全移除,或回退到特定检查点)的,系统100都被配置成确保数据结构123能够维护相关信息从而使得系统100永远不丢失对特定虚拟机和应用程序的状态或存在的跟踪。
例如,图1C还示出在移除或停止使用/卸载/回退虚拟机之后,物理主机130随后可发送一个或多个确认消息。具体地,虚拟机层107向应用层103确认虚拟机的移除(即,删除、停止使用或回退)已经完成。例如,物理主机130可将一个或多个确认消息发送回虚拟机管理器120,虚拟机管理器120随后将该信息传递到应用层103。即,虚拟机管理器120可用移除(删除或回退)信息来更新数据结构123,或者以其他方式发送相应的通信到执行应用程序105,执行应用程序105随后用同样内容来更新数据结构123。在附加或替换实现中,物理主机130直接与数据结构123和/或与执行应用程序105进行通信来确认虚拟机150(a-b)的移除(删除或回退)。
因此,图1A到1C示出用于协调来自虚拟机的应用程序的生存周期的各种组件、机制和示意图。可以明白,上述过程中的任何或全部可自动地执行,因此允许用最小的管理开销来发生对虚拟机和应用程序的准确的记录保持和管理。
除前面的内容之外,也可以按照包括用于实现特定结果的方法中的一个或多个动作的流程图来描述本发明的实现。例如,图2示出从执行应用程序105的角度来看的用于使用单个应用程序来在物理主机处安装虚拟机和应用程序的流程图,而图3示出从系统100的角度来看的用于协调应用程序和虚拟机的安装和生存周期的替换流程图。下面将参考图1A到1C的组件和图示来更全面地描述图2和3的动作。
例如,图2示出从执行应用程序150的角度来看的方法可包括接收要启动应用程序的请求的动作200。动作200包括在应用层中接收要启动应用程序的一个或多个请求。例如,图1A示出应用层103经由执行应用程序105接收安装指令113,安装指令113包括要安装应用程序135a的一个或多个请求。
图2还示出该方法可包括确定部署什么虚拟机的动作210。动作210包括从所请求的应用程序的一个或多个属性中确定应该部署一个或多个虚拟机中的哪一些来执行所请求的应用程序。例如,图1A示出执行应用程序105与应用程序储存库110进行通信并交换消息140和145来标识所请求的应用程序135a的属性。这些属性137a将与所请求的应用程序135a相对应的声明性模型115的各个声明性意图相关。另外,执行应用程序105将所接收的属性137a细化和/或转换为随后在数据结构123中维护的具体指令。在一个实现中,这些命令的转换包括要被安装来执行所请求的应用程序135a的虚拟机150的数量和类型。
另外,图2示出从执行应用程序105角度来看的方法可包括部署适当的虚拟机的动作220。动作220包括将一个或多个请求从应用层发送至虚拟机层来为所请求的应用程序部署所确定的一个或多个虚拟机。例如,图1A示出应用层103中的执行应用程序105将一个或多个消息147发送至虚拟机层107中的虚拟机管理器120。如图1A所示,指令147包括要安装所标识的虚拟机150a和150b的一个或多个请求。
此外,图2示出该方法可包括将所请求的应用程序安装在虚拟机上的动作230。动作230包括安装所部署的一个或多个虚拟机的应用程序。例如,如图1B所示,一旦虚拟机150a和150b已经由虚拟机管理器120安装在物理主机130处,则应用层130经由执行应用程序105将一个或多个消息160a和160b经由虚拟机150驱动程序发送至相应的虚拟机层107。虚拟机驱动程序进而根据属性137a指示对所请求的应用程序135a的安装和配置。
除前面的内容之外,图3示出根据本发明一实现的从整个系统100的角度来看的附加或替换方法可包括为安装请求标识应用程序属性的动作300。动作300包括在应用层处接收要启动应用程序的一个或多个请求,其中所请求的应用程序包括指示要使用的虚拟机的类型和数量的一个或多个属性。例如,图1A示出在接收到安装请求113之后,应用层103中的执行应用程序105和应用程序储存库110进行通信来接收与所请求的应用程序135a相关的属性137a。如之前所讨论的,属性137a可包括关于所请求的应用程序135a的各种类型的信息,诸如对物理主机的类型或位置的偏好,以及应该用来运行应用程序的虚拟机的类型、数量、或资源要求。
图3还示出从执行应用程序105的角度来看的方法可包括审阅数据结构来寻找可用虚拟机的动作310。动作310包括审阅应用层中的一个或多个数据结构来标识在计算机化环境中可用的一个或多个虚拟机。例如,图1A和1B示出应用层103中的执行应用程序105解释和/或细化所接收的属性137a来确定应用程序135a应该安装在主机130上以及两个不同的虚拟机中,在这种情况下是虚拟机150a和150b。
另外,图3示出从执行应用程序105的角度来看的方法可包括将应用程序安装在适当的虚拟机上的动作320。动作320包括指示虚拟机层将所请求的应用程序安装在一个或多个物理主机处安装的可用虚拟机中的一个或多个上。例如,如图1A所示,应用层103经由执行应用程序105将一个或多个消息147经由虚拟机管理器120发送至虚拟机层107。所示消息147包括在物理主机130上安装虚拟机150a和150b的指令。图1A还示出虚拟机层107操作请求,这表现在虚拟机管理器120将一个或多个相应的消息155发送至物理主机130。消息155进而指示物理主机130安装所请求的虚拟机150a和150b。
此外,图3示出从执行应用程序105的角度来看的方法可包括在移除应用程序时删除虚拟机的动作330。动作330包括,在通过数据结构标识了所请求的应用程序已经从虚拟机卸载之后,应用层引导虚拟机从相应的物理主机的移除。例如,如图1C所示,应用层103将消息接收到数据结构123中,无论直接还是最初通过执行应用程序105。执行应用程序105随后标识应用程序135a已经被卸载并且因此虚拟机150a和150b需要被移除(即从物理主机130上删除、或者回退到物理主机130处的先前版本)。因此,应用层103经由执行应用程序105将一个或多个消息180发送至虚拟机层107来从主机130移除(即,删除或回退)虚拟机150a和150b。
因此,本发明的各实现提供了一种管理虚拟机蔓延的一致且高效的方法。具体地,此处描述的声明性模型驱动方法通过抽象并管理许多不同且唯一的虚拟机配置作为合成应用程序来提供简化方法(并因此大大地降低了管理成本)。具体地,此处描述的平台/系统使用合成应用程序的声明性模型来自动地创建适当的虚拟机配置来运行所请求的应用程序并管理虚拟机的生存周期。将任意数量的虚拟机表示为可运行应用程序提供了虚拟化管理中的显著的效率增益。
另外,可以明白,此处描述的虚拟机层和应用层两者都可被配置成支持内部部署和云部署。由此,虚拟机可内部部署地运行,也可在云中运行,且应用层可内部部署和运行任何不同的web服务或数据库应用程序模块,或者可在云中部署和运行应用程序模块。可以明白,该方法实现了灵活性,并降低了与实质上在任何企业中运行商业应用程序相关联的管理成本。
本发明的各实施例可以包括其中包含各种计算机硬件的专用或通用计算机,如下面更详细地讨论的。在本发明的范围内的各实施例还包括用于携带或在其上存储计算机可执行指令和/或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。
作为示例而非限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备,或可以用来携带或存储计算机可执行指令或数据结构的形式的所需程序代码装置并可由通用或专用计算机访问的任何其他介质。当通过网络或另一通信连接(硬连线、无线,或硬连线或者无线的组合)向计算机传输或提供信息时,该计算机适当地将该连接视为计算机可读介质。如此,任何这样的连接被适当地称为“计算机可读介质”。上面各项的组合也应该包括在计算机可读介质的范围内。
计算机可执行指令包括例如使通用计算机、专用计算机或专用处理设备执行某一功能或一组功能的指令和数据。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上文所描述的具体特征和动作是作为实现权利要求的示例形式来公开的。
在不偏离本发明的精神或必要特征的情况下,本发明能以其他具体形式来实现。所描述的实施例在各个方面都只作为说明性的,而不是限制性的。因此,本发明的范围由所附权利要求书而不是由前面的描述指出。在权利要求的等效方案内的含义和范围内的所有更改都将包括在它们的范围内。

Claims (19)

1.一种在计算机化系统(100)的应用层(103)处的方法,所述计算机系统还包括虚拟机层(107)和要在一个或多个虚拟机(150)上执行的一个或多个应用程序(135),所述方法是所述应用层通过所述虚拟机层来启动并管理用于所述一个或多个应用程序的一个或多个虚拟机的创建和操作,所述方法包括以下动作:
在应用层(103)中接收(200)要启动应用程序(135)的一个或多个请求(113);所述应用层(103)包括接收要启动所述应用程序的所述请求(113)的执行应用程序(105),所述虚拟机层(107)包括与所述应用层通信的虚拟机管理器(120);
响应于接收到所述一个或多个请求,所述执行应用程序与应用程序储存库通信以确定所请求的应用程序的一个或多个属性;
所述执行应用程序基于所述一个或多个属性来标识从虚拟机库中可获得的一个或多个虚拟机,所述一个或多个虚拟机应被部署以执行所请求的应用程序;在标识所述一个或多个虚拟机之后,所述执行应用程序将一个或多个虚拟机命令(147)从所述应用层发送(220)到在虚拟机层(107)中执行的虚拟机管理器,所述一个或多个虚拟机命令指示所述虚拟机管理器为所请求的应用程序部署所标识的一个或多个虚拟机(150);以及
将所请求的应用程序安装(230)在所部署的一个或多个虚拟机上。
2.如权利要求1所述的方法,其特征在于:
所述执行应用程序(105)将所述一个或多个属性(137)转换成所述一个或多个虚拟机命令(147)。
3.如权利要求2所述的方法,其特征在于:
与所请求的应用程序(135)相对应的所述属性(137)包括与所请求的应用程序(135)相关联的一个或多个声明性模型(115);以及
所述一个或多个声明性模型包括用于所确定的虚拟机的一个或多个配置。
4.如权利要求3所述的方法,其特征在于,与所请求的应用程序(135)相对应的所述属性(137)指示应该在其上部署所请求的应用程序(135)的一个或多个物理主机(130)。
5.如权利要求3所述的方法,其特征在于,与所请求的应用程序(135)相对应的所述属性(137)指示应该为所请求的应用程序(135)部署的虚拟机(150)的数量和类型。
6.如权利要求5所述的方法,其特征在于,所述虚拟机(150)的数量和类型中的任一个或所有取决于所请求的应用程序(135)的版本。
7.如权利要求1所述的方法,其特征在于,所述安装(330)所请求的应用程序的动作还包括所述应用层(103)将一个或多个指令(160)发送到所部署的一个或多个虚拟机(150)中的每一个的驱动程序。
8.如权利要求1所述的方法,其特征在于,还包括更新数据结构(123)来指示所请求的应用程序与所部署的一个或多个虚拟机(150)之间的关联的动作。
9.如权利要求7所述的方法,其特征在于,还包括更新数据结构(123)来指示所请求的应用程序(135)已经被安装在所部署的一个或多个虚拟机(150)上以及一个或多个物理主机(130)处的动作。
10.如权利要求8所述的方法,其特征在于,还包括标识所请求的应用程序(135)已经被卸载的动作。
11.如权利要求10所述的方法,其特征在于,在确定所请求的应用程序(135)已经被卸载之前还包括以下动作:
标识所请求的应用程序(135)应该从所部署的一个或多个虚拟机卸载;以及
将一个或多个指令从所述应用层(103)发送到所述虚拟机层(107)来卸载所请求的应用程序(135)。
12.如权利要求11所述的方法,其特征在于,所述标识所请求的应用程序(135)应该被卸载的动作包括从与所请求的应用程序(135)相对应的数据结构(123)中的一个或多个属性(137)中标识所述应用程序(135)准备好被卸载或停止使用。
13.如权利要求10所述的方法,其特征在于,还包括将一个或多个指令从所述应用层(103)发送到所述虚拟机层(107)来从所述相应的物理主机移除所部署的一个或多个虚拟机(150)的动作。
14.如权利要求13所述的方法,其特征在于,还包括更新所述数据结构(123)来指示先前所部署的一个或多个虚拟机(150)已经从所述相应的物理主机移除的动作。
15.一种在计算机化环境的计算机化系统(100)中的方法,所述计算机化系统(100)包括包含执行应用程序(105)的应用层(103)、包含虚拟机管理器(120)的虚拟机层(107)以及要在一个或多个虚拟机(150)上执行的一个或多个应用程序(135),所述方法通过所述应用层(103)和虚拟机层(107)来管理一个或多个虚拟机以及所述一个或多个应用程序的创建、操作和停止使用,所述方法包括以下动作:
执行应用程序在应用层(103)处接收(300)要启动应用程序(135)的一个或多个请求,其中所请求的应用程序包括指示要使用的虚拟机(150a-b)的类型和数量的一个或多个属性(137);所述执行应用程序与应用程序储存库进行通信来接收所述一个或多个属性;
响应于接收到所述一个或多个请求,所述执行应用程序审阅(310)所述应用层(103)中的一个或多个数据结构(123)来标识来自虚拟机库的一个或多个虚拟机(150a-d),所述一个或多个虚拟机可用于部署在所述虚拟机层;
基于对所述一个或多个虚拟机的标识,所述执行应用程序指示(320)在虚拟机层(107)中执行的虚拟机管理器将来自所述虚拟机库的所标识的一个或多个虚拟机部署在一个或多个物理主机处;
所述执行应用程序指示将所请求的应用程序安装在所部署的一个或多个虚拟机上;以及
在通过所述数据结构(123)标识了所请求的应用程序(135)已经从虚拟机卸载之后,所述应用层(103)自动地引导(330)所述虚拟机(150)从相应的物理主机(130)的移除。
16.如权利要求15所述的方法,其特征在于:
所标识的一个或多个虚拟机(150)包括被设置为操作系统检查点的一个或多个虚拟机模板;以及
所述将所述虚拟机(150)从所述相应的物理主机(130)移除的动作(330)包括将所述虚拟机(150)回退到先前检查点,从而使得更新版本的虚拟机从所述物理主机(130)移除而与所述先前检查点相对应的较早版本的虚拟机保留在所述物理主机(130)上。
17.如权利要求15所述的方法,其特征在于,所述应用层(103)还包括可由所述应用层(103)或虚拟机层(107)中的一个或多个组件更新的一个或多个数据结构(123)。
18.如权利要求15所述的方法,其特征在于,所述数据结构指示部署在所述系统(100)中的所有虚拟机(150)、安装在所述虚拟机上的所有应用程序(135)、以及指示所安装的应用程序和所部署的虚拟机中的每一个的预期生存周期的一个或多个属性(137)。
19.一种在计算机化环境(100)的应用层(103)中的方法,所述计算机化环境(100)包括执行应用程序(105)、包含虚拟机管理器(120)的虚拟机层(107)、以及要在一个或多个虚拟机(150)上执行的一个或多个应用程序(135),所述方法是所述应用层通过所述虚拟机层来启动并管理用于所述一个或多个应用程序的一个或多个虚拟机的创建和操作,所述方法包括以下动作:
在应用层(103)中接收(300)要启动应用程序(135)的一个或多个请求(113);
响应于接收到所述一个或多个请求,所述执行应用程序与应用程序储存库通信以确定所请求的应用程序的一个或多个属性;
所述执行应用程序基于所述一个或多个属性来标识从虚拟机库中可获得的一个或多个虚拟机,所述一个或多个虚拟机应被部署以执行所请求的应用程序;
在标识所述一个或多个虚拟机之后,所述执行应用程序将一个或多个虚拟机命令(147)从所述应用层发送(320)到在虚拟机层(107)中执行的虚拟机管理器,所述一个或多个虚拟机命令指示所述虚拟机管理器为所请求的应用程序部署所标识的一个或多个虚拟机(150);以及
将所请求的应用程序安装(330)在所部署的一个或多个虚拟机上。
CN2009801223875A 2008-06-13 2009-05-15 同步虚拟机和应用程序生存周期 Active CN102057355B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/138,591 2008-06-13
US12/138,591 US8161479B2 (en) 2008-06-13 2008-06-13 Synchronizing virtual machine and application life cycles
PCT/US2009/044263 WO2009151875A1 (en) 2008-06-13 2009-05-15 Synchronizing virtual machine and application life cycles

Publications (2)

Publication Number Publication Date
CN102057355A CN102057355A (zh) 2011-05-11
CN102057355B true CN102057355B (zh) 2013-08-07

Family

ID=41415945

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801223875A Active CN102057355B (zh) 2008-06-13 2009-05-15 同步虚拟机和应用程序生存周期

Country Status (10)

Country Link
US (1) US8161479B2 (zh)
EP (1) EP2310940A4 (zh)
JP (1) JP5367074B2 (zh)
KR (1) KR101574366B1 (zh)
CN (1) CN102057355B (zh)
AU (1) AU2009257865B2 (zh)
BR (1) BRPI0911610B1 (zh)
CA (1) CA2723907C (zh)
RU (1) RU2498394C2 (zh)
WO (1) WO2009151875A1 (zh)

Families Citing this family (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101506683B1 (ko) * 2008-08-06 2015-03-30 삼성전자 주식회사 다수개의 운영 시스템을 지원하는 장치 및 방법
US8364802B1 (en) 2008-09-23 2013-01-29 Gogrid, LLC System and method for monitoring a grid of hosting resources in order to facilitate management of the hosting resources
US8565118B2 (en) 2008-12-30 2013-10-22 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8331362B2 (en) * 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8255496B2 (en) 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US8190769B1 (en) 2008-12-30 2012-05-29 Juniper Networks, Inc. Methods and apparatus for provisioning at a network device in response to a virtual resource migration notification
US20100250228A1 (en) * 2009-03-30 2010-09-30 International Business Machines Corporation Modeling a composite application
US8954487B2 (en) * 2009-06-23 2015-02-10 Samsung Electronics Co., Ltd. Management server and method for providing cloud computing service
US8812796B2 (en) 2009-06-26 2014-08-19 Microsoft Corporation Private memory regions and coherence optimizations
US8953603B2 (en) 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US8442048B2 (en) 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
US8789041B2 (en) * 2009-12-18 2014-07-22 Verizon Patent And Licensing Inc. Method and system for bulk automated virtual machine deployment
US9130912B2 (en) 2010-03-05 2015-09-08 International Business Machines Corporation System and method for assisting virtual machine instantiation and migration
JP5821034B2 (ja) * 2010-03-16 2015-11-24 パナソニックIpマネジメント株式会社 情報処理装置、仮想マシン生成方法及びアプリ配信システム
US8443077B1 (en) 2010-05-20 2013-05-14 Gogrid, LLC System and method for managing disk volumes in a hosting system
US9148428B1 (en) 2011-05-25 2015-09-29 Bromium, Inc. Seamless management of untrusted data using virtual machines
US9135038B1 (en) 2010-05-28 2015-09-15 Bromium, Inc. Mapping free memory pages maintained by a guest operating system to a shared zero page within a machine frame
US9767274B2 (en) 2011-11-22 2017-09-19 Bromium, Inc. Approaches for efficient physical to virtual disk conversion
US8752047B2 (en) 2010-05-28 2014-06-10 Bromium, Inc. Automated management of virtual machines to process untrusted data based on client policy information
US9116733B2 (en) 2010-05-28 2015-08-25 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US10095530B1 (en) 2010-05-28 2018-10-09 Bromium, Inc. Transferring control of potentially malicious bit sets to secure micro-virtual machine
US9239909B2 (en) 2012-01-25 2016-01-19 Bromium, Inc. Approaches for protecting sensitive data within a guest operating system
US9558051B1 (en) 2010-05-28 2017-01-31 Bormium, Inc. Inter-process communication router within a virtualized environment
US9386021B1 (en) 2011-05-25 2016-07-05 Bromium, Inc. Restricting network access to untrusted virtual machines
US10310696B1 (en) 2010-05-28 2019-06-04 Bromium, Inc. Supporting a consistent user interface within a virtualized environment
US9104837B1 (en) 2012-06-18 2015-08-11 Bromium, Inc. Exposing subset of host file systems to restricted virtual machines based on upon performing user-initiated actions against host files
US8972980B2 (en) * 2010-05-28 2015-03-03 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US8171349B2 (en) 2010-06-18 2012-05-01 Hewlett-Packard Development Company, L.P. Associating a monitoring manager with an executable service in a virtual machine migrated between physical machines
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
JP5653151B2 (ja) * 2010-09-17 2015-01-14 キヤノン株式会社 クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション
US9384054B2 (en) * 2010-09-22 2016-07-05 Nokia Technologies Oy Process allocation to applications executing on a mobile device
US8584121B2 (en) 2010-11-19 2013-11-12 International Business Machines Corporation Using a score-based template to provide a virtual machine
US9128803B2 (en) 2010-12-15 2015-09-08 Microsoft Technology Licensing, Llc Application model for implementing composite applications
US8891406B1 (en) 2010-12-22 2014-11-18 Juniper Networks, Inc. Methods and apparatus for tunnel management within a data center
US8918785B1 (en) * 2010-12-29 2014-12-23 Amazon Technologies, Inc. Managing virtual machine network through security assessment
US8607067B1 (en) 2011-03-01 2013-12-10 Amazon Technologies, Inc. Techniques for attesting to information
US8745734B1 (en) * 2010-12-29 2014-06-03 Amazon Technologies, Inc. Managing virtual computing testing
US8799915B1 (en) * 2010-12-31 2014-08-05 Emc Corporation Decommissioning virtual appliances
US8839241B2 (en) 2010-12-31 2014-09-16 Emc Corporation Virtual appliance deployment
US8601472B1 (en) 2010-12-31 2013-12-03 Emc Corporation Instantiating virtual appliances
JP5592303B2 (ja) * 2011-04-07 2014-09-17 株式会社日立製作所 実行環境構築装置および実行環境構築システム
US8997078B2 (en) * 2011-04-12 2015-03-31 Pivotal Software, Inc. Release lifecycle management system for a multi-node application
US8850419B1 (en) * 2011-05-20 2014-09-30 Amazon Technologies, Inc. Descaling computing resources
US8869135B1 (en) 2011-05-20 2014-10-21 Amazon Technologies, Inc. Deploying updates to an application during periods of off-peak demand
US8799888B1 (en) 2011-05-20 2014-08-05 Amazon Technologies, Inc. Updating an application
US9959174B2 (en) 2011-05-23 2018-05-01 International Business Machines Corporation Storage checkpointing in a mirrored virtual machine system
US9921860B1 (en) 2011-05-25 2018-03-20 Bromium, Inc. Isolation of applications within a virtual machine
US10846396B1 (en) 2011-05-25 2020-11-24 Hewlett-Packard Development Company, L.P. Downloading data in a dedicated virtual machine
US10546118B1 (en) 2011-05-25 2020-01-28 Hewlett-Packard Development Company, L.P. Using a profile to provide selective access to resources in performing file operations
US8839245B1 (en) 2012-06-18 2014-09-16 Bromium, Inc. Transferring files using a virtualized application
US10013281B2 (en) * 2011-06-29 2018-07-03 Microsoft Technology Licensing, Llc Controlling network utilization
US8819679B2 (en) * 2011-07-28 2014-08-26 International Business Machines Corporation Methods and systems for on-boarding applications to a cloud
JP5681279B2 (ja) * 2011-08-01 2015-03-04 日本電気株式会社 試験装置、システム、プログラム、及び、方法
US9639402B2 (en) 2011-08-05 2017-05-02 Oracle International Corporation Systems and methods for automatic hardware provisioning based on application characteristics
US20130055243A1 (en) * 2011-08-24 2013-02-28 Dell Products, Lp Unified Management Architecture to Support Multiple Platform-as-a-Service Workloads
US9838415B2 (en) 2011-09-14 2017-12-05 Architecture Technology Corporation Fight-through nodes for survivable computer network
US9766986B2 (en) 2013-08-08 2017-09-19 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
US9769250B2 (en) 2013-08-08 2017-09-19 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
US8640238B2 (en) * 2011-09-14 2014-01-28 Architecture Technology Corporation Fight-through nodes for survivable computer network
US9094449B2 (en) 2011-09-14 2015-07-28 Architecture Technology Corporation Fight-through nodes for survivable computer network
JP5134149B1 (ja) * 2011-09-26 2013-01-30 株式会社北洋銀行 ネットワークシステム及びその制御方法
US9245095B2 (en) 2011-10-25 2016-01-26 Ca, Inc. System and method for license management of virtual machines at a virtual machine manager
US8924723B2 (en) 2011-11-04 2014-12-30 International Business Machines Corporation Managing security for computer services
TWI478063B (zh) * 2011-11-21 2015-03-21 Inst Information Industry 於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體
US8826277B2 (en) * 2011-11-29 2014-09-02 International Business Machines Corporation Cloud provisioning accelerator
US10310878B2 (en) * 2011-12-16 2019-06-04 Vmware, Inc. Execution of an application in a runtime environment installed in a virtual appliance
US9069607B1 (en) 2012-01-31 2015-06-30 Vmware, Inc. Selective migration of virtualized applications and configuration settings thereof
US20130219387A1 (en) * 2012-02-22 2013-08-22 Vmware, Inc. Establishing secure two-way communications in a virtualization platform
US9720668B2 (en) 2012-02-29 2017-08-01 Red Hat, Inc. Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system
US9038128B2 (en) 2012-02-29 2015-05-19 Red Hat, Inc. Applying security category labels to multi-tenant applications of a node in a platform-as-a-service environment
US9047107B2 (en) 2012-02-29 2015-06-02 Red Hat, Inc. Applying a custom security type label to multi-tenant applications of a node in a platform-as-a-service environment
US9058198B2 (en) * 2012-02-29 2015-06-16 Red Hat Inc. System resource sharing in a multi-tenant platform-as-a-service environment in a cloud computing system
JP5978659B2 (ja) * 2012-03-06 2016-08-24 日本電気株式会社 シンクライアントシステム、管理サーバ、業務環境設定方法、及び業務環境設定プログラム
US9245108B1 (en) 2012-03-13 2016-01-26 Bromium, Inc. Dynamic adjustment of the file format to identify untrusted files
US8666938B1 (en) * 2012-03-28 2014-03-04 Vmware, Inc. Installed application cloning and failover to virtual server
CN103797461B (zh) * 2012-03-29 2016-03-16 株式会社北洋银行 网络系统
US20130275968A1 (en) * 2012-04-17 2013-10-17 Petio Petev Application management methods and systems
US9571332B2 (en) * 2012-04-17 2017-02-14 Adara Networks, Inc. Methods and apparatuses for remote application provisioning automation over virtualized IT infrastructure
US9245111B2 (en) 2012-05-01 2016-01-26 Red Hat, Inc. Owner command execution in a multi-tenant cloud hosting environment
US9665411B2 (en) 2012-05-01 2017-05-30 Red Hat, Inc. Communication between a server orchestration system and a messaging system
US8850514B2 (en) 2012-05-01 2014-09-30 Red Hat, Inc. Cartridges in a multi-tenant platforms-as-a-service (PaaS) system implemented in a cloud computing environment
US9378255B2 (en) 2012-05-11 2016-06-28 Sap Se Cloud logistics
US9342330B2 (en) * 2012-05-11 2016-05-17 Sap Se Deploying a user-configured virtual appliance template including a portion of an existing computing application to enhance functionality
US10169000B2 (en) * 2012-05-30 2019-01-01 Red Hat Israel, Ltd. Provisioning composite applications using secure parameter access
US9201850B1 (en) 2012-06-18 2015-12-01 Bromium, Inc. Composing the display of a virtualized web browser
US11023088B2 (en) 2012-06-18 2021-06-01 Hewlett-Packard Development Company, L.P. Composing the display of a virtualized web browser
US9384026B1 (en) 2012-06-18 2016-07-05 Bromium, Inc. Sharing and injecting cookies into virtual machines for retrieving requested web pages
US9734131B1 (en) 2012-06-18 2017-08-15 Bromium, Inc. Synchronizing history data across a virtualized web browser
US9727534B1 (en) 2012-06-18 2017-08-08 Bromium, Inc. Synchronizing cookie data using a virtualized browser
US10095662B1 (en) 2012-06-18 2018-10-09 Bromium, Inc. Synchronizing resources of a virtualized browser
US9183031B2 (en) * 2012-06-19 2015-11-10 Bank Of America Corporation Provisioning of a virtual machine by using a secured zone of a cloud environment
US9887872B2 (en) 2012-07-13 2018-02-06 Microsoft Technology Licensing, Llc Hybrid application environments including hosted applications and application servers for interacting with data in enterprise environments
US8978035B2 (en) 2012-09-06 2015-03-10 Red Hat, Inc. Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
CN103677983B (zh) * 2012-09-20 2018-05-04 三亚中兴软件有限责任公司 应用的调度方法及装置
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
GB2513535A (en) * 2012-12-14 2014-11-05 Ibm Software installer with built-in hypervisor
CN103049268B (zh) * 2012-12-25 2016-08-03 中国科学院深圳先进技术研究院 一种基于Naplet的应用开发管理系统
US20140282581A1 (en) * 2013-03-15 2014-09-18 Mckesson Financial Holdings Method and apparatus for providing a component block architecture
US9348608B2 (en) * 2013-04-24 2016-05-24 QRC, Inc. System and method for registering application and application transforms on a radiofrequency digitization and collection device
US9729465B2 (en) 2013-05-01 2017-08-08 Red Hat, Inc. Policy based application elasticity across heterogeneous computing infrastructure
US9384115B2 (en) * 2013-05-21 2016-07-05 Amazon Technologies, Inc. Determining and monitoring performance capabilities of a computer resource service
US9292328B2 (en) 2013-05-24 2016-03-22 Bromium, Inc. Management of supervisor mode execution protection (SMEP) by a hypervisor
US9383986B2 (en) 2013-06-18 2016-07-05 Disney Enterprises, Inc. Safe low cost web services software deployments
US20160139949A1 (en) * 2013-07-19 2016-05-19 Hewlett-Packard Development Company, L.P. Virtual machine resource management system and method thereof
US9852000B2 (en) * 2013-08-27 2017-12-26 Empire Technology Development Llc Consolidating operations associated with a plurality of host devices
US10599565B2 (en) 2013-12-24 2020-03-24 Hewlett-Packard Development Company, L.P. Hypervisor managing memory addressed above four gigabytes
US10430614B2 (en) 2014-01-31 2019-10-01 Bromium, Inc. Automatic initiation of execution analysis
CN103823657A (zh) * 2014-02-17 2014-05-28 汉柏科技有限公司 一种超线程设备板间通信的方法
RU2573789C2 (ru) * 2014-04-18 2016-01-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ запуска виртуальной машины
US20150347170A1 (en) * 2014-05-27 2015-12-03 Vmware, Inc. Grouping virtual machines in a cloud application
US11228637B2 (en) 2014-06-26 2022-01-18 Vmware, Inc. Cloud computing abstraction layer for integrating mobile platforms
US9680873B1 (en) 2014-06-30 2017-06-13 Bromium, Inc. Trusted network detection
EP3169025A4 (en) * 2014-07-08 2017-12-06 Ntt Docomo, Inc. Control node, node creation system and node creation method
US10311122B1 (en) 2014-08-22 2019-06-04 Bromium, Inc. On-demand unprotected mode access
US10009292B2 (en) 2014-10-03 2018-06-26 International Business Machines Corporation Cloud independent tuning service for autonomously managed workloads
US9619266B2 (en) 2014-10-10 2017-04-11 International Business Machines Corporation Tearing down virtual machines implementing parallel operators in a streaming application based on performance
CN104375877A (zh) * 2014-10-15 2015-02-25 国云科技股份有限公司 一种虚拟机在线快照生成与删除方法
EP3227779A1 (en) * 2014-12-04 2017-10-11 Nokia Solutions And Networks Management International GmbH Steering of virtualized resources
JP6107801B2 (ja) * 2014-12-12 2017-04-05 日本電気株式会社 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム
JP6312139B2 (ja) * 2014-12-26 2018-04-18 日本電信電話株式会社 動的制御システム及び動的制御方法
US10795856B1 (en) * 2014-12-29 2020-10-06 EMC IP Holding Company LLC Methods, systems, and computer readable mediums for implementing a data protection policy for a transferred enterprise application
CN104506651B (zh) * 2015-01-05 2018-02-23 浪潮(北京)电子信息产业有限公司 一种虚拟应用服务管理方法及系统
US9614931B2 (en) * 2015-01-20 2017-04-04 Sphere 3D Inc. Identifying a resource set require for a requested application and launching the resource set in a container for execution in a host operating system
US9213540B1 (en) * 2015-05-05 2015-12-15 Archive Solutions Providers Automated workflow management system for application and data retirement
US10242122B2 (en) 2015-05-05 2019-03-26 DGD Systems, Inc. Automated workflow management system for application and data retirement
US9658894B2 (en) 2015-10-15 2017-05-23 International Business Machines Corporation Automatically and dynamically reclaiming resources during virtual machine decommission
US10412114B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Application randomization mechanism
US10200406B1 (en) 2015-12-17 2019-02-05 Architecture Technology Corporation Configuration of application randomization mechanism
US10007498B2 (en) 2015-12-17 2018-06-26 Architecture Technology Corporation Application randomization mechanism
US10200401B1 (en) 2015-12-17 2019-02-05 Architecture Technology Corporation Evaluating results of multiple virtual machines that use application randomization mechanism
US10412116B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Mechanism for concealing application and operation system identity
US10284592B1 (en) 2015-12-17 2019-05-07 Architecture Technology Corporation Application randomization mechanism
US10394587B2 (en) 2016-01-06 2019-08-27 International Business Machines Corporation Self-terminating or self-shelving virtual machines and workloads
US10255092B2 (en) * 2016-02-09 2019-04-09 Airwatch Llc Managed virtual machine deployment
JP6530816B2 (ja) 2016-03-25 2019-06-12 深▲せん▼前海達闥雲端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co., Ltd. アプリケーション起動方法及びその装置
US10169027B2 (en) * 2016-05-05 2019-01-01 International Business Machines Corporation Upgrade of an operating system of a virtual machine
US10768920B2 (en) 2016-06-15 2020-09-08 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
JP6631710B2 (ja) * 2016-06-29 2020-01-15 富士通株式会社 仮想化管理プログラム、仮想化管理装置および仮想化管理方法
US10885219B2 (en) * 2017-02-13 2021-01-05 Microsoft Technology Licensing, Llc Privacy control operation modes
US10554685B1 (en) 2017-05-25 2020-02-04 Architecture Technology Corporation Self-healing architecture for resilient computing services
US11070432B2 (en) * 2017-07-20 2021-07-20 Cisco Technology, Inc. Dynamic and customizable virtual network functions
US10990432B1 (en) 2017-11-30 2021-04-27 Ila Corporation Method and system for interactive cyber simulation exercises
US11221865B2 (en) * 2018-07-31 2022-01-11 Nutanix, Inc. Batch management of operations over virtualized entities
US20200073678A1 (en) * 2018-08-31 2020-03-05 Dell Products L.P. Systems and methods for operating system deployment
US11301338B2 (en) * 2018-09-20 2022-04-12 EMC IP Holding Company LLC Recovery on virtual machines with existing snapshots
KR20200093168A (ko) * 2019-01-28 2020-08-05 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
US10848379B2 (en) 2019-01-30 2020-11-24 Hewlett Packard Enterprise Development Lp Configuration options for cloud environments
US10915312B2 (en) * 2019-07-02 2021-02-09 Vmware, Inc. Lifecycle management of virtual compute templates
US11605166B2 (en) 2019-10-16 2023-03-14 Parsons Corporation GPU accelerated image segmentation
KR102643727B1 (ko) * 2019-10-30 2024-03-04 주식회사 케이티 고장 탐지 모델 배포 방법 및 이를 위한 장치
WO2021150594A1 (en) 2020-01-20 2021-07-29 Parsons Corporation Narrowband iq extraction and storage
US11619700B2 (en) 2020-04-07 2023-04-04 Parsons Corporation Retrospective interferometry direction finding
US11569848B2 (en) 2020-04-17 2023-01-31 Parsons Corporation Software-defined radio linking systems
US11575407B2 (en) 2020-04-27 2023-02-07 Parsons Corporation Narrowband IQ signal obfuscation
US12050924B2 (en) * 2020-11-16 2024-07-30 Sap Se Dynamic configuration of access restrictions for an application in relation to databases running in a cloud environment
US11849347B2 (en) 2021-01-05 2023-12-19 Parsons Corporation Time axis correlation of pulsed electromagnetic transmissions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208999A (ja) * 2004-01-23 2005-08-04 Ntt Data Corp 仮想マシン管理プログラム
CN101132329A (zh) * 2007-09-17 2008-02-27 北京航空航天大学 移动虚拟环境系统
US7356679B1 (en) * 2003-04-11 2008-04-08 Vmware, Inc. Computer image capture, customization and deployment

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2002033543A1 (ja) * 2000-10-16 2004-02-26 嶋 昌彦 ソフトウェアレンタルシステム
JP2002351682A (ja) * 2001-05-30 2002-12-06 Canon Inc 情報処理方法および情報処理システム
US7296267B2 (en) * 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts
JP2004102398A (ja) * 2002-09-05 2004-04-02 Sharp Corp アプリケーション管理装置、その方法およびそのコンピュータ・プログラム
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US20050005018A1 (en) * 2003-05-02 2005-01-06 Anindya Datta Method and apparatus for performing application virtualization
WO2005036367A2 (en) * 2003-10-08 2005-04-21 Unisys Corporation Virtual data center that allocates and manages system resources across multiple nodes
US20050132367A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for proxying, aggregating and optimizing virtual machine information for network-based management
US7454748B2 (en) * 2004-07-27 2008-11-18 Nokia Corporation System and method for specifying virtual machines
US20060070066A1 (en) * 2004-09-30 2006-03-30 Grobman Steven L Enabling platform network stack control in a virtualization platform
DE602004027516D1 (de) * 2004-12-03 2010-07-15 St Microelectronics Srl Ein Verfahren zum Verwalten von virtuellen Maschinen in einer körperlichen Verarbeitungsmaschine, ein entsprechendes Prozessorsystem und Computerprogrammprodukt dafür
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US7434218B2 (en) * 2005-08-15 2008-10-07 Microsoft Corporation Archiving data in a virtual application environment
US8949364B2 (en) * 2005-09-15 2015-02-03 Ca, Inc. Apparatus, method and system for rapid delivery of distributed applications
US8490082B2 (en) * 2005-11-03 2013-07-16 International Business Machines Corporation System and method for representing user processes as software packages in a software package management system
US9032164B2 (en) * 2006-02-17 2015-05-12 Emulex Corporation Apparatus for performing storage virtualization
US8015563B2 (en) * 2006-04-14 2011-09-06 Microsoft Corporation Managing virtual machines with system-wide policies
US8108668B2 (en) * 2006-06-26 2012-01-31 Intel Corporation Associating a multi-context trusted platform module with distributed platforms
AU2007281686A1 (en) * 2006-08-07 2008-02-14 Bea Systems, Inc. System and method for providing hardware virtualization in a virtual machine environment
US8949826B2 (en) * 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
JP2008107966A (ja) * 2006-10-24 2008-05-08 Hitachi Ltd 計算機システム
US8448161B2 (en) * 2007-07-30 2013-05-21 Adobe Systems Incorporated Application tracking for application execution environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356679B1 (en) * 2003-04-11 2008-04-08 Vmware, Inc. Computer image capture, customization and deployment
JP2005208999A (ja) * 2004-01-23 2005-08-04 Ntt Data Corp 仮想マシン管理プログラム
CN101132329A (zh) * 2007-09-17 2008-02-27 北京航空航天大学 移动虚拟环境系统

Also Published As

Publication number Publication date
CA2723907C (en) 2016-03-01
RU2010150809A (ru) 2012-06-20
WO2009151875A1 (en) 2009-12-17
EP2310940A1 (en) 2011-04-20
BRPI0911610B1 (pt) 2019-11-12
US20090313620A1 (en) 2009-12-17
AU2009257865B2 (en) 2015-02-26
RU2498394C2 (ru) 2013-11-10
AU2009257865A1 (en) 2009-12-17
BRPI0911610A2 (pt) 2015-10-06
JP5367074B2 (ja) 2013-12-11
US8161479B2 (en) 2012-04-17
JP2011524053A (ja) 2011-08-25
CN102057355A (zh) 2011-05-11
CA2723907A1 (en) 2009-12-17
KR101574366B1 (ko) 2015-12-03
EP2310940A4 (en) 2014-01-01
KR20110030447A (ko) 2011-03-23

Similar Documents

Publication Publication Date Title
CN102057355B (zh) 同步虚拟机和应用程序生存周期
CN103814362B (zh) 用于分布式kvs系统的处理方法和系统
CN102834822B (zh) 由虚拟机共享的群集的快速-完整备份
US7979869B2 (en) Method and system for performing I/O operations using a hypervisor
US9336132B1 (en) Method and system for implementing a distributed operations log
CN102541658B (zh) 将机器转换为虚拟机
US20040044643A1 (en) Managing multiple virtual machines
US9354776B1 (en) Applied client-side service integrations in distributed web systems
KR101432463B1 (ko) 가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법
US9886443B1 (en) Distributed NFS metadata server
CN103019802B (zh) 一种虚拟机管理方法及平台
US20090260021A1 (en) Workflow managed composite applications
US20080256530A1 (en) System and Method for Determining Firmware Compatibility for Migrating Logical Partitions
US20120167090A1 (en) Hypervisor for starting a virtual machine
CN107534571A (zh) 管理虚拟网络功能
CN103229142A (zh) 管理软件产品虚拟镜像的先决条件的方法、计算机程序和系统
CN103036986A (zh) 在分布式应用对象上提供更新通知
CN103793258A (zh) 基于管理程序的服务器复制系统及其方法
CN102592077A (zh) 提供安全边界
WO2012131507A1 (en) Running a plurality of instances of an application
CN101211362B (zh) 用于数据库更新管理的系统和方法
Barrett et al. Staging for z/OS Optimization
Prager The project automated librarian
CN117742887A (zh) 一种基于kubernetes数据卷完成云平台虚拟机克隆的方法
JP2005071158A (ja) ファイル排他制御方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150506

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150506

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.