廖 斌 ,庹先國 ,2,王洪輝 ,徐少波 ,張 濤
(1.成都理工大學 地質災害防治與地質環境保護國家重點實驗室,成都 610059;2.西南科技大學核廢物與環境安全國防重點學科實驗室,綿陽 621010)
隨著地質災害監測信息化的發展,出現了基于Web服務的地質災害監測系統,使分布在各處的用戶可以通過瀏覽器輕松獲取現場的監測數據,消除了因時間、地點的限制給監測人員帶來的不便,實現了數據共享[1]。
目前地質災害監測儀與Web服務器的通訊方式主要使用的是GPRS網絡支持的TCP或者UDP協議[2]。這2種方式有以下缺點:UDP不能保證數據的可靠傳輸,數據可能出現丟失、亂序,TCP是面向長連接的,會占用大量的服務器資源[3];基于TCP或UDP協議的每個監測儀與Web服務器連接時都會占用服務器的1個端口號,這將限制監測儀的連接數量;對于Web服務器目前缺少基于TCP或UDP的商用級方案,需要重新編寫和設計數據收發程序,穩定性難以保證。
本文提出采用基于TCP的應用層協議—HTTP協議解決上述問題。HTTP吸取了TCP可靠性的優點[4-5],同時限制每次只處理1個請求,應答后立即斷開,使Web服務器可以面向更多的監測儀器。此外采用基于HTTP協議的商業級的開源Web服務器如TOMCAT[6],數據傳輸穩定可靠,可以有效解決后期維護的麻煩。
HTTP(hypertext transfer protocol)是 1 個基于請求與響應模式的無狀態的應用層協議,是1個標準的客戶端服務器模型[7]。HTTP協議支持文本、視頻和圖片等多種數據格式的傳輸,其工作過程如圖1所示,可分為4步。
(1)首先客戶端與服務器需要建立連接。每一個請求都要建立1個新的連接,而后HTTP開始工作。
(2)建立連接后,客戶端通過TCP套接字向Web服務器發送1個文本的請求報文,1個請求報文由請求行、請求頭部、空行和請求數據4部分組成。
(3)服務器接到請求后,給予相應的響應信息,服務器將資源復本寫到TCP套接字,由客戶端讀取。1個響應由狀態行、響應頭部、空行和響應數據4部分組成。
(4)客戶端接收服務器所返回的信息,然后客戶機與服務器斷開連接。

圖1 HTTP工作過程Fig.1 Work process of the HTTP
如果在以上過程中的某一步出現錯誤,那么產生錯誤的信息將返回到客戶機。對于用戶來說,這些過程是由HTTP自己完成的,用戶只需等待信息即可。
基于HTTP協議的地質災害監測數據傳輸系統網絡架構如圖2所示。現場的監測點采集多種傳感器(雨量計、地表裂縫位移計、傾斜角傳感器、土壤含水率計、地下水位計等)的數據后,數據傳輸模塊通過GPRS網絡與Internet網絡建立連接,再將數據按照HTTP協議格式傳輸到Web服務器,Web服務器將信息進行拆封解析然后存入數據庫,最后Web服務器通過分析數據實現遠端監測點的實時監測。

圖2 網絡架構圖Fig.2 Diagram of the network
基于HTTP協議的數據傳輸模塊采用汽車工業級 SOC-C8051F530[8]做主控 MCU,通過 UART與GPRS模塊M72-D進行通訊,再通過SIM卡與GPRS建立連接,然后按HTTP協議格式發送數據到Web服務器。M72-D與MCU連接的電路如圖3所示。
M72-D是我國自主研發的1款支持GSM900/DCS1800雙頻段的通信模塊,其緊湊的設計空間內整合了 Baseband、RF、Memorry、PMU 等多個功能模塊。 它支持 PPP、TCP、UDP、HTTP、FTP 等協議,速率最大達到85.6 kb/s(上行&下行),支持標準的AT命令及增強AT命令,GPRS模塊與CPU之間運用UART進行數據通信。
M72-D與SIM卡連接需要串接電阻以作匹配,由于模塊工作中或人為因素產生的靜電可能將SIM卡燒掉,因此必須在SIM卡電路中加入靜電保護電路。M72-D與SIM連接電路如圖4所示。

圖4 M72-D與SIM連接電路Fig.4 Ganged circuit between M72-D and SIM
SOC-C8051F530通過發送AT指令控制M72-D采用HTTP協議中的POST方式將數據上傳至Web服務器,其與AT響應(如表1)有關的操作和與網絡的信息交互都是在M72-D內部自動完成。

表1 HTTP連接AT指令Tab.1 AT command of HTTP connection
數據傳輸模塊的程序主要分為模塊初始化、建立HTTP連接、數據傳輸、關閉連接。其中模塊初始化包括設置Context、設置APN;建立HTTP連接包括設置URL長度、設置URL地址,而后模塊啟動任務并發起無線連接;數據傳輸包括設置數據長度、發送數據,最后關閉HTTP連接。程序流程如圖5所示。

圖5 程序流程圖Fig.5 Flow chart of program
Web服務器由Web+MySQL組合開發完成,其中程序采用JAVA高級編程語言開發完成,數據存儲采用MySQL實現。MySQL是通用型數據庫,允許同步的數據操作,這樣為數據發布實時使用監測數據提供了統一的數據平臺,軟件組成結構如圖6所示。

圖6 Web服務器組成結構Fig.6 Composition of the Web server
整個系統的工作機制主要由3個響應過程組成:地質災害監測儀通過HTTP協議與Web服務器通信,再由Web服務器響應監測儀的事件請求,建立socket(套接字)連接;Web服務器通過socket監控接收到的數據,然后進行緩存和解析,并通過數據接口進行數據實時存儲;Web服務器執行MySQL訪問語句,調用數據庫,分析監測數據,并更新數據展示。
測試條件將地質災害監測儀安裝于野外監測現場,Web服務器安裝在室內監測中心的PC機,PC機接入公網 IP,URL地址為 http://202.115.132.202/disasystem/DataInteraction。
測試方法地質災害監測儀以10 min 1次連續不間斷發送采集到的傳感器數據,Web服務器監聽數據并存儲到數據庫,利用TOMCAT命令行窗口工具查看數據傳輸情況,測試周期為10 d,總數據條超過1400條。
測試結果本設計完成了地質災害監測儀與Web服務器之間的數據傳輸,數據未出現丟失、亂序的問題,對服務器負荷量小,且可使大量地質災害監測儀器與服務器進行連接通信。
本文將HTTP數據傳輸技術引入到地質災害監測系統中,設計了基于HTTP協議的地質災害監測數據傳輸系統,解決了地質災害監測儀與Web服務器通信使用TCP或者UDP協議存在的問題,使數據傳輸更加穩定可靠,可以有效解決后期維護的麻煩,具有一定的實用性。
[1] 張維.基于WEB交互技術的在線環境監測系統的設計與實現[D].武漢:華中科技大學,2008.
[2] 曹修定,戚國慶,阮俊,等.GPRS技術及其在地質災害監測中的應用[J].中國地質災害與防治學報,2006,17(1):69-72.
[3] 趙飛,葉震.UDP協議與TCP協議的對比分析與可靠性改進[J].計算機技術與發展,2006,16(9):219-221.
[4] 馮素梅.應用層HTTP協議的分析與設計[J].計算機光盤軟件與應用,2011(16):52-53.
[5] 吳澤.嵌入式WebServer中HTTP協議的分析[J].許昌學院學報,2012,31(5):66-68.
[6] IBM-中國.用Tomcat和Eclipse開發Web應用程序[EB/OL].[2007-05-25].http://www.ibm.com/developerworks/cn/opensource/os-eclipse-tomcat.
[7] 小泉修,王浩.Web技術:HTTP到服務器端[M].北京:科學出版社,2004.
[8] Silicon Labs.C8051F52x and C8051F53x 8 kB and 4 kB and 2 kB ISP Flash MCU Family[EB/OL].[2011-04-26].http://www.xhl.com.cn/upfile/Flash/2011/4/20110426172746.pdf. ■