首页 基于Visio的网络拓扑图绘制功能的研究与实现

基于Visio的网络拓扑图绘制功能的研究与实现

举报
开通vip

基于Visio的网络拓扑图绘制功能的研究与实现基于Visio的网络拓扑图绘制功能的研究与实现 密级: 学 号: 鱼75877 姓 名; 奎垦垒 专 业: 盐簋扭型堂皇燕丕 导 师: 詹蠢强 学 院: 圆终技丕巫究院 二O―O年一月 啦R, 独创性 或创新性 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做...

基于Visio的网络拓扑图绘制功能的研究与实现
基于Visio的网络拓扑图绘制功能的研究与实现 密级: 学 号: 鱼75877 姓 名; 奎垦垒 专 业: 盐簋扭型堂皇燕丕 导 师: 詹蠢强 学 院: 圆终技丕巫究院 二O―O年一月 啦R, 独创性 或创新性 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:李显专 日期:铂沙曩仲 N 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。 保密的学位论文在解密后遵守此规定 保密论文注释:本学位论文属于保密在年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围,适用本授权书。 , 本人签名 身岔 日期:?fo,(;(7铲 l t 矗 导 师签名 于,沙 店砑够 日期:",。‘3(,‘『 ,l??J L( ?量 》黪(, ,睡可移 i Si 基于V 0的网络拓扑图绘制功能的研究与实现 摘要 随着计算机网络应用的不断增多,网络复杂性的不断提高,网络 管理系统已经成为越来越多的企业的必然选择。好的网络管理系统, 首先要掌握需要管理的整个网络的拓扑结构,这是有效地对网络设备 进行硬件配置、性能监测、故障诊断等的基础。因此,网络拓扑图成 为了网络管理系统的重要组成部分。 现有的网络管理系统中对网络拓扑图的实现都不理想,存在界面 单调、操作复杂、不够灵活、难以集成网管系统中的其他功能模块等 很多问题。对于用户自绘制功能的实现,更是需要花费大量时间和人 力开发绘图控件,而且功能极为有限。这种方法代价高,不成熟而且 可扩展性差,无法满足用户越来越多的需求。 本文在对现有网管系统中网络拓扑图的实现现状进行了深入分 析的基础上,根据实际项目中用户对网管系统的实际需求,提出了一 种基于Visio的实现方法,以(NET为开发平台,C#为编程语言,对 Visio进行二次开发为主要手段。用这种方法实现的网络拓扑图不仅 界面美观、功能完善、操作简便,还可以与告警、配置、性能管理等 其它网管功能无缝集成,使整个网络管理系统的用户体验大副提升。 特别是对用户自绘制功能的实现,具有开发代价小、灵活性高、可扩 展性高的优点,对用户不断增加的需求应对自如,可以使网管系统网 络拓扑图的人机接口水平达到一个新的高度。 关键词 网络管理网络拓扑图Visio绘制 p 0,;?N 0 Withthe of of networksandthe increasingapplicationscomputer ofnetworkcontinuesto complexity improve,networkmanagement havebecometheinevitablechoiceofmoreandmore systems enterprises( A network mustfirst the of good managementsystem grasptopology entire network(Itisthebasisof hardware managed performing fault tonetwork configuration,performancemonitoring,anddiagnosis inaneffective thenetwork hasbecome equipments way(Thus topology anessentialofnetwork part system( management Alltherealizationsofnetwork inthe topologygraphs existing network arenot managementsystems enough(The good disadvantages arethe ofinterface,the of lackof insipidity complexityoperation,the in other modelsof functional network flexibility,thedifficultyintegrating therealizationof functionalso managementsystem(And user-mapping takesalotoftimeand to a the contr01(and manpowerdevelopdrawing functionsofitare limited(Thismethodis extremely costly,premature, andthe ofitis tomeetthe ofuser’S scalabilitypoor,unable increasing demand( Onthebasisof ofthenetwork in in-depthanalysis topologygraphs network aVisio―based existing managementsystems,thispaperpropose method totheuser’Sdemandonnetwork according managementsystem intheactual asthe C劳as project,using(NETdevelopmentplatform,and the isthe programminglanguage(Theprimaryapproachsecondary oftheVisio(Thiskindofnetwork has development topologygraph beautiful interface,powerfulfunctions,user-friendlyoperations,and withthe seamlesslyintegration andsomeothernetwork functions(Allofthis management management canenhancetheuser’S ofthewholenetwork experience management therealizationof low features,with system(And user-mapping and meetthe developmentcosts,highflexibilityhi29hscalability,can user’S demand increasingperfectly( KEYWORDS network Visio management topologygraph user-mapping r I ,?? 翎。 g (静 僖 录 目 求 第一章引 言„„„„„。„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„l 1(1 课题背景„„„„„„„„„„„„„„„„„„„„„„„„„„„1 1(2 课题意 义„„„„„„„„„„„„„„„„„„„„„„„„„„„„2 1(3 研究目标„„„„„„„„„„„„„„„„„„„„„„„„„„。2 1(4 论文的组织结 构„„„„„„„„„„„„„„„„„„„„„„„3 1(5 研究生期间工 作„„„„„„„„„„„„„„„„„„„„„„„3 第二章网管系统网络拓扑图实现现状分 析„„„„„„„„„„„„„„„„„„„。4 2(1 网络管理系统概述„„„„„„„„„„„„„„„„„„„„„。4 2(2 网络拓扑结构概 述„„„„„„„„„„„„„„„„„„„„„„4 2(3 网络拓扑图呈现功能的实现现状„„„„„„„„„„„„„„„„5 2(4 网络拓扑图绘制功能的实现现状„„„„„„„„„„„„„„„„。7 第三章NET环境与Visio二次开发简介„„„„„„„„„„„„„„„„„„„„„8 3(1 (NET环境概述„„„„„„„„„„„„„„„„„„„„„„„„„8 3(2 基于Visio的开发方式„„„„„„„„„„„„„„„„„„„„„9 3(2(1 解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 开 发„„„„„„„„„„„„„„„„„„„„„(9 3(2(2 形状开发„„„„„„„„„„„„„„„„„„„„„„„。10 3(2(3 Visio图形控件开发„„„„„„„„„„„„„„„„„„。1l 3(2(4 另存为Web页开发„„„„„„„„„„„„„„„„„„„11 3(2(5 XML开发„„„„„„„„„„„„„„„„„„„„„„„。11 3(3 Visio对象模型„„„„„„„„„„„„„„„„„„„„„„„„12 3(3(1 Application对象„„„„„„„„„„„„„„„„„„„„„„„„„。13 3(3(2 3(3(3 Pages对象和Page对象„„„„„„„„„„„„„„„„„14 3(3(4 Shapes对象和Shape对象„„„„„„„„„„„„„„„„(14 3(3(5 ShapeSheet和Cell对象„„„„„„„„„„„„„„„„„(14 3(3(6 Event对象„„„„„„„„„„„„„„„„„„„„„„„„„„„„„16 3(4 使用VisualC帮(NET进行Visio二次开发„„„„„„„„„„„„17 3(4(1 将Visio的COM组件转换为(NET组件„„„„„„„„„„。17 3(4(2 用VisualC带打开Visio文件„„„„„„„„„„„„„„„(17 3(4(3 对Visio二次开发的整体流程„„„„„„„„„„„„„„(18 第四章基于Visio的基本绘制功能的实现方法„„„„。一。。(,(一。一一„„„(19 4(1 界面呈现„„„„„„„„„„„„„„„„„„„„„„„„„„„„„(19 4(2 拓扑图的管 理„„„„„„„„„„„„„„„„„„„„„„„„((20 4(2(1 网络拓扑图的类结构和表结构„„„„„„„„„„„„„„20 4(2(2 在拓扑树上展示拓扑图列表„„„„„„„„„„„„„„„„21 4(3 观察模式与编辑模 式„„„„„„„„„„„„„„„„„„„„„„„22 4(4 向拓扑图中添加图元„„„„„„„„„„„„„„„„„„„„„„(25 4(5 被管设备实际状况的体现„„„„„„„„„„„„„„„„„„„„25 4(5(1 关联类的实现„„„„„„„„„„„„„„„„„„„„„(26 4(5(2 数据库中的表结构„„„„„„„„„„„„„„„„„„„„„(26 4(5(3 建立设备树„„„„„„„„„„„„„„„„„„„„„„„„„(27 4(5(4 关联初始化和显示告警„„„„„„„„„„„„„„„„„„„27 4(6 与其他功能模块的结 合„„„„„„„„„„„„„„„„„„„„„28 4(6(1 重定义右键菜 单„„„„„„„„„„„„„„„„„„„„(29 4(6(2 使用观察者模式动态更新功能窗口„„„„„„„„„„„((31 4(7 拓扑图向下挖掘功 能„„„„„„„„„„„„„„„„„„„„„„„„。32 4(8 解决拓扑图同步问 题„„„„„„„„„„„„„„„„„„„„„„„(33 4(9 系统测试情 况„„„„„„„„„„„„„„„„„„„„„„„。34 第五章基于Visio的扩展绘制功能的实现方法„(。一„„„„„„„一„„„„„36 5(1 对底层Visio操作的封装„„„„„„„„„„„„„„„„„„„„(36 5(2 网络拓扑图自动生成功 能„„„„„„„„„„„„„„„„„„((37 5(2(1 拓扑图规则的定义和存储„„„„„„„„„„„„„„„„„„37 5(2(2 根据规则生成拓扑图„„„„„„„„„„„„„„„„„„。38 5(2(3 根据规则更新拓扑图„„„„„„„„„„„„„„„„„„„38 5(3 设备面板图功能„„„„„„„„„„„„„„„„„„„„„„„„39 5(3(1 设备面板图的类结构和表结构„„„„„„„„„„„„„。39 5-3(2 模具的整合„„„„„„„„„„„„„„„„„„„„„„„40 5(3(3 自绘制与自动生成设备面板图„„„„„„„„„„„„„((41 5(3(4 与网络拓扑图的接 口„„„„„„„„„„„„„„„„„„„(41 5(4 业务拓扑图功能„„„„„„„„„„„„„„„„„„„„„„一41 5(4(1 业务拓扑图的需求与特 点„„„„„„„„„„„„„„„„„„41 5(4(2 模具的整 合„„„„„„„„„„„„„„„„„„„„„„„。42 5(4(3 与网络拓扑图的接 口„„„„„„„„„„„„„„„„„„42 5(4(4 拓扑图类型的定 义„„„„„„„„„„„„„„„„„„„„„((42 5(5 Performance 关键性能指标KPI Key Indicators 动态显示„„„„43 5(5(1 在已有图元上显示 KPI„„„„„„„„„„„„„„„„„„„。43 5(5(2 在空白处显示KPI„„„„„„„„„„„„„„„„„„((44 5(6 系统测试情 况„„„„„„„„„„„„„„„„„„„„„„„„„„((44 第六章总结与展望((一„„„„„。„„ 一„„(,„(,。„„„„„„„„一„„„(46 6(1 论文总结„„„„„„„„„„„„„„„„„„„„„„„„„(46 6(2 进一步研究的问 题„„„„„„„„„„„„„„„„„„„„„„„46 参考文献„。。―„„。一,(一一。(一„„„„„。„„„„„„„一„„„„。„„„(48 致 谢„„((((„(((((„((„。((((。(。。((一((。(((。。(((((((((((„。(。(。( („„„((。((。。(((((。(。(((((„(„(49 攻读学位期阀发表的学术论文。――(。。。(。。(((一。。(一。(。。一。,。((。。。。。。(。。(50 麟j ’踅 擎 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 第一章引言 1(1课题背景 网络管理,是指网络管理员通过网络管理程序对网络上的资源进行集中化管 理的操作,包括配置管理、性能和记账管理、问题管理、操作管理和变化管理等。 一台设备所支持的管理程度反映了该设备的可管理性及可操作性。网络管理包括 对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配 置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运 行性能、服务质量等111。网络管理通常简称为网管。 事实上,网络管理技术是伴随着计算机、网络和通信技术的发展而发展的, 二者相辅相成。从网络管理范畴来分类,可分为对网“路”的管理。即针对交换 机、路由器等主干网络进行管理;对接入设备的管理,即对内部PC、服务器、 交换机等进行管理;对行为的管理。即针对用户的使用进行管理;对资产的管理, 即统计盯软硬件的信息等【2l。根据网管软件的发展历史,可以将网管软件划分 为三代l、,-――, 第一代网管软件就是最常用的命令行方式,并结合一些简单的网络监测工 具,它不仅要求使用者精通网络的原理及概念,还要求使用者了解不同厂商的不 同网络设备的配置方法。 第二代网管软件有着良好的图形化界面。用户无须过多了解设备的配置方 法,就能图形化地对多台设备同时进行配置和监控。大大提高了工作效率,但仍 然存在由于人为因素造成的设备功能使用不全面或不正确的问题数增大,容易引 发误操作。 第三代网管软件相对来说比较智能,是真正将网络和管理进行有机结合的软 件系统,具有“自动配置’’和“自动调整"功能。对网管人员来说,只要把用户 情况、设备情况以及用户与网络资源之间的分配关系输入网管系统,系统就能自 动地建立图形化的人员与网络的配置关系,并自动鉴别用户身份,分配用户所需 的资源 如电子邮件、Web、文档服务等 13l。 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 1(2课题意义 好的网络管理系统,首先要掌握需要管理的整个网络的拓扑结构,这是有效 地对网络设备进行硬件配置、性能监测、故障诊断等的基础。给网络系统管理员 提供一个全面、系统的网络拓扑图成为了网络管理系统中越来越被重视的一个功 能。 随着网络管理需求的不断增加,网管系统能实现的功能也在逐渐增多,同时 越来越注重易用性与自由性。网络拓扑图这一功能模块也在不断发展,从最初的 只能呈现给用户,逐渐发展到可以让用户自己绘制网络拓扑图,同时与告警、配 置、性能管理等其它网管功能无缝集成。 根据我的研究发现,现存大部分网络管理系统都无法实现网络拓扑图的用户 绘制功能。有些网管系统开发商为了实现这一功能,选择在网管系统中嵌入自己 开发的绘图控件的方法。这种方法在一定程度上能够满足此网管系统拓扑模块的 需求,但是一套功能完善、可扩展性高的绘图控件的开发需要耗费相当多的人力 和时间,而此控件的开发成本通常又非常有限。这就导致开发出的绘图控件的功 能不够完善,虽然可以暂时满足用户对于网络拓扑图功能的需求,但是与用 户需 求之间的耦合度会非常高,一旦需求发生变化,整个底层控件可能会需要返工进 行进一步开发等等,维护工作的代价会非常昂贵。 经过我在实际开发过程中的比较发现,在C,s架构的网管系统中应用Visio 二次开发技术,可以很好地实现网络拓扑图的用户绘制功能。与自开发绘图控件 的方法相比,Visio二次开发的方法在开发的工作量方面会减少很多,为开发方 节省了人力和时间。此外,Visio的操作界面也十分友好,简单易用,是一款十 分成熟的制图软件,绘制出的拓扑图也很精致美观。Visio二次开发的方法最大 的优越性在于它成熟的对象模型以及高度的可扩展性。 1(3研究目标 本文研究的目标是通过对目前网络管理系统中网络拓扑图现状的分析找出 存在的问题和原因,然后提出一个基于Visio二次开发的解决方案。本文将会深 入探讨用户对于网络拓扑图绘制功能的需求,并分析如何用基于Vtsio二次开发 的方法满足用户的需求。同时与现有的一些实现方法进行横向对比,突出体现 Visio在用户体验方面、可编程性方面、对象模型方面和可扩展性方面上具备的 优势,这也就是选择Visio二次开发技术来实现网管系统中网络拓扑图绘制功能 t蜘 I 罄 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓 的主要原因。本文重点是分析用户需求,并研究基于Visio 些需求的实现方法,以及实现过程中体现出的各种优越性, 性,最后得出结论。 1(4论文的组织结构 全文由7章组成,组织结构安排如下: 第一章绪论部分,描述课题的研究背景、意义及目的。 第二章介绍网管系统网络拓扑图实现的现状,包括网络管理系统中网络 拓扑 图绘制功能的重要性和需求分析。 第三章介绍MicrosoftVisio的可编程性,包括Visio的对象模型,开发环境, 从而引出对Visio二次开发的概念。 第四章介绍网管系统网络拓扑图基本功能的具体实现方法,并通过比较分析 得出对Visio二次开发是比较可行的实现方式。 第五章提出网管系统网络拓扑图的其他扩展功能的实现方法,充分体现 ?幻乡开发椭蝴可扩展性。 , , ,、。―, 第六章总结全文,并提出下一步需要继续研究的问题。 1(5研究生期间工作 研究生期间,作者参加了包括全国无线电委员会综合网管系统、沈阳电力公 司综合网管系统在内的多个综合网管系统的研究和开发工作,对网络管理相关技 术和业务有了深入的认识和了解。概括来说,作者在读硕士期间参与的主要研究 工作包括: 作为主要研发人员,参与了全国无线电委员会综合网管系统的网络拓扑模块 设计与开发工作。 作为主要研发人员,参与了沈阳电力公司综合网管系统的网络拓扑模块的设 计与开发工作。 作为主要研发人员,参与了沈阳电力公司综合网管系统的设备面板模块的设 计与开发工作。 3 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 第二章网管系统网络拓扑图实现现状分析 2(1网络管理系统概述 随着计算机网络应用的不断增多,网络复杂性的不断提高,网络管理系统已 经成为越来越多的企业的必然选择。网络管理包括对硬件、软件和人力的使用、 综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样 就能以合理的价格满足网络的一些需求,如实时运行性能、服务质量等。大到成 千上万台设备,小到一个局域网,都需要方便、有效、直观地管理。网络管理对 象一般包括路由器,交换机,HUB等14J。近年来,网络管理对象有扩大化的趋 势,即把网络中几乎所有的实体:网络设备,应用程序,服务器系统,辅助设备 如UPS电源等都作为被管对象。很多网络管理员,因为缺乏良好的网络管理系 统,在遇到网络问题不知道应该如何去解决,只能通过看流量,拔网线等手段, 排查周期长,也很难真正找出问题。网络发展到现在的阶段,必然要考虑到网络 性能、网络故障与网络安全性问题。只有通过健全的网络管理系统,运用网络分 析技术对网络流通数据的清晰认识,才能为故障的排查,性能的提升,以及网络 安全的解决提供可靠的解决方案15J。 2(2网络拓扑结构概述 计算机连接的方式叫做“网络拓扑结构一 Topology ,也就是传输媒体互连 各种设备的物理布局,特别是计算机分布的位置以及电缆如何通过它们。设计一 个网络的时候,应根据自己的实际情况选择正确的拓扑方式。每种拓扑都有它自 己的优点和缺点lq。 网络拓扑可以根据通信子网的通信信道分为两类(广播通信信道子网的 拓扑 与点到点通信子网的拓扑。 采用广播通信信道子网的基本拓扑结构主要有5种:总线型,树型,环型, 无线通信与卫星通信型( 采用点到点的通信子网的基本拓扑结构主要有4种t星型,环型,树型与网 状型拓扑【刀。 4 北京邮电大学硕士研究生毕业论文 基于Visio的网 以上几种拓扑结构可以组合使用,其中以星型拓扑最为常见。 网络拓扑图就是用来直观体现网络拓扑结构的图形,由代表各种网络设备的 图元和代表各种传输介质的连接线构成I引。 2(3网络拓扑图呈现功能的实现现状 现有的网络拓扑图呈现功能的实现方法主要有以下几种: Vector 1 基于可伸缩矢量图形SVG Scalable Graphics 的方法 Vector 可伸缩矢量图形SVG Scalable Graphics 是基于可扩展标记语 言 XML ,用于描述二维矢量图形的一种图形格式。SVG由W3C WbrldWideWeb 形格式,也是 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 中的网络矢量图形 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 。SVG严格遵从XML语法,并用文本 格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格 式191。 SVG并非仅仅是一种图像格式,由于它是一种基于XML的语言,也就意 味着它继承了XML的跨平台性和可扩展性,从而在图形可重用性上迈出了一大 步。如SVG可以内嵌于其他的XML文档中,而SVG文档中也可以嵌入其他的 XML内容,各个不同的SVG图形可以方便地组合,构成新的SVG图形。SVG 包括3种类型的对象:矢量图形 包括直线、曲线在内的图形 、点阵图像和文 本。各种图像对象能够组合、变换,并且修改其样式,也能够定义成预处理对象。 应用基于SVG的方法,可以用基本的图形元素来呈现网络拓扑图。首先 获 取被管网络中的设备,以及设备之间的连接关系,按照一定的算法为设备分 配坐 标,通过设备类型选择不同的图元,最后将排布好的图元和连接线呈现在界 面上。 用这种方法呈现网络拓扑图存在三个缺点:一是难以合理地给图元分配 坐 标,二是可操作性差;三是难以集成其他网管功能模块。 Information 2 基于地理信息系统GIS GeographySystem 的方法 Information 经过了40年的发展,地理信息系统GIS GeographicSystem 已经逐渐成为一门相当成熟的技术,并且得到了极广泛的应用。尤其是近些年, GIS更以其强大的地理信息空间分析功能,在GPS及路径优化中发挥着越来越 重要的作用。GIS地理信息系统是以地理空间数据库为基础,在计算机软硬件的 支持下,运用系统工程和信息科学的理论,科学管理和综合分析具有空间内涵的 地理数据,以提供管理、决策等所需信息的技术系统。简单的说,地理信息系统 5 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 就是综合处理和分析地理空间数据的一种技术系统f埘。 简而言之, GIS是一个基于数据库管理系统 DBMS 的分析和管理空间 对象的信息系统,以地理空间数据为操作对象是地理信息系统与其它信息系统的 根本区别。 GIS的技术优势在于它的数据综合、模拟与分析评价能力,可以得到常规方 法或普通信息系统难以得到的重要信息,实现地理空间过程演化的模拟和预测。 GIS的操作对象是空间数据,即点、线、面、体这类有三维要素的地理实体。 空间数据的最根本特点是每一个数据都按统一的地理坐标进行编码,实现对其定 位、定性和定量的描述、这是GIS区别于其它类型信息系统的根本标志,也是 其技术难点之所在。 目前GIS已经广泛应用于资源调查、环境评估、灾害预测、国土管理、城 市规划、邮电通讯、交通运输、军事公安、水利电力、公共设施管理、农林牧业、 统计、商业金融等几乎所有领域。在通信网络资源管理方面,利用GIS提供的 现实地理情况的图形界面结合设备网管,可以构筑各种网络管理平台,为用户呈 现包含地理信息的网络拓扑图flol。 应用基于GIS的方法来呈现网络拓扑图,局限性也十分明显。只有极少数 的网络拓扑图会包含地理信息,大多数网络拓扑图与地理信息无关。例如某企业 的网络设备覆盖全国多个省市,则其全国骨干网络的拓扑图可以呈现在一张中国 地图上,但单个省市内的网络拓扑图则没有必要以地图的形式展现。缺少了包含 地理信息的优势,GIS的缺点也显得更加突出,对每一个数据都按统一的地理坐 标进行编码,明显不适用于网络拓扑图,会造成大量不必要的开销。此外SVG 所具备的三个缺点,GIS也都具备。 3 基于Visio二次开发技术 基于Visio二次开发技术实现网络拓扑图功能,在一些电力系统、网管系统 中都出现过。大多采用以B,S架构的形式,在浏览器中呈现出网络拓扑图。这种 方法通过对Visio的二次开发获取网络运行的有关信息,将网络运行的情况反映 在网络拓扑图上111l。 环境之外通过编程实现。Visio2003提供了将Visio文件另存为Web页的API, asWeb 即Save API,外部程序利用该API能够实现将Visio图形转换成网页 Page asWeb 格式。利用Save API,可以实现以下功能: Page ??将Visio文档以6>HTML的格式保存并发布到Web服务器上。 6 北京邮电大学硕士研究生毕业论文 基于Visio的网络 ?为发布到Web上生成所有必要的支持文件( ??在浏览器中查看图形的自定义属性。 ?? 显示放大与缩小控件1121。 可见以此种方式呈现网络拓扑图,具有很高的观赏性 集成网管系统的其他功能模块。在SVG和GIS都有所欠缺的为图元分配坐标问 题上,Visio页面开放多种自动排列图元的操作接口,可以很好地解决这一问题。 具体的技术细节会在第四章进行讨论。 2(4网络拓扑图绘制功能的实现现状 随着网络管理需求的不断增加,用户的要求越来越多,网管系统能实现的功 能必须不断完善、细化,才能被用户所青睐。同时用户操作的易用性与自由度也 是很重要的两个方面。网络拓扑图这一功能模块也在不断发展,从最初的只能将 网络拓扑结构呈现给用户,逐渐发展到可以让用户自己绘制网络拓扑图,同时与 告警、配置、性能管理等其它网管功能无缝集成,大大提高了操作的自由度。这 就是网络拓扑图用户自绘制功能在网管系统中最重要的应用。 根据我的研究发现,上一节所提到的三种方法都无法实现网络拓扑图的绘制 功能。所以为了实现这一功能,网管系统开发商只能选择自己开发绘图控件的方 法。这种方法在一定程度上能够满足此网管系统拓扑模块的需求,但是缺点也很 明显。一套功能完善、可扩展性高的绘图控件的开发需要耗费相当多的人力和时 间,而此控件的开发成本通常非常有限,这就导致开发出的绘图控件所绘制出的 拓扑图往往不够美观,能实现的功能与用户需求之间的耦合度很高,也许可以暂 时满足用户对于网络拓扑图功能的需求,但是一旦需求发生变化,控件的维护工 作的代价可能非常昂贵。同时也难以集成网管系统其他功能模块。 经过我在实际开发过程中的比较发现,在C,s架构的网管系统中应用 Visio 二次开发技术,可以很好地实现网络拓扑图的用户自绘制功能。能够大大改 善上 述问题。 ?? 7 北京邮电大学硕士研究生毕业论文 基于Visio的 网络拓扑图绘制功能的研究与实现 第三章(NET环境与Visio二次开发简介 3(1(NET环境概述 Microsoft(NET Web Framework是支持生成和运行下一代应用程序和XML services的内部Windows组件。(NETFramework旨在实现下列目标: ??提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和 执行,还是在本地执行但在Interact上分布,或者是在远程执行的。 ?? 提供一个将软件部署和版本控制冲突最小化的代码执行环境。 ??提供一个可提高代码 包括由未知的或不完全受信任的第三方创建的代 码 执行安全性的代码执行环境。 ??提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。 ?使开发人员的经验在面对类型大不相同的应用程序 如基于Windows 的应用程序和基于Web的应用程序 时保持一致。 ?? 按照工业标准生成所有通信,以确保基于(NETFramework的代码可与任 何其他代码集成。 (NET Runtime 和(NETFramework类库1131。 Language 公共语言运行库是(NETFramework的基础。可以将它看作一个在执行时管 理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制 实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。这类 似于Java的虚拟机。事实上,代码管理的概念是公共语言运行库的基本原则I矧。 以公共语言运行库为目标的代码称为托管代码,而不以公共语言运行库为 目标的 代码称为非托管代码。 (NET Framework的另一个主要组件是类库,它是一个综合性的面向对象的 可重用类型集合,可以使用它开发多种应用程序,这些应用程序包括传统的命令 行或图形用户界面 GUI 应用程序,也包括基于ASP(M盯所提供的最新创新 的应用程序 如Web窗体和XMLWebservices 11卯。 8 北京邮电大学硕士研究生毕业论文 基于?sio的网络拓扑图绘制功能的研究与实现 3(2基于Visio的开发方式 Microsoft Visio是一套功能强大的专业绘图软件,它的应用范围很广泛,包 括项目管理图表、商业流程管理图表、网页结构图、软件设计图、网络拓扑图、 数据库表单关联网、机械工程制图、电路图、工厂流程设计、空间规划等等。因 此,Visio适合多种不同行业的人士应用。Visio的最大优势在于能将难于表达的 内容用直观的图形表示出来,方便了人们思想的沟通。Visio图形可以携带很多 信息,利用Visio生成的图表和网页都保留了原有数据,这样就把Visio图形变 成了简单的可视化信息系统。可以说,Visio的信息、处理和表达方式代表 了未 来人机交互方式的发展方向。Visio在绘图制表上有着友好易用的操作界面,利 用Visio可以非常方便地绘制出各种图表。 Visio绘图控件是一个MicrosoftActiveX控件,它提供了Visio对象模型 型,作为可嵌入组件来提供Visio的功能。程序员可以以编程方式驱动Visio绘 图控件,称为对Visio的二次开发。 Visio具有良好的开放性,用户可用多种方式扩展并增强Visio功能,以满足 个性化的需要。扩展Visio的方法有多种,可以通过编程方式,也可以将其与其 Visio 他应用程序集成。在MicrosoftOffice 2003SmndardEdition或Microsoft OfficeVisio2003Professional Edition中进行的开发可以采取以下形式: ?解决方案开发 ?形状开发 ??Visio图形控件开发 ?另存为Web页开发 ?XML开发 3(2(1解决方案开发 Visio解决方案通常是将模拟现实世界的Visio形状与解决具体图形问 题的 Visio程序相结合。Visio程序可以创建图形、分析图形、在图形与外部数据源之 问传递信息或识别应用程序中发生的事件。创建Visio解决方案时,可以单独使 用下列各项技术,也可以将它们结合起来使用: 1 MicrosoftVisual Basicfor Applications VBA 9 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 利用内置的VBA宏记录器和集成开发环境 DIE 称为VisualBasic编辑 器 ,可以创建一些简单的宏来自动处理重复性任务,还可以开发简单或复 杂的 Office 扩展程序,将Visio与其他应用程序 如Microsoft Office Excel2003,以及包含VBA的其他数百个应用程序 集成起来。 2 COM加载项和Visio附件 组件对象模型 CoM 加载项为Visio提供了多种新的功能 例如,可以通 过新菜单项访问的自定义对话框 。Visio附件是一个用户编写的程序,可以扩展 是一种Visio特有的动态链接库 ,另一种是单独的可执行程序 (CXC文件 。附件 还可以采用两种方式实现。一是通过(NET平台创建,另一种是使用Visualc++6(0 来创建。 3 托管代码 模型与通过VisualBasic(NET、C静以及使用Microsoft(NET Framework的其他语 言开发的托管代码程序集和应用程序相集成。通常情况下,在计算机上安装Visio 时都会安装Visi02003 有3个: ?Microsoft(Office(Interop(Visio ?Microsoft(Office(Interop(Visio(SaveAsWeb ?Microsoft(Office(Interop(VisOcx 4 将Visio与其他应用程序集成 通过将Visio与其他Office应用程序集成,可以创建功能完善的解决方案。 3(2(2形状开发 MicrosoftOffice Visi02003中的每一个对象 包括每个文档、页面、样式、 形状、组、组内的形状和对象、主程序、来自其他程序的对象、辅助线和辅助点 都对应一个ShapeSheet电子表格,用于存储该对象的信息。此电子表格包含决 定该形状的外观和行为的高度、宽度、角度、颜色以及其他属性信息。 形状开发人员可以通过编辑形状的ShapeSheet 可以通过编程方式访 问, 10 它提供了Visio对象模型和用户界面的完全访问能力。因此,通过该控件可以将 Visio图形面和用户界面集成到应用程序中,使应用程序自动具有Visio的功能。 OfficeVisioStandard Visio图形控件随Microsoft 2003和MicrosoftOfficeVisio Professional 2003一起提供,安装Visio时将一起安装。对于托管代码开发,Visio 图形控件有自己的PIA:Microsoft(Office(Interop(VisOcx。 3(2(4另存为Web页开发 便方式。“另存为Web页"API允许通过编程方式将Visio图形另存为Web页。 对于托管代码开发,Visio另存为Web页API有自己的主互操作程序集 PlA : Microsoft(Office(Interop(Visio(SaveAsWeb。 3(2(5XML开发 XML 可扩展标记语言 是Web上结构化文档和数据的通用格式。 for Visio 文件是一个XML文档,它包 DataDiagrammingXML 以前称为XML Office 含MicrosoftVisio二进制文件的所有组件。可以使用XML和各种支持工 具来访问DataDiagrammingXML文件中的数据1161。 本文提出的解决方案主要采用了托管代码开发与形状开发两种方式( ?sio的二次开发具有以下优点: Visio绘图控件运行在应用程序的进程内,并且不要求运行Visio应用程序的 单独实例。 Visio绘图控件对每个实例显示单个Visio文档和单个窗口。可以通过将多个 控件实例嵌入到应用程序中来显示多个文档。 些京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 Document事件,可以通过程序捕捉。 3(3Visio对象模型 Visio对象模型表示Visio引擎通过自动化展示的对象、属性、方法和事件以 及对象之间的相互关系,它具有一种层次化的结构,Visio对象模型如图3-1所 示1171。 图3-1Visio对象模型 12 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与 该模型中的大多数对象都对应于可在Visio用户界面中查看和选择的项。例 如,shape对象表示可使用指针工具选择的Visio界面上的任何内容,如形状、 组、参考线或从其它应用程序链接、嵌入或导入到Visio图形的对象。某些对象 表示其它对象的集合。集合包含零个或零个以上指定类型的对象。 Visio对象模型中的最主要的对象有以下六种 所有对象名前面都省略掉了 命名空间“Microsoft(Office(Interop(Visio" : ?Application对象 ??Documents对象 ?Pages对象 ??Shapes对象 ?Cell对象 ?Event对象 下面将分别介绍这六种主要对象。 3(3(1Application对象 Visio提供了很多可与之交互的对象。这些对象排列在一个与用户界面密切 相关的层次结构中。位于层次结构顶部的对象是Application对象。此对象表示 和Pages集合。其中,每个对象和集合都有很多方法和属性,通过访问这些方法 和属性可以操作对象或集合,并与其进行交互。 33(2Documents对象和Document对象 实例中所开的所有Visio文件。Document表示其中一个visio文件。 Document对象是Visio编程的中枢。它表示一个绘图、模具或 模板 个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载 文件。 在打开Visio文档或创建新文档时,都会创建一个新的Document对象,并将其 添加到Application对象的Documents集合中。 性表示。 13 北京邮电大学硕上研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 3(3(3 Pages对象和Page对象 表示其中的一页。 是前景还是背景。 页面上。 3(3(4 Shapes对象和Shape对象 对象表示其中一个形状。表示可以在一个绘图窗口内选中的一切对象,包括:一 Visio 个基本形状,一个组合,一个连接点,或者是一个嵌入或链接到Microsoft 中的对象。 在二次开发过程中对单个形状的操作都要用到Shape对象,包括获取和设置 形状的大小、位置、颜色等等。 此Shape对象的模具。 本文出现的Shape对象主要有两种:一维的连接线和二维的图形。为了便于 区分,下文将统称所有Shape对象为“图元"。 3(3(5 ShapeSheet和Cell对象 MicrosoftOffice 中。这个电子表格包含着决定此对象的外观和行为的所有属性信息,包括高度、 宽度、角度、颜色等等。作为一个开发人员,需要精确控制你所创建的对象的外 观和行为。通过编辑一个形状的ShapeSheet,可以改变它的默认行为并增加新的 操作。 例,通过Shape(get 个单元格对象,此方法的三个参数分别代表此单元格位于ShapeSheet中的三个 14 !!室些皇查兰堡主笙壅竺兰些堡苎 茎三堡!!箜塑丝 堑盐里丝型丝墼堕堡茎兰壅翌 库 Visio type 类型中声明的成员。 对象属性的方法有两种: 1 修改单个Shape对象的属性 以修改一个Shape对象currentShape的填充色为例。代码如下所示: Cell colorCell cu玎entShape(get_CellsSRC short Microsoft(Office(Interop(Visio( VisSectionlndices(visSectionObject, short Microsoft(Office(Interop(Visio( VisRowlndices(visRowFill, short Microsoft(Office(Interop(Visio( VisCelllndices(visFillForegnd ; colorCell(FormulaU ”RGB 255,153,102 ”; 性,就可以达到修改此Shape对象填充色的目的。 2 修改一个Page内的所有Shape对象的属性 还是以修改Shape对象currentShape的填充色为例。代码如下所示: Array Array SID_SRCStream(SetValue short currentPage(ID,0 ; formulas(SetValue ”RGB 102,153,255 ”,0 ; SID_SRCStream,refformulas, targetPage(SetFormulas ref 对比来看,第二种方法看似复杂,但实际上适用于修改一个页面内大量图元 北京邮电大学硕七研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 入相应的值即可。这种方法只需要对ShapcSheet进行一次操作,就可以达到批 量修改图元属性的目的。 第一种方法则更适用于修改少量图元的属性。 这两种方法会多次出现在本文后面的章节中。 3(3(6Event对象 在Visio2003中,多种键盘、鼠标事件被加入到Visio对象模型中,使 开发 人员可以捕捉到这些事件并进行相应的二次开发。可以捕捉到的键盘及鼠标 事件 有以下六种: ? KcyDown ? KeyPrcss ?KcyUp ? MouseDown ? MouscMOVC ?MouseUp 在本文介绍的方法中将会用到MouseUp事件,这个事件在鼠标单击结束 时 方法,再将MouseUpEvent事件连接到这个方法上,具体代码如下: void sender, pfivamonDrawingContmlMouseUp olTject eventData ,雇这里加入处理过程 l this(drawingContr01(MouseUpEvent?冀-ow 这样就可以保证在鼠标单击事件发生时,这个自定义的方法会被系统调用。 除了键盘及鼠标事件外,Visio还提供了80多种事件,都提供了相应的 EvcntHandler委托,均可以在二次开发的过程中捕捉到。本文介绍的方法将会用 法与捕捉鼠标事件的方法类似。 镟 ?- 16 季 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 3(4使用VisualC舞(N盯进行Visio二次开发 3(4(1将Visio的COM组件转换为(NET组件 在(NET公用语言框架内运行的程序为受管代码。在(NET框架外运行的程序 Visio的COM组件属于非受管代码,要在VisualC静中使用这些非受管代码的 COM组件,就必须把它们转换成受管代码的(NET组件。所以在用ViusalC撑调 用Visio图形之前,必须完成从COM组件的非受管代码到受管代码的类库的转 换。 具体方法为,进入VisualC琊境,在项目中打开AddReference对话框,选 择COM栏,然后在COM列表中找到“MicrosoftVisioll(0 TypeLibrary",然后 将其加入到项目的References中即可。VisualC撑(NET会自动产生相应的(NET 组件文件,以后就可正常使用这些组件。 这个转换形成的(NET组件不能单独使用,它只是以前的COM组件的一个 外层包装,在(NET中可以通过这个外层包装去发现原来的COM组件并调用其 相应的界面函数。所以它必须与原来的COM组件一同起作用( 3(4(2用Visual雠打开Visio文件 事实上,在C挣中使用一个经转换的COM组件和使用任何一个其它(NET组 件完全一样。可以用new关键字创建一个经转换的COM组件,然后再像使用任 何一个其它C耐象一样使用这个组件对象。 要的关系,在VisualC带中,打开一个Visio文件的方式如下: ApplicationClassapp ncwApplicationClassO; app(Visible false: Document doe:null: doc app(Documents(opcnEx "文件名”, 17 北京邮电大学硕:f:研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 3(4(3对Visio二次开发的整体流程 对象实现的。一般步骤为: visio(application ; 3 由文档集合获得文档对象 visio(document ; 5 通过这些对象获得或设置各对象的属性,并调用其方法; 6 在外部程序的类模块中加入Visio类型库中所支持的事件函数,便可以 处理在Visio中出现的相应事件。 7 处理完后关闭打开的Visio文件,退出Visio运行实例。 18 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 第四章基于Visio的基本绘制功能的实现方法 上一章阐述了Visio二次开发的方法,本章将针对用户对网络拓扑图的一些 基本功能需求,提出基于Visio二次开发机制的解决方案,并分析其优越性。通 过对多个实际项目的考察,用户对网络拓扑图的基本功能需求主要包括几方面: 界面友好,可以自由创建、修改和拓扑图,可以通过拓扑图上的图元观察相应的 被管设备的实际状况,可以实现拓扑图向下挖掘功能。本章将针对这些需求逐条 提出解决方案。 4(1界面呈现 用户对于网管系统最基本的要求就是友好的人机交互界面。网络拓扑图作为 GUI中很重要的一部分,也必须提供给用户良好的视觉体验和简便的操作方法。 在这方面应用Visio二次开发的效果十分显著。因为Visio是一款成熟的专业商 务制图软件,在各行各业都拥有庞大的客户群体,经过不断地完善之后,可以提 供给用户足够美观、清晰、精致的网络拓扑图。 简单来说,基于Visio二次开发的绘制机制的实现,最基本的要求就是要在 网管系统的界面上嵌入一个Visio绘图区域。这就需要用到 Microsoft(Office(Interop(Visio(DrawingControl对象。 C劳、Visual Office Basic等开发平台下将MicrosoftVisio的功能嵌入到程序中去。 DrawingControl对象的重要属性有以下几个: 对象,并通过它来获取3(3节提到的其他Visio对象模型。 编程方式自定义Visio菜单和工具栏。 ? 通过Src属性可以指定此DrawingControl对象中的Visio文档( 并通过它来并通过它来获取3(3节提到的其他Visio对象模型。 将一个DrawingControl对象嵌入到网管系统中,就可以用它来实现基本的图 19 北京邮电大学硕’L研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 形绘制机制,但是仅仅向用户提供Visio的基本绘图功能是远远不够的,需要在 此基础上给用户提供更加完善的功能。 4(2拓扑图的管理 如果被管网络很小,例如拥有一个核心交换机和少量终端设备的局域网,那 么只需要一张网络拓扑图就足以呈现整个网络的拓扑结构。但是在实际应用过程 中,几乎所有用户的被管网络都比较庞大,数十台、上百台设备被分成若干个子 网,仅靠一张网络拓扑图来呈现是不够的。所以一个完善的网管系统必须支持用 户创建多张网络拓扑图。因为每个子网可能还会属于不同的部门,所以拓扑图也 应该有相应的归属部门和访问权限。由此可以看出,对网络拓扑图的管理是一个 重要的问题。用户需要自由创建和删除拓扑图,并且可以指定和修改拓扑图的归 属部门。 4(2(1 网络拓扑图的类结构和表结构 要想对网络拓扑图进行有效的管理,首先必须为拓扑图本身设计合理的类结 构,并在数据库中建立一张表来保存拓扑图的信息。 我的方法是建立一个Topolnfo类,用来保存网络拓扑图的信息。一个 实例 化的Topolnfo对象对应实际存在的一张网络拓扑图。类图如图4-1所示: Topolnfo TopoSerial:string TopoName:s打ing TopoUscrName:s仃ing VisioFilcName:string TopoDescription:string IklongDepl:string 图4-1 Topolnfo类图 TopoSeriah拓扑图的序列号,也是此拓扑图的唯一标识。在创建拓扑图时 由系统自动生成。 TopoName:拓扑图的名称(在创建拓扑图时由用户输入( TopoUserName:创建此拓扑图的用户的用户名。 后加“(vsd’’得到。 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 TopoDescription:拓扑图的说明,可以在创建拓扑图时由用户输入,也可以 在创建之后修改。 BclongDept:拓扑图的归属部门,用来实现权限控制,即只有对此部门有查 看和修改权限的用户才能对此拓扑图查看和修改( 同时在数据库中建立一张拓扑图信息表 topo_info ,表结构如表4(1所示: 表4-1拓扑图信息表 topo(info 字段名 字段类型 约束条件 默认值 描述信息 notnull 拓扑图的序列号 topo_scfialvarchar2 32 notnull 拓扑图的名称 topo-namevarchar2 255 user_(name notnull 创建用户名 varchar202 notnull 对应的Visio文件名 visio――file――namevarchar2 32 notnull 拓扑图的说明 topo_descriptionvarchar2 255 notnull 拓扑图的归属部门 BelongDeptvarchar2 32 用户可以在界面上选择创建、删除拓扑图,程序通过在topo_info表中插入、 删除记录来实现这一功能。用户当前操作的拓扑图,其信息会保存在Topolnfo 对象中,待用户操作结束后,将修改后的结果更新至topo_info表中。 4(2(2在拓扑树上展示拓扑图列表 因为网管系统应支持多张网络拓扑图并存,所以用户在选择查看或修改已有 拓扑图的时候,需要从一个列表中选择将要查看和修改的拓扑图。用户创建和删 除拓扑图,也应该在这个列表中有所体现。 本文采取的方式是在一棵树图上向用户展示系统中现有的所有网络拓扑图。 效果如图4(2所示。 21 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 拓扑树 „7j。,’‘””嬲鳓缈獭万黔弘物一 -天元网络(总公司 !l J电力事业帮 ;! ; 电力事业部网络拓扑圈[???id i| J破企事业岛 l :一致企研发备 ? ; 政企研发部网络拓扑圈【zqUsor3 政企事业部网络拓扑图【l枷盯l :; ;姿产管理盏 l; j综合事业帮 :2 j 综合事业部网络拓扑图【Idli柚 。息公司全网拓扑图[?dai站 l t;??_?_面_一_一1i‖ 图4-2拓扑树 树图上的节点与用户企业的部门一一对应,并以蓝色加粗字体显示。拓扑图 挂在部门节点下,以普通字体显示拓扑图名称,后面的中括号内显示创建此拓扑 图的用户名。拓扑图名称和用户名分别对应上一节介绍的TopoInfo类中相应的 属性,以及topo_info表中相应的字段,拓扑图上级的部门节点,也表现出了归 属部门的属性。 4(3观察模式与编辑模式 在本文2(4节中,分析了网络拓扑图用户自绘制功能的需求与实现现 状。本 文的主旨就是介绍以Visio二次开发的方法实现拓扑图呈现与用户自绘制功能。 实现此功能的一个基础是在界面中嵌入DrawingControl对象,而第二步就是将呈 现功能与绘制功能分离开,以节省不必要的用户操作和系统开支。 具体实现方法是在网络拓扑图的界面上提供“观察模式"和。编辑模式’’ 供用户选择。在“观察模式一下,用户只能查看选中的网络拓扑图;只有进入“编 辑模式"下,用户才能对拓扑图上的图标、连接线等Shape对象进行添加、删除、 修改等操作( 可以通过设置Visio图元保护属性和行为属性的方法实现“观察模式’’和“编 辑模式’’的切换。保护属性和行为属性都是Shape对象的一系列属性:保护属性 可以决定此图元的位置、大小等属性是否可以被改变;行为属性可以决定选中此 (婚瓠 北京邮电大学硕上研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 图元时突出显示的内容,以及组合行为等等(具体来说,需要设置的保护属性包 为属性包括:选中时是否显示形状手柄NoObjHandles,选中时是否显示控制手 柄NoCtlHandles。将一个页面内所有图元的这些保护属性都设置为“1’’,行为属 性都设置成“True一之后,就可以达到“观察模式"的效果,用户无法进行移动 图元的位置,改变图元的大小和颜色等操作,反之则可以实现“编辑模式"。 将一个Page对象中的所有Shape对象的上述12个属性一次完成修改,可以 使用3(3(5节中介绍的批量修改Cell对象的方法,具体代码如下: ,,, ,,,设置页面内所有图元的保护属性和行为属性 ?| ,summary ,,, param name ”targetPage” 目标Visio页 ,param ,,, param void privateSetTargetShapesStatus PagetargetPage,stringstrValue if targetPage null return;’ stringstrControl篁strValue(Equals '1” ?”TRI甩”:”FALSE”; sourceForuma?new ArrayList ArrayList 36 ; 2 setFommanew Array Array 12 ; in fo圮ach Shapethis(targetPage(Shapes shape sourceFomma(Add shape(1D ; sourceForuma(Add short VisRowlndices(visRowLock ; sourceForuma(Add short VisCelllndices(visLockWidth ; sourceForuma(Add shape(ID ( , sourceForuma(Add shor0VisRowlndices(visRowLock ; sourceForuma(Add shape(mI ; sourceForuma(Add short VisRowlndices(visRowLock ; sourceFomma(Add shape(D ( sourceForuma(Add short VisRowlndices(visRowLock ; 北京邮电大学硕士研究生毕业论文 基于Visio的 网络拓扑图绘制功能的研究与实现 sourceForuma(Add shape(ID ; sourceFomma(Add shape(1D ; sourceFomma(Add shape(m ; sourceForuma(Add short VisCelllndices(visLockEnd ; sourccFomma(Add shape(1D ; sourceForuma(Add shape(1D ( sourceForuma(Add shape(m ; murceFomma(Add shape(m ; murceFomma(Add shon Visltowlndkes(visRowMi躲 ; setFomma(Add strValue ; setFomma(Add sttValue ; setForuma(Add strValue ; setFomma(Add strValue ; setForuma(Add strVahm ; 一铀皋 ‘ 棠 * 北 4(4向拓扑图中添加图元 可以实现Visio文档的打开、保存、关闭等操作。另一个常用的操作就是打开Visio 模板文件。Visio模板文件是用户自绘制网络拓扑图的关键。模板文件打开后可 以自动停靠在绘图区域左侧,用户将预先存放在模板文件中的模具拖到Visio绘 图区域上形成新的图元,来进行拓扑图的绘制。 4(5被管设备实际状况的体现 网络拓扑图的另一个基本功能,就是可以通过拓扑图上的图元观察相应的被 管设备的实际状况。为此需要引入一个“关联关系"的概念――通过在图元A 与实际被管设备B之间建立一种抽象联系,以达到在图元A上反应出设备B的 实际状况的目的,这种抽象联系就叫做关联关系,简称为关联。 关联的概念如图4-3所示: 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 8 T 用户 网元A 安际设备B 图4-3关联关系 4(5(1关联类的实现 关联的实现方法为创建一个RelationEntry类,它的一个主要属性是图 元A 的ID,另一个主要属性是设备B的m,借由这种方法将图元A和设备B联系 起来。用户可以通过对RelationEntry对象的操作来实现创建、修改和删除关联 的功能。在此基础上,还可以将一张拓扑图上所有的关联记录保存在一个列表中, 并通过一个关联总类:Relation来维护。它的作用是对此列表进行填充、更新、 查找等操作。每个Relation类对应一张拓扑图,当用户创建一张新拓扑图时,一 个新的Relation对象同时被实例化( RelationEn竹和Relation的类图如图4(4所示l ationList:RelationEnUy RelationEntry riltO l ?? [+EquiplD:string urMtatcO p-ShapcID:string Remove inmlationEntw:RelationEmq, 卜-EquipName:string Scarcll in cquiplD:string :RelationEntry[+EquipType:string i-TargetShape:Visio(Shape Search inshapelD:string :RelationEntry 图4-4llelatioa类和gelationEntr?类的类图 4(5(2数据库中的表结构 为了保存用户对关联关系的创建等操作,还需要在数据库中建立一张对 应的 中的属性一一对应,并记录此关联所在的拓扑图的唯一序列号。表结构如表4(2 所示: 表4-2topo―relation表结构 北京邮电大学硕士研究生毕业论文 基于vjlsio的网络拓扑图绘制功能的研究与实现 字段名 字段类型 约束条件 默认值 描述信息 notnull 此关联所属拓扑图 topo_serialVarcha以32 的序列号 notnull 设备lD equip_idvarchar2 255 shapc_idint notnull 图元ID notnull varchar2 32 设备类型 equip_type 用户创建一条新的关联记录时,一个新的RelmionEntry对象被实例化,同 时一条新的记录被插入到topo_relation表中。用户删除此关联的同时释放此对象 资源,删除表中的记录。 4(5(3建立设备树 为了让用户更直观地看到一张拓扑图中所有的关联,可以在Visio控件之外 建立一棵“设备树",将当前拓扑图中所有已建立的关联都作为叶子节点显示在 这棵树上,把RelationEntry对象作为节点的tag属性。当某个叶子节点被选中时, 属性选中DrawingControl中对应的图元。 4(5(4关联初始化和显示告警 表中所有 、在一张拓扑图被打开时,取出toponoitaler(topo此于等段字 拓扑图序列号的记录,用每条记录实例化一个 yrtnEnoimleRl,air象es(对 并在设备树 的RelationList中。拓扑图关联的初始化就完成了。 在初始化的过程中,还可以通过改变图元颜色的方式将已关联设备的告警显 示到网络拓扑图上。要实现这一功能,需要在RelationEntry对象中加入一个 和 AlarmStatus属性。在取出toporelation表中的记录的同时,根据equip epyt_piuqeDI态(状警告的备设此到找查中表的据数备设类此放存在以可,段字 ,并 关联的图元填充不同的颜色,具体代码如下: 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 ,,, ,,,设置目标Shape的填充颜色,设置填充模式为“纯色”( ,,,??柏ummary namez 。targetShape”》目标Shape ,paran协 ,,, param ,,, paramnameffi”fillColor” 需要设置的颜色 ,param staticboot public fillCol00 Microsoft(Office(Interop(Visio(ApplicationvisioApplication 罨 try string fillColor(B ; targetShape(get_CellsSRC shortllVisSectionlndices(visSectionObject, short VisRowlndices(visRowFill, targetShape(get_CellsSRC short VisSectionlndices(visSectionObject, short VisRowlndices(visRowFill, short VisCelllndices(visFillPattem (FormulaU墨”1”; catch Exceptionex Syslem(Diagnostics(Debug(WriteLine ex(Message ; retum false; return true; ' 设置图元填充色的功能十分常用,是最直观地表现网络设备告警的方 式,也 是网络拓扑图与告警模块最简单的结合。 4(6与其他功能模块的结合 将网络拓扑图与网管系统其他功能模块完美地结合起来,让用户通过网络拓 扑图,可以观察到足够多的信息,包括网络设备的告警、性能、属性等。可以通 过重定义右键菜单、动态更新功能窗口和实时提示信息三种方法,从多个角度实 现网络拓扑图和其他功能模块的无缝结合。这三种方法的实现都有一个共同的基 础,即在Visio绘图区域中捕捉鼠标事件。 北京邮电大学硕士研究生毕业论文 基于Visio的网络拓扑图绘制功能的研究与实现 4(6(I重定义右键菜单 Visio绘图区域中存在默认的右键菜单,但是要实现自定义的操作,就需要 重定义右键菜单。具体方法为:先用3(3(6节中介绍的方法捕捉到MouseUpEvent 事件,然后在自定义的方法中加入以下代码: 09cl eventData(cancelDefault true; this(pmDrawingConr01(Show eventData(x,eventData(y ( 用的属性和方法。可以通过button属性来确定点击的鼠标上哪个键,可以通过 可以通过eventData的x和Y这两个属性确定。 在实际应用中,根据用户当前选择的图元关联的设备不同,应该对弹出的右 键菜单做不同的处理。例如用户选择的图元如果还未与实际设备创建关联,那么 就要在菜单中显示“创建关联"按钮;如果用户选择的图元已经创建过关联,那 么就应该显示“删除关联’’按钮而不显示“创建关联"按钮。另一种情况是用户 选择了一条已经关联到实际链路的连接线,右键菜单应该也与选中图元时有所区 别。 要实现这种机制,就需要捕捉到用户选择图元的事件,并对用户选中的图元 加以区分,进行不同的处理。 Count属性判断选中的是一个还是多个图元。现在只需要考虑对选中图元进 行区 分的方法,弹出右键菜单的流程如图4-5所示: 北京邮电大学硕士研究生毕业论文 基于Vis
本文档为【基于Visio的网络拓扑图绘制功能的研究与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_471618
暂无简介~
格式:doc
大小:98KB
软件:Word
页数:0
分类:
上传时间:2017-11-20
浏览量:34