用相关的产品信息填充软件目录的方法和系统的制作方法

文档序号:6476797阅读:188来源:国知局
专利名称:用相关的产品信息填充软件目录的方法和系统的制作方法
技术领域
本发明涉及数据处理领域。更具体地,本发明涉及在分布式数 据处理系统中检须'J软件产品的存在'性的方法和系统。本发明尤其解 决了知识收集和目录填充动作。本发明进一步涉及一种用于执行该 方法的计算机程序和一种具体化该程序的产品。而且,本发明还涉 及一种相应的装置。
背景技术
操作于系统管理领域的软件应用程序,其功能基于 一 个预先定
义的信息集。以软件清单产品为例,例如国际商业机器公司的IBM Tivoli配置管理器UTCM) , ITCM需要将文件系统中的某个文件 的存在与某一特定产品相关联。该关联信息存储于应用存储库中。 另一个例子是许可管理产品,如国际商业机器公司的IBM Tivoli 许可管理器(ITLM),其中关于实际程序执行(myProgram.exe)的 信息需要与预定义的产品相关联。
另 一个例子是应用监控规范,其中管理系统用于监控运行在服 务器上的应用的状态。在这种情况下,管理系统需要逐个了解每一 个被监控应用的接口 ,因为每一个应用有其自己的方法去检测应用 状态,以及有其自己的方法去启动和停止执行。
在面对大规模环境时,此预定义信息集的建立和维护将成为受 影响的系统管理应用程序的一个限制因素。
该信息需要从开发出服从管理规范的应用的软件开发组收集。 然后,该信息需要被管理并存入通常被称为知识库的数据库中。最 后,需要将该信息从KB中提取出来,以形成可供系统管理应用使 用的形式。通常,该知识库是目录的形式,其包含软件产品(例如,产品 的名字和版本)的定义和相关的签名。软件目录列出可在被管理系
统中找到的所有已知产品;每一个产品均可由指示其运行的一个和 多个可执行模块所识别。作为一个例子,以许可管理产品为例,工 作于后台的许可代理检测已运行的可执行模块;许可代理然后通过 软件目录识别相应的产品。目录需要被"填充",而这通常是一个 高耗费的行为。
现有的几个IT管理解决方案执行对已安装软件的发现是出于编 目或许可的目的。 一种显著有效的软件发现的方式是利用每一个必 须被发现产品中先前已定义的签名。术语签名是指一种软件发现应 用可以用来确定给定计算机中软件产品的 一个或多个实例的存在的 任何类型信息。签名的一个典型且特别简单的实现是这样的,其指 定关键应用文件的文件名和文件大小。在这种情况下,检测具有匹 配特征的文件将使签名被匹配,从而指示相关的软件产品被安装。 基于签名进行软件发现的方法的一个优势在于签名的匹配可由管 理应用关联到被发现的实体(软件产品)的精确定义(名字、版本 等)。因此,使用基于签名发现已安装软件的软件清单应用需要访 问产品和签名的定义的全面知识库。该方法的挑战在于保持其内容 在以下方面最新
-不断出现的可用的新软件产品;
-维持对已有软件产品的更新。
知识库的价值与其内容的覆盖和精确度直接成正比,因此,问 题在于如何以可承受的成本保证覆盖和精确度。
因此,非常需要提出一种改进的方法来帮助降低知识库管理的 开销,同时引入一种可升级的有效方法,其能够处理在运行时所需 要的信息。
本发明的 一 个目的在于提供 一 种减轻上述缺点的方法和系统。 发明内容本发明提出一种用软件产品标识符填充软件目录的方法,该软 件产品标识符对应于多个数据处理系统中被发现的软件产品,该方
法包含步骤扫描多个数据处理系统的文件系统,以检测指示安装 在数据处理系统中的产品的一组文件的出现,这一组文件至少包含 一个清单文件,该清单文件包含关于至少一个引用软件产品的信息; 用所述清单文件中的信息确定与所述引用产品相关的产品签名;在 软件目录中存储该签名和关联的软件产品标识符。
本发明的另 一个方面提供一种用于执行上述方法的计算机程序。
本发明的又一方面提供一种具体化此程序的程序产品。 此外,本发明的另一个方面提供一种用于实施上述方法的相应 装置。
本发明的新特征阐述在所附的权利要求书中。不过,本发明自 身以及本发明的这些和其他相关目的和有益效果将结合附图、通过 参考以下详细的描述而得到最好的理解。


图1为可应用本发明方法的数据处理系统的示意框图2示出了系统中通用计算机的功能模块;
图3为可实现该方法的主要部件;以及
图4示出了涉及该方法示意性实现的动作流的图示。
具体实施例方式
具体参考图l,其示出了数据处理系统100,该数据处理系统100 具有分布式架构,用于实现软件清单系统。系统100中包含多个端 点105,这些端点105被归组至不同的集合。端点105可以是工作站、 服务器、笔记本电脑以及更通用地是在其中安装有多个软件产品的 任何类型的数据处理系统。端点105通过网络110 (例如LAN)彼 此相连。端点105的不同集合通过网络120 (例如基于因特网)与
6远程系统管理服务器115进行通信;系统管理服务器115实现中央储存库,系统100的清单数据在其中被收集和管理。如前所述,本发明可以实施于许可管理系统中,不过更普遍地,可以实施于需要编目活动的任何系统中(例如,在盘点了每个工作站的当前状态之后,需要将补丁或增强发布至多个工作站的软件部署系统);另一可能使用是用在配置管理系统内。
参见图2,系统中的通用计算机(工作站、本地服务器或系统管理服务器)利用150指示。计算机150由几个并联到系统总线153的单元构成。具体地, 一个或多个微处理器(jaP)156控制计算机150的操作;RAM 159由微处理器156直接用作工作存储器,ROM 162存储用于引导计算机150的基本代码。外设单元聚集于本地总线165周围(借助于各自的接口)。特别地,大容量存储器包括硬盘168和用于读取CD-ROM 174的驱动器171。此外,计算才几150中包括输入设备177(例如键盘、鼠标)和输出设备180 (例如显示器、打印机)。网络接口卡(NIC) 183用于将计算机150连接到网络。桥接单元186是系统总线153与本地总线165之间的接口。每一个微处理器156和桥接单元186可作为主代理,以请求接入系统总线15 3从而进行信息传输。仲裁器18 9按互斥方式来管理对接入系统总线153进行的授权。
在系统具有不同拓朴或基于其他网络的情况下,类似的考虑也是适用的。备选地,计算机具有不同结构、包含等价单元或由其他数据处理实体(例如PDA、移动电话等)组成。无"i仑如何,本发明的解决方案也适用于在这样的系统中使用,其中工作站的控制是分散的,或者甚至适用于在单机计算机中使用。
现在参见图3,可用于实施本发明优选实施例的方法的主要部件总体上标记识为300。典型地,信息(程序和数据)被存储于不同计算机的硬盘中,并在程序运行时被加载到相应的工作存储器中。
系统管理服务器115控制和执行多个端点105上的管理操作,这些端点105通过通信网络相连。端点105的集合包括服务器、工作站、台式机或笔记本,其中出于扩大产品定义和相关签名的可用库以及发现软件产品的目的,对安装于其上的软件进行分析。
系统管理服务器115控制在互连端点105的潜在大型集合上的管理操作,从而避免需要在物理上访问每一台计算机。该服务器和底层系统管理基础设施用于对所管理的计算机执行扫描操作,以收集分析应用所需的原始数据;并用于将扫描器在本地产生的数据移至中央文件服务器301,其中这些数据可存储到服务器的文件系统中。扫描操作可在所有被管理的端点105或特定子集上执行,后者可能由它们的角色(服务器、工作站、台式机或笔记本)或由运行的操作系统来决定。
根据本发明的一优选实施例,采用IBM软件签名分析工具实施上述数据收集方法;不过,本领域技术人员可以理解,产生类似结果的其他方法可以替代使用。该方法包含一种机制,该机制帮助增加关于整体系统的知识,而无需对系统本身造成大的开销。本发明方法基于这一概念,即,被管理应用(由系统管理应用管理的应用)使用应用管理清单文件表明其管理接口。图3中的框105整体代表多个目标105,然而,该图中仅示出了一些清单文件,以便示出清单文件的关系和可能的交叉引用。
系统管理应用将在安装有被管理应用的系统的运行时检测清单文件,并提取包括在该清单文件中的信息。 一个清单文件可以指向另一个(或多个)清单文件,这一个或多个清单文件继而又可以指向一个或多个清单文件。
清单文件可以采取XML文档的形式,其不仅包含公知标签(如产品名称、供应商名称、版本的详细信息、il8n信息)的集合,而且还包含控制命令(启动/停止接口 )、生命周期信息(用于下载产品的更新版本的统一资源定位符等)。
以下为清单文件的示例<ProductManifest> <ID>
<ProductName>IBM Tivoli License Compliance Manager</ProductName>
<Version>2</Version> <Release>3</Release> <Modification>l</Modification^ <Fixpack>l</Fixpack> <VendorName>IBM</VendorName>
<VendorHome>Program Files\IBM</Vendorflome>
<ProductId>l</ProductId> </ID> <Monitor>
<SignatureExeFile;>
<FileName>TLM.exe</FileName> <FileSize>15000</FileSize>
</SignatureExeFile> </Monitor> <!LifeCycle>
<DownloacUJRL>www.ibm.com/support/ITLCM</DownloadURL> </LifeCycle> <ManagentCommand>
<Stai:tCominad>srvsta;rt</StartCommad>
<StopCommand>srvstop</StopCommanci>
<MonitorCoiranad>srvcheck</MonitorCommad> </ManagentCommanci> <RelatedProducts>
<product>
<Productld>lBM WebSphere Application Server</ProciuctId> <ProductLocation>Pi:ogram Files\IBM\WebSpliere\</ProciuctLoc:atiori> </product> </RelatedProducts> <SameVendor:>
<ProductId>Program Files\IBM\HTTP Server\ProductManifest.xml</ProductId>
<Product Id>Prograni Files\IBM\DB2\ProductManifest. >onl</ProductId>
</SameVendor> </ProductManifest>
清单文件还可以为需要在不确定情况下做出选择的客户提供排
名支持。
清单文件也可以引用以某种方式与当前产品相关的其他产品清 单文件,在这种情况下,代理可以从汇总目录中选择这些相关产品 的信息。例如 一个产品的清单文件中可以包含对同一供应商所提供的其他产品的清单文件的引用。
这样,按照上面的例子,ITLM产品就可以在标准应用操作期间 检测所引用的应用的存在,并更新软件目录(知识库)。发现所需 要的信息位于机器中,从而避免不必要的关联性工作。
应用管理清单中可以进一步包含这样的信息,该信息是关于为 了将被管理应用视为正在运行,哪个文件必须在操作系统中执行的 信息,和为了启动或停止被管理应用,管理应用可以发布的命令的。
本发明的目标在于使用所收集的信息填充知识库307。这样,知 识库便利用软件应用的正常动作得以扩充。采用本发明方法,通过 利用清单文件中所包含的对其他相关应用和清单文件的引用,无需 专门过程或手动过程,便可执行对知识库的更为有效的更新。从选 中的计算机收集的数据存储于中央文件服务器的文件系统中,分析 应用303可以从中访问数据。分析应用303执行数据转换和分析, 这将导致新产品定义及相关签名的创建。
分析应用303将上述收集的数据与包含在操作系统注册表305 中的注册信息相结合。然后,该结合的产品定义及相关签名被生成 并存储于软件知识库307中。软件知识库307是保存有合并的产品 定义和签名集的数据库。该数据库最初可以是空的,或者也可以利 用软件签名的提供商创建的数据进行填充。由分析应用产生的新定 义可被合并于此凄t据库中。
现在参见图4,方法400表示根据本发明一实施例产生产品签名 的逻辑流程。该方法从黑色启动圏401开始。继续执行块403,从各 端点105收集数据。在步骤405,通过已有的发现过程在正常操作期 间检测清单文件,其中已有的发现过程例如是,指向已有的清单文 件的公知操作系统注册表关键字或者查找与标准相匹配的预先确定 的清单文件名的文件系统扫描。如前所述,清单文件包含关于被检 测软件产品的信息和/或到另 一个软件产品的引用,该另 一个软件产 品可通过某种方式关联到被检测软件产品。 一个清单文件也可以当作另一个清单文件(如图3所示)的交叉引用的结果而被检测。在 步骤407,判断所引用的软件产品是否已被系统所获知,即,根据本 发明 一优选实施例,涉及该引用的软件产品的条目是否能在知识库 307中找到。如果软件产品已被列出,无需执行进一步动作,且控制 返回步骤403。作为一个备选实施例,可以校验知识库中所包含的信 息是否完整,或者它是否可以与清单文件中的内容相合并。如果步 骤407的判断结果为否,则本方法利用该清单文件中包含的信息。 根据本发明的一个实施例,执行另一个检查(409 ),来校验所引用 的软件产品在被监控系统(例如,在多个的端点105)上的存在。如 果存在,则利用清单文件所提供的信息更新知识库307 (步骤411 ), 否则它将被保存以供未来使用(步骤413)。 一个可能的备选方案是 在任何情况下都更新知识库307,如此,409中的判断就不是必须的。 或者清单文件中所包含的信息可以与采用传统方法从系统中收集的 其他信息合并在一起。
在程序和数据以不同方式构造时、在提供了其他模块和功能时, 或者在信息被存储于等价的存储结构中时,类似考虑也是适用的。 如果方法包含等价或附加步骤,类似考虑也是适用的。 备选地,取决于系统所安装的操作系统,例如,还可以采用不 同的方法以从被检查的端点获取信息。例如可行的是,清单文件在 预先确定的时间或者以预先确定的规则向系统管理应用"表明"它 们的存在。
尽管以上参考优选实施例以 一定的详细程度描述了本发明,但 可以理解的是,各种在形式或细节上的改变以及其他实施例是可能 的。特别地,采用相同方式执行相同的功能以获取相同结果的那些 元件和/或方法步骤的所有组合,显然均应包含在本发明的保护范围 之内。
在任何情况下,本发明方法可用于发现、盘点或测定任何种类 的软件产品(诸如,视频游戏、多媒体作品等)。
另外,程序可以分布在任何其他计算机可读介质(诸如, 一个
ii或多个DVD)上;备选地,程序可以预先加载至硬盘、传输给计算 机、广播或以可直接载入计算机的工作存储器中的任何其他形式来 提供。
此外,对本领域技术人员而言很显然地,提供进一步有益效果 的附加特征对本发明的实现不是至关重要的,并且,可被省略或被 其他不同的特征所替代。
在任何情况下,本发明所提供的方法同样适用于采同硬件结构 (例如,集成于半导体材料的芯片中)实现,或采用软件和硬件相 结合的方式实现。
自然地,为适应当地或特殊的要求,本领域技术人员可对上述 技术方案进行多种修改和改造,然而,这些都应包含在本发明如下 所述的权利要求的保护范围之内。
权利要求
1.一种用软件产品标识符填充软件目录方法,该软件产品标识符对应于多个数据处理系统上被发现的软件产品,该方法包含步骤扫描所述多个数据处理系统的文件系统,以检测一组文件的存在,这组文件指示产品被安装在数据处理系统上,这组文件包含至少一个清单文件,该清单文件包含关于至少一个引用的软件产品的信息;用所述清单文件中的信息,确定与所引用的产品相关联的产品签名;在软件目录中存储该签名和相关联的软件产品标识符。
2. 如权利要求l所述的方法,其中所述清单文件包含XML文档。
3. 如上述任意一项权利要求所述的方法,其中所述至少一个引 用的软件产品包括涉及被检测的一组文件的软件产品。
4. 如上述任意一项权利要求所述的方法,其中所述至少一个引 用的软件产品包括与涉及被检测的 一组文件的产品不同的软件产口P o
5. 如上述任意一项权利要求所述的方法,其中所述至少一个清 单文件包括到另 一清单文件的链接。
6. 如上述任意一项权利要求所述的方法,其中所述签名包括与 对应的 一组文件中的文件之一相关联的文件标识符。
7. 如上述任意一项权利要求所述的方法,其中将所述签名与软 件产品标识符进行关联是基于从所述对应的一组文件中的文件提取 的信息。
8. —种用于在多个数据处理系统中盘点软件产品的方法,其采 用上述任意一项权利要求所述的方法。
9. 一种计算机程序,当该计算机程序被数据处理系统执行时, 用于执行上述任意一项权利要求所述的方法。
10. —种系统,包含用于执行如权利要求1至8任一项所述方法 中的步骤的装置。
11. 一种部署于数据处理系统中的服务,用于执行如权利要求l 至8任一项所述的方法。
全文摘要
一种填充软件应用程序中的软件目录的方法和系统,该软件应用程序用于监控软件产品在多个计算机中的存在性。本发明所提出方法的目标在于仅需利用管理员提供的少量人工干预,即可实现对软件目录的填充。本发明降低了产生和维护一个全面的知识库(即,目录)的成本,该知识库中包含软件产品的定义及相关的签名的定义。通过使用一些特殊的文件(例如XML文档件)的过程,获取关于软件产品及其相关签名的信息,这些特殊的文件中包含信息和/或指向其他产品的指针。
文档编号G06Q30/00GK101652790SQ200880010831
公开日2010年2月17日 申请日期2008年3月4日 优先权日2007年4月3日
发明者A·塞科曼迪, L·皮切蒂, L·迪里塔, M·塞奇, S·玛克莱兰 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1