陆明祥
(苏州工业职业技术学院,215104)
网络故障管理是为了使网络能够保持正常稳定的运行,在互联网时代,一旦网络出现问题就给人们的生活带来很大不便,这就迫切需要我们采用合理的故障管理方法,及时发现故障并能够快速解决。因此,研究如何通过网络故障管理确保网络正常运行,提高网络的可靠性具有十分重要的现实和社会意义。
随着网络规模的日益扩大和网络复杂性的增强,传统的网络故障管理方法已难以适应大规模的网络管理。人工智能专家系统、数据挖掘、遗传算法、神经网络和agent 技术逐渐被引入到网络故障管理中[1-3]。在实际使用的故障管理智能化方法中,存在着一些不足之处,主要表现为:通用性差,移植性不强;动态数据利用不平衡;学习能力差。
人工免疫算法具备多样性、学习能力强、自适应调整,Agent具备自主性、交互性、推理能力等特点,两者结合恰好可以弥补上面的一些不足。同时,使用Agent 技术的能够将复杂的网络分解为几个子网络,提高网络故障管理效率。
在前面介绍理论的基础上,我们提出了一个基于免疫 agent的网络故障管理模型。下面对这个模型进行详细分析。
免疫 Agent 网络模型的工作原理是,当网络发生故障的时候,搜集故障信息,然后经过一定的处理后,以抗原的形式提交到本地 agent,本地 agent 首先在本地知识库进行搜索,看是否存在与抗原相匹配的故障类型,如果存在,那么输出故障信息,同时发送匹配成功的激励信号;否则发送协助信号,请求其他agent协助解决,其他 agent 接收到帮助信号以后,到自己agent 中的知识库就行搜索,看是否存在相匹配的信息,如果存在,则将匹配到的故障类型发送给本地 agent,否则将故障信息交由人工解决。免疫 agent 模型如图3.1 所示。
模型的运行是不断进行迭代的协同进化过程。每进行一次故障数据信息的诊断,模型就完成一次迭代过程。每一次迭代中,Agent 之间会进行信息的交互,在迭代过程中每一个agent 的知识库(也就是抗体集)会不断的进行更新,因而故障诊断能力会不断的增强,整个过程是始终是处于动态变化。
移动agent 由六种不同功能的agent 组成。下面对每种agent 功能进行详细介绍。
2.1.1.信息采集agent
信息采集是进行故障诊断的前提。信息采集agent 主要是对网络主机及所属子网络上的原始数据进行收集,然后将收集到的原始数据保存,然后进行一些预处理 (如分析数据传输采用的协议、丢包率等),为故障诊断准备好数据信息。
2.1.2 故障诊断 agent
故障诊断agent 是整个系统的核心。一个故障诊断 agent通常只包含相对有限、独立的故障检测方法,提供对某一具体类型的数据分析服务,因此它的检测能力是非常有限的。故障诊断agent 根据本身的责任,它会主动发送请求给相关的信息采集agent,然后对返回的信息进行分析,得出诊断结论。如果存在无法识别的异常,故障诊断 agent会将数据源信息、实际诊断方法、故障参数等信息作为本地存储,发送给决策 agent 做下一步处理。
2.1.3 通信 agent
所谓的通信 agent 就是负责网络 agent 之间的相互通信。每个局域网都有一个通信 agent 而且是唯一,局域网内的agent 之间必须通过通信agent 才能进行交互,否则不能直接通信。通信agent 本身并不具备执行诊断任务的能力,是为其他agent 服务的。
2.1.4 决策 agent
系统在故障诊断过程中可能遇到各种问题,如数据采集不完整、领域知识不完备等,这些因素增加了检测结果的不确定性。对于比较简单的任务而言,决策 agent 也许不是必需的,但是如果任务比较复杂,根据单一故障特征并不能确定问题的所在,此时决策agent 就发挥作用了。如果无法得出明确的诊断结论,这个时候决策agent 会将诊断信息发送给系统管理agent,请求人工处理,处理完成后,将处理信息添加到知识库中,以备将来使用,这也就是学习过程。
2.1.5 知识管理agent(知识库)
知识管理agent 主要功能是存储相关领域的基本原理、专家的经验知识以及一些实际案例等,信息数据也是专家知识库的重要部分。知识库的内容为各种故障的诊断提供了必需的知识。知识管理agent 主要是维护、搜索、转换知识库中的知识,包括协调全局、本地知识库的管理的同步和关联,负责知识库中知识的更新与学习。
2.1.6 系统管理agent
系统管理agent 是整个系统正常运行的保障,主要职责是负责 agent 的创建、挂起、注销等,并为各个agent 提供信息搜索功能。系统管理agent 中还为诊断任务联盟提供信息存储功能。
2.1.7 故障诊断中抗体库算法设计
在整个系统中,故障诊断是系统中的最重要部分,而故障诊断的核心是抗体库。本文基于免疫原理的设计了一种高效的算法,具体描述如下。
(1)初始种群,根据待解决问题的具体要求,随机产生数量为N 的个体。
(2)根据专家知识和经验建立本地知识库,本地知识库包含的一系列的抗体集。
(3)本地知识库接收其它Agent 的疫苗,然后进行知识库的更新,形成新的抗体集。
(4)抗原传感器采集一定范围内的信息数据。
(5)如果判断采集到的信息数据可能会存在异常,则发送协助解决信息给当前免疫Agent,处于等待状态并保持免疫耐受,转步骤(8)。
信息数据与本地知识库抗体进行匹配,如果匹配成功,那么表明本地知识库内有对应的解决方案(即存在抗体),然后进行免疫应答。
(6)将此抗体模式作为疫苗,发送刺激信号给其它相关免疫Agent,然后可以作为经验给其它免疫Agent 解决类似问题。
(7)进入下一阶段,转到步骤(3)。
(8)若免疫Agent 返回的信息是继续等待,那么继续保持免疫耐受,并转到步骤(7);若其它免疫Agent 返回经验知识作为参考,那么转到步骤(5),并且学习参考经验知识并保存,然后对本地知识库进行更新,提供给下次免疫答复。
实际的操作过程中,我们首先需要定义网络状态和实体,网络故障具体表现在网络实体的某些的属性值的超出了允许的范围,然后系统就可以获取网络运行时的信息,对这些信息进行预处理,将其转换成具体问题的求解,最后将此问题求解方案通过一定的形式转化成免疫算子,用于生成种群中的个体。
传统的网络故障管理一般采用的是集中式的管理,但是随着网络规模的扩大,网络变的越来越复杂,集中式管理的缺点也逐渐暴露。目前的集中式管理模式大多通过远程代理进行网络信息的检测,这种模式必须由管理者发出消息,因此缺少自主性,而且容易造成网络带宽的闲置。
基于免疫Agent 的智能故障管理系统,能较好的地解决这些缺点,摆脱了依赖管理员和远程代理进行检测的被动方式。移动Agent 能实现对本地网络的主动检测。另外,网络故障管理中引入移动Agent 增强了故障诊断能力,能对故障进行自动修复。若移动Agent 自身处理不了,立即将提取故障信息发送给系统管理agent,系统管理agent 会在最短的时间内给出故障诊断结果,然后发送给移动Agent,进行修复处理。
本文提出的基于免疫agent 的网络故障管理智能化系统,相对于传统的网络故障管理,具有更好的灵活性和主动性,具有更高的效率和决策能力。我们将免疫算法和Agent 结合运用到网络故障管理中,可以对一些不完整的信息进行处理,提高了网络管理智能化水平,特别适合于分布式的大型复杂网络,能更好地、更快的发现解决了网络中存在各种问题。
[1]王伟,芦东昕,唐 英.基于专家系统的网络故障管理系统的设计[J].计算机工程与设计,2005,26(11):3031-3033.
[2]王洪元,史国栋等.数据挖掘技术在故障诊断中的应用[J].江苏石油化工学院学报,2001,13(4):42-44.
[3]戴忠健,苏利敏.基于遗传算法的网络故障诊断专家系统的设计与实现[J].北京理工大学学报,2005,25(1):38-40.
[4]刘韬,王耀才,王致杰.一种基于人工免疫系统的聚类算法[J].计算机工程与应用,2004(19):82~84.
[5]王汝传,徐小龙,黄海平.智能 agent 及其在信息网络中的应用[M].北京邮电大学出版社,2006.