CN102449599B - 将java应用程序转换成用于云部署的虚拟服务器镜像的系统和方法 - Google Patents
将java应用程序转换成用于云部署的虚拟服务器镜像的系统和方法 Download PDFInfo
- Publication number
- CN102449599B CN102449599B CN201080024049.0A CN201080024049A CN102449599B CN 102449599 B CN102449599 B CN 102449599B CN 201080024049 A CN201080024049 A CN 201080024049A CN 102449599 B CN102449599 B CN 102449599B
- Authority
- CN
- China
- Prior art keywords
- mirror image
- virtual server
- assembly
- bootable
- server mirror
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
一种将诸如Java应用程序之类的软件应用程序转换成适合云部署的虚拟服务器镜像的系统和方法。根据一个实施例,该系统和方法允许构建包含运行应用程序的虚拟机的管理器设备。特别是,该管理器设备可以与用于服务器虚拟化的任何管理器兼容,并且该应用程序虚拟机可以是Java虚拟机(JVM)。
Description
版权声明
本专利文件的一部分公开内容包含受版权保护的资料。版权所有者不反对任何人复制如出现在专利商标局的专利文件或记录中那样的专利文件或专利公开,但除此之外保留所有其它版权。
技术领域
本发明一般地涉及应用服务器和虚拟机,尤其涉及用于将Java应用程序转换成适合云部署的虚拟机镜像(image)的系统和方法。
背景技术
云计算一般被定义为一种计算形式,其中在物理计算机器或服务器的分布式网络(例如互连网)上将动态和/或虚拟化资源作为服务来提供。客户机进程、软件应用程序(software application)及其用户无需明确知道或控制云内的技术基础结构。取而代之,它们可以向云请求或要求服务,然后由云内的其它提供者提供服务。这样,云计算允许软件应用程序开发者以简单的方式部署他们的应用程序以便同时运行在云中的数千台服务器上。
迄今为止,已经出现了在云中部署软件应用程序的不同方案,一般说来,这些方案是特定于云(cloud-specific)的,也就是说,应用程序需要符合云/管理器特定的应用程序接口(API),以便运行在它们的服务器上。当使用这种方法时,云客户不容易将应用程序从一个云提供者迁移到另一个云提供者。
云提供者通过在他们的云中提供管理器(hypervisor)可以在一定程度上解决这个问题。一般说来,管理器起服务器硬件与它的操作系统之间的层的作用。这提供了允许每个物理服务器运行一个或多个虚拟服务器并且有效地将操作系统和它的应用程序与底层物理服务器解耦的抽象层。当用在云中时,云客户可以向管理器提供包含客户应用程序的虚拟机镜像。然后,该镜像在云中的可能数千个管理器中被引导(boot)。由于一般只有几种管理器类型,所以这种方法将应用程序开发者必须如何封装应用程序的格式标准化。取代创建适合特定云API的独立应用程序,开发者现在必须创建适当的虚拟机镜像。
但是,有关软件开发者如何能够将他们自己的(例如Java)应用程序转换成能够容易地部署在云中的许多机器上的虚拟机镜像的根本问题仍然存在。对于当前的开发工具,开发人员必须创建引导(或恢复)到Java应用程序中的虚拟机镜像。一般说来,虚拟机镜像必须通过在管理器内引导操作系统来构建。必须将引导进程配置成从这个虚拟操作系统内启动应用程序。然后虚拟机被断电,并且将虚拟机镜像的副本(包括盘)分发给在云中运行虚拟镜像的机器。这是非常耗时的过程,并且是本发明的实施例旨在解决的领域。
发明内容
本文公开的是一种将例如Java应用程序的软件应用程序转换成适合云部署的虚拟服务器镜像的系统和方法。根据一个实施例,该系统和方法允许构建包含运行应用程序的虚拟机的管理器设备(hypervisor appliance)。特别是,该管理器设备能够与用于服务器虚拟化的任何管理器兼容,并且该应用程序虚拟机可以是Java虚拟机(JVM)。
附图说明
图1示出了根据一个实施例的系统的示意图;
图2示出了根据一个实施例的用于生成JVM设备(JVMappliance)的方法的流程图;
图3示出了根据一个可替代实施例的用于生成JVM设备的方法的流程图;
图4示出了根据一个实施例的设备配置的内容的示意图;
图5示出了根据一个实施例如何创建虚拟服务器镜像的示意图;
图6示出了根据一个可替代实施例如何创建虚拟服务器镜像的示意图;以及
图7示出了根据一个实施例如何能够将虚拟服务器镜像部署到云中的示意图。
具体实施方式
本文公开的是一种将例如Java应用程序的软件应用程序转换成适合云部署的虚拟机镜像的系统和方法。根据一个实施例,该系统和方法允许构建包含运行应用程序的第二虚拟机的管理器设备。特别是,该管理器设备能够与用于服务器虚拟化的任何管理器兼容,并且该应用程序虚拟机可以是Java虚拟机(JVM)。
根据一个实施例,该系统包括设备构建器应用程序(appliancebuilder application),它允许系统获取Java应用程序,并将该应用程序转换成虚拟服务器镜像,然后可以将虚拟服务器镜像部署在管理器中,或部署在例如管理器的云内。根据一个实施例,所生成的虚拟服务器镜像是Java虚拟机的可引导(bootable)部分和Java虚拟机的不可引导部分的组合,其中可引导部分随后能够装载不可引导部分。然后,Java虚拟机的不可引导部分可以执行存储在同一虚拟服务器镜像中的Java应用程序。
该设备构建器解决了如下问题:
1.创建虚拟服务器镜像的效率。Java虚拟机的可引导部分显著小于通用操作系统。
2.Java应用程序的快速引导。Java虚拟机的可引导部分在它能够启动Java虚拟机的不可引导部分之前必须完成的工作比通用操作系统少得多。
3.易于为任何管理器类型(例如VMWare Player、工作站和ESX、和OracleVM)生成虚拟机镜像。为了使平台透明,可以用Java编写构建器本身。
4.明显快于基于实际运行管理器和设置应用环境,然后使用管理器获取快照的替代方案。
设备构建器的典型使用是获取打算部署在应用服务器(例如为Web页服务的Weblogic服务器应用)上的应用程序,并且将该应用程序转换成设备。例如,可以使用如下命令设置和启动Weblogic服务器:
根据一个实施例,可以像下面所示那样为这种设置创建设备配置:
对于一个不同的示例性应用,设备配置文件的可替代例子如下所示:
如下面更详细所述,然后可以使用设备配置来创建用于部署在云中的虚拟服务器镜像。
图1示出了根据本发明一个实施例的系统的示意图。如图1所示,该系统包括带有在上面执行的一般操作系统104的计算机102。该操作系统维护着文件系统108,该文件系统108进而包含设备配置110或配置文件、软件应用程序代码112、和软件应用程序数据114。
根据一个实施例,Java虚拟机设备构建器106,或系统内的构建器逻辑使用设备配置110来创建虚拟服务器镜像116,后者进而包含引导装载程序118;以及镜像文件系统存储体120。
镜像存储体包含Java虚拟机的可引导组件121、Java虚拟机的不可引导组件122、软件应用程序代码124和软件应用程序数据126。然后,可以将虚拟服务器镜像部署在云内,Java虚拟机的不可引导组件用于执行存储在同一虚拟服务器镜像内的Java应用程序。
图2示出了根据一个实施例的用于生成Java虚拟机(JVM)设备的方法的流程图。根据一个实施例,首先在系统上启动设备构建器作为标准Java应用程序,例如:
如图2所示,在步骤152中,设备构建器读取配置文件,并且使用来自命令行的指令来确定选择哪种类型的管理器,以及使用配置文件来定位软件应用程序代码、软件应用程序数据、网络设置、时间和日期、和网络文件系统。在步骤154中,设备构建器在系统内创建供虚拟服务器镜像使用的存储空间。根据一个实施例,这样的存储空间可以驻留在RAM中。根据一个可替代实施例,该存储空间可以是文件系统中的文件。在步骤156中,利用引导装载程序代码初始化虚拟服务器镜像。是否将引导装载程序代码放入虚拟服务器镜像中取决于第一次启动设备构建器时选择了哪种类型的管理器类型。
一些管理器(例如,VMWare管理器)使用有效地作为虚拟硬盘的扇区的快照的虚拟服务器镜像。根据一个实施例,对于这些管理器,可以将引导装载程序代码写入虚拟硬盘的第一可引导分区的第一扇区中。诸如GRUB(作为GNU项目的一部分提供的GRand统一引导装载程序)或一种不同类型的引导装载程序的引导装载程序可以被用于这个目的。然后,引导装载程序从虚拟服务器镜像中的文件系统装载JVM的可引导部分。如果使用GRUB引导装载程序,那么,该引导装载程序将使用虚拟服务器镜像中的文件系统中位于/boot/grub/menu.cfg的配置文件来找出JVM的可引导部分。其它类型的引导装载程序可以使用替代配置手段。
其它管理器(例如,Xen和Oracle VM管理器)将标准文件系统格式(例如,ext2)用于它们的客户机镜像。根据一个实施例,这些管理器起GRUB或引导装载程序的作用,并且将读取/boot/grub/menu.cfg本身。因此,这些管理器的虚拟服务器镜像不包含引导装载程序代码。
接着,在步骤158中,将Java虚拟机的可引导组件写入存储空间中的虚拟服务器镜像中。
在步骤160中,将Java虚拟机的不可引导组件写入存储空间中,以及在步骤162中,将应用程序代码和数据写入存储空间中。在步骤164中,然后将引导装载程序配置成执行Java虚拟机的可引导组件。在一个实施例中,这可以通过更新/boot/grub/menu.cfg来完成。在一个可替代实施例中,这可以通过更新引导装载程序代码本身来完成。在步骤166中,然后将Java虚拟机的可引导组件配置成执行Java虚拟机的不可引导部分。用JVM的不可引导部分的位置和来自上述的配置文件的其它信息更新JVM的可引导组件。在一个实施例中,这可以通过更新文件系统120中的文件来完成。在一个可替代实施例中,这可以通过更新JVM的可引导组件本身来完成。
在步骤168中,如果存储空间被分配在RAM中,则将存储空间写入虚拟服务器镜像。如果存储空间是一个文件,则该文件现在是虚拟服务器镜像。然后可以在整个管理器云中使用一般为这样的云环境配备的管理工具来部署这个虚拟服务器镜像。
图3示出了根据一个可替代实施例的用于生成Java虚拟机(JVM)设备的方法的流程图。特别是,图3例示了使用两个或更多个存储空间,所述存储空间随后可以被复制、级联或以其他方式用于准备虚拟服务器镜像。与上述的例子一样,取决于使用的管理器,客户机镜像可以包含引导装载程序代码(例如,VMware),或可以不需要引导装载程序代码(例如,Xen和Oracle VM)。
如图3所示,在步骤202中,设备构建器读取配置文件,并且使用来自命令行文件的指令确定选择哪种类型的管理器,以及使用配置文件来定位软件应用程序代码、软件应用程序数据、网络设置、时间和日期、和网络文件系统。在步骤204中,设备构建器在系统内创建供虚拟服务器镜像使用的第一存储空间。在步骤206中,利用引导装载程序代码初始化虚拟服务器镜像。在步骤208中,将Java虚拟机的可引导组件写入虚拟服务器镜像。在步骤210中,在系统内创建将包含镜像文件系统存储体的第二存储空间。在步骤212中,将Java虚拟机的不可引导组件写入第二存储空间,以及在步骤214中,将软件应用程序代码和数据写入第二存储空间中。在步骤216中,然后将引导装载程序代码配置成执行Java虚拟机的可引导组件。在步骤218中,然后将Java虚拟机的可引导组件配置成执行Java虚拟机的不可引导部分。在步骤220中,然后将第二存储空间写入第一存储空间中,以及在步骤222中,然后将第一存储空间写入虚拟服务器镜像中。
图4示出了根据一个实施例的设备配置的内容的示意图。如图4所示,设备配置302可以存储在计算机可读介质上的文件中或存储器中,以及根据一个实施例包括:设备标记304,指示配置文件旨在指定虚拟服务器镜像;定义将如何启动Java虚拟机的不可引导组件的jvm变元组件306;定义应用程序代码的位置的应用程序类路径组件308;定义应用程序数据的位置的应用程序环境-变量组件310;以及定义附加变量的附加组件312。
图5了示出根据一个实施例和描述在图2中的方法如何创建虚拟服务器镜像的示意图。如图5所示,设备构建器402读取配置文件404,并且使用其中的指令来确定管理器的类型,以及定位软件应用程序代码和软件应用程序数据。在系统存储器400内创建供虚拟服务器镜像使用的存储空间406。利用引导装载程序代码408初始化存储空间/虚拟服务器镜像,并且将Java虚拟机的可引导组件410写入其中。然后将Java虚拟机的不可引导组件414写入其中,以及将应用程序代码和数据写入其中。然后将引导装载程序代码配置成(416)执行Java虚拟机的可引导组件,以及将Java虚拟机的可引导组件配置成(418)执行Java虚拟机的不可引导部分。然后将存储空间写入虚拟服务器文件镜像420,然后可以在整个管理器云中部署虚拟服务器文件镜像420。根据一个可替代实施例,可以通过网络将存储空间传输给云,以便进行部署而无需存储本地文件镜像。
图6示出了根据一个可替代实施例和描述在图3中的方法如何创建虚拟服务器镜像的示意图。特别是,图6类似地例示了使用两个或更多个存储空间,所述存储空间随后可以被复制、级联或以其他方式用于准备虚拟服务器镜像。如图6所示,设备构建器402读取配置文件404,并且使用其中的指令来确定管理器的类型,以及定位软件应用程序代码和软件应用程序数据。在系统存储器400内创建供虚拟服务器镜像使用的第一存储空间430,利用引导装载程序代码408初始化第一存储空间/虚拟服务器镜像,并且将Java虚拟机的可引导组件410写入其中。然后创建将包含镜像文件系统存储体的第二存储空间440,并且将Java虚拟机的不可引导组件414写入其中,以及将应用程序代码和数据写入其中。然后将引导装载程序代码配置成(416)执行Java虚拟机的可引导组件,以及将Java虚拟机的可引导组件配置成(418)执行Java虚拟机的不可引导部分。然后将第二存储空间写入第一存储空间中,然后将第一存储空间写入虚拟服务器文件镜像420,然后可以在整个管理器云中部署虚拟服务器文件镜像420。根据一个可替代实施例,可以通过网络将第一存储空间传输给云,以便进行部署而无需存储本地文件镜像。
图7示出了根据一个实施例如何能够将虚拟服务器镜像部署到云中的示意图。如图7所示,一旦创建了虚拟服务器文件镜像502,管理员504就可以在整个管理器512,522,532,542(每一个与一台或多台计算机510,520,530,540相关联)的云506中,使用一般为这样的云环境配备的管理工具508来部署虚拟服务器文件镜像。
本发明可以方便地使用一台或多台传统的通用或专用数字计算机、计算设备、机器或微处理器来实现,包括一个或多个处理器、存储器和/或根据本公开的教导编程的计算机可读存储介质。对于软件领域技术人员来说,显而易见,熟练的编程人员可以根据本公开的教导容易地准备适当的软件代码。
在一些实施例中,本发明包括计算机程序产品,该计算机程序产品是具有存储在上面的指令/可以用于将计算机编程成执行本发明的任何过程的存储介质或计算机可读介质。该存储介质可以包括但不限于包括软盘、光盘、DVD、CD-ROM、微驱动器、和磁光盘的任何类型的盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储设备、磁或光卡、纳米系统(包括分子存储器IC)或适合存储指令和/或数据的任何类型介质或设备。
上文对本发明的描述是为了例示和描述的目的提供的。并非打算穷举或将本发明限制在所公开的确切形式。许多修改和变型对于本领域的普通技术人员来说是显而易见的。选择和描述这些实施例是为了最佳地说明本发明的原理以及它的实际应用,从而使本领域技术人员能够通过各种实施例和适合设想的特定用途的各种修改理解本发明。本发明的范围旨在由所附权利要求书及其等同物来限定。
Claims (19)
1.一种用于生成适合云部署的虚拟服务器镜像的系统,包括:
计算机,该计算机包括处理器、存储器和操作系统;
用于创建虚拟服务器镜像的存储空间;
设备配置文件,其指示与包括应用程序代码和应用程序数据的软件应用程序一起使用的配置设置,其中所述配置设置包括要与所述软件应用程序一起使用的一个或多个虚拟机、类路径和环境变量设置;以及
设备构建器,配置为生成包含所述软件应用程序和能够执行该软件应用程序的虚拟机这两者的虚拟服务器镜像,其中所述设备构建器:
接收关于将与应用程序一起使用的管理器类型的指示,
读取所述设备配置文件,
将虚拟机的可引导组件写入存储空间中,
将虚拟机的不可引导组件及软件应用程序写入存储空间中,
将可引导组件配置成装载和执行不可引导组件,包括用不可引导组件的位置和由设备配置文件提供的配置设置更新可引导组件,以及
如配置设置所配置的那样输出可引导组件和不可引导组件作为软件应用程序的虚拟服务器镜像;
其中,所述虚拟服务器镜像被预配置以用于部署到包括多个物理计算机器的云,所述多个物理计算机器包括所指示的管理器类型,使得可引导组件被预配置为引导、装载和执行不可引导组件和应用程序,而不需要对所述多个物理计算机器的进一步配置。
2.如权利要求1所述的系统,其中所生成的虚拟服务器镜像内的虚拟机包含作为管理器客户机运行所需的其自己的操作系统的一种版本,并且其中所生成的虚拟服务器镜像内的虚拟机被配置成在虚拟服务器镜像被启动时引导。
3.如权利要求1或2所述的系统,其中所述设备构建器执行包含如下的附加步骤:
将引导装载程序代码写入存储在存储空间中的虚拟服务器镜像中;以及
将引导装载程序代码配置成执行可引导组件。
4.如权利要求1或2所述的系统,其中所述设备构建器执行包含如下的附加步骤:
将所完成的虚拟服务器镜像写入到一个文件。
5.如权利要求1或2所述的系统,其中所述设备构建器执行包含如下的附加步骤:
将所完成的虚拟服务器镜像发送给云以便立即部署。
6.如权利要求1或2所述的系统,其中所生成的虚拟服务器镜像包含存储软件应用程序的文件系统。
7.如权利要求1或2所述的系统,其中所生成的虚拟服务器镜像由一个或多个管理器执行。
8.一种生成虚拟服务器镜像的方法,其包含如下步骤:
在计算机上执行构建器应用程序,该计算机包括处理器、存储器、操作系统、和用于存储软件应用程序和创建虚拟服务器镜像的存储空间;
提供所述软件应用程序,其包括应用程序代码和应用程序数据;
读取设备配置文件,其指示用于与所述软件应用程序一起使用的配置设置,包括一个或多个虚拟机、类路径和环境变量设置;
接收关于将要与应用程序一起使用的管理器类型的指示;
将所述管理器类型特定的并且合乎所述配置设置的虚拟机的可引导组件写入存储空间中,其中不同形式的可引导组件被用于不同的管理器类型;
将虚拟机的不可引导组件以及软件应用程序写入存储空间中,其中所述不可引导组件用于执行所述软件应用程序;
将可引导组件配置成装载和执行不可引导组件,包括用不可引导组件的位置和由设备配置文件提供的配置设置更新可引导组件;以及
如配置设置所配置的那样输出可引导组件和不可引导组件作为虚拟服务器镜像,
其中,所述虚拟服务器镜像被预配置以用于部署到包括多个物理计算机器的云,所述多个物理计算机器包括所指示的管理器类型,使得可引导组件被预配置为引导、装载和执行不可引导组件和应用程序,而不需要对所述多个物理计算机器的进一步配置。
9.如权利要求8所述的方法,其中所生成的虚拟服务器镜像内的虚拟机包含作为管理器客户机运行所需的其自己的操作系统的一种版本,并且其中所生成的虚拟服务器镜像内的虚拟机被配置成在虚拟服务器镜像被启动时引导。
10.如权利要求8或9所述的方法,进一步包含如下步骤:
将引导装载程序代码写入存储在存储空间中的虚拟服务器镜像中;以及
将引导装载程序代码配置成执行可引导组件。
11.如权利要求8或9所述的方法,其中所生成的虚拟服务器镜像包含存储软件应用程序的文件系统。
12.如权利要求8或9所述的方法,其中所生成的虚拟服务器镜像由一个或多个管理器执行。
13.如权利要求8或9所述的方法,其中所生成的虚拟服务器镜像能够被部署到云中,然后作为云的一部分由一个或多个管理器执行。
14.一种生成虚拟服务器镜像的装置,包含:
用于在计算机上执行构建器应用程序的装置,该计算机包括处理器、存储器、操作系统、和用于存储软件应用程序和创建虚拟服务器镜像的存储空间;
用于提供包括应用程序代码和应用程序数据的软件应用程序的装置;
用于读取设备配置文件的装置,所述设备配置文件指示与软件应用程序一起使用的配置设置,包括一个或多个虚拟机、类路径和环境变量设置;
用于将管理器类型特定的并且合乎所述配置设置的虚拟机的可引导组件写入存储空间中的装置,其中不同形式的可引导组件用于不同的管理器类型;
用于将虚拟机的不可引导组件以及软件应用程序写入存储空间中的装置,其中所述不可引导组件用于执行所述软件应用程序;
用于将可引导组件配置成装载和执行不可引导组件的装置,包括用不可引导组件的位置和由设备配置文件提供的配置设置更新可引导组件;以及
用于如配置设置所配置的那样输出可引导组件和不可引导组件作为虚拟服务器镜像的装置,
其中,所述虚拟服务器镜像被预配置以用于部署到包括多个物理计算机器的云,所述多个物理计算机器包括所指示的管理器类型,使得可引导组件被预配置为引导、装载和执行不可引导组件和应用程序,而不需要对所述多个物理计算机器的进一步配置。
15.如权利要求14所述的装置,其中所生成的虚拟服务器镜像内的虚拟机包含作为管理器客户机运行所需的其自己的操作系统的一种版本,并且其中所生成的虚拟服务器镜像内的虚拟机被配置成在虚拟服务器镜像被启动时引导。
16.如权利要求14或15所述的装置,进一步包含:
用于将引导装载程序代码写入存储在存储空间中的虚拟服务器镜像中的装置;以及
用于将引导装载程序代码配置成执行可引导组件的装置。
17.如权利要求14或15所述的装置,其中所生成的虚拟服务器镜像包含存储软件应用程序的文件系统。
18.如权利要求14或15所述的装置,其中所生成的虚拟服务器镜像由一个或多个管理器执行。
19.如权利要求14或15所述的装置,其中所生成的虚拟服务器镜像能够被部署到云中,然后作为云的一部分由一个或多个管理器执行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/476,103 US8856294B2 (en) | 2009-06-01 | 2009-06-01 | System and method for converting a Java application into a virtual server image for cloud deployment |
US12/476,103 | 2009-06-01 | ||
PCT/US2010/036732 WO2010141387A2 (en) | 2009-06-01 | 2010-05-28 | System and method for converting a java application into a virtual server image for cloud deployment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102449599A CN102449599A (zh) | 2012-05-09 |
CN102449599B true CN102449599B (zh) | 2015-04-08 |
Family
ID=43034442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080024049.0A Active CN102449599B (zh) | 2009-06-01 | 2010-05-28 | 将java应用程序转换成用于云部署的虚拟服务器镜像的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8856294B2 (zh) |
EP (1) | EP2438515B1 (zh) |
CN (1) | CN102449599B (zh) |
WO (1) | WO2010141387A2 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110126193A1 (en) * | 2009-11-20 | 2011-05-26 | Dell Products, Lp | System and Method for Imaging and Provisioning of Information Handling System |
US8984503B2 (en) * | 2009-12-31 | 2015-03-17 | International Business Machines Corporation | Porting virtual images between platforms |
US8880700B2 (en) * | 2010-05-28 | 2014-11-04 | Red Hat, Inc. | Delivery of user-controlled resources in cloud environments via a resource specification language wrapper |
JP5556393B2 (ja) * | 2010-06-04 | 2014-07-23 | 富士通株式会社 | ネットワークシステム,管理サーバおよび仮想マシンの配置方法 |
US8352415B2 (en) * | 2010-06-15 | 2013-01-08 | International Business Machines Corporation | Converting images in virtual environments |
US8904382B2 (en) * | 2010-06-17 | 2014-12-02 | International Business Machines Corporation | Creating instances of cloud computing environments |
WO2012023050A2 (en) | 2010-08-20 | 2012-02-23 | Overtis Group Limited | Secure cloud computing system and method |
MY178653A (en) * | 2011-07-04 | 2020-10-20 | Mimos Berhad | System and method for distributing applications in wide area network |
ITMI20111667A1 (it) * | 2011-09-16 | 2013-03-17 | Ibm | Metodo, sistema e programma per elaboratore per implementare un'applicazione virtuale personalizzabile |
TWI515658B (zh) * | 2011-12-07 | 2016-01-01 | 萬國商業機器公司 | 用於創建虛擬裝置之方法及系統 |
US8930685B2 (en) * | 2011-12-13 | 2015-01-06 | International Business Machines Corporation | Deployment of a software image on multiple targets with streaming technique |
US9043576B2 (en) * | 2013-08-21 | 2015-05-26 | Simplivity Corporation | System and method for virtual machine conversion |
US9207946B2 (en) | 2013-08-27 | 2015-12-08 | International Business Machines Corporation | Auto-cloudifying applications via runtime modifications |
US10031761B2 (en) | 2013-10-11 | 2018-07-24 | International Business Machines Corporation | Pluggable cloud enablement boot device and method |
US9384006B2 (en) | 2013-10-11 | 2016-07-05 | Globalfoundries Inc. | Apparatus and methods for automatically reflecting changes to a computing solution into an image for the computing solution |
US9354894B2 (en) | 2013-10-11 | 2016-05-31 | International Business Machines Corporation | Pluggable cloud enablement boot device and method that determines hardware resources via firmware |
US9888087B2 (en) | 2014-03-31 | 2018-02-06 | Uber Technologies, Inc. | Adjusting attributes for an on-demand service system based on real-time information |
US9575837B2 (en) | 2015-02-03 | 2017-02-21 | Uber Technologies, Inc. | System and method for introducing functionality to an application for use with a network service |
US10158528B2 (en) | 2015-10-13 | 2018-12-18 | Uber Technologies, Inc. | Application service configuration system |
US11533226B2 (en) | 2015-10-13 | 2022-12-20 | Uber Technologies, Inc. | Application service configuration system |
US10901812B2 (en) * | 2017-09-18 | 2021-01-26 | Rapyuta Robotics Co., Ltd. | Managing communication between cloud and heterogeneous devices across networks |
CN110177125B (zh) * | 2018-05-15 | 2021-08-31 | 广东电网有限责任公司 | 一种中间件平台迁移方法 |
US10977105B2 (en) | 2018-12-14 | 2021-04-13 | Uber Technologies, Inc. | Memory crash prevention for a computing device |
US11809839B2 (en) | 2022-01-18 | 2023-11-07 | Robert Lyden | Computer language and code for application development and electronic and optical communication |
CN114625487B (zh) * | 2022-05-16 | 2022-09-09 | 浙江毫微米科技有限公司 | 在元宇宙中运行应用程序的方法、系统、设备及存储介质 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8321457B2 (en) | 2000-09-08 | 2012-11-27 | Oracle International Corporation | Techniques for automatically developing a web site |
US7080378B1 (en) * | 2002-05-17 | 2006-07-18 | Storage Technology Corporation | Workload balancing using dynamically allocated virtual servers |
US20030217131A1 (en) * | 2002-05-17 | 2003-11-20 | Storage Technology Corporation | Processing distribution using instant copy |
US20050198303A1 (en) | 2004-01-02 | 2005-09-08 | Robert Knauerhase | Dynamic virtual machine service provider allocation |
US7293168B2 (en) * | 2004-12-15 | 2007-11-06 | Hewlett-Packard Development Company, L.P. | System and method for initially configuring and booting a device using a device identifier |
US20070033586A1 (en) | 2005-08-02 | 2007-02-08 | International Business Machines Corporation | Method for blocking the installation of a patch |
US8429630B2 (en) * | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
US20070294676A1 (en) | 2006-06-19 | 2007-12-20 | Ewan Ellis Mellor | Open virtual appliance |
US7779401B2 (en) | 2006-06-26 | 2010-08-17 | Research In Motion Limited | Method and system for generating a reverse binary patch for undoing a software update |
US20080059556A1 (en) * | 2006-08-31 | 2008-03-06 | Egenera, Inc. | Providing virtual machine technology as an embedded layer within a processing platform |
US8176486B2 (en) | 2007-02-15 | 2012-05-08 | Clearcube Technology, Inc. | Maintaining a pool of free virtual machines on a server computer |
US8196138B2 (en) | 2007-04-19 | 2012-06-05 | International Business Machines Corporation | Method and system for migrating virtual machines between hypervisors |
US8458694B2 (en) | 2007-04-30 | 2013-06-04 | International Business Machines Corporation | Hypervisor with cloning-awareness notifications |
US8069341B2 (en) | 2007-06-29 | 2011-11-29 | Microsoft Corporation | Unified provisioning of physical and virtual images |
EP2019358A1 (en) | 2007-07-25 | 2009-01-28 | Deutsche Telekom AG | A method and a system for the creation and deployment of a virtual machine appliance on virtualised servers |
US8060074B2 (en) | 2007-07-30 | 2011-11-15 | Mobile Iron, Inc. | Virtual instance architecture for mobile device management systems |
US20090070752A1 (en) | 2007-09-06 | 2009-03-12 | International Business Machines Corporation | Method and system for optimization of an application |
US8839221B2 (en) | 2007-09-10 | 2014-09-16 | Moka5, Inc. | Automatic acquisition and installation of software upgrades for collections of virtual machines |
US8677352B2 (en) * | 2007-10-31 | 2014-03-18 | Vmware, Inc. | Interchangeable guest and host execution environments |
US20090164994A1 (en) | 2007-12-20 | 2009-06-25 | Virtual Computer, Inc. | Virtual computing management systems and methods |
US8181174B2 (en) * | 2007-12-28 | 2012-05-15 | Accenture Global Services Limited | Virtual machine configuration system |
WO2009155574A1 (en) | 2008-06-19 | 2009-12-23 | Servicemesh, Inc. | Cloud computing gateway, cloud computing hypervisor, and methods for implementing same |
US7987289B2 (en) * | 2008-06-24 | 2011-07-26 | Microsoft Corporation | Participating in cloud as totally stubby edge |
US9733959B2 (en) | 2008-09-15 | 2017-08-15 | Vmware, Inc. | Policy-based hypervisor configuration management |
US9798560B1 (en) | 2008-09-23 | 2017-10-24 | Gogrid, LLC | Automated system and method for extracting and adapting system configurations |
US8503468B2 (en) * | 2008-11-05 | 2013-08-06 | Fusion-Io, Inc. | PCI express load sharing network interface controller cluster |
US8549516B2 (en) | 2008-12-23 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for controlling, by a hypervisor, access to physical resources |
US8001247B2 (en) * | 2009-02-27 | 2011-08-16 | Red Hat, Inc. | System for trigger-based “gated” dynamic virtual and physical system provisioning |
US7904540B2 (en) * | 2009-03-24 | 2011-03-08 | International Business Machines Corporation | System and method for deploying virtual machines in a computing environment |
US8321558B1 (en) | 2009-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Dynamically monitoring and modifying distributed execution of programs |
US20100287280A1 (en) * | 2009-05-08 | 2010-11-11 | Gal Sivan | System and method for cloud computing based on multiple providers |
US8156301B1 (en) | 2009-05-13 | 2012-04-10 | Symantec Corporation | Method and apparatus for synchronizing a physical machine with a virtual machine while the virtual machine is operational |
US8914684B2 (en) * | 2009-05-26 | 2014-12-16 | Vmware, Inc. | Method and system for throttling log messages for multiple entities |
US8381264B1 (en) | 2009-09-10 | 2013-02-19 | Amazon Technologies, Inc. | Managing hardware reboot and reset in shared environments |
-
2009
- 2009-06-01 US US12/476,103 patent/US8856294B2/en active Active
-
2010
- 2010-05-28 WO PCT/US2010/036732 patent/WO2010141387A2/en active Application Filing
- 2010-05-28 CN CN201080024049.0A patent/CN102449599B/zh active Active
- 2010-05-28 EP EP10727556.2A patent/EP2438515B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8856294B2 (en) | 2014-10-07 |
EP2438515A2 (en) | 2012-04-11 |
WO2010141387A3 (en) | 2011-02-03 |
US20100306355A1 (en) | 2010-12-02 |
EP2438515B1 (en) | 2019-09-25 |
CN102449599A (zh) | 2012-05-09 |
WO2010141387A2 (en) | 2010-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102449599B (zh) | 将java应用程序转换成用于云部署的虚拟服务器镜像的系统和方法 | |
US8196138B2 (en) | Method and system for migrating virtual machines between hypervisors | |
EP1915680B1 (en) | Archiving data in a virtual application environment | |
US8776053B2 (en) | System and method to reconfigure a virtual machine image suitable for cloud deployment | |
US8639787B2 (en) | System and method for creating or reconfiguring a virtual server image for cloud deployment | |
US9298482B2 (en) | Plug-in based templatization framework for automating the creation of open virtualization format virtual appliances | |
CN102402446B (zh) | 应用软件的安装方法和应用软件的安装装置 | |
CN102541619B (zh) | 虚拟机管理装置和方法 | |
CA2723907C (en) | Synchronizing virtual machine and application life cycles | |
US8209290B1 (en) | Generic granular restore of application data from a volume image backup | |
CN102193817B (zh) | 简化物理和虚拟部署的管理 | |
US20120198442A1 (en) | Virtual Container | |
US20090271498A1 (en) | System and method for layered application server processing | |
KR20170133120A (ko) | 컨테이너 이미지 관리 시스템 및 방법 | |
EP4055477A1 (en) | Just-in-time containers | |
US9495181B2 (en) | Creating a virtual appliance | |
US20130024857A1 (en) | Method and system for flexible resource mapping for virtual storage appliances | |
CN108089913A (zh) | 一种超融合系统的虚拟机部署方法 | |
CN104516769A (zh) | 动态逻辑分区的验证 | |
Vallee et al. | Checkpoint/restart of virtual machines based on Xen | |
WO2014178845A1 (en) | Coordinating application deployment with a platform tier | |
CN114461182A (zh) | 流水线构建的方法、装置、电子设备及计算机可读存储介质 | |
CN111679889A (zh) | 一种虚拟机的转换迁移方法和系统 | |
CN104885058A (zh) | 在虚拟组件生成器环境中进行通用产品连线的系统和方法 | |
US20130024856A1 (en) | Method and apparatus for flexible booting virtual storage appliances |
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 |