已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计论文本科毕业设计论文 题题 目目网络故障管理专家系统的研究与实现 毕业 任务书 一、题目 网络故障管理专家系统的研究与实现 二、指导思想和目的要求 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 公司的 snmp java 开发包, 研究怎样通过使用开发包里的 api 来使管理站能与被管理站进行通 信。这期间所有的 trap 信息接收及 mib 信息的查询都是通过使用 设计 论文 模拟器来实现的。 2)规则管理模块:研究 sandia national laboratories 出品的基于 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.adventnet snmp api 4 文档 e. /.2008 年 1 月。 【2】sandia national laboratories.jess in action e.ernest friedman- hill.2008 年 2 月。 【3】metastuff. dom4j 1.6.1 api e. /projects/dom4j.2008 年 5 月。 【4】xml networks.trap objects for ciscoe./. 2008 年 3 月。 【5】cisco systems.snmp object navigatore ./support/snmp/do/browseoid.do?local=en.2008 年 3 月。 【6】w.richard stevents.tcp/ip 详解 卷一:协议 m.机械工业出版社. 2007 年 11 月。 【7】李千目.一种基于自愈策略的网络故障诊断系统 j.仪器仪表学报. 2005 年 8 月。 【8】刘培奇.扩展产生式规则的网络故障诊断专家系统 j.西安交通大学学 报.2004 年 8 月。 【9】薛军.基于专家系统的网络故障智能管理系统的设计和实现 c.中国 计算机学会第 1 2 届网络与数据通信学术会议.2002 年 12 月。 【10】陈敏.网络故障诊断专家系统中知识库的设计 j.电子科技大学学报. 2005 年 12 月。 【11】杨广明.网络拓扑发现技术的研究与实现 c.中国计算机学会第 12 届网络与数据通信学术会议.2002 年 12 月。 学生 _ 指导教师 _ 系主任 _ 本科毕业论文本科毕业论文 目目 录录 摘摘 要要i abstract.ii 第第 1 章章 绪论绪论1 1.1 设计的目的和意义.1 1.2 专家系统发展情况简介.1 1.3 设计原理及规模介绍.2 第第 2 章章 理论分析理论分析3 2.1 snmp 技术及原理3 2.1.1 snmp 原理.3 2.1.2 adventnet snmp api5 2.2 规则引擎及规则.6 2.2.1 规则引擎的简介和原理6 2.2.2 jess 规则引擎 .7 2.3 页面开发.9 2.3.1 mvc 模式.9 2.3.2 java servlet 技术简介 9 2.3.3 xml 的应用.11 第第 3 章章 网络故障管理专家系统的分析与设计网络故障管理专家系统的分析与设计12 3.1 专家系统设计目标.12 3.2 专家系统系统结构及功能需求.12 3.3 专家系统需求分析.13 3.3.1 专家系统需求描述13 3.4 专家系统功能模块.14 3.4.1 web 服务器模块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.1 web 服务器模块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 本科毕业论文本科毕业论文 i 摘 要 专家系统是一个具有智能特点的计算机程序,它的智能化主要表现为能够 在特定的领域内模仿人类专家思维来求解复杂问题。因此,专家系统必须包含 领域专家的大量知识,拥有类似人类专家思维的推理能力,并能用这些知识来 解决实际问题。它能解决特定领域的具体问题,但是需要大量与研究领域问题 密切相关的知识;能对自身的工作过程进行推理,基于知识的问题求解方法, 知识库与推理机分离等特点。本文关注的是网络故障管理专家系统,就是应用 专家知识来判断和推理故障发生的原因等信息。着重进行了知识的采集,知识 的存储,推理规则的制定等方面的研究。 规则引擎(即知识引擎)采用的是基于 java 的 jess 规则引擎。整个设计的 思路是:从系统的告警服务模块得到网络中的故障报警信息,通过在规则引擎 中匹配规则,分析出故障的具体原因和处理方法。规则信息可以通过浏览器进 行添加,修改和删除等操作。 为了便于操作,规则使用标准的 xml 格式来定义。这样系统的规则管理 模块和规则推理模块都可以对规则进行灵活的操作。 关键词:专家系统,snmp,jess,告警信息 本科毕业论文本科毕业论文 ii abstract expert system is a smart part of the computer program, and its intelligent to be able to mimic human experts in specific areas thought to solve complex problems. therefore, the expert system must have a large number of experts knowledge in this field, and have similar reasoning ability with human thinking, and can use this knowledge to solve practical problems. it can solve the specific problems in specific areas, but needs a substantial amount of research areas closely related to the issue of knowledge, and it can work on their own process of reasoning, knowledge-based problem solving methods, knowledge base and the inference of mutual separation, etc. this paper is concerned on network fault management expert system, which uses the expert knowledge and reasoning mechanism to determine the reasons for the failure occurred, and other information. we focus on the acquisition of knowledge, storage of knowledge, reasoning and so on. rules engine (that is, knowledge engine) uses a java-based jess rules engine. the whole design is in the idea: the trap information received from the network failure alarm module, match rules through the rules engine, and conclude the failure of the specific causes and treatment. through the browser, user can add, edit and delete rules. in order to facilitate the operation, we use the standard rules of the xml format. this system of rules management module and rules reasoning module can be flexible in operating rules. keykey wordswords : :expert system,snmp, jess, trap 本科毕业论文本科毕业论文 1 第 1 章 绪论 1.1 设计的目的和意义 网络管理包括故障管理、配置管理、安全管理、性能管理、计费管理等五 大部分。其中故障管理是网络管理中最基本的也是最重要的功能之一。一个好 的故障管理系统可以大大提高网络管理的工作效率。 近年来,随着计算机网络规模的不断扩大,使得对整个网络的维护和操作 变得相当复杂,一方面随着网络业务和网络规模的增加,对网管人员专业素质 的要求也愈来愈高。另一方面,在网络的运营管理和维护中,当网络出现故障 时,常常要求必须在最短的时间内,正确地判断出网络故障所在的位置、故障 的类型和引起故障的原因等,以便及时对故障进行修复。然而,在实际的网络 中,一个故障的产生,往往会引发起多个告警事件。而且,随着网络的复杂性 和应用水平的不断提高,告警的种类和数量会越来越多,这些告警中有许多是 相互之间关联的。这样,就要求对众多的告警信息进行相关性分析,快速进行 网络的故障诊断和定位。 本课题的目的是构建一个应用于实际网络系统中的,可以进行实时网络故 障检测及定位的管理系统。它通过不断添加新的规则来丰富故障管理专家知识 库。 1.2 专家系统发展情况简介 随着计算机、人工智能技术的发展和应用,对智能化网络管理的要求愈来 愈高。目前实现智能化故障管理系统的技术有专家系统、神经网络、模糊理论 等等。 专家系统是人工智能应用研究最活跃和最广泛的课题之一,它是一个智能 计算机程序系统,其内部具有大量专家水平的某个领域知识与经验,应用人工 智能技术,根据某个领域一个或多个人类专家提供的知识和经验进行推理和判 断,模拟人类专家的决策过程,以解决那些需要专家决定的复杂问题。虽然专 家系统能够有效的模拟故障诊断专家完成故障诊断的过程,但是在实际应用中 仍存在一定缺陷,其主要问题是知识获取的瓶颈问题、知识难以维护,以及不 本科毕业论文本科毕业论文 2 能有效的解决故障诊断中许多不确定因素,这些问题大大影响了故障诊断的准 确性。 神经网络是一种模拟人脑组织结构和人类认知过程的信息处理系统。它以 其诸多优点,如并行分布处理、自适应、联想记忆等,在智能故障诊断中受到 越来越广泛的重视,而且已显示出巨大的潜力。神经网络方法虽然有利于克服 专家系统的知识获取瓶颈、知识库维护困难等问题,但它不适于处理启发性知 识。而且,由于神经网络技术本身不够完备,它的学习速度慢,训练时间长以 及解释功能弱,从而影响了神经网络的实用性。 在故障诊断中,故障与征兆之间的关系往往是模糊的,因而诊断结果也必 然是模糊的随着模糊理论的发展及完善,模糊理论的一些优点逐步被重视,如 模糊理论可适应不确定性问题;其模糊知识库使用语言变量来表述专家知识。 但是它也具有维护困难,不具备学习能力的缺点。 本课题采用的专家系统技术,主要是通过专家在分析,归纳总结故障症状 之后添加新的规则来获取新的知识。 1.3 设计原理及规模介绍 本设计是要构建一个具备推理功能的网络故障专家系统。它通过接收网络 中发来的告警信息并匹配事先添加好的规则来判断故障的原因并得出故障处理 的方案。 本设计采用了基于 java 的 jess 规则引擎,采用分析特定网络设备的告警信 息(本设计主要参考的是思科的设备)的方法来制定规则。主要的研究手段是 通过官方网站及相关技术资料查找关于思科设备的告警信息,并总结出规律, 制定规则。整个研究的实验期的网络设备包括一台管理站及一台作为被管理站 的服务器,但该程序会应用于第四军医大学网络中心的部分网络中。 本科毕业论文本科毕业论文 3 第 2 章 理论分析 2.1 snmp 技术及原理 2.1.1 snmp 原理 1、snmp 协议 简单网络管理协议(snmp)是 internet 组织用来管理 internet 的网络协议,随 着 internet 所使用的 tcp/ip 协议族成为事实上的互连协议标准,snmp 也成为 计算机网络管理方面大家实际遵循的标准。 在 snmp 管理模型中有三个基本组成部分:管理者(manager) ,被管理代 理(agent)和管理信息库(mib) 。管理站一般是一个单机设备或一个共享网 络中的一员,它是网络管理员和网络管理系统的接口,能将网络管理员的命令 转换成对远程网络元素的监视和控制,同时从网上所有被管理实体的 mib (管 理信息库) 中提取出信息数据。作为管理站,它还必须拥有能进行数据分析、 故障发现等管理应用软件。整个管理站的管理工作是通过轮询代理来完成的。 管理者可以通过 snmp 操作直接与被管理代理进行通信,获得实时的设备信息, 对网络设备进行远程配置管理或者操作;也可以通过对数据库的访问获得网络 设备的历史信息,以决定网络配置变化进行操作。snmp 被管理代理指的是用 于跟踪监测被管理设备状态的特殊软件或硬件,每个代理都拥有自己本地的 mib。实际上,snmp 的管理任务是移交给被管理代理来执行的。代理翻译来 自管理站的请求,验证操作的可执行性,通过直接与相应的功能实体通信来执 行信息处理任务,同时向管理站返回响应信息。 mib 信息为网管中被管理的资源,而网络管理中的资源是以对象表示的, 每个对象表示被管理资源的某方面属性,这些对象形成了 mib 库。每个 mib 变量记录了每个相连网络的状态、通信量统计数据、发生差错的次数以及内部 数据结构的当前内容等。网络管理者通过对 mib 库的存取访问,来实现五大管 理功能:性能管理、配置管理、安全管理、故障管理和计费管理。 2、snmp 的五种消息类型 本科毕业论文本科毕业论文 4 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 组合起来查询特定的表对象中的列元素。如:首先通过下面的原语 获得所要查询的设备的接口数: iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifnumber(2) 然后再通过下面的原语,进行查询(其中第一次用 get-request,其后用 get-next-request): iso org(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)是被标识的组织。在其下面 有一个美国国防部(department of defense)的子树(标号是 6) ,再下面就是 internet(标号是 1) 。在只讨论 internet 中的对象时,可只画出 internet 以下的子 树,并在 internet 结点旁边标注上即可。 本科毕业论文本科毕业论文 5 在 internet 结点下面的第二个结点是 mgmt(管理) ,标号是 2。再下面是管 理信息库,原先的结点名是 mib。1991 年定义了新的版本 mib-ii,故结点名现 改为 mib-2,其标识为.2.1,或internet(1) .2.1。这种标识为对象标识 符。 图 2.1 管理信息库对象名举例 最初的结点 mib 将其所管理的信息分为 8 个类别。现在的 mib-2 所包含的 信息类别已超过 40 个。 应当指出,mib 的定义与具体的网络管理协议无关,这对于厂商和用户都 有利。厂商可以在产品(如路由器)中包含 snmp 代理软件,并保证在定义新 的 mib 项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理 具有不同版本的 mib 的多个路由器。当然,一个没有新的 mib 项目的路由器 不能提供这些项目的信息。 这里要提一下 mib 中的对象.4.1,即 enterprises(企业) ,其所属 结点数已超过 3000。例如 ibm 为 .4.1.2,cisco 为.4.1.9, novell 为.4.1.23等。世界上任何一个公司、学校只要用电子邮件发往 进行申请即可获得一个结点名。这样各厂家就可以定义自己的 产品的被管理对象名,使它能用 snmp 进行管理。 2.1.2 adventnet snmp api adventnet snmp api 开发包是由美国 adventnet, inc 公司开发的一个专门用 本科毕业论文本科毕业论文 6 于处理管理站与被管理站之间传递的 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 规则引擎的简介和原理 专家系统是人工智能的一个分支,它模仿人类的推理方式,使用试探性的 方法进行推理,并使用人类能理解的术语解释和证明它的推理结论。专家系统 有很多分类:神经网络、基于案例推理和基于规则系统等。 规则引擎是基于规则的专家系统的一部分,基于规则的专家系统(rule based expert system-rbes)是专家系统中很重要的一个分支。 rbes 包括三部分规则库,事实库(也叫做工作内存) ,推理引擎,结构如 图 2.2 所示: 本科毕业论文本科毕业论文 7 图 2.2 基于规则的专家系统的结构图 和人类的思维相对应,规则引擎存在两者推理方式:演绎法(forward- chaining)和归纳法(backward-chaining) 。演绎法从一个初始的事实出发,不 断地应用规则得出结论(或执行指定的动作) 。而归纳法则是从假设出发,不断 地寻找符合假设的事实。 rete 算法是目前效率最高的一个 forward-chaining 推理算法,drools 项目 是 rete 算法的一个面向对象的 java 实现。 规则引擎的推理步骤如下: 1、将初始数据(fact)输入工作引擎。 2、使用类型匹配比较规则(rule)和事实(fact) 。 3、如果执行规则存在冲突,即同时激活了多个规则,将冲突的规则放入冲 突集合。 4、解决冲突,将激活的规则按顺序放入“议程”序列。 5、使用规则引擎执行“议程”序列中的规则。重复步骤 2 至 5,直到执行 完毕所有“议程”中的规则。 2.2.2 jess 规则引擎 同大多数专家系统工具一样,jess 的核心也是由事实库、规则库、推理机 三大部分组成,并采用产生式规则作为基本的知识表达模式。在 jess 中,事实 包括简单事实和对象事实。简单事实就是一个描述事物的断言,而对象事实除 此之外还封装了方法,可以接受外界信息改变自身的特征。这一概念本身并不 是 jess 首次提出的,art-im、clips 都支持这一概念。但 jess 表达对象事实 本科毕业论文本科毕业论文 8 的方法确实别具一格:它用 java 而非系统本身的语言来定义对象。在 clips 6.0 中,对象事实通过系统本身的语句 defclass 和 make-instance 来定义,但在 jess 中,类的定义由 java 语言书写,编译通过后即可动态地加入系统中。用 java 虚拟机编译通过后,通过 defclass 命令将该类加入系统,它就可以执行类 似于 clips 中对类的各种操作,如生成它的一个实例、调用它的方法等。由此 可见,jess 可以方便地调用 java 中的类库,使用 java 中的各种数据结构和方法, 从而具备其他系统不可比拟的优良的嵌入能力。jess 通过模式匹配语言对事实 进行操作。在 jess 中,模式匹配操作符的类型有很多,从可以同任意事实进行 匹配的单一操作符到只能同满足特定约束值的事实进行匹配的复杂操作符。特 别要指出的是,jess 中有“unique”条件元素,它告诉系统同该模式匹配的事实 是惟一的。这样,当模式发现一条事实同它匹配后,就会停止对事实库的检索, 在实际应用中,这可以将系统的性能提高 2030,而 clips 系统不支持这 一条件元素。在 jess 中,规则的表达形式沿用了 clips 的语法结构,通过对规 则前件和后件的限定,它可以支持内容丰富的模式匹配语言。另外,jess 支持 面向过程的编程方式,它提供了一些语句来控制规则后件的操作流程,如使用 ifthenelse 和 whiledo语句,这样它就能很有效地利用面向过程编程的 优势。总之,jess 的这些特性使系统拥有很强的知识表示能力。 jess 支持前向和逆向推理两种方式,前向推理同 clips 的原理相同,逆向 推理则是 jess 不同于 clips 的一个显著特征。在 jess 的逆向推理中,规则仍采 用 ifthen结构,但是在逆向推理时,推理引擎执行的是前件没有得到满足的 规则,这种行为常常被称为目标寻找。显然,jess 同时支持前向和逆向推理的 特点使其推理能力得到了加强。推理的效率很大程度上依赖于匹配算法的效率。 jess 通过实现 rete 匹配算法来提供非常高效的前向和逆向推理。rete 算法利用 了专家系统中时间冗余性和结构相似性这两个特点,有效地减少了用于匹配操 作的次数。因此,当系统的性能是由匹配算法的质量决定时,jess 的优点将更 为明显。应当指出的是,rete 算法是一个以空间换取时间的算法,所以,应用 jess 时应当考虑内存的消耗。 本科毕业论文本科毕业论文 9 2.3 页面开发 2.3.1 mvc 模式 mvc 模式最早来源于 smalltalk 程序设计语言中对界面的构造方法,包括 三种类型:model(模型)是应用对象,view(视图)是界面对象,controller(控制器)是 用户界面对用户输入的响应。 mvc 的目的是增加代码的重用率,减少数据表达,数据描述和应用操作的 耦合度。 同时也使得软件可维护性,可修复性,可扩展性,灵活性以及封装性 大大提高。 model 表示应用的数据及操作这些数据的逻辑方法。任何和整个应用相关 的持久性数据都放在模型中。 view 将模型的当前状态呈现给用户,具体的显示方法由视图负责,因此一 个模型可以适用于多个不同的视图。在模型状态改变后,通过模型和视图之间 的协议,视图得知这种改变并修改自己的显示。对于用户的输入,视图将它们 交给控制器处理。 control 负责交互,将用户输入的数据导入模型;它还利用用户的输入将应 用转向其他视图。 mvc 模式在项目的页面实现部分使用。其中在项目文件夹 “management”下的 jsp 文件就是其中的视图,包“com.jessoraclepage”下的 servlet 文件就是其中的控制器,而包“com.jessoracle.model”下的文件就是模 型。mvc 模式的应用使得整个系统操作和应用层次分明,易于维护。 2.3.2 java servlet 技术简介 1、 技术简介 servlet 技术是 sun 公司提供的一种实现动态网页的解决方案,它是基于 java 编程语言的 web 服务器端编程技术,主要用于在 web 服务器端获得客户 端的访问请求信息和动态生成对客户端的响应消息。servlet 技术也是 jsp 技术 (另外一种动态网页开发技术)的基础。一个 servlet 程序就是一个实现了特殊 接口的 java 类,用于被支持 servlet 的 web 服务器调用和运行,即只能运行于 具有 servlet 引擎的 web 服务器端。一个 servlet 程序负责处理它所对应的一个 本科毕业论文本科毕业论文 10 或一组 url 地址的访问请求,接收访问请求信息和产生响应内容。 applet 是用于浏览器端的 java 小程序,在浏览器端被解释执行,用于在 html 网页中实现一些桌面应用程序的功能,被称为“小应用程序”。servlet 是 用于 web 服务器端的 java 小程序,它在 web 服务器端被解释执行,用于处 理客户端的请求和产生动态网页内容。源于 applet 的命名,这种 web 服务器 端的 java 小程序就被命名为了 servlet,与 applet 相对应,servlet 可以被称之 为“小服务程序”。 servlet 与普通 java 程序相比,只是输入信息的来源和输出结果的目标不一 样,所以,普通 java 程序所能完成的大多数任务,servlet 程序都可以完成。 servlet 程序具有如下的一些基本功能: 1)获取客户端通过 html 的 form 表单递交的数据和 url 后面的参数 信息; 2)创建对客户端的响应消息内容; 3)访问服务器端的文件系统; 4)连接数据库并开发基于数据库的应用; 5)调用其它的 java 类。 2、 编写与编译 servlet 程序 一个 servlet 程序就是一个在 web 服务器端运行的特殊 java 类,这个特殊 的 java 类必须实现 javax.servlet.servlet 接口,servlet 接口定义了 servlet 容器与 servlet 程序之间通信的协议约定。为了简化 servlet 程序的编写,servlet api 中 也提供了一个实现了 servlet 接口的最简单的 servlet 类,其完整名称为 javax.servlet.genericservlet,这个类实现了 servlet 程序的基本特征和功能。 servlet api 中还提供了一个专用于 http 协议的 servlet 类,其名称是 javax.servlet.http.httpservlet,它是 genericservlet 的子类,在 genericservlet 类 的基础上进行了一些针对 http 特点的扩充。显然,一个 java 类只要继承了 genericservlet 或 httpservlet,它就是一个 servlet。反过来说,要编写一个 servet 类,这个类必须继承 genericservlet 类或 httpservlet 类。为了充分利用 http 协议的功能,在一般情况下,都应让自己编写的 servlet 类继承 httpservlet 类,而不是继承 genericservlet 类。 本科毕业论文本科毕业论文 11 查看 httpservlet 类的帮助文档,可以看到其中有一个名为 service 的方法, 当客户端每次访问一个 servlet 程序时,servlet 引擎都将调用这个方法来进行处 理。service 方法接受两个参数,一个是用于封装 http 请求消息的对象,其类 型为 httpservletrequest,另一个是代表 http 响应消息的对象,其类型为 httpservletresponse。调用 httpservletresponse 对象的 getwriter 方法可以获得 一个文本输出流对象,向这个流对象中写入的数据将作为 http 响应消息的实 体内容部分发送给客户端。 2.3.3 xml 的应用 xml(extensiblemarkuplanguage,可扩展标记语言)是 sgml(standard generalized markup language,标准通用标记语言)的子集。其主要优势在于它 能够表达数据的语义信息,因为 xml 基于开放的文本格式,所以它不需要改 变现有的网络,而同 html 一样使用 http 协议进行文本文档的传送。而且, 因为 xml 将数据显示与数据内容分离,所以 xml 数据发送到客户端后,可以 使用多种方式显示。 本科毕业论文本科毕业论文 12 第 3 章 网络故障管理专家系统的分析与设计 3.1 专家系统设计目标 本系统的目标是要设计一个可以应用到实际网络拓扑结构中的能够实时检 测网络故障并分析网络故障原因的故障管理系统。该系统能够通过由管理员不 断的添加网络故障规则来丰富故障知识库。该知识库的规则用于匹配系统接收 到的故障告警信息,并通过推理得出故障原因。其中需要注意以下两点: 1、 系统能够实时接收来自网络拓扑中的故障告警信息,并将其处理发送 到专家库的规则引擎部分进行规则匹配。 2、 管理员可以通过登录来对知识库中的规则进行添加、删除、修改等操 作,以此来完善、丰富知识库。 3.2 专家系统系统结构及功能需求 整个系统包含 web 服务器模块、数据库模块、规则库管理模块、告警服务 模块等四部分。图 3.1 是本毕业设计系统结构图: 图 3.1 网络故障管理专家系统的结构图 1、 web 服务器模块: 本科毕业论文本科毕业论文 13 管理员通过 web 服务器模块查看告警服务模块传来的故障诊断信息,以及 时对故障进行排查。管理员或专家能通过 web 服务器模块录入设计好的规则, 也可以对系统自动学习到的规则进行确认并自动录入到规则库中。该模块主要 使用 servlet + jsp + java bean 技术实现。 2、 数据库模块: 数据库里面存储了规则信息、网络拓扑信息、告警记录及网络故障日志等 信息。规则信息是判断网络故障的依据。网络拓扑信息的获得由管理服务器的 告警服务模块通过对网络设备进行轮询获得。告警记录来于网络设备发送的 snmp 告警信息。网络故障处理日志包括每次发生的故障、处理方法及结果, 主要是为了便于以后网络维护和故障分析。 3、 规则库管理: 规则库管理模块通过 jdbc 访问数据库中的规则信息。当专家在分析故障 症状之后添加一条新的规则时,由规则库管理系统将该信息添加到数据库中。 另外,规则库管理模块自动学习到的规则在由管理员或者专家确认后自动录入 到数据库中,成为新的规则。 本课题的规则引擎及规则的表达形式是基于 jess(java expert system shell) 来开发的。 4、 告警服务模块: 该模块实现与外部设备的交互,主要包括两部分:一部分负责向网络中的 设备发送轮询信息及接收相应的反馈信息,并对该信息进行处理,从而获得网 络中设备的运行状态,网络拓扑等信息;另一部分,当网络中的设备或拓扑出 现异常时,该模块自动接收来自网络的告警信息,结合上一部分轮询获得的信 息,调用规则库管理模块获得相应的规则对告警信息进行过滤、分析,得出该 故障的发生原因及定位。管理员可以通过浏览器及时准确的发现并解决故障。 3.3 专家系统需求分析 3.3.1 专家系统需求描述 作为一个应用于实际网络中的故障管理系统,它的主要需求就来自于网络 管理员对于网络故障检测和处理的需求。管理员需要能够实时接收到故障信息 本科毕业论文本科毕业论文 14 并得出分析解决方案。 作为一个能够不断丰富的专家知识库,管理员可以通过登录规则管理模块 对规则信息进行添加,修改和删除等操作。 3.4 专家系统功能模块 3.4.1 web 服务器模块 此模块的架构采用 b/s(browser/server)模式。该模块包括浏览器从 web 服务器上获得故障信息,得到处理意见,然后再去处理故障。网络管理专家或 者管理员可以通过浏览器调用规则库管理模块对规则进行添加、删除和更新等 操作。 我们采用 push 方式使故障信息从 web 服务器上 push 到管理员或者专家的 浏览器上,并通过报警提示音来提醒管理员或者专家及时处理故障问题。 图 3.2 是对于 push 机制实现的示意图。 push 机制的实现: 1、 push 机制客户端实现 客户端是一个 applet 类文件,当浏览器在 html 文档中找到这个类文 件时,通过网络将类文件装载到浏览器所在的计算机上。applet 与告警服 务器建立连接。applet 是一个多线程的程序,其中一个线程对告警服务器 进行侦听,接收报警服务器发来的故障报警,applet 主线程负责对 gui 事 件进行处理。 2、 push 机制中告警服务器端的实现 告警服务器上运行的是一个多线程程序。其中,一个线程监听是否有 新的客户 applet 请求连接。如果有,则为它创建一个对应的线程并添加到 vector 中,用于向客户端报警。当另一个线程接收到故障报警后,启动 vector 中的所有线程,向所有连接到告警服务器的客户端报警,并将报警 内容写入数据库。 本科毕业论文本科毕业论文 15 图 3.2 网络故障管理专家系统的结构图 3.4.2 数据库模块 1、 知识库的构造: 1)产生式规则表示知识;事实库、规则库均采用表数据结构表示。 2)事实库:综合数据库,存放输入的原始事实,推理得到的中间结果 及最终结论。 此系统中两个事实库,正向构造使用一个库,而反向推理过程用另一 个事实库 2、 规则库: 在数据库中使用四个表来创建规则库:规则前件库;已激活的规则前件库; 规则后件库;已激活的规则后件库。其中规则前件表存放的是所定义的规则中 的 if 语段。规则后件表存放的是所定义的规则中的 then 语段。已激活的规则前 件库存放的是接收到告警信息在规则匹配中匹配成功的 if 语段。已激活的规则 后件库存放的是由已激活的规则前件通过规则推理出的故障事实。 1)规则前件库: 存放各条规则的前提条件,分两个字段:规则名和事实(前提) 。 事实是规则的一个前提,如有 n 个前提,则库中就要 n 条对应规则的记 录。 2)已激活的规则前件库: 存放的是已激活的前提条件。在本系统中,只有反向推理过程用到, 存放需要求证的事实。 3)规则后件库: 本科毕业论文本科毕业论文 16 存放各条规则的结论。分三个字段:规则名;事实(结论)和该规 则的前提条件的个数。 4)已激活的规则后件库: 存放已经激活的后件。对于正向推理,存放的是正向推理选择的某 个故障目标。对于反向推理,则是取其内容,找支持此目标的前提是否 满足来证实该目标或提高其可信度。 3.4.3 规则管理模块 规则库管理模块包括管理规则部分、规则引擎中的推理引擎、知识自动学 习机制等多个小模块组成。 1、 管理规则: 管理规则部分的功能主要是对规则进行添加、删除和更新等操作。这些操 作需要在网络管理专家或者网络管理员的确认下进行最终的确认动作。 2、 规则引擎的工作机制: 规则引擎由规则库、工作内存和推理引擎三部分组成。规则库存放的是系 统应用中所需要的所有的规则。这些规则包括前提约束条件和满足条件应触发 的动作。工作内存用于存放规则引擎运行时的事实对象。而推理引擎是规则引 擎的核心部分,它细分为模式匹配器、议程(agenda)和执行引擎等几部分。 图 3.3 是规则引擎工作机制的示意图。 下面是规则引擎的工作机制: 1)规则库根据工作内存中对象的索引快速检索各个对象状态,与加载 到规则引擎中的规则库中各项规则前件进行匹配,激活符合条件的 规则,放入冲突集中,此过程通过模块匹配器实现。 2)根据冲突解决策略,为冲突集中的规则制定优先权。规则通过优先 权的高低,排序生成议程。 3)议程中规则队列接到规则引擎的触发指令时,优先权最高的规则被 执行。此过程由执行引擎来实现。 4)议程中的第一个规则执行后,触发规则的后件会改变工作内存汇总 的事实对象,可能会导致议程中某些规则的前提条件不再得到满足。 这些规则必须从议程中撤销。反之,工作内存中改变的数据对象会 本科毕业论文本科毕业论文 17 使规则库中的一些新的规则前件得到匹配,从而激活一些新的规则 进入冲突集。 图 3.3 工作引擎的执行机制 以上四个阶段不停循环,产生一种动态的规则执行链,直到议程中没有规 则可以被触发或每个事实都处理完毕时停止。 3.4.4 告警服务器模块 该模块实现与外部设备的交互,主要包括两部分:一部分负责向网络中的 设备发送轮询信息及接收相应的反馈信息,并对该信息进行处理,从而获得网 络中设备的运行状态,网络拓扑等信息;另一部分,当网络中的设备或拓扑出 现异常时,该模块自动接收来自网络的告警信息,结合上一部分轮询获得的信 息,调用规则库管理模块获得相应的规则对告警信息进行过滤、分析,得出该 故障的发生原因及定位。管理员可以通过浏览器及时准确的发现并解决故障。 1、正常情况下: 告警服务器模块需要通过轮询获得网络的运行状态和网络拓扑等方面的信 息。网络拓扑发现是其中的一个非常重要的功能。既应该有三层网络设备的发 现,也应该有二层设备的发现。 1)对于三层拓扑发现,有以下常用的基本方法: (1) 用 snmp 获得 mib 拓扑信息。 (2) 用 icmp 的 ping/ping broadcast 命令判断目的设备的存在性。 本科毕业论文本科毕业论文 18 (3) 利用 icmp 的 tracerout
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(轻巧夺冠)
- 2026年白银市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解1套
- 济宁市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(a卷)
- 2025年护士护理尝试题及答案
- 2025年护理常见试题及答案
- 2025年教师资格考试高中信息技术学科知识与教学能力模拟试卷与参考答案
- 乡镇考试题及答案
- 有限空间安全培训考核试题(附答案)
- 幼儿园食堂从业人员食品安全知识培训考核试题附答案
- 动物生理学模拟习题含参考答案2
- 企业地震安全教育培训
- 西安鸡蛋行业现状分析
- 柜子安装服务流程
- patran培训教材(有限元分析)
- 汽车设计-汽车 仪表板横梁设计规范模板
- 危急值的报告制度与流程
- 腾讯云大数据云平台TBDS 产品白皮书
- 《创新思维》考试复习题库(含答案)
- 口腔种植学 课件 口腔种植学导论-课件
- 2021年投资学考研真题(含复试)与典型题详解
- 非谓语动词在写作上的应用 课件 【知识导航+拓展迁移】高三英语一轮复习
评论
0/150
提交评论