配网线路设备可视化维护与定位手机APP的设计与实现
2018-11-20许建远
许建远
(广东电网有限责任公司茂名供电局,广东茂名525000)
0 引言
配网抢修及日常运维是个繁杂艰巨的工作,现场工作支持软件/工具非常有限;而当前移动互联网应用如火如荼,如地图导航APP之类的软件在日常生活中已得到广泛应用,研究如何给工作人员提供类似的灵活便捷的工具/软件,为现场工作提供有效的技术支持,非常有现实意义。本软件借鉴GIS软件的设计思想,借助通用地图组件,提供工作人员现场查看配网设备地理信息的功能;通过分析处理设备台账数据文件,为离线APP提供数据模型来源;充分利用地图组件API,提供工作人员多种搜索设备以及定位导航功能。本软件某种程度上具有GIS应用软件的优点,又避免了传统GIS应用重型繁杂,实现成本高、周期长的弊端,在手机端实现了一个轻量级的GIS/WEB GIS应用APP。
1 软件概要设计
1.1 信息流程
系统数据流程如图1所示。
图1 系统数据流程图
为了满足南网对移动应用的安全要求,本APP采用完全离线模式,不提供APP任何与茂名局信息化系统通信的途径。APP使用的数据采用两条途径部署到手机端,一是初始安装时,载入主要数据,主要包括配网设备模型;二是定期发布数据文件(或者通过南网企信平台下载更新数据),维护人员通过新的台账文件导出获得更新的配网设备模型,打包成增量数据文件,发送给有关使用人员,使用人员用微信下载该文件后,再用APP的数据同步模块读取该文件,更新本地数据库表。
1.2 软件开发原则
软件系统的设计、开发遵循以下原则:
(1)采用螺旋模型(收集整理需求、设计原型、用户确认);(2)遵循软件工程化的设计方法和管理原则;
(3)采用面向对象和模块化的设计和实现技术,强调软件重用、数据重用和系统的互操作性,并最终实现系统功能的综合一体化;
(4)在满足系统各类要求的前提下,保持一定的可扩充性,在将来需要时进行功能扩充;
(5)松耦合、接口隔离原则,提高软件的组件化特征,提高软件的成熟度;
(6)组合聚合原则,减少继承方式,多采用组合方式,增强系统的灵活性,减少系统的耦合度和复杂度;
(7)软件系统运行可靠,信息保密;
(8)加强软件测试,包括白盒测试(单元测试)、黑盒测试(系统测试等),提高软件可靠性和系统稳定性。
1.3 软件需求
根据软件的设计目标,应开发下列软件,以满足功能要求:
(1)PC端WEB系统提供完整的维护功能,包括设备图标维护、台账数据处理等;
(2)PC端WEB系统实现基于地图的设备查询、导航等功能;
(3)APP提供基于地图组件的配网设备定位及导航功能;
(4)APP提供多种设备搜索方式,提供基于地图的设备搜索定位;
(5)APP提供基于短信告警系统的告警设备地图查询功能。
1.4 软件开发平台与运行平台
1.4.1 软件开发平台
本项目开发采用EclipseIDE,该开发平台是为应用系统开发者提供的软件开发环境。它除提供系统软件、支持二次开发的工具软件和应用编程接口外,还提供创建、编译、测试应用软件所需的编译器、排错工具、开发工具、测试工具、部署工具等。
软件系统开发平台(语言)包括:JAVA、Html、CSS、JavaScript。
1.4.2 软件运行平台
本项目PC端部分运行于JavaEE平台,包括JAVA容器Apache/Tomcat服务器以及中间件Spring+IBatis+DWR。Spring是JavaBean容器框架,提供控制反转(IoC)和面向切面(AOP)平台级功能;IBatis是对象关系映射框架,对JDBC进行轻量级封装,提供面向对象方式的数据库操作接口;DWR是RPC技术,提供前端分布式数据及业务逻辑服务功能。
1.5 软件的功能模块
软件设计主要以下几个模块:
(1)PC端WEB系统提供完整的维护功能,包括设备图标维护、台账数据处理等。
(2)PC端WEB系统实现基于地图的设备定位及导航。
(3)PC端WEB系统实现设备搜索功能。(4)APP提供基于地图组件的配网设备定位及导航功能。(5)APP提供多种设备搜索方式,提供基于地图的设备搜索定位。
(6)APP提供基于短信告警系统的告警设备地图查询功能。
2 软件详细设计
2.1 系统架构图
系统架构如图2所示。
图2 系统架构图
2.2 底层支持平台
本系统基于JavaEE平台,采用Apache/Tomcat服务器,后台采用Spring+IBatis/Hibernate+DWR技术,充分利用JavaEE平台丰富的功能以及对企业应用开发的强大支持,该模式赋予了系统强大的扩展能力和简便的维护要求,为项目实施提供了有力保障。
Spring是为了解决企业应用开发的复杂性而创建的,它是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情,具有轻便、易使用、易扩充、用途广泛等特点。IBatis是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲地使用对象编程思维来操纵数据库。DWR通过Ajax动态把Java类生成为JavaScript,使得在浏览器端调用JAVA方法就如同调用普通JS方法一样直接、方便。这种从Java到JavaScript的远程调用功能的方式使DWR用起来非常像RMI或者SOAP的常规RPC机制,DWR的优点在于不需要任何的网页浏览器插件就能运行在网页上。
IBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。IBatis摒除了大部分的JDBC代码、手工设置参数和结果集重获,只使用简单的XML和注解来配置和映射基本数据类型、Map接口和POJO到数据库记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,IBatis是一种“半自动化”的ORM实现,它使得程序的持久化过程变得可以重用、可配置、易于编写和管理,而且也易于调试。
WEB前端采用RIA/ExtJS技术,提供系统强大灵活的交互能力,使得系统具有了类似桌面系统的可用性。在此基础上,DNN100基础平台组件库及对应的工具提供了有力的丰富和扩展,使前端实现既方便快捷又丰富强大。WEB层使用了目前流行的富客户端技术(RIA),开发人机交互友好的界面系统,所涉及的技术主要有ExtJS和DWR。
ExtJS是一个Ajax框架,是一个用JavaScript写的,用于在客户端创建丰富多彩的WEB应用程序界面的前端Ajax框架。ExtJS可以用来开发RIA也即富客户端的Ajax应用。ExtJS主要用于创建前端用户界面,是一个与后台技术无关的前端Ajax框架。因此,可以把ExtJS用在.Net、Java、Php等各种开发语言开发的应用中。ExtJs最开始基于YUI技术,完美地融合了JQuery、Prototype和YUI。ExtJS区别于其他Ajax框架的最大特点是其提供了丰富而且简单易用的UI组件和统一美观的样式库。
DWR(Direct Web Remoting)是一个用于改善WEB页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含Ajax技术的网站。它允许在浏览器里的代码使用运行在WEB服务器上的Java函数,如同就在浏览器里一样。
APP采用Hybrid混合模式设计,基于当前主流的Cordova框架。Cordova是用于使用HTML、CSS和JS构建移动应用的平台,可以把Cordova理解成一个容器,用于将我们的网络应用程序与本机移动功能连接。
2.3 数据导出及同步
PC端维护模块,全面解析台账EXCEL文件,创建WEB服务器端的数据库表。APP初始安装时,在手机端创建对应的本地数据库表。维护模块定期解析新的台账EXCEL文件,导出增量数据文件,发给各APP用户,以同步更新本地数据库表。
数据库创建及导入的数据流是,将解析的各EXCEL的数据导入到数据库中。数据同步的数据流是,将导出的增量数据文件发到手机,导入到手机数据库中。
2.4 设备定位
APP和PC端WEB实现相似的设备定位功能。从设备树或模糊查询点选某设备,则跳转到地图界面,并在地图上标注出设备。点击该标注,可进一步查询该设备的详细参数数据。设备定位属于数据查询应用,数据源为PC端或手机端的各设备数据库表。
2.5 设备搜索
借鉴GIS软件的使用方式,在WEB端以及APP地图组件上实现GIS图形工具条,提供用户多种方便的区域选择功能,以查找检索该区域内指定类型的设备。设备搜索属于数据查询应用,数据源为PC端或手机端的各设备数据库表。
2.6 告警设备查询
WEB软件及APP充分利用茂名供电局短信平台发到各工作人员手机上的告警短信,显示出满足查询条件(时间、类型、地理范围)的告警设备。点击设备图标,可查看设备的台账信息。表格选项卡显示告警设备的列表。告警设备定位属于数据查询应用,数据源为手机端的各设备数据库表以及手机的短信库。
3 实验结果及分析验证
系统已通过厂内系统测试,性能稳定,使用方便。系统UI设计技术先进,界面设计稳重美观、直观形象,使用操作流畅便利。
系统数据模型正确完整,全面正确地将大量台账数据文件导入到PC端及APP端系统的数据库,数据访问速度满足要求。
系统在PC端及APP端的地图操作,平滑快捷,使用方便;设备查找定位以及导航具有较高的实用意义。
本系统在服务器技术框架、PC端UI设计、APP实现技术等方面都采用了先进的设计技术及理念,系统整体运行良好,实现了一款轻量级的GIS/WEBGIS应用APP。与同类应用比较,总体性能指标处于先进水平。
4 结语
系统基于JavaEE技术,底层平台采用Spring+IBatis+DWR技术框架,保证了系统的可靠稳定以及可扩展性。系统具有自己的业务支持平台DNN100,简化了业务开发的难度和复杂性,方便了软件后期维护,赋予了软件长久的生命力。PC端WEB界面采用ExtJS技术,该框架具有完善的WEB前端开发功能,组件、事件模型、数据操作丰富完善,提高了软件的可靠性、稳定性。APP采用当前主流跨平台设计方式——Hybrid混合设计模式,简化了设计难度,提高了多平台复用度。
系统的软件设计借鉴了GIS软件的设计思想,借助通用地图组件,为工作人员现场施工提供方便快捷的查看设备地理信息的功能。该软件某种程度上具有GIS应用软件的优点,又避免了传统GIS应用软件重型繁杂,实现成本高、周期长的弊端,在手机端实现了一个轻量级的GIS/WEB GIS应用APP,是一个有意义的技术尝试和创新。