计算机系统中自适应的问题确定和恢复的制作方法

文档序号:7868596阅读:188来源:国知局
专利名称:计算机系统中自适应的问题确定和恢复的制作方法
技术领域
本发明一般地涉及改进的数据处理系统,并且更具体地,涉及用于管理硬件和软件组件的方法和装置。更加具体地,本发明提供了一种用于自动地识别、追踪、诊断硬件和软件组件中的问题和从硬件和软件组件中的问题中恢复以便达到功能要求的方法和装置。
背景技术
现代计算技术导致了非常复杂和不断变化的环境。一个这种环境是Internet,它也被称为“互连网络”。Internet是一组计算机网络,这些计算机网络可能是不同的,并且被用网关连接在一起,网关处理数据传输和从发送网络的协议到接收网络使用的协议的消息转换。当被大写时,术语“Internet”指使用TCP/IP协议组的网络和网关的集合。当前,最常用的在Internet上传输数据的方法是采用万维网(WorldWide Web)环境,万维网也被简称为“Web”。还存在其它的用于传输信息的Internet资源,诸如文件传输协议(FTP)和Gopher,但是它们都没有达到Web的流行程度。在Web环境中,服务器和客户机使用超文本传输协议(HTTP)实现数据处理,HTTP是一种用于处理各种数据文件(例如,静态图形图像、音频、运动视频等)的传输的已知的协议。各种数据文件中的信息被编排格式以便通过标准的页面描述语言,超文本标记语言(HTML),呈现给用户。Internet还被广泛地用于将应用传输给使用浏览器的用户。用户时常可以通过Internet搜索并获得软件包。
虽然计算机技术已经变得更加强大,但是计算机技术也变得更加复杂。随着计算机系统的复杂性和异质性继续增加,诊断和纠正硬件和软件问题变得越来越困难。由于计算机系统变得更加自治(即,自我调节),出于多个原因这个挑战将变得更加严重。首先,自我配置的自治计算系统将趋向于绕过这些问题而工作,使得识别出现了错误是困难的。第二,由于自治系统中的元件之间的更加短暂的关系,问题将变得更难追踪到它们的来源。换言之,共同参予故障的一组元件在该问题被注意到时可能不再彼此连接,这使得重现该问题是非常困难的。例如,许多出版物都提出了问题识别主题,但是是在静态配置的系统内执行的,诸如Tang,D;Iyer,R.K,“Analysis and modeling ofcorrelated failures in multicomputer systems,”IEEE Transactions onComputers,Vol.41 Issue 5,May 1992,pp.567-577;Lee,I.;Iyer,R.K.;Tang,D.,“Error/failure analysis using event logs from fault tolerantsystems,”Digest of Papers.,Twenty-First International Symposium onFault-Tolerant Computing(FTCS-21),1991,pp.10-17;以及Thottan,M.;Chuanyi Ji,“Proactive anomaly detection using distributedintelligent agents,”IEEE Network,Vol.12 Issue 5,Sept.-Oct.1998,pp.21-27。
当前,人类技术支持人员或系统管理员手工地执行大部分与识别、诊断和修复硬件或软件问题相关联的任务,通常采用大量的试错(trial and error),并且依靠他们自己的记忆或识别类似的行为模式的能力。这是一个费力的过程,并且由于系统复杂性的增加,渐渐地只有很少的系统管理员可以胜任地完成这种工作。因此,存在着对自动进行自治系统内的问题识别、追踪、诊断和修复技术的需要。

发明内容
本发明涉及用于识别、追踪、诊断和修复自治计算系统中的问题的方法、计算机程序产品和数据处理系统。使用自适应推理和活动系统制定在数据记录、诊断故障(或故障的迹象)和处理故障(或故障的迹象)中所遵从的规则和活动过程。自适应推理和活动系统包括用于冲突解决的技术,所述的用于冲突解决的技术基于特定于环境的信息、积累的具有时间敏感性的数据、采取的活动和这些活动的效果产生规则、为规则分配优先级、修改规则和删除规则。因此,本发明使得动态的自治计算系统即使面对系统配置中的改变也可以制定其自己的用于自我管理的策略。


在所附的权利要求中提出了被认为是本发明的特征的新特征。然而,通过结合附图进行阅读,参考下面对示例实施例的详细说明,将会更好地理解本发明本身以及其使用的优选模式、其它目的和优点,其中图1是联网的数据处理系统的图,本发明可以被实现在该联网的数据处理系统内;图2是图1的联网的数据处理系统内的服务器系统的方框图;图3是图1的联网的数据处理系统内的客户机系统的方框图;图4是根据本发明的优选实施例的自治元件的图;图5是根据本发明的优选实施例的用于在自治元件之间建立服务提供关系的机制的图;
图6是根据本发明的优选实施例的问题检测和纠正系统的整体视图;以及图7是根据本发明的优选实施例的问题检测和纠正系统的详细视图。
具体实施例方式
现在参考附图,图1给出了本发明可以被实现在其内的数据处理系统的网络的图形表示。网络数据处理系统100是本发明可以被实现在其内的计算机网络。网络数据处理系统100包括网络102,网络102是用于在网络数据处理系统100内被连接在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括连接,诸如有线、无线通信链路或光缆。
在给出的例子中,服务器104连同存储单元106被连接到网络102。此外,客户机108、110和112被连接到网络102。这些客户机108、110和112可以是,例如,个人计算机或网络计算机。在给出的例子中,服务器104向客户机108-112提供数据,诸如引导文件、操作系统图像和应用。客户机108、110和112是服务器104的客户机。网络数据处理系统100可以包括附加的服务器、客户机以及其它未示出的设备。在给出的例子中,网络数据处理系统100是以网络102表示世界范围的使用传输控制协议/网际协议(TCP/IP)协议组彼此通信的网络和网关的集合的Internet。Internet的核心是主节点或主计算机之间的高速数据通信线路的主干,由对数据和消息进行路由的数以千计的商业的、政府的、教育的和其它计算机系统组成。当然,网络数据处理系统100还可以被实现为多个不同类型的网络,诸如例如,内联网、局域网(LAN)、或广域网(WAN)。图1旨在作为例子,并且不作为对本发明的体系结构的限制。
参考图2,根据本发明的优选实施例,给出了可以被实现为服务器,诸如图1中的服务器104的数据处理系统的方框图。数据处理系统200可以是对称多处理器(SMP)系统,包括被连接到系统总线206的多个处理器202和204。可替代地,可以使用单处理器系统。存储器控制器/高速缓存208也被连接到系统总线206,存储器控制器/高速缓存208提供了到本地存储器209的接口。I/O总线桥210被连接到系统总线206,并且提供到I/O总线212的接口。如图所示,存储器控制器/高速缓存208和I/O总线桥210可以被集成。
被连接到I/O总线212的外围组件互连(PCI)总线桥214提供了到PCI局部总线216的接口。多个调制解调器可以被连接到PCI局部总线216。典型的PCI总线实现支持4个PCI扩展插槽或内插连接器。通过调制解调器218和被通过内插板卡连接到PCI局部总线216的网络适配器220可以提供图1中的到客户机108-112的通信链路。
附加的PCI总线桥222和224为附加的PCI局部总线226和228提供接口,从附加的PCI局部总线226和228可以支持附加的调制解调器或网络适配器。以这种方式,数据处理系统200允许到多个网络计算机的连接。如图所示,存储器映射图像适配器230和硬盘232也可以或是直接地或是间接地连接到I/O总线212。
本领域的普通技术人员应当理解,图2中给出的硬件可以改变。例如,除了给出的硬件之外,或是替代给出的硬件,还可以使用其它的外部设备,诸如光盘驱动器等。给出的例子并不意味着暗示关于本发明的体系结构上的限制。
图2中给出的数据处理系统可以是,例如,运行高级交互执行(AIX)操作系统或Linux操作系统的IBM eServer pSeries系统,一种纽约Armonk的国际商用机器公司的产品。
现在参考图3,给出了本发明能够被实现在其内的数据处理系统的方框图。数据处理系统300是客户计算机的一个例子。数据处理系统300采用外部组件互连(PCI)局部总线体系结构。虽然给出的例子采用PCI总线,但是也可以使用其它的总线体系结构,诸如加速图形端口(AGP)和工业标准体系结构(ISA)。处理器302和主存储器304通过PCI桥308连接到PCI局部总线306。PCI桥308还可以包括用于处理器302的集成的存储器控制器和高速缓存存储器。可以通过直接组件互连或通过内插板卡实现到PCI局部总线306的附加的连接。在给出的例子中,局域网(LAN)适配器310、SCSI主总线适配器312和扩展总线接口314被通过直接组件连接连接到PCI局部总线306。相反,音频适配器316、图形适配器318和音频/视频适配器319被通过插入到扩展插槽中的内插板卡连接到PCI局部总线306。扩展总线接口314为键盘和鼠标适配器320、调制解调器322和附加的存储器324提供了连接。小型计算机系统接口(SCSI)主总线适配器312为硬盘驱动器326、磁带驱动器328和CD-ROM驱动器330提供了连接。典型的PCI局部总线实现支持3个或4个PCI扩展插槽或内插连接器。
一个操作系统运行在处理器302上,并且被用于协调并提供对图3中的数据处理系统300内的各种组件的控制。所述的操作系统可以是商业上可以获得的操作系统,诸如可以从微软公司获得的WindowsXP。诸如Java的面向对象的编程系统可以与所述操作系统一起运行,并且提供从执行在数据处理系统300上的Java程序或应用对操作系统的调用。“Java”是Sun Microsystems公司的商标。用于操作系统、面向对象的操作系统和应用或程序的指令位于存储装置诸如硬盘驱动器326上,并且可以被装入主存储器304以便由处理器302执行。
本领域的普通技术人员将会理解,图3中的硬件可以根据实现而改变。除了图3中给出的硬件之外,或是替代图3中给出的硬件,可以使用其它的内部硬件或外部设备,诸如快闪只读存储器(ROM)、等价的非易失存储器、或光盘驱动器等。本发明的处理也可以应用于多处理器数据处理系统。
作为另一个例子,数据处理系统300可以是被配置为可引导而不需要依赖某些类型的网络通信接口的独立的系统。作为另一个例子,数据处理系统300可以是个人数字助理(PDA)设备,它被配置有ROM和/或快闪ROM,以便提供非易失存储器来存储操作系统文件和/或用户产生的数据。
图3中给出的例子和上面所述的例子不意味着对体系结构的限制。例如,数据处理系统300还可以是除了采用PDA的形式之外的笔记本计算机或是手持计算机。数据处理系统300还可以是信息站或Web设备。
本发明涉及用于自我管理的、自治的计算系统内的问题确定和纠正的方法和装置。构成这种计算系统的硬件和软件组件(例如,数据库、存储系统、Web服务器、文件服务器等)是被称为“自治元件”的自我管理的组件。自治元件将传统的计算功能(例如,数据库)和附加的自我管理的能力联系在一起。图4是根据本发明的优选实施例的自治元件的图。根据图4中给出的优选实施例,自治元件400包括管理单元402和功能单元404。本领域的普通技术人员可以理解,因为管理单元和功能单元之间的划分仅仅是概念上的,自治元件不必被如图4那样清楚地划分到单独的单元中。
管理单元402处理自治元件400的自我配置特性。具体地,管理单元402负责根据由监视/控制接口414所指示的一组用于自治元件400的目标调整和维护功能单元404。管理单元402还负责将对功能单元404的访问局限到被许可使用功能单元404的那些其它系统组件(例如,其它的自治元件),如访问控制接口416所指示的。管理单元402还负责建立并维护与其它自治元件的关系(例如,通过输入通道406和输出通道408)。
根据自治元件400想要的功能,功能单元404使用由其它系统组件提供的服务(例如,通过输入通道410),并且给其它系统组件提供服务(例如,通过输出通道412)。例如,自治数据库元件提供数据库服务,并且自治存储元件提供存储服务。应当注意,一个自治元件,诸如自治元件400,可以是软件组件、硬件组件或是这两者的某种组合。自治计算的一个目标是在抽象的功能层次上提供计算服务,而不用在给定功能的底层实现之间进行刚性的区分。
自治元件通过向其它元件(这些元件本身可以是自治元件)提供服务和/或从其它组件获得服务来工作。为了使自治元件以这种方式协作,需要一种机制,通过该机制自治元件可以定位并进入与提供所需功能的附加组件的关系。图5是给出了根据本发明的优选实施例所构造的机制的图。
“请求组件”500,一个自治元件,请求其它组件的服务以便完成它的功能。在优选实施例中,这种功能可以用规则和目标的策略来定义。策略服务器组件502是一个为计算系统内的其它自治元件建立策略的自治元件。在图5中,策略服务器组件502为请求组件500建立要遵守的规则和目标的策略,并且将这些策略传递给请求组件500。例如,在网络通信的环境中,所需要的加密保护的标准可以是被包含在策略中的规则,而所希望的服务质量(QoS)可以是策略的目标。
在请求组件500的特定的策略的推动下,请求组件500从附加组件请求服务(例如,数据的加密)。为了获得这种服务,请求组件500与另一个自治元件即目录组件504协商。目录组件504优选地是一种类型的数据库,它将功能请求映射到提供所需功能的组件。
在优选实施例中,目录组件504可以通过使用诸如Web服务描述语言(WSDL)的标准的目录服务方案和诸如通用描述、发现和集成(UDDI)的系统提供目录服务,所述目录服务方案和系统允许程序定位提供特定服务的实体,并且自动地确定如何与那些服务通信并进行事务处理。WSDL是由有代表性的公司,诸如国际商用机器公司、Ariba公司和微软公司所著的并正由WorldWide Web Consortium考虑的提出标准。UDDI版本3是现在被用于Web服务应用和服务的当前规范。由结构化信息标准促进组织(OASIS)组织负责对UDDI的进一步开发和修改。
目录组件504向请求组件500提供信息以便允许请求组件500使用所需组件506的服务。这种信息可以包括地址(诸如网络地址),以便允许现有的组件可以与可下载代码或可下载代码的地址通信,从而可以提供软件组件或任何其它适合的信息,以便允许请求组件500使用所需组件506的服务。
图6是一个示意图,它提供了根据本发明的优选实施例的用于在自治计算系统内确定问题并恢复错误的系统的整体视图。自治计算系统包括多个自治元件600、602和604,它们是硬件和软件组件,因为这些硬件和软件组件是自我管理的,所以它们是自含的,但是它们通过使用彼此的服务以协作的方式工作。每个自治元件600、602和604保持一个事件记录(分别为606、608和610),并且与问题确定和错误恢复系统612交互作用,问题确定和错误恢复系统612可以被包含在单独的自治元件600、602和604内,或是可以被包含在专用于这个功能的其它自治元件或组件内。
问题确定和错误恢复系统612中的逻辑模块614指挥每个自治元件600、602和604在规定的条件下以规定的详细程度记录特定类型的事件。根据从自治元件获得的事件记录,逻辑模块614尝试诊断问题(或问题的迹象)。一旦检测到问题(或潜在的问题),逻辑模块向自治元件建议活动过程以便从问题中恢复。对可用的元件的类型、事件、问题和活动的详细说明被存储在与逻辑模块614相关联的数据库616中。
因此就对事件的记录而言,可以说逻辑模块614建立了策略,自治元件600、602和604按照该策略记录事件。事件可以包括由任意的自治元件600、602和604所采取的活动、由自治元件600、602和604接收的输入、或自治元件600、602和604可以观察到的其它事件。应当理解,事件记录606、608、610还可以分别包括600、602、604中的各种系统配置、负载特性和性能测量。虽然在优选实施例中,可以使用结构化的、机器可读所格式,诸如XML,事件记录606、608、610可以任意适合的数据格式被书写。可替代地,事件记录606、608和610可以任意的数据库或数据存储格式被表示,诸如关系数据库、面向对象的数据库、与对象相关的数据库、演绎数据库或任意其他合适的存储格式。典型地,存储在事件记录606、608、610中的信息将识别出事件的特定的出现、它们出现的时间和可用于该事件的解释的任何参数或其它数据。应当理解,事件记录606、608、610还可以分别包括各种系统配置、负载特性、以及600、602、604中的性能测量。本领域的普通技术人员将会认识到,许多关于计算系统内的事件的信息项目可以被存储在事件记录606、608、610中而不脱离本发明的范围和精神。此外,任何数目的自治元件,包括硬件组件、软件组件或这两者可以被使用。
在本发明的优选实施例中,如图7所示,逻辑模块614被划分为三个单独的逻辑模块、即记录逻辑模块704、问题确定逻辑模块710和错误恢复逻辑模块715。这些逻辑模块的每一个包括推理引擎(未示出),所述推理引擎在观察到的数据上施加一组规则以便做出它们的判定,所述规则包括下面的形式IF<Condition(s)>THEN<Action(s)>
或WHILE<Condition(s)>DO<Action(s)>
因此,每个记录逻辑模块704、问题确定逻辑模块710和错误恢复逻辑模块715可以被想象成一种具有推理引擎的专家系统,它使用逻辑推理规则的知识库分别做出关于数据记录、问题诊断和从错误中恢复的决定。在构成每个知识库的规则中,条件子句(例如,如果“X”则“Y”中的“X”)可以包括变量,并且可以如同“元件X是类型T1的”这样简单,或是可以是复杂的,涉及到统计、机器学习或人工智能技术。定义条件子句的统计技术的例子可以包括(但是不限于)学生T试验、相关性分析或回归分析的应用。定义条件子句的机器学习和人工智能技术的例子可以包括(但是不限于)诸如神经网络、贝叶斯网络或支持向量机的监督学习方法,或是诸如K-means聚类、分层聚类或主成分分析的非监督学习方法。
以类似的方式,活动子句可以包括变量,并且可以象“在元件X中记录E1类型的事件”。活动还可以涉及给元件委派复杂的任务,诸如“将元件X中的负载减少10%”,其中如何减少负载的细节由自治元件X确定。此外,活动可以包括创建、修改或删除所述三个逻辑模块内的规则集中的规则。可以使用适当的机器学习技术完成这个规则学习过程,包括本文前面所列举的那些技术。例如,当发现了新的诊断之后,活动子句可以规定“在问题确定逻辑模块中增加一个新的规则R,其中RIF如果类型E5和E6的事件同时出现在类型为T1的元件中THEN发生了P9类型的问题。”对可用(或已知的)元件的类型、事件、已知问题、条件和活动的详细说明全部分别存储在与每个逻辑模块704、710和715相关联的数据库705、711、716中。机器和人两者都可以更新这些数据库(例如,引入了新的元件种类)。
从上面的说明中应当注意到,本发明的优选实施例考虑到包含在三个逻辑模块704、710和715中的规则集中的至少两个层次的自适应。首先,条件子句中存在自适应,所述的条件子句处在具有从过去的经验或例子中学习的能力的算法的控制下。例如,经过一段时间,神经网络可以通过修改其网络中的权重,学习以不断提高的准确性诊断特定的问题。因此,条件子句将获得对诊断该问题的提高的特异性。
因为本发明允许基于规则本身建议的活动的效果,产生逻辑模块内的规则集中的规则、为所述规则分配优先级、修改所述规则、删除所述规则,所以一种更重要的自适应类型是可能的。首先,可以使用机器学习方法,诸如归纳逻辑编程,从存在的规则集中推断新的规则。归纳逻辑编程的例子包括描述于在此引入作为参考的Quinlan,J.R.,Cameron-Jones,R.M.,“Induction of Logic ProgramsFOIL andRelated Systems,”New Generation Computing 13(1995),pp.287-312的FOIL,或是描述于在此引入作为参考的Muggleton,S.,Feng,C.,“Efficient Induction of Logic Programs,”inProceedings of the 1st Conference on Algorithmic Learning Theory,Ohmsha,Tokyo,1990的GOLEM算法。此外,新的和旧的规则在解决和防止问题方面的效果被由问题确定和错误恢复系统700以及其人类操作员监视,并且该结果被用于对规则集中规则重新分配优先级、修改或删除规则集中规则。这些更改可能引起通过对归纳逻辑编程的应用进一步创建新的规则。因此,通过逻辑模块内的推理引擎的自动应用,以及通过直接的人工干涉,将显现出逻辑模块内的规则集的自适应性。
图7提供了本发明的优选实施例如何可以成功地自动确定问题,并且成功地从不同自治元件给出的错误事件登记中恢复的详细的例子。
图7示出了三个自治元件701、702、703。记录逻辑模块704可以咨询存储在它的事实和条件数据库705中的上面三个自治元件的配置和特性以便确定管理由每个元件记录的信息的规则(包括if-then规则)。例如,记录逻辑模块704可以包括下面的记录逻辑规则(i)r1IF元件是T1类型的THEN应当记录每分钟E1和E2类型的事件在它的系统内的新出现的次数。
(ii)r2IF元件是T2类型的THEN应当报告每5分钟其以CPU的百分比利用率表示的时间平均(time-averaged)负载,和它的以毫秒表示的时间平均的响应时间。
(iii)r3IF元件是T3类型的THEN应当报告每个小时E3类型的事件。
记录逻辑模块704可以咨询其数据库705以便确定自治元件701、702和703分别是T1、T2和T3类型中的哪种元件。数据库705还说明了每种元件可以记录的事件类型的细节。因此,记录逻辑模块704不需要知道每个自治元件实际上是如何实现记录过程的细节,它仅是知道某种类型的元件可以记录特定种类的事件。在来自记录逻辑模块704的指挥下,元件701、702,703将如它们各自的事件记录706、707、708中的有关的记录逻辑规则所规定的那样记录事件。这些记录被不断地编辑到合成记录709,并且被不断地送到问题确定逻辑模块710。
问题确定逻辑模块710可以具有各种规则以便从合成记录709中检测问题并进行分类。例如,问题确定逻辑模块710可以具有如下的规则R1、R2、R3和R4R1IF类型T1的元件在任意的一分钟的时间跨度内没有报告E2类型的事件THEN类型T1的元件具有P1类型的问题,R2IF T2类型的元件报告大于600毫秒的时间平均的响应时间THEN T2类型的元件具有P2类型的问题。
R3IF T1类型的元件具有P1类型或P10类型的问题,AND如果T2类型的元件具有P2类型的问题THEN T3类型的元件可能在下5分钟内以80%的概率具有P3类型的问题。
R4IF以大于50%的概率怀疑在下5分钟内有P3类型的问题THEN将该诊断传递给错误恢复逻辑模块715。
如果问题确定逻辑模块710确定合成记录709满足规则R1和R2的条件,它将使用其知识库(数据库711)和它的推理引擎(未示出)以便得出结论,即,元件701具有P1类型的问题,而元件702具有P2类型的问题。这些结论将构成新的事实,这些新的事实一起满足规则R3的条件,使得推理引擎进一步得出结论,即,元件703可能以80%的概率在下5分钟内具有P3类型的问题。对P3类型的问题的概率的断言又将触发规则R4,将指挥问题确定逻辑模块710将该诊断传递给错误恢复逻辑模块715。还可能的是,问题确定逻辑模块710的数据库711可能包含一个将被报告给错误恢复逻辑模块715以便进一步处理的问题类型的列表。作为另一种方法,问题确定逻辑模块710可以等待,直到它的推理引擎在将结果传达给错误恢复逻辑模块715之前不再得到更多的问题诊断时为止。
应当注意,用于问题确定逻辑模块710的数据库711不仅包含关于自治元件类型的信息,还可以存储关于元件之间的依存关系的辅助数据。问题确定逻辑模块710可以使用关于元件之间的依存关系的信息进行更快更准确的问题诊断。
在收到可能出现了P3类型的问题的信息之后,错误恢复逻辑模块715将在咨询了其数据库716并且使用它的推理引擎(未示出)之后确定活动过程。所述的活动过程可以被设计为防止、减少或纠正已经出现的问题或预期将出现的问题。所述的适当的活动过程可以被表示为包含在错误恢复逻辑模块715内的规则。表示条件和相应的活动过程的if-then规则的例子如下R5IF在T3类型的元件内以大于60%的概率在下5分钟内可能出现P3类型的问题THEN采取活动A1试图将T2类型的元件的负载减少10%。
在这种情况下,元件703中的问题的增加的可能性使得错误恢复逻辑模块715为了减少问题P3实际发生在T3类型的元件内的可能性为目的,在T2类型的元件内采取前摄的活动A1。
除了采取直接活动纠正、减少或防止问题的出现之外,错误恢复逻辑模块715可以具有其它的管理记录信息集合的规则。例如,它可以包括这样的If-then规则R6IF在T3类型的元件内以大于60%的概率在下5分钟内可能出现P3类型的问题THEN在记录逻辑模块704内增加新的规则R4,其中R4T2类型的元件将报告其负载,并且T3类型的元件应该每分钟报告E3类型的事件,直到由错误恢复逻辑模块715进一步通知时为止。
在这种情况下,自治元件703内的问题的增加的可能性最终导致了记录逻辑模块中的改变,从而元件702和703被监视的速率增加了。
一旦采取了上面的活动,它们在防止问题方面的成功(或失败)的程度被在测量模块718内监视。这个模块存储着关于由错误恢复逻辑模块建议的过去的活动、以及自治元件随后的行为的信息。这对在自治元件内在其活动和产生的事件之间存在相当大的时间延迟的情况下是特别重要的。例如,测量模块718可以确定在过去的7天内P3类型的问题出现在当规则R5被激活并且采取活动A1时的9个情况下的3个情况中。成功的程度确定如何修改并更新错误恢复逻辑模块715、问题确定逻辑模块710和记录逻辑模块721以及相应的数据库(716、711和705)内的事实。例如,更新逻辑719内的规则R7可以规定R7IF T3类型的元件即使在前5分钟内采取了活动A1之后还经历了P3类型的问题,THEN修改活动A1,使得A1试图以附加的10%减少T2类型的元件的负载,除非所测量到的负载小于10%。
注意错误恢复逻辑模块719、问题确定逻辑模块720和记录逻辑模块721的规则以及相应的数据库(705、711和716)中的事实不仅可以由机器修改,也可以由人修改。这样先前或新的领域的知识可以由外部实体在任意时间结合到系统中,以便进行更快的问题检测和错误恢复。
自治计算系统内的任何问题检测和纠正系统都必须应付这样的事实,即,在自治计算系统内自治元件经常被增加、删除和修改以便满足改变的功能要求。因此,逻辑模块中的推理和活动引擎必须是自适应的,并且可以对诊断失败(或失败的迹象)和处理失败(或失败的迹象)以其规则集中的适合的改变进行响应。为了支持这种自适应,本发明的优选实施例满足由Rouvellou,I.;DeGenaro,L.;Chan,H.;Rasmus,k.;Grosof,B.N.;Ehnebuske,D.;McGee,B.,“CombiningDifferent Business Rules TechnologiesA Rationalization,”In Proc.Ofthe OOPSLA 2000 Workshop on Best-practices in Business RuleDesign and Implementation,held Minneapolis,MN,USA,October15,2000中说明的4个目标(i)将逻辑模块内的程序上的逻辑与底层自治元件的原子细节隔离开。例如,重新考虑由于规则R7而被修改的活动A1A1试图以附加的10%减少T2类型的元件中的负载,除非所测量的负载小于10%。在这种情况下,更新逻辑模块719或错误恢复逻辑模块715可以不具有关于T2类型的元件实际上如何将所测量的负载减少10%的信息。但是,依赖于数据库716,错误恢复逻辑模块715知道T2类型的元件具有某个程序或方法以便将其测量的负载减少10%。此外,活动A1可以被使用在属于T2类型的所有自治元件上。
注意程序上的逻辑从底层自治元件的这种分离将考虑到逻辑模块的外部化,其中第三方可以提供用于问题确定和错误恢复的服务。
(ii)采用统一的框架,该框架增加、修改和删除数据库中与平台和环境相关的数据,而不影响逻辑模块中的推理和活动引擎。作为一个例子,当自治元件701首次被加入系统时,在数据库705中制作一个新的项目以便指示它的类型是T1。与环境相关的数据可以将一种类型的元件、事件或问题重新指定为另一种,而不影响记录模块中的逻辑。例如,由于在T3类型的特定的自治元件703中某些组件不可用,数据库705、711和716可以临时将元件703分类为是T1类型的。
注意关于自治元件的与平台和环境相关的数据从逻辑模块内的推理和活动引擎中的这种分离将考虑到逻辑模块和数据库的外部化,其中第三方可以提供用于问题确定和错误恢复的服务。
(iii)或是通过推理引擎的自动应用或是通过人工干预创建逻辑模块内的规则集中的规则、为所述规则重新分配优先级、修改所述规则和删除所述规则。例如,重新考虑规则R6R6IF在T3类型的元件内以大于60%的概率在下5分钟内可能出现P3类型的问题THEN在记录逻辑模块704内增加新的规则R4,其中R4T2类型的元件应该报告其负载,并且T3类型的元件应该每分钟报告E3类型的事件,直到错误恢复逻辑模块715进一步通知时为止。
在这种情况下,新规则R4被由错误恢复逻辑模块715创建,并且被加入到记录逻辑模块704的规则集内。
(iv)在创建、修改或删除逻辑模块的规则集内的规则后产生冲突时,解决多个规则之间的冲突。例如,重新考虑记录逻辑模块704内的上述的规则R4的引入R4T2类型的元件应该报告其负载,并且T3类型的元件应该每分钟报告E3类型的事件,直到错误恢复逻辑模块715进一步通知时为止。
然而,在这个例子中,记录逻辑模块已经具有规则R3R3IF元件是T3类型的元件THEN它应该每小时报告E3类型的事件。
因此,R3和R4规则彼此冲突,因为它们要求自治元件703(自治元件703是T3类型的)响应E3类型的事件采取不同的活动。
在冲突可以被解决之前,推理和活动引擎必须能够识别冲突的出现。典型地,当规则被创建、被修改、被重新分配优先级或被从逻辑模块内的规则集中删除时有可能出现冲突。因此,当规则集中发生变化时,推理引擎可以自动地调查冲突的可能的发生。
一旦识别到了冲突,推理和活动引擎可以使用多种冲突解决机制,包括基于(单不限于)绝对预定优先级(或分级)、特异性或起始时间的那些机制。本领域的普通技术人员将会认识到,多种可能的启发式函数或随机度量中的任意一个都可以被用来估计给定的规则或关系的适当性,并且此处所列举出的可能的方法并不旨在于穷举性地列出。礼貌(courteous)逻辑编程是一种可以被用于处理优先级分配和规则间的冲突解决的技术。礼貌逻辑编程描述于Grosof,B.,“IBMResearch ReportCourteous Logic ProgramsPrioritized ConflictHandling for Rules,”May 8,1997中,通过引用将其结合在此处。
作为冲突解决的例子,考虑上面的规则R3和R4。在规则R3和R4之间的冲突中,记录逻辑可以包含固定的优先级分配规则,为规则R4分配比规则R3较高的优先级。在其它情况下,可以一种更动态的和间接的方式通过优先级分配规则确定规则的相对的优先级,所述的优先级分配规则依赖于规则的某个方面,诸如它的特异性(例如,关于T2类型的元件的规则得到比关于所有元件的通用规则更高的优先级),它是多久以前被引入规则集的(例如,更近来的规则比较早的规则具有优先性),它是多久以前被激活的(例如,如果规则R3在规则R4之前被满足了多于10秒钟,则规则R4具有优先级)或是在一个给定的时间段内它被如何频繁地激活(例如,其条件一个1小时被满足10次的规则可以比其条件1天仅被满足1次的规则具有优先级)。另一个规则优先级分配准则是规则被察觉到的有效性。例如,假设在过去的7个小时内,问题确定逻辑模块710已经在10个场合诊断出了P3类型的问题的可能的发生。虽然在每个情况下,错误恢复逻辑模块715已经通过激活规则R5并且采取活动A1进行了响应,但是它没有能够阻止P3类型的问题在10中有8次出现。根据这个历史信息,优先级分配规则可以判定,活动包含A1的所有规则应该被降低优先级。反复地失败的规则可以被降低其优先级到这样一个点,在该点处它们可以被最终自动地从规则集中删除。在自治系统中允许规则优先级中的动态的改变是重要的,因为自治元件被不断地增加、修改和删除,并且任意推理规则或它们的关系,特别是那些从机器学习或数据挖掘中得出的,可能在适当性方面产生变化。
虽然本发明的优选实施例的图7的表示是自然顺序的,本领域的普通技术人员应当理解,图7中表示的代表活动的方框不必按示出的顺序或甚至是顺序地执行。可以实现多个任务被并行或同时(例如,作为单独的线程或进程)执行的实施例,而不脱离本发明的范围和精神。
本领域的普通技术人员将会认识到,在本发明的优选实施例中,单个问题检测和纠正逻辑被用于执行问题确定和错误恢复中的4个任务1)使用推理和活动引擎指挥系统组件在规定的条件下,以规定的详细程度记录规定类型的事件,2)使用推理和活动引擎,通过在学习/数据挖掘算法的帮助下将事件记录和问题的征兆关联在一起诊断问题(或问题的迹象),3)采用推理和活动引擎,该推理和活动引擎基于所述的问题诊断确定活动过程,并且测量那些活动在解决问题方面的成功或失败,4)使用这样一种方法,所述方法通过结合以下4个特征允许不同的推理和活动引擎自适应(a)将不同推理和活动引擎的程序上的逻辑与系统组件的细节隔离开,(b)采用一个框架增加、修改和删除与平台和环境相关的数据而不影响推理和活动引擎(c)创建规则、修改规则、为规则分配优先级或删除规则(d)解决多个规则之间的冲突。本领域的普通技术人员将会认识到分离的自治元件或它们的组件可以单独地执行这些任务。例如,第一自治元件可以设置记录策略,而另一个元件使用学习算法以便得到关于问题和它们的解决方案的新的知识。然后自治计算系统可以用“混合并匹配”的方式组合这些单独的问题检测/纠正元件,以便达到当前的要求。
重要的是要注意到,虽然已经在一个完全运行的数据处理系统的环境下描述了本发明,本领域的普通技术人员将会理解本发明的过程可以被以指令的计算机可读介质或其它功能描述材料的形式和其它多种形式发布,并且本发明不论实际用于承载该发布的信号承载介质的特定类型同等适用。计算机可读介质的例子包括可读类型的介质,诸如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM和传输类型的介质,传输类型的介质诸如数字和模拟通信链路、使用诸如射频和光波传输的传输形式的有线或无线通信链路。计算机可读介质可以采用编码的格式,其被解码以便在特定的数据处理系统内实际使用。功能描述材料是将功能告知机器的信息。功能描述材料包括但是并不限于,计算机程序、指令、规则、事实和可计算的功能、对象和数据结构的定义。
出于示例和说明的目的已经给出了本发明的描述,并且该描述并不旨在是穷尽的或是将本发明限定于所公开的形式。许多修改和改变对于本领域的普通技术人员来说是明显的。选择并描述本文的实施例以便最好地解释本发明的原理、实际的应用,并且使得本领域的普通技术人员能够理解本发明的具有各种改变的各种实施例适用于所构想的特定应用。
权利要求
1.一种为计算环境提供问题确定和错误恢复特征的基于计算机的方法,该方法包括接收关于计算环境的状态的信息;从规则的知识库中识别至少一个适用的规则,其中所述至少一个适用的规则适用于所述计算环境的状态;和施加所述至少一个适用的规则以便获得结果,其中规则的知识库包括记录逻辑规则、问题确定逻辑规则和错误恢复逻辑规则中的一个,所述记录逻辑规则规定特定的事件应当由系统组件在规定环境下记录,所述问题确定逻辑规则规定被包括在事件记录中的特定信息的出现指示特定的问题,错误恢复逻辑规则规定特定的问题意味着应当遵从针对所述特定问题的特定解决方案。
2.如权利要求1的方法,其中规则的知识库包括至少一个记录逻辑规则,并且所述结果是规定了特定的事件应当如何由系统组件记录的记录策略。
3.如权利要求2的方法,其中所述的记录策略包括对执行特定事件的记录的系统组件的识别。
4.如权利要求2的方法,其中所述记录策略包括规定的条件,所述特定的事件将被在该规定的条件下记录。
5.如权利要求2的方法,其中记录策略包括规定的详细程度,所述特定的事件将被以该规定的详细程度记录。
6.如权利要求1的方法,其中规则的知识库包括至少一个问题确定逻辑规则,并且所述的结果是问题的诊断。
7.如权利要求6的方法,其中所述至少一个问题确定逻辑规则使用统计测试使得包含在事件记录中的特定信息与问题相关联。
8.如权利要求6的方法,其中所述至少一个问题确定逻辑规则使用机器学习算法将包含在事件记录中的特定信息与问题相关联。
9.如权利要求1的方法,其中所述的规则的知识库包括至少一个错误恢复逻辑规则,并且所述的结果是在解决问题中所遵循的活动过程。
10.如权利要求9的方法,还包括遵循所述的活动过程以便解决该问题;和响应对所述活动过程的遵循,确定所述活动过程的成功的程度。
11.如权利要求10的方法,还包括响应所述活动过程的成功的程度,为知识库中的规则分配优先级。
12.如权利要求1的方法,还包括使用机器学习算法向知识库增加附加的规则。
13.如权利要求12的方法,其中所述的机器学习算法是归纳逻辑编程算法。
14.如权利要求1的方法,还包括确定所述知识库内的规则的适当程度;和响应对所述规则具有低的适当程度的确定,删除规则。
15.如权利要求1的方法,还包括确定所述知识库内的规则的适当程度;和响应对所述规则具有低的适当程度的确定,在知识库内为所述规则分配低的优先级。
16.如权利要求1的方法,还包括使用机器学习算法修改知识库中的规则。
17.如权利要求16的方法,其中所述的机器学习算法是监督学习算法。
18.如权利要求17的方法,其中所述的监督学习算法是神经网络、贝叶斯网络和支持向量机器中的一个。
19.如权利要求16的方法,其中所述的机器学习算法是非监督学习算法。
20.如权利要求19的方法,其中所述的非监督学习算法是k-means聚类、分层聚类和主成分分析中的一个。
21.如权利要求1的方法,其中接收关于计算环境的状态的信息、识别至少一个适用的规则和施加所述至少一个适用的规则是响应来自客户的请求而被执行的。
22.一种包括功能描述材料的计算机可读介质内的计算机程序产品,当被计算机执行时能够使计算机执行如下的活动,所述活动包括接收关于计算环境的状态的信息;从规则的知识库中识别至少一个适用的规则,其中所述至少一个适用的规则对所述计算环境的状态是适用的;和施加所述至少一个适用的规则以便获得结果,其中规则的知识库包括记录逻辑规则、问题确定逻辑规则和错误恢复逻辑规则中的一个,所述记录逻辑规则规定特定的事件应当由系统组件在特定环境下记录,所述问题确定逻辑规则规定被包括在事件记录中的特定信息的出现指示特定的问题,错误恢复逻辑规则规定特定的问题意味着应当遵从针对所述特定问题的特定的解决方案。
23.如权利要求22的计算机程序产品,其中规则的知识库包括至少一个记录逻辑规则,并且所述结果是规定了特定的事件应当如何由系统组件记录的记录策略。
24.如权利要求23的计算机程序产品,其中所述的记录策略包括对执行特定事件的记录的系统组件的识别。
25.如权利要求23的计算机程序产品,其中所述记录策略包括规定的条件,所述特定的事件将被在该规定的条件下记录。
26.如权利要求23的计算机程序产品,其中记录策略包括规定的详细程度,所述特定的事件将被以该规定的详细程度记录。
27.如权利要求22的计算机程序产品,其中规则的知识库包括至少一个问题确定逻辑规则,并且所述的结果是问题的诊断。
28.如权利要求27的计算机程序产品,其中所述至少一个问题确定逻辑规则使用统计测试使得包含在事件记录中的特定信息与问题相关联。
29.如权利要求27的计算机程序产品,其中所述至少一个问题确定逻辑规则使用机器学习算法将包含在事件记录中的特定信息与问题相关联。
30.如权利要求22的计算机程序产品,其中所述的规则的知识库包括至少一个错误恢复逻辑规则,并且所述的结果是在解决问题中所遵循的活动过程。
31.如权利要求30的计算机程序产品,包括附加的功能描述材料,该材料当被计算机执行时能够使计算机执行附加的活动,所述活动包括遵循所述的活动过程以便解决该问题;和响应对所述活动过程的遵从,确定所述活动过程的成功的程度。
32.如权利要求31的计算机程序产品,包括附加的功能描述材料,该材料当被计算机执行时能够使计算机执行附加的活动,所述活动包括响应所述活动过程的成功的程度,为知识库中的规则分配优先级。
33.如权利要求22的计算机程序产品,包括附加的功能描述材料,该材料当被计算机执行时能够使计算机执行附加的活动,所述活动包括使用机器学习算法向知识库增加附加的规则。
34.如权利要求33的计算机程序产品,其中所述的机器学习算法是归纳逻辑编程算法。
35.如权利要求22的计算机程序产品,包括附加的功能描述材料,该材料当被计算机执行时能够使计算机执行附加的活动,所述活动包括确定所述知识库内的规则的适当程度;和响应对所述规则具有低的适当程度的确定,删除规则。
36.如权利要求22的计算机程序产品,包括附加的功能描述材料,该材料当被计算机执行时能够使计算机执行附加的活动,所述活动包括确定所述知识库内的规则的适当程度;和响应对所述规则具有低的适当程度的确定,在知识库内为所述规则分配低的优先级。
37.如权利要求22的计算机程序产品,包括附加的功能描述材料,该材料当被计算机执行时能够使计算机执行附加的活动,所述活动包括使用机器学习算法修改知识库中的规则。
38.如权利要求37的计算机程序产品,其中所述的机器学习算法是监督学习算法。
39.如权利要求38的计算机程序产品,其中所述的监督学习算法是神经网络、贝叶斯网络和支持向量机器中的一个。
40.如权利要求37的计算机程序产品,其中所述的机器学习算法是非监督学习算法。
41.如权利要求40的计算机程序产品,其中所述的非监督学习算法是k-means聚类、分层聚类和主成分分析中的一个。
42.如权利要求22的计算机程序产品,其中接收关于计算环境的状态的信息、识别至少一个适用的规则和施加所述至少一个适用的规则是响应来自客户的请求而被执行的。
43.一种数据处理系统,包括用于接收关于计算环境的状态的信息的装置;用于从规则的知识库中识别至少一个适用的规则的装置,其中所述至少一个适用的规则对所述计算环境的状态是适用的;和用于施加所述至少一个适用的规则以便获得结果的装置,其中规则的知识库包括记录逻辑规则、问题确定逻辑规则和错误恢复逻辑规则中的一个,所述记录逻辑规则规定特定的事件应当被由系统组件在特定环境下记录,所述问题确定逻辑规则规定被包括在事件记录中的特定信息的出现指示特定的问题,错误恢复逻辑规则规定特定的问题意味着应当遵从针对所述特定问题的特定的解决方案。
44.如权利要求43的数据处理系统,其中规则的知识库包括至少一个记录逻辑规则,并且所述结果是规定了特定的事件应当如何由系统组件记录的记录策略。
45.如权利要求44的数据处理系统,其中所述的记录策略包括对执行特定事件的记录的系统组件的识别。
46.如权利要求44的数据处理系统,其中所述记录策略包括规定的条件,所述特定的事件将被在该规定的条件下记录。
47.如权利要求44的数据处理系统,其中记录策略包括规定的详细程度,所述特定的事件将被以该规定的详细程度记录。
48.如权利要求43的数据处理系统,其中规则的知识库包括至少一个问题确定逻辑规则,并且所述的结果是问题的诊断。
49.如权利要求48的数据处理系统,其中所述至少一个问题确定逻辑规则使用统计测试使得包含在事件记录中的特定信息与问题相关联。
50.如权利要求48的数据处理系统,其中所述至少一个问题确定逻辑规则使用机器学习算法将包含在事件记录中的特定信息与问题相关联。
51.如权利要求43的数据处理系统,其中所述的规则的知识库包括至少一个错误恢复逻辑规则,并且所述的结果是在解决问题中所遵循的活动过程。
52.如权利要求51的数据处理系统,还包括用于遵循所述的活动过程以便解决该问题的装置;和用于响应对所述活动过程的遵从,确定所述活动过程的成功的程度的装置。
53.如权利要求52的数据处理系统,还包括用于响应所述活动过程的成功的程度,为知识库中的规则分配优先级的装置。
54.如权利要求43的数据处理系统,还包括用于使用机器学习算法向知识库增加附加的规则的装置。
55.如权利要求54的数据处理系统,其中所述的机器学习算法是归纳逻辑编程算法。
56.如权利要求43的数据处理系统,还包括用于确定所述知识库内的规则的适当程度的装置;和用于响应对所述规则具有低的适当程度的确定,删除规则的装置。
57.如权利要求43的数据处理系统,还包括用于确定所述知识库内的规则的适当程度的装置;和用于响应对所述规则具有低的适当程度的确定,在知识库内为所述规则分配低的优先级的装置。
58.如权利要求43的数据处理系统,还包括用于使用机器学习算法修改知识库中的规则的装置。
59.如权利要求58的数据处理系统,其中所述的机器学习算法是监督学习算法。
60.如权利要求59的数据处理系统,其中所述的监督学习算法是神经网络、贝叶斯网络和支持向量机器中的一个。
61.如权利要求58的数据处理系统,其中所述的机器学习算法是非监督学习算法。
62.如权利要求61的数据处理系统,其中所述的非监督学习算法是k-means聚类、分层聚类和主成分分析中的一个。
63.如权利要求43的数据处理系统,其中接收关于计算环境的状态的信息、识别至少一个适用的规则和施加所述至少一个适用的规则是响应来自客户的请求而被执行的。
全文摘要
公开了一种用于在自治计算系统(400)内识别、追踪、诊断和修复问题的方法、计算机程序产品和数据处理系统。使用自适应的推理和活动系统(710)制定了在记录数据、在诊断故障(或故障的迹象)和在处理故障(或故障的迹象)中应遵从的规则和活动过程(704)。自适应的推理和活动系统(710)包括冲突解决技术,所述的冲突解决技术基于特定于环境的信息、积累的时间敏感的数据、采取的活动和这些活动的效果产生规则(704)、为规则(704)分配优先级、修改规则(704)和删除规则(704)。因此,本发明使得动态的自治计算系统(400)即使是面对系统(400)的配置的改变也能够制定其自己的用于自我管理的策略。
文档编号H04L1/22GK1682243SQ03821448
公开日2005年10月12日 申请日期2003年7月21日 优先权日2002年9月20日
发明者钱浩(音译), 拉加什·达斯, 杰夫里·克普哈特, 埃拉·西加尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1