廖 斌 ,庹先國 ,2,王洪輝 ,徐少波 ,張 濤
(1.成都理工大學 地質(zhì)災害防治與地質(zhì)環(huán)境保護國家重點實驗室,成都 610059;2.西南科技大學核廢物與環(huán)境安全國防重點學科實驗室,綿陽 621010)
隨著地質(zhì)災害監(jiān)測信息化的發(fā)展,出現(xiàn)了基于Web服務的地質(zhì)災害監(jiān)測系統(tǒng),使分布在各處的用戶可以通過瀏覽器輕松獲取現(xiàn)場的監(jiān)測數(shù)據(jù),消除了因時間、地點的限制給監(jiān)測人員帶來的不便,實現(xiàn)了數(shù)據(jù)共享[1]。
目前地質(zhì)災害監(jiān)測儀與Web服務器的通訊方式主要使用的是GPRS網(wǎng)絡支持的TCP或者UDP協(xié)議[2]。這2種方式有以下缺點:UDP不能保證數(shù)據(jù)的可靠傳輸,數(shù)據(jù)可能出現(xiàn)丟失、亂序,TCP是面向長連接的,會占用大量的服務器資源[3];基于TCP或UDP協(xié)議的每個監(jiān)測儀與Web服務器連接時都會占用服務器的1個端口號,這將限制監(jiān)測儀的連接數(shù)量;對于Web服務器目前缺少基于TCP或UDP的商用級方案,需要重新編寫和設計數(shù)據(jù)收發(fā)程序,穩(wěn)定性難以保證。
本文提出采用基于TCP的應用層協(xié)議—HTTP協(xié)議解決上述問題。HTTP吸取了TCP可靠性的優(yōu)點[4-5],同時限制每次只處理1個請求,應答后立即斷開,使Web服務器可以面向更多的監(jiān)測儀器。此外采用基于HTTP協(xié)議的商業(yè)級的開源Web服務器如TOMCAT[6],數(shù)據(jù)傳輸穩(wěn)定可靠,可以有效解決后期維護的麻煩。
HTTP(hypertext transfer protocol)是 1 個基于請求與響應模式的無狀態(tài)的應用層協(xié)議,是1個標準的客戶端服務器模型[7]。HTTP協(xié)議支持文本、視頻和圖片等多種數(shù)據(jù)格式的傳輸,其工作過程如圖1所示,可分為4步。
(1)首先客戶端與服務器需要建立連接。每一個請求都要建立1個新的連接,而后HTTP開始工作。
(2)建立連接后,客戶端通過TCP套接字向Web服務器發(fā)送1個文本的請求報文,1個請求報文由請求行、請求頭部、空行和請求數(shù)據(jù)4部分組成。
(3)服務器接到請求后,給予相應的響應信息,服務器將資源復本寫到TCP套接字,由客戶端讀取。1個響應由狀態(tài)行、響應頭部、空行和響應數(shù)據(jù)4部分組成。
(4)客戶端接收服務器所返回的信息,然后客戶機與服務器斷開連接。
圖1 HTTP工作過程Fig.1 Work process of the HTTP
如果在以上過程中的某一步出現(xiàn)錯誤,那么產(chǎn)生錯誤的信息將返回到客戶機。對于用戶來說,這些過程是由HTTP自己完成的,用戶只需等待信息即可。
基于HTTP協(xié)議的地質(zhì)災害監(jiān)測數(shù)據(jù)傳輸系統(tǒng)網(wǎng)絡架構(gòu)如圖2所示?,F(xiàn)場的監(jiān)測點采集多種傳感器(雨量計、地表裂縫位移計、傾斜角傳感器、土壤含水率計、地下水位計等)的數(shù)據(jù)后,數(shù)據(jù)傳輸模塊通過GPRS網(wǎng)絡與Internet網(wǎng)絡建立連接,再將數(shù)據(jù)按照HTTP協(xié)議格式傳輸?shù)絎eb服務器,Web服務器將信息進行拆封解析然后存入數(shù)據(jù)庫,最后Web服務器通過分析數(shù)據(jù)實現(xiàn)遠端監(jiān)測點的實時監(jiān)測。
圖2 網(wǎng)絡架構(gòu)圖Fig.2 Diagram of the network
基于HTTP協(xié)議的數(shù)據(jù)傳輸模塊采用汽車工業(yè)級 SOC-C8051F530[8]做主控 MCU,通過 UART與GPRS模塊M72-D進行通訊,再通過SIM卡與GPRS建立連接,然后按HTTP協(xié)議格式發(fā)送數(shù)據(jù)到Web服務器。M72-D與MCU連接的電路如圖3所示。
M72-D是我國自主研發(fā)的1款支持GSM900/DCS1800雙頻段的通信模塊,其緊湊的設計空間內(nèi)整合了 Baseband、RF、Memorry、PMU 等多個功能模塊。 它支持 PPP、TCP、UDP、HTTP、FTP 等協(xié)議,速率最大達到85.6 kb/s(上行&下行),支持標準的AT命令及增強AT命令,GPRS模塊與CPU之間運用UART進行數(shù)據(jù)通信。
M72-D與SIM卡連接需要串接電阻以作匹配,由于模塊工作中或人為因素產(chǎn)生的靜電可能將SIM卡燒掉,因此必須在SIM卡電路中加入靜電保護電路。M72-D與SIM連接電路如圖4所示。
圖4 M72-D與SIM連接電路Fig.4 Ganged circuit between M72-D and SIM
SOC-C8051F530通過發(fā)送AT指令控制M72-D采用HTTP協(xié)議中的POST方式將數(shù)據(jù)上傳至Web服務器,其與AT響應(如表1)有關的操作和與網(wǎng)絡的信息交互都是在M72-D內(nèi)部自動完成。
表1 HTTP連接AT指令Tab.1 AT command of HTTP connection
數(shù)據(jù)傳輸模塊的程序主要分為模塊初始化、建立HTTP連接、數(shù)據(jù)傳輸、關閉連接。其中模塊初始化包括設置Context、設置APN;建立HTTP連接包括設置URL長度、設置URL地址,而后模塊啟動任務并發(fā)起無線連接;數(shù)據(jù)傳輸包括設置數(shù)據(jù)長度、發(fā)送數(shù)據(jù),最后關閉HTTP連接。程序流程如圖5所示。
圖5 程序流程圖Fig.5 Flow chart of program
Web服務器由Web+MySQL組合開發(fā)完成,其中程序采用JAVA高級編程語言開發(fā)完成,數(shù)據(jù)存儲采用MySQL實現(xiàn)。MySQL是通用型數(shù)據(jù)庫,允許同步的數(shù)據(jù)操作,這樣為數(shù)據(jù)發(fā)布實時使用監(jiān)測數(shù)據(jù)提供了統(tǒng)一的數(shù)據(jù)平臺,軟件組成結(jié)構(gòu)如圖6所示。
圖6 Web服務器組成結(jié)構(gòu)Fig.6 Composition of the Web server
整個系統(tǒng)的工作機制主要由3個響應過程組成:地質(zhì)災害監(jiān)測儀通過HTTP協(xié)議與Web服務器通信,再由Web服務器響應監(jiān)測儀的事件請求,建立socket(套接字)連接;Web服務器通過socket監(jiān)控接收到的數(shù)據(jù),然后進行緩存和解析,并通過數(shù)據(jù)接口進行數(shù)據(jù)實時存儲;Web服務器執(zhí)行MySQL訪問語句,調(diào)用數(shù)據(jù)庫,分析監(jiān)測數(shù)據(jù),并更新數(shù)據(jù)展示。
測試條件將地質(zhì)災害監(jiān)測儀安裝于野外監(jiān)測現(xiàn)場,Web服務器安裝在室內(nèi)監(jiān)測中心的PC機,PC機接入公網(wǎng) IP,URL地址為 http://202.115.132.202/disasystem/DataInteraction。
測試方法地質(zhì)災害監(jiān)測儀以10 min 1次連續(xù)不間斷發(fā)送采集到的傳感器數(shù)據(jù),Web服務器監(jiān)聽數(shù)據(jù)并存儲到數(shù)據(jù)庫,利用TOMCAT命令行窗口工具查看數(shù)據(jù)傳輸情況,測試周期為10 d,總數(shù)據(jù)條超過1400條。
測試結(jié)果本設計完成了地質(zhì)災害監(jiān)測儀與Web服務器之間的數(shù)據(jù)傳輸,數(shù)據(jù)未出現(xiàn)丟失、亂序的問題,對服務器負荷量小,且可使大量地質(zhì)災害監(jiān)測儀器與服務器進行連接通信。
本文將HTTP數(shù)據(jù)傳輸技術引入到地質(zhì)災害監(jiān)測系統(tǒng)中,設計了基于HTTP協(xié)議的地質(zhì)災害監(jiān)測數(shù)據(jù)傳輸系統(tǒng),解決了地質(zhì)災害監(jiān)測儀與Web服務器通信使用TCP或者UDP協(xié)議存在的問題,使數(shù)據(jù)傳輸更加穩(wěn)定可靠,可以有效解決后期維護的麻煩,具有一定的實用性。
[1] 張維.基于WEB交互技術的在線環(huán)境監(jiān)測系統(tǒng)的設計與實現(xiàn)[D].武漢:華中科技大學,2008.
[2] 曹修定,戚國慶,阮俊,等.GPRS技術及其在地質(zhì)災害監(jiān)測中的應用[J].中國地質(zhì)災害與防治學報,2006,17(1):69-72.
[3] 趙飛,葉震.UDP協(xié)議與TCP協(xié)議的對比分析與可靠性改進[J].計算機技術與發(fā)展,2006,16(9):219-221.
[4] 馮素梅.應用層HTTP協(xié)議的分析與設計[J].計算機光盤軟件與應用,2011(16):52-53.
[5] 吳澤.嵌入式WebServer中HTTP協(xié)議的分析[J].許昌學院學報,2012,31(5):66-68.
[6] IBM-中國.用Tomcat和Eclipse開發(fā)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. ■