2. 北京科东电力控制系统有限责任公司, 北京 100192
2. Beijing Kedong Electric Power Control System Co. Ltd., Beijing 100192, China
随着特高压交直流混联大电网建设发展, 主网调度管理、配网调度管理等各类自动化系统在管理信息大区部署的越来越多[1,2]. 这类系统通常基于B/S架构, 开发人员提供了不同技术和框架造成了界面风格各异; 同时, 电力系统的业务逻辑的实现需要电力专业的人员才能胜任. 手工编码不能快速响应用户需求变更. 这些影响了用户体验, 也不利于系统业务逻辑变化产生的维护和开发工作[3-6].
近年来代码自动生成的软件复用技术己成为解决上述问题的惯用手段[4-6]. 文献[3]设计了一个基于J2EE平台的企业信息系统代码生成工具, 实现了一种基于业务模型和场景的代码生成方法. 文献[6]研究了模型解释器和代码生成引擎, 给出了基于模型驱动框架的变电站自动化系统软件的开发和实现方案. 文献[7]采用数据解析引擎和代码自动生成引擎构建海南电网信通公司快速研发平台, 提出了一种形式化的Web界面行为描述语言, 实现了行为模型的代码自动生成. 文献[8]提出了一种基于ASP.NET的自定义页面生成引擎, 动态生成Web表单页面. 文献[9]提出了一种符合MVC用户界面开发最佳实践的组件化Web用户界面建模方法, 从界面数据模型、界面组件模型到界面交互模型等3个方面完成Web用户界面建模. 文献[10]展示了近几年兴起的新兴技术, 指出应用和应对这些技术是未来几年Web发展的重要课题.
文献[11]使用代码生成工具, 通过设计成果的复用和共享提高系统开发的质量和效率. 但是大量的代码生成导致开发人员过于依赖代码自动生成, 忽略了系统的可维护性, 造成后期维护成本上升. 同时代码生成工具在实际使用中还存在操作不灵活、使用不方便、功能整合能力不足的问题.
本文提出的自有知识产权的多组件Web可视化开发平台(下文简称Web开发平台)在模型驱动的开发思想基础之上, 采用代码自动生成结合手工merge的开发模式, 即基础功能由代码生成器生成, 电力系统的业务逻辑由开发人员自主实现. 既保留了自动生成的代码的便捷性, 又避免了受代码生成器的束缚. 本文介绍了Web开发平台的系统架构, 详细介绍了平台中核心组件, 包括单点登录、图形自动生成、表单设计器、布局设计器、设备拓扑生成和业务功能快速开发等组件, 并阐述了如何采用Web开发平台中的组件构建调度自动化系统监控平台前端.
1 系统架构 1.1 Web开发平台概述多组件Web开发平台后端采用SpringMVC控制逻辑跳转和Hibernate读取数据库信息, 前端采用Easyui、Jquery和Echarts进行界面展示. 该平台采用面向声明的开发模式[12], 由代码生成器生成通用模块代码, 基于泛型的编程方式[13,14]实现电力系统的业务逻辑代码, 可满足多样化的数据展示和表单处理等需求. 该平台以组件为单位进行功能设计, 便于结合各个地区实际需求进行灵活配置; 同时, 可视化的开发环境, 也实现了业务逻辑和代码编程的分离, 提高了开发人员的开发效率. Web开发平台的架构设计如图1所示.
权限实现了统一的用户管理和安全审计, 并提供鉴权服务和权限服务. 前台提供表单、曲线、饼图和仪表盘等形式的图形展示. 后台包括UI组件、通用组件、引擎、数据获取、系统监视和数据处理模块. 图形生成通过配置数据源和计算公式, 对数据进行图形化的展示. 拓扑生成将物理设备的连接关系以图形化的方式展示, 可以在拓扑管理功能中管理物理设备和改变拓扑关系. 表单设计器为用户提供可视化的表单布局工具. 表单组件和表格组件对数据进行处理供前台表单标签和表格标签显示. 代码生成和在线开发支持在线数据库管理、自动生成维护功能的代码. 定时任务通过统一的配置工具将定期执行的程序管理起来. 国际化支持系统在不同语言/区域之间切换. 报表引擎提供简易报表编辑工具. 流程引擎提供流程管理的通用接口. 模版引擎提供freemarker管理器处理模板文件生成HTML页面. Web服务提供第三方系统接入接口. 数据获取包括数据采集、分析和计算, 完成指定数据采集和处理, 支持统计计算、设置阈值等. 系统监视包括日志管理和性能监视, 跟踪日志记录和监视节点的CPU、内存, 磁盘I/O等指标. 数据处理包括数据库访问组件和事物处理, 提供对主流关系库的增、删、改、查操作, 并对达梦、金仓、南大通用国产关系库做了适配和数据库事务处理功能.
1.2 调度自动化系统监控平台概述调度自动化系统监控平台, 实现调度自动化主站、子站设备运行状态集中监视、协同分析、异常预警、准确定位以及全方位展示. 提升自动化设备的在线监测和自动化维护水平. 系统架构设计如图2所示.
采集模块负责数据的采集功能; 管理平台负责所有数据的后台处理分析; Web开发平台为整个系统提供统一的用户认证和登陆界面, 以表格式、图形化等多元化的展示手段提供展示界面, 对资源的功能状态、分析结论、异常预警信息、准确定位信息等进行全方位展示.
2 Web开发平台关键技术 2.1 单点登录组件单点登录是目前比较流行的企业业务整合的解决方案之一. 本文对CAS (Central Authentication Service)服务端进行了改进, 在多应用系统整合时保留各个系统的原有登录页面. 单点登录的设计流程如图3所示.
传统单点登录是纯粹的认证中心, 用户每次登录时, 需要进入CAS-Server的登录界面填写用户名和密码登录[15]. 如果对多个已存在的系统进行单点集成时, 子系统有独特风格的登录界面. 为了实现在子系统中登录成功, Web开发平台对单点登录模块进行二次研发, 从而支持客户端的自定义登录界面进行登录.
2.2 图形自动生成组件图形自动生成组件包括界面设计与数据处理, 开发人员通过可视化图形组件快速生成满足需求的图形, 避免了手工编码的弊端, 提高了开发效率. 前端界面设计包括图形属性和数据源配置. 图形属性配置支持创建折线图、饼图和雷达图等图形, 以及设置图形的横轴、标题、统计值等基本信息. 数据源配置指定图形中数据的来源和类型, 通过后端拓扑计算传递到前端进行展示. 后端数据处理包括图形属性解析、数据源处理和公式计算组件. 图形处理组件根据前台配置的图形属性生成对应的源代码, 平台根据配置的数据源和拓扑计算将数据返回前端显示. 自动图形生成的设计原理如图4所示.
2.3 表单设计器与布局设计器组件表单是常用的收集数据的组件, 是完成用户交互的组成部分[16]. 针对编码实现表单耗时的问题, Web开发平台提供了可视化的表单设计器, 支持自定义布局和数据源和在线完成数据展示. 通过表单设计器快速实现用户界面设计, 从而实现零代码或者少量代码编写前端界面, 使业务和编程分离提高了开发效率. 表单设计器的设计原理如图5所示.
表单设计器制定控件的设计规则和HTML规范. 控件模板指定HTML的表单模板控件并且快速生成表单原型. 同时, 根据控件设计规则和模板制定常用的界面控件. 根据控件属性和数据源的设置完成界面原型的开发, 快速生成自定义的界面. 通过控制转换器把控件转换成源代码. 表单项操作都完成后, 保存即可完成表单的生成. 开发人员可以在线预览界面效果和源代码. 最后, 所有的界面数据都存入数据库中, 便于进行多次编辑和修改.
Web开发平台的可视化页面布局设计器的设计原理与表单设计器基本相同, 优点在于布局更灵活, 组件更丰富, 适用于比较复杂的界面布局, 另外, 其样式支持目前移动端设备的展示.
2.4 设备拓扑生成组件设备拓扑生成组件根据物理设备位置和连接关系生成网络拓扑. 拓扑生成通过设备连接关系生成拓扑结构, 并对设备属性信息及状态进行展示; 节点自操作机制管理设备节点的位置、连接关系和基本操作. 设备拓扑生成的设计流程如图6所示.
设备拓扑生成组件在页面发送HTTP请求后, 获取拓扑页面的配置信息进行重新封装. 页面获取此结果集形成拓扑页面(包括节点布局和节点连接关系), 同时存储每个节点的阈值. 告警定时刷新指页面触发告警定时刷新请求后台的事件, 该事件获取节点实时运行数据, 循环对比实时数据与阈值得大小. 若大于阈值, 则产生告警并显示告警提示; 否则, 恢复正常显示.
2.5 业务功能快速开发组件业务功能快速开发组件基于模型驱动, 根据数据库表之间的关系, 自动生成数据维护功能代码. 在此基础上编写业务代码, 快速实现功能. 业务功能快速开发的设计流程如图7所示.
3 Web开发平台的应用调度自动化系统监控平台前端采用Web开发平台设计开发, 并在冀北电网、福建电网进行了实施部署. 该平台实现了自动化系统设备运行状态的集中监视、协同分析、异常预警和全方位展示, 解决了现有系统监视范围过小、关联分析不足和展示手段单一的问题, 满足了自动化系统的稳定性、监视及运维管理水平不断提升的要求. 关键技术应用说明如图8所示.
单点登录中用户登录一次, 可以进入调度自动化系统监控平台和访问所有相互信任的应用系统, 避免了在不同系统间频繁登录. Web开发平台的单点登录不使用单点登录服务端统一的登录界面, 而是继续使用原有系统的登录界面. 原有系统通过集成单点登录的客户端, 客户端会自动与服务端进行通信进行登录鉴权, 从而完成系统登录验证. 图形生成组件生成调度自动化系统监控平台中设备信息监视界面中的图形, 例如, 折线图、柱状图和环形图等图形. 传统开发模式中, 需要编写图形代码和后端处理逻辑. Web开发平台可以在线设计图形和修改图形样式; 同时, 后台提供图形的属性解析、数据源处理和公式计算组件. 开发人员只需编写SQL语句和配置数据公式生成图形. 通过修改配置属性及时响应需求变化, 降低后期维护工作量.
表单设计器生成用于生成各种表单界面. 传统开发模式中布局由开发人员编码实现. Web开发平台结合表单插件的属性配置实现了各个插件的转换; 同时, 表单设计器结合数据源配置可以完成数据源的在线切换. 表单设计器通过布局设计器的布局管理功能, 实现整体布局和单个插件展示顺序的在线调整, 开发人员通过平台提供的表单设计器与布局设计器配置表格、数据源和布局规则完成界面的开发. 拓扑生成组件包括添加、编辑设备连接关系、调整布局、展示设备属性和设备越限告警等功能. 传统开发模式根据设备的拓扑连接关系和需求开发设备的展示. 增加设备时, 需要手工操作管理设备信息和添加告警事件. 该组件通过设备拓扑关系自动生成拓扑关系, 拓扑生成界面中管理设备和事件, 只须配置设备告警规则, 即可根据规则实现设备越限告警, 以闪烁或者变色标识. 业务功能快速开发完成数据的维护功能, 表格以通过代码生成工具自动生成, 无须编码即可完成数据维护功能. 例如, 调度自动化系统监控平台设备告警信息的阈值配置、设备信息的展示等都是基于此功能在线生成. 传统开发模式中基础数据的维护功能开发繁琐耗时. 该平台提供的业务功能快速开发可完成在线开发, 通过表单配置、建立数据库表, 即可完成数据的维护功能. 当业务有特殊的要求, 可以在生成代码的基础上扩展功能, 提高了开发效率.
4 结语本文阐述了Web开发平台的单点登录、自动图形生成、表单设计器、布局设计器、设备拓扑生成、业务功能快速开发等组件的特点, 以及在构建调度自动化系统监控平台前端中的应用. 采用Web开发平台构建应用系统能够统一开发架构, 减少重复代码编写量, 实现设计成果的复用和共享, 使开发人员专注于电力系统业务的实现, 提高开发效率和质量, 及时响应需求变化, 缩短项目实施周期, 降低后期维护工作量. 目前调度自动化系统监控平台已经在冀北电网、福建电网进行了部署, 获得了用户认可. 后续研究Web开发平台在不同应用类型的调度自动化系统前端中的应用, 满足智能电网建设对系统运行可维护性、稳定性的要求.
[1] |
辛耀中, 石俊杰, 周京阳, 等. 智能电网调度控制系统现状与技术展望. 电力系统自动化, 2015, 39(1): 2-8. |
[2] |
张远来, 易文韬, 樊启俊, 等. 基于调度运行管理系统的配电网故障研判方案. 电力系统自动化, 2015, 39(1): 220-225. |
[3] |
黄小峰, 张晶, 王宇飞, 等. 基于J2EE平台的信息化系统代码生成. 计算机系统应用, 2016, 25(1): 90-95. |
[4] |
陈清, 吴海涛, 王璐. 基于代码自动生成技术的管理信息系统的实现. 计算机与数字工程, 2013, 41(2): 268-270, 317. |
[5] |
阳林, 及俊川. 李新. 一种可视化代码生成器的研究及应用. 科研信息化技术与应用, 2016, 7(2): 66-70. |
[6] |
汪溢, 余晓明, 马凯, 等. 基于代码自动生成技术的变电站自动化系统软件开发与实现. 电气自动化, 2016, 38(4): 83-85. |
[7] |
蔡奎, 卢雷, 王帅强, 等. 基于Web界面设计模式的复杂行为建模及其代码生成方法. 计算机应用, 2009, 29(4): 1139-1142. |
[8] |
曾少宁, 汪华斌. 基于MVC模式的Web用户界面建模. 测控技术, 2016, 35(5): 95-100. |
[9] |
李维佳, 汪洪江. 基于ASP.NET的Web表单自动生成引擎. 计算机与网络, 2015, 41(17): 60-63. |
[10] |
唐灿. 下一代Web界面前端技术综述. 重庆工商大学学报(自然科学版), 2009, 26(4): 350-355. |
[11] |
董卫魏, 高鹏, 曾繁孝, 等. 海南电网信通公司快速研发平台的研究与探讨. 电力信息化, 2013, 11(3): 63-66. |
[12] |
楚旺, 钱德沛. 支持软件重用的面向模式的软件开发方法. 电子学报, 2005, 33(12A): 2357-2360. |
[13] |
陈叶旺, 余金山. 泛型编程与设计模式. 计算机科学, 2006, 33(4): 253-257. |
[14] |
徐文胜, 薛锦云. 泛型编程扩展及其Java实现. 计算机工程与科学, 2007, 29(10): 89-91, 94. |
[15] |
李峰, 郭晓军, 于培民, 等. 企业门户应用整合中单点登录(SSO)的技术实现与应用. 现代电子技术, 2008, 31(23): 166-168. |
[16] |
Wroblewski L. Web表单设计: 点石成金的艺术. 卢颐, 高韵蓓, 译. 北京: 清华大学出版社, 2010.
|