基于消息队列服务的大田作物生长监测系统

2016-11-07 02:00王思乐卢素魁杨文柱陈丽萍陈向阳
关键词:服务端大田研究者

王思乐,卢素魁,杨文柱,陈丽萍,陈向阳

(河北大学 计算机科学与技术学院,河北 保定 071002)



基于消息队列服务的大田作物生长监测系统

王思乐,卢素魁,杨文柱,陈丽萍,陈向阳

(河北大学 计算机科学与技术学院,河北 保定071002)

为解决大田作物生长信息获取难的问题,设计开发了一个大田作物生长监测系统.该系统采用B/S与C/S相结合的体系结构,通过综合运用ActiveMQ消息服务器、AJAX等技术,实现了大田作物生长信息的定时采集、实时采集、多视图展示、动态功能部署等功能.实验结果表明,该系统功能完备,稳定性、可操作性强,完全满足进行大田作物长势信息采集的各项要求.

监测系统;消息服务;AJAX;信息采集

精细农业是现代化农业理念的标志,其核心是实时获取野外农田中影响作物成长的相关信息,进而诊断作物长势,以达到准确进行地块的灌溉、施肥、喷药等农业活动,最大限度地提高水、肥和杀虫剂的利用效率,获得最佳的经济效益和生态效益的目的[1-3].实时获取大田作物相关信息的计算机系统是精细农业能够顺利开展的基本保证.及时采集的作物长势信息为进一步的农业分析提供了决策依据[4-9].基于相机的野外监测系统可通过直接在田间设置观测设备获取作物的长势信息,对精细农业研究具有重要意义.

C/S结构实现的监测系统需要各个客户端连接同一服务器,对于大田作物生长监测系统,若将大田传感器控制客户端和操控客户端并联的话,研究者便被限制在服务端可连接的物理区域.采用B/S结构能够最大限度的扩展研究者的工作空间,但直接使用浏览器连接大田传感器控制客户端极为困难.为解决此矛盾,本文通过使用Active MQ桥接B/S结构和C/S结构的方法,达到了研究者在任意互联网可连接位置,既可以方便获取前端设备的定时、实时信息、对前端设备远程维护,又可以对缓存数据进行浏览比较.该架构对远程监测系统具有一定普适意义和较高实用价值.

1 系统结构及原理

大田作物生长监测系统的基本结构主要包括野外监控设施、大田信息服务器、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服务器的处理时间也会明显减少.

2 系统设计

系统主要由野外监控设施、大田信息服务器、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);

3 系统应用结果分析

系统完成后,组织了一些农业科研人员和研发人员组成测试团队进行了试用及测试,测试环境尽量考虑了实际生产环境要求,总结配置如下:

研究者客户机: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网络覆盖度的增长会有改进,当前情况仍在农业科研人员可接受的范围之内.

4 结束语

利用消息队列融合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

猜你喜欢
服务端大田研究者
高等教育中的学生成为研究者及其启示
“大田后生仔”歌唱家乡
研究者称,经CRISPR技术编辑过的双胞胎已出生。科学将如何回应?
研究者调查数据统计
新时期《移动Web服务端开发》课程教学改革的研究
小田变大田破解农地零碎化
“小田并大田”要有序推进
医生注定是研究者
贺大田作品
摸清黑客套路防范木马侵入