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

文档序号:6349385阅读:356来源:国知局

专利名称::将java应用程序转换成用于云部署的虚拟服务器镜像的系统和方法
技术领域
:本发明一般地涉及应用服务器和虚拟机,尤其涉及用于将Java应用程序转换成适合云部署的虚拟机镜像(image)的系统和方法。
背景技术
:云计算一般被定义为一种计算形式,其中在物理计算机器或服务器的分布式网络(例如互连网)上将动态和/或虚拟化资源作为服务来提供。客户机进程、软件应用程序(softwareapplication)及其用户无需明确知道或控制云内的技术基础结构。取而代之,它们可以向云请求或要求服务,然后由云内的其它提供者提供服务。这样,云计算允许软件应用程序开发者以简单的方式部署他们的应用程序以便同时运行在云中的数千台服务器上。迄今为止,已经出现了在云中部署软件应用程序的不同方案,一般说来,这些方案是特定于云(cloud-specific)的,也就是说,应用程序需要符合云/管理器特定的应用程序接口(API),以便运行在它们的服务器上。当使用这种方法时,云客户不容易将应用程序从一个云提供者迁移到另一个云提供者。云提供者通过在他们的云中提供管理器(hypervisor)可以在一定程度上解决这个问题。一般说来,管理器起服务器硬件与它的操作系统之间的层的作用。这提供了允许每个物理服务器运行一个或多个虚拟服务器并且有效地将操作系统和它的应用程序与底层物理服务器解耦的抽象层。当用在云中时,云客户可以向管理器提供包含客户应用程序的虚拟机镜像。然后,该镜像在云中的可能数千个管理器中被引导(boot)。由于一般只有几种管理器类型,所以这种方法将应用程序开发者必须如何封装应用程序的格式标准化。取代创建适合特定云API的独立应用程序,开发者现在必须创建适当的虚拟机镜像。但是,有关软件开发者如何能够将他们自己的(例如Java)应用程序转换成能够容易地部署在云中的许多机器上的虚拟机镜像的根本问题仍然存在。对于当前的开发工具,开发人员必须创建引导(或恢复)到Java应用程序中的虚拟机镜像。一般说来,虚拟机镜像必须通过在管理器内引导操作系统来构建。必须将引导进程配置成从这个虚拟操作系统内启动应用程序。然后虚拟机被断电,并且将虚拟机镜像的副本(包括盘)分发给在云中运行虚拟镜像的机器。这是非常耗时的过程,并且是本发明的实施例旨在解决的领域
发明内容本文公开的是一种将例如Java应用程序的软件应用程序转换成适合云部署的虚拟服务器镜像的系统和方法。根据一个实施例,该系统和方法允许构建包含运行应用程序的虚拟机的管理器设备(hypervisorappliance)0特别是,该管理器设备能够与用于服务器虚拟化的任何管理器兼容,并且该应用程序虚拟机可以是Java虚拟机(JVM)。图1示出了根据一个实施例的系统的示意图;图2示出了根据一个实施例的用于生成JVM设备(JVMappliance)的方法的流程图;图3示出了根据一个可替代实施例的用于生成JVM设备的方法的流程图;图4示出了根据一个实施例的设备配置的内容的示意图;图5示出了根据一个实施例如何创建虚拟服务器镜像的示意图;图6示出了根据一个可替代实施例如何创建虚拟服务器镜像的示意图;以及图7示出了根据一个实施例如何能够将虚拟服务器镜像部署到云中的示意图。具体实施例方式本文公开的是一种将例如Java应用程序的软件应用程序转换成适合云部署的虚拟机镜像的系统和方法。根据一个实施例,该系统和方法允许构建包含运行应用程序的第二虚拟机的管理器设备。特别是,该管理器设备能够与用于服务器虚拟化的任何管理器兼容,并且该应用程序虚拟机可以是Java虚拟机(JVM)。根据一个实施例,该系统包括设备构建器应用程序(appliancebuilderapplication),它允许系统获取Java应用程序,并将该应用程序转换成虚拟服务器镜像,然后可以将虚拟服务器镜像部署在管理器中,或部署在例如管理器的云内。根据一个实施例,所生成的虚拟服务器镜像是Java虚拟机的可引导(bootable)部分和Java虚拟机的不可引导部分的组合,其中可引导部分随后能够装载不可引导部分。然后,Java虚拟机的不可引导部分可以执行存储在同一虚拟服务器镜像中的Java应用程序。该设备构建器解决了如下问题1.创建虚拟服务器镜像的效率。Java虚拟机的可引导部分显著小于通用操作系统。2.Java应用程序的快速引导。Java虚拟机的可引导部分在它能够启动Java虚拟机的不可引导部分之前必须完成的工作比通用操作系统少得多。3.易于为任何管理器类型(例如VMWarePlayer、工作站和ESX、和OracleVM)生成虚拟机镜像。为了使平台透明,可以用Java编写构建器本身。4.明显快于基于实际运行管理器和设置应用环境,然后使用管理器获取快照的替代方案。设备构建器的典型使用是获取打算部署在应用服务器(例如为Web页服务的Weblogic服务器应用)上的应用程序,并且将该应用程序转换成设备。例如,可以使用如下命令设置和启动Weblogic服务器权利要求1.一种用于生成适合云部署的虚拟服务器镜像的系统,包括计算机,该计算机包括处理器、存储器和操作系统;用于创建虚拟服务器镜像的存储空间;并且其中,将设备构建器用于生成包含软件应用程序和能够执行该软件应用程序的虚拟机这两者的虚拟服务器镜像,包括执行包含如下的步骤读取设备配置文件,将Java虚拟机的可引导组件写入虚拟服务器镜像中,将Java虚拟机的不可引导组件以及软件应用程序写入虚拟服务器镜像中,将可引导组件配置成装载和执行不可引导组件。2.如权利要求1所述的系统,其中所生成的虚拟服务器镜像内的虚拟机包含作为管理器客户机运行所需的其自己的操作系统的一种版本,并且其中所生成的虚拟服务器镜像内的虚拟机被配置成在虚拟服务器镜像被启动时引导。3.如权利要求1或2所述的系统,其中所述设备构建器执行包含如下的附加步骤将引导装载程序代码写入存储在存储空间中的虚拟服务器镜像中;以及将弓I导装载程序代码配置成执行可弓I导组件。4.如权利要求1,2或3所述的系统,其中所述设备构建器执行包含如下的附加步骤将所完成的虚拟服务器镜像写入到一个文件。5.如权利要求1,2,3或4所述的系统,其中所述设备构建器执行包含如下的附加步骤将所完成的虚拟服务器镜像发送给云以便立即部署。6.如权利要求1,2,3,4或5所述的系统,其中所生成的虚拟服务器镜像包含存储软件应用程序的文件系统。7.如权利要求1,2,3,4,5或6所述的系统,其中所生成的虚拟服务器镜像由一个或多个管理器执行。8.—种生成虚拟服务器镜像的方法,其包含如下步骤在计算机上执行构建器应用程序,该计算机包括处理器、存储器、操作系统、和用于存储软件应用程序和创建虚拟服务器镜像的存储空间;读取设备配置文件;将Java虚拟机的可引导组件写入虚拟服务器镜像中;将Java虚拟机的不可引导组件以及软件应用程序写入虚拟服务器镜像中;将可引导组件配置成装载和执行不可引导组件;以及输出和/或存储虚拟服务器镜像。9.如权利要求8所述的方法,其中所生成的虚拟服务器镜像内的虚拟机包含作为管理器客户机运行所需的其自己的操作系统的一种版本,并且其中所生成的虚拟服务器镜像内的虚拟机被配置成在虚拟服务器镜像被启动时引导。10.如权利要求8或9所述的方法,进一步包含如下步骤将引导装载程序代码写入存储在存储空间中的虚拟服务器镜像中;以及将引导装载程序代码配置成执行可引导组件。11.如权利要求8,9或10所述的方法,其中所生成的虚拟服务器镜像包含存储软件应用程序的文件系统。12.如权利要求8,9,10或11所述的方法,其中所生成的虚拟服务器镜像由一个或多个管理器执行。13.如权利要求8,9,10,11或12所述的方法,其中所生成的虚拟服务器镜像能够被部署到云中,然后作为云的一部分由一个或多个管理器执行。14.一种计算机可读存储介质,其包括存储在其上、当被计算机读取和执行时使计算机执行包含如下的步骤的指令在计算机上执行构建器应用程序,该计算机包括处理器、存储器、操作系统、和用于存储软件应用程序和创建虚拟服务器镜像的存储空间;读取设备配置文件;将Java虚拟机的可引导组件写入虚拟服务器镜像中;将Java虚拟机的不可引导组件以及软件应用程序写入虚拟服务器镜像中;将可引导组件配置成装载和执行不可引导组件;以及输出和/或存储虚拟服务器镜像。15.如权利要求14所述的计算机可读存储介质,进一步包括存储在其上的用于执行权利要求8,9,10,11,12或13的步骤的指令。全文摘要一种将诸如Java应用程序之类的软件应用程序转换成适合云部署的虚拟服务器镜像的系统和方法。根据一个实施例,该系统和方法允许构建包含运行应用程序的虚拟机的管理器设备。特别是,该管理器设备可以与用于服务器虚拟化的任何管理器兼容,并且该应用程序虚拟机可以是Java虚拟机(JVM)。文档编号G06F9/455GK102449599SQ201080024049公开日2012年5月9日申请日期2010年5月28日优先权日2009年6月1日发明者M·拉格尔格伦,M·维德斯特申请人:甲骨文国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1