CN102449599B - 将java应用程序转换成用于云部署的虚拟服务器镜像的系统和方法 - Google Patents

将java应用程序转换成用于云部署的虚拟服务器镜像的系统和方法 Download PDF

Info

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
Application number
CN201080024049.0A
Other languages
English (en)
Other versions
CN102449599A (zh
Inventor
M·拉格尔格伦
M·维德斯特
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.)
Oracle International Corp
Original Assignee
Oracle International 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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN102449599A publication Critical patent/CN102449599A/zh
Application granted granted Critical
Publication of CN102449599B publication Critical patent/CN102449599B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

一种将诸如Java应用程序之类的软件应用程序转换成适合云部署的虚拟服务器镜像的系统和方法。根据一个实施例,该系统和方法允许构建包含运行应用程序的虚拟机的管理器设备。特别是,该管理器设备可以与用于服务器虚拟化的任何管理器兼容,并且该应用程序虚拟机可以是Java虚拟机(JVM)。

Description

将JAVA应用程序转换成用于云部署的虚拟服务器镜像的系统和方法
版权声明
本专利文件的一部分公开内容包含受版权保护的资料。版权所有者不反对任何人复制如出现在专利商标局的专利文件或记录中那样的专利文件或专利公开,但除此之外保留所有其它版权。
技术领域
本发明一般地涉及应用服务器和虚拟机,尤其涉及用于将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所述的装置,其中所生成的虚拟服务器镜像能够被部署到云中,然后作为云的一部分由一个或多个管理器执行。
CN201080024049.0A 2009-06-01 2010-05-28 将java应用程序转换成用于云部署的虚拟服务器镜像的系统和方法 Active CN102449599B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/476,103 2009-06-01
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
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 (24)

* Cited by examiner, † Cited by third party
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
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
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
US10031761B2 (en) 2013-10-11 2018-07-24 International Business Machines Corporation Pluggable cloud enablement boot device and method
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739308B2 (en) * 2000-09-08 2010-06-15 Oracle International Corporation Techniques for automatically provisioning a database over a wide area network
US20030217131A1 (en) * 2002-05-17 2003-11-20 Storage Technology Corporation Processing distribution using instant copy
US7080378B1 (en) * 2002-05-17 2006-07-18 Storage Technology Corporation Workload balancing using dynamically allocated virtual servers
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
US20080201455A1 (en) * 2007-02-15 2008-08-21 Husain Syed M Amir Moving Execution of a Virtual Machine Across Different Virtualization Platforms
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
US8514868B2 (en) * 2008-06-19 2013-08-20 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
US10365935B1 (en) * 2008-09-23 2019-07-30 Open Invention Network Llc Automated system and method to customize and install virtual machine configurations for hosting in a hosting environment
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

Also Published As

Publication number Publication date
CN102449599A (zh) 2012-05-09
EP2438515B1 (en) 2019-09-25
EP2438515A2 (en) 2012-04-11
US20100306355A1 (en) 2010-12-02
WO2010141387A2 (en) 2010-12-09
US8856294B2 (en) 2014-10-07
WO2010141387A3 (en) 2011-02-03

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
US8370835B2 (en) Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device
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
US9495181B2 (en) Creating a virtual appliance
KR20170133120A (ko) 컨테이너 이미지 관리 시스템 및 방법
US20130024857A1 (en) Method and system for flexible resource mapping for virtual storage appliances
US20110125991A1 (en) Fast restart on a virtual machine
CN108089913A (zh) 一种超融合系统的虚拟机部署方法
EP4055477A1 (en) Just-in-time containers
CN104516769A (zh) 动态逻辑分区的验证
Vallee et al. Checkpoint/restart of virtual machines based on Xen
WO2014178845A1 (en) Coordinating application deployment with a platform tier
US20130074068A1 (en) Method, System, and Computer Program for Implementing a Customizable Virtual Appliance
CN104885058A (zh) 在虚拟组件生成器环境中进行通用产品连线的系统和方法

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