用于自动推荐更新方法的系统和方法

文档序号:6601254阅读:184来源:国知局
专利名称:用于自动推荐更新方法的系统和方法
技术领域
本发明主题的实施例一般涉及计算机领域,并且更具体地,涉及自动推荐用于可 定制软件产品的更新方法。
背景技术
一些软件产品(如IBM Tivoli Monitoring)可以由用户定制以适合用户的独 特环境。软件产品的定制范围可以从新配置参数的指定到完全重写代码模块。更新定制的 软件产品比更新开箱即用(out-of-the-box)配置的软件更加复杂。软件厂商典型地提供 用于更新开箱即用配置的软件产品的工具包,并且还可能能够管理一定级别的用户定制。

发明内容
实施例包括贯注于比较安装的软件产品与软件产品的开箱即用配置的方法。安装 的软件产品包括在电子设备上安装的一组一个或更多安装的模块。计算便利性值,其代表 使用用于更新安装的软件产品的自动更新工具包的便利性。计算差异值,其代表一个或更 多安装的模块相对于软件产品的开箱即用配置的差异。便利性值和差异值存储在机器可读 介质中。至少部分基于便利性值和差异值生成用于更新安装的软件产品的推荐方法。


通过参照附图,本实施例可能更好理解,并且使得多个目的、特征和优点对本领域 的技术人员显而易见。图1是自动推荐用于软件产品的更新方法的示例概念图。图2是描述用于计算便利性和差异的示例操作的流程图。图3是描述用于基于便利性和差异生成推荐方法的示例操作的流程图。图4是描述示例计算机系统。
具体实施例方式以下描述包括体现本发明主题的技术的示例性系统、方法、技术、指令序列和计算 机程序产品。然而,应该理解可以实践描述的实施例而没有这些特定细节。在其它情况下, 没有详细示出公知的指令实例、协议、结构和技术,以便不使描述模糊。软件厂商提供用于将定制的软件产品自动更新到新版本的工具包。然而,软件产 品的定制的级别可能减少自动更新的效率,因为工具包可能不能完全将代码或模块的深度 定制单元(例如,功能、过程、方法、代码块、代码段、类实例等)移植为新的版本。当在深度 定制环境上运行自动更新工具包之后更新失败时,浪费大量时间。在一些情况下,环境可能 包括一些深度定制模块和其它少许未定制模块(“混合环境”)。在混合环境中,使用自动 更新工具包的效率可能是不清楚的。例如,实现为自动更新工具包的一部分的更新分析单 元可能包括用于分析定制软件产品并且对使用自动更新工具包计算便利性的功能性。更新分析单元基于便利性自动生成推荐的更新方法。推荐的更新方法识别为使用更新工具包的 自动更新推荐的软件产品模块。图1是自动推荐用于软件产品的更新方法的示例概念图。在阶段A,更新分析单 元105确定软件产品的安装的模块101,并且比较安装的模块101与代表开箱即用配置的 标准模块(例如,具有默认参数和脚本的模块)。软件产品可以安装在单个计算机上、网络 上、服务器上等。模块的示例包括脚本、类、代码段等。更新分析单元105通过执行系统扫 描本身或从预装的软件模块检索目录(inventory)信息,获得安装的产品的软件目录,所 述预装的软件模块跟踪网络中一个或更多系统上的软件目录。这种目录操作对于本领域 的技术人员是公知的。跟踪软件目录的软件产品包括IBM Tivoli Inventory.IBM Tivoli Configuration Manager 禾口 HP Asset MariBger0在阶段B,更新分析单元105计算每个安装的模块和对应的标准模块之间的距离。
该距离量化安装的模块与对应标准模块偏离多少。还没有定制的安装的模块101具有0的
距离。在该示例中,距离d使用随后参照图2讨论的等式1计算。 在阶段C,更新分析单元105基于每个安装的模块的个体距离计算平均距离d。平 均距离根据随后参照图2更详细描述的等式2计算。 在阶段D,更新分析单元105基于计算的平均距离,确定使用自动更新工具包的便 利性k。便利性是作为最大便利性(即,对于开箱即用配置)和平均距离之间的差别的标量 值(scalar value)。等式3表达便利性k。 在阶段Ε,更新分析单元105计算差异(variance) Var (d)。该差异代表软件产品 的安装的模块中定制的分布。等式4表达该差异Var (d)。 在阶段F,更新分析单元105基于便利性和差异,经由计算机系统上的用户界面推 荐更新方法给信息技术人员107。推荐的方法是完全自动更新、完全手动更新和自动和手动 更新的组合之一。此外,当推荐混合方法时,推荐的方法识别用于自动更新的模块和用于手 动更新的模块。信息技术人员107使用该推荐来配置自动更新工具包。例如,信息技术人 员107启动自动更新工具包,并且选择用于定制的更新安装的选项。自动更新工具包显示 要安装的模块的列表。信息技术人员107可以使用各种用户界面技术(例如,不选中紧邻 模块名称的复选框)从该列表移除要手动更新的模块。更新分析单元105可以独立于自动更新工具包。例如,软件厂商可以提供能够分 析多个不同软件产品的更新分析工具。更新分析单元105可以是用于自动更新工具包的插件(plug-in)。例如,自动更新工具包在开始更新处理之前分析安装的模块101以推荐更新方法。此外,更新分析单元105可能能够基于推荐的更新方法配置和/或调用自动更新工 具包以更新安装的模块。图2是描述用于计算便利性和差异的示例操作的流程图。流程在块201开始,其中 确定软件产品的安装的模块。安装的模块安装在电子设备(例如,计算机、服务器等)上, 并且可以在网络上分发。以下示例基于IBM TivoliMonitoring(ITM)。ITM管理包括操作 系统、数据库和服务器的信息技术(IT)基础设施。在块203,开始用于每个安装的模块的循环。在块205,安装的模块与开箱即用配置的标准模块比较。在块206,确定安装的模块是否已经定制。如果安装的模块已经定制,则流程在块 207继续。如果安装的模块还没有定制,则流程在块208继续。在块207,计算安装的模块与对应的标准模块之间的距离。因为还没有定制的安装 的模块与标准模块之间的距离定义为0,所以不需要对还没有定制的安装的模块计算距离。 例如,ITM允许用户定制资源模型(RM)。RM指定资源的操作的规则,包括操作记录、性能的 级别、规格(metrics)等。资源的示例是端口、中央处理单元等。RM可以检测和校正操作错 误。每个定制的资源模块(CRM)的距离CT1通过等式1计算 距离cT1依赖于四个函数h(t)、i(p)、1(e)和m(o)。函数h (t)依赖于CRM复杂 性类。复杂性类是在更新分析单元中编码的预定级别。复杂性类基于软件厂商的经验预先 确定。等式5表示复杂性类。 等式5在该示例中,存在四个复杂性类,但是在其它示例中粒度(granularity)可能更 精细(或更粗糙)。参数q是调整参数,其可以由软件厂商或用户定义。调整参数和初始条 件在下面定义。四个复杂性类是级别A。RM用标准RM实现;通常仅添加阈值或参数,并且判定逻辑与对应标准RM 中的判定逻辑相同。级别Bi。RM判定逻辑完全重写,并且使用ITM标准库收集规格。级别B2。RM判定逻辑完全重写,并且使用从判定逻辑直接调用的特定脚本收集规 格。级别C。RM全新,判定逻辑和库已经由用户开发。随着由函数m(o)、l(e)和i (ρ)代表的定制变得越复杂,将应用到距离等式中h (t)的乘数将越接近于1。随着由函数m(o)、i(p)和1(e)代表的定制越接近标准,则应用到 h(t)的作为结果的乘数将是越小的分数乘数,因此减小h(t)的影响。该表达式记录了类复 杂性和可定制的各方面之间的关系。函数i (p)依赖于参照CRM的多个简档(profile),其中p是简档的数目。简档包 括一个或更多允许多个资源的同时监视的冊。等式6表达函数i (p)。
等式 6

当简档的数目增加时,特别是当该数目非常大时,函数渐进地向1增加。参数n和 i0是调整参数,并且Po是初始条件。函数1 (e)依赖于对参照CRM的每个简档的订户(subscriber)的数目,其中e是 订户的数目。等式7表达函数1(e)。
等式 7 当订户的数目增加时,特别是当该数目非常大时,函数渐进地向1增加。参数m和 10是调整参数,并且%是初始条件。函数m (0)依赖于CRM中资源的数目,其中o是资源的数目。等式8表达函数m (0)。
等式 8当监视的对象的数目增加时,特别是当该数目非常大时,函数渐进地向1增加。希 望m(o)具有对总的便利性的较低权重,因为对下面给出的指数1的调整参数的值。参数1 和mQ是调整参数,并且oQ是初始条件。等式的第一调整产生在等式9中表达的用于调整参数和初始条件的基(base)。n = m = 1 = 1i0 = 10 = m0 = 1p0 = e0 = o0 = 200p = q = 2等式9函数i (p)、1 (e)和m(o)对应于ITM示例。类似等式可以表现其它软件产品的各 方面的特征。可能具有与i(P)、1(e)和m(o)类似形式的、表现特定软件产品的各方面和/ 或一般软件产品的各方面的特征的一个或更多函数可以用于计算距离。一个或更多函数表 现安装的模块的可定制的各方面的特征。定制的各方面的示例包括参照定制的模块的简档 的数目、参照定制的模块的模块的数目等。在块208,用于每个安装的模块的循环结束。在块209,基于CRM的个体距离的平均计算总的距离d。例如,用等式2计算总的
距离 参数N 是安装的RM的总数。参数N。m是CRM的数目。总的距离考虑未定制的RM和CRM两者。在块211,基于总的距离计算便利性。例如,使用等式3计算便利性k。 等式3便利性表示标准环境的最大便利性和总的距离之间的差别。最大便利性是值1。 用等式3指示的k的表达式产生0和1之间的便利性值。在块213,基于CRM的个体距离的标准偏差计算差异。用函数Var(x)表示差异,其 中等式10中i!是预期值,并且0是标准偏差。u = E (x)Var (x) = E ((x-u )2) 等式10等式11表达有限总体(population)的差异Far(x) =去等式 11在该示例中,根据等式4计算差异Var (d)
等式 4差异表现定制的环境的特征,并且提供定制的环境上定制的分布的数学描述。差 异提供距平均值lo、2o或3o的间隔内的总体百分比的估计。如果可以假定正态分布, 则估计更精确。但是估计对于由于Chebyshev不等式的分布保持有效。一些实施例可能考虑分布可能不是对称的。可以计算概率分布的非对称的度量 “偏斜度(skewness)”。在多数情况下,差异足以表现分布的特征,即使分布可能不是对称 的。在计算差异和便利性之后,自动生成推荐的更新方法。推荐的更新方法的生成可 以随着实施而变化。例如,更新分析单元可以生成作为工具包的一部分的推荐的更新方法 或分开地生成推荐的更新方法。更新分析单元可以将计算的差异和便利性通信到自动更新 工具包,用于推荐的更新方法的生成。图3是描述用于基于便利性和差异生成推荐方法的示例操作的流程图。流程在块 301开始,其中确定便利性和差异。在块305,确定便利性是高或低。用于高或低便利性的阈值可以是默认值,或可以 是由更新分析单元的用户指定。如果便利性低,则流程在块307继续。如果便利性高,则流 程在块319继续。在块307,确定差异是高或低。用于高或低差异的阈值可以是默认值,或可以是由 更新分析单元的用户指定。如果差异低,则流程在块309继续。如果差异高,则流程在块 315继续。在块309,为所有安装的模块推荐自动更新工具包的使用,并且流程结束。在此情 况下,高便利性暗示定制的环境接近标准环境。低差异意味着每个安装的模块与对应的标准模块变化不大,并且自动更新工具包适于更新所有的安装的模块。如果差异确定为高,则执行块315和317。在块315,为具有阈值之下的距离的一 个或更多安装的模块推荐自动更新工具包的使用。阈值可以是默认值或由更新分析单元的 用户指定。例如,阈值可以是平均距离之上的2标准偏差。具有阈值之下的距离的安装的 模块适于由自动更新工具包更新。在块317,为具有阈值之上的距离的安装的模块推荐自动更新工具包的使用。具有 阈值之上的距离的安装的模块不适于由自动更新工具包更新。如果在块305确定便利性为低,则在块319确定差异是高或低。如果差异高,则流 程在块315继续。如果差异低,则流程在块321继续。在块321,为所有安装的模块推荐手动方法。在此情况下,低便利性暗示定制的环 境远离标准环境。低差异意味着每个安装的模块没有从对应的标准模块极大变化,低便利 性特征应用到至少大量安装的模块,并且自动更新工具包不适于更新软件产品的安装的模 块。应该理解,描述的流程图是旨在帮助理解实施例的示例,并且不应用于限制实施 例或限制权利要求的范围。实施例可以执行额外操作、更少操作、不同顺序的操作、并行的 操作和一些不同操作。例如,参照图2,用于比较安装的模块与对应的标准模块以及确定安 装的模块已经定制的操作可以并行出现。实施例可以采取完全硬件实施例、计算机存储介质中的软件实施例(包括固件、 驻留软件、微代码等)或这里可以一般地称为“电路”、“模块”或“系统”的组合软件和硬件 方面的实施例的形式。此外,发明主题的实施例可以采取在具有在介质中体现的计算机可 用的程序代码的表示的任何有形介质中体现的计算机程序产品的形式。描述的实施例可以 提供为计算机程序产品或软件,其可以包括具有在其上存储的指令的机器可读的介质,所 述指令可以用于编程计算机系统(或其他(各)电子设备)以执行根据实施例的处理(不 管目前是否描述),因为这里没有列举每个可想到的变化。机器可读的介质包括用于存储或 传输由机器(例如,计算机)可读的形式的信息(例如,软件、处理应用)的任何机制。机 器可读的介质可以包括但不限于磁存储介质(例如,软盘);光存储介质(例如,CD-ROM); 磁光存储介质;只读存储器(ROM);随机存取存储器(RAM);可擦除可编程存储器(例如, EPR0M和EEPR0M);闪存;或其他类型的适于存储电子指令的介质。此外,实施例可以在电、 光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)、或有线、无线、或其他 通信介质中体现。计算机程序产品可以存储在与一个系统相关联的计算机存储介质上,并 且通过通信网络下载到与第二系统相关联的计算机存储介质上。用于执行实施例的操作的计算机程序代码可以以一个或更多编程语言的任何组 合编写,所述编程语言包括面向对象编程语言(如Java、Smalltalk, C++等)和传统的过 程编程语言(如“C”编程语言或类似的编程语言)。程序代码可以整体地在用户的计算机 上、部分地在用户的计算机上、作为独立软件包、部分地在用户的计算机和部分地在远程计 算机、或整体地在远程计算机或服务器上执行。在后面的方案中,远程计算机可以通过任何 类型的网络(包括局域网(LAN)、个域网(PAN)或广域网(WAN))连接到用户的计算机,或可 以进行到外部计算机的连接(例如,通过使用因特网服务提供商的因特网)。图4描述示例计算机系统。计算机系统包括处理器单元401 (可能包括多个处理
9器、多核心、多节点、和/或实现多线程等)。计算机系统包括存储器407。存储器407可以是 系统存储器(例如,一个或更多高速缓存、SRAM、DRAM、零电容器RAM、双晶体管RAM、eDRAM、 EDO RAM、DDR RAM、EEPROM、NRAM、RRAM、SONOS、PRAM 等)或任何一个或更多上面已经描述 的机器可读介质的可能实现。计算机系统还包括总线403 (例如,PCI、ISA、PCI-Express、 HyperTransport 、infmiBand 、NuBus 等),网络接 口 405 (例如,ATM 接口、以太网接 口、帧中继接口、SONET接口、无线接口等)、以及(各)存储设备409 (例如,光存储、磁存储 等)。计算机系统还包括更新分析单元421,其分析安装的软件产品,以便确定使用自动更 新工具包的便利性,并且至少部分基于便利性生成推荐的更新方法。ITM和其它软件产品 可以跨越网络安装,使得安装的模块跨越网络分发。如果分发安装的模块,则更新分析单元 421经由网络接口 405访问安装的模块。上述功能的任一个可以部分地(或整体地)以硬 件和/或在处理单元401上实现。例如,可以使用专用集成电路、在处理单元401中实现的 逻辑、在外围设备或卡上的共同处理器中等实现功能。此外,实现可以包括较少或在图4中 未示出的额外组件(例如,视频卡、音频卡、额外的网络接口、外围设备等)。处理单元401、 (各)存储设备409和网络接口 405耦合到总线403。尽管示出为耦合到总线403,但是存 储器407可以耦合到处理器单元401。
尽管参照各种实现和利用描述了实施例,但是将理解这些实施例是说明性的并且 发明主题的范围不限于它们。通常,如这里描述的为可定制的软件产品自动推荐更新方法 的技术可以用与任何硬件系统或各硬件系统兼容的设备实现。许多变化、修改、添加和改进 是可能的。可以为这里描述的组件、操作或结构提供多个实例作为单个实例。最终,各种组 件、操作和数据存储之间的边界相当任意,并且特定操作在具体说明性配置的上下文中说 明。功能的其它分配可预见,并且可以落入发明主题的范围内。通常,在示例性配置中表示 为分离组件的结构和功能可以实现为组合结构和组件。类似地,表示为单个组件的结构和 功能可以实现为分离组件。这些和其它变化、修改、添加和改进可以落入发明主题的范围 内。
权利要求
一种方法,包括提供软件目录,其中所述软件目录包括电子设备的存储器中的具有一组一个或更多安装的模块的安装的软件产品;比较安装的软件产品与软件产品的开箱即用配置;计算表示使用用于更新电子设备上的安装的软件产品的自动更新工具包的便利性的便利性值;计算表示该组一个或更多安装的模块相对于软件产品的开箱即用配置的差异的差异值;以及至少部分基于便利性值和差异值,生成用于更新安装的软件产品的推荐的方法。
2.如权利要求1所述的方法,其中所述计算表示使用用于更新电子设备上的安装的软 件产品的更新工具包的便利性的便利性值包括计算安装的软件产品和软件产品的开箱即 用配置之间的总的距离。
3.如权利要求2所述的方法,其中总的距离包括该组一个或更多安装的模块的每一个 和一组标准模块中的对应模块之间的个体距离的平均,其中该组标准模块表示软件产品的 开箱即用配置。
4.如权利要求3所述的方法,其中便利性是作为软件产品的开箱即用配置的最大便利 性和总的距离之间的差别的标量值。
5.如权利要求1所述的方法,其中推荐的方法指示完全自动更新、完全手动更新以及 自动和手动更新的组合之一。
6.如权利要求1所述的方法,其中推荐的方法识别用于自动更新的该组安装的模块的 至少一个、以及用于手动更新的至少一个安装的模块。
7.如权利要求1所述的方法还包括配置自动更新工具包,以便基于推荐的方法更新电 子设备上的安装的模块。
8.如权利要求7所述的方法还包括调用自动更新工具包,以便更新电子设备上的安装 的模块。
9.一种方法,包括提供软件目录,其中所述软件目录包括电子设备的存储器中的具有一组一个或更多安 装的模块的安装的软件产品;比较软件产品的该组一个或更多安装的模块与软件产品的一组一个或更多标准模块, 其中该组一个或更多标准模块表示软件产品的开箱即用配置;计算该组一个或更多安装的模块与该组一个或更多标准模块之间的一组一个或更多 定制距离值,其中该组一个或更多定制距离值的第一个表示该组安装的模块的第一个的定 制程度,其区分该组安装的模块的第一个与该组标准模块的第一个对应的模块;计算定制距离值的平均;至少部分基于定制距离值的平均计算便利性值,其中便利性值表示使用自动更新工具 包更新安装的模块的便利性;基于该组定制距离值的每一个相对于该组定制距离值的平均的标准偏差,计算差异 值;以及至少部分基于计算的便利性值和差异值,为电子设备生成用于更新电子设备上的软件产品的安装的模块的推荐的方法。
10.如权利要求9所述的方法,其中便利性是作为软件产品的开箱即用配置的最大便 利性和该组定制距离值的平均之间的差别的标量值。
11.如权利要求9所述的方法,其中推荐的方法指示完全自动更新、完全手动更新以及 自动和手动更新的组合之一。
12.一个或更多具有其中存储的程序产品的机器可读介质,当程序产品在一组一个或 更多处理器单元执行时,使得该组一个或更多处理器单元执行权利要求1-11的任一方法。
13.—种系统,包括用于实现权利要求1-11的任一方法的装置。
14.一种装置,包括 一组一个或更多处理单元; 网络接口 ;以及更新分析单元,操作来比较安装的软件产品与软件产品的开箱即用配置,其中安装的软件产品包括一组一个 或更多安装的模块;生成表示使用用于更新安装的软件产品的自动更新工具包的便利性的便利性值; 生成表示该组一个或更多安装的模块相对于软件产品的开箱即用配置的差异的差异 值;以及至少部分基于便利性值和差异值,生成用于更新安装的软件产品的推荐的方法。
15.如权利要求14所述的装置,其中更新分析单元包括一个或更多机器可读介质。
全文摘要
更新分析单元可以包括用于分析定制的软件产品、并且计算使用更新工具包的便利性的功能。更新分析单元基于便利性自动生成更新方法。更新方法识别推荐用于使用更新工具包的自动更新的软件产品模块。
文档编号G06F9/445GK101859254SQ20101015517
公开日2010年10月13日 申请日期2010年4月2日 优先权日2009年4月2日
发明者保罗·巴拉蒂, 利奥尼达·詹法格纳, 安东尼奥·佩龙, 斯蒂芬诺·伯格赫蒂, 阿蒂里奥·马蒂奥科, 马科·马蒂诺 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1