<nav id="w0g0m"><code id="w0g0m"></code></nav>
  • <xmp id="w0g0m">
    <xmp id="w0g0m"><nav id="w0g0m"></nav><menu id="w0g0m"><strong id="w0g0m"></strong></menu>
  • <xmp id="w0g0m">
  • <nav id="w0g0m"></nav>
    <menu id="w0g0m"><menu id="w0g0m"></menu></menu>
    1. 網站地圖
    2. 設為首頁
    3. 關于我們
    ?

    基于物聯網技術的排水管網信息管理系統

    發布時間:2023-01-03 13:34
    目 錄
    第1章緒論 1
    1.1研究背景與課題來源 1
    1.2研究意義 2
    1.3國內外研究現狀 2
    1.4論文組織結構安排和章節內容介紹   4
    第2章 系統總體設計 6
    2.1系統需求分析 6
    2.2系統總體方案設計 7
    2.3管網數據釆集方案設計   8
    2.4與GIS和下穿隧道積水模擬系統的接口設計 10
    2.4.1與下穿隧道積水模擬系統的交互 10
    2.4.2與管網GI.S平臺的交互 11
    2.5本章小結 12
    第3章系統技術方案分析     13
    3.1系統的開發環境搭建 14
    3.2架構分析 15
    3.3Oracle 數據庫的遠程訪問 20
    3.3.1Oracle 數據庫 20
    3.3.2JPA 21
    3.4Java消息通訊 23
    3.4.1JMS 規范 23
    3.4.2Active MQ : 24
    3.4.3Apache Camel 25
    3.5本章小結 26
    第4章 數據庫設計 27
    4.1數據庫表結構設計 27
    4.1.1監測站點相關表結構 27
    4.1.2監測數據相關表結構 28
    4.1.3監測因子相關表結構 29
    4.1.4權限管理模塊相關表設計 30
    4.1.5日志和留言庫相關表設計 30
    4.1.6接警管理相關表結構 31
    4.2本章小結 32
    第5章 系統實現 33
    5.1信息集成平臺 33
    5.2報警服務集成平臺 34
    5.3管網信息管理系統   35
    5.3.1框架整合   35
    5.3.2core 包設計 37
    5.3.3entity 包設計 40
    5.3.4dao 包設計 40
    5.3.5service 包設計 41
    5.3.6web 包設計 44
    5.4本章小結 48
    第6章 管網信息管理系統主要功能驗證 49
    6.1站點地圖 49
    6.2實時監測   50
    6.3數據管理 50
    6.3.1實時數據 50
    6.3.2原始數據   51
    6.3.3逐條審核 51
    6.4接警管理 52
    6.5數據報表 53
    6.6數據分析   53
    6.7報警管理 54
    6.7.1報警參數 54
    6.7.2羊市街下穿模擬 55
    6.8系統管理 56
    6.9本章小結 57
    總結及工作展望 58
    致 謝 59
    參考文獻 60
    攻讀碩士學位期間發表的論文及科研成果 63
    附錄 64
    第1章緒論
    1.1研究背景與課題來源
    隨著科技的進步和時代的發展,我國城市化進程的不斷加快,城市排水管網建設也 有了較大的發展,但是隨著而來的排水管網的管理問題也日漸增多,尤其近年來暴雨 頻發,我國已有連續多個城市出現內澇的問題,這對城市排水管網的升級改造、防汛 應急搶險、日常養護維修管理提出了更為迫切的信息化管理要求。目前我國的城市排 水管網信息化建設所面臨的主要難點有以下幾點:
    1) 缺乏完善的相關法律法規和技術標準
    我國對于城市排水管網的信息化建設起步較晚,缺乏相應的建設規范和技術標準, 國內一些城市已在這方面有了積極的探索,但是綜合來講,各個城市對于排水管網信 息化建設發展水平不一,技術標準也存在較大差異[1]。
    2) 排水管網相關數據圖紙等信息不全
    國內各個城市排水管網相關管理部門標準不一,對于管網數據存儲方式也多種多 樣,且由于我國的城市排水管網建設起步較晚,有些地方還在沿用早期修建的排水系 統,許多設計圖紙和資料數據都已經遺失,而許多城市對于排水管網采取“重建設輕 管理”態度[2〕,導致相關排水管網數據的不完整,這使得后期的排水管網的改造規劃有 諸多不便。
    3) 缺乏全面的系統的排水管網信息系統
    我國目前尚沒有形成全國性的跨區域的大規模排水管網信息系統,僅有部分城市對 排水管網信息化建設進行了一些探索實驗,他們吸收國外先進技術給排水管網配置了 基于GIS(Geographic information system)的信息管理系統,這種方式往往只能展示排水 管網的物理地理特征,不具備分析預警功能,所以不能實現智能化排水管網管理⑶。
    4) 缺乏對管網科學合理的養護政策
    城市管網的養護是目前排水設施管理部門較為頭痛的問題,由于缺乏合理的監測手 段和評估手段,難以制定出科學合理又高效的管網養護政策,養護效果也無從判別。
    5) 缺乏有效的管網狀態評估和運行監測手段
    由于缺乏有效的監測手段,排水管網運行狀況不能及時掌握,導致部分管網甚至帶 壓運行,為城市安全埋下了隱憂。總之現有管理水平和效率難以適應城市高節奏、高 品質的發展要求[勺。
    為了解決排水管網管理過程中的各項問題,實現對排水管網系統信息化建設,本文 設計了一種基于物聯網技術的排水管網信息管理系統,該系統可以實現全面監控管網 運行狀態,同時還可和目前國內應用較多的管網GIS平臺無縫銜接,實現為GIS平臺 推送報警數據,全方位掌握管網動態,系統的另一創新點是結合了 SWMM(Storm water management model)暴雨洪水管理模型和3D仿真技術,可以多角度、跨時空地動態模 擬暴雨時下穿隧道內積水情況,實現了雨洪預警功能。
    本文課題來源于成都市排水設施管理處的中心城區排水管網數字化管理系統建設 項目,結合成都市排水設施管理處的需求,采集成都中心城區內51個指定點位的管網 數據,并將數據實時動態展示,同時系統實現了與排水處已有的管網GIS平臺以及下 穿隧道積水模擬系統整合,為成都市排水設施管理處提供了一套較為完整的管網管控 平臺。
    1.2研究意義
    本文設計的排水管網信息系統是數字化管網建設中重要的一環,通過本系統可以實 現對管網運行狀態的在線分析,以及如下方面的提高:
    1) 系統充分利用高效遠程的自動化監測手段代替低效的人工監測手段,實現了對于 排水管內部數據信息的遠程化和自動化監測,節約了人工成本,提高工作效率。
    2) 通過本系統可以管理和評估排水管網設施的規劃、設計和建設,通過系統可以分 析可以得出各個監測站點水力負荷,實現對管網過水能力的評估。
    3) 通過建設在線監測系統,提升了排水管網事故預警能力,提升了應對管道破裂和 防汛搶險等危機事件的應急能力,提高項目建設單位的排水防汛服務質量和管理水平。
    4) 通過連續的管網數據監測,收集了第一手的完整的管網水位、流量、雨量信息。 這些信息可以對排水管網設施的規劃、設計、建設及工程驗收形成管理和評估支撐, 可用以提高管網養護方案制定的科學化和系統化水平。
    5) 實現與結合了 SWMM暴雨洪水管理模型和3D仿真技術的下穿隧道積水模擬系 統的交互,可以多角度、跨時空的動態模擬暴雨時下穿隧道內積水情況,實現了雨洪 預警功能。
    6) 系統還可和目前國內應用較多的管網GIS平臺集成,以可視方式能生動呈現出管 網分布情況,并能根據實時監測數據對管網水位和流速情況進行預警和報警,全方位 地掌握管網動態。
    7) 實現管網數據信息的全面共享。
    1.3國內外研究現狀
    改革開放以來,我國城市排水管網建設取得了較大發展,尤其以東南沿海地區發展 迅速,新建了許多排水管網,但是我國的城市排水管網建設仍然與國外發達國家存在 巨大差距,截止2010年底,我國城市排水管道總長度達到37萬km,城市排水管道密 度為9.0km/km2,按照2010年我國城市化率46.6%的水平,經計算城鎮人均排水管長 度僅0.57mW 0近年來城市內澇問題頻發,給國民經濟和人民生命財產安全造成巨大 損失,因此迫切需要科學合理地建設信息化的城市排水管網系統,實現對排水管網管 理監測。結合GIS技術、專業管網模型技術和物聯網技術是目前排水管網信息管理系 統的建設發展趨勢。
    發達國家都非常重視對于排水管網的管理監測。美、日、西歐等國都有較為完善的 城市排水管網監測管理系統。國外的管網管理系統對于GIS技術和管網模型技術及其 他信息技術的應用都較為成熟。
    1)GIS技術在排水管網監測中的應用
    GIS技術在排水管網監測中的應用較為成熟,美國的ArcGIS是其中比較典型的代 表,它由Esri(Environment System Research Institute)公司研發,具有強大的地圖制作、 空間數據管理、空間分析、空間信息整合、發布與共享的能力。該軟件可以較好的應 用在城市管網管理中,實現對管網的監控管理[5 6 7]。
    我國近年來也在大力推動管網數字化建設工程,推廣GIS技術,經過不斷努力,我 國目前已有多個城市的排水管網管理部門部署了管網GIS平臺,如廣州市的地下管線 信息系統,它以GIS系統為核心,可以輔助地下管線規劃設計;天津市建設了基于 CityStar排水信息管理系統,該系統可以動態顯示管道水流狀態,監控水泵工作情況; 上海市也建設了上海市城市地理信息系統基礎數據平臺岡用來管理市政建設工作。
    基于GIS技術的管網管理系統有著強大的空間分析能力,能夠結合空間數據庫對地 下管網進行分析,但是GIS平臺對管網液位、流量等數據處理能力較弱,無法實現對 管網的全面的智能化管理。
    2)管網模型在排水管網監測中的應用
    國外對于將管網模型應用在排水管網管理中有著較多經驗,以SWMM模型為例, 早在1971年,美國環保總署支持多家公司聯合開發了 SWMM暴雨洪水管理模型,該模 型可以模擬降雨時的暴雨徑流,分析管網排水情況。20世紀90年代,將GIS技術與排 水管網模型集成的技術成為研究熱點,SWMM模型也得到進一步優化升級。目前在北 美地區的排水系統建設中,SWMM已經得到廣泛應用。
    我國關于SWMM模型方面的研究,起步較晚,但是經過吸收總結國外相關經驗也 有了一些成果。2006年,任伯幟采用SWMM對長沙市霞凝港區三場降雨徑流過程進 行模擬,證明該模型在港區小流域雨洪分析中有較高精度% 2008年趙冬泉等基于GIS 對SWMM城市排水管網模型進行快速構建,并在澳門某小區進行了應用案例分析[叫 2009年,陳鑫等對鄭州市區184.85hm2區域應用SWMM模型,對城市排澇和排水體系 重現期銜接關系進行研究
    3)物聯網技術在排水管網監測的應用
    將物聯網技術應用在排水管網監測是目前較為熱門的研究方向,國外對于這方面的 研究成果主要體現在物聯網底層的傳感器上面,如英國豪邁公司非接觸式的超聲波液 位傳感器,美國HACH的流量傳感器等,國內對應用在管網監測的傳感器的研究目前 尚不成熟,因此在這方面主要采用國外傳感器技術。我國結合國外傳感器將物聯網技 術應用在排水管網監測中已有了一些試點,如無錫市的基于物聯網技術的智慧排水系 統⑴〕。
    隨著近年來模型技術、GIS技術以及物聯網技術等的發展,將管網模型和GIS以及 物聯網技術整合在一起的應用是目前比較新的信息化管網建設方向。我國清華城市規 劃設計院在這方面也有了較成功的成果,他們開發了(Digital Water DS)數字排水平臺, 該平臺結合物聯網技術,將GIS技術與管網模型進行了較好的集成,可以實現對城市 排水管網資產管理網絡拓撲結構分析查詢、管網水力分析等功能[⑵。
    2013年,住房和城鄉建設部提出了全面物聯的“智慧城市”概念,將北京、南京、 成都等多個城市作為試點,在“智慧城市”的概念中建設地下管網監測系統和構建城 市公共基礎數據庫都是很重要的一環。而隨著我國“智慧城市”概念的推廣和普及, 將物聯網技術與GIS技術和SWMM模型等水動力模型相結合將會成為智慧管網建設 的新趨勢。
    1.4論文組織結構安排和章節內容介紹
    本文主要內容安排如下:
    第一章,主要介紹本文的研究背景及目的意義,以及排水管網監測技術的國內外研 究狀況分析,最后總結了論文的結構安排和章節內容介紹。
    第二章,主要介紹系統總體設計,分析了系統的需求和設計要求,得出了系統的總 體設計架構。
    第三章,介紹本文系統的開發框架及相關技術,分析了系統開發環境的搭建,系統 的架構分析,Oracle數據庫遠程訪問技術以及Java消息通訊技術等。
    第四章,根據系統要求設計了系統數據庫庫表結構。
    第五章,詳細介紹系統的詳細實現,包括信息集成平臺、報警服務集成平臺以及管 網信息管理系統的設計。
    第六章,是對排水管網信息管理系統具體功能的驗證,如站點地圖、數據查詢、數 據分析、系統管理等功能。
    第2章系統總體設計
    為了解決我國排水管網管理中出現的問題,需要建立一套數字化的排水管網信息管 理系統。本文設計的基于物聯網技術的排水管網信息管理系統,不僅能夠實現對管網 內數據的采集和分析,同時還提供了與管網已有GIS平臺的接口,能夠將管網內部報 警信息通過GIS平臺展示,且系統與結合了 3D模擬技術和SWMM模型技術的下穿隧 道積水模擬系統實現了集成,能夠對下穿隧道遇暴雨時的積水場景模擬和預警。下面 將詳細給出系統方案設計的過程。
    2.1系統需求分析
    成都排水設施管理處對排水管網信息管理系統的建設要求主要有以下幾點:
    1) 系統需采集在成都中心城區51個不同點位的液位、流量、流速、雨量等管網信 息,并實現信息數據的動態更新顯示。
    2) 系統實現監測數據管理、報表統計、數據分析、應急決策支持等功能,并能通過 與集合了 3D技術和SWMM技術的下穿隧道積水模擬系統的集成,實現對羊市街下穿 隧道暴雨時積水情況的模擬預警。
    3) 系統需支持用戶自定義的報警規則,如液位、流速、流量等閾值,并能夠將報警 數據推送至已有管網GIS平臺,同時需具備用戶接警管理的功能。
    4) 系統功能需通過網頁展示,同時要求系統訪問便捷、維護方便,需支持多種移動 設備如手機、Ipad等的訪問。
     
    圖2-1管網信息管理系統功能模塊圖
    綜合排水管理處對管網信息管理系統的設計需求,系統主要功能分為八大塊,分別 為站點地圖、實時監測、數據管理、接警管理、數據報表、報警管理、系統管理。系 統主要功能模塊圖如圖2-1所示。
    2.2系統總體方案設計
    為了實現排水處對于系統各方面的要求,將系統按照功能進行分塊設計,整個系統 分為7個部件,其中管網GIS平臺和下穿隧道積水模擬系統是需要集成和交互的已有 系統,部件功能描述見下表:
    表2-1系統部件表
    序號 部件名稱 部件功能
    1 管網信息管理系統 實現監測數據的綜合管理,包括數據存儲、查 詢、管理、統計分析等
    2 信息集成平臺 將釆集設備的數據轉換成統一的數據格式,并 傳送給系統數據庫,同時實現與下穿隧道積水 模擬系統的交互
    3 報警服務集成平臺 從管網信息管理系統中抽取報警數據,并發送 給GIS展示
    4 系統數據庫 存儲管網數據信息
    5 管網GIS平臺 是需要集成的系統,可展示管網基本信息,并 對報警數據進行展示
    6 下穿隧道積水模擬系統 需要集成交互的系統,對羊市街下穿隧道的模 擬結果進行展示
    7 通訊服務器 為其他系統提供穩定、可靠的通訊保障
    系統各部件關系圖如圖2-2所示,系統采用基于物聯網技術的數據采集方案,各個 傳感器通過GPRS模塊將管網數據采集傳輸到系統服務器中,設計信息集成平臺可將 數據統一格式,并實現與下穿隧道積水模擬系統的交互,監測系統數據庫用來存儲由 信息集成平臺送來的數據,最后管網信息管理系統將實現對管網數據的分析管理,該 部分是系統的核心部分,用戶可以通過瀏覽器訪問這部分系統。設計報警服務集成平 臺實現與管網已有的GIS平臺交互。
    系統的具體的管網數據采集方案設計和接口設計將在下面章節進行具體闡述。
     
     
    2.3管網數據采集方案設計
    為了監控排水管網運行狀態,需要采集管網運行時的各項數據指標,排水管網的主 要數據指標有:水管管徑、下水井井深、管道內液位高度、污水管道內流速、污水管 道內流量。同時為了實現系統雨洪預警功能,還需采集雨量數據,建立雨量與管網內 部液位數據關系。
    根據上述分析,管網數據指標中的管徑和井深數據都可通過物理測量得到,而排水 管網內的液位、流量、流速等指標則是動態變化的,因此這些指標的測量需借助專業 的設備完成。由于排水管道遍布廣闊,環境復雜,采取人工測量管網動態的液位、流 量等管網運行數據指標顯然是不可行的,而要實現這些信息自動化和智能化的獲取, 時下發展較快的物聯網技術是不二選擇。
    物聯網是通過信息傳感設備,按約定的協議實現人與人、人與物、物與物全面互聯 的網絡,其主要特征是通過射頻識別、傳感器等方式獲取物理世界的各種信息,結合 互聯網、移動通信網等網絡進行信息的傳送與交互,采用智能計算技術對信息進行分 析處理,從而提高對物質世界的感知能力,實現智能化的決策和控制[舊。
    業界中普遍認同將物聯網劃分為3個層次:應用層、網絡層和感知層皿。其中物聯 網的感知層主要是基于傳感器技術,通過傳感器采集信息數據。該層是物聯網的最底 層,也是最重要的基礎。物聯網的網絡層主要實現將感知層采集到的信息處理保存并 利用網絡通訊設備將其發送至應用層,應用層的功能是將底層采集到的信息進行處理, 最終在應用到人們需要的地方去,應用層是物聯網技術的最終目的%⑹。
    本文的管網數據采集方案選用物聯網實現,底層的感知層是各類水信息傳感器,中 間的網絡層考慮了地下管網的復雜地理環境,選取GPRS無線傳輸方案,而最終的應 用層就是本文的排水管網信息管理系統,將采集到的管網數據處理分析,為排水設施 管理處等管理部門提供管網建設的決策依據。
    關于各類傳感器的選型,需要考慮以下幾點:.
    管道內污水漂浮物較多,且水下工作環境較差;
    城市排水管道變動較多,需易于安裝拆卸;
    排水管道內部供電較難,設備需采用電池供電;
    排水管道對數據傳輸方式的限制,傳輸方式需支持無線傳輸。
    由于排水管道的特殊地理環境,使得它必須選擇采用電池供電和支持無線傳輸的傳 感器設備,且由于管道污水水質較差容易腐蝕損壞浸沒式設備,所以針對管網內液位 的測量,選用基于超聲波原理的非浸沒式液位傳感器是相對理想的方案。本文設計的 基于物聯網技術的排水管網信息系統使用的液位傳感器為英國豪邁公司超聲波液位傳 感器SonicSens。該傳感器安裝便捷,電池壽命較長(約5年),支持無線傳輸,可以快 速精確的讀取管道液位數據。液位傳感器安裝圖如2-3a所示:
     
     
    a) b) c)
    圖2-3傳感器安裝圖
    關于流量傳感器的選型,綜合考慮上述4方面原因,選擇美國HACH公司的多普 勒式Sigma940流量計,它利用多普勒雜質反射原理,是專用于下水道的高精度流量傳 感器,同時支持有線和無線兩種傳輸方式,而且通過該設備還可同時測量管道的液位 數據和流速數據。流量計安裝圖如圖2-3b所示。
    系統采用雨量計采集降雨量數據,雨量計的選擇遵循使用壽命較長,安裝維護簡單, 測量精度較高等原則,綜合考慮選擇翻斗式雨量計為系統測量雨量。雨量計如圖2-3c 所示,將雨量計布設于已安裝液位計的雨水管道附近路面。通過對雨量的實時監測, 并結合監測區域雨水管內水位變化進行綜合分析,實現地面積水原因的初步判定,為 制定有效應急處置措施提供決策依據。
    選定系統的各個傳感器類型后,系統采集數據的流程也已經確定,系統采集各個傳 感器數據的過程如下;
    豪邁液位傳感器的數據采集過程:首先使用傳感器配套的數據采集程序Radcom配 置站點的信息,將站點對應的電話號碼輸入到對應的采集程序中。站點設置發送短信 的地址,并設置采樣周期。每個站點的3G卡按照采樣周期將傳感器采集到的數據以 SMS短信的形式發送至服務器上安裝的FTP(File Transfer Protocol)服務器,本系統中使 用的FTP服務器為Oceanftp,接著數據采集程序將其解析處理,再通過傳感器配套的 數據生成器程序將數據生成統一的txt文本格式,按照站點序號存入如A_0001.txt的 文本文件中,該文件里存儲站點序號為01的液位數據。
    Sigma940流量傳感器的數據釆集過程:首先通過設備配套的采集程序RTU-MSG中 的站點配置功能將站點的名稱、電話號碼等信息存入程序,設置程序采樣周期,站點 設備就會按照周期以短信形式發送站點數據,RTU-MSG程序兼容短信接收和解析功 能,可直接將站點的流量等數據讀取存入Microsoft SQL Server數據庫。
    雨量傳感器數據采集過程:雨量傳感器使用配套的自動氣象站程序采集雨量數據, 并將數據存入Microsoft SQL Server數據庫。
    綜上所述,系統選用物聯網技術實現了管網數據的采集,為下一步的排水管網運行 狀態分析提供了數據支持。
    2.4與GIS和下穿隧道積水模擬系統的接口設計
    本文設計的排水管網信息管理系統為管網已有GIS平臺和下穿隧道積水模擬系統 提供數據接口,具體設計見圖2-2,在系統的信息集成平臺中實現對下穿隧道積水模擬 系統的接口,系統與管網GIS平臺的通信采用報警服務集成平臺和通訊服務器實現。 下文給出具體設計方案。
    2.4.1與下穿隧道積水模擬系統的交互
    下穿隧道積水模擬系統由下穿隧道3D仿真模型和SWMM暴雨洪水管理模型結合 實現,該系統是以成都市羊市街下穿隧道為原型設計,可以根據羊市街雨量站監測的 雨量數據,結合SWMM模型計算得出下穿隧道積水情況。由于該系統已經開發完成, 所以本文設計的排水管網信息管理系統需提供接口與之集成。本文的接口設計采用 ApacheCamel+ActiveMQ 實現。
    該接口的通訊過程如圖2-4:
    管網信息管理系統將所需的雨量數據從系統數據庫中取出,組織成消息隊列 CDPS.SIMULATION通過通訊服務器發送到信息集成平臺,信息集成平臺發送命令啟 動SWMM模型計算,并將雨量數據送至模型,模型得出計算結果后由信息集成平臺將 結果讀取出,并通過Socket將數據廣播給處在監聽狀態的羊市街下穿隧道3D模型展
    Zj\o
     
     
    圖2-4與下穿隧道積水模擬系統的通訊流程
    為了高效地在下穿隧道積水模擬系統和排水管網信息系統間傳輸數據,采用自定義 數據接口,每次交互的數據格式如下:
    #年月日時分秒,隧道積水液位,管道積水液位,降雨級別,是否報警%
    數據以#為開始符,以%為結束符,中間的有效數據以逗號隔開。其中,降雨強度 分成3級,便于在下穿隧道積水模擬系統下模擬不同的下雨強度;是否報警標志:1 表示要報警,0表示不報警。
    數據格式舉例如下:
    #2012-05-12 17:23:25,2.34,1.23,1,1%
    表示羊市街下穿隧道在時間2012-05-12 17:23:25時,隧道積水液位2.34米,管道 積水液位為1.23米,此時降雨強度1,要報警。
    2.4.2與管網GIS平臺的交互
    管網GIS平臺是排水管網信息系統需要交互的另一個系統,該接口采用 ApacheCamel+ActiveMQ實現,設計接口通訊過程如下:
    管網信息管理系統不間斷的運行,當監測到有報警數據時,將報警數據按照指定的 格式傳輸到通訊服務器的消息隊列CDPS.WARNING中,管網GIS平臺監聽該隊列, 一旦有數據到達,GIS平臺就可收到,并進行及時的響應和展示。
    與GIS平臺交互的數據結構設計如下:
    <?xml version=" 1.0" encoding="UTF-8"?>
    〈WARNINGS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.qingqi.com" xsi:schemaLocation="http://www.qingqi.com WSS.xsd">
    <!一報警信息l-->
    <WARNING SITE="0001" LON="123" MSG="綜合報警信息"TIME="2012-05-25 09:01:34">
    <ROW FACTOR_ID="DSS_WL" FACTOR_NAME="液位” LEVEL="1" COLOR="OXFFOOOO" VALUE="10" MSG="本因子報警信息"/>
    <ROW FACTOR_ID="DSS_VL" FACTOR_NAME="流速"LEVEL="2" COLOR="OXFFOOOO" VALUE="10"/>
    <AVARNING>
    表示站點編號為0001,站點位置編號為123,報警時間為2012-05-25 09:01:34,報警 的因子為液位因子和流速因子,數值都為10,報警級別分別為1級和2級,報警數據的 顏色為OXFFOOOO紅色。
    2.5本章小結
    本章給出了排水管網信息系統的總體設計,通過對排水管理部門需求分析給岀了管 網信息系統設計方案,包括管網數據采集方案設計,以及與下穿隧道積水模擬系統的 交互方案。最后為了與管網GIS平臺集成,給出了系統與管網已有GIS平臺的接口設 計。
    第3章系統技術方案分析
    管網信息管理系統功能如圖2-1,該部分為整個系統核心部件,根據排水設施管理 處對系統訪問便捷、維護方便的要求,系統需設計為B/S(Browser/Server)模式的Web 項目,B/S模式是一種三層架構的瘦客戶機/胖服務器的模式,即第一層的客戶層只需 有Web瀏覽器,其運行代碼可以從Web服務器下載至本地瀏覽器中執行,第二層為應 用服務器層,由一臺或多臺服務器組成,負責處理所有的業務邏輯,包括對數據庫的 訪問等工作,第三層為數據庫服務器層,主要由數據庫系統組成。與傳統的C/S (Client/ Server)模式相比,B/S模式取消了對客戶端的維護工作,降低了系統運維成本,同時還 具有良好的開放性和可擴充性。
    目前較為流行的企業級Web項目開發方式是基于Java EE平臺的開發的。這是由于 Java EE平臺對Web項目的設計提供了非常全面的支持,并有著良好的框架體系支撐大 型項目的開發,因此本文的管網信息管理系統選擇在Java EE平臺下進行開發。
    Java EE 是 J2EE 的新名稱,J2EE 即 Java2 平臺企業版(Java 2 Platform Enterprise Edition),它的任務是提供一個平臺獨立的、便攜式、多用戶、安全及標準的企業級平 臺,服務器端部署用Java技術來完成。JavaEE是一種規范,為軟件開發生命周期制定 了許多規則,使得編碼標準化,從設計到發布的不同領域,它都制定了不同的規范, 所有這些技術密切相關,可以集成在一起[切。Java EE主要用于創建可擴展的企業應用, 包括多種核心技術規范,這些技術規范為Java應用程序設計提供了良好的服務接口, 使得Java程序設計更加便捷和規范。
    在分析了系統的總體設計之后,結合目前流行的Web項目開發方式,給出本文排水 管網信息管理系統的開發環境搭建以及系統選用的相關技術框架分析,具體技術方案 圖如圖3-1所示,系統采用物聯網技術實現排水管網信息數據的采集;通過Apache Camel這一開源框架實現報警服務集成平臺和信息集成平臺的跨平臺跨協議的消息通 信;選擇基于JavaEE平臺的SSH2(Struts2+Spring3+Hibemate3)架構搭建管網信息管理 系統,系統的Web服務器選擇Tomcat這一輕量級服務器;采用穩定性強的Oradellg 數據庫為系統存儲數據,并通過JPA(Java Persistence API)標準實現數據持久化;同時利 用開源的JMS(Java Message Service)提供者Active MQ實現信息集成平臺與數據庫之間 的消息通信。下面對系統選用的技術框架進行進一步分析闡述。
     
    圖3-1系統技術方案
     
    3.1系統的開發環境搭建
    系統的開發環境搭建主要指對應用程序開發工具、數據庫、Web服務器和通訊服務 器的選型,下面分別說明。
    1)程序開發工具
    目前Java EE平臺的Web應用程序開發工具分為兩大類:集成開發工具和基于命令 行的開發工具。集成開發工具的開發程序因操作簡單、糾錯能力強等優點而得到廣泛 應用,MyEclipse9.0是一個免費集成開發工具,它提供了通用的Java開發環境,利用 它可以高效的實現數據庫和Java EE下應用的開發[切。它功能強大,包括了一整套的程 序代碼編碼、調試、測試和發布功能,支持HTML、Struts> JSP(Java Server Pages)> CSS(Cascading style sheets)Ajax(Asynchronous Javascript + XML)、JavascriptSpring、 SQL、Hibernate、EJB3(Enterprise JavaBean)、JDBC(Java Data Base Connectivity)數據庫 鏈接工具等多項功能。因此本文的系統開發工具為My Eclipse9.0o
    2)數據庫選擇
    關于數據庫的選擇,由于Oracle兩數據庫功能強大、性能穩定,具有分布性、邏輯 整體性、分布式計算、透明訪問、均衡網絡負載和可靠性較高的特性I®〕,因此在企業 級應用中被廣泛使用。本文設計的基于物聯網技術的排水管網信息管理系統數據量大, 對數據庫系統穩定性有著較強要求,因此選用Oraclellg數據庫。
    3) Web服務器選擇
    Web服務器是運行及發布Web應用的容器,開發Java Web應用所采用的服務器主 要為與JSP/Servlet兼容的Web服務器,比較常用的有Tomcat、JBoss、WebLogic等。 JBoss服務器是個遵從Java EE規范的、開放源代碼的、純Java的EJB服務器,對于 Java EE有較好的支持。但JBoss不兼容Servlet和JSP^; WebLogic服務器是BEA公 司的產品,WebLogic支持企業級的、多層次的和完全分布式的Web應用,功能全面, 但是該服務器體積較大,而且不開源⑵】;Tomcat服務器目前最為流行的Web服務器, 是Apache-Jarkarta開源項目中的一個子項目,它小型、輕量級且支持JSP和Servlet技 術,因此本文設計的排水管網信息管理系統選擇使用Tomcat服務器運行和發布。
    本文選擇的Tomcat版本為Tomcat7.0版本,是Tomcat6.0.x的改進版,實現了對 Servlet3.0、JSP2.2 和 Web Socketl.O 的支持凹。
    4) 通訊服務器選擇
    市場上目前已有許多JMS消息中間件產品,例如開源的Active MQ[23](Apache), HometQ(JBoss社區研發)以及一些專有的如 Web-Sphere MQ(IBM公司),Java Sun MQ(SUN公司),OpenJMS (The OpenJMS Group)0綜合各家產品的性能,考慮選擇 Apache公司的Active MQ,它完整實現了 JMS1.1和JavaEE的JMS,兼具了事務、 存儲轉發、持久化等良好性能。ActiveMQ目前的版本已發展至5.9版本,它的優良 性能得到了眾多企業的認可,是目前最流行的企業級消息中間件Bl。因此本文設計的 排水管網信息管理系統采用ActiveMQ來保障消息通訊。
    3.2架構分析
    Web應用程序開發內容復雜,但是又具有一定的共性,為了提高軟件開發效率,就 產生了 “框架”這一概念。框架就是一組協同工作的類,它們構筑了一個可重用的設 計給特定類型的軟件。軟件的框架是提取了在項目軟件開發中特定功能軟件的共性而 形成的體系結構,不同領域的軟件項目有著不同的框架類型。框架中實現了對軟件的 共性部分的提取,所以在采用了框架的軟件開發過程中,代碼無需從頭編寫,只需在 框架的基礎上,做適當的調整和開發工作即可滿足要求。因此提高了軟件開發的質量, 降低了開發成本,縮短了開發時間[均。
    目前有許多公司組織提供了功能各異的JavaEE平臺開源框架,這些框架能夠簡化 Web開發的工作,如Struts2^ Spring3、Hibemate3等。隨著框架技術的不斷革新,目 前主流的開發模式是將這些框架結合起來形成一套完整的Web開發架構的開發方式。 本文選用的SSH2架構是將Struts2、Spring3和Hibemate3三個框架整合的Web開發架 構。SSH2架構是目前眾多軟件企業主流的應用技術,也是Java EE未來發展的趨勢西。 圖3-2為SSH2架構圖。
     
    圖3-2 SSH2架構圖
    該架構采用經典的JavaEE三層架構(表現層、業務邏輯層和數據訪問層)。其中 Strust2做表現層,實現表現層與業務邏輯層的交互,調用業務邏輯層,并將業務數據 返回給表現層展現。Spnng是框架的核心,它貫穿整個業務邏輯層,實現對表現層、 業務邏輯層、數據訪問層的無縫整合。Hibernate作為數據訪問層,通過實體關系映射 工具(JPA)將關系型數據庫的數據映射成對象,這樣就可以采用面向對象方式操作數據 庫,數據訪問層實現與實體對象的交互。該層封裝了數據庫的增、刪、查、改的操作。 整個SSH2框架與傳統的SSH框架相比,實現方式更加簡單和便于開發[2譏下面SSH2 架構的各部分框架做詳細說明。
    一、Struts2 框架
    Struts 2是Struts繼Struts 1后推出的新一代產品,是將Struts 1和WebWork技術進 行了合并形成的全新的Struts 2框架El。Struts 2與Struts 1的體系結構有著較大差別。 主要表現為Struts 2以WebWork技術為核心,主要利用攔截器的機制來處理用戶的請 求,即客戶端瀏覽器發送請求,經過過濾器之后進入Filter Dispatcher, Filter Dispatcher 確定其調用哪個Action,在調用執行Action的前后都需要進過一系列攔截器實現。通 過這樣的機制分離了業務邏輯控制器和Servlet API,所以可以將Struts 2理解為 WebWork的更新產品。
    Struts2工作流程:
    1)客戶端向Web容器發起HTTP請求;
    2)當Web容器接收到請求后將其傳遞給一系列的過濾器:包括流程(Action Context Clean Up)過濾器,Other filters(Site Mesh, etc);
    3)當請求通過FilterDispatcher核心控制器,它通過調用Action映射器(ActionMapper) 確定請求調用的是哪個Action, Action映射器返回一個收集了 Action詳細信息的
    ActionMaping 對象;
    4)接著FilterDispatcher將控制權給Action代理器(ActionProxy), Action代理器調用 配置管理器(ConfigurationManager),從配置文件中讀取配置信息(Struts.xml),通過該配 置文件找到對應的Action處理類,然后創建Actionlnvocation對象;
    5)ActionInvocation對象在調用Action之前會依次的調用所用配置攔截器棧 (Interceptor N),將攔截器逐個執行,Action處理完畢后會返回結果字符串, Actioninvocation將負責查找結果字符串對應的(Result),然后執行這個Result , Result 會調用一些模版(JSP)來呈現頁面;
    6)在Result執行之后,攔截器(Interceptor N)又獲得控制權,按照相反的順序回到最 后的一個攔截器,再回到視圖〔2930]。
     
    二、Spring 框架
    Spring是JavaEE框架的一種,它是一個輕量級的框架,可以不依賴于容器就能運 行。它基于 IoC(Inversion of Control)和 AOP(Aspect Oriented Programming)的思想,能夠 整合Java EE的眾多框架如Struts> Hibernate> Webwork等。因此許多的Java EE應用, 都會選擇使用Spring容器來管理應用中的組件,以降低它們之間的耦合度Pl Spring 主要包括以下七個模塊,如圖3-4所示:
    1)Spring Core Container 核心容器
    核心容器提供Spring框架基本功能,BeanFactory是它的主要組件,使用控制反轉 (IoC)模式,BeanFactory實現將程序代碼與應用程序的配置和依賴性規范的隔離, BeanFactory支持兩個對象模型:單態和原型,BeanFactory的概念是Spring作為IoC 容器的基礎。IoC使得框架代替應用程序代碼實現處理事務的功能,Spring框架中必須 設置的依賴關系是通過JavaBean屬性和配置數據來體現的【詞。
     
    圖34 Spring模塊圖
     
    2)Spring context
    Spring context是一個配置文件,用來提供上下文信息給Spring框架。Spring context 包括企業服務,如 JNDI(Java Naming and Directory Interface), EJB、電子郵件、校驗和 調度功能。
    3)SpringAOP
    SpringAOP模塊通過配置管理特性直接將AOP功能集成到了 Spring框架中,所以 通過Spring框架可以輕松的管理任何支持AOP的對象,Spring AOP模塊提供事務管理 服務功能給基于Spring的應用程序中的對象,通過SpringAOP,就可以將聲明性事務 管理集成到應用程序中而不依賴EJB組件。
    4)Spring DAO
    Spring DAO(Data Access Object)提供了 JDBC的抽象層,它可以消除冗長的JDBC 編碼,還可以管理不同數據庫廠商拋出的異常錯誤信息,減少了異常代碼的編寫量。
    5)Spring ORM
    Spring 框架植入了較多 ORM(Object/Relation Mapping)框架,提供了如 JDO(Java Data Object)>Hibernate和iBatis SQL Map的ORM對象關系工具。他們也同樣需要支持DAO 異常層次結構和Spring的通用事務。
    6)Spring Web
    Spring Web提供了基本的面向Web的綜合特性,如Multipart功能。使用Servlet監 聽器對上下文Context以及面向Web的Application Context進行初始化。當Spring與 Webwork或Struts 一起使用時,SpringWeb包還可以用來結合雙方功能。Spring Web模 塊還簡化了將請求參數綁定到域對象的工作,以及處理多部分請求的工作。
    7)Sprmg MVC
    Spring MVC(Model View Controller)可以全功能的構建三層MVC的Web應用程序的 實現。Spring MVC框架通過策略接口成為一種可高度配置的框架,MVC容納了大量 的視圖技術,其中包括JSP、Tiles、iText、Velocity等。
    在任何的Java EE服務器中都可以應用Spring框架,Spring框架的大多數功能在不 受管理的環境也適用,Spring的核心理念是支持不綁定到特定Java EE服務的可重用業 務和數據訪問對象。因此,對象便可在許多的Java EE環境(EJB或Web)、測試環境、 以及獨立應用程序之間重用。
    三、Hibernate框架
    Hibernate是一個簡化數據庫操作的第三方開源工具,它實現了 ORM,即在Java對 象與關系數據庫之間建立某種映射,這樣當具體的操作數據庫的對象時,就不需要使 用繁復的SQL數據庫操作語句〔河。下圖3-5為Hibernate的工作原理。
     
    圖3-5 Hibernate的原理
    Hibernate是一個開源框架,它非常輕量級的封裝了 JDBC,使得人們可以很容易地 使用對象的編程思維來操作數據庫。在任何JDBC場合Hibernate都可以適用,如Java 的客戶端程序,或Servlet、JSP的Web應用。其中最能體現它的特點的是:在應用EJB 的 Java EE 架構中,Hibernate 可以取代 CMP(Container-Managed Persistence),完成數據 持久化的工作oHibernate的核心接口一共有5個,分別是:Configuration、Query、Session、 Transaction和SessionFactory。利用這些接口,使得Hibernate能夠存取持久化對象,同 時也可以進行事務控制〔叭Hibernate的流程如圖3-6,在程序運行起來之前,Hibernate 會首先讀取Hibemate.cfg.xml配置文件以及xxx.hbm.xml映射文件,并將其裝載到 Configuration類,通過讀取裝載的內容Configuration類會產生SessionFactory對象,然 后SessionFactory對象會新建Session對象,在Session中可以對PO進行增刪改查等操 作。如果操作出現異常,就會進行回滾,若無異常則會更新數據庫[珂。
    Hibernate可以全面實現面對對象的思想,使開發過程對象化,取代傳統的使用SQL 語句操作數據的以數據庫為中心的思想,它具有事務性和持久化對象等優良性能㈢], 另外Hibernate還有移植好、沒有侵入性等特點,同時它還提供緩存機制,提供一級緩 存和二級緩存。綜上,Hibernate具有良好的性能,所以選擇Hibernate作為系統的數據 庫訪問層。
     
    圖3-6 Hibernate的流程
     
    3.3Oracle數據庫的遠程訪問
    3.3.1Oracle 數據庫
    Oracle數據庫是一個功能強大、應用廣泛的大型分布式數據庫管理系統,具有分布 性、邏輯整體性、分布式計算、透明訪問、均衡網絡負載和可靠性較高的特性,它對 分布式事務、數據倉庫有很強的處理能力,提供了一套有效的機制來保證數據的一致 性、完整性和安全性【"I。
    本文設計的排水管網信息管理系統主要采用Oraclellg數據庫,由于數據庫與系統 安裝在不同的服務器中,需要實現數據庫遠程訪問,在此Oracle數據庫的訪問采用基 于 JPA+Spring+ Hibernate 的方式實現。
    在遠程訪問之前首先需要配置Oracle數據庫的Oracle Net Configuration Assistant o Oracle Net Configuration Assistant 是 Oracle Client 中的一個小組件,是配置和管理 Oracle網絡環境的_種工具。Oracle Net Configuration Assistant中可以實現對Oracle配 置服務和監聽。具體配置Oracle網絡服務名過程:首先添加一個Oracle網絡服務名orcl, 協議TCP,主機名127.0.0.1,測試連接,輸入用戶名與密碼,連接成功說明網絡服務 名配置成功。這一步是對數據庫遠程訪問的基礎步驟,在接下來的程序訪問數據庫時 只需配置數據庫所在的服務器IP和端口以及用戶名密碼等信息就可以實現對數據庫的 遠程訪問。
    3.3.2JPA
    JPA即Java Persistence API,是EJB3規范中負責對象持久化的應用程序編程接口, 它介于業務邏輯層的持久化對象與實現數據持久化的Java EE框架之間,如圖3-7所示, 它定義一系列的注釋。給實體類添加適當的注釋可以在程序運行時告訴Hibernate如何 將一個實體類保存到數據庫中以及如何將數據以對象的形式從數據庫中讀取出來[38]。
     
    圖3-7 JPA在系統架構中作用
    JPA1.0 是 JSR-220(JavaSpecificationRequests-220)規范的一部分,在 JSR-220 中規定 實體對象(EntityBean)由 JPA 進行支持。后來,JPA2.0 遷移到 JSR-317(Java Persistence 2.0),已經不局限于EJB3.0,而是作為POJO(Plain Old Java Object)持久化的標準規范, 可以脫離容器獨立運行,開發和測試更加方便[39】。
    JPA的主要API都定義在javax.persistence包中。具體內容見圖3-8, JPA與Hibernate 有許多相通之處,通過表3-1可以很明顯的看出來。
     
     
    圖 3-8 javax.persistence 包的內容
    JPA維護一個持久化上下文(Persistence Context),在Persistence Context中維護實體 的生命周期。主要包含三個方面的內容:
    1)ORM元數據,JPA支持描述對象關系映射的形式有annotion或xml兩種。
    2)實體操作API,實現對實體對象的CRUD(Create、Read、Update> Delete)操作。
    3)査詢語言,制定了面向對象的查詢語言JPQL(Java Persistence Query Language)»
    表3-1 Hibernate與JPA對應關系表
    org.hibemate javax.persistence 說明
    cfg. Configuration Persistence 讀取配置信息
    SessionFactory EntityManagerFactory 用于創建會話/實體管理器的
    工廠類
    Session EntityManager 提供實體操作API,管理事
    務,創建查詢
    Transaction Entity Transaction 管理事務
    Query Query 執行查詢
    JPA只是規范了 Java持久化的官方標準,JPA并不是一項技術,本身不能完成任 何事情,使用JPA標準具有以下優點。
    1)可持久化對象,JPA可以持久化復雜的Java對象,并能夠通過JPA專用的查詢語 言JPQL實現復雜的數據庫查詢。JPQL是一種類似于SQL的面向對象的查詢語言。
    2)規范標準化。JPA是由JCP(Java Community Process)組織發布的,同時它也是Java 組織官方規定的統一 API,目前已有多種框架都支持JPA標準,系統使用JPA時可以 自由選擇支持JPA標準的框架,并且這些框架可以自由替換。
    3)使用便捷,傳統的ORM多使用xml配置文件,而JPA使用注釋(Annotation)定義 Java對象與關系數據庫之間的映射,因而JPA使用起來比ORM要方便,使用JPA時 可以不用關注底層使用是什么數據庫廠商提供的數據庫。
    4)事務性、大數據量,JPA底層使用關系數據庫進行存儲,因此它也具備關系數據 庫的特點,如事務性,并發訪問,數據完整性,大數據量等wo】。
    3.4Java消息通訊
    本文設計的排水管網信息管理系統采用Java開發,系統的通訊主要為Java消息通 訊,下面分析Java消息通訊的相關技術。
    3.4.1 JMS 規范
    JMS(Java Messaging Service)是一種Java平臺上有關面向消息中間件的技術規范, 它為Java程序提供了一種創建、發送、接收和讀取企業級系統消息的一般方法,其目 的是提供給消息系統客戶一個固定的接口,而且與底層的消息提供者無關。這樣客戶 端的應用程序不僅可以在不同的機器和操作系統中移植,而且能在不同的消息系統產 品之間轉移⑷]。
    JMS應用通常包括:供給者(Provider)、客戶(Clients)、消息(Messages)o其中,供給 者(Provider)就是指能夠實現JMS接口的消息系統,它還能實現控制管理功能。客戶 (Clients)是由用戶編寫的代碼程序,用來生成和消費消息,而消息(Messages)就是用來 通信的信息。
    JMS支持兩種消息模型:點對點PTP(Peer to peer)也叫隊列模型和發布/訂閱 (Publish/Subscribe)模型。
    PTP模式,此種方式以JMS提供方提供的消息隊列Queue為基礎,客戶端與消息 隊列是一一對應的,客戶端將消息從自己的消息隊列中讀取出來,然后發送至接收方 的消息隊列中,然后接收方再從消息隊列中讀取消息,通過消息隊列這種機制,使得 接收方和發送方不用直接相連就可以通信,即實現消息的異步傳輸。消息隊列中的消 息只能對應一個消息接收方,而且消息隊列會在消息接收方接收消息后才將消息刪除。 同時消息接收方和消息發送方二者在時間上并沒有嚴格的順序要求,若接收方不在運 行狀態,發送方還是可以向其消息隊列發消息,當接收方開始運行時消息就會被傳送 給它。接收方還確認消息的成功處理。該模式示意圖如圖3-9所示:消息發送方Sender, 發送消息給消息隊列Queue,然后消息接收方即Consumer接收消息。
     
     
    Pub/Sub模式,在這種模式下一條消息可以被多個訂閱方訂閱,消息的發布方發送 消息向相應的主題,而這個主題可以支持多個訂閱方同時訂閱,他們都會收到消息。 這種方式的特點是:一條消息被多個訂閱方消費,訂閱方和發布方存在時間相關性, 這種模式存在著消息的時間從屬性,即一個消息訂閱者只能接收到它訂閱后該消息源 (主題)所接收到的消息,為了緩解這種時間從屬性,JMS API引入了持久式的訂閱模式, 使得消息的訂閱者可以在關閉后重新建立,而訂閱過程則一直存在阿。發布/訂閱模式
    如3-10圖所示,一個主題可以接受多個訂閱方訂閱,同時它也可以接收多個發布方向 它發送消息。
     
     
    3.4.2Active MQ
    JMS只是提供了消息的規范和接口,但是并不能實現消息的傳遞,JMS Provider才 是實現JMS接口的MOM(Message Oriented Middleware),市場上目前已有許多JMS消 息中間件產品,例如開源的Active MQ(Apache), HometQ(JBoss社區研發)以及一些專 有的如 Web-Sphere MQ(IBM 公司),Java Sun MQ(SUN 公司),OpenJMS (The OpenJMS Group) o綜合各家產品的性能,考慮選擇Apache Active MQ,它完整實現T JMS1.1和 JavaEE的JMS,兼具了事務、存儲轉發、持久化等良好性能。經過多年的發展,ActiveMQ 目前已經推出了 5.9版本,越來越多的企業認可它的優良性能,甚至直接捆綁在自己產 品中,是目前最流行的企業級消息中間件砂。
    木文采用基于JMS Provider的開源Active MQ消息中間件實現數據交換通訊。Active MQ能夠保證交換信息的高度安全、可靠,支持消息重發和記錄日志,減少編寫應用 的復雜度[他。它的主要特性:
    1)ActiveMQ提供了多種程序語言接口:諸如Java, C, C++, C#等,同時支持多 種應用協議編寫客戶端,如 Open Wire, WSNotification, AMQP(Advanced message queuing protocol)o 支持多種網絡傳送協議,諸如 TCP^ UDP、SSL(Secure Sockets Layer) 等。它還提供了針對目前流行的操作系統的不同版本,如:Linux版本,Unix版本和 Windows 版本。
    2)支持JMS1.1和JavaEE規范。可以自動的部署到符合JavaEE規范的服務器上。
    3)Active MQ支持Spring框架,可由Spring對其進行配置管理。
    4)從設計上支持消息持久化。支持PTP和Pub/Sub兩種模式。
    5)支持其它應用程序調用自身內嵌的JMS provider[454647]。
    由于ActiveMQ具有以上多種優點,所以本文設計的排水管網信息管理系統選用它 做為通訊服務器,本文使用Spring對其進行配置加載,采用PTP的消息傳遞機制。
    3.4.3Apache Camel
    為了實現系統的信息集成平臺與報警服務平臺的跨平臺跨協議的消息傳遞需求,系 統選用了 Apache Camel這一開源框架。
    Apache Camel是Apache基金會下的一個開源項目,它是一個基于規則路由和處理 的引擎,提供企業集成模式的Java對象的實現,通過應用程序接口或JavaDSL(domain specific language)來配置路由和處理的規則鯛。Apache Camel使用URI(Unifonn Resource Identifier)來描述系統組件,使得它可以非常方便的與各種傳輸或消息模塊進 行交互,其中包含的模塊有:HTTP、ActiveMQ、JMS、JBI(Java Business Integration) 等,這些模塊是采用可插拔的方式進行工作的。Camel是一個代碼現行的工具,它允 許開發者在無需學習廠商定制和復雜底層技術的情況下進行精密的大規模集成。它分 離了操作邏輯與傳遞邏輯,可以用做處理來自不同源的事件和信息。Apache Camel的 核心非常小,可以很容易的將其集成到各種Java應用中。
    Camel的幾個核心元素:
    1)endpoint
    Camel中的endpoint類似Web服務中的endpoint,指的是某個資源的具體位置□ Camel 使用URI來定位endpointo
    2)Component
    Component是指Camel的內置組件,Component用以提供對特定協議的資源訪問支 持,Camel提供了對多種協議的訪問支持,如Active MQ Component就實現了訪問以 Active MQ提供的JMS的能力。
    3)Routing Language
    Camel提供了 3種方式來定義路由:Java語言兼容的DSL;兼容Spring語法的xml 配置文件;ScalaDSLo
    本文的路由語言采用Spring的xml實現,endpoint主要指向不同傳感器上傳的數據 資源位置,以及ActiveMQ的產生消息隊列,Component主要提供對FTP、ActiveMQ、 JPA等的支持。
    3.5本章小結
    本章主要對系統采用的相關技術方案進行說明,介紹了系統開發環境的搭建,包括 對開發工具的選擇、數據庫的選擇、Web服務器的選擇、通訊服務器的選擇。接著對 系統的SSH2開發架構進行了詳細闡述,并介紹了 Oracle數據庫遠程訪問技術,以及 對Java消息通信的相關技術說明。
    第4章數據庫設計
    4.1數據庫表結構設計
    為滿足排水設施管理處對系統大量數據的存儲要求,系統需配置專業的數據庫服務 器,關于數據庫軟件的選擇,由于Oracle llg數據庫軟件具有穩定性好和可靠性高等 特點,十分適合用作大型企業數據庫。系統數據庫基于Oracle llg設計,系統數據庫 名為OTC1。
    4.1.1數據庫表設計過程
    設計數據庫表過程如圖4-1,第一步需要確定字段,主要包括確定關鍵的列名,及 相應的數據類型和長度等,在這一步中根據了排水管網信息管理系統的數據采集方案 采集到的信息,初步確立系統所需的關鍵的列名,如數據值和站點值等;接著需要創 建和確定數據類型,本文系統主要設計的數據類型有:字符串型VARCHAR、時間戳 型TIMESTAMP、表示數據的NUMBER和FLOAT型;第三步確定主鍵,確定各表的 自增主鍵,如站點ID和數據ID等;第四步制定相關的約束條件,確定哪些列允許空 值,并制定約束條件與列缺省值以保證數據的一致性,最后在確定了各個表的關系后, 創建表包括表的外鍵等內容。
     
    根據排水處對系統的需求,設計數據庫主要分為6個模塊,包括監測站點相關表、 監測數據相關表、監測因子相關表、權限管理相關表、日志留言相關表、接警管理相 關表。下面分別介紹各個模塊相關表結構設計。
     
    4.1.2監測站點相關表結構
    設計站點表及其相關信息表結構(ER圖)如圖4-2,與站點相關的表包括站點因子表 WSS_SITE_FACTOR表,站點因子報警信息WSS_SITE_FACTOR_ALERT表,站點圖 片 WSS_SITEIMG 表,站點位置 WSS L0CAT10N 表,站點設備 WSS SITE DEVICE
    表,站點用戶WSS_SITEUSER表以及站點狀態WSS_SITE_STATUS表。各個表之間
    結構關系如4-2所示,可通過SITEJD和LOCATIONJD查詢到站點的各個相關信息。
     
    4.1.3監測數據相關表結構
    監測數據相關表結構(ER圖)如圖4-3所示,其中WSS_DATA表存放監測數據的主 要內容,包括它的對應的數據屬性表WSS_DATAATT的ID,監測因子,監測數據值以 及有無修改等標識。每條監測數據對應一個主鍵1D,在查詢某個站點某因子某時間的 數據時需要聯立WSS_DATAATT表進行查詢。之所以不將站點數據時間與站點ID統 一放在WSS_DATA表中的原因是為了實現主表的結構簡化,因為同一時間同一個站點 可能會發來多條數據,這樣的設計為了避免主表內重復的數據過多;WSS_DATAATT 表主要記錄監測數據的監測時間,所屬站點,以及審核狀態;WSS FACTOR表主要存
    放監測因子的信息,監測因子包括液位、流速、以及雨量等;WSS_SITE表是在上文
    中已經敘述過,不再贅述。
     
     
     
    圖4-3監測數據表結構
    4.1.4監測因子相關表結構
    監測因子相關表包括:監測因子WSS_FACTOR表,監測因子單位WSS_UNIT表, 監測因子類型WSS FACTORTYPE表,監測站點因子表WSS_SITE_FACTOR表,監 測因子WSS_FACTOR表包括的信息有:因子ID、檢測因子編號、因子名、因子類型、 精度、測量單位、因子狀態。監測因子包括液位、流速、以及雨量等。通過查詢 WSS_FACTOR可知當前采集到的數據對應的是哪種因子。監測因子表相關結構(ER圖) 設計如圖4-4所示。
     
     
     
    圖4-4監測因子表相關結構
    4.1.5權限管理模塊相關表設計
    設計系統權限管理的相關表結構(ER圖)如圖4-5,包括WSS_USERROLE用戶角色 表,用戶表WSS_USER,角色表WSS_ROLE,菜單表WSS_MENU,角色菜單表 WSS_ROLEMENU,通過這樣的設計,實現對用戶權限的區分管理,用戶權限分3檔, 最高級的是超級管理員權限,可以管理所有菜單;管理員權限次之,可對系統進行一 般管理;最低的權限為游客權,限可以瀏覽系統數據。
     
    圖4-5權限表相關結構
     
    4.1.6日志和留言庫相關表設計
    設計相關日志和留言表是為了監視系統運行狀態。日志和留言庫表結構(ER圖)設計 如圖4-6,主要包括:系統日志表WSS_LOG,留言表WSS_MESSAGE,以及 WSS_COMMUNICALLOG數據傳輸日志表,由于系統日志留言功能需要存儲相應的用 戶名和站點等信息,所以將USER_ID, SITEJD以及LOCATIONJD設計為各個留言 信息表的外鍵,系統日志表WSS_LOG包括用戶信息,IP信息,時間日期信息,以及 動作描述,區域信息等,通過查詢該表可以得知系統運行日志。留言表為 WSS一MESSAGE,用戶可以通過系統留言功能編輯留言內容,留言內容將被保存在 WSS_MESSAGE表中。WSS_COMMUNICALLOG數據傳輸日志表,該表存儲了站點 數據傳輸的日志信息。
     
     
    -eS-ID=FATHER_[D
    圖4?6日志和留言表相關結構
    4.1.7接警管理相關表結構
    接警管理相關數據庫設計(ER圖)如圖4-7所示,主要包括警報級別ALERT_LEVEL 表,報警類型表ALERT_TYPE,警情接收表ALETRT_RECEIVE,報警站點表 ALERT_SITE。由于系統報警管理功能涉及相關站點及區域信息,所以設置 LOCATION ID以及SITEJD為外鍵。系統警報級別為六級,從低到高依次為:三級 預警、二級預警、一級預警、三級警報、二級警報、一級警報。接警管理相關數據庫 表對應排水管網信息管理系統中的接警管理功能,用以存放接警管理的相關數據信息。 用戶可通過接警管理功能新增接警信息,可以輸入報警時間、警情類型、級別、區域 和警情內容來發布報警消息。
     
     
    圖4-7接警處理表相關結構
    4.2本章小結
    本章主要設計了系統監測數據庫的庫表結構,包括監測站點相關庫表結構設計、監 測數據相關庫表結構設計、監測因子相關庫表結構設計、權限管理模塊、日志和留言 模塊以及接警管理模塊的相關庫表結構說明。這些數據庫都對應存放著管網信息管理 系統的各個數據,是系統的基礎。
    第5章系統實現
    本文設計的基于物聯網技術的排水管網信息管理系統主要設計實現三部分內容,即 信息集成平臺、報警服務集成平臺以及管網信息管理系統。信息集成平臺負責實現將 采集設備的數據轉換成統一的數據格式,并傳送給監測系統數據庫,同時實現與下穿 隧道積水模擬系統的交互;報警服務集成平臺負責從管網信息管理系統中抽取報警數 據,并發送給GIS展示;管網信息管理系統實現監測數據的綜合管理,包括數據存儲、 查詢、管理、統計分析等。下面分別闡述各個部分的設計實現。
    5.1信息集成平臺
    信息集成平臺實現將傳感器設備采集到的數據轉換成統一的數據格式,并傳送給系 統數據庫,同時信息集成平臺還實現了與下穿隧道積水模擬系統的交互。該功能主要 通過Apache Camel實現,信息集成平臺采用xml語言配置路由路徑。在使用Apache Camel前需要給項目中添加Camel的jar支持包。
    以處理Sigma940流量計數據采集過程說明信息集成平臺的對傳感器數據采集處理 的Camel路由設計,流量計站點數據存儲在Microsoft SQL Server數據庫的表R0001中。 對應的站點號為0029o設計代碼如下: 定義routelD,啟動R0001數據檢查定時器。
    <route id="Timer_R0001" errorHandlerRef="errorLog"> 定義route源。
    <from uri="timer://Timer_R0001 ?period=30000" />
    route處理過程,dbdataprocess中實現將數據從數據庫中取出并轉換為xml格式。
    <camel:bean ref="dbdataprocess" method="ProcessDb2('R0001','0029')"></camel:bean> 定義route目的地為CDPS.PQUEUE消息隊列。
    <camel:touri="jms:CDPS.PQUEUE?deliveryPersistent=true"></camel:to>
    信息集成平臺與下穿隧道積水模擬系統的路由交互設計如圖5-1,按照定時器模式 運行,輪詢計算當前下穿隧道的積水液位和管道液位,信息集成平臺從消息隊列 CDPS.SIMULATION中得到雨量數據存儲到本地SWMM模型文件下的series.txt中, 然后啟動模型計算,最后又將模型計算結果通過調用sessionFilter處理,最終將結果以 TCP socket形式廣播到下穿隧道3D模型,通過這樣的機制,下穿隧道3D模型就可以 實現對當前隧道積水情況的模擬。
    camel- route_s i m .x m l 屈
    —…禺洱鬲童錢彖蘇存 —上篦一〉
    <rov.r.e 11= H-S£T_SXMZL2r, ezzarH.andlexRef= ftsrrorLagtf>
    CfrcTf. ; CDPS. / >
    :za ^±=nfHe://C:/sv^files?fileT^>.e=£:s:2:ies. txt,f
    < x曲二:二空玄&薩="得到7新'的蒸昱數據 n><; C5iJT£l : 10^> <—啟動訃算一〉
    vc總汎乞::bs:s.r: ref= rfisod^2Caltr i!ietricd= ^tsrrCsiculsti^n if><.- osf.«:.1 : ?:蘭殳::;
    <a2JT.SU;g message3 計算魏果z ? ) "3 c:carr.el: 1cg>
    * Z v*
    -.、. _、•—》3 z
    <:-就模型計算結果中讀出數據,并發送-->
    - <csir;el:
    : f ron. ^ri=Hfj.2e;//c:.7f1 ?delsy32-^(500;na 15-e5sispeNs^c-^cut:, txtMx. ; frou;>
    : l.c<g金己眈&僅定二"掃捲樸型婪篤裁出文杵©比.tJit m carrel: Lcc>
    <car<L21:bea^ reS = ^sss'sionFil ter B method- ngefcDa ta rf></c^r.sl:&ean>
    <oa:msmm Biessage= f,S {bodyj n >
    < -: rc^e>
    圖5-1信息集成平臺與下穿隧道積水模擬系統的路由交互設計
    5.2報警服務集成平臺
    報警服務集成平臺主要實現從管網監測綜合管理系統中抽取報警數據,并發送給 GIS展示。該功能主要通過Apache Camel實現,采用xml語言配置路由路徑。 通訊服務器AcitveMQ配置如下:
    協議:TCP;
    IP地址:通過配置文件配置;
    端口: 61616;
    消息隊列:CDPS.WARNING o
    報警服務集成平臺的部分路由設計代碼如圖5-2所示。
    camel-route.xml
    = 啟戲芷旳鑒,走霸蔣工祜糕恙蘑惠申詡頁瞽信惠宏注到匸三訥暮扁険了沖蕓;::穢…次一>
    - <rc'^te Id— rrsendAlertSi telnfoTizser?f e x r □ r Han dl e r Re f =rt error Log' TT>
    <frcr. Qzi= ntimer: //sendJ^lertSi t^In.foTi^erPperiod-SQQOQTt /' >
    <csrr.e 1.: Loa i^essa$已="啟動述點報'警信息發送 "XZc-a.rr.«: 1: 1ca>
    <:— >理疵量計的數據庫一勢
    :bsar: ref- ,fdbd^reprocess ” Bethoc^= ftProaessDbTr></ :
    <oar.el: log iaessage= ”笈送.的站點攝警信息:$ {body} ft></ c1:1 og>
    : < c^otcs >■
    ma
    <s2.siple> ${body} == * none1 </
    •mn澆2. j A:? x泌aqb "無逖點報警數據發送rVc.air.eL : lc=g>
    I
    j - <ot;.h.erwxse>
    <car.aI: to u.zi= njms: CDPS.更越密Z那G?deliveryPer^istenr-fsIserr></ ce■:m壬 1: t o>
    </o*herwise>
    l 岌?芒烈U 2. 》
    </rcucs>
    圖5-2報警服務集成平臺與管網GIS平臺路由設計
    5.3管網信息管理系統
    管網信息管理系統是系統核心部分,實現監測數據的綜合管理,包括具體功能包括 站點地圖、實時監測、數據管理、接警管理、數據報表、數據分析、報警管理和系統 管理八大塊。管網信息管理系統的是JavaWeb項目。項目實現過程包括對于SSH2框 架整合,以及對各個功能的分層設計,實現操作數據庫相關功能的網頁設計需要包含 的各個分層設計如圖5-3,包括:網頁界面設計實現(jsp頁面);網頁在Struts2中的 Action定義,即用戶網頁動作的定義;還需要有業務邏輯類的接口定義service.api和業 務邏輯類的接口實現類定義service.impl;以及實體訪問類接口定義dao.api層,和實體 訪問類的接口實現類定義dao.impl,同時還要有網頁對應的實體類的定義。
     
     
    5.3.1框架整合
    管網信息管理系統采用My eclipse 9.0開發,My eclipse 9.0提供了較全面的框架支 持,可以較好的完成系統框架搭建。本文設計的管網信息管理系統使用SSH2框架, 具體搭建步驟如下:
    一、 創建Web項目
    在 MyEclipse 中創建 Java Web 工程項目,J2EE Specification Level 選擇 Java EE 5.0。 這樣創建成功后的項目默認添加了 JRE System Library也就是JDK1.6支持,以及Java EE5.0支持。
    二、 添加Struts框架
    1)右鍵點擊項目名稱,選擇MyEclipse->Add Struts Capabilities...給項目工程添加 Struts 支持。
    2) 在彈出的對話框中選擇Struts版本號為struts2.1, Struts 2 filter name默認為 struts2, Struts2filter的url映射,選擇/*。系統會把Struts2框架在 Web.xml中自動添加。
    3) 是在項目中添加對Struts2的庫支持。選擇使用默認值。點擊Finish可以看到 MyEclipse為項目添加了 struts.xml的配置文件。
    三、 添加項目的JPA(Hiberoate)支持
    1) 將需要添加的庫添加到項目中,右鍵點擊項目名,Build Path>Config Build Path>Add Extenal JARs 將 Spring, Hibernate, Hibernate 的 JPA 支持包和 Oracle 的數據 庫驅動包加入。
    2) 在src目錄下建立一個名為META-INF的文件夾,在META-INF新建文件為 persistence.xmlo 在 persistence.xml 文件中設置 JPA 的相關參數。persistence.xm 1 代碼內 容:
    <?xml version=n1.0n encoding="UTF-8n?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www. w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
    http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version=n2.0">
    <persistence-unit name=:npersistenceUnit" transaction-type=nRESOURCE_LOCALn>
    <provider>org.hibemate.ejb.HibematePersistence</provider>
    <properties>
    <!- JPA的參數信息->
    <property name="hibemate.show_sql" value="true" />
    <property name=',hibemate.fbrmat_sqr, value=nfalse"></property>
    <property name=nhibemate.use_sql_comments" value="false"></property> <property name=:"hibemate.jdbc.fetchsize" value=" 1 OOn></property> <property name=Mhibemate.jdbc.batchsizen value="30"></property> <property name="hibemate.max_fetch_depthM value=n3"></property>
    <!— 2級緩存一>
    <property name ="hibemate.cache.use_second_level_cache" value =nfalse" /> </properties>
    </persistence-unit> </persistence>
    四、 添加Spring框架
    1) 在Web-INF目錄下建立一個名為applicationContext.xm】的文件。在文件 applicationContext.xml 中添加 Spring 的配置說明,并配置 ActiveMQ、Hibernate 和 JPA 的相關內容,配置文件內容見附錄。
    2) 在Web.xml中添加Spring監聽器。
    <context-param>
    <param-name>contextConfigLocation</parani-name>
    <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <listener> <listener-class>org.springframework.Web.context.ContextLoaderListener</listener-class>
    </listener>
    框架結構整合完畢后需要設計對應的系統功能模塊,管網信息管理系統是系統核心 部分,實現監測數據的綜合管理,包括具體功能包括站點地圖、實時監測、數據管理、 接警管理、數據報表、數據分析、報警管理和系統管理八大塊。管網信息管理系統是 JavaWeb項目,項目采取分層的方式開發,系統各個功能模塊功能描述見表5-1,可以 看出系統頂級包的按照功能劃分為5個部分,分別為核心core包、數據訪問dao包、 實體entity包、服務管理service包、網頁管理web包。
    表5-1系統功能模塊的劃分描述
    模塊標識 模塊名稱 模塊功能
    core 核心包 實現基本的與系統相關的功能,提供工具類和公用接口
    dao 數據訪問包 數據訪問包,實現數據訪問
    entity 實體包 將數據庫中的對象實體化為開發平臺上的類
    service 服務管理包 實現業務邏輯的包
    web 網頁管理包 使用用戶界面相關的包
     
    5.3.2 core包設計
    core包中定義了系統核心類,包括的子包有:dao子包,entity子包,service子包, web子包,exception子包,util子包。下面分別說明。
    1)dao子包
    dao子包包含系統數據庫訪問的基類,包括BaseDao.java和BaseDaoImpl.java,其 中 BaseDao.java 中定義 BaseDao 接口:public interface BaseDao<T, PK>。這里的 T, PK 是泛型,T是Dao訪問的實體類,PK是Dao訪問的entity的主鍵類,通過泛型,可將 子類的實體主鍵傳入,使得子類也可調用基礎Dao的方法,這樣提高了程序的可重用 性。BaseDao實現對數據庫的數據的存儲和刪除,以及執行JPQL語句的功能。
    2)entity 子包
    entity子包包含數據庫實體映射的基類及其他實用類。該包主要包含如下內容:
    ①CustomSequenceGenerator.j ava
    CustomSequenceGenerator類主要功能是為了產生數據庫實體主鍵,包括: configure(Type type, Properties params, Dialect dialect) 〃初W臺化序歹ll ; generate(Sessionlmplementor session, Object obj)〃獲取序歹!J。
    此方法生成的數據庫主鍵長度為20位的VARCHAR型,格式為:DSS+yyyymmdd+9 位十進制數,前三位應排水處要求設為DSS,中間8位是年月日,形如20140304代表 生成該主鍵的日期,后9位十進制數從000000001開始增長,每需要增加一個ID就增 加1。該類類圖如圖5-4所示:
    & Cust OMSequenceGenerat or
    ◎idL融gth : int = 20 { readonly }
    ◎: int = 3 { readonly }
    檢 sub Syst em : St ring = ***
    ? configure (type : Type』 params : Proper!ies, dialect : Dialect)
    O generat e (session : Sessionlmp1ementorobj : Object, ) : Serializable
    圖 5-4 CustomSequenceGenerator 類圖
    ②EntityBase.java
    EntityBase類主要有兩個功能:
    getEntity()//得到一個允許冗余的實體;
    setEntity(Object entity)//設置一個允許冗余的實體。
    該類定義了實體類的基類,是其他實體類的基礎,類圖如圖5?5所示:
    卷 瑟xlaUgl皿2IB : long { readonly }
    ◎ entity : Object
    觀 get Entity () : Object
    總 setEntity (entity : Object)
    圖 5-5 EntityBase 類圖
    ③PageEntity.java
    該類生成分頁的實體對象,主要功能是實現將List記錄分頁展示,每行展示15條 記錄。類圖如圖5-6所示:
    3)exception 子包
    exception子包定義了系統的異常處理類,用來處理系統的異常信息;該包主要包含 如下內容:認證異常類 AuthorityFailedException.java;基本異常類 BaseException.java; 登陸失敗類 LoginFailedException.java; 允許異'常類 PermissionException.java; JSON(JavaScript Object Notation)異常類 PermissionJsonException.java c 其中 BaseException 類繼承于 java.lang.RuntimeException 類,其余的 Exception 類又繼承于 BaseException。
    超PageEntity
    : long { readonly }
    獲 currentPage : int = 1
    尬 totalPage : int = 0
    騎 rowPerPage : int = 15
    徐 totalRov/Count : long = 0
    簸 restDat e : int
    遼 listData : List<?>
    ◎ st art : int = 0
    趣 getCurrentPage () : int
    渤 setCurrentPage (currentPage : int)
    TotalPage () : int
    趣 setTotalPage (totalPage : int)
    a getRowPerPage () : int
    e setRowPerPage (rowPerPage : int)
    遂 get Tot alRowCount () : long
    e set Tot alRowCount (t ot alRow : long)
    G get Re st Date () : int
    發 setRestDate (restDate : int)
    爲 getListData () : List
    趣 setListData (listData : List)
    觀 get St art () : int
    盪 set St art (st art : irrt)
    矗 toString () : String
    圖 5-6 PageEntity 類圖
    4)service 子包
    service子包包含系統服務類的基類:BaseService.java公共服務層接口方法,即與
    BaseDao的相關服務類。
    BaseService.java中的主要功能:
    getBaseDao()〃獲取 baseDAO 方法;
    get(PKpk)//根據ID和實體類型從數據庫中獲取實體對象;
    findByPartJpql(Strmg jpqlString)//根據 JPQL 語句查詢 List 對象;
    find(String jpqlString)〃根據JPQL語句和實體類型查詢數據,并返回一個List對象;
    findByFullJpql(String jpqlString)//根據 JPQL 語句查詢數據,并返回一個 List 對象。
    5)util子包
    util子包定義了系統中用到的常用方法,多為格式轉換函數,該包主要內容如下:
    CalendarUtil.java 獲得當前日期,年、月、日、周等;
    CommonUtil.java 讀取子文件,對數據加密,字符轉換等功能;
    ConverToArray.java——將java中的字符串轉換為數組;
    ConverToJson.java 彳各 List 轉換成 json;
    CookieUtils .java cookie 的增加、刪除、查詢;
    CreatRandom.j ava 產生隨機數類;
    DateTypeConverter.java 日期格式轉換;
    GenericsUtils .java 泛型工具類;
    HandleEmptyUtil.java 該類用于處理空字符串和null;
    LogPropertiesReader.java 日 志屬性讀取;
    QLBuilder.java SQL語句的組合生成;
    QueryResult.j ava 查詢分頁結果;
    ResourceManager.java 系統運行參數設置;
    SiteComparator .java 站點對比排序;
    TimestampTypeConverter .java Timestamp 格式轉換。
    6)web子包
    web 子包定義了系統 action 的基類。包含 BaseAction.java 和 WSSAction.javao
    在Struts2開發中,除了將請求參數自動設置到Action的字段中,通常也需要在Action 里直接獲取請求(Request)或會話(Session)的一些信息,甚至需要直接對JavaServlet Http 的請求(HttpServletRequest),響應(HttpServletResponse)操作。所以設計 BaseAction.java 主要實現這些功能。WSSAction類繼承于BaseAction,又在其中增加了一些Action基 礎的操作,如調用List對象,以及對對象的新建、保存和刪除動作。
    5.3.3entity 包設計
    entity包中定義了數據庫實體映射模型,數據庫中每個表對應一個實體。與數據庫 表結構對應的實體類由MyEclipse的JPA的反向工程功能(JPAReverse Engineering...) 生成。系統生成的實體類列表見表5?2。
    表5-2實體類列表
    類名 意義 類名 意義 類名 意義
    AlertLevel 報警級別 RoleMenu 角色菜單 Data 數據細則
    AlertReceive 接收到的報警 信息 Site 站點 Factor 因子
    AlertSite 報警的站點 SiteDevice 站點安裝的設備 FactorType 因子類型
    AlertType 報警類型 SiteFactor 站點因子 Location 地域
    Communical 通訊日志 SiteFactorAlert 站點因子的報警 Log 日志
    Log 規則
    Device 設備 Sitelmg 站點圖片 Menu 菜單
     
     
    類名 意義 類名 意義 類名 意義
    DeviceFactor 設備監測因子 SiteMonitorTy
    pe 站點的監測類型 Message 留言
    DataAtt 數據屬性 SiteStatus 站點的工作狀態 Unit 因子單位
    SiteUser 站點用戶 SiteStatusCode 站點工作狀態編
    User 用戶
    TargetType 監測目標類型 Role 角色 UserRole 用戶角色
     
    5.3.4dao包設計
    dao包封裝了數據庫訪問方法,每個dao對應一個實體類,dao包包含api和impl 兩個子包,api定義實體訪問類接口,impl定義實體訪問類接口實現類。以系統數據庫 中的數據明細Data表的dao包設計為例介紹Dao層的設計原理。
    dao包中有api子包中DataDao.java接口設計部分代碼如下:
    public List<Data> findDataList(Site site, Factor factor);//定義 Data 實體對象的訪問接 口,由站點名和站點因子查詢出Data實體所對應的數據,并且將其封裝成Data實體對 象,放入List中返回。
    public List<Data> findDataByCondition(Site site, Factor factor, Date start,Date end,int status);//定義Data實體對象的訪問接口,由站點名、因子、起止時間、站點狀態等用戶 輸入的條件查詢Data實體所對應的數據,并且將其封裝成實體對象,放入List中返回。
    心 DataDaoimpljava '二
     
    寫. public Lxst<Data> fxndDacaList (Site site. Factor factor) {
    5uery query = this
    .getEntiryManager()
    .c=ea匸eQaezy(
    ••select d frani Data d xnnex join fetch d.datsAtt as da where 乩&匸口比"+
    **. sice=: site and d. £actcr=:factor ozder by da.datetiise ASCM);
    query. setParajseter (wsit.c", site);
    q^ery.setParaxraeter ("■factor*4, factor);
    return query. getResultLxst ();
    :
    >Override
    poblic List<Data> findDataByCondicion (Sice site, Factor factor, Date start
    Deve end, int status) {
    Q^erv query ■ this.getEntxtyManeger().createQuerv(
    "select d fxcng Data d " $ **inner jcin fetch d.detaAt.t as ds " + "where da.sice^xsice and d.factor®:factor n
    * wand da .dacetiae x : start and da .dateclEte < : end B
    十(scatus == 1 ? **and da .status®!":"”) f "crder by da.datetime ASCB);
    quexy.setPara®eter(wsitew, site); query .set-PaxaEieter (factorw, factor);
    query .set Parejseter (K sz&zz^, start); query .set Peraiseter (^end", end);
    query.setMaxRes'jlcs (200);
    List<Deta> list = query.getResultList(); return list;
     
    圖 5-7 DataDaoImpl.java 設計 對應的dao層中有impl子包中DataDaoImpl.java部分代碼設計如圖5-7。
    本文設計的實體類接口的實現類主要利用JPA的Query實現。通過EntityManager對象 創建Quei了對象來查詢所需數據。所使用的查詢語言為JPA的JPQL語句。
    5.3.5service 包設計
    Service層設計實現系統調用的所有服務類,封裝了所有業務邏輯組件。根據管網信 息管理系統的功能需求,其子包劃分為alertmanagement, maintenance, dataAnalysis, dataAudit, dataQuery, dataService, dataReport, siteMap, utilService。由于篇幅所限, 具體函數實現部分代碼見附錄。
    1)alertmanagement包中負責實現報警管理服務。包括api和impl兩個子包,api子包中 存放接口,impl包中存放接口的實現類。分別對應AlertService.java和AlertServicelmpI.j ava。
    AlertService.java中定義了接 口 : public interface AlertService{}
    AlertServicelmpl.java中通過注入Dao層對象實現對報警級別和報警站點等信息的讀 取。
    2)maintenance包主要實現系統管理的功能,如菜單管理、角色管理其中主要功能, maintenance包的服務類及其功能說明見表5-3所示。包中的服務類都有對應的接口類 和實現類。
    表5-3 maintenance包中主要功能設計
    功能說明 maintenance包中的服務類
    實現接警管理服務 AlertLevelService、AlertReceiveService、
    AlertTypeService
    實現設備及因子管理服務 DeviceFactorService、DeviceService、
    FactorService > FactorTypeService >
    SiteDeviceService
    實現區域管理服務 LocationService、LocationTreeModel
    實現菜單管理服務 MenuService
    實現角色管理服務 RoleMenuService> RoleService>
    SecurityService
    實現站點報警參數管理服務 SiteFactorAlertService、
    SiteFactorConfigService
    實現用戶管理服務 UserService
     
     
    功能說明 maintenance包中的服務類
    實現單位管理服務
    實現站點信息管理服務 UnitService
    SiteService SitelmgService、SiteUserService
    SiteStatusCodeService SiteStatusService
    實現監測類型管理服務 TargetTypeService
    3)dataAnalysis包主要實現數據分析功能。該包包括的服務類及功能說明參見表5-4。 表5-4 dataAnalysis包中主要功能設計
     
    功能說明 dataAnalysis中的服務類
    基礎數據分析功能 環比分析功能 因子K線功能 趨勢分析功能 DataAnalysisService
    ChainDataContainer DataContainer
    KLineDataContainer
    TrendDataContainer
    4)dataAudit包主要實現數據審核功能:包括實現批量審核服務的BatchAuditService 類以及實現逐條審核功能的OneByOneAuditService類。
    5)dataQuery實現數據查詢功能服務,該包中的服務類設計及其對應的功能說明見表
    5-5 o 表5-5 dataQuery包中主要功能設計
    功能說明 dataQuery中的服務類
    報警數據查詢 AbnonnityQueryService、
    AdvancedQueryService、CheckSiteService
    數據庫表接口訪問實現 原始數據查詢及導出功能 DataAttService^ DataService RawDataExportExcelService、 RawDataQueryService、 SiteFactorService
    歷史數據查詢及導出功能 HistoricalDataExportExcelService、
    HistoricalDataQueryService
    日志查詢功能 LogQueryService MessageQueryService
    CommunicalLogQueryService
    6)dataService實現數據服務功能,該包中的服務類設計及其對應的功能說明見表
    5-6o其中的SimulatioaDataSender.java實現將模擬的雨量數據發送到SWMM暴雨洪水 管理模型進行計算的功能。
    表5-6 dataService包中主要功能設計
    功能說明 dataService中的服務類
    羊市街下穿隧道積水情況模擬功能
    實現實時數據查詢功能 SimulationDataSender、
    ReceivedDataValidatorlmpl、
    PeriodicalDataReceiverService
    RealTimeDataService > RealTimeData 和
    RealTimeDataContainer
    7)dataReport包實現數據報表功能,包括的服務類有:實現將站點監測數據導出為 Excel 表格格式功能的 ReportExportExcelService.java、生成數據報表的 ReportData.java□ 本文設計的數據報表功能主要實現統計一段時間內的站點數據的最大值最小值以及平 均值的功能,具體包括日報表、周報表、月報表、季報表以及年報表功能。
    8)siteMap包設計了站點地圖功能的相關服務類。站點地圖功能利用谷歌地圖的支持 包實現,初始地圖范圍顯示為成都市地圖。siteMap包中的SiteMapService主要實現在 站點地圖中點擊對應站點時顯示當前站點最新數據及運行情況的功能,該功能通過 getNewDataBySite(Site site)方法實現查詢最新該站點最新數據。
    9)utilService包中存儲設計實現Cookies服務的CookieService類。
    Cookies是指在一種能夠讓網站服務器把少量數據儲存到客戶端的硬盤或內存,或 是從客戶端的硬盤讀取數據的技術。本文設計的管網信息管理系統使用Cookies技術來 存儲用戶瀏覽過的站點信息和站點對應的因子數據,
    CookieServicelmpl.java中增加SiteCookie的代碼如下,默認Cookies的存儲時間為 2周。
    public void addSiteCookie(HttpServletResponse response, Site site) {
    Cookie cookie = new Cookie(SITE_COOKIE, site.getldQ); cookie.setMaxAge(60 * 60 * 24 * 14);// cookie 保存兩周 response.addCookie(cookie);
    }
    5.3.6web包設計
    web層封裝了系統的web訪問控制器以及自定義的struts2攔截器和resulto子包有: Action, interceptor, result□由于篇幅所限,具體函數實現部分代碼見附錄。
    一、Action 包
    Action 包根據功能劃分為 9 個子包,分別為:dataManagement, dataAnalysis, authority, dataAudit, dataQuery, dataReport, main, maintenance, siteMapo Action 包的是網頁 jsp 界面的核心控制部分,排水管網信息系統的Action包類主要負責接收網頁客戶請求, 從中獲取數據交給業務邏輯Service層處理,并且返回給客戶響應結果,Action包中不 包含任何與業務邏輯有關的代碼。下面對Action包的子包功能進行說明。
    1 )dataManagement 包包括的主要類是:PipeStatusAction 類和 SiteStatusAction 類, PipeStatusAction對應系統實時監測功能的管網狀態監測,PipeStatusAction類采用 get/set List方法獲取實體數據,其中還設計了一些jsp頁面中實體對象下拉菜單和選擇 框列表內容獲取的功能。SiteStatusAction對應系統的實時監測功能的站點狀態監測, SiteStatusAction主要實現獲取頁面的區域列表,監測類型,監測對象,以及監測時間 的功能。站點工作狀態查詢是通過getSiteStatusList功能實現的。
    2)dataAnalysis實現數據分析功能模塊。數據分析功能包括6個子功能如單站多參,
    多站多參,環比分析, 因子K線,分時走勢以及趨勢分析。該包中的各個功能和對應
    的Action類說明見表5-7 o
    表 5-7 dataAnalysis 包中 Action 類設計
    功能 Action 類
    單站多參 MultipleFactorAnalysisAction
    多站多參 MultipleSiteAnalysisAction
    環比分析 ChainlndexAnalysisAction
    因子K線 KLineAnalysisAction
    分時走勢 RealtimeAnalysisAction
    趨勢分析 TrendAnalysisAction
    3)authority:此包設計用來實現權限管理功能,包含的類是AuthorityAction類,類 圖如5-8所示,該類主要實現讀取用戶權限的功能,可以根據讀取的權限確定用戶所 能訪問的所有站點、所有菜單和所有URL,由此來實現權限控制的功能,另外該類還 包括了登陸和退出系統(Login和Logout)的功能。
    4)dataAudit包被設計用來實現系統的數據審核功能,包括實現系統批量審核的 BatchAuditAction類和逐條審核的OneByOneAuditAction類。批量審核功能批量修改對 應站點在指定時間范圍內采集的且還未審核的原始數據,可以設定對應數據的最大值 和最小值,對應的超出范圍的數據操作有:將監測數據替換、將數據刪除以及對數據 加減乘除一個具體數字,確定了操作之后點擊批量修改,監測數據就會被修改。逐條 審核功能設計為可單獨修改對應監測站點的每一條數據。
     
    0 Authority-Action
    檢 sit eList : List<Site>
    ◎menuList : List<Menu> © nienuTree : TreeNode
    a siteldList : List<String> 敢 urlList : List<String〉 獲 roleList : List<Role>
    ◎user : User
    securityService : Security-Service & menuService : MenuService 瑕 roleService : RoleService
    siteService : SiteService 夠 execute () : String e- login () : String 觀 logout () : String ? validat eLogin () 逼 getUser () : User & setUser (user : User)
    圖 5-8 AuthorityAction 類圖
    5)dataQuery,此包設計用來實現數據查詢功能。可以實現對報警數據、原始數據、 實時數據、歷史數據、系統日志的相關內容進行查詢的功能。該包中的功能和對應 Action類說明見表5-8。
    表5-8 dataQuery包中Action類設計
    功能 Action 類
    報警數據查詢 AbnormityAction、AdvancedQueryAction、
    AlertDataAction、
    留言、日志查詢 CommunicalLogAction、MessageActioris
    LogAction
    歷史數據查詢 HistoricalDataAction
    原始數據查詢 RawDataAction
    實時數據查詢 RealtimeDataAction
    6)dataReport:主要對應頁面中的數據報表功能。報表功能主要按時間區分,分為日
    周、月、季、年報表, 該包中的功能和對應Action類說明見表5-9o
    表 5-9 dataReport 包中 Action 類設計
    功能 Action 類
    日報表 ReportByDayAction
    周報表 ReportByWeekAction
    月報表 ReportByMonthAction
    季報表 ReportBySeasonAction
    年報表 ReportByYearAction
    7)main:實現主界面的Action,包括MainAction和NavigationAction。對應登陸界
    面和系統主界面的控制。MainAction類主要實現系統左側的站點Tree的獲取,
     
    NavigationAction類主要實現界面中部導航菜單的獲取。
    8)maintenance:實現站點、設備、因子、等系統管理功能。該包中的功能和對應
    Action類說明見表5-10o
    表 5-10 maintenance 包中 Action 類設計
    功能 Action類
    接警管理 AlertDealAction、AlertReceiveAction、
    AlertResultAction SiteFactorAlertAction
    站點、設備、因子管理 DeviceActions FactorAction>
    FactorTypeAction SiteAction、
    SiteDeviceAction、
    SiteFactorConfigActionSitelmageAction、
    SiteStatusCodeAction
    區域管理 LocationAction
    菜單管理 MenuAction
    角色管理 RoleAction
    監測類型管理 TargetTypeAction
    因子單位 UnitAction
    用戶管理 User Action^ PasswordAction
    羊市街模擬 Y sjTrdAnalogAction
    羊市街仿真 YsjlrdSimulationAction
    9)siteMap:實現站點地圖的相關功能, 包括的 Action 類為 siteMapAction o
    siteMapAction類設計用來獲取相關站點的最新數據和最新工作狀態。
    二、Interceptor 包
    Interceptor包中包含授權攔截器authority Interceptor及操作日志記錄類 loginterceptor o類圖分別如圖5-9和5-10所示,以authority Interceptor為例說明攔截器 設計方法,authorityinterceptor 類首先需要 get(USER_SESSION)和 get(OWNED_URLS) 即獲取用戶名和用戶對應的URL鏈接,如果用戶名為null,則拋出 AuthorityFailedException("您沒有登錄或者會話丟失,請重新登錄系統! ”),如果urlList 為null或者urlList.sizeO = 0,則拋出FermissionException("您沒有可以查看的菜單!"), 用戶名不為空且urlList有內容的話,會對比當前點擊的URL是否在該用戶允許的權限 范圍內,如若不在,拋出PermissionException("您無權查看此菜單!")異常。簡而言之, 權限攔截器就是實現了一系列的權限判斷工作。
    O Authorityinterceptor
    ◎ ADMIN SESSION : String = admin_sesson { readonly } c- USER SESSION : String = user_session { readonly } 尬 OWNED MENUS : String = owned_menus { readonly } 0 OWED URLS : String = owied_urls { readonly } 絵 OWED SITES : String = ovned_sites { readonly } Q OWNED SITE IDS : String = owned_site_ids { readonly } 獲 intercept (invocation : Actionlnvocationj ) : String 霸 coniainsIgnoreCase (stringList : List, s : String, ) : boolean
    圖 5?9 authority Interceptor 類圖
    O Loginterceptor
    o logQueryService : LogQueryService
    Q logPrapertiesReader : LogPropertiesReader
    o logPrgerties : Properties
    夠 init ()
    夠 do Intercept (invocation : Act ionlnvocat ion, ) : String
    圖 5-10 loginterceptor 類圖
    三、Result 包
    Result包中包涵JsonResult2類,該類通過重寫修改struts2中jsonplugin的方法,實 現異常信息的序列化。該類類圖如圖5?11所示:當執行Action調用出錯時拋岀后臺出 錯的信息。
    0 JsonResult 2
    -■ serialVersionUID : long { readonly } 越 execute (invocation : Actionlnvocation)
    圖 5- 11 JsonResult2 類圖
    5.4本章小結
    本章主要闡述系統的實現過程,包括對于信息集成平臺的代碼設計說明,報警服務 集成平臺的代碼實現。同時本章對管網信息管理系統的設計過程進行敘述,包括框架 整合的過程及系統各個核心包如core> entity> dao> service> web結構設計。
    第6章 管網信息管理系統主要功能驗證
    本文設計的管網信息系統的具體功能包括站點地圖、實時監測、數據管理、接警管 理、數據報表、數據分析、報警管理和系統管理八大塊。下面選取系統部分主要功能 進行驗證。
    6.1站點地圖
    驗證測試前需啟動Tomcat和ActiveMQ服務,在瀏覽器中輸入系統網址,登陸進入 系統,系統主功能界面圖如圖6-1所示。左側為站點導航欄,右側為主功能界面,顯 示系統具有站點地圖、實時監測、數據管理等八大功能菜單。
     
     
     
    圖6-1主功能界面
    點擊左上角的站點地圖,站點地圖功能要求展示成都市區各個站點在地圖上的位 置,在點擊站點時需顯示站點當前狀態。站點地圖功能測試界面如圖6-2。在地圖中點 擊天仙橋南街站點,可以看出對應天仙橋南街的站點信息情況。
     
    6.2實時監測
    系統的實時監測菜單需具備管網狀態監測和站點狀態監測功能,以管網狀態監測功 能為例進行驗證說明,管網狀態監測功能需顯示管網中各個站點在距離當前時刻4個 小時以內的最新的實時數據,如果站點在超過4個小時內都沒有收到數據則不在此頁 顯示,該功能是用來體現管網整體的最新工作狀態,同時還要求數據可以根據用戶設 定的報警顏色級別區分顯示。
    點擊實時監測,在彈出的下拉菜單中選擇管網狀態監測,進入管網狀態監測界面, 本功能測試結果如圖6-3所示,可以看出系統成功的實現了對管網狀態的監測。
     
    圖6-3管網狀態監測功能驗證
     
    6.3數據管理
    數據查詢主要分為以下六個子模塊:實時數據、原始數據、歷史數據、報警數據、 逐條審核、批量審核。由于篇幅所限,選取實時數據、原始數據和逐條審核功能進行 驗證測試。
    6.3.1實時數據
    實時數據查詢功能主要實現查詢當前站點的實時數據的功能,點擊數據管理菜單下 的實時數據選項,從左邊站點導航欄中選中需要查詢的站點,這里選為天仙橋南街站 點,則在右下方的功能區域里就可以看到相應的站點圖片和站點當時對應的實時數據。 由于當前站點無實時數據上傳,所以沒有實時數據,對應的實時數據查詢功能測試截 圖如圖6-4所示。
     
     
    6.3.2原始數據
    原始數據查詢功能需查詢當前站點在指定時間內所有數據,點擊左側的站點列表選 擇站點,這里選取北郊干管馬鞍東路站點,點擊數據管理菜單中的原始數據項目,選 擇開始時間為2012-11-01 19:51,結束時間為2012-11-01 23:51,點擊查詢按鈕,系統中 需顯示這段時間內站點的數據。該功能測試結果如圖6-5所示。
     
     
    3::小曲淤心:飩 im
    於終鈔饒 ;.;?
    .“熔 iSv
    終心謝¥綜儻 >#:•
    29紅山礎2?.於贈 as
    溯:2為呦卅斛滋 ;as
    JMJ :: .««<
    ;護
    i! »i :杯
    細Z心興舷g *
    圖6-5原始數據查詢功能驗證
    6.3.3逐條審核
    逐條審核功能需根據用戶輸入的時間范圍和審核區域,逐條修改對應站點在該時間 范圍內采集的且還未審核的原始數據,對該功能測試驗證截圖見圖6-6,在左側的站點 導航欄中選擇需要審核的站點,這里選擇為北郊干管馬鞍東路站點,在右側的功能界 面點擊數據管理下的逐條審核菜單項,選擇時間為2012-11-01 00:00液位值為1.71米
     
    的一條數據進行修改,點擊在彈出的對話框中點擊修改更新值為1.00輸入操作原因, 點擊提交,在圖6-6中可以看出該條數據已被修改,液位值更新為1.00米。
     
     
     
    6.4接警管理
    接警管理功能中包括警情列表、警情處理和警情結果三個子功能項目,該功能主要 實現對異常情況的報警和接警功能,是為了方便排水設施管理處人員處理管網險情而 做的設計。其中警情列表功能需實現查詢當前時間內的警報情況,同時還可以新增警 報;警情處理功能可以使用戶查看當前警情處理的狀態;警情結果則應查詢到最終警 情處理的結果。
    選取警情列表功能進行驗證測試,點擊接警管理菜單下警情列表,選擇新增接警, 如圖6-7,在新增接警功能界面中設置警情類型污水井溢流、警情級別為二級、警情區 域為成都市和警情內容等項目,點擊保存,如圖6-8,在警情列表中就可以看到這條警
    報信息。
     
     
     
    6.5數據報表
    數據報表模塊主要分為以下幾個子模塊:日報表,周報表,月報表,季報表,年報 表。以日報表功能為例進行功能驗證,日報表功能需分析當前站點一天內的數據。得 出一天內數據的最大值、最小值、均值,同時對數據和分析結果提供導出功能。圖6-9 為日報表功能測試圖,通過左側的站點導航選擇北郊干管馬鞍東路,點擊右側的數據 報表中的日報表功能項,選擇時間為2012-11-01到2012-11-02,可看出該站點的日報 表數據,11月1日的液位數據的最高值為1.6米、最低0.13米、平均值為1.11米。
     
    圖6-9日報表功能驗證
    6.6數據分析
    數據分析模塊主要分為以下幾個子模塊:單站多參,多站單參,趨勢分析,環比分 析,因子K線圖。以單站多參功能為例進行功能驗證。
    單站多參功能需顯示一個站點的若干因子在一個時間段內的原始數據的曲線變動 情況,通過該功能可以詳細分析、對比具體站點的各因子波動情況。
    從左側的站點列表中選擇大天污水廠做測試,圖6-10為該站點對應的單站多參功 能圖,用鼠標在曲線圖中游動,會顯示對應時間各因子的相應數據。可以看出在2012 年10月2日6點30分時對應的流量為0.13立方米每秒,液位為6.42米,流速為0.16 米每秒,拖動圖表下側拖動條還可以查看不同時間段情況,拖動條可通過拉動其邊緣 改變查看范圍,拖動條拖到右側邊緣,可繼續加載新數據,查看后續數據情況。
     
    圖6-10單站多參功能驗證
     
    6.7報警管理
    報警管理功能包括報警參數、羊市街仿真、羊市街模擬三個子菜單功能項,這里選 取報警參數功能和羊市街模擬功能進行功能驗證說明。
    6.7.1報警參數
    報警參數功能設置各站點的數據報警的規則。利用此功能用戶可根據對應站點的管 徑和排量情況設置站點對應的各個監測因子的報警值,還可設置報警級別,按照報警 級別的嚴重程度從高到低分為:橙色警報、黃色警報和藍色警報。
    以天仙橋南街站點為例進行功能驗證,對站點流量、液位、流速報警配置范圍如圖 6-11所示。設置天仙橋南街的液位報警范圍:0-0.9米不報警,0.9-1.2藍色警報, 1. 2-2. 0為黃色警報,2. 0-6. 5為橙色警報。
     
     
    圖6-11報警設置功能驗證
    6.7.2羊市街下穿模擬
    羊市街下穿模擬功能實現將模擬羊市街的降雨情況,同時可以將雨量數據發送至羊 市街下穿隧道積水模擬系統進行3D實景仿真。
    該功能對應的測試圖如圖6-12,首先添加雨量數據,添加2014-04-15 18:53到 2014-04-15 1&58的6條雨量數據,然后點擊啟動3D模型,將羊市街隧道積水模擬系 統啟動,點擊3D仿真,數據就會被送至模型,羊市街下穿隧道積水模擬系統圖如圖 6-13所示,可以看出當前隧道積水為0米。
     
     
     
     
     
    圖6-12羊市街下穿模擬功能驗證
     
    6.8系統管理
    系統管理功能主要包括以下幾個子功能:菜單管理,角色管理,用戶管理,因子管 理,站點管理,設備管理,站點因子配置。由于篇幅限制只對站點管理子功能進行驗 證說明。
    站點管理功能的實現對站點信息的管理功能,還可以新建站點,更新站點信息,包 括對站點因子,站點圖片進行編輯,處理,以及刪除站點功能。
    站點管理功能測試界面如圖6-14所示,對天仙橋南街上傳站點圖片功能進行驗證 說明,點擊站點管理功能中天仙橋南街站點的操作選項,在彈出的對話窗中點擊站點 圖片,點擊瀏覽,給天仙橋站點上傳一張新的站點圖片,圖6-15顯示了上傳站點圖片 功能界面。
     
     
     
    圖6-15上傳站點圖片功能驗證
     
    6.9本章小結
    本章里主要是對管網信息管理系統的功能驗證,驗證了系統的8大功能:站點地圖、 實時監測、數據管理、接警管理、數據報表、數據分析、報警管理、系統管理。可以 看出本文設計的排水管網信息管理系統較好的實現了系統需求功能。
    總結及工作展望
    總結:
    本文設計的基于物聯網技術的排水管網信息管理系統,結合了物聯網技術和Java EE平臺的網頁開發技術、以及數據庫訪問技術,成功實現了對成都市區51個排水井 站點信息的采集,傳輸和處理。同時系統采用ApacheCamel框架實現與官網已有GIS 平臺和下穿隧道積水模擬系統的交互,通過本系統的建設使得排水設施管理人員能夠 全面掌握成都市中心城區排水動態,為排水管網的管理提供決策依據。 .
    工作展望:
    本文設計的排水管網信息系統目前已處于試運行階段,在系統試運行期間,發現系 統尚有一些不總有待繼續改進和優化。
    1) 應進一步提高系統的響應速度,在查詢某站點間隔較長時間(如一年)的原始數據 時,返回數據速度較慢(約30s左右),分析原因是由于站點每天的數據量較大(最多時 一個站點一天有144條數據)因此系統數據庫數據量較大,檢索較慢。改進方法:優化 系統數據庫結構和查詢方法。
    2) 應進一步推廣擴建系統,目前系統只針對成都市中心城區51個站點的液位、流 量、流速、雨量數據的采集,可將系統延伸到成都市各個主要排水干管和連接管,并 擴展到次干管,實現對成都市排水系統的全面監測。
    3) 應進一步提高系統安全可靠性,目前采用的Tomcat服務器是開源服務器,安全 性較差,下一步擬采用專業的WebLogic等服務器做替換。
    4) 在全面獲取排水系統結構特征、排水負荷信息基礎上,建議進一步展開降雨對排 水系統影響情況等問題的研究分析,從而以發現中心城區排水系統瓶頸,以期對排水 管網的日常養護維修、升級改造、防汛應急搶險等提供科學合理的決策依據。
    5) 利用系統采集的真實降雨數據優化基于3D仿真技術和SWMM模型的下穿隧道 積水模擬系統。并將優化后的系統推廣至各個下穿隧道等易積水的區域,實現對暴雨 時各個易出現險情地區的積水情況預警。
    致謝
    時光猶如白駒過隙,一轉眼,我的研究生生活即將畫上句號,在這三年里,我成長 了許多也收獲了許多,但這都離不開周圍關心我的人的支持和幫助。
    首先我要感謝我的導師茍先太老師,他以他認真嚴謹的治學態度時刻感染著我。他 為人謙和,當我們遇到困難的時刻,總是耐心的幫助和指導我們。在我做畢業設計的 過程中,他總是在我遇到迷茫和困惑的時候給我啟發,讓我順利的完成了畢業論文。
    其次我要感謝四川擎旗信息技術有限公司的領導給我提供實習的機會,還要感謝無 私的關心和幫助著我同事們,從他們身上我學到了許多學校學不到的東西。
    同時還要感謝實驗室的同學和我的朋友們的支持,感謝他們讓我的研究生生活有了 多樣的色彩。
    我還要感謝我的家人,感謝他們給予我的無私的包容和理解。
    最后,衷心地感謝各位專家及教授在百忙之中評閱論文和參與答辯。
    參考文獻
    [1]李瑞成,王吉寧.老城區排污管網改造中應注意的幾個問題[J].中國給水排水, 200& 24(12): 6-10.
    [2]向軍.建立城市排水監測/管理網絡系統的設想[J].市政技術,2003(3):181-183.
    ⑶周玉文.城市給水排水管網系統信息化建設面臨的挑戰與機遇[幾給水排水,2009, 34(8): 1-3.
    [4]劉昭成,曾凡勇.淺談國內外城市排水管網現狀[DB/OL]. http://blog.sina.com.en/s/b Iog_981414080101a9m7.html
    [5]王美秋.排水管網信息管理系統設計[D].同濟大學.2007:2-3.
    [6]Bart Schultz, Daniele De Wrachien. Irrigation and drainage systems research and development in the 21st century [J]. Irrigation and drainage, 2002, 51(4): 311-327.
    [7]Dj okic D, Maidment D. Application of GIS network routines for water flow and transport]J]. Journal of Water Resources Planning and Management, 1993, 119(2): 229-245.
    [8]趙新華,李瓊.城市排水管網信息GIS管理系統設計[J].中國給水排水,2002, 18⑼: 55-57.
    [9]任伯幟,鄧仁健,李文健.SWMM模型原理及其在霞凝港區的應用[J].水運工程, 2006 (4): 41-44.
    [10]趙冬泉,陳吉寧,佟慶遠,等.基于GIS構建SWMM城市排水管網模型[J].中國 給水排水,2008,24(7): 88-91.
    [11]陳鑫,鄧慧萍,馬細霞.基于SWMM的城市排澇與排水體系重現期銜接關系研究 卩].給水排水,2009,35(9): 114-117.
    [12]張濤,張行南,張文婷,等.基于SWMM的管網變化對城市水文特征的影響分析 [J].三峽大學學報(自然科學版),2011,2: 6.
    [13]薛敏,李大成,沈曉鈴.基于物聯網技術的智慧排水系統構建[J].中國給水排水, 2012,28(006): 62-64.
    [14]呂東芳,宋雷震.物聯網在城市泵站排水系統中的應用[J].湖南理工學院學報:自 然科學版,2013, 26(3): 49-52.
    [15]董愛軍,何施,易明.物聯網產業化發展現狀與框架體系初探[J].科^^進步與對策, 2011,28(14): 61-65.
    [16]王文珍.基于物聯網的污水處理智能監控系統[J].化工自動化及儀表,2013, 40(2): 247-249.
    [17]Zhang Li, Zhang Wei-Xi. Design and implementation of fixed assets management system based on Java EE[J]. Computer Engineering and Design, 2009, 30(16): 3797-3800.
    [18]Sam R.Alapati, Charles Kim. Oracle Database llg[J]. New Features for DBAs a nd Developers. Apress, Berkeley (CA), 2007.
    [1刃姚文琳,王存剛,劉世棟,等.基于Oracle的分布式數據庫設計與技術[J].計算機 工程,2006,32(20): 89-91.
    [20]Javid Jamae, Peter Johnson. JBoss in action: configuring the JBoss application serverfMJ. Manning Publications Co., 2009.
    [21]Halpern E, Peddada P5 Revanaru N. System and method for server load balancing and server affinity[P], 2004-2-24.
    [22]The Apache Fundation. Apache Tomcat, http://tomcat, apache.org/whichversion.html
    [23]The Apache Fundation. Apache ActiveMQ. http://activemq.apache.org/
    [24]戴俊,朱曉民.基于ActiveMQ的異步消息總線的設計與實現[幾 計算機系統應用, 2010 (8): 254-257.
    [25]任冬陜,周元哲.Web開發技術[M]?西安電子科技大學出版社,2009:283-284?
    [26]王玲,程耕國.SSH2在設備管理系統中的設計與實現[幾信息技術,2011(6): 14-17.
    [27]Chxinsheng Zhao, Mai Jiang, Zhiyong He. The design of E-commerce system architecture based on Struts2, Spring and Hibemate[C]//Infbrmation Science and Engineering (ICISE), 2010 2nd International Conference on. IEEE, 2010: 3251-3254.
    [28]Su Su Khin. Business Processes Solution with Apache Struts Framework[C]//Co mputer Engineering and Technology, 2009. ICCET09. International Conference on.
    IEEE, 2009, 2: 280-282?
    [29]Roughley I. Practical Apache Struts2 Web 2.0 Projects[M], Apress, 2007.
    [30]Nana Qi, Zhimin Yang. Research of Struts2 framework and web application based on Ajax[C]//IT in Medicine & Education, 2009. ITIME!09. IEEE International Symposium on. IEEE, 2009,1:903-90&
    [31]Arthur J, Azadegan S. Spring Framework for rapid open source J2EE Web Application Development: A case study[C]//Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing, 2005 and First ACIS International Workshop on Self-Assembling Wireless Networks. SNPD/SAWN 2005. Sixth International Conference on. IEEE, 2005: 90-95?
    [32]張俐.基于Spring和Hibernate的JavaEE數據持久層的研究與實現[J]?計算機與
    數字王程,2008, 36(9): 183-187.
    [33]張劍飛等.Java程序設計教程[M].北京大學出版社,2011.248-261.
    [34]O'Neil E J. Object/relational mapping 2008: hibernate and the entity data model (edm)[C]//Proceedings of the 2008 ACM SIGMOD international conference on
    Management of data. ACM, 2008: 1351-1356.
    [35]Kopteff M. The Usasge and Performance of Object Databases Compared with ORM Tools in a Java Environment[C]//ICOODB. 2008: 199-218.
    [36]Ang Gao, Wen-xue Wei. Application of Java data persistence with Hibernate and Struts framework[J]. Computer Applications, 2005, 12.
    [37]Gawlick D. Mishra S. Infbnration sharing with the Oracle database[C]//Proceedings of the 2nd international workshop on Distributed event-based systems. ACM, 2003: 1-6.
    [38]Bock H. Java persistence api[M]//The Definitive Guide to NetBeans™ Platform 7. Apress, 2011: 315-320.
    [39]譚瑩宇.基于Hibernate JPA和J Query框架的數據查詢研究與實現[J]•計算機與現 代化,2012 (1): 196-3 9 &
    [40]馮曼菲等.EJB+JPA數據庫持久層開發實踐詳解[M].電子工業岀版社,2008:8-9
    [41]朱方娥,曹寶香.基于JMS的消息隊列中間件的研究與實現[J].計算機技術與發 展,2008 (05:173-175.
    [42]陳德結.異構數據庫系統之間的數據交換[D].上海交通大學.2007:11-16.
    [43]羅曉斌,徐浩.基于JMS的異步消息處理技術及應用[J].計算機工程,2002,28(12): 121-122.
    [44]戴俊,朱曉民.基于ActiveMQ的異步消息總線的設計與實現[J].計算機系統應用, 2010 (8): 254-257.
    [45]李艷春,李新,焦文彬.分布式信息系統中數據交換平臺設計與實現[J]•計算機工 程與設計,2012, 33(7): 2640-2645.
    [46]Snyder B, Bosnanac D, Davies R. ActiveMQ in actionfM], Maiming, 2011.
    [47]Henjes R, Schlosser D, Menth M, et al. Throughput performance of the ActiveMQ JMS Server[C]//Kommunikation in Verteilten Systemen (KiVS). Springer Berlin Heidelberg, 2007:113-124.
    [48]滕壽威,王爾琪,黃騫•交通狀況信息交換系統研究與實現[J].測繪與空間地理信 息,2013, 1.123-124.
    [49]Jewell T K, Adrian D D. SWMM stormwater pollutant washoff functions[J], Journal of the Environmental Engineering Division, 1978, 104(5): 1036-1040.
    [50]Temprano J, Arango 6, Cagiao J, et al. Stormwater quality calibration by SWMM: A case study in Northern Spain[J]. water SA, 2007, 32(1): 55-63.
    【本文地址:http://www.bzhlmm.com//guanlilei/gongshangguanli/xixinguanli/5923.html

    上一篇:基于MBD的集成式CAPP技術研究 與系統開發

    下一篇:供應鏈管理與經營性營運資金管理績效: 影響機理與實證檢驗

    相關標簽: