基于WEB的省级能效管理平台的设计与应用
2014-11-22李昆明周春蕾
孙 虹,李昆明,王 林,孙 彬,周春蕾
(江苏方天电力技术有限公司,江苏南京 211102)
为提高电力工业能源使用效率,减少环境污染,促进能源和电力结构调整,确保电力系统安全、可靠、高效运行,实现电力工业的可持续发展,2010年国家有关部门先后下发了一系列节能减排等政策文件[1-3],以期能加速节能服务产业的发展。为响应国家节能减排政策,推行合同能源管理、发展节能服务产业,规范节能产业的基础技术和基础数据,建立统一的能效数据中心,江苏率先设计开发了省级能效管理平台。本平台的建立一方面为江苏对全省52个电力能效小组能效工作的管理及考核提供业务平台,为江苏电力节能服务公司以合同能源管理方式对用能企业开展节能服务提供全流程管理;另一方面为获取全面的节能服务行业数据,为节能行业发展提供数据支撑和技术保障,对节能项目进行监测和节能服务机构进行评估,为国家和各级政府机构节能政策提供支撑,促进和推动节能行业向有序化、规范化、标准化方向发展。
1 系统开发环境
系统开发环境采用Windows,J2EE,WebLogic,DB2 集成配置方案,结合MVC 模式的Struts2 框架,开展系统平台研发工作,有效提高了软件研发效率。WebLogic 是Bea 公司提供的一款基于J2EE 规范的应用服务器,用于开发、集成、部署和管理大型分布式Web 应用、网络应用和数据库应用。其优异的容错性、高度的灵活性、安全性以及强大集群功能为企业应用提供了优秀的解决方案。DB2 是IBM 公司研发的、目前支持平台最广泛的商用关系型数据库,具有优秀的查询优化和网络支持能力,对大数据处理更表现出优良的性能。MVC 模式将一个应用分成3个部分,即模型(Model)、视图(View)和控制器(Controller),这3个部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性[4]。
2 系统结构和功能设计
2.1 技术架构
系统总体上采用轻量级多层结构设计,采用Struts2,Spring 和Ibatis 技术整合研发。系统技术架构如图1 所示。
图1 系统技术架构
(1)表现层。用户通过表现层与系统进行交互。表现层通过JSP+Struts2+EXTJS 实现,主要由各种页面构成,例如登录、管理、监控、查询、报表等页面。表现层通过JSON 方式与控制层进行数据交互。
(2)控制层。Struts2-Action 承担了控制层任务,主要负责将表现层请求分派到业务层处理,以及将业务层数据格式化,转换为表现层可接受的JSON 格式展现数据。以系统登录为例,当登录请求发生时,Struts 2 会根据struts.xml 里的Action 映射集(Mapping)实例化登录Action 类,并调用其execute()方法,并向表现层返回登录成功或失败等信息。
(3)业务层。Spring 是一款强大的轻量级框架,采用IoC 容器方式提供了业务对象管理的一致方法,允许业务组件以一定耦合度组装起来,对使用它的应用提供一种面向服务的编程模式的实现。同样以系统登录为例,控制层执行execute 方法时,execute 方法执行逻辑层业务处理,实现用户登录认证、权限加载等逻辑控制。
(4)数据层。数据层实现数据库数据的存取操作。系统采用Ibatis 和JDBC 相结合方式,提供对数据的持久化支持。Ibatis 作为一款半自动O-R Mapping 框架,隔离了对不同数据库的实现,能够很好的实现对业务功能的良好支持。
2.2 业务功能
平台由运营总览、指标考核、项目管理、小组活动、竣工项目监测、辅助分析工具、知识库管理、统计分析考核共8个模块来组成。平台功能的总体结构如图2所示。
图2 系统功能结构
(1)运营总览。以柱状图、折线图等直观的数据表达工具,全景式地集中展现全省在不同地区、不同行业、不同月份的节约电力电量实际情况、指标情况、完成占比率及能源转换等数据;提供对节能服务项目完成情况分析和潜在项目分析;提供能效小组组织架构和各小组机构节能量统计分析。
(2)指标考核。各能效小组根据指标要求走访记录企业用电结构来进行初步能效分析,推动社会企业实施节能改造,并且通过图形、表格等形式展示取得的业绩。
(3)项目管理。节能服务公司用户对审核后储备项目及节能服务公司自己录入的储备项目进行甄选、诊断、立项、定案、实施、总结及归档操作并对项目进度进行把控。
(4)小组活动。能效服务网络活动信息发布。通过发布能效服务网络的活动信息,为节能服务公司的市场开拓提供支撑。
(5)竣工项目监测。展示节能项目设备改造前后电量、负荷对比,以图表方式展示。该图表分为两部分:左侧展示电量对比,包括改造前电量、改造后电量、改造前后电量差值,数据为总计值;右侧展示负荷对比,包括改造前负荷、改造后负荷,显示15 min 曲线数据。
(6)辅助分析工具。提供快速查找目前正在推广的主要节电技术,并介绍各个节电技术原理、主要性能特点及适用范围。
(7)知识库管理。搜集国内能效相关政策文件,建立节能政策文件库;搜集国内能效相关法律法规,建立节能法律法规库;汇集、跟踪国内外先进节能技术信息,通过平台的先进节能技术产品库、通用节能技术库、行业节能分析库、典型节能项目案例库、节能标准数据库、培训教程库,从节能知识的各个方面为节能服务公司及企业等进行节能服务。
(8)统计分析考核。根据节能服务体系建设要求,建立节约电力电量汇总、公司自身及推动社会项目信息、节能服务公司项目合同信息、节能服务公司项目投运信息、节能服务公司经营情况、能效网络小组成员信息等统计报表通过对各能效小组上报的储备项目信息提供展示能效小组重点储备项目信息、展示各能效小组录入的已签署合同的项目信息、展示全省地市项目数量、展示节能服务公司对能效小组上报的项目的跟踪响应信息、展示节能公司对全省地市上报项目状态的项目数量信息进行统计报表。
2.3 数据存储
系统数据存储在名为DB_NXGL的数据库中,主要的业务数据表包括:企业信息、能效小组信息、企业用能设备信息、能效项目信息等档案数据表;节能政策文件、节能技术、节能标准等知识库;企业节约电力电量指标数据等统计分析数据表。
系统采用视图技术、存储过程技术,实现数据组合检索和业务逻辑处理封装。数据库设计时,总体上遵循3NF 标准化和规范化设计方式,在数据冗余、数据库性能、扩展性和完整性方面寻求平衡;对于项目管理流程等模块,采用数据驱动而非硬编码方式,增强系统的灵活性和扩展性[5]。
3 系统开发与实现
系统采用基于B/S 模式的Web 异步架构,页面数据的动态刷新利用传统的Ajax 技术完成数据请求,这种技术的最大优点就是能在不更新整个页面的前提下维护数据,这使得客户端浏览器能更为迅捷地回应用户动作[6]。页面数据的图形化展示则采用目前流行的Flex 技术实现,Flex 组件采用AMF 协议与J2EE 服务器进行信息交互;对于大容量视频文件,则采用HTTP协议上传至服务器,以文件形式进行存储和查询。
3.1 Flex 与Java 通信
传统上采用的XML-over-HTTP 技术在Flex 客户端和服务端之间传输数据虽然简单,但需要大量数据抽象层编码与维护工作,数据序列化和反序列化过程也会占用大量资源,导致应用性能和开发效率下降。因此,系统选用Remote Object 方式,使用AMF(Action Message Format)二进制格式协议进行通讯,相比较传统的XML-over-HTTP 方式,这种方式是最高效的通信方式。通过使用Remote Object,Flex 可以直接访问后台对象,而不用将对象数据转换成XML 格式,从而节省了大量的文件转换时间。此外,使用Remote Object 能较大程度提高数据在网络上的传输速度,数据本身被序列化为二进制的格式,从而减小了网络上传输数据的大小,进而减少客户端内存消耗,并缩短处理时间[7]。
3.2 Flex 图表组件
为更好地进行数据展示,系统引入了具有丰富表现力的Flex 图表组件,如线型图、条状图、饼状图、仪表图等。此外,作为Flex 系统的客户端运行环境,Flash Player 可以利用客户端计算资源进行运算来完成各种显示效果的渲染,使数据的交互更为直观[8]。图表中的颜色、图标、符号、图例、标题、提示等也都可以进行个性化定制[9]。
基于Flex 提供的图表控件,系统还设计实现了一些混合型图表和自定义图表,如线型图条形图混合图、气泡图、扇形图等。以扇形图组件为例,该组件以Flex的条状图控件为基础,通过新增扇形绘制方法redrawSerctorChart 和扇形中数据序列绘制方法drawSerctor,实现了从条状图(如图3 所示)到扇形图(如图4 所示)的扩展。
图3 条状图控件示意图
图3 展示了“竣工项目监测”功能通过条状图控件实现设备改造前后电量使用情况和削减情况的对比。图4 是“运营总览”功能界面中采用自定义的扇形图表组件,通过左右两侧的半圆形分别表达了全省不同节电方式下年度节约电量、节约电力占各自总量的百分比,节约电量、节约电力总量显示在每个扇形的上方。
图4 扇形图控件示意图
3.3 视频文件上传
系统在小组活动等功能中需要将小组活动的视频文件及其他资料上传到服务器。在Struts2 中通过将form标签的属性“enctype”设置成“multipart/formdata”,并定义类型为“file”的input 标签实现文件上传功能。
form 标签将文件上传请求提交到服务端后,由控制层的Structs-Action 调用视频文件上传方法将文件转换为二进制字节流格式保存到服务器。视频文件上传过程的处理流程如图5 所示。
图5 视频文件上传处理流程
3.4 安全控制机制
用户登录密码采用MD5 加密技术以密文的形式存储,不保存明文,有效地避免了密码泄露问题;在登录时采用验证码机制,防止程序自动登录造成的性能安全问题,并使用Session 会话实现用户身份验证保存。通过Servlet的过滤器机制,防止用户直接输入Url访问非授权功能和数据,即使未注册用户企图绕过登录页面直接进入系统其他页面,本系统也能判断此用户没有合法会话进程而跳转至登录页。采用Spring的拦截器技术进行权限控制,保证业务数据的安全。
4 系统应用实例
基于本文提出的设计方案和实现技术,选用IBM3850M3 服务器,以WebLogic 9.2为Web 服务器、IBM DB2 9.0为数据库管理器、JDK1.5为开发环境,完成了软件系统的开发、测试和部署工作。系统于2012年初投入运行,并在江苏全省13个地市进行了推广使用,迄今已实现对全省52个能效小组的能效工作考核。系统基于Remote Object 方式建立Flex 与J2EE 服务器之间的通信,页面中各图表组件可以独立、并行地发出数据请求、接收返回信息、更新显示数据,而无需重新加载整个页面和Flex。这种页面异步请求和局部更新的方式,有效降低了网络数据流量和网站访问速度,极大地改善了用户体验。
5 结束语
采用WebLogic 和DB2 开发的、基于Web的省级能效管理平台,具有技术新、安全性好、运行稳定等特点。本文对该平台在具有特殊保密要求的环境下运行容易出现的问题进行了梳理,并分别给出了解决方案。平台具有良好的扩展性,在开发过程中预留了扩展系统功能的程序接口,便于系统升级。平台对数据分析、提炼,并通过充分共享其他相关系统的信息,实现智能化查询、统计、分析和预测,使管理层能够及时全面地了解接入系统内各用能用户情况,为能效工作人员挖掘节能潜力用户提供数据支撑。
[1]国务院办公厅.关于加快推行合同能源管理促进节能服务产业发展的意见[Z].2010.
[2]中华人民共和国工业和信息化部.关于进一步加强中小企业节能减排工作的指导意见[Z].2010.
[3]中华人民共和国国务院.关于进一步加大工作力度确保实现“十一五”节能减排目标的通知[Z].2010.
[4]李 刚.Structs2 权威指南——基于WebWork 核心的MVC 开发[M].北京:电子工业出版社,2009:2-6.
[5]DB2 Information Center Online.DB2 Database Product Documentation [EB/OL].http://www-1.ibm.com/support/docview.wss?rs=71&uid=swg27009474.
[6]薛 蕾.能量管理系统服务子系统WebS的设计[J].江苏电机工程,2011,30(4):48-51.
[7]胡毓励.基于Flex的企业协作平台及其用户使用挖掘的设计与实现[D].杭州:浙江大学计算机科学与技术学院,2010.
[8]汪林林,胡德华,王佐成,等.基于Flex的RIA WebGIS 研究与实现[J].计算机应用,2008,28(12):3257-3260.
[9]Adobe Help Resource Center.Flex 3 Developer's Guide[EB/OL].http://livedocs.adobe.com/flex/3/html/help.html?content=Part2_DevApps_1.html.