CN103036986B - 在分布式应用对象上提供更新通知 - Google Patents

在分布式应用对象上提供更新通知 Download PDF

Info

Publication number
CN103036986B
CN103036986B CN201210546703.5A CN201210546703A CN103036986B CN 103036986 B CN103036986 B CN 103036986B CN 201210546703 A CN201210546703 A CN 201210546703A CN 103036986 B CN103036986 B CN 103036986B
Authority
CN
China
Prior art keywords
template
virtual
notice
redaction
distributed application
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
CN201210546703.5A
Other languages
English (en)
Other versions
CN103036986A (zh
Inventor
A·施
S·帕萨沙拉西
B·N·贝雷拉
R·奈尔
R·马尔霍特拉
M·迈克尔
E·J·温纳
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 Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN103036986A publication Critical patent/CN103036986A/zh
Application granted granted Critical
Publication of CN103036986B publication Critical patent/CN103036986B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/45579I/O management, e.g. providing access to device drivers or storage

Abstract

在分布式应用对象上提供更新通知。本发明涉及用于在分布式应用对象上提供更新通知的方法、系统以及计算机程序产品。在创建另一对象所依赖的对象的新版本时,通知可被添加到该依赖对象以向管理该依赖对象的人警告经更新的对象的创建。依赖对象可包括模板对象以及表示根据模板对象来实例化的服务实例的服务实例对象,模板对象诸如引用虚拟盘对象的虚拟机模板对象和引用一个或多个虚拟机模板对象的服务模板对象。家族内对象的各版本可通过共享家族名称并具有不同版本来标识。时间戳被用来表示对象何时被发布,以确定对象的哪一版本是家族中的最新版本。

Description

在分布式应用对象上提供更新通知
技术领域
本发明涉及在分布式应用对象上提供更新通知。
背景技术
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统和其他电子设备可以在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算环境中。
在一些环境中,许多不同的物理资源被编组在一起并被虚拟化,以创建虚拟计算机系统(即,“虚拟机”)。例如,虚拟机可包括指定数量的处理器、指定量的存储器、一个或多个虚拟存储设备、要存储在虚拟存储设备上的应用或其他组件,等等。为创建虚拟机,一个或多个用户指定该虚拟机的所需配置。这一配置可包括设置虚拟机实例上的多个属性,如引用特定虚拟存储设备的属性。
在本说明书中,在虚拟存储设备和这些设备的内容(在下文中一般称为虚拟盘)之间作出区分。虚拟硬盘驱动器是虚拟存储设备,而虚拟硬盘驱动器的内容被称为虚拟硬盘。虚拟硬盘驱动器被表示为关于虚拟机的属性,而虚拟硬盘是包含诸如该虚拟机所使用的操作系统等数据的文件。类似地,虚拟CD或DVD驱动器被表示为关于虚拟机的属性,而虚拟CD或虚拟DVD被表示为文件(例如,用于DVD的内容的.ISO)。另一形式的虚拟盘是虚拟机盘(VMDK)。
为便于创建虚拟机,可以根据虚拟机模板对象来生成虚拟机的实例(与需要手动配置各属性形成对比)。虚拟机模板对象可被认为是用于创建虚拟机的蓝图。虚拟机模板对象可以指定所需物理资源和它们的配置。例如,虚拟机模板对象可包括用于指定处理器的数量、存储器的量等的元数据。虚拟机模板对象还可标识虚拟机要包括虚拟硬盘驱动器(或其他虚拟存储设备)和应当被包括在虚拟硬盘驱动器内的内容。例如,虚拟机模板对象可以引用虚拟硬盘对象。
另外,服务模板对象可被用作用于创建分布式应用的蓝图。在本说明书中,术语分布式应用一般与术语服务实例互换地使用。分布式应用包括被配置成实现所需功能的一组一个或多个虚拟机。因此,服务模板对象可引用一个或多个虚拟机模板对象,其中要根据该虚拟机模板对象来创建一个或多个虚拟机实例以实现分布式应用。在本说明书中,包括附图,虚拟机模板对象和服务模板对象被统称为模板对象。
在根据虚拟机模板对象创建虚拟机时,使用在该虚拟机模板对象中定义的属性来配置该虚拟机。因此,虚拟机模板对象可被用来确保虚拟机的许多实例被类似地配置。例如,虚拟机模板对象可被定义一次,并且可根据该虚拟机模板对象生成虚拟机的许多实例,使得每一实例具有相同属性(例如,同一虚拟硬盘的副本、相同数量的处理器和存储器,等等)。
类似地,服务模板对象可被定义一次,并且可根据该服务模板对象来生成分布式应用的许多实例,使得分布式应用的每一实例包括相同数量的具有相同配置的虚拟机。虽然对本发明的理解而言并非必要,服务模板对象可包括引用虚拟机模板对象的分层模板对象。一层是被相同地配置的一组虚拟机。因此,分层模板对象可以引用虚拟机模板对象并指示应根据该虚拟机模板对象生成的虚拟机实例的数量。
用于创建虚拟机的资源通常是由不同的人来设计和/或管理的。例如,应用一般由开发人员创建。另一方面,虚拟硬盘一般由主存虚拟机的公司的服务器管理员创建。模板对象通常由需要虚拟机的公司的IT管理员或其他IT员工创建,并且虚拟机的各实例是由该公司的不同IT员工部署的或甚至是由希望使用该公司的模板对象的另一公司来部署的。
至少部分由于在创建和部署虚拟机的过程中所涉及的不同各方的数量,向所有相关各方通知对用于创建该虚拟机的资源的变更可能是困难的。提供经变更的资源的通知的一些方法涉及传统通信模式,如电子邮件、电话,等等。这些传统方法具有高等待时间,冗长且易于出错。
例如,由服务器管理员确定依赖于特定虚拟硬盘的每一模板对象并随后向每一相关方通知对虚拟硬盘的变更一般是耗时的。另外,即使向每一相关方通知了该变更(如通过电子邮件或电话),一方可能很容易忘记对该变更进行响应或以某一其他方式未能修改模板对象而不能使用经更新的虚拟硬盘。
在创建经更新的模板对象时,存在类似问题。例如,需要向管理依赖于该模板对象的服务实例对象的每一方通知经更新的模板对象的可用性。如上所述,通知这些各方并且使被通知到的各方也适当地对该通知作出响应可能是冗长且易于出错的过程。
发明内容
本发明涉及用于在用来创建分布式应用的对象上提供更新通知的方法、系统以及计算机程序产品。本发明简化了向相关各方通知新的或经更新的对象的过程,并且便于对这些通知适当地进行响应。
在一个实施例中,检测到创建虚拟盘对象的新版本。该对象表示供在分布式应用中使用的虚拟盘。标识一个或多个模板对象。该一个或多个模板对象依赖于该虚拟盘对象。向该一个或多个模板对象中的每一个提供指示已创建了该虚拟盘对象的新版本的通知。
在另一实施例中,检测到创建模板对象的新版本。模板对象的该新版本定义分布式应用。标识根据该模板对象生成的一个或多个服务实例对象。向该一个或多个服务实例对象中的每一个提供通知。该通知指示已创建了该模板对象的新版本。
提供本发明内容以便以简化的形式介绍将在以下的具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本描述将是显而易见的,或可通过对本发明的实践来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加显而易见,或可通过对下文中所述的本发明的实践来领会。
附图说明
为了描述可获得本发明的上述和其他优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,在附图中:
图1示出便于在分布式应用对象上提供更新通知的示例计算机体系结构;
图2A示出图1的示例计算机体系结构内的计算机系统中的各逻辑空间;
图2B-2E示出如何向该计算机系统中的逻辑空间内的对象提供通知;
图3是用于向依赖于虚拟盘对象的一个或多个模板对象提供对该虚拟盘对象的更新的通知的方法的流程图;以及
图4是用于向根据模板对象生成的一个或多个服务实例对象提供对该模板对象的更新的通知的方法的流程图。
具体实施方式
本发明涉及用于在用来创建分布式应用的对象上提供更新通知的方法、系统以及计算机程序产品。本发明简化了向相关各方通知新的或经更新的对象的过程,并且便于对这些通知适当地进行响应。
在一个实施例中,检测到创建虚拟盘对象的新版本。该对象表示供在分布式应用中使用的虚拟盘。标识了一个或多个模板对象。该一个或多个模板对象依赖于该虚拟盘对象。向该一个或多个模板对象中的每一个提供指示已创建了该虚拟盘对象的新版本的通知。
在另一实施例中,检测到创建模板对象的新版本。模板对象的该新版本定义分布式应用。标识根据该模板对象生成的一个或多个服务实例对象。向该一个或多个服务实例对象中的每一个提供通知。该通知指示已创建了该模板对象的新版本。
本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质(设备)。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质(设备)和传输介质。
计算机存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(SSD)(如基于RAM)、闪存、相变存储器(PCM)、其他类型的存储器、其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(设备)(或反之亦然)。例如,通过网络或数据链接接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质(设备)。因而,应当理解,计算机存储介质(设备)可被包括在还利用(甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
图1示出便于在分布式应用对象上提供更新通知的示例计算机体系结构100。参考图1,计算机体系结构100包括包含用于创建和执行虚拟机的多个互连处理器、存储器、以及存储设备的计算机系统101。例如,计算机系统101包括存储设备102、处理器103、以及存储器104。计算机系统101可在计算系统的云中实现。计算机系统101的示例可包括构成微软的系统中心虚拟机管理器(SystemCenterVirtualMachineManager)产品的资源。
计算机系统101可被通过网络(例如,局域网(“LAN”)、广域网(“WAN”)、或甚至因特网)连接到其他计算机系统,如计算机系统106和107。因此,其他计算机系统可使用任何可用的手段与计算机系统101进行通信,如通过创建消息相关数据并经由网络交换消息相关数据(例如,因特网协议(“IP”)数据报和利用IP数据报的其他更高层协议,如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。这样的通信可包括用于与正在执行的虚拟机进行交互的命令,或用于在计算机系统101内配置新的或现有的虚拟机的指令。
图2A示出计算机系统101内的各逻辑空间。计算机系统101可包括库空间201、模板空间202、以及实例空间203。图2A还示出计算机系统101可包括刷新器204,其功能将在下文描述。
库空间201存储定义虚拟盘的对象。例如,库空间201可以表示存储定义计算机系统101内可用的虚拟硬盘以及其他虚拟盘(如虚拟CD或虚拟DVD)的对象的物理位置。库空间201还可存储用于创建虚拟机的其他人工产物,如应用、脚本、驱动程序等。如图所示,库空间201存储虚拟硬盘对象205。虚拟硬盘(或其他虚拟盘)是存储该虚拟硬盘的内容(如操作系统)的文件。可根据虚拟硬盘对象来创建虚拟硬盘的实例(如通过将表示该虚拟硬盘的文件复制到执行使用该虚拟硬盘的虚拟机的主机系统)。虚拟硬盘对象205具有家族名称A.VHD和版本R-1。在下文描述对家族名称和版本的使用。
虽然各附图示出了对虚拟硬盘的使用,但任何其他类型的虚拟盘(如虚拟DVD)可用在本发明的各实施例中。另外,根据本发明的虚拟机可以使用一个以上虚拟盘。下文描述的通知技术可以同样应用于每一虚拟盘。
模板空间202存储所定义的模板对象,如虚拟机模板对象和服务模板对象。例如,模板空间202可以表示模板对象在计算机系统101内被存储的物理位置。在一特定实施例中,模板空间202可以表示存储在计算机系统101内定义的各模板对象的各组成值连同哪些模板对象使用哪一组成值的标识的一个或多个数据库表。然而,在其他实施例中,其他数据结构可被用于模板对象。
如图所示,模板空间202包括模板对象206。模板对象206表示虚拟机模板对象。虚拟机模板对象标识虚拟硬盘对象(以及可能其他虚拟盘对象),指定处理器的数量、存储器的量、以及要安装在该虚拟硬盘的实例上的应用或组件,以及其他。在创建虚拟机的实例时使用虚拟机模板对象。例如,模板对象206可标识虚拟硬盘对象205,从而指示根据模板对象206生成的虚拟机实例将包括根据虚拟硬盘对象205来实例化的虚拟硬盘。
虽然模板对象206被描述为表示虚拟机模板对象,但出于本发明的目的,模板对象206也可表示服务模板对象。例如,服务模板对象包括一个或多个虚拟机模板对象。具体而言,服务模板对象标识将组成根据该服务模板对象创建的服务实例的一个或多个虚拟机模板对象。服务模板对象还定义用于定义服务实例的其他属性和配置设置,如每一虚拟机如何与该服务实例中的其他虚拟机进行通信。
因此,可以说,服务模板对象间接引用被该服务模板对象中引用的虚拟机模板对象所直接引用的虚拟盘对象中的每一个。因此,对虚拟盘对象的更新的通知可被类似地提供给直接引用该虚拟盘对象的虚拟机模板对象和引用对该虚拟盘对象进行引用的任何虚拟机模板对象的服务模板对象两者。本说明书的其余部分以及权利要求书一般将指模板对象。这样的引用应被解释为包括虚拟机和服务模板对象两者,除非另外定义。
实例空间203包含服务实例,如服务实例214,它们是一组一个或多个虚拟机实例。例如,实例空间203可表示虚拟机实例在其中执行的物理处理器、存储器、以及存储。如图所示,实例空间203还可包括服务实例对象。服务实例对象是表示服务实例的数据结构。例如,服务实例对象214a可表示服务实例214。服务实例214可根据模板对象206来创建并约束虚拟机实例207。虚拟机实例207引用虚拟硬盘实例205a。虽然服务实例214被示为包括单个虚拟机实例,但任何数量的虚拟机实例可组成服务实例214。
在本说明书中,服务实例和分布式应用一般旨在指类似的事物。分布式应用在一组一个或多个虚拟机实例内执行。例如,多层分布式应用可包括实现该应用的前端的一个或多个虚拟机、实现该应用的中间层的一个或多个虚拟机、以及实现该应用的数据库后端的一个或多个虚拟机。在该示例中,多层分布式应用的虚拟机中的每一个可以根据虚拟机模板对象来生成。表示该分布式应用的服务模板对象可以引用这些虚拟机模板对象中的每一个。
为创建虚拟机实例207,根据模板对象206中标识的虚拟硬盘对象205来实例化虚拟硬盘实例205a,如模板对象206中所定义的那样来分配处理器和存储器,并且将模板对象206中定义的应用和组件安装在虚拟硬盘实例205a上。
图2B示出在创建经更新的虚拟硬盘对象时如何在模板对象上提供通知。图2B类似于图2A,加上虚拟硬盘对象208和经更新资源列表209。
虚拟硬盘对象208包括对虚拟硬盘对象205的更新。例如,虚拟硬盘对象205可包含操作系统的初始版本,而虚拟硬盘对象208可包含操作系统的经修补版本。图2B示出虚拟硬盘对象208具有与虚拟硬盘对象205相同的家族名称(A.VHD)但具有不同的版本(R-2)。
经更新资源列表209包括对模板对象206所依赖的资源的更新的列表。例如,如上所述,模板对象206标识虚拟硬盘对象205。因为虚拟硬盘对象208是虚拟硬盘对象205的经更新版本,所以向经更新资源列表209添加一个条目,该条目将虚拟硬盘对象208标识为对虚拟硬盘对象205的可用更新。通知可以通过使用对象的家族名称和版本来标识经更新对象,如下文充分描述的。
虽然图2A和2B示出了单个模板对象依赖于虚拟硬盘对象205并且单个服务实例对象214a依赖于模板对象206,但多个模板对象和服务实例对象可分别依赖于单个虚拟硬盘对象和单个模板对象。
刷新器204包括可周期性地或以其他时间间隔来执行以确定是否创建了对虚拟硬盘对象或模板对象的任何更新的模块。在刷新器204标识了经更新对象时,它更新适当的经更新资源列表。例如,在虚拟硬盘对象208被创建时,刷新器204可向经更新资源列表209添加条目。
本发明的各实施例还可提供一种用于向各对像提供即时通知的机制。例如,如果服务管理员创建了虚拟硬盘对象的新版本,则他可使得在依赖于该虚拟硬盘对象的每一模板对象上立即发出通知,而非等待刷新器204再次运行。
除向与对象相关联的经更新资源列表添加条目之外,本发明的各实施例还可在该对象内设置标志,以通知该对象它的经更新资源列表已被修改。只要该对象的经更新资源列表包含通知,这一标志就保持设置。
图2C示出了另一虚拟硬盘对象211已被添加到库空间201。虚拟硬盘对象211包括对虚拟硬盘对象208的更新。图2C示出了虚拟硬盘对象211具有与虚拟硬盘对象205和208相同的家族名称(A.VHD),但具有与虚拟硬盘对象205和208不同的版本(R-3)。
作为添加虚拟硬盘对象211的结果,图2C示出了经更新资源列表209已被修改。经更新资源列表209现在包括两个通知,虚拟硬盘对象208和211各一个。
图2D示出在创建经更新的模板对象时如何在服务实例对象上提供通知。图2D类似于图2B,但包括在模板空间202和经更新资源列表210中添加了新模板对象212。在图2D中,模板对象206和212两者被示为包括家族名称和版本。模板对象212是模板对象206的经更新版本,如以下事实所示:这两个对象共享家族名称(X.Temple)但具有不同的版本(分别是R-1和R-2)。该更新可以是对模板对象206的任何变更,然而,图2D示出了模板对象212中的更新是对虚拟硬盘对象208的引用。
模板对象212的版本的通知可按上述类似的方式被设置在服务实例对象214a上。例如,如图所示,经更新资源列表210现在包括模板对象212的通知。
如果在添加模板对象212的通知之前经更新资源列表210是空的,则可设置服务实例对象214a中的标志以向服务实例对象214a指示经更新资源列表210中有一个或多个通知。然而,如果经更新资源列表210已经包含通知,则该标志将已经是设置了的。模板对象212的通知也可如下所述地解散。
虽然图2D没有示出模板对象212的经更新资源列表,但模板对象212的经更新资源列表将显得类似于经更新资源列表209。例如,如果模板对象212也标识了虚拟硬盘对象205,则虚拟硬盘对象208的通知可被添加到模板对象212的经更新资源列表。当然,如果模板对象212标识了虚拟硬盘对象208,则这样的通知将是不必要的。
图2E示出了如何从对象的经更新资源列表中解散通知。图2E在以下方面与图2D不同:另一经更新的模板对象213已被添加到模板空间203。模板对象213也是对模板对象206的更新,如共享与模板对象206相同的名称但不同版本的模板对象213所示。如图所示,经更新资源列表210包括模板对象213的新添加的通知,但模板对象212的通知已被解散。
图2E示出了出于简明的目的所解散的通知被划掉,然而,该通知也可从经更新资源列表210中移除。服务模板对象214a的管理员可出于任何原因来解散通知。例如,管理员也可解散经更新资源列表210中的模板对象212的通知。
在本发明的一些实施例中,如图2E所示,只有服务实例对象的经更新资源列表中的通知能被解散,而模板对象的经更新资源列表中的通知不能被解散。在其他实施例中,模板对象的经更新资源列表中的通知也可被解散。
除向经更新资源列表添加通知之外,刷新器204也可移除旧通知。例如,再次参考图2E,如果模板对象213被删除,则刷新器204可检测到该删除并相应地对经更新资源列表210进行更新。类似地,如果虚拟盘被从库空间201删除,则可检测到模板对象上的该被删除虚拟盘的任何通知。虽然以上描述描述了可用更新的通知,从而允许手动地解决这些更新,但在本发明的一些实施例中,可用更新可被自动应用于模板或服务实例对象。在这些场景中,并非向人通知可用更新,可以提供该更新将被应用的通知。可用更新是否被自动应用可以基于业务智能和/或所定义的度量。
另外,在本发明的一些实施例中,可在服务实例对象上提供经更新的虚拟盘对象的通知。换言之,在经更新的虚拟盘变得可用时,除了在依赖于该虚拟盘的先前版本的任何模板对象上提供通知之外,本发明可以在依赖于该虚拟盘的先前版本的任何服务实例对象上提供类似的通知。
为了标识库空间201和模板空间202内的资源和对资源的更新,使用一命名方案。在这些空间内,用家族名称和版本来标识每一资源。家族名称标识一组相关资源。家族名称的示例是“WindowsServer2008”。版本标识家族中资源的特定版本。例如,“WindowsServer2008”家族可包括具有家族名称“WindowsServer2008”和版本“RTM”的虚拟硬盘对象以及具有相同家族名称但不同版本“SP1”的另一虚拟硬盘对象。通过共享家族名称,本发明的系统可以知道这两个虚拟硬盘对象是相关的。
另外,向每一资源分配指示首次发布该资源的时间戳。发布资源指的是使得该资源可供使用的动作。例如,可在模板空间202内创建(即,定义)模板对象,但可不发布该模板对象以供使用,直至特定日期为止。发布日期是用于该时间戳的日期。然而,在其他实施例中,资源的创建日期可被用作时间戳。例如,盘对象在库空间201中的存在可以构成发布。
这一时间戳使得该系统能够知道哪一资源是该家族中的最近版本。例如,使用以上“WindowsServer2008”家族名称,带有版本“SP1”的虚拟硬盘对象可具有比带有版本“RTM”的虚拟硬盘对象在时间上较晚的时间戳。
在刷新器204搜索新资源时,它可以使用与每一资源相关联的时间戳来确定新资源是否被创建以及是否需要通知。例如,刷新器204可以检测模板对象依赖于具有家族名称“WindowsServer2008”和版本“RTM”的虚拟硬盘。在刷新器204检测到带有相同家族名称和版本“SP1”的虚拟硬盘具有比版本“RTM”的时间戳更晚的时间戳时,刷新器204可以通过将通知添加到它的经更新资源列表并在必要的情况下设置标志来在模板对象上发出通知。
如可看到的,在对象上自动发出通知的这一过程是用于向各相关人员通知经更新的资源的可用性的高效方式。由人员所管理的对象的经更新资源列表可被显示在由相关人员所使用的应用的用户界面内。该用户界面还可提供用于允许该人生成新模板对象或新服务实例对象的装置。因此,经更新的资源可被更快速和高效地部署在虚拟机实例中。
图3示出了用于向依赖于虚拟盘对象的一个或多个模板对象提供对该虚拟盘对象的更新的通知的示例方法300的流程图。方法300将参考图2B来描述。
方法300包括检测虚拟盘对象的新版本已被创建的动作301。该虚拟盘对象表示供在分布式应用中使用的虚拟盘。例如,刷新器204可以检测虚拟硬盘对象208已被创建。刷新器还可基于在每一对象中定义的家族名称、版本、以及时间戳来检测虚拟硬盘对象208是虚拟硬盘对象205的较新版本。
方法300包括标识依赖于虚拟盘对象的一个或多个模板对象的动作302。例如,刷新器204可标识模板对象206依赖于虚拟硬盘对象205。
方法300包括在依赖于虚拟盘对象的一个或多个模板对象中的每一个中提供该虚拟盘对象的新版本已被创建的通知的动作303。例如,刷新器204可以使得虚拟硬盘对象208的创建的通知被添加到经更新资源列表209。如果经更新资源列表209在虚拟硬盘对象208的通知被添加之前先前是空的,则刷新器204还可设置经更新资源列表209中的标志。
图4示出了用于向根据模板对象生成的一个或多个服务实例对象提供对该模板对象的更新的通知的示例方法400的流程图。方法400将参考图2E来描述。
方法400包括检测定义分布式应用的模板对象的新版本已被创建的动作401。例如,刷新器204可以检测模板对象212已被创建。刷新器还可基于在每一对象中定义的家族名称、版本、以及时间戳来检测模板对象212是模板对象206的较新版本。
方法400包括标识根据模板对象生成的一个或多个服务实例对象的动作402。例如,刷新器204可以标识服务实例对象214a是根据模板对象206生成的。
方法400包括向一个或多个服务实例对象中的每一个提供模板对象的新版本已被创建的通知的动作403。例如,刷新器204可以使得模板对象212的创建的通知被添加到经更新资源列表210。如果经更新资源列表210在模板对象212的通知被添加之前先前是空的,则刷新器204还可设置经更新资源列表210中的标志。
本发明可具体化为其他具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。

Claims (10)

1.一种在包括一个或多个处理器(103)和系统存储器(104)的计算机系统(101)中的、用于提供对表示虚拟盘(205)的对象的更新(208)通知的方法(300),所述计算机系统执行各自都是根据模板对象(206)来实例化的多个分布式应用(214),所述模板对象定义各自表示对应的分布式应用的组成的多个对象,所述方法包括:
检测(301)虚拟盘对象(205)的新版本已被创建,所述虚拟盘对象表示供在分布式应用中使用的虚拟盘;
标识(302)依赖于所述虚拟盘对象的一个或多个模板对象(206);以及
在依赖于所述虚拟盘对象的所述一个或多个模板对象中的每一个中提供(303)该虚拟盘对象的新版本已被创建的通知。
2.如权利要求1所述的方法,其特征在于,所述虚拟盘对象包括家族名称的标识符和该对象的版本的标识符。
3.如权利要求2所述的方法,其特征在于,检测供在分布式应用中使用的虚拟盘对象的新版本已被创建还包括检测具有所述家族名称的相同标识符和版本的不同标识符的对象已被创建。
4.如权利要求3所述的方法,其特征在于,检测供在分布式应用中使用的虚拟盘对象的新版本已被创建还包括检测与所述对象的所述新版本相关联的时间戳比与所述虚拟盘对象相关联的时间戳更新近。
5.如权利要求2所述的方法,其特征在于,标识依赖于所述虚拟盘对象的一个或多个模板对象还包括标识包含对以下各项的引用的一个或多个模板对象:所述虚拟盘对象的家族名称的标识符、以及版本的标识符。
6.如权利要求1所述的方法,其特征在于,在依赖于所述虚拟盘对象的一个或多个模板对象中的每一个中提供所述虚拟盘对象的新版本已被创建的通知还包括在依赖于所述虚拟盘对象的所述一个或多个模板对象中的每一个中设置标志。
7.如权利要求1所述的方法,其特征在于,所述一个或多个模板对象中的每一个包括虚拟机模板对象或服务模板对象。
8.如权利要求1所述的方法,其特征在于,所述虚拟盘对象的所述新版本包括针对由所述对象所表示的虚拟硬盘的补丁。
9.一种在包括一个或多个处理器(103)和系统存储器(104)的计算机系统(101)中的、用于向一个或多个服务实例对象(214a)提供对模板对象(206)的更新的通知的方法(400),所述计算机系统执行各自都是根据模板对象(206)来实例化的多个分布式应用(214),所述模板对象定义各自表示对应的分布式应用的组成的多个对象,所述服务实例对象表示根据所述模板对象生成的服务实例,所述方法包括:
检测(401)定义分布式应用的模板对象(206)的新版本已被创建;
标识(402)表示根据所述模板对象生成的服务实例(214)的一个或多个服务实例对象(214a);以及
向所述一个或多个服务实例对象中的每一个提供(403)所述模板对象的新版本已被创建的通知。
10.如权利要求9所述的方法,其特征在于,还包括:
结合向所述一个或多个服务实例对象中的每一个提供所述通知,向所述一个或多个服务实例对象中的每一个提供解散所述通知的选项。
CN201210546703.5A 2011-12-15 2012-12-14 在分布式应用对象上提供更新通知 Active CN103036986B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/326,878 2011-12-15
US13/326,878 US8694986B2 (en) 2011-12-15 2011-12-15 Providing update notifications on distributed application objects

Publications (2)

Publication Number Publication Date
CN103036986A CN103036986A (zh) 2013-04-10
CN103036986B true CN103036986B (zh) 2016-06-01

Family

ID=48023458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210546703.5A Active CN103036986B (zh) 2011-12-15 2012-12-14 在分布式应用对象上提供更新通知

Country Status (6)

Country Link
US (1) US8694986B2 (zh)
EP (1) EP2791793B1 (zh)
JP (1) JP6077562B2 (zh)
KR (1) KR102008037B1 (zh)
CN (1) CN103036986B (zh)
WO (1) WO2013090066A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9792131B1 (en) 2010-05-28 2017-10-17 Bromium, Inc. Preparing a virtual machine for template creation
US9148428B1 (en) 2011-05-25 2015-09-29 Bromium, Inc. Seamless management of untrusted data using virtual machines
US10095530B1 (en) 2010-05-28 2018-10-09 Bromium, Inc. Transferring control of potentially malicious bit sets to secure micro-virtual machine
US8752047B2 (en) 2010-05-28 2014-06-10 Bromium, Inc. Automated management of virtual machines to process untrusted data based on client policy information
US9767274B2 (en) 2011-11-22 2017-09-19 Bromium, Inc. Approaches for efficient physical to virtual disk conversion
US9239909B2 (en) 2012-01-25 2016-01-19 Bromium, Inc. Approaches for protecting sensitive data within a guest operating system
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
US9129124B2 (en) * 2012-04-12 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamic provisioning of virtual systems
CN103440157B (zh) * 2013-06-25 2016-12-28 百度在线网络技术(北京)有限公司 一种用于获得虚拟机的模板的方法和装置
US9274828B2 (en) 2013-11-03 2016-03-01 Maestrano Pty Ltd. Systems and methods for event driven object management and distribution among multiple client applications
CN104639361B (zh) * 2013-11-15 2019-04-19 中兴通讯股份有限公司 网络服务模板的管理方法和装置
US10430614B2 (en) 2014-01-31 2019-10-01 Bromium, Inc. Automatic initiation of execution analysis
US9916171B2 (en) * 2014-07-10 2018-03-13 International Business Machines Corporation Application discovery in virtual machines using temporal clustering of installation files
WO2016113913A1 (ja) * 2015-01-16 2016-07-21 株式会社日立製作所 サービスを作成する管理システム
CN105549906B (zh) * 2015-12-09 2019-04-26 华为技术有限公司 一种外置虚拟存储的部署方法、装置和系统
CN109213565B (zh) * 2017-06-29 2023-08-11 中兴通讯股份有限公司 异构虚拟计算资源的管理方法、相关设备及存储介质
US10884788B2 (en) * 2018-04-03 2021-01-05 Amazon Technologies, Inc. On-demand code execution with limited memory footprint
KR102012604B1 (ko) * 2018-12-28 2019-10-21 건국대학교 산학협력단 가상화를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법
CN112506641B (zh) * 2019-09-16 2022-11-11 武汉斗鱼网络科技有限公司 一种对象智能释放方法、装置和终端设备
KR102439928B1 (ko) * 2020-10-08 2022-09-05 주식회사 엑스게이트 취약점 탐지 방법 및 취약점 탐지 시스템
CN112632029B (zh) * 2020-12-04 2022-08-05 杭州海康威视系统技术有限公司 分布式存储系统的数据管理方法、装置及设备
US20220318042A1 (en) * 2021-04-01 2022-10-06 RAMScaler, Inc. Distributed memory block device storage
CN114625485A (zh) * 2022-05-12 2022-06-14 武汉四通信息服务有限公司 虚拟机模板管理系统、方法、装置、信服易云及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1954316A (zh) * 2004-04-01 2007-04-25 诺基亚公司 用于在多个设备之间实现数据同步的方法、设备和系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6259446B1 (en) 1992-12-23 2001-07-10 Object Technology Licensing Corporation Menu state system
JPH06332687A (ja) * 1993-05-18 1994-12-02 Fujitsu Ltd プログラム自動修正反映方式
US20030172368A1 (en) 2001-12-26 2003-09-11 Elizabeth Alumbaugh System and method for autonomously generating heterogeneous data source interoperability bridges based on semantic modeling derived from self adapting ontology
US8412813B2 (en) 2002-03-18 2013-04-02 Logiclibrary, Inc. Customizable asset governance for a distributed reusable software library
US7584467B2 (en) 2003-03-17 2009-09-01 Microsoft Corporation Software updating system and method
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US9594548B2 (en) 2005-12-27 2017-03-14 International Business Machines Corporation Dynamically updating templated applications
US7694101B2 (en) * 2005-12-30 2010-04-06 Vmware, Inc. Implementing virtual disk reservations on a storage media for multiple distributed applications
JP2009525531A (ja) * 2006-02-01 2009-07-09 エックス2 テクノロジーズ,インク. コンピュータサービス提供システムおよび方法
US20070234337A1 (en) * 2006-03-31 2007-10-04 Prowess Consulting, Llc System and method for sanitizing a computer program
US8205194B2 (en) 2007-06-29 2012-06-19 Microsoft Corporation Updating offline virtual machines or VM images
US20090183182A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Dynamic Composition of Virtualized Applications
US20090199175A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Dynamic Allocation of Virtual Application Server
US8352482B2 (en) * 2009-07-21 2013-01-08 Vmware, Inc. System and method for replicating disk images in a cloud computing based virtual machine file system
US8516137B2 (en) 2009-11-16 2013-08-20 Microsoft Corporation Managing virtual hard drives as blobs
US8627309B2 (en) * 2010-02-25 2014-01-07 Microsoft Corporation Automated deployment and servicing of distributed applications
US8533701B2 (en) * 2010-03-15 2013-09-10 Microsoft Corporation Virtual machine image update service

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1954316A (zh) * 2004-04-01 2007-04-25 诺基亚公司 用于在多个设备之间实现数据同步的方法、设备和系统

Also Published As

Publication number Publication date
KR102008037B1 (ko) 2019-08-06
EP2791793A4 (en) 2015-07-08
WO2013090066A1 (en) 2013-06-20
KR20140101371A (ko) 2014-08-19
US20130159987A1 (en) 2013-06-20
EP2791793B1 (en) 2020-06-24
JP2015505096A (ja) 2015-02-16
CN103036986A (zh) 2013-04-10
US8694986B2 (en) 2014-04-08
JP6077562B2 (ja) 2017-02-08
EP2791793A1 (en) 2014-10-22

Similar Documents

Publication Publication Date Title
CN103036986B (zh) 在分布式应用对象上提供更新通知
US10440138B2 (en) Provisioning IaaS services
US9569274B2 (en) Distributed application optimization using service groups
US11126481B2 (en) Fulfilling a request based on catalog aggregation and orchestrated execution of an end-to-end process
US9513938B2 (en) Virtual appliance integration with cloud management software
EP2174434B1 (en) Unwired enterprise platform
US10503905B1 (en) Data lineage management
US20100293147A1 (en) System and method for providing automated electronic information backup, storage and recovery
US10445186B1 (en) Associating a guest application within a virtual machine to create dependencies in backup/restore policy
US20120158662A1 (en) Backup and restore of data from any cluster node
US20190114231A1 (en) Image restore from incremental backup
US8549129B2 (en) Live migration method for large-scale IT management systems
US8832030B1 (en) Sharepoint granular level recoveries
US8751711B2 (en) Storage topology manager
EP2791787A1 (en) Autonomous network streaming
US9378064B2 (en) Orchestration management of information technology
George et al. A scalable and cloud-native hyperparameter tuning system
EP3680775A1 (en) Managing metadata for a distributed processing system
CN114787836A (zh) 用于远程执行一个或更多个任意定义的工作流的系统和方法
US11113339B2 (en) System and method for federated content management using a federated library and federated metadata propagation
JP6418419B2 (ja) ハードディスクがアプリケーションコードを実行するための方法および装置
US20140172955A1 (en) Distributed mobile enterprise application platform
KR20220131142A (ko) 분산 시스템의 데이터 처리 방법 및 이를 위한 전자 장치
US20140059538A1 (en) Virtual machine state tracking using object based storage
US20240134755A1 (en) Method and system for generating indexing metadata for object level restoration of limited access cloud data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150728

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

Effective date of registration: 20150728

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant