鄧海生, 董佐軍, 吳 強, 卜 莉, 李軍懷
(1.西京學院 教務(wù)處,陜西 西安 710123;2.寶雞石油鋼管廠 陜西 寶雞 721008;3.西安理工大學 計算機科學與工程學院,陜西 西安 710048)
隨著國民經(jīng)濟的迅猛發(fā)展,城市、農(nóng)村供水在國民生活中所起的作用越來越大。但傳統(tǒng)的供水管理信息化水平不高,特別是省級水利部門和下級水廠之間的數(shù)據(jù)集成程度較低,上級部門無法實時了解各個水源監(jiān)測點的情況,有關(guān)部門無法及時獲取決策和分析需要的數(shù)據(jù),不利于提高工作效率,保證供水質(zhì)量,滿足日益增產(chǎn)的用水量的需求。因此有必要建立供水數(shù)據(jù)采集和監(jiān)控系統(tǒng),保障城市供水,提高經(jīng)濟效益[1]。同時,結(jié)合水利行業(yè)因具有安全要求高、空間跨度大、野外作業(yè)多等特點,需要更廣泛、有效地運用高新科技,尤其是物聯(lián)網(wǎng)相關(guān)技術(shù),加快水利行業(yè)信息化的進程[2]。物聯(lián)網(wǎng)是指通過射頻識別、傳感器、GPS等信息傳感設(shè)備,把任何物品與互聯(lián)網(wǎng)相鏈接,進行信息交換和通信,以實現(xiàn)智能化識別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡(luò)概念。
目前,國內(nèi)城市供水系統(tǒng)中采用的數(shù)據(jù)通信可簡單分為有線和無線兩大類[3]。根據(jù)水源監(jiān)測點的地理位置特點,通過有線方式實施非常不方便,而且成本高。無線數(shù)據(jù)通信因其組網(wǎng)靈活、投資較少、建設(shè)周期短、運維簡單、性價比高等優(yōu)點,逐漸成為供水管理中的主要數(shù)據(jù)傳送方式。
同時,目前的供水信息收集與管理方式主要為人工管理,數(shù)據(jù)來源比較分散,水源數(shù)據(jù)是通過各地水廠水源監(jiān)測點的數(shù)據(jù)采集終端(攝像頭、RTU或水質(zhì)監(jiān)測儀器等)采集,而諸如生產(chǎn)、運行、銷售等管理信息大多以紙質(zhì)報表的形式處理;同時,上級的政策法規(guī)、文件、信息,是以書面形式送達各地水廠。這種管理方式使得供水建設(shè)管理處決策層難以及時的了解各地水廠的水源以及生產(chǎn)、運行、銷售等情況。
為了解決上述問題,研究并開發(fā)一個基于物聯(lián)網(wǎng)技術(shù)的供水信息系統(tǒng),包括通信傳輸硬件組網(wǎng)和供水信息系統(tǒng)軟件。各地水廠數(shù)據(jù)通過物聯(lián)網(wǎng)感知部件采集,并通過3G無線網(wǎng)絡(luò)進行傳輸,最終傳送到省級數(shù)據(jù)中心,然后進行數(shù)據(jù)的分析、顯示。這樣,可以快速實現(xiàn)對各個水廠水源監(jiān)測點的供水數(shù)據(jù)及生產(chǎn)、運行、銷售等管理數(shù)據(jù)的收集、傳輸、顯示、分析及歷史查詢以及報警等功能,以供上級領(lǐng)導(dǎo)決策參考,實現(xiàn)供水管理的快速、高效、準確化。
城市供水的過程是:由水源取水送到自來水廠,在自來水廠經(jīng)過消毒、沉淀、過濾等過程后送入城市供水管網(wǎng),提供給城市居民或工業(yè)用戶等使用。水源可來自水源井,也可來自地表水。在城市供水管道中途設(shè)有中途加壓站,在城市管網(wǎng)中還設(shè)有許多測壓點。城市供水工藝主要包括以下幾個部分:原水提取、凈化處理和凈水輸送[4]。典型的供水工藝流程如圖1所示。
圖1 典型的供水工藝流程Fig.1 Typical water supply technical process
根據(jù)上面的分析,本文開發(fā)的城市供水信息系統(tǒng)由3個部分組成:各個水廠數(shù)據(jù)采集與局域網(wǎng)絡(luò)系統(tǒng)、無線數(shù)據(jù)傳輸網(wǎng)絡(luò)、省級數(shù)據(jù)中心,分別對應(yīng)感知層、網(wǎng)絡(luò)層和應(yīng)用層,其總體結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)Fig.2 Topology of Network
本供水系統(tǒng)解決方案在完成綜合感知的基礎(chǔ)上,具有結(jié)單、適應(yīng)性強和可靠性高的優(yōu)點。該方案綜合采用流量監(jiān)測設(shè)備、水質(zhì)檢測設(shè)備和視頻監(jiān)測設(shè)備等,對水流量、水質(zhì) 、視頻信息等進行實時采集 ,以標準工業(yè)電信號上報綜合信息化采集器 ,接入到3G網(wǎng)絡(luò) 。綜合信息采集器采用多路A/D復(fù)用傳感器采集通道 ,可外接多路模擬量、數(shù)字量傳感器探頭,提供水質(zhì)檢測儀協(xié)議轉(zhuǎn)換和數(shù)據(jù)量轉(zhuǎn)換,提供視頻模擬信號轉(zhuǎn)換數(shù)據(jù)信號,最終將視頻信號、質(zhì)監(jiān)測信號和水量監(jiān)測信號合并上傳。
針對無線網(wǎng)絡(luò)高損耗、高延遲、低帶寬、低可靠性等特點,傳統(tǒng)的分布式計算使用的C/S模型已經(jīng)不能滿足實際應(yīng)用的需要,必須采用新的模型解決本應(yīng)用的問題。目前有3種比較流行的無線計算軟件模型:C/A/S(Client/Agent/Server)模型、C/I/S(Client/Intercept/Server)模型和移動 Agent模型[4-5]。本系統(tǒng)軟件借鑒C/I/S模型的思想,并充分考慮CDMA網(wǎng)絡(luò)的傳輸特點及系統(tǒng)功能需求基礎(chǔ)上,架構(gòu)了一個基于中間件技術(shù)的供水信息系統(tǒng)軟件模型,如圖3所示。
圖3 無線計算軟件模型Fig.3 Wireless computing software model
所有的數(shù)據(jù)通信由通信服務(wù)中間件完成,這種分離的方式使得數(shù)據(jù)中心和水廠可以集中精力于數(shù)據(jù)的處理和上報而不必考慮數(shù)據(jù)的傳輸。這使得數(shù)據(jù)中心和水廠之間的數(shù)據(jù)傳輸透明化。中間件負責傳輸數(shù)據(jù)和日志記錄等工作。如圖3所示,服務(wù)器由系統(tǒng)配置、數(shù)據(jù)接口、異常處理、安全認證、QoS、消息協(xié)議、數(shù)據(jù)通信組成;終端由數(shù)據(jù)緩存、日志、參數(shù)配置、異常處理、消息協(xié)議、數(shù)據(jù)通信組成。其中,消息協(xié)議即為行業(yè)數(shù)據(jù)通信協(xié)議,定義了供水系統(tǒng)數(shù)據(jù)包的格式,系統(tǒng)中所有數(shù)據(jù)傳輸時都要采用消息協(xié)議來封裝和拆包。而服務(wù)器提供安全認證和QoS確保系統(tǒng)的安全性和性能。終端在數(shù)據(jù)傳輸之前提供數(shù)據(jù)緩存以便在數(shù)據(jù)丟失或者突然斷電等意外情況下不丟失數(shù)據(jù),保證數(shù)據(jù)完整性。同時還提供日志來記錄所有操作。系統(tǒng)配置和參數(shù)配置提供終端和中心之間順利通信所必須的配置。
軟件采用Web服務(wù)方式開發(fā),Web服務(wù)以SOAP協(xié)議為基礎(chǔ),安全性是其一大問題。筆者分析了Web服務(wù)的安全需求,并采用.Net框架的WSE2.0實現(xiàn)了Web服務(wù)安全[6-7]。
WSE2.0提供 Microsoft.Web.Services.SoapContext類,可以用它處理WS-Security SOAP頭和其他入站的SOAP消息頭,同時可為出站的SOAP消息添加WS-Security頭。WSE還有一個包裝類為SOAP請求和響應(yīng)添加 SoapContext,同時服務(wù)器使用一個SOAPExtension類“Microsoft.Web.Services.WebServices Extension”,讓用戶可以驗證入站的SOAP消息,還提供了可從WebMethod中訪問的請求和響應(yīng)SoapContext。
本系統(tǒng)都使用X.509證書進行身份認證和消息簽名加密。服務(wù)端接收到SOAP消息后,服務(wù)器會根據(jù)web.config文件中的X.509元素的屬性設(shè)置來驗證證書有效性。僅有身份認證不能保證收到的SOAP消息就是聲明的用戶發(fā)送的,因此還需要對發(fā)送的SOAP消息進行簽名,以供服務(wù)器確定認證的用戶是否就是發(fā)送消息用戶[8]。
由于系統(tǒng)的通信是基于無線環(huán)境的,無線環(huán)境高延遲低帶寬的特點對系統(tǒng)性能有很大影響。針對此問題,文中采用了幾種無線環(huán)境下QoS策略,包括異步調(diào)用Web服務(wù)、緩存Web服務(wù)、大數(shù)據(jù)量低頻率訪問和SOAP響應(yīng)壓縮等。
1)異步 Web服務(wù)
當使用同步Web服務(wù)方法時,要發(fā)送對該方法的響應(yīng)。如果完成請求需要較長時間,那么處理請求的線程會一直被占用,直到方法調(diào)用結(jié)束。讓線程一直處于等待狀態(tài),在服務(wù)器的運行壓力很大的情況下是很不好的。這個時候可以使用異步Web服務(wù),在后臺進程完成時,調(diào)用一個回調(diào)函數(shù)結(jié)束對請求的處理,并通知ASP.NET請求已完成。
Net處理Web服務(wù)的過程是,編寫ASP.NET Web服務(wù)時,.Net只是編譯代碼以創(chuàng)建程序集;當收到對其 Web方法的請求時,將調(diào)用該程序集。程序集本身并不知道關(guān)于SOAP的任何事情。因此,當應(yīng)用程序首次啟動時,ASMX處理程序必須反映程序集,以確定提供哪些Web方法。對于同步請求,操作很簡單:找出哪些方法具有關(guān)聯(lián)的WebMethod屬性、基于SOAPAction HTTP標頭來設(shè)置調(diào)用正確方法的邏輯。對于異步請求,在反映過程中,ASMX處理程序?qū)ふ揖哂心撤N簽名并將簽名標識為異步的Web方法。
異步Web方法的標識規(guī)則為:包含兩個用WebMethod屬性進行標識的方法 BeginWebMethodName和EndWebMethodName,其中WebMethodName表示要提供的方法的名稱。 BeginWebMethodName函數(shù)返回一個IAsyncResult接口,并分別接受 AsyncCallback和一個對象,作為其最后兩個輸入?yún)?shù)。 EndWebMethodName函數(shù)接受一個IAsyncResult接口,作為其唯一的參數(shù)。
如果ASMX處理程序發(fā)現(xiàn)兩個方法符合上述所有條件,則將方法WebMethodName作為常規(guī)的Web方法在其WSDL中提供。該方法將接受在BeginWebMethodName的簽名中的AsyncCallback參數(shù)之前定義的參數(shù)作為輸入,并返回由EndWebMethodName函數(shù)返回的內(nèi)容。
2)緩存 Web服務(wù)
建立Web服務(wù)的時候并沒有辦法預(yù)計將會有多大的訪問量。而有些查詢結(jié)果在一定時間內(nèi)是重復(fù)的,因此可以采取緩存Web服務(wù)的方法來預(yù)防訪問量過大的問題。
.NET提供CacheDuration屬性來實現(xiàn)緩存Web服務(wù)的結(jié)果。CacheDuration屬性告訴你的ASP.NET應(yīng)用程序為針對特定的Web方法同樣的請求保存結(jié)果的時間。用法如下:
<WebMethod(CacheDuration:=value)>
value的單位為秒。當Web方法使用相同的參數(shù)集被調(diào)用時,.NET會識別出來那個方法已經(jīng)被使用同樣的參數(shù)調(diào)用過,并且會檢查響應(yīng)是否已經(jīng)被緩存。如果沒有緩存,它將執(zhí)行方法,然后緩存響應(yīng)并跟蹤時間以開始遞減計數(shù)CacheDuration屬性;如果Web方法的響應(yīng)已經(jīng)被緩存過,緩存的響應(yīng)會立即返回給客戶,大大提高了性能。如果響應(yīng)被緩存了,但是發(fā)現(xiàn)緩存已經(jīng)過期,方法將會被再次執(zhí)行,響應(yīng)將再次緩存設(shè)置的緩存時長。
3)低頻率大數(shù)據(jù)量訪問
無線網(wǎng)絡(luò)自身的特點決定了其適合進行突發(fā)的、間斷的數(shù)據(jù)傳輸。在這樣的環(huán)境中進行分布式計算,如果頻繁進行Web服務(wù)調(diào)用查詢數(shù)據(jù)顯然是不合適的。因此系統(tǒng)可以采用采用大數(shù)據(jù)量的方式一次性進行信息交換。這種低頻率大數(shù)據(jù)量的訪問模式可以提高系統(tǒng)性能。
4)壓縮SOAP響應(yīng)
Web Service所有的通訊是通過SOAP進行的,而SOAP是基于XML的。XML Web Services使用文本通信,而壓縮文本可以使其尺寸減少80%,這就意味著在網(wǎng)絡(luò)上傳輸內(nèi)容需要更少的時間[9]。
在實際過程中,SOAP請求可能要比SOAP響應(yīng)小很多,例如一個查詢結(jié)果的SOAP響應(yīng)可能是一個很大的數(shù)據(jù)集,因此,只要對SOAP響應(yīng)進行壓縮就能夠達到很好的效果。
Net提供SOAP擴展以便在SOAP消息傳輸前對其進行操作。本系統(tǒng)開發(fā)中采用如圖5所示的機制,即在服務(wù)端序列化SOAP響應(yīng)信息后壓縮它;在客戶端反序列化SOAP信息前解壓縮它。
圖4 SOAP信息壓縮(服務(wù)端)解壓縮(客戶端)Fig.4 SOAP information compress(Server)and decompress(Client)
城市供水信息系統(tǒng)研究與開發(fā),可以幫助供水管理部門及時、準確了解、分析區(qū)域各供水系統(tǒng)的運行、管理及水質(zhì)情況,為科學決策提供依據(jù)。本文介紹了一種基于物聯(lián)網(wǎng)技術(shù)、采用Web服務(wù)構(gòu)建供水信息系統(tǒng)的模型和實現(xiàn)方法,對于其他行業(yè)物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的開發(fā)也具有很好的實際意義。進一步的工作將特別針對無線網(wǎng)絡(luò)的特殊性從系統(tǒng)性能優(yōu)化方面進行更深入的研究與實現(xiàn)。
[1]張春海,孫妍.基于CDMA2000 1X網(wǎng)絡(luò)的城市供水監(jiān)測調(diào)度系統(tǒng)[J].吉林大學學報,2005,23(5):466-473.
ZHANG Chun-hai, SUN Yan.Urban water supply system for monitoring and dispatching based on CDMA2000-1X[J].Journal of Jilin University, 2005,23(5):466-473.
[2]大唐電信.水利物聯(lián)網(wǎng)系統(tǒng)方案[J].電信技術(shù),2010(8):46-48.
Datang Telecom.System solutions of water resource based on internet of things[J].Telecommunications Technology,2010(8):46-48.
[3]孟慶龍.基于GPRS的城市供水監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[D].山東:山東大學,2005.
[4]Samaras C S G, Pitoura E, Evaripidou P.Mobile agent for wireless computing: the convergence of wireless computational models with mobile-agent technologies[J].Mobile Networks and Application,2004(9):517-528.
[5]Barron C H, George S, David B.Lindquist.Web/Express:A client/intercept based system for optimizing Web browsing in a wireless environment[J].Mobile Networks and Application,1998(3):419-431.
[6]賀正求,吳禮發(fā),洪征.Web服務(wù)安全問題研究[J].計算機科學,2010,37(8):32-39,87.
HE Zheng-qiu, WU Li-fa, HONG Zheng.Researchon security problems of Web service[J].Computer Science,2010,37(8):32-39,87.
[7]謝琦,趙麗紅.Web服務(wù)安全性的研究與實現(xiàn)[J].計算機工程與設(shè)計,2007,28(18):4366-4369.
XIE Qi, ZHAO Li-hong.Research and realization of web services security[J].Computer Engineering and Design,2007,28(18):4366-4369.
[8]孫茂圣,王鐵山,趙鈴君,等.一個基于情境的Web服務(wù)安全模型[J].微電子學與計算機, 2009,26(10):89-92
SUN Mao-sheng, WANG Tie-shan, ZHAO Ling-jun, et al.A context-based security modelforWeb services[J].Microelectronics&Computer, 2009,26(10):89-92
[9]Mike Nikitas.Improve XML Web Services'Performance by Compressing SOAP.[EB/OL].(2003).http://www.dotnetjunkies.com/Article/46630AE2-1C79-4D5F-827E-6C2857FF1D23.dcik,2003.