申山宏 ,李龙江 ,夏 棋
(1.中兴通讯股份公司南京研发中心,江苏 南京 210012;2.电子科技大学 通信学院,四川 成都 611731)
现代网络中,网络规模不断发展,网络管理系统在维护网络正常运行和保证网络服务质量上起着不可替代的作用。目前,网管系统主要是基于C/S架构建立的,也存在一些具有良好分布性、易扩展性的网络管理技术,如CORBA技术、主动网络技术、Web技术和移动代理Agent技术等,但这些技术都是基于Internet环境下的。基于C/S架构的网管系统中,服务器端主要对网络信息进行收集、分析和处理,并将结果过滤后分发到客户端中进行显示。目前,客户端主要是桌面计算机。现在移动终端实现网管功能主要是通过移动终端浏览Web页面实现的,还没有公开的本地原生应用方式。本文讨论了一种在移动终端利用原生本地应用的方式实现网管拓扑图功能的方法,并讨论了一种利用JSON格式报文封装网管数据的方法。这种方式与传统网管或基于Web方式的网管系统相比,在移动性、用户体验和实时性上都更胜一筹。
本文着重讨论网络管理系统中网络设备拓扑图在移动终端中的设计与实现,提出了一种在移动终端上显示网络设备拓扑图的方法,即利用移动终端上的电子地图来显示网络拓扑图。相比于用Web方式显示,这种原生应用效率更高,并且可以支持用户的放大和缩小等复杂手势操作。本方法不仅能将网络拓扑图在移动终端上进行简单展示,还具有能将网络状态和链路状态实时动态展现的能力。本文最后用一个实例验证了设计方案。
在移动终端上实现网管系统,必然会利用到现有传统网管系统中的数据。但由于传统网管系统数据接口是针对有线网络而设计的,而移动网管系统接口面临数据链路不稳定、数据时延较大以及传送带宽较小的现实问题,因此不宜直接采用传统网管系统接口。
移动终端通过无线网络与服务器发起通信请求,移动终端网络受环境影响较大,因此通信应采用异步方式实现。在上层通信协议选取中,移动终端与服务器通信通常采用HTTP协议来实现。基于Web应用的传统数据通信交换格式有XML类型和纯文本类型两种。而在Web应用中更适合采用 JSON (JavaScript Object Notation)格式的报文形式进行封装。相比于XML格式,JSON具有语法简洁、格式清晰、技术层次简单、易于人阅读和编写以及易于机器解析生成等特点。因此,移动终端轻量级的数据交换适合利用JSON报文封装传输。
JSON基础结构有“键/值”对集合以及值的有序列表两种形式。在使用中通常将两种形式结合一起使用。这种方法虽然没有XML格式清晰明了,但是减少了XML结构化标记带来的代码冗余,对于移动互联网的数据交换来说,JSON无疑是首选的。
国际标准化组织(ISO)在ISO/IEC 7498-4文档中定义了网络管理功能,即故障管理、配置管理、性能管理、安全管理和计费管理。本系统只侧重网管系统中拓扑图在移动终端系统中的实现,因此网管测试服务器由Tomcat搭建的Web服务器构成。移动终端用户可以通过请求服务器而得到JSON格式封装的网络拓扑图信息。
数据通信示意图如图1所示,Web前端服务器根据用户请求向网管中心数据库请求数据,认证后,Web服务器向网管数据服务器查询数据库信息,数据经Web服务器打包成JSON格式报文后返回给用户。
移动互联网的出现使得移动终端的应用方式有了极大的拓展,移动互联网是对传统网络的有力补充。对于存在于传统互联网中的业务形式,移动互联网可以通过改造接口的方式将传统业务迁移。移动互联网的业务并不是独立存在的,它通常是对传统业务在移动性上进行补充与特殊功能的扩展。图2为一种典型的移动互联网利用传统互联网进行迁移的架构图。
在传统的网络管理系统(NMS)中,网络拓扑图通常是在PC上呈现的。要将网络拓扑图呈现迁移到移动终端中,就必须利用NMS中已有的网管数据与业务逻辑。但由于移动终端资源受限,移动终端拓扑图显示是对传统NMS的补充,因此移动终端中拓扑图显示须重新考虑拓扑图呈现方式与操作方式。传统的NMS中拓扑图显示方法通常有列表显示和图形显示[1]两种。用列表显示能清楚地反映网络树状结构层次关系;用图形显示,图形接口能直观简洁地反映出节点状态、物理连接方式与链路状态。
Google Map为Google推出的电子地图服务,它不仅能提供Web形式访问,在当下流行的移动终端中还集成了相关的组件。例如,iOS中Map Kit套件与Android系统中Google Map API都是基于Google Map的电子地图服务。
移动终端屏幕尺寸较小且通常是通过触摸操作,用户操控难度大,不易采用用户自定位节点模式。移动终端处理能力比传统PC弱,采用自动定位节点模式不仅会增加处理负担,而且会耗费多余电量。因此,采用固定节点模式显示网络拓扑对于移动终端是最合适的。
移动终端上程序设计通常采用MVC思想进行。MVC设计思想中,数据与表示分离的思想能帮助程序更加清楚地设计模块。移动终端上,客户端程序主要分为前台模块与后台模块。前台模块进行数据的绘制显示功能,并创造用户交互界面;后台模块由数据接口模块与控制模块组成,负责数据的读取、解析以及用户操作的响应。其中,数据接口模块需要分别向电子地图服务器与网管数据中心服务器发起数据请求,获取数据后在移动终端本地解析;控制模块负责数据与用户视图模块以及数据接口模块的交互操作。在用户视图模块中,拓扑图界面的呈现分为两层,底层为电子地图的显示,数据由远端电子地图服务商提供;电子地图层的上层覆盖网元拓扑图层,网元属性中包含了网元地理位置信息,根据网元地理位置信息在电子地图层上找到对应的坐标后绘制相应的拓扑图结构。移动终端拓扑软件层次如图3所示。
图3 移动终端拓扑软件层次
移动终端通过接口获取的数据为标准化的数据,移动终端本地收到数据后为更好地向用户呈现,必须对数据进行有效的重构与可视化呈现。网管数据可视化包含对设备图标、线路状态和网络拓扑位置的可视化呈现。
在传统网管系统界面拓扑图呈现中,主要包含用户自定位节点模式、固定节点模式和自动定位节点模式3种呈现模式。在用户自定位节点模式下,网元节点在网管拓扑图中的位置可由用户拖动变化,节点位置由网管系统记录,链路根据节点之间的关系绘制;在固定节点模式中,网络连接的拓扑图放置在包含地理信息的背景地图上,用户能快速地从拓扑结构图中获取网络拓扑位置信息,网元位置由网管系统提供。自动定位节点模式下,网元无绝对位置信息,网络拓扑图结构由网管系统中算法生成,在网元数量较多时会消耗网管系统不必要的计算资源。
网络拓扑图中网元包含多种设备型号,对于不同类型的设备,利用不同的设备图标标识。拓扑图中的链路中通常存在故障、拥塞、忙碌和通畅4种状态,利用黑、红、黄、绿4种颜色对4种不同链路状态进行标示,以便于用户查看。
网元节点信息中包含了地理位置信息,利用网元的地理位置信息,通过坐标变换将网元地理位置信息映射为移动终端屏幕上的坐标点,并在手机屏幕上绘制出来。
在移动终端中,由于存在多种设备分辨率适配问题,因此在控制拓扑图显示比例和字体大小等都采用相对大小布局。具体方法是检测到设备分辨率后,通过固定的计算方法得出拓扑图中字体大小、线条粗细以及设备图标显示比例等信息。
拓扑图要与GIS地图集成显示,通常采用在现有的GIS地图上叠加图层的方法,但叠加过程中必须考虑到叠加图层的屏幕坐标与地理位置坐标转换。常见的一种方式是将GIS地图层绘制于屏幕底层,在此之上叠加绘制的拓扑图层,如图4所示。
图4 用户视图图层
网元节点的地理坐标与屏幕坐标通常不同,必须通过相应的转换方法将网元节点的地理坐标转换为屏幕位置坐标后才能确定网元节点的位置。网元节点屏幕坐标位置与电子地图地理坐标的映射通常通过第三方电子地图接口实现,电子地图API中提供了相关的转换与映射方法。其基本原理是通过计算网元节点的地理坐标与屏幕中心点地理坐标的差值,再将此差值乘以地图放大倍率系数,在获得与屏幕中心的偏移量后计算出网元节点的屏幕坐标。
用户视图需与用户进行交互,以完成如滑动、点击、缩放和弹出菜单等操作。移动终端设备既包含全触摸屏设备,又包括用实体键盘操作的设备,但所有设备都应能完成与GIS地图的交互操作,这就要求在设计交互机制时考虑到用户体验。
GIS用户视图中,用户主要与网元拓扑图层中的对象进行交互操作。网元拓扑图中所有设备图标和链路等都是一个实例化的对象,通过设置每个对象的监听事件,对相应监听事件内容进行用户自定义。
用户对图层的拖动可以通过捕获用户鼠标开始点击与松开点击时两点的屏幕距离计算出来,进而控制GIS地图图层与网元拓扑图层进行相应的焦点改变。在有较多网元的拓扑图中,用户通常会放大或缩小地图进行查看,因此在用户视图中还应放置缩放控件。当用户需要增加拓扑信息时,采用在原有图层上再叠加额外的拓扑图层的方法显示拓扑信息。
拓扑图层中设备和链路状态由事先规定的接口向网管数据中心获取。终端每隔一段时间向网管数据中心获取一次拓扑信息数据。获取数据以后,终端在本地对数据信息进行重构后,统一对原有的拓扑图层进行销毁并重新创建,以完成拓扑信息的刷新。
测试服务器操作系统为 Linux Ubuntu 10.04,Web服务器由Tomcat 6.0.35搭建。测试服务器数据库使用MYSQL,服务器数据库中与拓扑信息有关的有Group Info、Link Info和DeviceInfo 3个数据表。 其中,Group Info数据表是服务器中存放拓扑图网络结构信息的数据表;Link Info存放网络拓扑图中的链路数据,DeviceInfo中存放网元数据。
当服务端收到数据请求时,服务器根据WebService地址信息请求向数据库中查询相关数据,并通过返回的数据表构造JSON格式的数据报文,最后由Tomacat以Web页面方式向终端返回。终端返回得到一个简单的HTML页面,里面包含了JSON格式的数据信息。
目前,主流移动终端操作平台包括iOS、Android和Windows Phone7等,国内的GIS厂商都推出了各自电子地图在3种操作平台上的对应开发包,其中以Google Map在Android平台上尤为成熟,Android操作系统原生集成Google Map功能。因此,选取目前主流的移动终端操作系统Android 2.2平台作为终端系统,使用Google Map API作为电子地图服务接口,集成开发平台选取Eclipse和Android 2.2 版SDK。Android平台是Google基于Linux内核开发的移动终端系统,Android系统包含Google提供的Google Map API,软件开发者可利用接口开发基于Google电子地图的软件。网管系统拓扑图的电子地图层就是基于Google电子地图实现的。
拓扑图显示流软件流程图如图5所示。
图5 拓扑图显示流程
网管拓扑图是利用在电子地图层堆叠图层实现的。在Android中主要利用ItemizedOverlay类来构建覆盖图层,然后重载ItemizedOverlay中的draw方法来完成对图层中网元图标和链路状态的绘制。
3.3.1 电子地图初始显示比例的选取
点击某个包含子网的网络组后,即弹出Google电子地图显示网络拓扑信息。由于终端屏幕尺寸比较小,为了更友好地向用户展现拓扑信息,采用拓扑列表方式与图形显示相结合的方式来显示网络拓扑信息。在用电子地图显示网络信息时,需要考虑到初始化地图比例问题。在服务器返回的子网络设备与链路信息中包含网元坐标信息,利用网元坐标信息计算出所有网元位置信息中最大精度和纬度信息,再获取其中心坐标即可。在Google Map API中,只需计算出所有网元中心位置,以中心位置为焦点将所有网元画在地图层之上,它就会自动初始化匹配的比例。
3.3.2 拓扑图中网络状态显示
拓扑图中不仅可以显示网络拓扑信息,还可以将对应网元的详细信息与链路状态表示出来。利用链路颜色可以表示链路所处的状态。网元节点可以点击选取,选取后弹出新页面显示网元节点详细信息。
根据图5所示流程图,开发了基于Android平台的网管系统拓扑图显示软件。考虑到获得的拓扑图结构过大,软件采用了列表显示与图形显示相结合的方法来显示网络拓扑结构。列表中显示的是大的网络组网元,展开列表后显示某个特定网络中网络拓扑结构,在地图上选取某个网元,即可查看网元详细属性。网络拓扑GIS操作流程如图6所示。
由于移动终端屏幕尺寸的限制,在网络拓扑结构较大的情况下用列表方式加图形显示方式能有更好的用户体验。上层顶级拓扑结构用树状列表显示,用户通过列表中“+”、“-”号展开或收起树状拓扑结构。展开后选取某一个网络组,即可在电子地图上查看对应的网络拓扑连接,各网元的位置即代表其实际的地理位置。网元之间链路用不同颜色标记来代表链路的即时状态,绿色代表线路畅通,黄色代表线路繁忙,红色代表线路拥塞,黑色则表示线路故障。在地图上选取某个网元,可查看网元详细属性,了解网络某个网元节点的详细状态。
通过移动终端上的电子地图来实时展示网管系统中拓扑图,在技术和手段上是一种创新。测试结果表明,在移动终端上较好地现实了网络拓扑图,此时的网络拓扑图网元节点带有地理位置信息,节点在电子地图上的位置为节点的实际位置。但也存在以下问题:(1)节点之间的链路仍是直线,只能表示两个节点之间的逻辑连接,链路的连接路径不代表实际的线路;(2)设计中没有利用终端的定位能力;(3)网元节点设备图标无法随地图的放大缩小而变化,会出现地图缩放到一定程度时网元图标拥挤在一起的现象。
本文分析了移动终端的特点,介绍了一种移动终端在网络管理系统中应用的场景模式,即将网管系统中的拓扑显示功能扩展到移动终端上,通过移动终端向服务器请求数据后在本地重构显示出拓扑图。根据移动终端的特点,本文提出了一种在移动终端上利用电子地图与网络拓扑图结合现实网络拓扑的方法,并设计了验证方案。最后,在Android平台上测试了拓扑图显示方案。测试表明,在移动终端显示网络拓扑图是可行的,可以将网络拓扑结构显示到电子地图上,并且可以在地图上动态展示网络拓扑状况。但验证方案中仍存在不足之处,在结果分析中已逐一加以分析。
除将网管系统中拓扑图功能显示到电子地图上,更加友好地展示网络拓扑图概况外,电子地图还能与网管系统中告警功能配合,动态地定位告警源。此外,在网管系统报表统计功能中,电子地图可与报表统计数据结合构建在电子地图上报表统计的可视化效果,为用户提供更加直观的报表展示。存在的问题以及不足之处需在以后的研究中加以重视,找出更好的解决方法。
[1]李航.网管系统界面拓扑图生成的设计与实现[J].现代传输应用,2008(2):73-75.
[2]章宏才,陈卫东.移动终端实现网络远程管理的研究和设计[J].计算机科学,2007(9):73-76.
[3]李双庆,雷明剑.MVC在基于Java Applet网管系统的研究与应用[J].计算机应用与软件.2008(8):212-214.
[5]张创.基于GIS的网络拓扑管理系统的研究与实现[D].北京:北京邮电大学,2006.
[6]靳岩,姚尚朗.Android开发入门与实战[M].北京:人民邮电出版社,2009.
[7]杨丰盛.Android应用开发揭秘[M].北京:机械工业出版社,2010.
[8]韩敏,冯浩.基于JSON的地理信息数据交换方法研究[J].测绘科学,2010(1):159-161.
[9]韩义波,宋莉,宋俊杰.Ajax技术结合XML或JSON的使用比较[J].电脑知识与技术:学校交流,2009(1):101-103.
[10]周鹏,陈红顺,尹菲.Google Maps API技术在移动终端上的 GIS 应用[J].测绘通报,2012(3).