虚拟机设备的基于目录的发现的制作方法

文档序号:10577363阅读:305来源:国知局
虚拟机设备的基于目录的发现的制作方法
【专利摘要】本发明涉及虚拟机设备的基于目录的发现。用于虚拟环境的软件资产管理(SAM)执行以下操作:(i)收集一个或多个虚拟机(VM)描述符集,其中每个VM描述符集对应于以下项之一:VM设备或封装的VM映像;(ii)对于所述一个或多个VM描述符集的每个VM描述符集,判定是否存在与VM描述符集/软件应用映射数据集中的条目的匹配;以及(iii)对于所述一个或多个VM描述符集的每个VM描述符集,如果存在匹配,则基于所述VM描述符/软件映射数据集中的相应匹配条目,确定与该VM描述符集对应的所述VM设备或封装的VM映像中的一个或多个软件应用的身份。
【专利说明】虚拟机设备的基于目录的发现 技术领域
[0001 ]本发明一般地涉及软件许可管理领域,并且更具体地说,涉及发现许可软件在复 杂和动态的虚拟机环境中的使用。 【背景技术】
[0002] 众所周知,以"封装VM(虚拟机)映像"的形式将软件从供应商转移到客户。封装的 VM映像被部署在客户的虚拟化环境中,以使得客户能够使用软件。封装的VM映像通常包括 由操作系统控制的自包含虚拟机,其运行一个或多个应用(即,客户想要使用的多个软件)。 通常,这些应用被预配置,因为在VM上下文中预配置相对容易执行。当封装的VM映像上线并 且在虚拟化环境中运行时,它被称为"虚拟设备(virtual appliance)"。通过使用这些虚拟 设备,客户通常能够快速、容易和可靠地做以下事情:(i)购买和下载虚拟设备;(ii)设置配 置细节;以及(i i i)达到操作状态。
[0003] DTMF 0VF(分布式管理任务组开放虚拟化格式,在此有时也简称为0VF)是独立软 件供应商(ISV)对虚拟设备进行打包和安全分发的通用打包格式,从而实现跨平台可移植 性。通过以OVF对虚拟设备进行打包,ISV可以创建单个预打包设备,其可以在客户选择的虚 拟化平台上运行。例如,在OVF中,可以存储有关供应商和产品的信息,随后可以通过VM管理 器访问该信息。包括在以OVF格式打包的产品中的描述符可以提供有关安装的软件的信息, 例如产品名称、供应商名称、软件版本、产品URL(统一资源定位符)和/或供应商URL等。OVF 可以将描述符分组成部分,例如磁盘、网络、资源、产品、EULA(最终用户许可协议)条款等。 OVF描述符通常用于在VM管理器中提供有关VM的附加信息。
[0004] 软件资产管理(SAM)工具是已知类型的软件。SAM是注册和跟踪传统(即,非封装的 VM映像型)软件的传统方式,这些软件被安装和用于组织或企业中。通常,SAM是用于资产管 理相关的活动的重要工具,这些活动例如包括与软件许可付款相关的跟踪活动(参见下面 【具体实施方式】部分的定义子部分中的相关"资产管理"的定义)。
【发明内容】

[0005] 根据本发明的一个方面,存在一种执行以下操作(不一定采用以下顺序)的方法、 计算机程序产品和/或系统:(i)收集一个或多个虚拟机(VM)描述符集,其中每个VM描述符 集对应于以下项之一:VM设备或封装的VM映像;(ii)对于所述一个或多个VM描述符集的每 个VM描述符集,判定是否存在与VM描述符集/软件应用映射数据集中的条目的匹配;以及 (i i i)对于所述一个或多个VM描述符集的每个VM描述符集,如果存在匹配,则基于所述VM描 述符/软件映射数据集中的相应匹配条目,确定与该VM描述符集对应的所述VM设备或封装 的VM映像中的一个或多个软件应用的身份。 【附图说明】
[0006] 图1示出根据本发明的用于系统的第一实施例的云计算节点;
[0007] 图2示出根据本发明的云计算环境(也称为"第一实施例系统")的一个实施例;
[0008] 图3示出用于第一实施例系统的抽象模型层;
[0009] 图4是示出至少部分地由第一实施例系统执行的第一实施例方法的流程图;以及
[0010] 图5是示出第一实施例系统的机器逻辑(例如,软件)部分的框图。 【具体实施方式】
[0011] 在本发明的某些实施例中,OVF描述符(或其它类似的VM描述符)用于发现软件应 用,这些软件应用在与VM描述符(多个)涉及的VM映像对应的VM中并通过所述VM运行。在本 发明的某些实施例中,VM描述符与VM映像中的软件应用(多个)之间的关联是:(i)预定和已 知的;和/或(ii)由机器逻辑使用从运行软件应用的多个(通常非常大量)VM收集的历史数 据确定,其中VM描述符和在VM中并且通过VM运行的软件应用已知。在某些实施例中,跨整个 计算机网络基础架构收集VM描述符信息,以及有关在VM中并且通过VM运行的软件的信息 (即,历史数据)。例如,如果VM封装映像的给定一组VM描述符是"软件供应商特定的",则: (i)该信息可以用于在"描述符/软件应用目录"中创建"描述符/软件映射";和/或(ii)描述 符/软件映射目录(或表)可以用作资产管理相关的活动(参见下面【具体实施方式】部分的定 义子部分中的相关"资产管理"的定义)的基础,资产管理相关的活动例如包括确定所需的 一组软件应用许可。
[0012] 本【具体实施方式】部分分成以下子部分:(i)硬件和软件环境;(ii)实例实施例; (iii)进一步评论和/或实施例;以及(iv)定义。
[0013] I.硬件和软件环境
[0014] 本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机 可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0015] 计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形 设备。计算机可读存储介质例如可以是一但不限于一电存储设备、磁存储设备、光存储设 备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更 具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储 器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压 缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存 储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机 可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过 波导或其它传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的 电信号。
[0016] 这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/ 处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外 部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关 计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计 算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计 算机可读存储介质中。
[0017] 用于执行本发明操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA) 指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程 语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言一诸如 Smalltalk、C++等,以及常规的过程式编程语言一诸如"C"语言或类似的编程语言。计算机 可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独 立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机 或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包 括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利 用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令 的状态信息来个性化电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程 逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0018] 这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/ 或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/ 或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0019] 这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据 处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据 处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功 能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指 令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的 计算机可读存储介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方 框中规定的功能/动作的各个方面的指令。
[0020] 也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它 设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机 实现的过程,从而使得在计算机、其它可编程装置、或其它设备上执行的指令实现流程图 和/或框图中的一个或多个方框中规定的功能/动作。
[0021] 附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程 序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代 表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用 于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能可 以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行, 它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流 程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作 的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0022]首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案 的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环 境而实现。
[0023]云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的 网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能 快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟 机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
[0024] 特征包括:
[0025] 按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单 方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
[0026] 广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进 了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助 理PDA)对云的使用。
[0027]资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务 于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下, 消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定 位置(例如国家、州或数据中心),因此具有位置无关性。
[0028] 迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展, 并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的, 并能在任意时候都能获取任意数量的计算能力。
[0029] 可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户 帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资 源使用情况,为服务提供者和消费者双方提供透明度。
[0030] 服务模型如下:
[0031] 软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应 用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设 备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网 络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
[0032]平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获 得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控 制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权, 对应用托管环境配置可能也具有控制权。
[0033]基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包 括操作系统和应用的任意软件的处理、存储、网络和其它基础计算资源。消费者既不管理也 不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网 络组件(例如主机防火墙)可能具有有限的控制权。
[0034]部署模型如下:
[0035]私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管 理并且可以存在于该组织内部或外部。
[0036]共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安 全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管 理并且可以存在于该共同体内部或外部。
[0037]公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
[0038] 混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组 成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术 (例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
[0039] 云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操 作性。云计算的核心是包含互连节点网络的基础架构。
[0040] 现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅 是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。 总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
[0041] 云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统 环境或配置一起操作。众所周知,适于与计算机系统/服务器12-起操作的计算系统、环境 和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户 机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、 小型计算机系统、大型计算机系统和包括上述任意系统或设备的分布式云计算技术环境, 等等。
[0042] 计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如 程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽 象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在 通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算 环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0043]如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表 现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元 16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0044]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器, 外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举 例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MCA) 总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0045] 计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能 够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动 的和不可移动的介质。
[0046] 系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取 存储器(RAM)30和/或高速缓冲存储器32。计算机系统/服务器12可以还包括其它可移动/不 可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写 不可移动的、非易失性磁介质(图1未显示,通常称为"硬盘驱动器")。尽管图1中未示出,可 以提供用于对可移动非易失性磁盘(例如"软盘")读写的磁盘驱动器,以及对可移动非易失 性光盘(例如⑶-ROM, DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱 动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序 产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明 各实施例的功能。
[0047]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这 样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序 数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行 本发明所描述的实施例中的功能和/或方法。
[0048]计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显 示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通 信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设 备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并 且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网 (LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线 18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软 件模块可以与计算机系统/服务器12-起操作,包括但不限于:微代码、设备驱动器、冗余处 理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0049] 现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括 云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计 算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或 汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私 有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10 进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就 能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务 (SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计 算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用 网络浏览器)通信。
[0050] 现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当 理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所 示,提供下列层和对应功能:
[0051] 硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机;基于RISC(精 简指令集计算机)体系结构的服务器;存储设备;网络和网络组件。在一些实施例中,软件组 件包括:网络应用服务器软件。
[0052]虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟 存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
[0053]在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环 境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资 源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件 许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门 户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算 资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据 SLA预测的对云计算资源未来需求提供预先安排和供应。
[0054]工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作 负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提 供;数据分析处理;交易处理;以及根据本发的功能(参见功能框66a),如下面在本具体实施 方式部分中的以下子部分中详细讨论的那样。
[0055] Π .实例实施例
[0056]图4是示出根据本发明的方法的流程图250。图5示出用于执行流程图250的至少某 些方法步骤的程序300。现在将通过以下段落的过程,并且广泛参考图4(针对方法步骤框) 和图5(针对软件框),讨论该方法和关联的软件。其中可以存储图5的程序300的一个物理位 置在存储装置框60a (参见图3)中。
[0057]处理在步骤S255开始,其中供应VM模块("mod")302供应封装的VM映像(未单独示 出),包括软件应用(在附图中未示出)。在该实例中,软件应用称为"电子表格程序"或简称 为"SS程序"。供应其中具有SS程序的封装的VM映像,以便作为VM设备(未单独示出)在计算 机系统12(参见图1)上运行。在该实例中,电子表格程序在其代码(是正在运行的VM设备的 一部分)中包括某些软件资产管理数据,例如常规SAM签名。但是,在该实施例中,不使用该 常规SAM数据,因为它不允许资产管理如所讨论的方法提供的那样可靠。下面在本具体实施 方式部分的进一步评论和/或实施例子部分的第一段中更详细讨论在VM设备上下文中使用 常规SAM数据的潜在问题。
[0058]处理继续到步骤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设备和程序可以在同一物理计算机上。
[0059]处理继续到步骤S262,其中匹配模块306判定在步骤S260收集的描述符代码集是 否与VM描述符/软件映射表的任何行相匹配。在该实例中,存储在匹配模块306中的VM描述 符/软件映射表如下所示:
[0061]在该实施例中,按照名称标识软件应用。备选地,给定VM描述符集的软件应用(多 个)可以对应于软件签名(例如通常与常规SAM代理软件一起使用的预定SAM软件签名)。如 可以从上表中看到的,代码"ΑΒΓ (没有第二VM描述符代码)不与VM描述符/软件映射表的任 何行的VM描述符代码集部分相匹配。因为没有匹配,所以该实例的处理将继续(如下面讨论 的那样)步骤S270。
[0062]但是,假设在步骤S260收集的VM描述符集与该表的一个行之间存在匹配。如果发 生这种情况,则该表的第三和第四列将揭示在步骤S255供应的VM设备中包括的软件应用的 身份。在这种情况下,处理将从步骤S262继续到步骤S265,其中资产管理模块308将执行一 个或多个资产管理相关的活动(例如基于新供应的VM设备的电子表格程序的许可付款)。 [0063]如上所述,在该实例中,由于在所述VM描述符/软件映射表中没有VM描述符集匹 配,因此处理从步骤S262继续到步骤S270,其中维护软件表模块310判定是否应该更新所述 VM描述符/软件映射表以便包括新VM描述符集的新行。在该实例中,模块310自动查询计算 机12(参见图1)(即,新供应的虚拟设备的主机),以便确定新供应的VM设备中包括什么软件 应用。备选地,可以以其它方式(例如通过人为干预)确定新供应的VM设备的软件应用的身 份。在某些实施例中,在新供应的VM设备中运行的电子表格程序的SAM数据可以用于该软件 应用确定。
[0064]在该实例中,确定新供应的VM设备上的软件限于单个应用,其称为电子表格程序, 如上面在步骤S255的讨论中描述的那样。事实证明,这是新供应的虚拟设备第十次返回VM 描述符集"ABF"(唯一),并且所有这十次,VM设备的软件都被标识为"电子表格程序"(唯 一)。在该实例中,当从VM描述符/软件映射表中缺失的VM描述符集被发现十次,并且所有这 十次,VM描述符集都与同一组的软件应用(多个)关联(即,计数器变量达到阈值10)时,则模 块310向VM描述符/软件映射表中添加一个行。可以使用其它值作为阈值,并且某些实施例 甚至可以将该阈值设置为低至一(1),从而意味着每次检测到一组新VM描述符代码时目录 都改变。本【具体实施方式】部分的下一个子部分将讨论本发明的某些实施例如何通过在"原 始清单"中放置不匹配条目来实现目录更新。
[0065]相应地,在其中恰好第十次遇到VM描述符集"ABF"的该实例中,向模块308的VM描 述符/软件映射表中添加一个行,如下所示:
[0067] III.进一步评论和/或实施例
[0068]本发明的某些实施例认识到难以有效管理作为封装的VM映像提供并且作为虚拟 设备安装的软件的许可,原因可以包括:(i)可能不能在由SAM(软件资产管理)代理管理的 系统上部署虚拟设备,因为此类映像通常禁止安装其它软件;(ii)可能具有在单个VM映像 中操作的多个VM;和/或(iii)由于持续删除和/或添加新服务器,在VM环境中操作的VM数量 可能不断地改变。
[0069] 本发明的某些实施例可以包括以下一个或多个特性、特征和/或优点:(i)使用VM 描述符和/或模式执行涉及软件应用的资产管理相关的功能,这些软件应用包括在封装VM 包中和/或作为VM虚拟设备的一部分运行(参见下面【具体实施方式】部分的定义子部分中的 相关"资产管理"的定义使用开放虚拟格式(OVF)VM描述符和/或模式执行涉及软件 应用的资产管理功能,这些软件应用包括在封装VM包中和/或作为VM虚拟设备的一部分运 行;(iii)使用VM描述符作为软件签名和/或将VM描述符映射到预先存在的软件签名(例如, 预先存在的SAM软件签名);和/或(iv)使用原始数据获得签名(例如,存在于封装的VM映像 中的软件应用的SAM签名),从而既不使用VM映像也不使用VM设备插装。这种使用VM描述符 进行软件资产管理的方法使能有效管理基于VM的软件设备的软件发现和许可。
[0070] 现在将在以下段落中讨论基于VM描述符执行软件资产管理的方法的一个实施例。 [0071 ]操作A:根据本发明的该特定实施例的SAM工具从VM管理器程序收集所有供应的虚 拟设备的VM描述符。例如,反映有关在网络计算机系统(在此有时称为"环境")中运行的虚 拟设备之一的供应商、产品和版本的已存储信息的一组VM描述符(具体地说OVF描述符)可 以如下所示:
[0072] <ProductSection>
[0073] <Info>Information about the installed software</Info>
[0074] <Product>V-Sherbet Manager</Product>
[0075] <Vendor>ABC Products,Inc.</Vendor>
[0076] <Version>5.5.〇-1317534</Version>
[0077] <ProductUrl>http://www.abcproducts. com/products/vsherbet-
[0078] manager</ProductUrl>
[0079] <VendorUrl>http://www.abcproducts.com</VendorUrl>
[0080] </ProductSection>
[0081 ]这是SAM工具通过VM管理器访问的VM描述符信息的一部分。如上所述,OVF提供许 多其它描述符(分成诸如磁盘、网络、资源、产品、EULA法律条款之类的部分),这些描述符可 以用于根据本发明的不同实施例的资产管理目的。
[0082] 操作B:在操作A的收集之后,将所收集的描述符与新类型的软件签名相比较。签名 定义为描述符(多个)和模式(多个)列表,这些描述符和模式需要被匹配(例如,具有给定精 确值或正则表达式(例如,5.5 I 5.5.*)的供应商、产品、版本字段)。在该实例中,将列表元素 组合成逻辑表达式,如下所示:
[0083] ProductSection\Product equals〃vSherbet Manager Standard"
[0084] AND
[0085] ProductSection\Vendor contains^ABC*^
[0086] AND
[0087] ProductSection\Version contains〃5.5|5.5·*〃
[0088] OR
[0089] EuIaSection\Info contains^vSherbet Manager 5.5氺Standard Edition License agreement"
[0090] OR
[0091] ANY contains"vSherbet Manager 5.5*Standard*"
[0092] 操作C:如果签名匹配,则SAM工具报告发现的软件和VM机器标识符(在该实例中, 网络地址)。
[0093] 操作D:如果签名不匹配,则将不匹配的描述符(在此有时称为"不匹配描述符")报 告为原始清单数据,如ProductSection、EulaSection等。在该实施例中,该信息将被发送到 SAM工具。备选地,SAM工具本身可以扩展以便处理VM描述符-SAM软件签名匹配"原始清单数 据"和不匹配的VM描述符。
[0094] 操作E:将来自环境中多个用户的相同条目分组并且提供给SAM管理员(在该实施 例中,SAM管理员是人)AAM管理员基于从整个环境中收集的相同条目的数量,批准在由操 作D处的原始清单描述符提供的相同不匹配条目中标识的供应商、软件和版本。在该实施例 中,SAM管理人员使用她的专业判断和/或独立研究,确定在更新软件目录之前多少个相同 不匹配条目必须在"原始清单"中。
[0095] 操作F:在SAM管理人员批准之后,使用收集的原始清单数据自动创建适合于与SAM 一起使用的软件发现签名。此自动软件签名生成的一个实例如下所示:
[0096] VMl OVF描述符代码:
[0097] <ProductSection>
[0098] <Product>My ERP Solution</Product>
[0099] <Vendor>ERP Software Vendor</Vendor>
[0100] <Version>5.5.0</Version>
[0101] </ProductSection>
[0102] VM2 OVF描述符代码:
[0103] <ProductSection>
[0104] <Product>My ERP Solution</Product>
[0105] <Vendor>ERP Software Vendor</Vendor>
[0106] <Version>5.5.3</Version>
[0107] </ProductSection>
[0108] VM3 OVF描述符代码:
[0109] <ProductSection>
[0110] <Product>My ERP Solution</Product>
[0111] <Vendor>ERP Software Vendor</Vendor>
[0112] <Version>5.6.0</Version>
[0113] </ProductSection>
[0114] 本发明的该实施例使用机器逻辑将VM描述符数据转换成SAM软件签名字符串数 据,如下所示:
[0115] ERP Software Vendor;My ERP Solution;5.5->VMl,VM2
[0116] ERP Software Vendor;My ERP Solution;5.6_>VM3
[0117] 在该实施例中,SAM管理人员必须在将SAM软件签名字符串数据添加到目录之前批 准该SAM软件签名字符串数据。在该实施例中,SAM管理人员还可以对最初由机器逻辑自动 生成的SAM数据进行修改。这样,所讨论的实施例自动创建和/或维护ISV软件目录,该目录 往往非常适合于客户环境。
[0118] 本发明的某些实施例可以包括处理VM管理器数据方面的一个或多个改进,如下所 示:(i)跳过/忽略具有已部署并正在运行的SAM代理的机器(例如,供应的机器默认具有SAM 代理);和/或(i i)当VM未被识别或者原始清单数据未提供足够级别的细节时,建议安装SAM 解决方案代理(深度发现需要的所有子组件和特性,即实现高级补丁 /许可管理)。
[0119] IV.定义
[0120] 本发明:不应被视为以下绝对指示:术语"本发明"描述的主题由提交的权利要求 包括,或者由可以最终在专利诉讼之后发布的权利要求包括;尽管术语"本发明"用于帮助 读者大概理解在此被信任的那些公开可以是新的,但如使用术语"本发明"指示的,这种理 解是暂定和临时的,并且随着相关信息的发展和权利要求的潜在修改而在专利诉讼过程中 有所变化。
[0121]实施例:参见上面的"本发明"定义一类似注意事项适用于术语"实施例"。
[0122] 和/或:可兼或;例如,A、B "和/或" C表示A或B或C中的至少一个为真并且适用。
[0123] 模块/子模块:以操作方式工作以便执行某种功能的任何硬件、固件和/或软件组, 而不考虑模块是否:(i)在单个局部邻近中;(ii)在广泛区域内分布;(iii)在较大软件代码 块中的单个邻近中; (iv)位于单个软件代码块中;(v)位于单个存储设备、存储器或介质中; (V i)机械连接;(V i i)电连接;和/或(V i i i)以数据通信连接。
[0124] 计算机:具有显著数据处理和/或机器可读指令读取能力的任何设备,包括但不限 于:台式计算机、大型计算机、膝上型计算机、基于现场可编程门阵列(FPGA)的设备、智能电 话、个人数字助理(PDA)、本体安装或插入的计算机、嵌入式设备类型计算机、基于专用集成 电路(ASIC)的设备。
[0125] 资产管理(或资产管理相关):包括但不一定限于:管理和优化软件购买(即,许可 或销售);执行许可或销售付款相关活动(例如确定由于不同许可方导致的许可付款金额); 部署;维护;使用和处置;设计有效管理、控制和保护软件资产需要的基础架构和过程;降低 信息技术(IT)成本;限制涉及软件的所有权和使用的商业和法律风险;和/或最大化IT(信 息技术)响应性和最终用户生产力。
【主权项】
1. 一种方法,包括: 收集一个或多个虚拟机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. 如权利要求1所述的方法,还包括: 对于所述一个或多个VM描述符集的每个VM描述符集,如果没有匹配,则收集不匹配的 VM描述符集作为原始清单以便用于修改所述VM描述符集/软件应用匹配数据集。7. -种计算机系统,包括: 处理器组,其包括一个或多个处理器;以及 计算机可读存储介质; 其中: 对所述处理器组进行构造、定位、连接和/或编程,以便运行存储在所述计算机可读存 储介质上的程序指令;以及 所述程序指令包括: 第一程序指令,其被编程为收集一个或多个虚拟机VM描述符集,其中每个VM描述符集 包括一个或多个VM描述符并对应于以下项之一:VM设备或封装的VM映像; 第二程序指令,其被编程为对于每个VM描述符集,判定是否存在与VM描述符集/软件应 用映射数据集中的条目的匹配;以及 第三程序指令,其被编程为对于每个VM描述符集,如果存在匹配,则基于所述VM描述符 集/软件应用映射数据集中的相应匹配条目,确定与该VM描述符集对应的所述VM设备或封 装的VM映像中的一个或多个软件应用的身份。8. 如权利要求7所述的系统,其中所述一个或多个VM描述符集的一个或多个VM描述符 是开放虚拟化格式OVM型VM描述符。9. 如权利要求7所述的系统,其中所述VM描述符集/软件应用映射数据集使用软件资产 管理SAM软件签名来标识软件应用。10. 如权利要求7所述的系统,其中所述介质进一步在其上存储: 第四程序指令,其被编程为至少部分地基于所述VM设备和/或封装的VM映像中的所述 一个或多个软件应用的身份,执行第一资产管理相关的活动。11. 如权利要求10所述的系统,其中所述第一资产管理相关的活动是计算使用所标识 的一个或多个软件应用的许可付款。12. 如权利要求7所述的系统,其中所述介质进一步在其上存储: 第五程序指令,对于所述一个或多个VM描述符集的每个VM描述符集,如果没有匹配,则 所述第五程序指令被编程为收集不匹配的VM描述符集作为原始清单以便用于修改所述VM 描述符集/软件应用匹配数据集。
【文档编号】G06F21/10GK105938525SQ201610121352
【公开日】2016年9月14日
【申请日】2016年3月3日
【发明人】P·戈采克, P·卡尼亚, M·拉本斯基, M·帕卢赫, T·斯托帕, A·K·泽祖拉
【申请人】国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1