网络故障管理专家系统的研究与实现本科毕业设计论文(编辑修改稿)内容摘要:

SNMP管理站用 GetRequest消息从拥有 SNMP代理的网络设备中检索信息,而 SNMP 代理则用 GetResponse 进行 消息响应。 GetNextRequest 用于和GetRequest 组合起来查询特定的表对象中的列元素。 如:首先通过下面的原语获得所要查询的设备的接口数: {iso (3) dod(6) inter(1) mgmt(2) mib(1) interfaces(2) ifNumber(2)} 然 后再通过下面的原语,进行查询(其中第一次用 GetRequest,其后用GetNextRequest): {iso (3) dod(6) inter(1) mgmt(2) mib(1) interfaces(2) ifTable(2)} (2) SetRequest SNMP 管理站用 SetRequest 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效 /无效等)。 (3) Trap SNMP 代理使用 Trap 向 SNMP 管理站发送非请求消息,一般用于描述某一事件的发生。 本论文中的接收的 Trap 信息 主要是指一些网络故障信息。 SNMP 管理信息库 MIB。 管理信 息库 MIB 指明了网络元素所维持的变量(即能够被管理进程 进行 查询和设置的信息)。 MIB 给出了一个网络中所有可能的被管理对象的集合的数据结构。 SNMP 的管理信息库采用和域名系统 DNS 相似的树型结构,它的根在最上面,根没有名字。 管理信息库的对象命名举例 对象命名树的顶级对象有三个,即 ISO、 ITUT 和这两个组织的联合体。 在ISO 的下面有 4 个结点,其中的一个(标号 3)是被标识的组织。 在其下面有一个美国国防部( Department of Defense)的子树(标号是 6),再下面就是 Inter(标号是 1)。 在只讨论 Inter 中的对象时,可只画出 Inter 以下的子树,并在 Inter 结点旁边标注上 {}即可。 本科毕业论文 5 在 Inter 结点下面的第二个结点是 mgmt(管理),标号是 2。 再下面是管理信息库,原先的结点名是 mib。 1991 年定义了新的版本 MIBII,故结点名现改为 mib2,其标识为 {},或 {Inter(1) .}。 这种标识为对象标识符。 图 管 理信息库对象名举例 最初的结点 mib 将其所管理的信息分为 8 个类别。 现在 的 mib2 所包含的信息类别已超过 40 个。 应当指出, MIB 的定义与具体的网络管理协议无关,这对于厂商和用户都有利。 厂商可以在产品(如路由器)中包含 SNMP 代理软件,并保证在定义新的 MIB 项目后该软件仍遵守标准。 用户可以使用同一网络管理客户软件来管理具有不同版本的 MIB 的多个路由器。 当然,一个没有新的 MIB 项目的路由器不能提供这些项目的信息。 这里要提一下 MIB 中的对象 {},即 enterprises(企业),其所属结点数已超过 3000。 例如 IBM 为 }, Cisco 为 {}, Novell为 {}等。 世界上任何一个公司、学校只要用电子邮件发往 进行申请即可获得一个结点名。 这样各厂家就可以定义自己的产品的被管理对象名,使它能用 SNMP 进行管理。 AdventNet SNMP API AdventNet snmp API 开发包是由美国 AdventNet, inc 公司开发的一个专门用于处理管理站与被管理站之间传递的 SNMP 信 息的一个开发包。 它 是 可以用来 本科毕业论文 6 创建 跨平台的 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 浏览器 的程序 来运行。 还有其它的一些别的特点。 规则引擎及规则 规则引擎的简介和原理 专家系统是人工智能的一个分支,它模仿人类的推理方式,使用试探性的方法进行推理,并使用人类能理解的术语解释和证明它的推理结论。 专家系统有很多分类:神经网络、基于案例推理和基于规则系统等。 规则引擎 是基于规则的专家系统的一部分 , 基于规则的专 家系统( Rule Based Expert SystemRBES) 是专家系统中很重要的一个分支。 RBES 包括三部分 规则库,事实库(也叫做工作内存),推理引擎,结构如图 所示 : 本科毕业论文 7 图 基于规则的专家系统的结构图 和 人 类 的 思 维 相 对 应 , 规 则 引 擎 存 在 两 者 推 理 方 式 : 演 绎 法( ForwardChaining)和归纳法( BackwardChaining)。 演绎法从一个初始的事实出发,不断地应用规则得出结论(或执行指 定的动作)。 而归纳法则是从假设出发,不断地寻找符合假设的事实。 Rete 算法是目前效率最高的一个 ForwardChaining 推理算法, Drools 项目是Rete 算法的一个面向对象的 Java 实现。 规则引擎的推理步骤如下: 将初始数据( fact)输入 工作引擎。 使用 类型匹配 比较规则( rule)和 事实 ( fact)。 如果执行规则存在冲突,即同时激活了多个规则,将冲突的规则放入冲突集合。 解决冲突,将激活的规则按顺序放入 “议程”序列。 使用规则引擎执行 “议程”序列 中的规则。 重复步骤 2 至 5,直到执行完毕所有 “议 程” 中的规则。 Jess 规则引擎 同大多数专家系统工具一样, Jess 的核心也是由事实库、规则库、推理机三大部分组成,并采用产生式规则作为基本的知识表达模式。 在 Jess 中,事实包括简单事实和对象事实。 简单事实就是一个描述事物的断言,而对象事实除此之外还封装了方法,可以接受外界信息改变自身的特征。 这一概念本身并不是 Jess首次提出的, ARTIM、 CLIPS 都支持这一概念。 但 Jess 表达对象事实的方法确 本科毕业论文 8 实别具一格:它用 Java 而非系统本身的语言来定义对象。 在 CLIPS 中,对象事实通过系统本身的语句 defclass 和 makeinstance 来定义,但在 Jess 中,类的定义由 Java 语言书写,编译通过后即可动态地加入系统中。 用 Java 虚拟机编译通过后,通过 defclass 命令将该类加入系统,它就可以执行类似于 CLIPS 中对类的各种操作,如生成它的一个实例、调用它的方法等。 由此可见, Jess 可以方便地调用 Java 中的类库,使用 Java 中的各种数据结构和方法,从而具备其他系统不可比拟的优良的嵌入能力。 Jess 通过模式匹配语言对事实进行操作。 在 Jess 中,模式匹配操作符的类型有很多,从可以同任意事实进行匹配的单一 操作符到只能同满足特定约束值的事实进行匹配的复杂操作符。 特别要指出的是, Jess 中有“ unique”条件元素,它告诉系统同该模式匹配的事实是惟一的。 这样,当模式发现一条事实同它匹配后,就会停止对事实库的检索,在实际应用中,这可以将系统的性能提高 20%~ 30%,而 CLIPS 系统不支持这一条件元素。 在 Jess 中,规则的表达形式沿用了 CLIPS 的语法结构,通过对规则前件和后件的限定,它可以支持内容丰富的模式匹配语言。 另外, Jess 支持面向过程的编程方式,它提供了一些语句来控制规则后件的操作流程,如使用 if„ then„ else 和 while„ do„语句,这样它就能很有效地利用面向过程编程的优势。 总之, Jess 的这些特性使系统拥有很强的知识表示能力。 Jess 支持前向和逆向推理两种方式,前向推理同 CLIPS 的原理相同,逆向推理则是 Jess 不同于 CLIPS 的一个显著特征。 在 Jess 的逆向推理中,规则仍采用if„ then„结构,但是在逆向推理时,推理引擎执行的是前件没有得到满足的规则,这种行为常常被称为目标寻找。 显然, Jess 同时支持前向和逆向推理的特点使其推理能力得到了加强。 推理的效率很大程度上依赖于匹配算法的效率。 Jess通过实现 Rete 匹配算法来提供非常高效的前向和逆向推理。 Rete 算法利用了专家系统中时间冗余性和结构相似性这两个特点,有效地减少了用于匹配操作的次数。 因此,当系统的性能是由匹配算法的质量决定时, Jess 的优点将更为明显。 应当指出的是, Rete 算法是一个以空间换取时间的算法,所以,应用 Jess 时应当考虑内存的消耗。 本科毕业论文 9 页面开发 MVC 模式 MVC 模式最早来源于 Smalltalk 程序设计语言中对界面的构造方法 , 包括三种类型 : Model(模型 )是应用对象 , view(视图 )是界面对象 , Controller(控制器 )是用户界面对用户输入的响应。 MVC 的目的是增加代码的重用率,减少数据表达,数据描述和应用操作的耦合度。 同时也使得软件可维护性,可修复性,可扩展性,灵活性以及封装性大大提高。 Model表示应用的数据及操作这些数据的逻辑方法。 任何和整个应用相关的持久性数据都放在模型中。 View 将模型的当前状态呈现给用户,具体的显示方法由视图负责,因此一个模型可以适用于多个不同的视图。 在模型状态改变后,通过模型和视图之间的协议,视图得知这种改变并修改自己的显示。 对于用户的输入,视图将它们交给控制器处理。 Control 负 责交互,将用户输入的数据导入模型;它还利用用户的输入将应用转向其他视图。 MVC 模式在项目的页面实现部分使用。 其中在项目文件夹“ Management”下的 jsp 文件就是其中的视图,包“ ”下的 servlet 文件就是其中的控制器,而包“ ”下的文件就是模型。 MVC 模式的应用使得整个系统操作和应用层次分明,易于维护。 Java Servlet 技术 简介 技术简介 Servlet 技术是 Sun 公司提供的一种实现动态网页的解决方案,它是基于 Java编程语言的 WEB 服务器端编程技术,主要用于在 WEB 服务器端获得客户端的访问请求信息和动态生成对客户端的响应消息。 Servlet 技术也是 JSP 技术(另外一种动态网页开发技术)的基础。 一个 Servlet 程序就是一个实现了特殊接口的 Java 类 , 用于被支持 Servlet的 WEB服务器调用和运行,即只能运行于具有 Servlet引擎的 WEB 服务器端。 一个 Servlet 程序负责处理它所对应的一个或一组 URL 本科毕业论文 10 地址的访问请求,接收访问请求信息和产生响应内容。 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 类。 编写与编译 Servlet 程序 一个 Servlet 程序就是一个在 WEB 服务器端运行的特殊 Java 类,这个特殊的 Java 类必须实现 接口, Servlet 接口定义了 Servlet 容器与Servlet 程序之间通信的协议约定。 为了简化 Servlet 程序的编写, Servlet API 中也提供了一个实现了 Servlet 接口的最简单的 Servlet 类,其完整名称为,这个类实现了 Servlet 程序的基本特征和功能。 Servlet API 中还提供了一个专用于 HTTP 协议的 Servlet 类,其名称是,它是 GenericServlet 的子。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。