网络故障管理专家系统的研究与实现.docx
《网络故障管理专家系统的研究与实现.docx》由会员分享,可在线阅读,更多相关《网络故障管理专家系统的研究与实现.docx(34页珍藏版)》请在冰豆网上搜索。
![网络故障管理专家系统的研究与实现.docx](https://file1.bdocx.com/fileroot1/2023-1/3/14a84fcf-f62d-4f2d-95f9-dfa275c68f03/14a84fcf-f62d-4f2d-95f9-dfa275c68f031.gif)
网络故障管理专家系统的研究与实现
毕业设计论文
题目
网络故障管理专家系统的研究与实现
专业名称
软件工程
学生姓名
陆洪勇
指导教师
李勇
毕业时间
2008年7月
毕业任务书
设计
论文
一、题目
网络故障管理专家系统的研究与实现
二、指导思想和目的要求
1.指导学生综合运用所学的基础理论知识和专业技术知识,研究学习JAVA平台下SNMP网络程序的设计与开发技术以及Jess规则引擎;
2.学习和掌握利用各种资料,尤其是网络资源,分析和解决网络故障管理专家系统设计与开发中遇到的各种实际问题;
3.通过网络故障管理专家系统项目的设计开发,学习和掌握JAVA平台下设计与开发理论以及SNMP相关知识。
三、主要技术指标
1.程序开发工具为Eclipse,页面开发工具为Dreamweaver,数据库为Oracle数据库,规则引擎采用基于Java的Jess规则引擎。
2.实现网络故障专家系统的规则制定以及故障分析。
3.实现的功能包括:
网络故障规则的制定;网络故障规则的添加,修改,删除;网络故障告警信息的分析等。
四、进度和要求
1、2007年12月26日到2008年1月31日:
完成毕业设计开题报告做完。
这期间,在分析了大量的文献资料后,决定采用以部分改良式的专家系统来部署整个系统。
2、2008年2月1日到2008年3月1日:
主要完成了部分知识储备和部分技术的初步实施。
上面系统中的四大模块:
数据库;规则管理模块;告警服务模块;Web服务模块。
1)对于告警服务器模块:
研究AdventNet公司的SNMPJava开发包,研究怎样通过使用开发包里的API来使管理站能与被管理站进行通信。
这期间所有的trap信息接收及MIB信息的查询都是通过使用模拟器来实现的。
2)规则管理模块:
研究SandiaNationalLaboratories出品的基于Java平台的规则引擎Jess系统。
重点学习了怎样去写规则以及怎样使规则能够正常推理。
3)数据库部分:
学习Oracle数据库的使用和管理。
这阶段使用Oracle的数据库进行规则信息的输入,并通过规则管理模块使用JDBC与其进行通信。
3、2008年3月1日到2008年4月1日:
对思科设备的告警信息进行归类及分析研究。
4、2008年4月1日到2008年4月17日:
研究思科设备的规则信息结构。
因为规则信息是需要不断的输入的,所以这个工作一直不断的进行下去。
5、2008年4月18日到2008年4月27日:
完成关于思科设备在以太网网络中发送的告警信息的规则的制定。
同时,正式使规则管理模块与数据库模块联动起来。
这样,规则库管理模块就能够非常方便的调用数据库中的规则信息。
6、2008年4月28日到2008年5月4日:
将告警服务模块的告警信息接收部分与规则库管理模块进行整合,同时可以使得三大模块可以同时运行,同步实施,相互作用。
7、2008年5月5日到2008年5月31日:
完成设计的大部分模块,将本系统与实习单位的系统进行整合,并在实际网络中进行试运行。
期间不断调试系统的bug及改善系统部分缺陷。
接受部门的验收并为毕业论文的写作准备相关材料。
之后开始用一周的时间进行毕业论文的写作。
8、2008年6月1日到2008年6月13日:
科技论文翻译,毕业论文答辩准备。
五、主要参考书及参考资料
【1】AdventNet.AdventNetSNMPAPI4文档[E].
【2】SandiaNationalLaboratories.JessInAction[E].ErnestFriedman-Hill.2008年2月。
【3】MetaStuff.dom4j1.6.1API[E].
【4】XMLNetworks.TRAPObjectsforcisco[E]2008年3月。
【5】CiscoSystems.SNMPObjectNavigator[E].
【6】W.RichardStevents.TCP/IP详解卷一:
协议[M].机械工业出版社.2007年11月。
【7】李千目.一种基于自愈策略的网络故障诊断系统[J].仪器仪表学报.2005年8月。
【8】刘培奇.扩展产生式规则的网络故障诊断专家系统[J].西安交通大学学报.2004年8月。
【9】薛军.基于专家系统的网络故障智能管理系统的设计和实现[C].中国计算机学会第12届网络与数据通信学术会议.2002年12月。
【10】陈敏.网络故障诊断专家系统中知识库的设计[J].电子科技大学学报.2005年12月。
【11】杨广明.网络拓扑发现技术的研究与实现[C].中国计算机学会第12届网络与数据通信学术会议.2002年12月。
学生________指导教师___________系主任___________
目录
摘要I
AbstractII
第1章绪论1
1.1设计的目的和意义1
1.2专家系统发展情况简介1
1.3设计原理及规模介绍2
第2章理论分析3
2.1SNMP技术及原理3
2.1.1SNMP原理3
2.1.2AdventNetSNMPAPI5
2.2规则引擎及规则6
2.2.1规则引擎的简介和原理6
2.2.2Jess规则引擎7
2.3页面开发9
2.3.1MVC模式9
2.3.2JavaServlet技术简介9
2.3.3XML的应用11
第3章网络故障管理专家系统的分析与设计12
3.1专家系统设计目标12
3.2专家系统系统结构及功能需求12
3.3专家系统需求分析13
3.3.1专家系统需求描述13
3.4专家系统功能模块14
3.4.1Web服务器模块14
3.4.2数据库模块15
3.4.3规则管理模块16
3.4.4告警服务器模块17
3.5本章小结20
第4章网络故障管理专家系统的详细设计22
4.1网络故障管理专家系统的环境22
4.1.1开发和运行环境22
4.2网络故障管理专家系统的具体实现22
4.2.1Web服务器模块22
4.2.2数据库模块的实现24
4.2.3规则管理模块24
4.2.4告警服务模块26
4.3项目中的难点27
4.3.1规则信息的收集27
4.3.2规则知识29
4.4本章小结30
第5章结论31
5.1开发中遇到问题31
5.2设计中的不足之处35
致谢36
参考文献37
毕业设计小结38
摘要
专家系统是一个具有智能特点的计算机程序,它的智能化主要表现为能够在特定的领域内模仿人类专家思维来求解复杂问题。
因此,专家系统必须包含领域专家的大量知识,拥有类似人类专家思维的推理能力,并能用这些知识来解决实际问题。
它能解决特定领域的具体问题,但是需要大量与研究领域问题密切相关的知识;能对自身的工作过程进行推理,基于知识的问题求解方法,知识库与推理机分离等特点。
本文关注的是网络故障管理专家系统,就是应用专家知识来判断和推理故障发生的原因等信息。
着重进行了知识的采集,知识的存储,推理规则的制定等方面的研究。
规则引擎(即知识引擎)采用的是基于Java的Jess规则引擎。
整个设计的思路是:
从系统的告警服务模块得到网络中的故障报警信息,通过在规则引擎中匹配规则,分析出故障的具体原因和处理方法。
规则信息可以通过浏览器进行添加,修改和删除等操作。
为了便于操作,规则使用标准的XML格式来定义。
这样系统的规则管理模块和规则推理模块都可以对规则进行灵活的操作。
关键词:
专家系统,SNMP,Jess,告警信息
Abstract
ExpertSystemisasmartpartofthecomputerprogram,andit'sintelligenttobeabletomimichumanexpertsinspecificareasthoughttosolvecomplexproblems.Therefore,theexpertsystemmusthavealargenumberofexperts’knowledgeinthisfield,andhavesimilarreasoningabilitywithhumanthinking,andcanusethisknowledgetosolvepracticalproblems.Itcansolvethespecificproblemsinspecificareas,butneedsasubstantialamountofresearchareascloselyrelatedtotheissueofknowledge,anditcanworkontheirownprocessofreasoning,knowledge-basedproblemsolvingmethods,knowledgebaseandtheinferenceofmutualseparation,etc.Thispaperisconcernedonnetworkfaultmanagementexpertsystem,whichusestheexpertknowledgeandreasoningmechanismtodeterminethereasonsforthefailureoccurred,andotherinformation.Wefocusontheacquisitionofknowledge,storageofknowledge,reasoningandsoon.
Rulesengine(thatis,knowledgeengine)usesaJava-basedJessrulesengine.Thewholedesignisintheidea:
thetrapinformationreceivedfromthenetworkfailurealarmmodule,matchrulesthroughtherulesengine,andconcludethefailureofthespecificcausesandtreatment.Throughthebrowser,usercanadd,editanddeleterules.
Inordertofacilitatetheoperation,weusethestandardrulesoftheXMLformat.Thissystemofrulesmanagementmoduleandrulesreasoningmodulecanbeflexibleinoperatingrules.
KEYWORDS:
ExpertSystem,SNMP,Jess,Trap
第1章绪论
1.1设计的目的和意义
网络管理包括故障管理、配置管理、安全管理、性能管理、计费管理等五大部分。
其中故障管理是网络管理中最基本的也是最重要的功能之一。
一个好的故障管理系统可以大大提高网络管理的工作效率。
近年来,随着计算机网络规模的不断扩大,使得对整个网络的维护和操作变得相当复杂,一方面随着网络业务和网络规模的增加,对网管人员专业素质的要求也愈来愈高。
另一方面,在网络的运营管理和维护中,当网络出现故障时,常常要求必须在最短的时间内,正确地判断出网络故障所在的位置、故障的类型和引起故障的原因等,以便及时对故障进行修复。
然而,在实际的网络中,一个故障的产生,往往会引发起多个告警事件。
而且,随着网络的复杂性和应用水平的不断提高,告警的种类和数量会越来越多,这些告警中有许多是相互之间关联的。
这样,就要求对众多的告警信息进行相关性分析,快速进行网络的故障诊断和定位。
本课题的目的是构建一个应用于实际网络系统中的,可以进行实时网络故障检测及定位的管理系统。
它通过不断添加新的规则来丰富故障管理专家知识库。
1.2专家系统发展情况简介
随着计算机、人工智能技术的发展和应用,对智能化网络管理的要求愈来愈高。
目前实现智能化故障管理系统的技术有专家系统、神经网络、模糊理论等等。
专家系统是人工智能应用研究最活跃和最广泛的课题之一,它是一个智能计算机程序系统,其内部具有大量专家水平的某个领域知识与经验,应用人工智能技术,根据某个领域一个或多个人类专家提供的知识和经验进行推理和判断,模拟人类专家的决策过程,以解决那些需要专家决定的复杂问题。
虽然专家系统能够有效的模拟故障诊断专家完成故障诊断的过程,但是在实际应用中仍存在一定缺陷,其主要问题是知识获取的瓶颈问题、知识难以维护,以及不能有效的解决故障诊断中许多不确定因素,这些问题大大影响了故障诊断的准确性。
神经网络是一种模拟人脑组织结构和人类认知过程的信息处理系统。
它以其诸多优点,如并行分布处理、自适应、联想记忆等,在智能故障诊断中受到越来越广泛的重视,而且已显示出巨大的潜力。
神经网络方法虽然有利于克服专家系统的知识获取瓶颈、知识库维护困难等问题,但它不适于处理启发性知识。
而且,由于神经网络技术本身不够完备,它的学习速度慢,训练时间长以及解释功能弱,从而影响了神经网络的实用性。
在故障诊断中,故障与征兆之间的关系往往是模糊的,因而诊断结果也必然是模糊的随着模糊理论的发展及完善,模糊理论的一些优点逐步被重视,如模糊理论可适应不确定性问题;其模糊知识库使用语言变量来表述专家知识。
但是它也具有维护困难,不具备学习能力的缺点。
本课题采用的专家系统技术,主要是通过专家在分析,归纳总结故障症状之后添加新的规则来获取新的知识。
1.3设计原理及规模介绍
本设计是要构建一个具备推理功能的网络故障专家系统。
它通过接收网络中发来的告警信息并匹配事先添加好的规则来判断故障的原因并得出故障处理的方案。
本设计采用了基于Java的Jess规则引擎,采用分析特定网络设备的告警信息(本设计主要参考的是思科的设备)的方法来制定规则。
主要的研究手段是通过官方网站及相关技术资料查找关于思科设备的告警信息,并总结出规律,制定规则。
整个研究的实验期的网络设备包括一台管理站及一台作为被管理站的服务器,但该程序会应用于第四军医大学网络中心的部分网络中。
第2章理论分析
2.1SNMP技术及原理
2.1.1SNMP原理
1、SNMP协议
简单网络管理协议(SNMP)是Internet组织用来管理Internet的网络协议,随着Internet所使用的TCP/IP协议族成为事实上的互连协议标准,SNMP也成为计算机网络管理方面大家实际遵循的标准。
在SNMP管理模型中有三个基本组成部分:
管理者(Manager),被管理代理(Agent)和管理信息库(MIB)。
管理站一般是一个单机设备或一个共享网络中的一员,它是网络管理员和网络管理系统的接口,能将网络管理员的命令转换成对远程网络元素的监视和控制,同时从网上所有被管理实体的MIB(管理信息库)中提取出信息数据。
作为管理站,它还必须拥有能进行数据分析、故障发现等管理应用软件。
整个管理站的管理工作是通过轮询代理来完成的。
管理者可以通过SNMP操作直接与被管理代理进行通信,获得实时的设备信息,对网络设备进行远程配置管理或者操作;也可以通过对数据库的访问获得网络设备的历史信息,以决定网络配置变化进行操作。
SNMP被管理代理指的是用于跟踪监测被管理设备状态的特殊软件或硬件,每个代理都拥有自己本地的MIB。
实际上,SNMP的管理任务是移交给被管理代理来执行的。
代理翻译来自管理站的请求,验证操作的可执行性,通过直接与相应的功能实体通信来执行信息处理任务,同时向管理站返回响应信息。
MIB信息为网管中被管理的资源,而网络管理中的资源是以对象表示的,每个对象表示被管理资源的某方面属性,这些对象形成了MIB库。
每个MIB变量记录了每个相连网络的状态、通信量统计数据、发生差错的次数以及内部数据结构的当前内容等。
网络管理者通过对MIB库的存取访问,来实现五大管理功能:
性能管理、配置管理、安全管理、故障管理和计费管理。
2、SNMP的五种消息类型
SNMP中定义了五种消息类型:
Get-Request、Get-Response、Get-Next-Request、Set-Request和Trap。
(1)Get-Request、Get-Next-Request与Get-Response
SNMP管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP代理则用Get-Response进行消息响应。
Get-Next-Request用于和Get-Request组合起来查询特定的表对象中的列元素。
如:
首先通过下面的原语获得所要查询的设备的接口数:
{isoorg(3)dod(6)internet
(1)mgmt
(2)mib
(1)interfaces
(2)ifNumber
(2)}
然后再通过下面的原语,进行查询(其中第一次用Get-Request,其后用Get-Next-Request):
{isoorg(3)dod(6)internet
(1)mgmt
(2)mib
(1)interfaces
(2)ifTable
(2)}
(2)Set-Request
SNMP管理站用Set-Request可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。
(3)Trap
SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生。
本论文中的接收的Trap信息主要是指一些网络故障信息。
SNMP管理信息库MIB。
管理信息库MIB指明了网络元素所维持的变量(即能够被管理进程进行查询和设置的信息)。
MIB给出了一个网络中所有可能的被管理对象的集合的数据结构。
SNMP的管理信息库采用和域名系统DNS相似的树型结构,它的根在最上面,根没有名字。
3、管理信息库的对象命名举例
对象命名树的顶级对象有三个,即ISO、ITU-T和这两个组织的联合体。
在ISO的下面有4个结点,其中的一个(标号3)是被标识的组织。
在其下面有一个美国国防部(DepartmentofDefense)的子树(标号是6),再下面就是Internet(标号是1)。
在只讨论Internet中的对象时,可只画出Internet以下的子树,并在Internet结点旁边标注上{1.3.6.1}即可。
在Internet结点下面的第二个结点是mgmt(管理),标号是2。
再下面是管理信息库,原先的结点名是mib。
1991年定义了新的版本MIB-II,故结点名现改为mib-2,其标识为{1.3.6.1.2.1},或{Internet
(1).2.1}。
这种标识为对象标识符。
图2.1管理信息库对象名举例
最初的结点mib将其所管理的信息分为8个类别。
现在的mib-2所包含的信息类别已超过40个。
应当指出,MIB的定义与具体的网络管理协议无关,这对于厂商和用户都有利。
厂商可以在产品(如路由器)中包含SNMP代理软件,并保证在定义新的MIB项目后该软件仍遵守标准。
用户可以使用同一网络管理客户软件来管理具有不同版本的MIB的多个路由器。
当然,一个没有新的MIB项目的路由器不能提供这些项目的信息。
这里要提一下MIB中的对象{1.3.6.1.4.1},即enterprises(企业),其所属结点数已超过3000。
例如IBM为11.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为{1.3.6.1.4.1.23}等。
世界上任何一个公司、学校只要用电子邮件发往iana-mib@isi.edu进行申请即可获得一个结点名。
这样各厂家就可以定义自己的产品的被管理对象名,使它能用SNMP进行管理。
2.1.2AdventNetSNMPAPI
AdventNetsnmpAPI开发包是由美国AdventNet,inc公司开发的一个专门用于处理管理站与被管理站之间传递的SNMP信息的一个开发包。
它是可以用来创建跨平台的Java的SNMP网络管理程序和基于Web的SNMP网络管理Applet程序的一组组件。
它的主要特点是:
1)完全支持snmpv1,snmpv2c和SNMPv3的。
2)MIB信息的装入。
3)SNMP广播:
广播SNMP数据包在整个网络中自动发现在网络中支持SNMP协议的设备。
4)提供高层次的bean组件,例如,snmptarget,snmptable,snmppoller,trapreceiver便于应用的开发。
5)数据库支持:
提供可扩展存储的MIB定义和SNMPv3的配置数据在任何关联式资料库,例如,MySQL和Oracle(本程序所使用的数据库为Oracle)。
6)MIB的浏览器:
工具管理网络和系统组件。
可以作为一个独立的应用程序来运行,也可以作为益而高基于Web浏览器的程序来运行。
还有其它的一些别的特点。
2.2规则引擎及规则
2.2.1规则引擎的简介和原理
专家系统是人工智能的一个分支,它模仿人类的推理方式,使用试探性的方法进行推理,并使用人类能理解的术语解释和证明它的推理结论。
专家系统有很多分类:
神经网络、基于案例推理和基于规则系统等。
规则引擎是基于规则的专家系统的一部分,基于规则的专家系统(RuleBasedExpertSystem--RBES)是专家系统中很重要的一个分支。
RBES包括三部分规则库,事实库(也叫做工作内存),推理引擎,结构如图2.2所示:
图2.2基于规则的专家系统的结构图
和人类的思维相对应,规则引擎存在两者推理方式:
演绎法(Forward-Chaining)和归纳法(Backward-Chaining)。
演绎法从一个初始的事实出发,不断地应用规则得出结论(或执行指定的动作)。
而归纳法则是从假设出发,不断地寻找符合假设的事实。
Rete算法是目前效率最高的一个Forward-Chaining推理算法,Drools项目是Rete算法的一个面向对象的Java实现。
规则引擎的推理步骤如下:
1、将初始数据(fact)输入工作引擎。
2、使用类型匹配比较规则(rule)和事实(fact)。
3、如果执行规则存在冲突,即同时激活了多个规则,将冲突的规则放入冲突集合。
4、解决冲突,将激活的规则按顺序放入“议程”序列。
5、使用规则引擎执行“议程”序列中的规则。
重复步骤2至5,直到执行完毕所有“议程”中的规则。
2.2.2Jess规则引擎
同大多数专家系统工具一样,Jess的核心也是由事实库、规则库、