盧 冶, 徐 明, 蘇 勇
(江蘇科技大學 電氣與信息工程學院,江蘇 張家港 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.