卢 冶, 徐 明, 苏 勇
(江苏科技大学 电气与信息工程学院,江苏 张家港 215600)
伴随农村地区经济、文化的不断发展,农村环境中的污染因素逐年增多。农村环境连片整治是指,以解决区域性突出环境问题为目的,对地域空间上相对聚集在一起的多个村庄实施同步、集中整治,使环境问题得到有效解决的治理方式。开展农村环境连片整治,既是实施城乡发展一体化战略、全面提升城乡建设水平的重要举措,也是推进生态文明建设的重要载体。对于改善农民生产生活条件,优化农村环境面貌,提升农村环境质量有着十分重要的作用。
为了使农村环境连片整治工作出成效、上水平,需要根据各地农村的环境监测数据,确保农村水环境质量的提高。以某公司在无锡市管辖的100多处农村污水处理站为例,地理位置分散,担负着农村污水处理的重要任务。为了适应污水处理的信息化发展趋势,提高现场人员的管理水平和工作效率,必须构建一套适合分散型污水处理站信息管理及生产运行的自动化、精确化、智能化的整体解决方案:① 对现场设备实施远程监控,根据采集的实时数据实现对系统水泵和风机的远程智能控制;② 将每日运行参数发送到管理平台上,并根据日、月、年查询运行设备的历史日志,超出阈值会报警,并及时发送到相关责任人的手机上;③ 统计各污水处理站现场设备的运行时间和故障原因,并将故障信息及时发送到管理平台和相关责任人的手机上。
面对分散的组织架构和特定的运行模式,本文在 Spring[1]和Hibernate[2]框架的基础上,结合新一代的Java Web应用技术标准——JSF[3-4],采用基于B/S结构的多层架构设计思想,设计并开发了农村环境连片整治长效管理感知平台(以下简称“长效管理感知平台”),实现了农村水务管理工作从传统手工模式向计算机管理模式的转变。
由图1看出,各污水处理站的现场设备上安装的传感器构成了长效管理感知平台的感知层,以实现污水处理过程中对监测指标的全面感知。基于GPRS[5]的传输层保证了采集数据的可靠传输。感知层采集的数据经过传输层传输到通信服务器并存储到数据库服务器上。本文所做的工作就是基于前端采集的数据进行处理和统计、判断设备是否正常运转,并根据结果对现场设备实施智能控制,以及相关报警和故障信息的传达。
图1 感知平台的系统架构
长效管理感知平台分为7个功能模块:系统管理、数据通信、检测控制、故障处理、数据报表和短信发送。
(1) 数据通信模块。主要完成各项感知数据的接收、解析和发送,为智能化、信息化管理提供科学数据。具体任务包括通信设置、报文设置、数据接收和指令发送。通过设置GPRS通信参数,连接GPRS网络;设置与污水站设备通信的数据报文格式,接收从污水站发送过来的数据包,并解析报文将数据存入数据库中,还可以将设备开启与关闭的控制指令回传。目前,总共 5 个监测指标,包括:进出水温T(℃)、pH值、氧化还原电位ORP(V)、液位计值LS、溶解氧DO(mg/L),并要求预留接口采集进出污水化学需氧量COD(mg/L)和氨氮NH4-N(mg/L)。
(2) 检测控制模块。包括实时监控和站点监控功能。实时监控基于Google地图[6]显示所辖区县各污水站的运行状况,绿色标记表示正常运行,红色标记表示停止运行,黄色标记表示待修状态。站点监控对前端采集的数据进行处理和统计、判断设备是否正常运转,并根据结果对现场设备进行智能控制。现场设备包括:① 人工格栅,清理时间的设置、自动提示及报警;② 调节池,根据液位计值的高低自动或手动启动和停止污水提升泵;根据液位计值的持续时间和设备状态自动报警;③ 厌氧池中安放有ORP、pH和温度三类传感器,根据设定的取值范围自动报警及人工解除,如果1小时后还未恢复至正常值范围则重复报警;④ 接触氧化池,射流曝气机的开闭可以根据时间或者溶解氧浓度进行控制,并依据溶解氧浓度的取值范围自动报警及人工解除;⑤ 沉淀池,根据时间自动或者手动地控制污泥回流泵的启动和停止;⑥ 所有动力设备的报警,需要指明具体的报警设备,其中电流过载也视为报警。
(3) 故障处理模块。实现设备运行参数、水质采样数据等生产异常或故障的提示、预警,记录故障处理方案及处理结果并输出故障日志。
(4) 数据报表模块。统计水质监测数据、故障信息、处理信息、以及设备的运行时间等。
(5) 系统管理模块。包括权限管理和系统配置两个功能。权限管理实现了对于整个感知平台用户的动态管理,并且为指定用户分配指定的角色,以实现不同用户对于系统不同模块的不同操作,并最终通过JSF相关组件以树型结构呈现不同用户可操纵的菜单。系统配置则包括污水站点设置、管理员设置、以及显示设置等。
(6) 短信发送模块。完成故障信息的通知,并提供已发送信息的明细查询。
从技术架构来说,长效管理感知平台以Spring和Hibernate框架为基础,采用了基于B/S结构的多层架构设计思想,结合新一代的Java Web应用技术标准——JSF,把系统实现为页面表示层、控制层、业务层、数据访问层和数据持久层5个层次,Web服务器为Tomcat。
JSF[3]全称JavaServer Faces,是新一代的Java Web应用技术标准,它吸收了很多Java Servlet、JavaServer Pages(JSP)以及其他的Web应用框架的特性。JSF为Web应用开发定义了一个事件驱动的、基于组件的模型。
JSF试图从网页设计人员、应用程序设计人员、组件开发人员等不同角度为应用提供解决方案,让不同的角色分工可以彼此合作又不互相干扰[7]。从网页设计人员的角度看,JSF像是提供了一套新版本的HTML标签,但它是动态的,可以与后端的动态程序结合,而不需要理会后端的动态部分,甚至不需要使用JSTL标签也可以动态地呈现内容。从应用程序设计人员的角度看,JSF提供了一个与传统应用程序开发相类似的模型,基于事件驱动而不必关心HTTP的处理细节。还可以直接在集成开发环境上拖拽组件,设定组件的属性,甚至还为程序设计人员处理了组件与字符串不匹配的转换问题。从UI组件开发人员的角度看,他们可以设计通用的UI组件,只要定义好相关的属性选项,就不用再受到网页设计人员或应用程序设计人员的干扰,从而提高了开发效率。
JSF、Spring与Hibernate有各自的优点与不足,将这三个框架有效整合在一起,能够有效搭建三层或多层系统,保证了清晰的职责划分以及可维护性和可扩展性[8]。
长效管理感知平台划分为:页面表示层、业务层、数据访问层和数据持久层,控制层贯穿于整个应用。页面表示层基于前端采集的实时数据,经过报文转换并以Web页面的形式呈现;同时还实现了页面导航和数据验证等功能。JSF非常适合基于MVC的表示层架构,它为行为和表示之间提供了清晰的分离[9]。业务层从页面表示层接受请求,集中处理大部分业务逻辑,并作为访问数据层的中介。数据访问层使用DAO设计模式定义平台各个模块的业务接口,并定义它的实现类DAOImpl,通过DAO和对应模块的域对象,对数据库数据进行增删改查操作。该模式不仅将前端技术与后端技术完全分离,还能够保证源码简练和完全面向对象风格。数据持久层使用Hibernate框架。Hibernate是一个面向Java环境的对象/关系数据库映射工具[10],其特点是轻量级封装,避免引入过多复杂的问题,调试容易[11]等。在程序中Hibernate充分利用提供的O/R映射功能,通过具体类与数据库进行交互。
Spring是服务于所有层面的应用程序,提供了Bean的配置基础、AOP的支持、JDBC提取框架、抽象事务支持等,还有效地组织了系统中的中间层对象,消除了组件对象创建与使用耦合紧密的问题。在系统的多层访问控制逻辑架构当中,业务处理流程和数据流程如图2所示。
图2 业务处理流程和数据流程
Google 地图[6](Google Maps),前称Google Local,是Google公司向全球提供的电子地图服务,包括局部详细的卫星照片。它提供三种视图:① 矢量地图(传统地图),可提供政区和交通以及商业信息;② 不同分辨率的卫星照片(俯视图或45°图像,跟Google地球上的卫星照片基本一样);③ 地形图,可以用以显示地形和等高线。
Google Maps API是Google公司自己推出的编程API,允许对Google Maps感兴趣的任何程序设计人员自行开发基于Google Maps的服务。该API提供了大量实用工具用以处理地图,并通过各种服务向地图添加内容,可以在此基础上创建功能全面的地图应用程序[12]。目前,Google Maps API的最新版本是V3,可以免费使用,并且不需要注册Google Maps API Key。
系统是在JavaEE平台上开发,采用MyEclipse[13]为开发工具,SQL Server 2005为数据库,Tomcat为Web服务器。Web页面结合JSF框架实现,同时集成Spring和Hibernate框架对长效管理感知平台进行组件化和层次化设计和开发。
实时监控服务是基于Google Maps API实现的。页面显示无锡市周边区县地图,图中标记所管辖的各农村污水站,标记使用的是标准图标,其中绿色表示正常运行,红色表示停止运行,黄色表示待修状态。
为了更好地让用户体验,我们采用Ajax[14]技术从后台数据库读取数据,然后实时地显示在地图上。Ajax的工作原理相当于在客户端和服务器之间加了一个Ajax引擎。这样,并不是所有的请求都会提交给服务器。只有确实需要从服务器端读取新数据时才会由客户端通过JavaScript调用Ajax引擎向服务器端发起HTTP请求[15]。由于它并不等待请求的响应,所以仍然可以继续浏览或交互。
信息窗口中显示当前污水站的设备运行状态和检测指标。目前,动力设备是指曝气机、污水泵和回流泵。检测指标包括进出水温、pH、ORP、LS和DO。如果站点被标记成黄色,那么表示它的某个检测指标超出了阈值,而且该指标值将以橙色字体显示。同时,信息窗口还提供了设备运行记录和检测数据历史记录的链接。为了便于今后扩展,动力设备和检测指标分别预留50%的空间。实时监控画面如图3所示。
图3 实时监控画面
站点监控服务显示某个污水站的详细信息,包括水质信息、设备状态等,同时还能够对现场设备实施智能控制。如图4所示,页面提供区县和它所管辖的站点选择,同样基于Ajax技术从后台数据库读取实时检测数据。
图4 站点监控画面
除了显示上述实时数据以外,还以表格的形式显示设备的当前状态和检测数据的仪表取值范围。人工格栅以天为单位提示上次确认的时间。如果延迟一天未确认清理,会呈现报警状态,经过人工确认后通过解除报警按钮取消报警。其它动力设备的处理同上。同时,为了增加动态测量值的曲线显示,引入了 Ajax前端框架Ext-JS[16]。Ext-JS最杰出之处在于,它开发了一系列非常简单易用的控件及组件,只需要使用这些组件就能够实现丰富多彩的UI开发。
上述所有数据的显示和智能控制都离不开数据通信模块。它通过预先设置GPRS通信参数、数据报文格式,经过GPRS网络,接收从污水站传送过来的数据包,并解析报文存入数据库,同时根据操作员动作指令向污水站发送动力设备开启与关闭的控制指令。
本文针对农村环境连片整治过程中污水处理信息化发展趋势中亟须解决的问题和水务管理工作的特殊要求,设计并实现了基于JSF、Spring和Hibernate的农村环境连片整治长效管理感知平台。其优点在于JSF良好的组件化设计提升了Web界面品质和开发效率;基于GPRS的数据接收和发送,以及短信发送模块,实现了对现场设备的智能化控制。这些系统特点为农村水务管理工作进入新的层次、推动江苏省农村环境连片整治工作出成效奠定了基础。
[1] Craig Walls, Ryan Breidenbach. Spring in Action中文版[M]. 2版.北京: 人民邮电出版社, 2008.
[2] 孙卫琴. 精通 Hibernate:Java对象持久化技术[M]. 2版.北京:电子工业出版社, 2010.
[3] JSF[EB/OL]. http://zh.wikipedia.org/wiki/JSF, 2013-03-10.
[4] 徐明华. 精通JSF:基于 EJB、Hibernate、Spring整合开发与项目实践[M]. 北京: 人民邮电出版社, 2009.
[5] GPRS[EB/OL]. http://baike.baidu.com/view/1307.htm, 2013-03-08.
[6] Google地图[EB/OL]. http://zh.wikipedia.org/wiki/Google地图, 2013-03-09.
[7] JSF入门系列教程:JSF是什么[EB/OL]. http://blog.csdn.net/nuoyan666/article/details/5106336, 2009-12-30.
[8] 高 瞻, 锁志海. 基于JSF和Hibernate的科研管理信息系统设计[J]. 现代电子技术, 2009, 32(18): 98-101.
GAO Zhan, SUO Zhi-hai. Design of Research Management Information System Based on JSF and Hibernate[J]. Modern Electronics Technique, 2009, 32(18): 98-101.
[9] 董海燕, 王卫东. 基于JSF、Spring和Hibernate的技术资料综合管理系统设计[J]. 计算机应用与软件, 2012, 29(5): 212-214.
DONG Hai-yan, WANG Wei-dong. Design of Comprehensive Technical Information Management System Based on JSF, Spring and Hibernate[J]. Computer Applications and Software, 2012, 29(5): 212-214.
[10] 吕雪澄, 周书民. 基于ExtJS技术与SSH框架的后台数据导出Excel[J]. 电脑编程技巧与维护, 2011(10): 45-47.
LÜ Xue-cheng, ZHOU Shu-min. Export Background Data to Excel Based on ExtJS Technology and SSH Framework[J]. Computer Programming Skills and Maintenance, 2011(10): 45-47.
[11] 卫 军, 夏慧军, 孟腊春, 等. ExtJS Web应用程序开发指南[M]. 北京: 机械工程出版社, 2009.
[12] 张晓煜, 李 向. 一种基于Google Maps的土地利用信息发布平台[J]. 计算机与数字工程, 2012, 40(10): 146-149.
ZHANG Xiao-yu, LI Xiang. Information System of Land Utilization Based on Google Maps[J]. Computer and Digital Engineering, 2012, 40(10): 146-149.
[13] 张 俐, 张维玺. 基于B/S的实验室信息系统的分析与设计[J]. 实验室研究与探索, 2012, 31(5): 80-83.
ZHANG Li, ZHANG Wei-xi. Analysis and Design of a Laboratory Information Management System Based on B/S[J]. Research and Exploration in Laboratory, 2012, 31(5): 80-83.
[14] 陈 华. Ajax从入门到精通[M]. 北京: 清华大学出版社, 2008.
[15] 余建潮, 汪进前, 叶秉良, 等. 基于Ajax的实验室安全知识培训系统研发[J]. 实验室研究与探索, 2012, 31(2): 195-197.
YU Jian-chao, Wang Jin-qian, YE Bing-liang,etal. Development of College Laboratory Safety Knowledge Training System Based on Ajax[J]. Research and Exploration in Laboratory, 2012, 31(2): 195-197.
[16] Ext-JS[EB/OL]. http://baike.baidu.com/view/1350145.htm, 2013-02-28.