摘要:研究了多主体智能故障管理模型的结构及系统构成并给出了模型功能的实现。
关键词:主体智能故障管理模型
随着网络规模的不断扩大,网络的维护和操作变得相当复杂。如何保证网络安全、稳定和可靠地运行,一直同络管理领域的热门研究课题。
故障管理是网络管理体系结构的一个重要组成部分,主要包括检测、隔离、确定故障因素、纠正故障等功能。设立故障管理的目标是提高网络可用性,降低网络停机次数并迅速修复故障。作为高速骨干网络上运行的T比特路由器,对它进行故障管理,以便在路由器发生故障时及时进行修复,避免影响网络的使用。
大规模汇聚接入路由器(ACR)系统中包括多个设备,而各个设备又是相互关联的,一个设备的故障同时可能会引起另外一个或多个设备故障的发生,从而可能会导致整个网络瘫痪。传统的故障管理方法只能对单设备故障进行有效的管理,对多设备的关联故障不能及时地进行诊断及恢复,不能保证网络的正常运行。
1 与现有故障管理技术的比较
目前,研究故障诊断的方法主要有两种类型:专家系统方法和工神经网络方法。专家系统是在宏观功能上模拟人的知识推理能力,是以逻辑推理为基础模拟人类思维的符
现有的智能故障管理技术主要有以下三个缺点:
(1)目前智能故障管理的研究主要集中在专家系统上,不能适应新的或不完备的数据,很难应用于大型动态网络。
(2)故障诊断的专家系统主要采用一种技术,实际应用范围较窄。
(3)主要进行故障诊断,不支持故障自动恢复。
主体(Agent)是指能在动态的多Agent领域采取灵活、自治活动的计算机实体,智能Agent是具有实时处理多维信息、相互作用和能有效传递信念、意图等智能的自治的软件实体。它具有智能性、自治性、灵活性、开放性、适应性、协作性和推理机制等特性。
智能Agent的内部行为表现为:通信管理器接收外部环境的信息,由推理机根据这些信息和Agent状态。进行分析和理解,形成与其他A舞enI相一致的协同工作方式,并按该方式及自身能力(知识水平等),执行相关的动作,形成Atent新的状态,由此而进一步引起新的Agent推理活动。智能Agent的话动行为是主动进行的,Agent的推理机每隔一时间片都要检测通信状态和自身状态,以确定其推理活动的趋势。
同传统的故障管理技术相比,智能Agent故障管理模型具有下面三个优点:
(1)将多Agent技术应用于复杂故障诊断领域,对诊断任务辨识、分解,综合利用各Agent的内部诊断机制,通过各Agent问的交互、协作,对故障进行诊断,使故障诊断技术能应用于大型动态网络及各种复杂设备。
(2)各诊断Agent间综台利用多种智能故障技术,以便能对多数故障进行诊断。
(3)通过故障诊断结果,增加故障恢复模块,对故障进行自动恢复。
2 智能故障管理的模型
2.1 故障管理流程
故障管理主要包括故障发现、故障诊断和故障恢复三个部分。故障管理的流程如图1所示。
点击看原图 2.2 智能故障管理的自动机模型 点击看原图 通过上述定义可知,Agent是具有特定领域知识和问题求解能力,能自主工作和具有协作交互能力的智能实体,具有知识、模型和数据处理能力,基于Agen的语言L而进行多Agent问复合问题求解规划过程。Agent可由各Web节点组合而
智能故障管理的状态机模型如图2所示。
模型用BNF形式化表示如下:
<领域经验知识>::=<领域经验知识头><领域经验知识体>
<领域经验知识头>::=<领域经验知识名>[<经验知识代码>][<知识库名>][<说明表>]
<领域经验知识体>::=IF{<前提条件><运算符>}+THEN<结论>
<前提条件>::=项、变量或用户定义的表达式名<运算符>::=ANDIOR
<结论>::=表达式
这一描述完全揭示了模型的三级信息形式,即模型的用户视图、概念结构和可运行实体。
3 智能Agent框架结构
依据智能Agent的内部行为表现,为完成故障的实时监控、诊断及恢复功能,采用图3所示的结构来构成智能Agent,内部结构采用统一模式来描述。
4 智能Agent系统构成
模型结构构成如图4所示。
点击看原图 下面对结构中的相关部分进行简要的介绍: (2)信息获取Agent (3)任务管理Agent 任务分解的原则是诊断子任务目标明确,并且使予任务间的耦合尽量少,以简化完成子任务的诊断Ageant之间的协作和通信。一般来说,在高层(粗粒度上)多采用结构分解,而底层(细粒度上)多采用故障分解,这与人们一般的诊断思路相一致。这种综合分解可以一直进行到设备某个基本结构的一个明确的故障问题。这种目标明确的诊断子任务称为诊断活动。诊断活动与一般的诊断子任务的区别是诊断活动包含明确的故障诊断操作。对诊断领域问题进行分布式任务分解,将得到一个层次结构清晰的诊断任务树。 当某故障问题的诊断可能或必须通过多个诊断A-gent协作完成时,必须考虑多个诊断Agent间的协调与合作问题。对于某诊断任务,各个诊断Agent具有不同的性能。因此须选择耗费系统资源最少、诊断效果最好的诊断Agent来完成诊断任务。这就是诊断Agent的协调问题。量化诊断Agent诊断性能是解决Agent间协调问题的关键。另外,对于复杂的故障论断问题须基于多Agent的思想,将其分解并运用多种故障诊断方法协同完成,这就是多诊断Agent间的使用问题。为了完成共同诊断任务而合作的诊断Agent的集体形成一个诊断Agent联盟。这要求每个Agent对其他Agent的功能、效率有较详细的了解。因此,在设计时要把其他Agent的资料放在Agent的数据库内,并且Agent自身能够根据实际情况对数据库进行修改,根据这些资料选择合作对象。 (4)诊断Agent (5)用户界面Agent (6)故障恢复Agent (7)系统功能的实现 系统可采用CORBA来实现诊断Agent间的通信,CORBA的平台无关性和语言无关性对多Agent智能故障诊断及恢复的实现至关重要,不考虑操作系统和编程语言的差异将大大减轻系统开发的工作量。 KOML是用来实现各Agent交互的消息格式和消息处理协议。它使得Agent能够和其他的Agent以及Agent所运行的环境进行知
(1)通信接口
通信接口有两个功能:输入信息处理、系统输出表示。主要功能是把输入信息转变为相应的知识查询与操纵语言KQML(Knowledge Query and Manipulation,Language)消息格式进行发送,同时还负责显示系统的处理结果或信息。通信接口的设计要注意应用重用性。
故障信息管理不只是一个简单的集中式数据库和知识库,而且信息的格式也可能不同,因此信息的获取就显得非常重要。信息获取Agent封装了信息的存取过程,通过KQML与外界交互信息,内部采用JDBC、ODBC等方式存取信息。
任务管理Agent主要包括信息预处理、任务分解及任务控制等。
信息预处理主要是信息的过滤、分类和关联。
信息过滤,是指将采集到的故障信息根据定义的规则进行过滤,去除无关的告警信息的动作。广义地,可以指从多个告警中过滤出少数告警的任何动作。
信息分类,
是指将告警信息按照告警等级进行分类,根据告警信息的等级及策略优先级决定处理的顺序。
信息关联,是指从大量的告警信息中发现频繁出现的项集模式知识,通过剔除不必要和不相关的信息,提高信息的语义表达,帮助找出产生事件的真正问题或条件。
诊断Agent实现各种具体的分析和诊断算法。包含FFTr Agent、小波分析Agent、时序模型Agent等分析方法以及神经网络Agent、遗传算法Agent、专家系统Agent等智能诊断模型。诊断Agent同时对知识库进行管理。
用户界面Agent的主要功能是代替传统智能决策系统中的问题与人机交互系统来与用户进行交互。它采用一种间接管理风格。在基于该模型的系统中,用户只需给出大概的指导即可以控制系统的运行,而无须显式地告诉计算机具体的行为。由于Agent本身具有面向目标(即能够展现出一种导向目标的行为)和协作性(可协商)的特点,因此它可以针对不同用户进行不同的处理。用户界面Agent可以针对不同的用户进行个性化处理,从而能够适应于特定用户的特定行为。当它能够确定用户在某个特定的情况下将如何作出反应时,它就开始替代或者帮助用户完成相应的任务。
根据诊断Agent给出的诊断结果及方法对故障进行恢复,可通过自动恢复脚本或POST方法实现。
面向Agent的软件机制是设计各应用领域的多Agent的软件技术基础,包括面向Agent的分布式软件协议(CORBA、COM/DCOM)、Agent间的通信语言KQML、面向Agent的开发环境平台以及面向Agent的程序设计(AOP)等。
故障诊断Agent的知识库建立和维护采用Visual Prolog开发平台,系统的知识库主要是通过人工方式建立的,故障诊断Agent可对知识库进行修改和添加。
在传统智能故障管理的基础上,结合Agent技术,提出了多Agent智能故障管理模型,并给出了其实现方法。该方法克服了传统故障管理方法的许多不足,大大提高了大规模汇聚接入路由器的设备及网络的性能,保证了网络的正常运行。