[導(dǎo)讀] 針對(duì)灌區(qū)用水計(jì)量模糊問(wèn)題,開(kāi)發(fā)了一種新型明渠流量?jī)x。該系統(tǒng)先對(duì)現(xiàn)場(chǎng)測(cè)量獲得所需要的流量,然后結(jié)合GPRS通訊技術(shù)、J2EE技術(shù)和數(shù)據(jù)庫(kù)技術(shù),開(kāi)發(fā)了基于B/S結(jié)構(gòu)的
明渠流量?jī)x測(cè)量系統(tǒng)。論文分別從硬件和軟件兩方面介紹了系統(tǒng)的總體結(jié)構(gòu)和具體的實(shí)現(xiàn)。該產(chǎn)品已應(yīng)用在節(jié)水灌溉系統(tǒng)中,效果良好。
1 引言
在農(nóng)田水利灌溉中,引用水流多是處于明渠的形式或不滿管流動(dòng)狀態(tài);對(duì)其流量的測(cè)量,隨著人們對(duì)水資源合理利用意識(shí)的提高,也越來(lái)越受到重視。在國(guó)內(nèi),明渠流量計(jì)也開(kāi)始受到人們的關(guān)注,出現(xiàn)了各種形式的明渠流量計(jì)[1]。電子技術(shù)、計(jì)算機(jī)技術(shù)和通訊技術(shù)的發(fā)展,使得明渠流量?jī)x的研究開(kāi)始向?qū)崟r(shí)化、精確化、網(wǎng)絡(luò)化方向發(fā)展成為現(xiàn)實(shí)。
本文提出了將GPRS通訊技術(shù)與J2EE技術(shù)相結(jié)合的方案應(yīng)用到明渠流量?jī)x的設(shè)計(jì)系統(tǒng)中,構(gòu)成了網(wǎng)絡(luò)化的明渠流量?jī)x系統(tǒng)。在底層硬件設(shè)計(jì)中,采用一種基于通用分組無(wú)線業(yè)務(wù)GPRS(GeneralPACketRatioService)[2]無(wú)線上網(wǎng)技術(shù)的自動(dòng)數(shù)據(jù)采集方案。在上層軟件設(shè)計(jì)中,采用美國(guó)Sun公司推出的J2EE(Java2Platform,EnterpriseEdition)平臺(tái)[3]。將該系統(tǒng)應(yīng)用在節(jié)水灌溉系統(tǒng)中,效果良好。
2 系統(tǒng)的整體結(jié)構(gòu)及工作原理
2.1 系統(tǒng)的組成
系統(tǒng)總體設(shè)計(jì)方案如圖1所示。
系統(tǒng)由五部分組成:GPRS數(shù)據(jù)采集模塊、通信服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、web服務(wù)器、客戶端。
GPRS數(shù)據(jù)采集模塊:它是系統(tǒng)的硬件主要部分。GPRS模塊上電后擁有一個(gè)動(dòng)態(tài)的IP地址,可以與通信服務(wù)器進(jìn)行Socket通信[4]。它的功能就是將檢測(cè)到的流量以十六進(jìn)制數(shù)據(jù)格式發(fā)送給通信服務(wù)器。GPRS終端也可以接受來(lái)之通信服務(wù)器的命令。
通信服務(wù)器:它打開(kāi)服務(wù)器的某一端口,監(jiān)聽(tīng)并接受所有GPRS終端向該端口發(fā)送的UDP數(shù)據(jù)包[5],然后將數(shù)據(jù)包解析成流量等數(shù)據(jù),寫(xiě)進(jìn)數(shù)據(jù)庫(kù)中。通訊服務(wù)器的另一任務(wù)是向GPRS終端發(fā)送命令的任務(wù),即向GRPS終端發(fā)送UDP數(shù)據(jù)包。
數(shù)據(jù)庫(kù)服務(wù)器:通信服務(wù)器從GPRS終端獲得的數(shù)據(jù)都存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器上,同時(shí)數(shù)據(jù)庫(kù)服務(wù)器還需對(duì)數(shù)據(jù)進(jìn)行備份。
web服務(wù)器:它連接著數(shù)據(jù)庫(kù)服務(wù)器和客戶端。首先它向客戶端提供web服務(wù)。響應(yīng)來(lái)之客戶端的請(qǐng)求,并根據(jù)客戶端的請(qǐng)求向數(shù)據(jù)庫(kù)服務(wù)器獲取數(shù)據(jù),然后再將數(shù)據(jù)以html格式返回給客戶端,使得客戶端可以瀏覽它所請(qǐng)求的數(shù)據(jù)。web服務(wù)器還可以直接向通信服務(wù)器提出請(qǐng)求,通信服務(wù)器根據(jù)web服務(wù)器的請(qǐng)求向GPRS終端發(fā)送命令。
客戶端:它采用瘦客戶端,只需要一個(gè)Internet瀏覽器即可。客戶端的任務(wù)就是向web服務(wù)器發(fā)出http請(qǐng)求,然后將web服務(wù)器返回的html格式文件顯示給用戶。
2.2 系統(tǒng)的功能
系統(tǒng)的功能有:查看歷史數(shù)據(jù),讀取實(shí)時(shí)或整點(diǎn)數(shù)據(jù)。
查看歷史數(shù)據(jù):客戶端根據(jù)自己的需求,要求查看歷史上某一段數(shù)據(jù)的請(qǐng)求,該請(qǐng)求經(jīng)過(guò)web服務(wù)器轉(zhuǎn)送給數(shù)據(jù)庫(kù)服務(wù)器,數(shù)據(jù)庫(kù)服務(wù)器將數(shù)據(jù)經(jīng)過(guò)web服務(wù)器轉(zhuǎn)接以html格式返回給客戶端。
讀取實(shí)時(shí)或整點(diǎn)數(shù)據(jù):客戶端要求讀取實(shí)時(shí)或整點(diǎn)數(shù)據(jù)請(qǐng)求,web服務(wù)器根據(jù)請(qǐng)求來(lái)通知通訊服務(wù)器,然后由通訊服務(wù)器通知GPRS數(shù)據(jù)采集模塊,GPRS數(shù)據(jù)采集模塊通過(guò)GPRS網(wǎng)絡(luò)向通訊服務(wù)器發(fā)送數(shù)據(jù)包。當(dāng)通訊服務(wù)器收到數(shù)據(jù)包時(shí),將數(shù)據(jù)包解析成流量參數(shù)寫(xiě)到數(shù)據(jù)庫(kù)服務(wù)器中,然后由數(shù)據(jù)庫(kù)服務(wù)器將數(shù)據(jù)發(fā)送給web服務(wù)器,然后由web服務(wù)器將數(shù)據(jù)以html格式返回給客戶端。
3 GPRS通信模塊的設(shè)計(jì)及其功能
第2.5代通訊技術(shù)GPRS(GenealpacketRadioService)[6]是通用分組無(wú)線業(yè)務(wù)的簡(jiǎn)稱。作為第三代通訊技術(shù)的前奏,GPRS技術(shù)是在現(xiàn)有GSM技術(shù)基礎(chǔ)上發(fā)展而來(lái)的一種新的分組交換的數(shù)據(jù)承載業(yè)務(wù),是由英國(guó)BTCellent公司在1983年提出的一種基于GSM的移動(dòng)分組數(shù)據(jù)業(yè)務(wù)。GSM技術(shù)主要以提供話音業(yè)務(wù)為主,而GPRS技術(shù)在移動(dòng)終端與計(jì)算機(jī)通信網(wǎng)絡(luò)的路由器之間提供了分組傳遞業(yè)務(wù),這就是GPRS網(wǎng)絡(luò)與GSM網(wǎng)絡(luò)的最大區(qū)別[7]。
GPRS把分組交換技術(shù)引入現(xiàn)有GSM系統(tǒng),為移動(dòng)用戶和數(shù)據(jù)網(wǎng)絡(luò)之間提供一主要用于語(yǔ)音通信。GPRS采用分組交換技術(shù),主要提供非語(yǔ)音的數(shù)據(jù)業(yè)務(wù),特別適用于間斷的、突發(fā)性的和頻繁的、少量的數(shù)據(jù)傳輸,種連接,給移動(dòng)用戶提供高速無(wú)線IP和X.25服務(wù)。GSM網(wǎng)絡(luò)采用電路交換的方式,也適用于偶爾的大數(shù)據(jù)量傳輸。
本系統(tǒng)就是利用GPRS的分組無(wú)線業(yè)務(wù),通過(guò)無(wú)線網(wǎng)絡(luò)連接到高速的IP網(wǎng)絡(luò)傳輸現(xiàn)場(chǎng)的明渠流量計(jì)裝置的測(cè)量數(shù)據(jù)的。
在系統(tǒng)中,關(guān)鍵之一是網(wǎng)絡(luò)協(xié)議的選擇。目前有兩種協(xié)議,即TCP協(xié)議和UDP協(xié)議[5]。UDP協(xié)議與TCP協(xié)議相比較,有以下幾個(gè)優(yōu)點(diǎn):適用于小數(shù)據(jù)量的傳輸;使用方便,不需要建立連接,是一種無(wú)連接的通訊方式;傳輸數(shù)據(jù)的效率高,實(shí)時(shí)性強(qiáng)。
考慮到UDP上述特點(diǎn)以及流量測(cè)量系統(tǒng)對(duì)實(shí)時(shí)性的高要求,本系統(tǒng)采用了UDP協(xié)議。
4 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)有兩種工作方式:一是周期性地將現(xiàn)場(chǎng)數(shù)據(jù)實(shí)時(shí)地傳送到數(shù)據(jù)庫(kù)服務(wù)器;二是實(shí)時(shí)地按照控制命令進(jìn)行數(shù)據(jù)采集。這就要求作為數(shù)據(jù)傳輸模塊和終端設(shè)備控制模塊的GPRS終端能夠?qū)崟r(shí)地解析、處理各種控制命令并向數(shù)據(jù)傳輸服務(wù)提供盡可能大的吞吐率。系統(tǒng)的硬件電路組成如圖2所示。
主機(jī)采用了PHILIPS公司生產(chǎn)的單片機(jī)P89C51RD2芯片作為CPU,對(duì)外部的流量信號(hào)以及實(shí)時(shí)時(shí)鐘進(jìn)行采集和處理,需要保存的數(shù)據(jù)經(jīng)過(guò)處理后存儲(chǔ)于內(nèi)部大容量存儲(chǔ)器中,實(shí)現(xiàn)GPRS接口、數(shù)據(jù)通信。圖中復(fù)位電路是為了保證系統(tǒng)程序在跑飛或卡死的時(shí)候系統(tǒng)能夠復(fù)位,是系統(tǒng)可靠性的保證之一。
系統(tǒng)具備GPRS接口,與GPRS發(fā)射端連接,把需要發(fā)射的數(shù)據(jù)傳給GPRS發(fā)射端,同時(shí)系統(tǒng)具有RS-232接口。上位機(jī)可以通過(guò)GPRS通訊實(shí)現(xiàn)遠(yuǎn)程通訊,同時(shí)也可以通過(guò)RS-232接口,以特定的格式將存儲(chǔ)器內(nèi)部的數(shù)據(jù)通過(guò)串口線傳入PC機(jī)。
5 系統(tǒng)軟件設(shè)計(jì)
5.1 B/S結(jié)構(gòu)
系統(tǒng)的軟件設(shè)計(jì)采用以Web技術(shù)為基礎(chǔ),以瀏覽器/服務(wù)器即B/S(Browser/Server)為體系結(jié)構(gòu)的方案[8]。B/S(Browser/
Server)結(jié)構(gòu)隨著Internet技術(shù)的興起,對(duì)傳統(tǒng)的C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過(guò)WWW瀏覽器來(lái)實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡(jiǎn)化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本。在B/S模式下,服務(wù)器主要負(fù)責(zé)開(kāi)發(fā)、維護(hù)網(wǎng)上的內(nèi)容與資源,負(fù)責(zé)信息的收集、存儲(chǔ)、發(fā)布,不存在客戶端程序的開(kāi)發(fā)和維護(hù)??蛻舳酥苯永矛F(xiàn)有的Internet連接,不需要特殊設(shè)置和安裝,使用標(biāo)準(zhǔn)的Internet瀏覽器,直接訪問(wèn)專用Web服務(wù)器頁(yè)面,就可觀看監(jiān)測(cè)和分析現(xiàn)場(chǎng)流量的實(shí)時(shí)數(shù)據(jù),并能查詢所需歷史數(shù)據(jù)。
5.2 系統(tǒng)運(yùn)行環(huán)境與工具的選擇
考慮到系統(tǒng)的移植性和跨平臺(tái)性,本系統(tǒng)選擇了SUN公司設(shè)計(jì)開(kāi)發(fā)的J2EE平臺(tái),使用JSP(JavaServerPages)作為B/S模式的開(kāi)發(fā)工具。J2EE(Java2PlatformEnterpriseEdition)是一個(gè)適用于企業(yè)級(jí)計(jì)算的支持多層、分布式應(yīng)用的全新概念的Java平臺(tái),它為搭建具有可伸縮性,靈活性、易維護(hù)性的企業(yè)信息系統(tǒng)提供了良好的機(jī)制,與傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用程序模型相比有著不可比擬的優(yōu)勢(shì)。J2EE主要面向網(wǎng)絡(luò)應(yīng)用。它定義了一系列規(guī)范的標(biāo)準(zhǔn),使得Java程序員能夠共同的遵照這個(gè)標(biāo)準(zhǔn),開(kāi)發(fā)大型面向網(wǎng)絡(luò)的項(xiàng)目。它同時(shí)提供了龐大的開(kāi)發(fā)庫(kù),是面向電子商務(wù)開(kāi)發(fā)的企業(yè)級(jí)應(yīng)用平臺(tái)。Java具有“編寫(xiě)一次,到處運(yùn)行”的特性,能夠通過(guò)JDBC方便連接各類數(shù)據(jù)庫(kù),調(diào)用各類API,同時(shí)在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等??偨Y(jié)該系統(tǒng)的平臺(tái)解決方案如下:
計(jì)算模式:三層B/S模式;
網(wǎng)絡(luò)操作系統(tǒng):Windows2000Server;
數(shù)據(jù)庫(kù)服務(wù)器:Oracle8i;
Web服務(wù)器:ApacheTomcat5.0;
數(shù)據(jù)庫(kù)驅(qū)動(dòng)接口:JDBC驅(qū)動(dòng)[9];
主要的開(kāi)發(fā)環(huán)境及工具:J2EE,Java,JSP,Javascript。
5.3 數(shù)據(jù)庫(kù)的遠(yuǎn)程管理
數(shù)據(jù)庫(kù)內(nèi)容包括:現(xiàn)場(chǎng)流量參數(shù)的實(shí)時(shí)數(shù)據(jù)、歷史數(shù)據(jù)、不合格數(shù)據(jù)、人員的管理,權(quán)限的管理等。
數(shù)據(jù)庫(kù)遠(yuǎn)程管理按照如下流程來(lái)實(shí)現(xiàn):
(1)客戶端發(fā)出數(shù)據(jù)的查詢或修改指令;
(2)服務(wù)端接收指令,向客戶端返回結(jié)果;
(3)客戶端接收結(jié)果,顯示查詢數(shù)據(jù)。
系統(tǒng)中,當(dāng)客戶端請(qǐng)求查看實(shí)時(shí)數(shù)據(jù)的時(shí)候,客戶端向服務(wù)器發(fā)出請(qǐng)求,服務(wù)器每隔2秒就將實(shí)時(shí)數(shù)據(jù)發(fā)送給客戶端,客戶端接收并顯示該數(shù)據(jù)。該過(guò)程就是一個(gè)典型的數(shù)據(jù)庫(kù)遠(yuǎn)程管理過(guò)程。傳統(tǒng)的技術(shù)是頁(yè)面不斷刷新,來(lái)獲取新的數(shù)據(jù),以便讓用戶看到不斷變化的實(shí)時(shí)數(shù)據(jù)。但該方法的缺點(diǎn)一是當(dāng)數(shù)據(jù)量較大時(shí),占用服務(wù)器資源的消耗大;二是用戶能明顯感到頁(yè)面的不斷刷新,對(duì)用戶視覺(jué)和聽(tīng)覺(jué)都有很大影響。本系統(tǒng)采用了Microsoft開(kāi)發(fā)的xmlhttp技術(shù),它是Microsoftxml解析器(MSXML)中的一個(gè)客戶/服務(wù)通訊管道協(xié)議[10]。運(yùn)用xmlhttp可以簡(jiǎn)單方便地實(shí)現(xiàn)數(shù)據(jù)庫(kù)遠(yuǎn)程管理。由于其傳送的是XML格式的數(shù)據(jù),大大減輕了對(duì)服務(wù)器的消耗,而且采用xmlhttp協(xié)議,可以實(shí)現(xiàn)頁(yè)面無(wú)刷新更新數(shù)據(jù),使界面更加友好
6 總結(jié)
本系統(tǒng)在硬件上采用了GPRS通信模塊,軟件上采用B/S模式,開(kāi)發(fā)工具采用了Sun公司提供的的J2EE平臺(tái),完成了系統(tǒng)了設(shè)計(jì)。它可以對(duì)現(xiàn)場(chǎng)流量進(jìn)行遠(yuǎn)程、實(shí)時(shí)、直觀地監(jiān)測(cè)和分析。較之其它系統(tǒng)來(lái)說(shuō),具有遠(yuǎn)程監(jiān)控、客戶端免維護(hù)、服務(wù)器端易維護(hù)、系統(tǒng)安全可靠、操作簡(jiǎn)單方便等優(yōu)點(diǎn)。目前該系統(tǒng)已應(yīng)用在節(jié)水灌溉系統(tǒng)中,效果良好。
參考文獻(xiàn)
[1]李剛。浮力式明渠流量?jī)x的研究[J]。儀器儀表學(xué)報(bào),2002,23(3):13-16。
[2]張小強(qiáng),楊放春。一種基于GPRS技術(shù)的無(wú)線監(jiān)控系統(tǒng)[J]。中國(guó)數(shù)據(jù)通信,2004,6(11):92-95。
[3]楊爭(zhēng)林,宋燕敏,沈利華?;贘2EE的電力市場(chǎng)技術(shù)支持系統(tǒng)研究[J]。電力系統(tǒng)自動(dòng)化,2004,28(8):365-39。
[4]何進(jìn),謝松巍。基于Socket的TCP/IP網(wǎng)絡(luò)通訊模式研究[J]。計(jì)算機(jī)應(yīng)用研究,2001,18(8):134-135。
[5]蘆東昕,張華強(qiáng),王陳?;赨DP的可靠數(shù)據(jù)傳遞技術(shù)研究[J]。計(jì)算機(jī)工程,2003,29(22):62-63。
[6]呂捷。GPRS技術(shù)[M]。北京:北京郵電大學(xué)出版社,2001。
[7]丁雄。移動(dòng)通信技術(shù)[M]。北京:電子工業(yè)出版社,2004。
[8]方木云,駱國(guó)剛?;贐/S的三層結(jié)構(gòu)的ERP庫(kù)存軟件系統(tǒng)開(kāi)發(fā)[J]。微機(jī)發(fā)展,2004,14(4):31-34,37。
[9]王秀義。基于JDBC的數(shù)據(jù)庫(kù)連接池及實(shí)現(xiàn)[J]。計(jì)算機(jī)系統(tǒng)應(yīng)用,2005(4):36-39。
[10]陳培久,陳序廣。用xml與xmlhttp組件實(shí)現(xiàn)網(wǎng)頁(yè)信息的傳遞[J]。微機(jī)發(fā)展