CN105938525B - 虚拟机设备的基于目录的发现 - Google Patents

虚拟机设备的基于目录的发现 Download PDF

Info

Publication number
CN105938525B
CN105938525B CN201610121352.1A CN201610121352A CN105938525B CN 105938525 B CN105938525 B CN 105938525B CN 201610121352 A CN201610121352 A CN 201610121352A CN 105938525 B CN105938525 B CN 105938525B
Authority
CN
China
Prior art keywords
descriptor
software
software application
descriptor set
equipment
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.)
Expired - Fee Related
Application number
CN201610121352.1A
Other languages
English (en)
Other versions
CN105938525A (zh
Inventor
P·戈采克
P·卡尼亚
M·拉本斯基
M·帕卢赫
T·斯托帕
A·K·泽祖拉
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN105938525A publication Critical patent/CN105938525A/zh
Application granted granted Critical
Publication of CN105938525B publication Critical patent/CN105938525B/zh
Expired - Fee Related 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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
    • 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/45595Network integration; Enabling network access in virtual machine instances

Abstract

本发明涉及虚拟机设备的基于目录的发现。用于虚拟环境的软件资产管理(SAM)执行以下操作:(i)收集一个或多个虚拟机(VM)描述符集,其中每个VM描述符集对应于以下项之一:VM设备或封装的VM映像;(ii)对于所述一个或多个VM描述符集的每个VM描述符集,判定是否存在与VM描述符集/软件应用映射数据集中的条目的匹配;以及(iii)对于所述一个或多个VM描述符集的每个VM描述符集,如果存在匹配,则基于所述VM描述符/软件映射数据集中的相应匹配条目,确定与该VM描述符集对应的所述VM设备或封装的VM映像中的一个或多个软件应用的身份。

Description

虚拟机设备的基于目录的发现
技术领域
本发明一般地涉及软件许可管理领域,并且更具体地说,涉及发现许可软件在复杂和动态的虚拟机环境中的使用。
背景技术
众所周知,以“封装VM(虚拟机)映像”的形式将软件从供应商转移到客户。封装的VM映像被部署在客户的虚拟化环境中,以使得客户能够使用软件。封装的VM映像通常包括由操作系统控制的自包含虚拟机,其运行一个或多个应用(即,客户想要使用的多个软件)。通常,这些应用被预配置,因为在VM上下文中预配置相对容易执行。当封装的VM映像上线并且在虚拟化环境中运行时,它被称为“虚拟设备(virtual appliance)”。通过使用这些虚拟设备,客户通常能够快速、容易和可靠地做以下事情:(i)购买和下载虚拟设备;(ii)设置配置细节;以及(iii)达到操作状态。
DTMF OVF(分布式管理任务组开放虚拟化格式,在此有时也简称为OVF)是独立软件供应商(ISV)对虚拟设备进行打包和安全分发的通用打包格式,从而实现跨平台可移植性。通过以OVF对虚拟设备进行打包,ISV可以创建单个预打包设备,其可以在客户选择的虚拟化平台上运行。例如,在OVF中,可以存储有关供应商和产品的信息,随后可以通过VM管理器访问该信息。包括在以OVF格式打包的产品中的描述符可以提供有关安装的软件的信息,例如产品名称、供应商名称、软件版本、产品URL(统一资源定位符)和/或供应商URL等。OVF可以将描述符分组成部分,例如磁盘、网络、资源、产品、EULA(最终用户许可协议)条款等。OVF描述符通常用于在VM管理器中提供有关VM的附加信息。
软件资产管理(SAM)工具是已知类型的软件。SAM是注册和跟踪传统(即,非封装的VM映像型)软件的传统方式,这些软件被安装和用于组织或企业中。通常,SAM是用于资产管理相关的活动的重要工具,这些活动例如包括与软件许可付款相关的跟踪活动(参见下面具体实施方式部分的定义子部分中的相关“资产管理”的定义)。
发明内容
根据本发明的一个方面,存在一种执行以下操作(不一定采用以下顺序)的方法、计算机程序产品和/或系统:(i)收集一个或多个虚拟机(VM)描述符集,其中每个VM描述符集对应于以下项之一:VM设备或封装的VM映像;(ii)对于所述一个或多个VM描述符集的每个VM描述符集,判定是否存在与VM描述符集/软件应用映射数据集中的条目的匹配;以及(iii)对于所述一个或多个VM描述符集的每个VM描述符集,如果存在匹配,则基于所述VM描述符/软件映射数据集中的相应匹配条目,确定与该VM描述符集对应的所述VM设备或封装的VM映像中的一个或多个软件应用的身份。
附图说明
图1示出根据本发明的用于系统的第一实施例的云计算节点;
图2示出根据本发明的云计算环境(也称为“第一实施例系统”)的一个实施例;
图3示出用于第一实施例系统的抽象模型层;
图4是示出至少部分地由第一实施例系统执行的第一实施例方法的流程图;以及
图5是示出第一实施例系统的机器逻辑(例如,软件)部分的框图。
具体实施方式
在本发明的某些实施例中,OVF描述符(或其它类似的VM描述符)用于发现软件应用,这些软件应用在与VM描述符(多个)涉及的VM映像对应的VM中并通过所述VM运行。在本发明的某些实施例中,VM描述符与VM映像中的软件应用(多个)之间的关联是:(i)预定和已知的;和/或(ii)由机器逻辑使用从运行软件应用的多个(通常非常大量)VM收集的历史数据确定,其中VM描述符和在VM中并且通过VM运行的软件应用已知。在某些实施例中,跨整个计算机网络基础架构收集VM描述符信息,以及有关在VM中并且通过VM运行的软件的信息(即,历史数据)。例如,如果VM封装映像的给定一组VM描述符是“软件供应商特定的”,则:(i)该信息可以用于在“描述符/软件应用目录”中创建“描述符/软件映射”;和/或(ii)描述符/软件映射目录(或表)可以用作资产管理相关的活动(参见下面具体实施方式部分的定义子部分中的相关“资产管理”的定义)的基础,资产管理相关的活动例如包括确定所需的一组软件应用许可。
本具体实施方式部分分成以下子部分:(i)硬件和软件环境;(ii)实例实施例;(iii)进一步评论和/或实施例;以及(iv)定义。
I.硬件和软件环境
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是—但不限于—电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读存储介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其它基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统或设备的分布式云计算技术环境,等等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MCA)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓冲存储器32。计算机系统/服务器12可以还包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机;基于RISC(精简指令集计算机)体系结构的服务器;存储设备;网络和网络组件。在一些实施例中,软件组件包括:网络应用服务器软件。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及根据本发的功能(参见功能框66a),如下面在本具体实施方式部分中的以下子部分中详细讨论的那样。
II.实例实施例
图4是示出根据本发明的方法的流程图250。图5示出用于执行流程图250的至少某些方法步骤的程序300。现在将通过以下段落的过程,并且广泛参考图4(针对方法步骤框)和图5(针对软件框),讨论该方法和关联的软件。其中可以存储图5的程序300的一个物理位置在存储装置框60a(参见图3)中。
处理在步骤S255开始,其中供应VM模块(“mod”)302供应封装的VM映像(未单独示出),包括软件应用(在附图中未示出)。在该实例中,软件应用称为“电子表格程序”或简称为“SS程序”。供应其中具有SS程序的封装的VM映像,以便作为VM设备(未单独示出)在计算机系统12(参见图1)上运行。在该实例中,电子表格程序在其代码(是正在运行的VM设备的一部分)中包括某些软件资产管理数据,例如常规SAM签名。但是,在该实施例中,不使用该常规SAM数据,因为它不允许资产管理如所讨论的方法提供的那样可靠。下面在本具体实施方式部分的进一步评论和/或实施例子部分的第一段中更详细讨论在VM设备上下文中使用常规SAM数据的潜在问题。
处理继续到步骤S260,其中收集描述符模块304收集包括在步骤S255供应的新运行的VM设备的代码中的所有VM描述符。如上所述,一种当前流行类型的VM描述符代码是OVF描述符代码。但是,在图4的该方法实例中,实例描述符代码将不遵循OVF格式以便简化解释。值得注意的是,在步骤S260收集的描述符代码是“VM描述符代码”,因为它被设计和/或构造为与封装的VM映像整体和/或从封装的VM映像供应的正在运行的VM设备整体相对应。“VM描述符代码”不应与仅涉及作为封装的VM映像一部分包括的应用的各种SAM数据相混淆。在该实例中,针对在步骤S255供应的VM设备仅有一个VM描述符代码,具体地说VM描述符代码“ABF”。在该实施例中,通过网络50(参见图2)收集VM描述符集(即,仅“ABF”),以使得其中供应VM设备的物理计算机是与运行程序300的物理计算机不同的物理计算机。备选地,用于与VM描述符集匹配的VM设备和程序可以在同一物理计算机上。
处理继续到步骤S262,其中匹配模块306判定在步骤S260收集的描述符代码集是否与VM描述符/软件映射表的任何行相匹配。在该实例中,存储在匹配模块306中的VM描述符/软件映射表如下所示:
在该实施例中,按照名称标识软件应用。备选地,给定VM描述符集的软件应用(多个)可以对应于软件签名(例如通常与常规SAM代理软件一起使用的预定SAM软件签名)。如可以从上表中看到的,代码“ABF”(没有第二VM描述符代码)不与VM描述符/软件映射表的任何行的VM描述符代码集部分相匹配。因为没有匹配,所以该实例的处理将继续(如下面讨论的那样)步骤S270。
但是,假设在步骤S260收集的VM描述符集与该表的一个行之间存在匹配。如果发生这种情况,则该表的第三和第四列将揭示在步骤S255供应的VM设备中包括的软件应用的身份。在这种情况下,处理将从步骤S262继续到步骤S265,其中资产管理模块308将执行一个或多个资产管理相关的活动(例如基于新供应的VM设备的电子表格程序的许可付款)。
如上所述,在该实例中,由于在所述VM描述符/软件映射表中没有VM描述符集匹配,因此处理从步骤S262继续到步骤S270,其中维护软件表模块310判定是否应该更新所述VM描述符/软件映射表以便包括新VM描述符集的新行。在该实例中,模块310自动查询计算机12(参见图1)(即,新供应的虚拟设备的主机),以便确定新供应的VM设备中包括什么软件应用。备选地,可以以其它方式(例如通过人为干预)确定新供应的VM设备的软件应用的身份。在某些实施例中,在新供应的VM设备中运行的电子表格程序的SAM数据可以用于该软件应用确定。
在该实例中,确定新供应的VM设备上的软件限于单个应用,其称为电子表格程序,如上面在步骤S255的讨论中描述的那样。事实证明,这是新供应的虚拟设备第十次返回VM描述符集“ABF”(唯一),并且所有这十次,VM设备的软件都被标识为“电子表格程序”(唯一)。在该实例中,当从VM描述符/软件映射表中缺失的VM描述符集被发现十次,并且所有这十次,VM描述符集都与同一组的软件应用(多个)关联(即,计数器变量达到阈值10)时,则模块310向VM描述符/软件映射表中添加一个行。可以使用其它值作为阈值,并且某些实施例甚至可以将该阈值设置为低至一(1),从而意味着每次检测到一组新VM描述符代码时目录都改变。本具体实施方式部分的下一个子部分将讨论本发明的某些实施例如何通过在“原始清单”中放置不匹配条目来实现目录更新。
相应地,在其中恰好第十次遇到VM描述符集“ABF”的该实例中,向模块308的VM描述符/软件映射表中添加一个行,如下所示:
III.进一步评论和/或实施例
本发明的某些实施例认识到难以有效管理作为封装的VM映像提供并且作为虚拟设备安装的软件的许可,原因可以包括:(i)可能不能在由SAM(软件资产管理)代理管理的系统上部署虚拟设备,因为此类映像通常禁止安装其它软件;(ii)可能具有在单个VM映像中操作的多个VM;和/或(iii)由于持续删除和/或添加新服务器,在VM环境中操作的VM数量可能不断地改变。
本发明的某些实施例可以包括以下一个或多个特性、特征和/或优点:(i)使用VM描述符和/或模式执行涉及软件应用的资产管理相关的功能,这些软件应用包括在封装VM包中和/或作为VM虚拟设备的一部分运行(参见下面具体实施方式部分的定义子部分中的相关“资产管理”的定义);(ii)使用开放虚拟格式(OVF)VM描述符和/或模式执行涉及软件应用的资产管理功能,这些软件应用包括在封装VM包中和/或作为VM虚拟设备的一部分运行;(iii)使用VM描述符作为软件签名和/或将VM描述符映射到预先存在的软件签名(例如,预先存在的SAM软件签名);和/或(iv)使用原始数据获得签名(例如,存在于封装的VM映像中的软件应用的SAM签名),从而既不使用VM映像也不使用VM设备插装。这种使用VM描述符进行软件资产管理的方法使能有效管理基于VM的软件设备的软件发现和许可。
现在将在以下段落中讨论基于VM描述符执行软件资产管理的方法的一个实施例。
操作A:根据本发明的该特定实施例的SAM工具从VM管理器程序收集所有供应的虚拟设备的VM描述符。例如,反映有关在网络计算机系统(在此有时称为“环境”)中运行的虚拟设备之一的供应商、产品和版本的已存储信息的一组VM描述符(具体地说OVF描述符)可以如下所示:
<ProductSection>
<Info>Information about the installed software</Info>
<Product>V-Sherbet Manager</Product>
<Vendor>ABC Products,Inc.</Vendor>
<Version>5.5.0-1317534</Version>
<ProductUrl>http://www.abcproducts.com/products/vsherbet-
manager</ProductUrl>
<VendorUrl>http://www.abcproducts.com</VendorUrl>
</ProductSection>
这是SAM工具通过VM管理器访问的VM描述符信息的一部分。如上所述,OVF提供许多其它描述符(分成诸如磁盘、网络、资源、产品、EULA法律条款之类的部分),这些描述符可以用于根据本发明的不同实施例的资产管理目的。
操作B:在操作A的收集之后,将所收集的描述符与新类型的软件签名相比较。签名定义为描述符(多个)和模式(多个)列表,这些描述符和模式需要被匹配(例如,具有给定精确值或正则表达式(例如,5.5|5.5.*)的供应商、产品、版本字段)。在该实例中,将列表元素组合成逻辑表达式,如下所示:
ProductSection\Product equals"vSherbet Manager Standard"
AND
ProductSection\Vendor contains"ABC*"
AND
ProductSection\Version contains"5.5|5.5.*"
OR
EulaSection\Info contains"vSherbet Manager 5.5*Standard EditionLicense agreement"
OR
ANY contains"vSherbet Manager 5.5*Standard*"
操作C:如果签名匹配,则SAM工具报告发现的软件和VM机器标识符(在该实例中,网络地址)。
操作D:如果签名不匹配,则将不匹配的描述符(在此有时称为“不匹配描述符”)报告为原始清单数据,如ProductSection、EulaSection等。在该实施例中,该信息将被发送到SAM工具。备选地,SAM工具本身可以扩展以便处理VM描述符-SAM软件签名匹配“原始清单数据”和不匹配的VM描述符。
操作E:将来自环境中多个用户的相同条目分组并且提供给SAM管理员(在该实施例中,SAM管理员是人)。SAM管理员基于从整个环境中收集的相同条目的数量,批准在由操作D处的原始清单描述符提供的相同不匹配条目中标识的供应商、软件和版本。在该实施例中,SAM管理人员使用她的专业判断和/或独立研究,确定在更新软件目录之前多少个相同不匹配条目必须在“原始清单”中。
操作F:在SAM管理人员批准之后,使用收集的原始清单数据自动创建适合于与SAM一起使用的软件发现签名。此自动软件签名生成的一个实例如下所示:
VM1 OVF描述符代码:
<ProductSection>
<Product>My ERP Solution</Product>
<Vendor>ERP Software Vendor</Vendor>
<Version>5.5.0</Version>
</ProductSection>
VM2 OVF描述符代码:
<ProductSection>
<Product>My ERP Solution</Product>
<Vendor>ERP Software Vendor</Vendor>
<Version>5.5.3</Version>
</ProductSection>
VM3 OVF描述符代码:
<ProductSection>
<Product>My ERP Solution</Product>
<Vendor>ERP Software Vendor</Vendor>
<Version>5.6.0</Version>
</ProductSection>
本发明的该实施例使用机器逻辑将VM描述符数据转换成SAM软件签名字符串数据,如下所示:
ERP Software Vendor;My ERP Solution;5.5->VM1,VM2
ERP Software Vendor;My ERP Solution;5.6->VM3
在该实施例中,SAM管理人员必须在将SAM软件签名字符串数据添加到目录之前批准该SAM软件签名字符串数据。在该实施例中,SAM管理人员还可以对最初由机器逻辑自动生成的SAM数据进行修改。这样,所讨论的实施例自动创建和/或维护ISV软件目录,该目录往往非常适合于客户环境。
本发明的某些实施例可以包括处理VM管理器数据方面的一个或多个改进,如下所示:(i)跳过/忽略具有已部署并正在运行的SAM代理的机器(例如,供应的机器默认具有SAM代理);和/或(ii)当VM未被识别或者原始清单数据未提供足够级别的细节时,建议安装SAM解决方案代理(深度发现需要的所有子组件和特性,即实现高级补丁/许可管理)。
IV.定义
本发明:不应被视为以下绝对指示:术语“本发明”描述的主题由提交的权利要求包括,或者由可以最终在专利诉讼之后发布的权利要求包括;尽管术语“本发明”用于帮助读者大概理解在此被信任的那些公开可以是新的,但如使用术语“本发明”指示的,这种理解是暂定和临时的,并且随着相关信息的发展和权利要求的潜在修改而在专利诉讼过程中有所变化。
实施例:参见上面的“本发明”定义—类似注意事项适用于术语“实施例”。
和/或:可兼或;例如,A、B“和/或”C表示A或B或C中的至少一个为真并且适用。
模块/子模块:以操作方式工作以便执行某种功能的任何硬件、固件和/或软件组,而不考虑模块是否:(i)在单个局部邻近中;(ii)在广泛区域内分布;(iii)在较大软件代码块中的单个邻近中;(iv)位于单个软件代码块中;(v)位于单个存储设备、存储器或介质中;(vi)机械连接;(vii)电连接;和/或(viii)以数据通信连接。
计算机:具有显著数据处理和/或机器可读指令读取能力的任何设备,包括但不限于:台式计算机、大型计算机、膝上型计算机、基于现场可编程门阵列(FPGA)的设备、智能电话、个人数字助理(PDA)、本体安装或插入的计算机、嵌入式设备类型计算机、基于专用集成电路(ASIC)的设备。
资产管理(或资产管理相关):包括但不一定限于:管理和优化软件购买(即,许可或销售);执行许可或销售付款相关活动(例如确定由于不同许可方导致的许可付款金额);部署;维护;使用和处置;设计有效管理、控制和保护软件资产需要的基础架构和过程;降低信息技术(IT)成本;限制涉及软件的所有权和使用的商业和法律风险;和/或最大化IT(信息技术)响应性和最终用户生产力。

Claims (10)

1.一种方法,包括:
收集一个或多个虚拟机VM描述符集,其中每个VM描述符集包括一个或多个VM描述符并对应于以下项之一:VM设备或封装的VM映像;
对于每个VM描述符集,判定是否存在与VM描述符集/软件应用映射数据集中的条目的匹配;
对于每个VM描述符集,如果存在匹配,则基于所述VM描述符集/软件应用映射数据集中的相应匹配条目,确定与该VM描述符集对应的所述VM设备或封装的VM映像中的一个或多个软件应用的身份;以及
对于所述一个或多个VM描述符集的每个VM描述符集,如果没有匹配,则收集不匹配的VM描述符集作为原始清单以便用于修改所述VM描述符集/软件应用映射数据集,其中,响应于不匹配的至少一个VM描述符集与同一组的一个或多个软件应用关联,在所述VM描述符集/软件应用映射数据集中创建对应于该不匹配的至少一个VM描述符集的条目。
2.如权利要求1所述的方法,其中所述一个或多个VM描述符集的一个或多个VM描述符是开放虚拟化格式OVM型VM描述符。
3.如权利要求1所述的方法,其中所述VM描述符集/软件应用映射数据集使用软件资产管理SAM软件签名来标识软件应用。
4.如权利要求1所述的方法,还包括:
至少部分地基于所述VM设备和/或封装的VM映像中的所述一个或多个软件应用的身份,执行第一资产管理相关的活动。
5.如权利要求4所述的方法,其中所述第一资产管理相关的活动是计算使用所标识的一个或多个软件应用的许可付款。
6.一种计算机系统,包括:
处理器组,其包括一个或多个处理器;以及
计算机可读存储介质;
其中:
对所述处理器组进行构造、定位、连接和/或编程,以便运行存储在所述计算机可读存储介质上的程序指令;以及
所述程序指令包括:
第一程序指令,其被编程为收集一个或多个虚拟机VM描述符集,其中每个VM描述符集包括一个或多个VM描述符并对应于以下项之一:VM设备或封装的VM映像;
第二程序指令,其被编程为对于每个VM描述符集,判定是否存在与VM描述符集/软件应用映射数据集中的条目的匹配;
第三程序指令,其被编程为对于每个VM描述符集,如果存在匹配,则基于所述VM描述符集/软件应用映射数据集中的相应匹配条目,确定与该VM描述符集对应的所述VM设备或封装的VM映像中的一个或多个软件应用的身份;以及
第五程序指令,对于所述一个或多个VM描述符集的每个VM描述符集,如果没有匹配,则所述第五程序指令被编程为收集不匹配的VM描述符集作为原始清单以便用于修改所述VM描述符集/软件应用映射数据集,其中,响应于不匹配的至少一个VM描述符集与同一组的一个或多个软件应用关联,在所述VM描述符集/软件应用映射数据集中创建对应于该不匹配的至少一个VM描述符集的条目。
7.如权利要求6所述的系统,其中所述一个或多个VM描述符集的一个或多个VM描述符是开放虚拟化格式OVM型VM描述符。
8.如权利要求6所述的系统,其中所述VM描述符集/软件应用映射数据集使用软件资产管理SAM软件签名来标识软件应用。
9.如权利要求6所述的系统,其中所述介质进一步在其上存储:
第四程序指令,其被编程为至少部分地基于所述VM设备和/或封装的VM映像中的所述一个或多个软件应用的身份,执行第一资产管理相关的活动。
10.如权利要求9所述的系统,其中所述第一资产管理相关的活动是计算使用所标识的一个或多个软件应用的许可付款。
CN201610121352.1A 2015-03-04 2016-03-03 虚拟机设备的基于目录的发现 Expired - Fee Related CN105938525B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/637433 2015-03-04
US14/637,433 US9792140B2 (en) 2015-03-04 2015-03-04 Maintenance of a software discovery catalog in a virtual machine environment

Publications (2)

Publication Number Publication Date
CN105938525A CN105938525A (zh) 2016-09-14
CN105938525B true CN105938525B (zh) 2019-04-09

Family

ID=56738954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610121352.1A Expired - Fee Related CN105938525B (zh) 2015-03-04 2016-03-03 虚拟机设备的基于目录的发现

Country Status (3)

Country Link
US (1) US9792140B2 (zh)
CN (1) CN105938525B (zh)
DE (1) DE102016103713A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9910652B2 (en) * 2015-11-30 2018-03-06 International Business Machines Corporation Deploying applications
US10223074B2 (en) 2015-12-11 2019-03-05 International Business Machines Corporation Determining the identity of software in software containers
US11055403B2 (en) * 2017-01-06 2021-07-06 International Business Machines Corporation Method, system, and computer program product for application identification in a cloud platform
CN114827241A (zh) * 2017-09-22 2022-07-29 华为技术有限公司 一种跨平台部署的方法和系统
CN112148935A (zh) * 2019-06-26 2020-12-29 腾讯美国有限责任公司 用于多实例的nbmp功能执行的方法和装置
US11323447B2 (en) 2019-07-09 2022-05-03 Hexagon Technology Center Gmbh Digital data access control and automated synthesization of capabilities
EP3842946A1 (en) * 2019-12-23 2021-06-30 Hexagon Technology Center GmbH Method and system for automatically identifying and synthesizing capabilities
US11163557B2 (en) * 2019-11-08 2021-11-02 International Business Machines Corporation Automated techniques for detecting the usage of software applications in a computing environment using configuration objects

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009111799A3 (en) * 2008-03-07 2009-12-17 3Tera, Inc. Globally distributed utility computing cloud
CN103927216A (zh) * 2013-01-16 2014-07-16 国际商业机器公司 用于管理虚拟装置的方法和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US8321948B2 (en) 2008-03-28 2012-11-27 Sap Ag Flexible appliance hosting with coordination of deployment, licensing and configuration
US8543998B2 (en) 2008-05-30 2013-09-24 Oracle International Corporation System and method for building virtual appliances using a repository metadata server and a dependency resolution service
US8850607B2 (en) 2009-09-22 2014-09-30 Flexera Software Llc System and method for capacity licensing
WO2011069784A1 (en) * 2009-12-11 2011-06-16 International Business Machines Corporation System and method of managing software content in virtual desktop environments
WO2012054016A1 (en) 2010-10-19 2012-04-26 Hewlett-Packard Development Company, L.P. Methods and systems for generation of authorized virtual appliances
US8910157B2 (en) * 2010-11-23 2014-12-09 International Business Machines Corporation Optimization of virtual appliance deployment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009111799A3 (en) * 2008-03-07 2009-12-17 3Tera, Inc. Globally distributed utility computing cloud
CN103927216A (zh) * 2013-01-16 2014-07-16 国际商业机器公司 用于管理虚拟装置的方法和系统

Also Published As

Publication number Publication date
DE102016103713A1 (de) 2016-09-08
US20160259658A1 (en) 2016-09-08
CN105938525A (zh) 2016-09-14
US9792140B2 (en) 2017-10-17

Similar Documents

Publication Publication Date Title
CN105938525B (zh) 虚拟机设备的基于目录的发现
CN106020940B (zh) 用于确定数据集的放置的存储层级的方法和系统
CN104765620B (zh) 一种程序模块部署的方法和系统
CN104601622B (zh) 一种部署集群的方法和系统
CN105843703B (zh) 创建工作流以解决至少一个系统问题的方法和系统
CN104424013B (zh) 在计算环境中部署虚拟机的方法和设备
CN104796270B (zh) 在云应用的问题诊断中推荐可疑组件的方法及装置
CN104660669B (zh) 针对应用模式组件从多个主机选择一个主机的方法和系统
CN105446793A (zh) 迁移虚拟资产的方法和设备
CN104111966B (zh) 用于动态地同步技术环境中的元素的方法和系统
US20160063145A1 (en) Dynamic and collaborative workflow authoring with cloud-supported live feedback
CN104937544B (zh) 用于计算任务结果的方法、计算机可读介质和计算机系统
CN107066242A (zh) 确定软件容器中软件的标识的方法和系统
CN105359088B (zh) 使用动态生成的虚拟磁盘内容优化供应时间的方法
CN103238138A (zh) 用于云环境中的分区部署/重部署的网络接口
US20140136712A1 (en) Cloud resources as a service multi-tenant data model
CN106027593B (zh) 用于动态地维护数据结构的方法和系统
CN103927216B (zh) 用于管理虚拟装置的方法和系统
CN105976275A (zh) 用于建立可持续的创新平台的方法和系统
CN105100127A (zh) 用于验证在云计算环境中的应用部署拓扑的设备和方法
CN105988911B (zh) 在系统日志中建立信任链
US10769281B2 (en) Compliant software component infrastructure deployment
US11188855B2 (en) Machine learning task assignment
CN104424012B (zh) 用于提供自定义虚拟装置的方法和设备
WO2021033048A1 (en) Artificial intelligence enabled function logic infusion

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190409

CF01 Termination of patent right due to non-payment of annual fee