管理软件产品虚拟镜像的先决条件的方法、计算机程序和系统的制作方法

文档序号:6362322阅读:192来源:国知局
专利名称:管理软件产品虚拟镜像的先决条件的方法、计算机程序和系统的制作方法
技术领域
本发明一般涉及以虚拟设备的形式分发的软件产品的安装;更具体地,本发明涉及管理先决软件,包括管理当部署软件产品虚拟设备时需要的先决软件的许可认可的方法、计算机程序和系统。
背景技术
虚拟设备是包含至少一个软件应用和至少一个虚拟机(VM)的虚拟机镜像。虚拟设备可直接安装于在物理机上工作的虚拟机监视器上。虚拟设备是一种部署软件应用的新方式。从软件包装和分发观点看,软件开发人员能够创建单一平台,降低软件开发和管理的成本和复杂性。通过电子下载或者物理分发,以文件的形式,把虚拟设备提供给用户或消费者。通过分发虚拟设备,软件应用厂商向最终用户提供统包软件服务。注意,新的虚拟设备更复杂。然而,目前的虚拟设备只包含单个VM,对现代企业来说,应用模拟(model)具有多层的面向服务体系结构(SOA),每一层包含一个或多个机器。从而,单一的VM模拟不足以分发多层服务,从而虚拟设备将由更多的VM构成。例如,典型的web应用可由三层组成:实现表现逻辑的web层,实现业务逻辑的应用服务器层,和后端数据库层。简单的实现会将其分成3个虚拟机,每一层一个虚拟机。这样,应用可从单一物理主机的小部分扩展到3个物理主机。复杂虚拟设备安装的一个问题起源于软件产品厂家可能提供其中待安装在虚拟环境中的产品的镜像需要另外的先决软件的虚拟设备的事实。准确地说,这些“先决软件”包含一个软件程序或者聚集软件程序和数据的软件包。这些先决软件/软件包不是和产品本身一起提供的,而是在利用传统的安装方法安装产品之前,消费者必须下载并安装这些先决软件/软件包(还接受相关的许可条款和条件)。另一方面,如果厂家决定提供其中连同另外需要的先决软件包/软件一起,安装了产品的虚拟设备,当消费者把镜像部署在其虚拟环境中时,这会导致不遵守对应的先决软件包/软件许可的情形。美国专利申请US20090300604公开一种通过使用户能够关于虚拟设备,选择包含在原始储存库中的软件,并显示在对应软件包的安装过程中,可能出现的一组许可冲突,在虚拟机安装过程中解决软件依存性的方法。典型情形是实例化虚拟机,并取决于“待安装的SW”,也安装恰当的安装时“SW从属物”。这完全是一种不考虑虚拟环境的一般处理
发明内容
本发明 的目的是提供一种创建软件产品虚拟设备的方法、计算机程序和系统,所述软件产品虚拟设备允许用户在其虚拟环境中部署该虚拟设备期间,确保激活该软件产品所必需的所有软件的遵从安装。
按照权利要求1,上述目的是利用一种从软件产品虚拟镜像分发包,在通过安装至少一个虚拟盘实例化的虚拟机上安装软件产品的先决软件的方法实现的,所述方法包括在引导时,自动执行以下步骤:
-读取在软件产品虚拟镜像的分发包中提供的软件产品的先决软件的列表;
-测试在虚拟机中是否未安装先决软件,如果未安装,则在读取在软件产品虚拟镜像的分发包中提供的储存库中的先决软件位置之后,取回(420)先决软件;
-读取取回的先决软件的许可文本,并向用户显示(430)所述许可文本;
-依据用户对许可文本的认可,安装取回的先决软件;
-重复前三个步骤,直到安装了所有先决软件为止。
按照权利要求2,上述目的也可用权利要求1的方法实现,所述方法还包括:如果先决软件被指示成已安装在虚拟机中,则跳过关于该先决软件的后续取回、读取、显示和安装步骤。
按照权利要求3,上述目的也可用权利要求1或2的方法实现,所述方法还包括:如果先决软件未被指示成已安装在虚拟机中,则通过读取所有已取回的先决软件的列表中能够从其取回先决软件的位置,来测试所述先决软件是否还未被取回,其中在安装取回的先决软件的每个步骤之后,用新取回的先决软件更新所述列表。
按照权利要求4,上述目的也可用权利要求1-3任意之一的方法实现,其中读取许可文本的步骤和显示许可文本的步骤包括:与远程服务器(340)通信以要求由所述远程服务器进行所述读取步骤和显示步骤的初始步骤。
按照权利要求5,上述目的也可用权利要求1-4任意之一的方法实现,其中读取取回的先决软件的许可文本的步骤包括:从取回的先决软件中提取许可文本的初始步骤。
按照权利要求6,上述·目的也可用权利要求1-4任意之一的方法实现,其中读取取回的先决软件的许可文本的步骤包含:从在软件产品虚拟镜像的分发包中提供的许可文件中,读取许可文本。
按照权利要求7,上述目的也可用权利要求1-6任意之一的方法实现,所述方法还包括以下在先步骤:
-在开发人员虚拟机上安装软件产品及其先决软件;
-在开发人员虚拟机中测试所述软件产品;
-从开发人员虚拟机中除去(240)所述软件产品的所有先决软件;
-创建开发人员虚拟机的至少一个虚拟盘;
-创建当安装所述至少一个虚拟盘时将被激活的引导程序;
-创建(220)软件产品的先决软件的列表;
-创建包含能够从其取回先决软件的位置的储存库;
-创建软件产品虚拟镜像分发包,所述分发包包括所述至少一个虚拟盘、软件产品的先决软件的列表、和包含能够从其取回先决软件的位置的储存库。
按照权利要求8,上述目的也可用权利要求7的方法实现,所述方法还包括:创建包含软件产品先决软件的许可文本的许可文件,并将其加入软件产品虚拟镜像分发包中。
按照权利要求9,上述目的也可用权利要求1-8任意之一的方法实现,其中如果先决软件未被安装,并且不能从先决软件位置读取先决软件,则需要先决软件的手动安装,从而处理被停止。
按照权利要求10,上述目的也可用权利要求1-9任意之一的方法实现,其中先决软件取回步骤包括:读取在分发包位置中提供的储存库中的因特网地址,以及安装步骤包括从所述因特网地址下载先决软件。
按照权利要求11,上述目的也可用一种系统实现,所述系统包含适合于实现按照前述权利要求任意之一的方法的各个步骤的装置。
按照权利要求12,上述目的也可用一种计算机程序实现,所述计算机程序包含当在计算机上执行所述计算机程序时,实现按照权利要求1-9任意之一的方法的各个步骤的指令。
为了确保在部署用于在其虚拟环境中安装软件产品的虚拟设备时,消费者不会安装“不可安装的”先决软件,可从软件产品开发人员准备的VM镜像本身中除去先决软件,并按照遵守许可的方式重新安装所述先决软件。在引导时,自动启动的特定激活阶段内,只有当用户接受先决软件的许可时,才进行先决软件的安装;随后只有当所有的先决软件都被安装时,软件产品才会被激活。


图1图解说明按照本发明的优选实施例,设置其中创建虚拟设备的准备站点的系统环境;
图2是准备虚拟设备的镜像以分发软件产品的方法的流程图3图解说明在消费者虚拟环境中,部署软件产品的虚拟设备的系统环境;
图4是按照本发明的优选实施例的,在消费者虚拟环境中部署软件产品的虚拟设备的方法的流程图。
具体实施方式
图1图解说明按照本发明的优选实施例,设置其中创建虚拟设备的准备站点的系统环境。为了创建软件产品的虚拟设备的镜像,软件厂家可具有管理虚拟机环境的虚拟管理服务器(110),和其上能够安装虚拟机的准备站点服务器(100)。例如,作为虚拟机监视器的主机环境(125)可以是管理虚拟机(VM)、客户0S(130)、及其虚拟盘(115,120)的VMware (VMware是Vmware公司的商标)虚拟机监视器。
镜像准备管理器利用文件储存库(145)保存建立软件产品的虚拟设备所必需的所有文件。
虚拟机管理服务器(110)利用其API与虚拟机监视器通信,所述API例如是VMware虚拟机监视器的VIX。API例如用于把文件从储存库复制到客户OS准备站点。可以交互地或者通过为了自动进行相同的操作而提交的脚本,使用API命令。
图2是准备虚拟设备的镜像以分发软件产品的方法的流程图。通过把实现API命令的脚本用于与虚拟机监视器的通信,可以自动进行所述镜像准备。
第一步骤(200)包含在准备站点安装将作为虚拟设备分发的软件产品。软件产品被安装在客户OS准备站点虚拟机上,它是在虚拟机监视器的主机环境之上激活的虚拟机。
先决软件/软件包被下载并安装(210)在相同的客户OS虚拟机上,从而能够实现软件产品的运行。这些先决软件/软件包可以是从例如因特网下载的开源软件包。它们可以是例如修改AIX (AIX是IBM公司的商标)或Linux (Linux是Linus Torvals在美国和其他国家的商标)标准操作系统服务的.rpm文件。开发人员创建所谓的外部组件先决条件(ECP)的先决软件/软件包的列表;ECP列表包含为了运行软件产品而需要安装的先决软件/软件包的列表。在消费者站点安装软件产品时,使用该列表。同样由开发人员创建并且在消费者站点安装软件产品时使用的附加信息是取回先决软件/软件包的先决软件/软件包信息(例如,下载先决软件/软件包的URL地址),引用虚拟镜像中的所有软件的储存库,和可选的在安装之前,消费者必须接受的预先存在的软件/软件包的许可文本(220)。在客户OS准备虚拟机上测试(230)软件产品。这种测试可以是运行自动测试套件。假定无任何错误地进行了测试套件,那么停止(240)产品运行。从虚拟机中除去(250)在ECP列表中列举的先决软件/软件包工件(artifact)。从客户OS准备站点虚拟机创建虚拟镜像(它可包含一个或多个虚拟盘,例如一个虚拟盘用于操作系统,一个虚拟盘用于程序产品);虚拟镜像不包含任何先决软件。通常,当从虚拟设备实例化虚拟机时,在引导时自动开始软件程序的激活。为了防止消费者自动开始软件产品的运行,首次引导时的产品自动启动(通常在OS虚拟盘中)被禁止。改为在虚拟镜像中创建和增加特定的激活程序(下面说明)。当用户将部署虚拟设备(250)以便安装预先存在的软件/软件包时,将在程序产品本身的激活之前,启动所述激活程序。结合图4的说明,将更好地描述激活程序,图4`描述在消费者虚拟环境中,部署虚拟设备的方法的步骤。
`
在步骤260,建立虚拟设备软件包,以便分发给消费者。开发人员把安装所必需的附加信息包含在虚拟设备分发包中,比如:-描述什么被安装在虚拟系统上的储存库:在位于消费者站点的激活阶段中,当取回先决软件/软件包时,读取所述储存库。由于先决软件/软件包已被开发人员从虚拟机中除去,因此当创建虚拟设备时,不存在在该储存库引用的软件产品先决软件/软件包。在激活阶段内,激活程序利用所述储存库,检查软件产品所必需的先决软件/软件包是否被安装,如稍后参考图4的说明在步骤(410)中所述。如果储存库是OS储存库,比如Windows (Windows是微软公司的商标)OS储存库或者Linux RPM,它被包含在虚拟盘中。-ECP ( 一种给定产品的先决软件/软件包的列表)-可以取回先决软件/软件包的位置;所述位置例如可以是下载软件/软件包的URL地址。-可选的,产品先决软件/软件包的许可文本的列表,如果在虚拟盘的创建期间,已收集了这些文本的话;在优选实施例中,将在利用激活程序,安装先决软件/软件包期间,即时取回许可文本。-用户安全访问虚拟设备信息的安全特征。激活阶段必需的所述附加信息可以包含在虚拟盘中,或者可在虚拟设备分发包中单独提供。不能被改变的ECP包含在虚拟镜像中。诸如先决软件/软件包的位置之类的其它附加信息优选地不包含在虚拟盘中,因为它们可在激活阶段期间被用户修改:例如,在用户安装过程中可从一个其它位置取回先决软件/软件包的情形中,用户可改变所述位置。例如,可在消费者站点的储存库中,找到所有的先决软件/软件包的情形中,用户可用储存库文件替换在创建虚拟镜像时由开发人员输入的URL地址。
开发人员可以利用用户接口填写ECP和如上所述的涉及先决软件/软件包的其它信息。
可以使用适用于虚拟设备软件包准备的任何格式。可以使用开放虚拟化格式(OVF)规范,它是一种正在分布式管理任务组(DMTF)协会内开发的标准。OVF分发包包含OVF描述符XML文件(也称为OVF信包),OVF描述符XML文件可包括安装所必需的附加信息(ECP、许可信息等);它还包含当访问OVF包和虚拟盘镜像时,用于安全性的OVF清单和证明文件。
图3图解说明在消费者虚拟环境中,部署软件产品的虚拟设备的系统环境。
用于安装和激活软件应用的消费者系统环境(300)可包括服务器,在所述服务器上,作为诸如VMware虚拟机监视器之类的虚拟机监视器的主机环境(325)管理虚拟机。已按照图2中说明的方法准备的虚拟设备存在于两个虚拟盘中,一个具有OS镜像(310),一个具有程序产品数据(320)。
通常启动虚拟机的步骤包括首先通过载入虚拟盘来实例化虚拟机,和随后激活虚拟机,这是利用通常位于操作系统虚拟盘上的引导程序(hot strap)自动完成的。为了部署包含软件产品的虚拟设备,消费者首先通过安装虚拟设备的虚拟盘来实例化虚拟机。部署按照图2中说明的步骤创建的虚拟设备的消费者实例化虚拟机,并且代替使引导程序自动激活软件程序,可 启动激活程序。
加载的激活程序(335)包括许可软件实体激活器(LSEA)、许可软件实体注册表(LSER)和许可软件实体用户接口(LSEU)。LSEA组件是允许先决软件/软件包的遵从安装和激活的主要组件:它在激活阶段,检查先决软件/软件包是否已被安装,并且只有当用户接受许可时,才允许安装。LSER组件是包含之前已取回的或者在激活阶段内安装的先决软件/软件包的列表、它们与软件产品的关联、和能够取回先决软件的地址的注册表。每次安装新的先决软件/软件包时,该先决软件/软件包被登记在LSER中。LSER包含对在软件产品安装的激活阶段中安装的先决软件/软件包的引用。如果LSER被不止一个系统(物理机或虚拟机)共享,LSER包含在激活阶段之前安装的软件/软件包,因为相同的软件/软件包可以是不止一个软件产品的先决软件/软件包,并且可能已为这些其它软件产品被取回。LSEU用户接口能够在激活阶段内的任何时候,取回并向用户显示待安装的产品的先决软件/软件包的许可文本。激活程序还利用ECP和在虚拟设备分发包中提供的对安装有用的附加信息,比如下载先决软件/软件包的位置。在图4的说明中,将结合所有这些组件和信息在部署虚拟设备时它们在激活程序中的使用,更多地说明这些组件和信息。
在虚拟设备部署的激活阶段中,加载(335)并在VM中执行(330)激活程序。如前所述,ECP和LSEA组件与特定软件产品的安装和激活相关,不过可视情况不从虚拟盘(320,335)使用,而是从虚拟机通过主机环境(325)的虚拟机监视器访问的一个远程服务器(340)使用可从分发的虚拟镜像获得的LSEU和LSER。从而,用户可视情况把在消费者站点被许多系统共用的服务器(340)(在虚拟机或物理机上)用于软件产品的安装/激活;该服务器可使可安装的先决软件/软件包可用,因为它们是不止一种软件产品的先决软件/软件包。在这种情况下,LSER和LSEU组件被其上安装和激活软件程序的不止一个系统(物理机或虚拟机)使用。消费者利用来自主机环境的虚拟机监视器API (或者作为行命令或者通过脚本)启动虚拟机,并对接所述虚拟机,以修改文件等。图4是按照本发明的优选实施例的,在如图3中说明的消费者虚拟环境中,部署软件产品的虚拟设备的方法的流程图。假定已按照图2的流程图中的步骤,创建了虚拟设备。图4的流程图说明和虚拟设备一起分发的激活程序的执行步骤(410,450)。用户首先安装(400)虚拟设备的虚拟盘,例如,一个虚拟盘用于OS,一个虚拟盘用于软件产品。部署虚拟设备的消费者想要在形成主机环境的虚拟机监视器之上,启动作为目标OS的新虚拟机,和开始在该虚拟机中的软件产品的运行。一旦安装了虚拟盘,虚拟机就被实例化,并且引导程序开始从虚拟盘,通常从OS虚拟盘开始运行。在激活程序由软件产品厂家在镜像准备期间创建,并在引导时被启动的情况下,并不立即开始软件产品本身的运行,因为先决软件/软件包从VM镜像中被除去。激活程序的LSEA主组件改为检查(410)在已利用虚拟盘安装实例化的镜像中,所有的先决软件/软件包是否都被安装,并且可用。为了进行这种检查,LSEA查看在虚拟设备软件包中提供的ECP,所述ECP包含附属于待激活的产品的所有必需的先决软件/软件包的列表,并且首先检查所有这些必需的先决软件/软件包是否还未被消费者安装。这是通过读取引用所有的安装软件的储存库进行的,所述储存库是作为虚拟设备中的附加信息分发的,并且可以是OS储存库或者独立的文件。注意,用户可能已为另一个产品安装,安装了必需的先决软件/软件包,从而对应的储存库可能已因所述安装而被更新。如果所有的先决软件/软件包都被安装并被激活(对测试步骤415的回答为是),直接激活产品(转到步骤450)。

如果外部组件先决条件列表未被满足(对步骤415的回答为否),优选地利用在主机环境的控制台显示的消息,向安装虚拟机的消费者告知缺少先决软件/软件包。随后,必须取回(420)ECP的先决软件/软件包。激活程序会遇到三种情况,以取回先决软件/软件包:-激活程序取回在LSER中读取的地址,以查明已安装在用户环境中的先决软件/软件包。-通过读取和虚拟设备软件包(例如,0VF)—起提供的附加信息,激活程序通过取回例如能够下载先决软件/软件包的URL,检查可从何处取回先决软件/软件包。-取回被激活程序跳过,将在稍后由VM用户执行。例如,如果虚拟机被部署在隔离的环境中,在任何情况下都不能取回软件包,或者用于激活虚拟镜像的虚拟机监视器不允许向镜像附加任何额外的储存库,那么情况就是这样。这种情况下,结束激活程序,而不进行软件产品激活(停止)。当选择该选项时,用户必须自己取回先决软件/软件包,和手动安装该先决软件/软件包。LSEU从取回的先决软件/软件包工件读取许可(430),向用户显示所述许可,并询问用户是否接受该许可。如果用户不接受该许可,则结束激活程序,而不进行软件产品激活(停止)。在接受未来的安装之前,用户必须解决他的许可问题。如果用户接受许可,LSEA组件安装先决软件/软件包(430)。LSEA随后用安装先决软件/软件包的位置以及与其它先决软件/软件包的关系和软件产品关系,更新LSER(440)。如果不进行该步骤,终止激活程序(停止)。
一旦安装了所有的先决软件/软件包,那么最后一步就是激活软件产品(450)。程序产品的激活需要配置步骤(如果需要的话),和开始已从虚拟机中的虚拟盘获得的程序的运行的步骤。
应注意为了显示许可文本,以便由安装虚拟镜像的用户认可,LSEU组件可从由创建虚拟镜像的开发人员提供的许可文件中读取许可文本,或者LSEU可在激活阶段内,即时从保存先决软件/软件包的位置提取许可文本。
从而,在虚拟机激活阶段内,由开发人员从虚拟镜像中除去的先决软件/软件包被自动重新安装,但是是按照遵从的方式重新安装的。
通过利用基于虚拟机监视器的API的脚本,能够自动进行镜像创建和软件产品安装的 所有步骤。
权利要求
1.一种从软件产品虚拟镜像分发包,在通过安装至少一个虚拟盘实例化的虚拟机上安装软件产品的先决软件的方法,所述方法包括在引导时,自动执行以下步骤: -读取在软件产品虚拟镜像的分发包中提供的软件产品的先决软件的列表; -测试在虚拟机中是否未安装先决软件,如果未安装,则在读取在软件产品虚拟镜像的分发包中提供的储存库中的先决软件位置之后,取回(420)先决软件; -读取取回的先决软件的许可文本,并向用户显示(430)所述许可文本; -依据用户对许可文本的认可,安装取回的先决软件; -重复前三个步骤,直到安装了所有先决软件为止。
2.按照权利要求1所述的方法,还包括:如果先决软件被指示成已安装在虚拟机中,则跳过关于该先决软件的后续取回、读取、显示和安装步骤。
3.按照权利要求1或2所述的方法,还包括:如果先决软件未被指示成已安装在虚拟机中,则通过读取所有已取回的先决软件的列表中能够从其取回先决软件的位置,来测试所述先决软件是否还未被取回,其中在安装取回的先决软件的每个步骤之后,用新取回的先决软件更新所述列表。
4.按照权利要求1-3任意之一所述的方法,其中,读取许可文本的步骤和显示许可文本的步骤包括:与远程服务器(340)通信以要求由所述远程服务器进行所述读取步骤和显示步骤的初始步骤。
5.按照权利要求1-4任意之一所述的方法,其中,读取取回的先决软件的许可文本的步骤包括:从取回的先决软件中提取许可文本的初始步骤。
6.按照权利要 求1-4任意之一所述的方法,其中读取取回的先决软件的许可文本的步骤包含:从在软件产品虚拟镜像的分发包中提供的许可文件中,读取许可文本。
7.按照权利要求1-6任意之一所述的方法,还包括以下在先步骤: -在开发人员虚拟机上安装软件产品及其先决软件; -在开发人员虚拟机中测试所述软件产品; -从开发人员虚拟机中除去(240)所述软件产品的所有先决软件; -创建开发人员虚拟机的至少一个虚拟盘; -创建当安装所述至少一个虚拟盘时将被激活的引导程序; -创建(220)软件产品的先决软件的列表(220); -创建包含能够从其取回先决软件的位置的储存库; -创建软件产品虚拟镜像分发包,所述分发包包括所述至少一个虚拟盘、软件产品的先决软件的列表、和包含能够从其取回先决软件的位置的储存库。
8.按照权利要求7所述的方法,还包括: 创建包含软件产品先决软件的许可文本的许可文件,并将其加入软件产品虚拟镜像分发包中。
9.按照权利要求1-8任意之一所述的方法,其中,如果先决软件未被安装,并且不能从先决软件位置读取先决软件,则需要先决软件的手动安装,从而处理被停止。
10.按照权利要求1-9任意之一所述的方法,其中,先决软件取回步骤包括:读取在分发包位置中提供的储存库中的因特网地址,以及安装步骤包括从所述因特网地址下载先决软件。
11.一种系统,所述系统包含适合于实现按照前述权利要求任意之一所述的方法的各个步骤的装置。
12.—种计算机程序,所述计算机程序包含当在计算机上执行所述计算机程序时,实现按照权利要求1-9任意之一所 述的方法的各个步骤的指令。
全文摘要
本发明涉及一种在激活虚拟机时,遵从地管理作为虚拟设备分发的软件产品的先决软件/软件包的方法、计算机程序和系统。提供一种准备其中已从虚拟镜像中除去先决软件的虚拟设备分发包的方法。还提供一种在消费者站点,以虚拟机的形式部署虚拟设备的方法,只有当用户认可许可之后,所述方法才在虚拟机中重新安装每个软件产品先决软件/软件包。虚拟设备分发包包含具有软件包和作为引导程序的激活程序的至少一个虚拟盘,以及某些附加信息,比如软件产品的先决软件的列表(ECP)和包含能够取回先决软件/软件包的软件产品先决软件/软件包位置的储存库。激活程序还维护在激活阶段之前和在激活阶段中,在用户环境中安装的所有先决软件/软件包的列表(LSER)。
文档编号G06F9/445GK103229142SQ201180056185
公开日2013年7月31日 申请日期2011年11月3日 优先权日2010年11月23日
发明者A·迪考考克考, L·皮切蒂, G·西亚诺, P·卡维佐诺 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1