




免费预览已结束,剩余91页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国内图书分类号 TP393 18 国际图书分类号 西西 南南 交交 通通 大大 学学 硕硕 士士 研研 究究 生生 学学 位位 论论 文文 基于 SNMP 的校园网络管理系统 设计与实现 年 级 二 五级 姓 名 刘 颖 申请学位级别 工 程 硕 士 专 业 计算机技术 指 导 教 师 谭 献 海 副教授 二 一 年三月 Classified Index TP393 18 U D C Southwest Jiaotong University Master Degree Thesis DESIGN AND IMPLEMENTATION OF CAMPUS NETWORK MANAGEMENT BASED ON SNMP Grade Grade 20052005 Candidate Candidate LiuLiu YingYing AcademICAcademIC DegreeDegree AppliedApplied for for EngineeringEngineering MasterMaster s s DegreeDegree Speciality Speciality ComputerComputer TechnologyTechnology Supervisor Supervisor TanTan XianHaiXianHai Mar 2010Mar 2010 西南交通大学硕士研究生学位论文 第 II 页 西南交通大学硕士研究生学位论文 第 III 页 摘摘 要要 随着网络的建设和发展 网络中在线设备越来越多 网络中的应用服务 也越来越多 这就对传统的网络管理提出了更高的要求 尤其是在校园网这 一特殊的网络环境中做到对各种网络设备 资源有效的监控 达到网络安全 可靠 故障能够及早发现 确保网络高效运行 目前市面上有很多的商品化 网络管理软件和开发包 尽管它们提供了强大的功能 但对于校园网这一具 体的网络环境来说很多功能是不必要的或是需要进行重新定制开发的 同时 系统的建设成本和维护成本都比较昂贵 因此结合我校校园网的实际情况设 计并开发一种适合我校校园网的网络管理系统是非常必要的 一方面可以提 高网络管理的水平和管理效率 给用户提供一个更好的网络环境 另外一方 面通过对监控数据进行分析也可为网络的改造和升级提供事实依据 论文首先介绍了课题的研究背景和网络管理的发展现状 并对相关的技术 与理论进行了阐述 重点介绍了网络管理的一般模型结构和简单网络管理协 议 SNMP 及其应用原理 其次进行了校园网网络管理系统的需求分析和总体 设计 提出前端用户层 业务逻辑层 数据持久化层相互独立的三层构架 整个系统由设备管理模块 资源管理模块 计划管理模块 数据视图管理模 块 系统管理模块以及后台进程等六个模块组成 并对系统的数据结构进行 了说明 然后对系统的数据持久化功能 周期主动监控功能 设备数据获取 功能 被动捕获设备事件功能 邮件报警处理功能 数据图形化功能以及前 后端业务互相交互的功能进行了详细的叙述 最后对系统在实际校园网环境 中进行的测试进行了说明 系统最终的测试结果表明论文中提及的功能均已实现 在合理的监控任务 负载下系统可以稳定的运行 且不会对整个网络产生影响 关键词 网络管理 SNMP 协议 trap 西南交通大学硕士研究生学位论文 第 IV 页 Abstract Key words 西南交通大学硕士研究生学位论文 第 V 页 目 录 第 1 章 绪论 1 1 1 研究背景及意义 1 1 2 网络管理的发展现状 2 1 3 论文的研究工作 4 1 4 论文的组织和结构 4 第 2 章 相关技术与理论 6 2 1 网络管理简介 6 2 1 1 网络管理的功能 6 2 1 2 网络管理的一般模型结构 6 2 2 简单网络管理协议 SNMP 7 2 2 1 SNMP 简介 7 2 2 2 SNMP 网络管理的体系结构 8 2 2 3 SNMP 协议及协议的操作 9 2 2 4 管理信息结构 SMI 10 2 2 5 管理对象的标识 11 2 2 6 管理信息库 MIB 11 2 2 7 SNMP 在实际中的应用 13 2 2 8 SNMP 的缺陷 14 2 3 J2EE 体系结构及 STRUTS框架 14 2 3 1 WEB 应用程序及 J2EE 体系结构 14 2 3 2 Struts 框架 16 2 4 本章小结 19 第 3 章 系统分析和总体设计 20 3 1 系统总体需求 20 3 2 设计原则 21 3 3 功能概述 21 3 4 总体设计 23 3 4 1 系统架构 23 3 4 2 系统功能 25 3 4 3 数据库结构设计 27 3 5 系统开发环境 27 3 6 本章小结 28 西南交通大学硕士研究生学位论文 第 VI 页 第 4 章 系统详细设计与实现 29 4 1 数据持久化层的设计实现 29 4 1 1 数据持久化层的设计 30 4 1 2 数据持久化层的实现 31 4 2 业务逻辑层的设计与实现 38 4 2 1 周期主动监控的设计与实现 39 4 2 2 设备数据获取的设计与实现 47 4 2 3 捕获设备事件的设计与实现 51 4 2 4 邮件报警处理的实现 56 4 2 5 数据图形化模块的设计与实现 57 4 3 表示层的设计实现 63 4 3 1 数据交互格式 64 4 3 2 前端页面与后台服务程序的交互 65 4 4 本章小结 69 第 5 章 系统部署与运行 70 5 1 系统的部署 70 5 2 系统的运行测试 71 5 3 系统的最终实现效果 75 5 4 本章小结 75 总结与展望 76 致 谢 78 参考文献 79 附录 1 83 攻读硕士期间发表的论文及科研成果 88 西南交通大学硕士研究生学位论文 第 1 页 第 1 章 绪论 1 1 研究背景及意义 信息化发展到今天 计算机网络得到了巨大的发展 不断扩充 网络管理 技术已成为计算机网络领域内的热门研究课题 当前计算机网络的发展特点 是规模不断扩大 复杂性不断增加 异构性越来越高 从而增加了网络管理 的难度 因此 面对越来越复杂和重要的网络 如何确保其尽可能长时间的 正常运行 或当网络出现故障时尽可能快地发现和修复故障 使其最大限度 地发挥其应用功能和效益的过程 就成了网络管理者普遍关注的问题 如果 没有一个高效的管理系统对网络系统进行管理 就不能保证网络的稳定运行 和有序发展 就很难保证向用户提供满意的服务 网络管理涉及到网络运行 的各个环节 并已成为现代信息网络中最重要的内容 在网络管理系统中 网络故障管理与性能管理是极为重要的一部分 随着网络应用的发展和数字化校园的建设目标 校园网已经成为高校教学 科研 工作必不可少的工具 校园网上的应用增多以及网络规模逐步扩大 造成网络管理任务数量和难度增加 目前西南交通大学共有三个校区 分布 在成都和峨眉两地三个不同的地方 三地校区互联 校园网网络跨度大 各 校区骨干为千兆以太网 下连多个分中心 在线使用多个厂家的不同型号的 网络设备 虽然各个厂家有自己的网管软件 但是多数是内嵌的而且是专用 的 不便于统一管理 另一方面 网络故障影响网络服务的情况也时有发生 对网络故障没有必要的前期预测手段 发现故障比较被动 往往只有在用户 申报故障时才得以发现 校园网上的应用服务器有 Windows Linux Solaris 等多种操作平台 目 前还没有一个统一的管理平台对这些服务器进行监控与管理 对服务器上运 行的应用系统只有通过人工访问来判断应用系统是否正常运行 网络中心已 经有计费系统和安全监控系统 但在网络性能和故障管理方面还没有很完善 的应用系统 对网络性能进行评估的数据不全 不能正确掌握网络使用状况 所以 设计一个校园网运行管理平台对网络上的主要交换设备 主要服务 器和应用系统进行统一监控和管理是有实用性和研究价值的 可以提高网络 管理的水平和管理效率 给用户提供一个更好的网络环境 通过对监控数据 西南交通大学硕士研究生学位论文 第 2 页 进行分析也可为网络的改造和升级提供事实依据 1 1 1 2 网络管理的发展现状 早期的网络管理者需要学习不同的从网络设备获取数据的方法 这是因为 各个生产厂家使用专有 私有 的方法收集数据 相同功能的设备 不同的生 产厂商提供的数据采集方法可能大相径庭 这样就使得建立统一的行业标准 变得非常重要 而首先开始研究网络管理通信标准问题的是国际上最著名的 国际标准化组织 ISO 他们对网络管理的标准化工作始于 1979 年 主要针对 OSI 开放系统互连 七层协议的传输环境而设计 ISO 的成果是 CMIS 公共管理信息服务 和 CMIP 公共管理信息协议 CMIS 支持管理进程和管理代理之间的通信要求 CMIP 则是提供管理信息传输 服务的应用层协议 二者规定了 OSI 系统的网络管理标准 基于 OSI 标准的 产品有 AT 读取数据配置文件 props load JDBCFactory class getResourceAsStream datasource config properties 读取配置文件的内容 class 需要生成的datasource类名称 String Class props getProperty class serverURL 数据库连接串 设置了连接地址 String url props getProperty serverURL driver 数据库的驱动名称 根据不同的后台数据库会有不同的数据库驱动 程序 String driver props getProperty driver username 连接数据库时需要提供的用户名称 String user props getProperty username JDBCFactory ds DataSource JDBCFactory STATIC INITIALIZER DataSource getConnection getConnection String user String pwd getDaoCache void DataSource Connection Connection Cache 西南交通大学硕士研究生学位论文 第 33 页 password 连接数据库时提供的口令 String password props getProperty pasword minCon 设置数据库连接可用的最小连接数 int minCon Integer parseInt props getProperty minCon maxCon 设置数据库连接可用的最大连接数 int maxCon Integer parseInt props getProperty maxCon conTimeout 设置了数据库的连接超时时间 double conTimeout Double parseDouble props getProperty conTimeout Constructor cotr null 根据class变量指定的类名生成类对象 cotr ClassUtils forName Class getConstructor new Class String class String class String class String class int class int class double class Object dataSource null 根据类对象生成类实例 dataSource cotr newInstance new Object driver url user password new Integer minCon new Integer maxCon new Double conTimeout 将类实例赋值给ds属性供其他类使用 ds DataSource dataSource DAO 类是数据存取方法实现的类 如图 4 3 所示 西南交通大学硕士研究生学位论文 第 34 页 图 4 3 SimpleDAO 类的结构图 SimpleDAO 类实现的核心方法是 insert Object obj update Object obj remove Object obj getalldata SimpleDAO selectfields fields table name conditions votype orderfields keyField clvo String String String String String String String Class null select null SimpleDAO SimpleDAO DataSource datasource getConditionOfWrapperSQL Object obj BaseVO vo String keyfield getArrayFields String str String mark insert Object obj update Object obj remove Object obj remove getalldata getalldata String sql getdata String sql executSQL String sql getUpdateSQL String updateFields Object value getDeleteSQL String via getInsertSQL String insertFields Object value getConditions setConditions String conditions getFields setFields String fields getKeyField setKeyField String keyField getOrderfields setOrderfields String orderfields getSelectfields getTable name setTable name String table name getVotype setVotype String votype getClvo setClvo Class clvo addField String FieldName removeField String FieldName needsplite String typename clone Object sourceobj Object desobj clone Object sourceobj getScopeIdentity String String boolean boolean boolean boolean List List Object boolean String String String String void String void String void String void String String void String void Class void void boolean boolean boolean Object long 西南交通大学硕士研究生学位论文 第 35 页 这四个方法是最基本的 它们实现了数据 VO 实例的插入操作 更新操 作 删除操作和获取操作 前三个方法在操作完成后会返回布尔值以表示是 否操作成功 第四个方法返回一个列表 列表的每一个元素对应一个 VO 对 象 此外 SimpleDAO 类设计了多个属性使得实例在进行数据存取操作时知道 读写哪一个表和字段 其中 clvo 属性表示在实例进行数据的读取操作后将结 果保存到哪一个 vo 类中 clvo 的类型为 Class 也就是说 DAO 获得一个记录 后 会根据 clvo 的内容生成一个 vo 实例 然后将记录保存到该实例中 而对 该实例内容的设置则依靠的是 vo 实例的方法 该方法通过 BaseVO 类来实现 调用 BaseVO 的类图如图 4 4 所示 图 4 4 BaseVO 类的结构图 BaseVO 类实现的核心思想是基于 java 的映射原理对已经写好的 VO 类进 行操作 主要的方法是 getObject String FieldName setObject String FieldName Object valueobj 第一个方法是从实例对象中获得指定的属性值 如果获得失败则会返回 null 否则返回 Object 型数据 之所以返回的是 Object 型对象这是因为在 java 的设计中所有的类都是派生自 Object 类型 包括简单型数据类型 例如 BaseVO cl vo instance Class Object null isEQ CreateInstance BaseVO Class cl vo boolean created BaseVO String class name boolean created BaseVO Object instance getCl vo setCl vo Class cl vo getInstance setInstance Object instance getFieldString String f getFieldArray String fs String mark checkfield String fvalue FindField String SourceField String FieldName getObject String FieldName boolean needconvert getObject String FieldName setObject String FieldName Object valueobj converttype Object value Class source type Class destin type getObject Class cl Object obj String FieldName setObject Class cl Object obj String FieldName Object valueobj isStringtype String typename isDatetype String typename boolean void Class void Object void String String boolean boolean Object Object Object Object Object Object boolean boolean 西南交通大学硕士研究生学位论文 第 36 页 int long 等 BaseVO 类提供了类型转换的方法 通过 converttype 方法可以对 数据库中存储的数据类型转换为 VO 类属性支持的类型 第二个方法是设置 VO 对象指定的属性值 BaseVO 会根据给定的 FieldName 值 也就是字段名称在 VO 实例中查找相应的 set 方法 如果找到 方法则通过 invoke 方法调用 SimpleDAO 类的 insert update 方法实现过程类似 核心代码如下 BaseVO basevo new BaseVO obj StringBuffer values new StringBuffer for int i 0 i this getFields length i Field fd basevo getCl vo getDeclaredField this getFields i trim Object value null if needsplite fd getType getName values append value else values append value if i fields length 1 values append String sql insert into this getTable name this getSelectfields values values toString return this executSQL sql remove 方法实现代码 根据实参传入的 vo 实例创建 basevo 实例 BaseVO basevo new BaseVO obj 建立删除语句 String sql delete from this getTable name if this getConditions equals sql sql where this getConditions else if this getKeyField null getAlldatas 方法实现代码 List rows new ArrayList List datas new ArrayList BaseVO basevo new BaseVO this getClvo getName false 通过sql语句查询并将结果返回到rows变量 rows this getJdbcTemplate queryForList sql 遍历返回的列表 每一个item都是一个记录 Iterator it rows iterator while it hasNext basevo根据指定的vo class 生成一个实例 basevo CreateInstance Map voMap Map it next 根据SimpleDAO类中的Fields值遍历voMap的字段值 for int i 0 i this getFields length i String fieldname this getFields i trim Class type this getClvo getDeclaredField fieldname getType Object value voMap get fieldname 如果找到了指定字段的值 则将该值赋予basevo中的vo实例 if value null basevo setObject fieldname new Object value datas add basevo getInstance return datas BaseVo 类的 getObject 方法实现如下 获得 VO 类的方法 Method methods this getCl vo getMethods 遍历VO类的方法 如果发现与get 字段名组合相符的方法名称则调用该方 法 西南交通大学硕士研究生学位论文 第 38 页 for int i 0 i methods length i if methods i getName equalsIgnoreCase get FieldName trim Object args null if methods i getParameterTypes length 0 args null else args new Object methods i getParameterTypes length 调用方法并返回值 Object value methods i invoke this getInstance args return value BaseVo 类的 setObject 方法实现如下 Method methods this getCl vo getMethods 遍历VO类的方法 如果发现set 字段名组合相符的方法名称则调用该方法 for int i 0 i methods length i if methods i getName equalsIgnoreCase set FieldName trim Object args null if methods i getParameterTypes length 0 args null else 检查方法需要的参数数量是否与设置的参数值数量一致 if valueobj length methods i getParameterTypes length args new Object valueobj length for int j 0 j valueobj length j if valueobj j null 将传入的值转换成VO类需要的类型 args j converttype valueobj j valueobj j getClass methods i getParameterTypes j 西南交通大学硕士研究生学位论文 第 39 页 调用VO类的方法 并返回结果 return methods i invoke this instance args 数据持久层的设计除了上述基础的存取方法外 系统为了便于上层模块的 使用 根据不同模块 不同业务的需要对 SimpleDAO 进行派生 具体说就是 根据不同的业务 模块涉及到的表进行 DAO 类的设计 只是这些类都派生于 SimpleDAO 类 在构造阶段设置不同表的属性 这样在模块使用存取操作的 时候就可以调用相应的类 而不需要每一次都设置表的属性 提高了代码效 率和降低了测试难度及出错几率 数据持久化层各个类的关系如图 4 5 所示 图 4 5 数据持久化层的类关系图 4 2 业务逻辑层的设计与实现 业务逻辑层分为管理模块和后台模块两个部分 其中管理模块包括了 设备管理 资源管理 监控计划管理以及数据图形化模块 后台模块包括 了主动轮询设备 资源模块和被动侦听设备网络事件模块 如图 4 6 所示 devicedao devicedao DataSource ds reset getDeviceinfo getAllDeviceinfos SimpleDAO dao selectfields fields table name conditions votype orderfields keyField clvo String String String String String String String Class null select null hostresourcedao hostresourcedao DataSource ds reset getHostResourceinfo getHostResources oiddao oiddao DataSource datasource init getOIDinfo long id int index getOIDinfo String oid plandao plandao DataSource ds reset getPlaninfo getAllPlaninfo switchresoucedao switchresoucedao DataSource ds reset getInterfaceinfo getInterfaces trapdao trapdao DataSource ds reset getDeviceinfo userdao userdao DataSource ds reset getUserinfo getAllUserinfos 西南交通大学硕士研究生学位论文 第 40 页 图 4 6 业务逻辑层的结构图 由图 4 6 可以看到业务逻辑层分为面向客户端和后台进程两个层面的功能 划分 而无论哪一层面的功能都要借助于上图所示底层不同类的支持 这些 类包括了实现设备资源管理的管理模型类 实现执行计划的设备数据采集类 对采集的数据进行图形化的操作类等等 本节将对其中周期主动监控 计划执 行 功能 数据图形化功能 主动与被动捕获监控 网络事件捕获 功能的设计 与实现进行具体的说明 4 2 1 周期主动监控的设计与实现 通过使用 JAVA 的 timer 类完成周期性主动监控的功能 timer 类提供了方 法 schedule 该方法有三个参数 分别对应 timertask 类的子类 调用 schedule 方法后多长时间 单位 毫秒 开始执行该子类的方法 下一次调用该子类的时 间间隔 单位 毫秒 其中第一个参数需要我们的实现类继承自 timertask 类 我们需要实现 Timertask 类中的 run 方法 该方法不携带参数 只是作为 timer 类定期调用指定 timertask 子类的入口方法 针对不同的设备进行监测 每一个设备被安排成一个计划 数据信息被保 存在 planinfo 类中 该类包括了多个属性 这些属性向计划的执行类 planitem 提 西南交通大学硕士研究生学位论文 第 41 页 供了必要的信息 Planinfo 类的结构图如图 4 7 所示 planinfo info id ip name deviceid status begintime repeater times cname mailalerted tomail long String String long int long int int String int String 1 1 0 planinfo getdatas savedatas getBegintime setBegintime long begintime getName setName String name getId setId long id getRepeater setRepeater int repeater getStatus setStatus int status getDeviceid setDeviceid long deviceid getTimes setTimes int times getCname setCname String cname getIp setIp String ip getMailalerted setMailalerted int mailalerted getTomail setTomail String tomail void void long void String void long void int void int void long void int void String void String void int void String void 图 4 7 planinfo 类的结构图 系统在最初运行的时候会建立一个 plans 类的实例 该类通过 loadplans 方 法从数据库中加载计划信息到计划列表 然后对该列表进行迭代 每次取出 列表中的一个 planinfo 对象 根据它的 Cname 属性值确定对应的设备类 从 而产生相应的计划执行类 planitem 在获得 planitem 的实例后调用 timer 的 schedule 方法 也就是设置计划执行参数 具体的代码如下 public void loadplans sd setClvo planinfo class sd setTable name plans 西南交通大学硕士研究生学位论文 第 42 页 String fields id name deviceid status begintime repeater cname sd setFields fields sd setConditions status 1 try planlist ArrayList sd getalldata 获得计划列表 for int i 0 i planlist size i 对计划列表进行迭代 planinfo pi planinfo planlist get i 得到一个计划信息 planitem item planitem this CreateInstance pi getCname trim item setDs this ds item loadplan pi item getPlaninfo setTimes 1 调用schedule方法设定计划执行参数 其中item为timertask子类 timer schedule item item getPlaninfo getRepeater 1000 item getPlaninfo getRepeater 1000 System out println 计划 item getPlaninfo getName item getPlaninfo getId 加入执行序列 catch SQLException e System out println 加载计划出错 e getMessage Plans 类的结构图如图 4 8 所示 plans ds sd timer DataSource SimpleDAO Timer plans DataSource ds loadplans CreateInstance String cname getTimer setTimer Timer timer main String args void Object Timer void void 图 4 8 Plans 类的结构图 在完成 loadplans 方法后 定期执行计划的事情就交给了 timer 类完成 该 西南交通大学硕士研究生学位论文 第 43 页 类在内存中维护一个列表 当一个条目到达执行时间点的时候就会调用该条 目的 timertask 子类 执行其中的 run 方法 在本系统中继承 timertask 子类的 类叫做 planitem 该类的属性包括 1 ds 数据源 因为每个计划的执行的结果需要保存到数据库中 因此 需要指定数据源 2 plan 计划信息 每一个计划都有不同的计划信息 这些信息为执行 计划提供了必要的数据 3 device 设备信息 每一个计划针对网络中的一台设备 因此在执行 计划内容的时候需要提供设备信息 4 limits 限定条件 每一种设备包括多个资源 每一个资源可以设定 比率上下限值 这样在获得设备资源数据后 如果发生数据不符合 限定值的情况时系统会自动记录采集该数据的现场情况并作为报警 依据 5 curvalue 本次采集的数据被保存在该属性中 Planitem 类的结构图如图 4 9 所示 planitem ds plan device limits curvalue DataSource planinfo deviceinfo HashMap HashMap new HashMap new HashMap planitem planitem DataSource ds getDevice getCurvalue setCurvalue HashMap curvalue getLimits setLimits HashMap limits insertevent trapdatas event setDevice deviceinfo device setDevice String ip String community int port int version loadlimits long deviceid loadplan planinfo plan loadplan long planid DataSource ds loaddeviceinfo long deviceid DataSource ds run getdatas savedatas getPlaninfo setPlaninfo planinfo plan getDs setDs DataSource ds deviceinfo HashMap void HashMap void void void void void void void void void void void planinfo void DataSource void 图 4 9 Planitem 类的结构图 西南交通大学硕士研究生学位论文 第 44 页 Planitem 类实现了 timertask 类的 run 方法 其中 getdatas 和 savedatas 方法需要继承的类根据各自的需要进行实现 这两个方法一个是获取设备资 源数据 一个是保存获得的数据 具体代码如下 public void run TODO Auto generated method stub if this getPlaninfo getTimes 1 没有执行次数限制 getdatas savedatas else 判断是否已经完成规定的执行次数 if getPlaninfo getTimes 1 System out println new Date toString times is zero else getdatas savedatas getPlaninfo setTimes getPlaninfo getTimes 1 System out println new Date getPlaninfo getName execute getdatas have getPlaninfo getTimes 之所以不统一实现 getdatas 和 savedatas 方法 这是因为系统将网络中的 设备分为两类 一类是网络设备 另一类是主机设备 不同的设备所需要采 集的资源数据是不一样的 执行的指令也不一样 保存数据时对应的结构也 有些许差异 因此将两类设备执行计划的类分开实现 针对设备类型为网络的执行类名为 switchitem 该类的结构图如图 4 10 所 示 西南交通大学硕士研究生学位论文 第 45 页 switchitem sd interfacedatas SimpleDAO HashMap new HashMap main String args switchitem switchitem DataSource ds loadlimits long deviceid compare long speeds InterfaceData lastData InterfaceData curData push InterfaceData curData long speeds loadplan long planid DataSource ds loadplan planinfo plan loadinterfaceinfo DataSource ds addInterfaceInfo interfaceinfo ifinfo addInterfaceInfo int hostid int ifIndex String ifDescri int ifType long ifSpeed getInterfaces setInterfaces ArrayList interfaces initdb DataSource ds getValue deviceinfo object Vector oids int op getIODatas deviceinfo object int index getdatas savedatas getinterfacedatas addInterfaceData int index InterfaceData ifData void void InterfaceDataResult void void void void void void ArrayList void void HashMap InterfaceData void void HashMap void 图 4 10 Switchitem 类的结构图 Switchitem 类继承自 planitem 类 实现了 getdatas 和 savedatas 方法 该 类的实例在创建的时候会通过 loadplans 方法加载需要的计划信息 同时根据 网络设备的编号 deviceid 获得这个设备的资源列表 之后在 getdatas 方法中 会对资源列表进行迭代 每次取得一个资源 然后对该资源进行数据的获取 关于具体的数据获取实现后面有介绍 最后将数据放入资源数据列表中 Savedatas 方法会对资源数据列表进行迭代 取出一条记录后通过持久化层的 实例调用保存到数据表中 Switchitem 类的 getdatas 方法实现代码如下 public void getdatas 迭代资源列表 for int i 0 i this getInterfaces size i interfaceinfo interfaceinfo interfaceinfo this getInterfaces get i 获得远端设备资源的数据 InterfaceData interfacedata this getIODatas this getDevice interfaceinfo getIfIndex if interfacedata null interfacedata setTimes new Date getTime interfacedata setHostid interfaceinfo getHostid this addInterfaceData interfaceinfo getIfIndex interfacedata 西南交通大学硕士研究生学位论文 第 46 页 this push interfacedata interfaceinfo getIfSpeed else System out println new Date toString 获得的数据为null 在将数据放入资源列表的时候会对本次获得的数据记录与上一次同一资源 数据记录进行比对计算 如果结果超出了预先的限定值就会触发报警记录 放入资源列表的实现代码如下 public void push InterfaceData curData long speeds Object obj this getLimits get curData getifIndex if obj null return condition limit condition obj obj this getCurvalue get curData getifIndex if obj null this getCurvalue put curData getifIndex curData else InterfaceData lastData InterfaceData obj 比对数据 InterfaceDataResult dataresult compare speeds lastData curData this getCurvalue put curData getifIndex curData 判断是否超过限定范围 if dataresult getEthUtilization limit gethivalue 配置报警事件信息 trapdatas event new trapdatas event setContent 这条消息表明主机 this getDevice getIp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产安全培训体会课件
- 中美借款合同7篇
- 安全施工会议培训模板课件
- 理论实战培训课件
- 阜康强夯工程方案(3篇)
- 理智的鸭子写话课件教学
- 猫的课件教学
- 钦州市灵山县三隆镇金西村玻璃用砂岩环评报告
- 广西防城边境经济合作区基础设施一期工程-滩散污水处理厂项目环境影响报告表
- 安全教育防地震课件
- 2025年下半年安徽省港航集团有限公司所属企业社会公开招聘22名考试参考试题及答案解析
- 人教PEP版六年级英语上册全册教案
- 3D打印技术在制造业2025年发展趋势及市场前景可行性分析报告
- 综合楼玻璃安装合同协议书范本模板6篇
- 2025年度集中供暖项目暖气设施安装及售后服务合同
- 护士医护人员职业安全防护培训
- 2025福建厦门市公安局同安分局招聘警务辅助人员50人笔试备考试题及答案解析
- 莲山教学课件下载
- 大学生创新创业基础课件 第7章 创业与创业历程
- 班主任育人故事经验分享陪伴每一名学生慢慢成长模板
- 2025至2030中国漂白粉行业发展研究与产业战略规划分析评估报告
评论
0/150
提交评论