王思樂,盧素魁,楊文柱,陳麗萍,陳向陽
(河北大學 計算機科學與技術學院,河北 保定 071002)
?
基于消息隊列服務的大田作物生長監測系統
王思樂,盧素魁,楊文柱,陳麗萍,陳向陽
(河北大學 計算機科學與技術學院,河北 保定071002)
為解決大田作物生長信息獲取難的問題,設計開發了一個大田作物生長監測系統.該系統采用B/S與C/S相結合的體系結構,通過綜合運用ActiveMQ消息服務器、AJAX等技術,實現了大田作物生長信息的定時采集、實時采集、多視圖展示、動態功能部署等功能.實驗結果表明,該系統功能完備,穩定性、可操作性強,完全滿足進行大田作物長勢信息采集的各項要求.
監測系統;消息服務;AJAX;信息采集
精細農業是現代化農業理念的標志,其核心是實時獲取野外農田中影響作物成長的相關信息,進而診斷作物長勢,以達到準確進行地塊的灌溉、施肥、噴藥等農業活動,最大限度地提高水、肥和殺蟲劑的利用效率,獲得最佳的經濟效益和生態效益的目的[1-3].實時獲取大田作物相關信息的計算機系統是精細農業能夠順利開展的基本保證.及時采集的作物長勢信息為進一步的農業分析提供了決策依據[4-9].基于相機的野外監測系統可通過直接在田間設置觀測設備獲取作物的長勢信息,對精細農業研究具有重要意義.
C/S結構實現的監測系統需要各個客戶端連接同一服務器,對于大田作物生長監測系統,若將大田傳感器控制客戶端和操控客戶端并聯的話,研究者便被限制在服務端可連接的物理區域.采用B/S結構能夠最大限度的擴展研究者的工作空間,但直接使用瀏覽器連接大田傳感器控制客戶端極為困難.為解決此矛盾,本文通過使用Active MQ橋接B/S結構和C/S結構的方法,達到了研究者在任意互聯網可連接位置,既可以方便獲取前端設備的定時、實時信息、對前端設備遠程維護,又可以對緩存數據進行瀏覽比較.該架構對遠程監測系統具有一定普適意義和較高實用價值.
大田作物生長監測系統的基本結構主要包括野外監控設施、大田信息服務器、Active MQ消息隊列服務器、Web應用服務器和研究者客戶端等5部分,如圖1所示,其目的在于搭建農業研究者和野外監控設備之間的通訊橋梁,提供豐富的手段供研究者控制野外監控傳感器,解決信息傳輸過程中的一系列問題.

圖1 大田作物生長監測系統拓撲結構Fig.1 Topology structure of field crop growth monitoring system
監控設施指部署于野外的大田傳感器及其管理端構成的監測系統客戶端,該客戶端由一臺運行WinCE系統的監控主機、供電系統和一系列監控傳感器構成,主要負責收集大田作物生長信息并由DTU傳回服務端,由大田信息服務器收集后供農業研究者使用.同時,系統能接收研究者部署的符合協議的功能模塊,提升設施的監控能力.
大田信息服務器由于研究者研究環境的差異性,桌面監控端不便研究者隨時利用監測系統獲取大田數據,為研究者提供B/S服務非常必要;但由于監控設施所處的惡劣環境,直接導致利用監控設施提供B/S服務的方案缺乏可行性.在為研究者提供大田信息服務之前,利用一個管理程序完成信息的收集及命令轉發非常必要.同時為保證實時性,該程序應采用C/S結構與監控設施直接通訊,大田信息服務器便承擔了這部分任務,接收研究者發出的收集指令、與監控設施通訊、管理監控設施的反饋信息轉給研究者.
Web應用服務器接收研究者通過瀏覽器發送的命令請求,與大田信息服務器進行交互,將大田信息服務器反饋的執行結果信息反饋給研究者.
消息隊列服務器由于Web應用服務器與大田信息服務器采用了不同的實現架構,二者之間的通訊同步存在問題.消息隊列是當前異構系統同步問題比較成熟的解決方案,ActiveMQ是比較穩定的開源消息隊列服務器,利用ActiveMQ可以獲得穩定的Web服務器和C/S結構服務器通訊的同步結果.
研究者客戶端由于監控設施獲取大田數據以及將數據傳回服務端均需較長的時間,研究者的命令往往不能得到及時的結果響應.研究者客戶端利用AJAX技術將命令推送到服務端并不斷查詢Web應用服務器的反饋結果,保證研究者的每一條命令都能夠穩定執行.
從系統的整體功能來說,主要完成了信息定時收集、信息實時收集、多視圖信息觀察、功能模塊遠程部署、監控設施遠程管理等功能.
1)信息的定時收集在指定時段收集大田作物生長信息并上傳大田信息服務器.
2)信息的實時收集在任一時刻對任一監控設施發布收集指令并得到系統的及時反饋.
3)多視圖信息觀察收集的信息可以按收集時間橫向比較、按監控設施縱向比較;歷史數據按時段進行圖表比較;圖像數據按指定預處理方式查看等一系列不同的視角對緩存數據進行觀察.
4)功能模塊遠程部署利用預先指定的接口方法,遠程部署功能模塊至監控設施,提升監控設施的處理能力.
5)監控設施遠程管理對監控設施參數(定時采集時段、休眠時段等控制信息)遠程設置,具體定制監控設施的監控行為.
1.1JMS與Avtive MQ消息隊列服務器
JMS即Java消息服務(Java message service)應用程序接口,它是一個Java平臺中關于面向消息中間件(MOM)的API標準,由Java標準化組織(JCP)管理,用于在2個應用程序之間,或分布式系統中發送消息,進行異步通信.
ActiveMQ是Apache出品的消息總線服務器,完全支持JMS1.1標準.和其他消息總線服務器相比,它的開源特性降低了系統的總擁有成本;只需要JVM便能運行的特征提升了它的環境適應性.ActiveMQ的實現短小精悍,速度很快,對多種語言都提供了訪問接口,同時支持多種不同的消息協議,多種優秀特性使ActiveMQ成為了當前最流行的消息服務器之一.
1.2AJAX技術
AJAX 即異步JavaScript及XML(Asynchronous JavaScript And XML),是一種創建交互式網頁應用的網頁開發技術.傳統的Web應用處理在用戶填寫表單時,必須在前一個表單頁面發送請求之后服務器才能接收并處理傳來的表單,然后返回一個新的網頁.但在前后2個頁面中的大部分HTML代碼往往相同,這就導致了帶寬的浪費.而且每次交互都需要向服務器發送請求,響應時間必然依賴于服務器的響應時間,這就導致了用戶界面的響應比本地應用慢得多.與此不同,AJAX應用可以僅向服務器發送并取回必需的數據,它使用SOAP或其他一些基于XML的Web Service接口,并在客戶端采用JavaScript處理來自服務器的響應.因為在服務器和瀏覽器之間交換的數據量大大減少,應用的響應速度將得到顯著提高,同時由于很多前期處理工作可以在發出請求的客戶端上完成,Web服務器的處理時間也會明顯減少.
系統主要由野外監控設施、大田信息服務器、Active MQ消息隊列服務器、Web應用服務器和研究者客戶端等5部分構成,其中Active MQ消息隊列服務器作為完整嵌入的系統不需要再次設計,下面討論其他5部分的實現結構.
2.1監控協議
系統主要涉及野外監控設施和大田信息服務器之間的網絡通訊,由于野外環境惡劣,設計好通訊協議關系到整個系統的穩定性和可靠性.為了保證惡劣環境下信息傳輸的質量,底層選擇TCP協議進行連接,監控協議在TCP穩定連接的基礎上實施,協議的設計格式如表1所示.

表1 監控協議格式
信息傳遞過程中,傳遞整數(包括4字節整數、2字節整數、1字節整數)時,位0為最低有效位(LSB,Least Significant Bit).若整數包含多個字節,字節0為最低有效字節.整型數據采用大端(Big Endian)字節序編碼,浮點數采用IEEE 745標準,字符采用ASCII編碼,網絡傳輸時,先傳輸最高有效字節.
時間使用2種編碼方法:簡單時間和精確時間.
簡單時間表示為32位整數,其中0~5位表示分,6~10位表示時,11~15位表示天,16~19位表示月,20~31位表示年;精確時間表示為64位整數,其中0~9位表示微秒,10~19位表示毫秒,20~25位表示秒,26~31位表示分,32~36位表示時,37~41位表示天,42~45位表示月,46~63位表示年.
具體監控命令由Content字段表示,主要包括信息上傳指令、命令回復指令、監控設置指令等.
2.2Web服務端實現機制
Web服務端需要在客戶端進行AJAX查詢時返回相應的json格式數據,本系統采用Struts2技術實現此目的,在struts.xml配置文件中需要指明返回類型為json格式,關鍵配置如下:
Result
Web服務端的核心是執行研究者客戶端命令和查詢大田信息服務器結果2個過程.在第1個過程中,研究者首先將指令發送至Web服務器,由Web服務器進行命令解析,解析后將對大田信息服務器的操縱指令寫入消息服務器;第2個過程中,Web服務器提供的查詢結果方法檢索消息服務器,取回大田信息服務器的返回結果,相關序列圖如圖2所示.
在圖2中消息服務器暫存了監控命令,等待大田信息服務器取出,命令執行完畢后,大田信息服務器將結果寫回消息服務器,研究者客戶端通過Web服務器不斷輪詢消息服務器,等待返回結果.
2.3大田信息服務器及監控設施實現機制
大田信息服務器使用一個線程循環查詢ActiveMQ服務器檢查是否存在研究者發送的監控命令.不論是否存在命令,都需要依據既定設置取回監控設施按時間采集的數據,相關序列圖如圖3所示.

圖2 Web服務端序列Fig.2 Sequence diagram of web server

圖3 大田信息服務器及監控設施序列Fig.3 Sequence diagram of information server and monitor
2.4研究者客戶端實現機制
研究者客戶端采用AJAX發送及檢索返回結果,關鍵代碼如下:
$("#commandbutton").click(function(){
$.ajax({
type :"GET",
url :"j_Command_Execute",
data :{
'commandText':$('#tc').val()
},
dataType :"json",
success :function(data){
if (data.commandInfo.resultIsValid){
$('#cb').prepend(data.ci.des+ "
");
} else {
$('#cb').prepend("no result
");
}
$('#tc').val("");
}});});
研究者在客戶端的文本框tc中輸入指令,按下commandbutton按鈕執行本過程發送指令.AJAX訪問Web服務端的j_Command_Execute方法,如果返回的數據為有效數據則顯示到結果顯示層cb中,否則在cb中顯示“NoResult”,最后清空tc等待下一條命令.
refreshOnTime每秒執行1次實現輪詢,輪詢時調用Web服務端的j_Command_ExecuteResult,如果返回值有效則顯示返回結果,否則顯示“no Result”.客戶端輪詢的主要代碼如下:
function refreshOnTime(){
$.ajax({
type :"GET",
url :"j_Command_ExecuteResult",
data :{},
dataType :"json",
success :function(data){
if (data.ci.resultIsValid){
$('#cb').prepend(
data.ci.des + "
");
} else
{$('#cb').prepend("no result
");}
}});
}
var sh;
sh = setInterval(refresh OnTime,1000);
系統完成后,組織了一些農業科研人員和研發人員組成測試團隊進行了試用及測試,測試環境盡量考慮了實際生產環境要求,總結配置如下:
研究者客戶機:WinXP,IE、Chrome及Firefox;
服務端:Windows 2003 Server,JDK 1.8.0,Apache Tomcat 8.0,ActiveMQ 5.10.1,MySQL 5.5;
監控設施系統核心:WinCE 5.5;
DTU:Comway.
在歷經覆蓋式集成測試、隨機抽樣功能測試、72 h的穩定性測試、隨機試用等方式的測試過程之后,測試團隊一致認為系統實用性及穩定性基本滿足科研人員要求,測試中出現的主要問題集中在圖片采集時間延遲較長、GPRS通訊受環境影響較大2個方面,前者可以在將來采用更好的采集傳感器解決,后者隨著GPRS網絡覆蓋度的增長會有改進,當前情況仍在農業科研人員可接受的范圍之內.
利用消息隊列融合C/S模式與B/S模式構建了一種降低遠端信息傳遞成本、操控端控制手段豐富的大田監測系統,完成了大田作物生長信息的定時采集、實時采集、多視圖展示、動態功能部署等多種實用功能,經農業科研人員試用,該系統表現良好.
[1]王思樂.脫耦權限組件模型研究[J].河北大學學報(自然科學版),2015,4(35):405-410.DOI:10.3969/j.issn.1000-1565.2015.04.012.
WANG S L.Decoupled privilege component modeling[J].Journal of Hebei University (Natural Science Edition),2015,4 (35):405-410.DOI:10.3969/j.issn.1000-1565.2015.04.012.
[2]HONKAVAARA E,SAARI H,KAIVOSOJA J,et al.Processing and assessment of spectrometric,stereoscopic imagery collected using a lightweight UAV spectral camera for precision agriculture[J].Remote Sensing,2013(5):5006-5039.DOI:10.3390/rs5105006.
[3]XIANG H T,TIAN L.An automated stand-alone in-field remote sensing system (SIRSS)for in-season crop monitoring[J].Computers and Electronics in Agriculture,2011,78(1):1-8.DOI:10.1016/j.compag.2011.04.006.
[4]YU Z H,CAO Z G,WU X,et al.Automatic image-based detection technology for two critical growth stages of maize:Emergence and three-leaf stage[J].Agricultural and Forest Meteorology,2013,174-175:65-84.DOI:10.1016/j.agrformet.2013.02.011.
[5]DUVEILLER G,BARET F,DEFOURNY P.Remotely sensed green area index for winter wheat crop monitoring:10-Year assessment at regional scale over a fragmented landscape[J].Agricultural and Forest Meteorology,2012,166-167(2):156-168.DOI:10.1016/j.agrformet.2012.07.014.
[6]YANG C H.A high-resolution airborne four-camera imaging system for agricultural remote sensing[J].Computers and Electronics in Agriculture,2012,88:13-24.DOI:10.1016/j.compag.2012.07.003.
[7]MONTALVO M,GUERRERO J M,ROMEO J,et al.Automatic expert system for weeds/crops identification in images from maize fields[J].Expert Systems with Applications,2013,40(1):75-82.DOI:10.1016/j.eswa.2012.07.034.
(責任編輯:孟素蘭)
Field crop growth monitoring system based on message queue service
WANG Sile,LU Sukui,YANG Wenzhu,CHEN Liping,CHEN Xiangyang
(College of Computer Science and Technology,Hebei University,Baoding 071002,China)
It is difficult to acquire the growth information of the crops in the far field.A growth monitoring system for the field crops was designed to solve the problem.The designed system adopted a hybrid architecture which combined the B/S and C/S access mode.It made use of various techniques including ActiveMQ message server and AJAX.The crop growth information can be obtained at fixed time or in real time,and can be presented in multiple ways.The system function can also be deployed dynamically.The results indicate that the presented system was comprehensive,consistent and workable,and it can satisfy all requirements of information acquisition from the filed crops.
monitoring system;message service;AJAX;infomation collection
10.3969/j.issn.1000-1565.2016.04.016
2016-01-03
國家國際科技合作專項項目(2013DFA11320);河北省自然科學基金資助項目(F2015201033);河北省教育廳項目(QN2014222)
王思樂(1971—),男,河北大城人,河北大學講師,主要從事計算機應用與模式識別方面的研究.
E-mail:fontain@163.com
TP319
A
1000-1565(2016)04-0432-06