




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
=毕业设计(论文)基于Flex的网络拓扑图的绘制工具毕业论文目录摘要1Abstract2第一章 绪论7第一章 绪论71.1课题研究的背景71.2课题研究的内容与意义81.3论文的组织结构9第二章 Flex与Java技术分析及系统框架构成102.1什么是RIA102.2 RIA与Flex102.3 MVC模式与Cairngorm框架介绍122.3.1 MVC模式介绍122.3.2 Cairngorm框架介绍122.4 Java DAO结构分析142.5 DBPool介绍152.6 LCDS介绍15第三章 系统功能分析与设计163.1项目概述163.2项目分析163.2.1 用例分析163.2.2 Flex + Java技术可行性分析173.2.3 与现有的Cacti系统比较183.3系统框架设计183.3.1 系统框架图与分析183.3.2 软件架构图分析203.3.3 系统模块设计203.3.4 系统流程图分析213.4详细设计233.4.1 数据库设计233.4.2 持久层设计253.4.3 基于Cairngorm框架的Flex表现层设计273.4.4 拓扑图绘制功能模块设计303.4.5 软件界面设计313.4.6 基于XML交换机网络拓扑模型描述的设计31第四章 系统功能实现324.1 开发环境搭建324.1.1 开发使用的工具324.1.2 LCDS的安装及配置324.1.3 Cairngorm开发包加载334.1.4 Java DBPool配置334.2数据库实现344.3持久层实现344.4 Cairngorm框架部分实现374.4.1 Services实现374.4.2 Delegate实现374.4.3 Event实现384.4.4 Controller实现384.4.5 Command实现394.4.6 View部分实现404.5拓扑图绘制功能实现424.5.1 设备节点的实现424.5.2 设备连线的实现424.5.3 光晕效果的实现434.5.4 图标边框的实现444.5.5 鼠标右键功能实现444.6 XML功能模块实现45第五章 总结与展望485.1总结485.2展望48参考文献49致谢51译文及原文52图表目录1图 2-1 RIA各层关系112图 2-2 MVC模式123图 2-3 Cairngorm框架构成144图2-4 DAO结构图155图 3-1 普通用户用例图176图 3-2系统关系员用例图177图 3-3 Cairngorm框架图198图3-4 软件构架图209图3-5 系统功能模块图2110图 3-6 普通用户流程图2211图 3-7 系统管理员流程图2212图 3-8 数据库表关系图2513图3-9 持久层类图设计2614图 3-10 持久层时序图2715图 3-11 Cairngorm类图2916图 3-12 Cairngorm时序图3017图3-13 绘图功能模块类图3018图 3-14 软件界面总体设计3119图 4-1 应用软件3220图 4-2 Cairngorm包加载3321图 4-3 DBPool包加载3422图 4-4 数据库实现3423图 4-5 界面结构图4124图 4-6 界面布局图4125图 4-7 节点连线图4326图 4-8 光晕效果及图标边框4327图 4-9 右键功能菜单一4428图 4-10 右键功能菜单二4529图 4-11 拓扑图示例46 第一章 绪论1.1课题研究的背景无论在PC上还是移动设备商,Internet已经成为各种应用程序开发的主流。至今,应用程序经历了由基于主机模式C/S模式B/S模式RIA模式的几次重大的系统框架变革,其主要原因还是在于人们对应用程序的要求在改变。C/S模式即客户端-服务器模式,由服务器提供与接受数据,数据的收集与呈现由客户端完成。这种体系结构可以充分利用两端硬件环境的优势,将任务合理分配到 Client端和Server端来完成,降低了系统的通讯开销。同时,有一台专用的终端用于处理数据,很大程度上满足了用户体验的要求,因而C/S模式至今也有很多的应用。但是C/S结构的缺点也是很明显的:首先是C/S模式的部署问题,只有用户终端安装客户端程序才能使用我们的程序,本身都应用程序的推广也是一种限制。而且客户端应用程序需要进行不断的更新,因而部署成本比较高,且只能为一部分人多用。其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,开发成本也将大大的增加,代价高和低效率已经不适应工作需要。对于用户来说,不同操作系统版本,相同操作系统版本下不同软件发行版本的兼容问题也是相当令人恼火的。随着Internet技术及其应用以及电子商务的发展,B/S模式结构应运而生。B/S模式即浏览器-服务器模式,它不需要安装专有的客户端程序,只需要在浏览器中进行操作即可。B/S模式也可以说是一种特殊的C/S模式,不同公司遵循公开的协议发开浏览器。这样就大大简化了客户端的载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、速度快、效果优。但是传统的B/S模式基于页面的请求、服务器响应、页面的刷新,把网络程序的表示层建立于HTML页面之上,而HTML是适合于文本的。而用户的要求又在提高,不仅要求降低成本,而且要求在浏览器上也要有客户端程序一样的体验,这种要求传统的B/S模式是满足不了的,因而RIA技术也相应的诞生了。RIA(Rich Internet Application)即富互联网应用,不仅具有的桌面应用程序的特点包括:在消息确认和格式编排方面提供互动用户界面;在无刷新页面之下提供快捷的界面响应时间;提供通用的用户界面特性如拖放式(drag and drop)以及在线和离线操作能力。还兼顾传统B/S模式的开发成本低,容易部署等特点。对于企业来说,部署RIA的好处在于: 1)RIA可以继续使用现有的应用程序模型(包括J2EE和.NET),因而无需大规模替换现有的Web应用程序。通过Rich Client技术,可以轻松构建更为直观、易于使用、反应更迅速并且可以脱机使用的应用程序。 2)RIA可以帮助企业提供多元化的重要业务效益,包括提高销量、提高品牌忠诚度、延长网站逗留时间、较频繁的重复访问、减少带宽成本、减少支持求助以及增强客户关系等。RIA技术还具有异步通信与局部刷新的特点,打开RIA程序时,数据被缓存在客户端,从而可以实现一个比就HTML的响应速度更快且数据往返服务器的次数更少的用户界面。且RIA程序可以被设计成离线模式,实现前台与后台的数据异步。1.2课题研究的内容与意义本课题基于FLEX的网络拓扑图的绘制工具是基于RIA技术的网络监控系统的设计与研究下的一个子课题。基于RIA技术的网络监控系统的设计与研究这一课题研究的是开发基于RIA技术的新型网络设备管理系统用于取代我校网络中心现有的Cacti系统,以便更好的监控校园网络设备,进一步完善我校网络中心维护工作的流程。Cacti系统使用SNMP,Shell或Perl脚本在后台将网络带宽绘制成图片,然后通过传统的web请求、响应机制将图片传到客户端浏览器上。而开发完成的基于Flex的网络设备监控管理系统直接将数据传输到客户端,由客户端完成对数据的分析与呈现,从而大大减少了服务器与网络带宽的负担。基于FLEX的网络拓扑图的绘制工具这一子课题研究的内容是设计一款基于Web浏览器的网络拓扑图的绘制工具,从而更直观的对校园网络设备进行管理与控制。1.3论文的组织结构本论文共分为5章:第一章:绪论 阐述了课题研究的背景与意义第二章: Flex与Java技术分析及系统框架构成 系统介绍本课题所使用的一些技术与框架的构成,使读者对本课题研究的内容有一个详细的认识。第三章:基于FLEX的网络拓扑图的绘制工具的分析与设计 给出模块的需求分析,详细阐述各模块的技术要点,通过分析得出具体的设计方案。第四章:基于FLEX的网络拓扑图的绘制工具功能的实现 基于系统模块的设计要求,针对模块中的代表性部分,给出其设计流程和实现。第五章:总结与展望 总结本文内容与课题研究的不足之处。本论文的重点是在第四章,系统功能的实现部分。在这一章里将详细阐述Flex + Java这一系统框架各部分功能的实现。第二章 Flex与Java技术分析及系统框架构成2.1什么是RIARIA是Rich Internet Applications的缩写,翻译成中文为富因特网应用程序,RIA技术旨在提高用户体验,增强用户与应用程序的交互能力。它不仅有传统B/S模式开发成本低、容易部署、跨平台等特点,还具有C/S模式中客户端丰富的界面及极高的用户体验能力,在客户端对原始数据解读并呈现,缓解服务器的压力。无论将来RIA是否能够如人们所猜测的那样完全代替HTML应用系统,对于那些采用C/S架构的胖客户端技术运行复杂应用系统的机构和采用基于B/S架构的瘦客户端技术部署Web应用系统地机构来说,RIA确实提供了一种廉价的选择。客户机在RIA中的作用不仅是展示页面,它可以在幕后与用户请求异步地进行计算、传送和检索数据、显示集成的用户界面和综合使用声音和图像,这一切都可以在不依靠客户机连接的服务器或后端的情况下进行。就目前RIA的使用情况来说,离RIA时代还有很远的一段距离。今后几年时间内传统的Web应用程序和RIA将会共存。2.2 RIA与Flex目前出现的几种比较有实力或者有特点的RIA客户端开发技术:Adobe Flash/Flex、JavaFx、SliverLight等,而Flex是其中一种应用较为广泛的一种。使用 Flex 创建的 RIA 可运行于使用 Adobe Flash Player 软件的浏览器中。据Adobe称已经有98以上的桌面系统的浏览器都安装了 Adobe Flash Player,这使得以Adobe Flash Player为客户端的RIA可以支持种类广泛的平台和设备。图 2-1表示RIA各层对应关系:View负责页面数据展示与采集,ModelLocator负责数据保存,DataHandler负责数据的处理。1图 2-1 RIA各层关系Flex 采用GUI界面开发,使用类似于XML的MXML语言。Flex 具有多种组件,可实现Web Services,远程对象,drag and drop,列排序,图表等功能;FLEX内建动画效果和其它简单互动界面等。相对于基于HTML的应用(如PHP、ASP、JSP等)在每个请求时都需要执行服务器端的模板,由于客户端只需要载入一次,FLEX应用程序的工作流被大大改善。FLEX的语言和文件结构也试图把应用程序的逻辑从设计中分离出来。Flex只要由两部分组成:MXML与ActionScript。MXML是用来布局用户界面组件的XML语言,语言标签中使用mx作为前缀。如一个按钮在MXML中可以如下描述:ActionScript为Flash产品开发的 ,最初是一种简单的脚本语言,现在最新版本3.0,是一种完全的面向对象的编程语言,功能强大,类库丰富。在Flex中ActionScript主要是用来实现逻辑的,ActionScript类的扩展名为.as 。MXML对象可以直接调用ActionScript的方法,ActionScript也可以直接使用MXML对象。mxml文件是由多个mx标签组成,与之间表示的是ActionScript代码。2.3 MVC模式与Cairngorm框架介绍Cairngorm框架是基于MVC模式设计的一个用于Flex开发的开源框架。2.3.1 MVC模式介绍MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。MVC模式设计主要分为三部分:(控制器Controller)- 负责转发请求,对请求进行处理。(视图View) - 界面设计人员进行图形界面设计。(模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。如图 2-2,View用于展示数据,提供用户操作等。Model是用于保存数据。View与Model的数据交互是通过Controller实现的,Controller还负责业务逻辑的实现等。2图 2-2 MVC模式2.3.2 Cairngorm框架介绍Cairngorm是由adobe公司推出的一个基于MVC模式的轻量级的Flex RIA程序开发框架。中文名:“烟水晶” 。目的是提高程序的可扩展性、可维护性,其本身并不是一个完整的企业应用,它只是提供了一个开发骨架,Adobe称之为体系。 Cairngorm主要就是对开发Flex应用程序应用了一系列的设计模式,从而使开发出来Flex程序可扩展性,可维护性都大大提高。它由七大部分组成:Model(数据模型):使用singleton(单例)模式共享变量;VO( Value Object):储存特定值对象变量。View(视图):将Model的数据绑定互组件并广播侦听Cairngorm Event;Controller(控制器):侦听Cairngorm事件并将其映射到Cairngorm Command;Command(命令):调用Cairngorm Delegate或其它Command,并更新Model;Delegate(委托):实例化RPC(远程过程调用)并将其结果返回给Command;Business(业务):定义RPC。传统MVC模式分为三层即模型层、视图层、控制层,Cairngorm框架在这三层上进行详细划分。Model、VO属于MVC中的模型层,View属于视图层的,Controller、Command、Delegate及Business可以划分到控制层。整个框架流程见图 2-3:1) 有View层发出请求,触发一个事件。2) 该事件被FrontController捕获,并调用相对应的Command。3) Command中会执行execute方法部分,对时间进行判断,然后在调用Delegate。4) ServerLocator是将Flex的对象与后台Java的接口对象映射起来的服务类,Delegate调用相应的服务,并通过该服务再调用相对应的后台的Java接口类的方法。5) Java与数据库进行交互,这一部分此时发生在Web服务器上。6) Java方法将返回值返回到ServerLocator。7) 返回数据再由ServerLocator返回到Command部分,由Command中的result方法对数据进行处理。8) Command将处理完成的数据存储到ModelLocator中。9) View组件的数据源是绑定在ModelLocator中的,所以ModelLocator数据发生变化,View组件也会进行刷新。第三步第二步第一步第五步第九步第四步第八步第七步第六步3图 2-3 Cairngorm框架构成2.4 Java DAO结构分析DAO(Data Access Object DAO)设计模式,以便将低级别的数据访问逻辑与高级别的业务逻辑分离。一个典型的DAO实现有下列几个组件:1.一个DAO工厂类:用来创建DAO对象的类2.一个DAO接口:提供一个统一的接口3.一个实现DAO接口的具体类:实现DAO接口方法的底层类4.数据传递对象(有些时候叫做值对象):提供数据传输的载体如图2-4,应用程序发出请求,调用DAO接口中相应的方法。DAO接口通过DAO工厂实例化所需要的DAO对象,在通过DAO对象调用相应的方法实现与数据库的交互。4图2-4 DAO结构图在本课题中我们将DAO结构简化,只保留DAO接口、实现DAO接口的具体类及数据传值对象这三部分。只需要向前台提供调用的接口即可。2.5 DBPool介绍Java提供JDBC连接数据库的功能,但是这种连接是较底层的,不能对数据库资源进行合理的应用,因而需要DBPool这样的Java数据库池连接的开源项目。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。DBPool不仅使用效率高,而且容易配置,只需要将配置信息写在一个配置文件里即可。2.6 LCDS介绍LCDS(LiveCycle Data Service)是基于java后端的数据服务工程,主要是功能映射Java对象到Flex对象。通过远程对象的映射,可以将DAO接口的对象映射到Flex对象,这样Flex就可以直接调用Java中的方法,并通过传入的参数和返回值进行数据的交换。第三章 系统功能分析与设计3.1项目概述基于RIA技术的网络监控系统的设计与研究是为了加快校园信息化建设,旨在取代现有的Cacti网络设备监控系统,提供一个功能更加完善、效率更高的网络设备监控管理系统。基于Flex的网络拓扑图的绘制工具是这一大课题的子课题,其目的是设计一款可以在浏览器上绘制网络拓扑图的工具,并且可以将会完成的拓扑图保存到数据库中。还可以实现对校园网络设备在拓扑结构上的直观监控,而不仅仅是物理位置上的分布。3.2项目分析本课题的需求为:1) 设计一个可以完成在浏览器上绘制网络拓扑图的工具2) 提供网络拓扑图修改的功能3) 可以将绘制或修改的拓扑图已数据的方式保存到数据库中4) 提供在拓扑结构上对设备进行监控的功能5) 实现使用XML语言描述拓扑结构的功能3.2.1 用例分析本系统中确定的参与者有普通用户和管理员。参与者的描述如下:1) 普通用户(user),主要是指网络中心值班人员,参与到日常设备监控与维护的人员。2) 管理员(Administrator),具有数据库修改权限,可以对网路设备拓扑图结构进行修改的人员。普通用户用例图:5图 3-1 普通用户用例图普通用户涉及到的用例:设备监控模块:次用例提供了用户与管理员实时监控校园网络设备状态的功能。管理员用户用例图:6图 3-2系统关系员用例图管理员用户涉及到的用例1) 设备监控模块:提供了用户与管理员实时监控校园网络设备状态的功能。2) 拓扑图绘制模块:提供给管理员创建校园网络设备拓扑结构的绘制的功能3) 设备节点增删改:拓扑图绘制模块的子模块的扩展,提供给管理员修改校园网络设备拓扑图节点的功能。4) 节点连线增删改:拓扑图绘制模块的子模块的扩展,提供给管理员修改校园网络设备拓扑图节点连线的功能。5) XML模型描述模块:拓扑图绘制模块的子模块的扩展,使用XML语言描述绘制的网络设备拓扑图6) 设备节点绑定模块:拓扑图绘制模块的子模块的扩展,提供拓扑图节点与实际的物理设备进行绑定的功能。3.2.2 Flex + Java技术可行性分析本课题主要功能的实现部分是在前台,因而对前台语言的要求是比较高的。Flex是专注表现层的语言,具有很高的表现能力。同时所使用的ActionScript3.0(详细介绍在2.2节)经过多年的发展,已经相当的完善。而且提供了完整的类库供程序员使用,本课题主要使用其中Graphics库来完成网络拓扑图的绘制。在后台语言方面选择Java。Java同Flex一样都是跨平台的语言,因而可移植性都是比较好的。而且Java语言简单易学,同时提供的JDBC连接数据库的方法也是比较容易使用的,完全可以满足本课题的要求。通过LCDS(LiveCycle Data Service)组件(详细介绍参照2.6节),可以很容易的实现Flex与Java技术的集成。3.2.3 与现有的Cacti系统比较目前我校网络中心使用的系统设备监控为Cacti系统,基于PHP, MySQL, SNMP开发的网络流量监测图形分析工具(详细介绍参照1.2课题研究的内容与意义)。但是Cacti系统是在后台使用脚本语言将设备流量信息绘制成图片,在将图片由后台呈现前台浏览器中,使用图片作为数据的载体无疑会增加数据传输的流量,增加网络带宽的负担,且在服务器上绘制图片也会增加服务器的负担。尤其是在多个用户同时访问时,系统会在一定的时间里刷新页面(一般为5到10秒)。每一次刷新都要从新绘制图片,传输图片。本课题使用的Flex技术,将数据呈现部分放在客户端,只需要从服务器获取原始数据即可,既可以缓解服务器的压力,也可以减少网络带宽的负荷。3.3系统框架设计本课题使用的框架是Flex + Java + SQL Server 2000(详细分析见3.2.2 Flex + Java技术可行性分析)。3.3.1 系统框架图与分析图 3-3为系统框架图,整个系统分为三个部分设计,分别为:Cairngorm设计,Java DAO设计和数据库设计。Cairngorm部分:(Cairngorm框架介绍参照2.3.2节),与传统的Cairngorm模式不通,在本课题中使用ViewHelper代替ModelLocator。ViewHelper是Cairngorm一部分,主要功能是对View进行控制。由于整个系统数据关系较为复杂,为了方便数据管理,将每个View绑定的数据放到相应的ViewHelper中。通过DBPoolDAO实现ServicesCommandDAO接口DelegateeModelControllerView7图 3-3 Cairngorm框架图如上图所示,最上层的六个矩形部分是Cairngorm框架部分,图示表示了Cairngorm框架各部分之间的关系。Java DAO接口与DBPool为后台部分Java DAO接口提供了前台调用的统一接口,DBPool实现的是Java与数据库连接、数据交互的具体内容。首先是View触发事件,由Controller找到与事件相对应的Command,由Command决定调用Delegate中的方法与数据库交互。Service是JavaDAO接口的映射是由LCDS完成的(详细介绍参见2.6节),service的方法即Java DAO接口的方法。Delegate再调用Service的Java DAO接口,DAO接口调用具体的实现方法与数据库交互。然会数据再一步一步的返回到Command,Command将得到的数据写入到Model Locator中。由于Model Locator中的数据是与View的组件绑定的,Model Locator数据发生改变,View的组件也会发生相应的改变。3.3.2 软件架构图分析8图3-4 软件构架图本系统软件架构部署如图3-4所示。客户端安装浏览器+Flash Player插件即可访问。在服务器方面分为两个部分,以缓解服务器的压力。与客户端直接交互的是Web服务器,安装了Java运行环境JRE及LCDS和Tomcat服务器。Web服务器与数据库服务器直接进行交互。数据库信息的来源有两种:一是通过客户端,Web服务器传递进来,一个是通过数据采集服务器传递进来。但是目前设备数据自动采集的部分尚未完成。3.3.3 系统模块设计本课题功能模块主要分为四个部分:9图3-5 系统功能模块图功能模块详细介绍:1) 节点添加、删除、修改模块:通过拖拽将设备的节点添加到拓扑图绘制的主界面中。右击节点,出现全选、全不选和删除选项,分别实现选中全部节点,取消选中状态和删除选中的节点的功能。点击设备节点,会在列表中显示设备节点的详细信息,可以在列表中直接修改节点信息。2) 节点连线的添加、删除模块:当画布中存在多个节点时,选中一个节点,点击连线图标,然后再点击另外一个节点,即可将两个节点用直线连接在一起。当用鼠标拖动画布中的节点移动时,直线也会自动根据节点的最新位置重新绘制,保证关联的两个设备节点可以联系在一起。删除一个节点是,与之相连接的连线也会被删除。3) 拓扑图模型XML描述模块:添加节点或者连线时,会在一个文本编辑区域自动生成节点或连线的XML标记描述。4) 设备节点绑定与监控模块:将选中的节点与实际的网络设备进行绑定。并且可以监控到实际网络设备的运行状态。3.3.4 系统流程图分析登陆系统的用户有两种身份:普通用户和管理员。10图 3-6 普通用户流程图11图 3-7 系统管理员流程图如上面两个流程图所示,普通用户与管理员用户进入系统后所能接触的模块是不同的。网络拓扑图绘制与修改功能只能有系统管理员使用,而设备监控模块是所有用户都可以使用的。3.4详细设计本节对系统的数据库、后台、前台各部分进行详细设计。3.4.1 数据库设计数据库设计是这个项目的数据框架基础,下面对一些主要表的主要字段做了说明:下面的七个表是在visio中设计的数据表的截图,显示了各个数据库表的详细字段及各字段的含义:1) UserInfo 表,存储所有用户信息2) Switch表,存储交换机逻辑信息3) Switch_Basic表,存储交换机物理上基本信息4) Router表,存储路由器逻辑信息5) Router_Basic表,存储路由器物理上的基本信息6) TopoNode表,存储拓扑图上的节点信息7) TopoLine表,存储拓扑图上的连线信息图 3-8显示了以上七个数据库表之间的关系:12图 3-8 数据库表关系图3.4.2 持久层设计本节主要对后台Java DAO结构进行设计。本课题对数据库操作主要设计到的表是Switch,TopoNode,TopoLine三张表。以下是持久层设计的类图,其中有简写部分:13图3-9 持久层类图设计 如图3-9,左右对表的操作设计到三个部分,先是一个实体类的Bean,都对应一张数据库表格。由于各个Bean的属性是都私有的,所以也提供了每个属性共有的get和set方法,写成getXxx和setXxx格式, Xxx即首字母大写的属性名。SwitchDAO, TopoNodeDAO, TopoLineDAO是DAO结构的具体实现部分,NicMonitorServer是DAO结构的接口部分(DAO结构参照2.4节Java DAO结构分析),在NicMonitorServer中先实例化DAO的对象,通过DAO对象调用DAO底层实现的方法。返回值为int类型的操作表示,操作成功返回值为-1,操作成功返回值为1。图 3-10是持久层设计时序图,流程如下:1) Flex对象会调用NicMonitorServer中的方法,此时NicMonitorServer会实例化一个DAO的对象。2) 在构造DAO对象是会建立数据库连接,然后调用DAO对象的具体的方法。3) DAO中的方法执行相应的SQL语句。4) 执行SQL语句之后,返回数据,并关闭数据库连接。5) 将查询的数据返回到NicMonitorServer。14图 3-10 持久层时序图3.4.3 基于Cairngorm框架的Flex表现层设计Cairngorm框架只要分为七大部分(详情参照2.3节 Cairngorm框架介绍),本节从各部分对系统设计进行说明。Model:主要类有Switch.as, TopoNode.as, TopoLine.as。值对象类的设计与Java Bean的设计类似(详细见3.4.2节)。Controller: 类名为NICMonitorController.as,继承于Cairngorm框架中的FrontController类。通过AddCommand命令将Event与Command映射起来。Command:主要类名有SwitchCommand.as,TopoCommand.as在本课题中只有在绑定拓扑图设备节点与实际节点时才会对交换机操作,还有对拓扑图结构保存时也会用到,其他操作本课题并不使用。execute方法是Command执行部分,result是Command执行完成,对返回值的操作,fault是Command执行失败的操作,主要用来提示用户。Event:继承于CairngormEvent类,主要类名有SwitchEvent.as和TopoEvent.as。分别对应SwitchCommand.as和TopoCommand.as。Service:Service类名为AppServices.mxml,他是mxml标记描述的,主要用来与Java DAO的接口进行映射。使用RemoteObject对象映射到远程的DAO结构的NICMonitorServer.java接口,这样flex对RemoteObject对象的操作实际上是对NICMonitorServer接口的操作(映射设置将在4.1.2LCDS安装与配置中讲解)。Delegate类名为AppDelegate.as。Command调用Delegate方法,Delegate调用Service对象方法(即Java DAO接口方法)。Delegate就是中间层的代理。 View: 本课题的视图主要有两个部分,一个是CrossCanvas.mxml,即画布的设计,用来绘制拓扑图的容器,实际上它是一个自定义组件,将在主界面中使用。还有一个是本课题模块的主界面(详情见下节3.4.5 软件界面设计),名称为TopologyEditView.mxml。ViewHelper :TopologyViewEditHelper.as是顾名思义,是一个辅助类,辅助界面变更,如组件导航变更,数据刷新等,也存放着与组件绑定的数据。下图是Cairngorm框架类图设计,其中Switch,TopoNode和TopoLine三个类的属性与3.4.2节持久层设计的三个类的属性相同,这里不详细叙述。1) TopologyEditView与TopologyEditViewHelper是绑定在一起的,View中组件的数据源来自ViewHelper。2) 由TopologyEditViewHelper触发SwitchEvent事件或者TopoEvent。3) NICMonitorController将SwitchEvent、TopoEvent与SwitchCommand、TopoCommand映射起来。4) 由Command调用AppDelegate中的方法。5) 由AppDelegate通过AppService调用java的接口。然后数据在一层层的返回带TopologyEditViewHelper,由TopologyEditView Helper来更新TopologyEditView的组件。15图 3-11 Cairngorm类图图 3-12是Cairngorm框架时序图(过程分析参照2.3.2 Cairngorm框架流程图分析):时序图的过程与上面类图的描述基本相同,不再重复说明。16图 3-12 Cairngorm时序图3.4.4 拓扑图绘制功能模块设计以上设计都是与数据库交互的,下面的设计是拓扑图绘制功能模块。主要类有:ArrowLine.as, FlowIcon.as。17图3-13 绘图功能模块类图ArrowLine.as是绘制拓扑图节点连线的类,继承于ActionScript3.0的UIComponent类。属性分别表示直线开始的坐标,结束的坐标,线条颜色及线条的宽度。FlowIcon.as 是用于呈现拓扑图节点图片的类,所以继承于Image类。_type:节点类型,表示网络设备的类型,_label:节点的名称,_icon:节点的图标,_deviceID:绑定世纪设备的ID。Event是用来绑定设备节点内部的事件,包括MouseDown, MouseUp, MouseMove,表示鼠标按下,松开及移动,并定义了三个事件处理函数。3.4.5 软件界面设计界面设计布局总体如图 3-14:18图 3-14 软件界面总体设计将节点列表和详细信息列表都放在左边,拓扑图绘制的画布放在右边,这样布局比较符合大多数人的习惯。3.4.6 基于XML交换机网络拓扑模型描述的设计XML描述主要描述两个部分:设备节点描述,连线描述。设备节点描述包括标签、图标、设备号,连线描述包括连线的其实坐标和连线的结束坐标和起始节点。XML结构如下:第四章 系统功能实现4.1 开发环境搭建本节主要介绍开发环境搭配的过程。Flex工程名为NICMonitor,Java工程名为NicMonitorServer。4.1.1 开发使用的工具本系统我们采用基于Web的Flex + Java的结构模型。系统开发采用的工具和软件如下表。在整个系统中,采用的开发环境是Myeclipse6.0 + Flex Builder3.0,Flex Builder是进行表示层的开发,Myeclipse进行后台Java部分的开发,应用服务器采用LCDS + Tomcat6.0,后台数据库使用SQL Server 2000,系统建模及绘图工具使用的是Microsoft Visio 2007。19图 4-1 应用软件4.1.2 LCDS的安装及配置 安装LCDS应用程序,找到lcdstomcatwebappsNICMonitorWEB-INFflex remoting-config.xml这个配置文件,这个配置文件用来将Java DAO提供的接口与RemoteObject对象映射起来,在其中添加如下代码: zq.whale.flex.NICMonitorServer application destination 的id与Cairngorm框架中AppService中的RemoteObject对象的destination属性名保持相同,source表现指向的是项目中DAO的接口类。就是通过这样将Java的类映射到前台,使得Flex可以直接调用Java的方法。Java编译完成的class文件部署到lcdstomcatwebappsNICMonitorWEB-INFclasses文件夹下,在响应前台请求的时候,服务器就会找到其中相对应的Java文件执行。4.1.3 Cairngorm开发包加载在开发过程中,我们使用的Cairngorm这一开源框架,需要加载Cairngorm.swc这个文件,其中包括所有在项目开发中使用的关于Cairngorm类。在Flex Builder3.0中新建一个Flex项目NicMonitor,选择项目属性设置,找到Flex Build PathLibrary pathadd swc,然后选择添加Cairngorm.swc文件。20图 4-2 Cairngorm包加载4.1.4 Java DBPool配置在Myeclipse中新建Java工程,工程名为NicMonitorServer,所有Java部分都在这个工程里完成。进入工程属性配置,选择Java Build PathLibrariesadd jars,选择两个jar包,DBPool_v4.8.3.jar和jtds-1.2.jar。21图 4-3 DBPool包加载这两个包提供数据库池连接的所需要的类。4.2数据库实现 安装数据库Sql Server2000,并且安装Sql Server 2000 sp3补丁。打开数据库企业管理器,建立数据库实例,命名为netapp。并一次按照3.4.1节的设计建立相对应的数据库表。数据库表局部截图如下:22图 4-4 数据库实现4.3持久层实现本节是对Java DAO结构实现,只选取Switch.java, SwitchDAO.java和SwitchService.java三部分进行详细解释,其他部分与这三个类功能结构类似,不再一一进行详细说明。TopoNode.java 代码实现public class TopoNode private long nodeID;/ 交换机ID号private String nodeName;/节点名称private String nodeType;/节点类型private int x;/在拓扑图上的x坐标private int y;/在拓扑图上的y坐标public long getNodeID() /获取节点ID号return NodeID;public void setNodeID(long NodeID) / 设置节点ID号this. NodeID = NodeID;/ 其他的get和set方法TopoNodeDAO.java 代码实现public class TopoNodeDAO private ConnectionPoolManager cpm = null; /DBPool连接管理对象public TopoNodeDAO ()tryURL url = ClassLoaderUtils.getExtendResource(./conf/perties);/加载/DBPool配置文件File f = new File(url.getFile(); /读取配置文件cpm = ConnectionPoolManager.getInstance(f); catch(IOException e)/捕获异常,e.printStackTrace();/将异常信息输出public Switch getNodeByID(int nodeID)/ 通过交换机ID获取交换机Connection con = null;/创建Connection对象Statement smt = null;/创建Statement对象TopoNode node = null;/保存查询到的交换机信息的对象trycon = cpm.getConnection(netapp);/建立数据库连接smt = con.createStatement();String sql = SELECT * FROM TopoNode WHERE nodeID = +nodeID;/sql 查询语句ResultSet rs = smt.executeQuery(sql);/创建ResultSet对象,执行/sql查询语句while(rs.next()/通过循环,获取交换机各字段值,保存到s中node = new TopoNode();s.setNodeID(rs.getLong(nodeID);s.setNodeName(rs.getString(nodeName);s.setNodeType(rs.getString(nodeType);s.setX(rs.getString(x)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东江门市开平市教育系统赴高校招聘急需紧缺人才16人考前自测高频考点模拟试题及答案详解1套
- 2025年宿州市中医医院招聘36人考前自测高频考点模拟试题及答案详解(夺冠)
- 小学安全培训公众号内容课件
- 2025河南洛阳市偃师区第一批公益性岗位招聘40人考前自测高频考点模拟试题及参考答案详解
- 2025贵州普定县畜牧服务中心招聘公益性岗位人员考前自测高频考点模拟试题及答案详解一套
- 小学安全制度培训计划课件
- 2025金华市教育局所属金华教育学院公开招聘教师6人考前自测高频考点模拟试题带答案详解
- 2025宝鸡腾轩实业有限公司招聘(2人)模拟试卷及答案详解(典优)
- Iloperidone-Standard-生命科学试剂-MCE
- Human-CES1-Enzyme-生命科学试剂-MCE
- 2025至2030中国大宗物资供应链行业发展趋势分析与未来投资战略咨询研究报告
- 2025湖南益阳安化县事业单位招聘工作人员61人考试参考试题及答案解析
- 7 呼风唤雨的世纪 课件
- 电瓶托盘堆垛车安全培训课件
- 快递分拣中心操作流程及安全规范
- 机加工安全质量培训计划课件
- 2025年全国计算机等级考试三级网络技术模拟题及答案
- 胰岛素储存知识培训课件
- 2025至2030年中国卡丁车俱乐部行业市场调研分析及投资战略咨询报告
- 建设项目环境影响评价分类管理名录(报告书、表、登记表)
- 加油站职业健康危害因素分析
评论
0/150
提交评论