为动态提供而自主地自学习资源选择的方法

文档序号:6405042阅读:113来源:国知局
专利名称:为动态提供而自主地自学习资源选择的方法
技术领域
本发明涉及通过网络向客户机提供电子计算资源的领域,尤其涉及用于在一基础结构中选择资源组合的方法和相应系统,该基础结构包括由给定资源组合组成的应用环境以及可访问一成功工作组合列表的资源管理组件。
背景技术
自从2002年开始,IBM公司开始销售名为“System Automation forOS/390”2.2版的现有技术的商业化软件产品,该软件产品采用了现有技术的方法。在其中所实施的工具基本上供“应用提供者”使用,该应用提供者提供可由客户机通过相应的适配的网络连接运行的某种商务应用。在这种应用领域中,在一个或者更多不同的配置中对一计算资源(下面只称为资源)池进行配置,这些不同的配置每个都能够在服务器端为客户构建出相应的应用环境,以便帮助客户通过网络运行他自己的商务应用。
第二个应用领域是较大的企业网络,在这种网络中,为个人或小组定义一个或多个应用环境,该个人或小组也使用上述资源来完成其工作。
通常来说,这里应当将资源理解为将在某些用户间共享的任何计算实体。资源可以是一计算服务器、一些存储单元、一些商务数据、一些软件、一文件系统等等,因此包括物理实体和逻辑实体。在很多情况下,物理实体资源包括某些计算硬件、某些操作系统,可能还包括某些中间件和某些应用软件。
这里所提到的应用环境应当被理解成能够提供某种特定服务例如在以上意义上运行某些商务应用的资源的逻辑集合。
因此,一资源管理器被理解为运行在相应服务器上的一个软件组件,其用于对上述意义上的一个或多个资源进行管理,并能够为给定的应用环境实例化可用资源的组合,并能够保留、释放和配置资源组合。资源组合可以例如由下列组件构成一IBM S390服务器(z系列)Linux操作系统(SLES8)一个数据库(DB2)WebSphere门户服务器一Cisco路由器图1简略描绘了用于提供商务应用的这种现有技术的情况。下面将对其进行描述,包括描述其缺点如上所述,应用客户机110包括一些硬件、软件和其间的一些运行工作着的网络连接,以便当相应的对提供的外部请求120通过网络被传输给应用提供者时,运行应用提供者130所提供的商务应用。在应用提供者端,存在并维护一个联网的环境,其中包括下列组件首先,应用提供者端130提供了一个应用环境。它包含如下联网的资源在某种INTEL PC硬件(HW)144上安装有WINDOWS操作系统142,例如WINDOWS NT,以便运行负载平衡器应用140。在第二个硬件例如IBM PowerPC上,实现AIX操作系统152,以便运行某种应用服务器软件150。然后,在IBM大型机硬件164上运行Linux操作系统162,以便运行数据库应用软件166,该数据库应用软件用来执行应用客户机110所需要的商务过程。
其次,分布式资源管理器170如上所述是一软件组件,并被实现在某服务器硬件上。它包括有效资源组合的一预定列表120,这些资源组合可以互连起来,并用于为应用客户机110运行商务应用。为了实现此目的,应用提供者130可以访问并使用包括资源181、183、185和186的很多资源180,这些资源互连成为协作的资源组合,以便使商务应用可以全功能和最少的硬软件错误来运行,从而为客户保证最佳的服务质量。
在图1中的组件170中实现的上述现有技术的软件产品中,有效资源组合列表172是由应用提供者端职员进行的手工操作创建的,例如以XML文件的形式,其中,所述列表的每个条目包括一个有效的资源组合,以及所述资源组合的上一次成功的实例化或调用的日期。此外,需要脚本来控制资源。资源间的任何相互依赖必须在这些脚本中进行编程。由于现有技术的资源间的相互依赖关系的复杂性,很难创建跨越系统边界的资源组合。对每个资源是单独地进行监测的。如果在当前系统内某个资源出现故障,并且不再可能重新启动,则构成这种组合的整组协作的资源被转移到一备用系统中,该备用系统正是为这种所谓的“故障转接”情况而被单独维护的。与此相关联的缺点是必须维护冗余的、镜像的故障转接系统,以便保证服务质量。在这种情况下,典型的系统将是安装有适当的操作系统和ORACLE数据库的INTEL-PC。另一种系统可能是IBM服务器和DB2关系数据库。在上述IBM软件产品“Automation Manager”中,通过使用一组抽象的规则定义上述资源相互依赖性。现有技术的资源管理器保证可以由职员添加的这些相互依赖性和其他约束被满足。
在这种现有技术的产品中,包括所定义组合的资源分布在多个系统中的情况。然而,这种现有技术的进一步的缺点是,这些规则必须非常详细和精确,特别是在上面提到的跨系统边界的情况,例如INTEL PC和DB2数据库或者IBM服务器和ORACLE数据库这种非典型组合的情况中。如果没有如此详细的水平,则当只有其中一个组件出现故障时,整个系统都必需被更换。
因此,在这里“系统”这个词需应当以某种程度的普遍性来理解,并且系统可以是用来提供应用服务的单一硬件服务器。但是对于一个更加复杂的应用,处于同一场所的多个服务器需要被当成单一的系统来考虑,该系统进行协作以为某个特定应用完成服务。
所有的资源都是被独立地监控的,而组合的工作状态直接作为各资源的“与”连接而产生。此概念基于以下假设如果构成给定组合的所有资源都正常工作,则给定商务应用中某商务过程所需要的整个系统也将正常工作。然而,这一点从日常经验可知是错误的。
现有技术的故障转接概念包括如下所述一些缺点由于诸资源的复杂配置,包括多修订级、多用户授权、网络中的修改、硬件组件交换、可能更改硬件许可密钥以及最后但并非最不重要的,软件版本的逐步升级,由现有技术所提供的故障转接过程不能令人满意地工作,这对于达到高质量服务的目的是无法容忍的。鉴于现有技术所存在的困难和缺点,做出了本发明。
因此本项发明的目标是改进现有技术的选择资源的方法和系统。

发明内容
本发明这一目的是通过在所附独立权利要求中声明的特征获得实现的。在其各自的从属权利要求中提出了本发明的进一步的有利安排和实施例。现在参考所附权利要求。
本发明的基本原理包括自动产生资源组合,其中各个搜索算法重复地在自由资源池中搜索新的资源,组装符合一组预定规则的新的资源组合,自动以多个精度级别对这种给定的新的组合进行测试,自动将测试结果保存在一“经验”列表中,并且以与现有技术不同的方法规定故障转接情况,即通过提供这样的新资源组合,该新资源组合已经针对它被设计所用于的指定商务应用和指定商务过程进行了测试。
预先挑选出可以接受的资源子集的单个可选步骤主要是指排除掉一些无意义的资源组合,即在本领域的技术人员看来无意义的那些组合。一个简单的例子是Apple计算机与DOS操作系统这样的资源组合。当然,还存在没有上面例子明显的其他“无意义组合”,例如打印机+数据库软件;或IBM z990服务器+Microsoft Windows95;或Dell PC+VSE操作系统。
优选地,一成功组合的条目包括一时间戳,该时间戳显示出该特定组合的最后一次成功测试。经验表明这种成功测试越晚,则组合仍旧正常工作的可能性越大。
如果经验列表进一步包括失败的资源组合列表,则通过查找所述失败条目部分可以避免试图测试包含任何失败资源子组合子集的新组合。例如当资源R1不能与资源R2共同工作时,就没有必要启动根据本发明的自学习算法,来发起R1+R2+第三资源R3的组合。
根据本发明的方法优选地涉及一组合指定用于某个特定资源的某个特定的硬件类型(如型号为XXX的IBM PowerPC处理器)与某个特定的软件类型(如版本号为YY.Y的Windows NT操作系统)。还需要补充的是这里所说的“软件”一词是指任何类型的软件,包括操作系统软件、中间件系统软件和面向应用的软件。
如果对所使用的资源的软件组件和硬件组件的版本号有所考虑,则本发明的方法还会更加有效,因为在很多情况下,升级到下一个更高版本的步骤包括相当大的风险,即给定应用的至少一个或更多功能方面不能无错误地工作。
本发明方法包括生成和测试资源的元组,以便组装可以正常工作的资源组合。例如,考虑这样的情况,其中使用总数为10的硬件资源和总数为20的、包括用于输入输出外围设备的驱动程序软件的软件资源。于是,所述资源组合的测试优选地基于其组合已经过测试并因此已知可正常工作的一个资源或一对资源而逐步地进行。然后,根据本发明的一优选方面提供预先确定的分数,以便告知系统一给定组合是否可正常工作。进一步地,可以另外创建这样的分数,其进一步地告知系统一组合工作的或反映出测试精确性的质量,例如,一个成功的ping测试,得到0.3的分数(1.0=最优值,0=最小值),而通过网络进行的成功数据库更新得到0.5的分数。当然,根据本发明可提供很多其他的分数质量。它们可相应地被实施为或者一标志、或者一整数值,或者以其他方式实施。此外,当经验列表条目包括相应的最后一次成功测试和/或者最后一次失败测试的时间、星期中的日期或者月份时,并且当它包括终止日期时,则可产生附加的优点,即当该列表揭示出了大量依赖于时间的失败情形时,通过由一人研究所述列表,或者通过由一相应的数据挖掘工具进行处理,可能检测出未被检测到的新的事实或风险。
当在上述意义下自动搜索和测试空闲资源以了解它们的工作能力时,如果此项工作是独立于实际的进入请求完成的,则可进一步有利地扩展本发明方法。
此外,在任一上述功能之上可有利地提供人工干涉接口,以便使得经验丰富的本领域技术人员能对本发明程序产生的分数施加影响。通过这种方式,可以确保不把职员经验排除在本发明所规定的改进之外。


本发明是作为例子示出的,并且不受附图中的图形形状的限制,在这些附图中图1是一示意性的方块图,示出了在其中可有利地使用本发明的一IT环境的最基本的结构组件(现有技术);图2是一根据图1的图示,并示出了形式为一经验列表和一自学习资源选择组件的本发明的附加的基本特征;图3是一方块图,示出了本发明的自启动的学习的方法在选择资源时的控制流的最重要的组成部分;以及图4是一根据图3或图4的图示,示出了导致发明经验列表的更新的、人工启动的配置改变。
具体实施例方式
通过一般地参照这些附图以及现在特别地参照图2,以下描述了本发明方法的示例性使用,来说明本发明的优选特征。
应用客户机110还包括一软件组件210,该软件组件包括构成本发明方法的一部分的应用测试程序,该应用测试程序同自学习资源选择组件276双向连接(参见网络连接220),该自学习资源选择组件基本上实施了根据上述诸方面的本发明的方法的主要部分,并且最好也布置在称为分布式资源管理器170的服务器系统中。所述发明组件276能向上述经验列表278写入和从中读取,该经验列表保存有已被或者成功地或者失败地测试过的资源组合。
图中示出了一个连接280,其图示了这样的可能性,即自学习资源选择组件276访问上述自由资源池180,并且生成新的组合190,该组合将进一步参照图3描述。
由于图2中用到的其余组件与参照图1描述的现有技术的组件相同,对图2的其余部分的描述可通过返回参考对图1的描述获得。
下面进一步参照图3和图4描述本发明所提供的自学习资源选择组件276的操作,图3和图4各说明了根据本发明的相应实施例的发明方法中的基本控制流。
在第一步310中,从经验列表278中选择一个特定资源组合。然后,在步骤315中,置换该资源组合,以便形成新的组合,参见图2中的圆圈190。然后进入提供该资源组合的块320,该块以调用(325)在这里被称为提供管理器的软件工具开始。
具体来说,所述提供管理器组装所述该新的资源组合。该工具完成在此环境下必要的基本操作,例如保留和互连硬件组件(只要这一点由纯粹的程序操作来完成是可能的),并且准备和实现所需的软件组件的网络安装,这些软件组件包括操作系统软件、应用软件以及可能需要的“中间件”。接下来,新的资源组合应当能够运行了,并在步骤320中转给由图2中的标号210所标明的应用测试程序。
应用测试程序210现在试图验证所述新的资源组合,步骤330。这优选地是通过调用一个用于该应用的测试程序来完成的,步骤335。
依靠根据上述介绍基本上可伸缩的该项测试,可测试该新资源组合,从而反映出该应用环境的商务视角,该视角是比如在现有技术中所实现的更为纯理论化的“IT视角”更可取的。
接下来,进行判断340,以告诉我们测试成功与否。在判断340的“否”分支(左侧)中,当前组合被以否定条目的形式添加到经验列表中,步骤345。否则,参见判断340的“是”分支,新的组合作为“成功的”条目与上述有用地定义的概率分数一起被添加到经验列表中。接下来,在这两个分支中,控制都在步骤360中返回到步骤310中的过程开始。
作为以手工启动的学习组件的另一实施例,步骤310和步骤315能手工完成。因此,发送一个手工请求以测试某一给定资源组合。该资源组合同前面提及的、在没有人工干预的情况下由本发明的算法单独选择的资源组合在结构上是基本一致的。该过程的其余部分与图3中的描述基本一致。
参考图4,现有资源组合的手工启动的配置改变描述如下在步骤410中,收到或者由应用提供者职员或者由客户端职员手工启动的一个请求。该请求查询一个新的资源组合,步骤430。
再次地,该另一发明实施例的发明部分以调用(420)被称为提供管理器的上述软件工具开始。同样在这里,如以上通过参照图3所描述的,所述提供管理器组装新的资源组合。接下来,该新的资源组合也应该能够运行并转给由图2中标记210所表示的应用测试程序。
如果在测试步骤430中,新的组合最终证明无错误地运行,则将其添加到所述经验列表中的肯定的、成功的条目中,步骤440。
此外,下面描述图2中的经验列表278的实现细节依照本发明的一优选方面的经验列表278把资源组合映射到分数。这可通过如下的散列表有利地实施对一给定资源列表rs来说,一预先决定的散列函数h会计算出散列值h(rs),作为分数。接着,三元组(资源列表,分数,终止日期)被保存在散列表中的h(hs)位置。
用于根据本发明生成经验列表的优选数据结构如下所示组成经验列表的个别元素为以下形式的三元组(资源列表,分数,终止日期)。
该三元组的第一个元素描述资源列表;第二个元素给此资源组合分配一个分数。因为保存在经验列表中信息可能并非永远有效,所以最好也包括一个用于终止日期的字段。可如上所述添加更多字段。
分数可以是二进制值(正常工作或者不正常工作)、整数(工作得如何?)、概率(它正常工作的可能性如何?)或者甚至更为复杂的值——这取决于经验列表中应当保存的所需的信息量。
资源列表优选地表示为指向对存储在其他地方的、各个资源的更为详细的描述的关键字(整数)列表。
该列表的实际修改优选地如通常对散列表所进行的那样进行。对一给定资源组合来说,相应的散列元素——如上述,为一个元组——能很快找到。然后,可删除该元素,或者通过给其分数部分指定新值来编辑该元素。
在任何时间点上,根据本发明的资源管理器工具动态地提供一个或多个环境(即,资源组合)——或者是为要求这样的环境的客户提供,或者是出于试验目的为自身提供。
每当对于所提供的环境之一有了新的了解——因为它刚刚失败,或者它现在已经无错误地运行了一指定量的时间——就会按照上面说明的那样更新关于该环境的信息。
提供针对客户的由这样的客户所实际要求的环境。如上所述,关于这些环境的新经验可在任何时候获得,并且为将来的使用而被保存。
根据本发明的一优选方面,每当资源空闲时,本发明的资源管理器可使用它们来随机地对新的组合进行测试,或者对已知组合进行重新测试,例如,因为其终止日期即将到来。有利的是,其设置,即该资源管理器更愿意进行哪种试验——如果有任何选择需要做出的话——是可定制的。
新组合的测试可进一步分类为略微修改的已知组合的测试和全新组合的测试。略微修改的已知组合的测试很可能更易于成功,因此,应更经常选择它们。另一方面,过多的此类试验可能导致非常类似的已知成功组合的积聚,而忽视了对完全不同的组合的搜索。在这种情况下,每次都将选择这些类似的资源,而其他资源却是空闲的。
优选的是,在这方面找到一个平衡。此外,优选地,提供定制设置来提供某些自由,以使资源管理器可选择哪种试验类型,即新组合还是修改过的已知组合,以及进行此种选择的频率。
最后,管理人员能手工编辑经验列表278,比如,通过指定一资源组合并分配给它一个分数。
本发明能够在硬件、软件或者软硬件组合上实现。根据本发明的工具能够以集中方式在一个计算机系统中实现,或者以分布方式实现,其中不同元件分布在几个互连的计算机系统上。适应于实施这里描述的方法的任何计算机系统或者其他装置都是适用的。一个典型的软硬件组合可以是一个具有一计算机程序的通用计算机系统,该计算机程序当被载入和运行时控制该计算机系统,以致于它实现这里描述的方法。
当前发明也能够嵌入到一个计算机程序产品中,该产品包含使能实现这里所描述方法的所有功能,并在被载入计算机系统中时能够运行这些方法。
当前情境下的计算机程序手段或者计算机程序意味着一组指令的任何语言、代码或者符号的任何表达,该组指令旨在使得具有信息处理能力的系统或者直接地或者在进行了如下两项中的任何一个或二者之后执行一特定功能a)转换成另外一种语言、代码或者符号;b)以不同的材料形式再现。
权利要求
1.一种用于在一基础结构中自动选择资源组合的方法,该基础结构包括由给定资源组合(140、142、144、150、152、154、162、164、166)组成的应用环境(160),可访问成功工作的资源组合的列表(278)的资源管理组件(276),该方法的特征在于包括如下步骤a)从可用资源池(180)自动生成(315,320)新资源组合(190);b)自动测试(330)所述新资源组合(190)是否正常工作;c)如果所述新生成的资源组合(190)正常工作,自动将它们添加(350)到所述列表(278)中。
2.如权利要求1所述的方法,进一步包括如下步骤自动预先选择(310)适应于构建一工作应用环境的可接受的资源子集。
3.如权利要求1所述的方法,其中所述列表(278)的一条目至少包含一个时间戳,用于告知该组合(190)最后一次经验证的工作运行。
4.如权利要求1所述的方法,其中维护一失败的资源组合列表。
5.如权利要求1所述的方法,其中一资源组合(190)指明了用于一特定资源的硬件类型和软件类型。
6.如前述权利要求所述的方法,其中维护使用中的资源的软件组件或硬件组件的不同版本号。
7.如权利要求1所述的方法,其中对于构成一给定被测试资源组合(190)的各资源的每个元组(R1,R2),向所述组合(190)分配分数。
8.如前述权利要求所述的方法,其中对于给定的资源组合(190),为各个不同的复杂测试生成不同的分数。
9.如权利要求1所述的方法,其中经验列表(278)条目包括上次成功测试、以及/或者上次失败测试的时刻、星期中的日期以及月份、以及/或者一终止日期。
10.如权利要求1所述的方法,还包括如下步骤独立于要求从多个可用资源中进行提供的进入的请求,而搜索空闲的资源以了解它们的工作能力。
11.如权利要求1所述的方法,还包括如下步骤提供用于进行人工干预的接口,以编辑所述列表(278)
12.一种运行在由指定资源组合(140、142、144、150、152、154、162、164、166)构成的一应用环境(160)以及可访问一成功工作资源组合列表(278)的一资源管理组件(276)下的计算机服务器系统,其特征在于包含用于执行如下步骤的一自学习资源选择组件(276)a)从可用资源池(180)自动生成(315、320)新资源组合(190);b)自动处理来自测试(330)所述新资源组合(190)是否正常工作的过程的测试结果;以及c)如果所述的新生成的资源组合(190)正常工作,则自动添加(350)这些组合到所述的列表(278)中。
13.一种在由给定资源组合(140、142、144、150、152、154、162、164、166)所构成的一应用环境(160)以及可访问一成功工作资源组合列表的一资源管理组件(276)下与一服务器系统协作运行的客户机系统,其特征在于包括用于执行如下步骤的应用测试程序(210)a)从所述服务器系统接收(220)来自一可用资源池(180)的新资源组合(190);b)测试(330)所述的新资源组合(190)是否正常工作;c)发送(220)测试结果给所述服务器系统;
14.一种用于在数据处理系统中执行的包括各计算机程序代码部分的计算机程序,当所述计算机程序代码部分在一计算机上执行时,所述计算机程序代码部分用于执行根据前述权利要求1到10中的任意一个的方法中的各个步骤。
15.一种存储在计算机可用媒介上的计算机程序,所述计算机程序包括当所述计算机程序产品在一计算机上运行时用于使计算机完成权利要求1到10中的任何一个的方法的计算机可读的程序单元。
全文摘要
本发明涉及通过网络向客户机提供电子计算资源的领域,并特别涉及一种方法,该方法用于为由很多资源组成的应用环境自动选择资源,其中提供了一个资源管理组件,用于将特定的所选择资源组合与所述应用环境相联系,并且其中维护所述资源组合中的合格工作组合的一列表。为了改进资源组合的提供,提出了自动生成资源(R)组合(190),其中各个搜索算法在自由资源池(180)中搜寻新资源,组装满足一组预定规则的资源组合,以多级精度测试这种给定的新组合并且以与现有技术不同的方式定义故障转接情况,即通过提供一个已经正是针对其被设计用于的商务应用和商务过程而测试过的新资源组合。
文档编号G06F9/46GK1604043SQ20041004617
公开日2005年4月6日 申请日期2004年6月2日 优先权日2003年9月30日
发明者B·贝茨勒, M·德廷格, W·埃德雷尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1