张 帆,刘 刚
(中国农业大学现代精细农业系统集成研究教育部重点实验室,北京100083)
运用先进的MIS和软件开发平台,对农业生产环境监测信息进行网络化和智能化的管理,已经成为了农业信息化发展的趋势。目前国内外已有较多先进的设备可以对农业环境信息进行实时自动的采集与监测,这些实时监测数据为农业生产科学管理提供了重要的依据,如基于Zigbee的环境信息监测系统、基于WiFi的温室监控系统、基于组态平台的温室群监控系统、基于GPRS的农业环境检测系统等[1-6]。但这些监测管理系统平台的搭建大多局限于现场监测或是针对某个区域某种作物的监测,多采用单机版软件系统,系统通用性和协调性较差、很难进行更新和二次开发,对IT资源的利用效率也相对不高。
由于农业生产环境的地域性和分散性的特点,若要实施随时随地地统一监测与管理,较为准确、实时地获得这些农业生产环境监测数据,以便及时作出科学合理的管理决策至关重要。借此,本文运用.NET平台和MIS技术建立了农业生产环境信息监测系统,缓解了地域空间的限制,及时准确地远程获取农业生产环境监测数据,实时进行多元信息的传输、监测与管理,并将这些信息实时对外发布和资源的多方共享。该系统实现了农业生产环境多元信息的自动化、规范化、智能化监测与管理,有利于提高农业作业的效率,降低生产成本,同时也为人类防治农业灾害、增产增收提供了充分、可靠、准确的科学依据。
基于.NET的农业生产环境信息监测系统设计目标是实现对农业生产环境信息的远程监测、查询与管理,充分体现获取信息的实时性和分布性,系统可维护性、可移植性和可扩展性以及平台的独立性。
本系统采用Web流行的B/S模型,实现农业生产环境信息的远程监视和农户管理人员的异步查询。从结构和功能上,本平台采用ASP.NET的三层结构:用户界面层、业务逻辑层和数据访问层,如图1所示。其中,用户界面层即客户端Web浏览器的显示界面,用户可通过浏览器访问本系统;业务逻辑层是系统的核心部分,负责主要的业务应用处理任务,它为用户界面层提供功能调用,同时又可调用数据访问层所提供的功能来访问数据库;数据访问层主要通过ADO.NET对象对数据库SQL Server存放的数据进行增、删、改等操作,来处理业务逻辑层对数据的请求。整个系统基于.NET的Web应用框架,具有易于开发、维护和部署的优点[7]。
图1 系统三层B/S结构
ASP.NET是微软公司继ASP之后推出的新一代Web开发构架,是用于创建、管理和部署Web应用程序的主流技术,也是.NET Framework的一部分[8]。它基于模块和.NET组件技术,使系统具有了更好的可扩展性和可维护性等特性。鉴于其具有编译的服务器页面使执行速度更快、支持实时更新、支持的语言更多等优点,本系统采用ASP.NET和 C#语言进行开发[9-10],Web应用服务器采用 Microsoft Windows2003 Server/IIS 6.0,数据库管理系统采用MSSQL Server 2008,在Microsoft Visual Studio.NET 2008集成开发环境下完成组件的开发、系统的集成与测试。
基于.NET的农业生产环境信息监测系统方便了用户对农业生产环境多元信息的及时掌握,用户可随时随地通过Web浏览器实时监测其权限范围内的远程终端所采集的多元环境信息,并进行数据历史查询、分析处理与报表输出等操作。系统整体功能结构设计如图2所示。
图2 系统功能结构
公告信息浏览模块主要功能:实现对热点农情、农业知识、农业管理制度、公告通知等的信息浏览。
环境信息实时监测模块主要功能:将传感器终端采集到的空气温湿度、土壤温湿度、CO2、光照等数据实时上传至数据库,再通过数据采集动态刷新页面实现多参数信息的实时综合监测;将远端摄像头采集的农业环境图片、视频信息通过3G网络上传到服务器端的ftp上,然后再利用图片、视频传输存储软件将其实时地传输至图片浏览网页和视频播放网页进行动态监视。
历史监测数据查询模块主要功能:实现对某监测点指定时间段的感知数据、图片等信息的查询。
数据处理分析模块主要功能:实现对监测点环境参数的变化趋势分析;设定监测点的监测标准值进行逻辑判断,超出警戒值,记录报警。
GIS地图监测模块主要功能:实现GIS地图中监测区域监测点安装位置的搜索、环境信息的实时地图显示、地图的缩放,以及选点划线创建路径等功能。
后台信息管理维护模块主要功能:实现系统管理员对知识库的信息和网站基本信息的管理 (包括录入、浏览、删除、修改、排版、导出、备份等),以及用户权限的分配。
信息发布模块主要功能:实现系统管理员对动态新闻、公告通知、预测报警信息等网页信息的及时发布,以及重要农情信息的短信下发。
数据是信息化管理系统运行的基础,只有对数据进行有效分析和组织才能发挥系统应有的作用,而数据库是整个信息化管理系统中数据处理、分析、组织和管理的核心。于是数据库的设计至关重要,它的合理与否直接影响到整个系统的开发与运行效率[11-12]。本系统采用一库多表的形式来建立“农业生产环境信息数据库”,选用SQL Server 2008作为后台数据库管理系统,在.Net组件中通过调用存储过程进行数据操作;选用PowerDesigner12.5进行数据库模型设计,实现从概念模型 (E-R图)到物理模型 (SQL Server数据库表格模型)间的自动转换,并且生成创建数据库的SQL脚本。由于系统业务逻辑比较复杂,数据表繁多,采用PowerDesigner工具,让表与表之间通过外键合理连接,使得数据库设计概念清晰,开发效率有所提高。
系统的整个开发过程是基于微软的新一代软件开发平台.NET,页面的组织架构至关重要。建立逻辑清晰的页面结构,有利于Web应用程序的开发和维护,以及用户的学习与使用。系统的页面组织如图3所示。
图3 系统的页面组织
根据用户权限的不同,将页面分为3大部分:普通用户页面、监测区管理员专用页面、系统管理员专用页面,分别进行开发。普通用户即未注册用户只能浏览系统中的公共页面;监测区管理员即授权用户,可根据其授予的权限浏览相应监测区的农业环境信息,并可进行数据的分析、查询、报表输出等操作;系统管理员则主要负责系统的后台维护,包括用户的权限分配、信息的更新发布、数据库表的管理维护等。
3.2.1.NET组件设计技术
系统采用ASP.NET技术和C#编程语言进行设计开发,在Web页中引入了一些.NET组件设计,便于程序的编写和维护,实现了可重用性。如条件组件用于设计农业环境信息查询条件,包括查询的起始时间、截止时间、监测点选择等;报表组件用于显示监测区农业环境的报表信息,可以是一个监测点的某项环境信息,也可以是多个监测点的某几项环境信息;文章组件用于编辑新闻、通告等文本信息,可以插入图片与文档、设置显示字体等。
3.2.2 ADO.NET数据访问技术
ADO.NET技术是一个基于标准的、面向创建分布式数据共享应用程序的编程模型。ADO.NET提供了两个核心组件:DataSet和.NET数据提供程序 (包括Command、Connnection、DataAdapter 和 DataReader)[13]。本系统 通过ADO.NET与SQL Server直接相连的方式来实现对数据库数据的访问。使用SqlConnection类建立与数据源的连接;Sql-Command类则负责执行SQL的处理命令,将数据源返回的数据存放到DataSet中,再通过开发平台的DataGrid控件显示在页面上;SqlDataReader类可从数据库中检索只读、只进的数据流,数据不在内存中缓存,系统开销小,用于快速检索[14];DataSet和SqlDataAdapter类是无连接的数据集,在填充后马上释放数据源的连接再对数据进行读取与更改,这样不仅减轻了数据库的负担,也使网页的访问速度有所提高。
3.2.3 Ajax动态更新页面技术
Ajax是异步JavaScript和XML,是创建交互式Web应用网页的一组开发技术。和传统的Web网页更新技术不同,使用Ajax动态更新页面技术相当于在服务器和客户机之间加了一个中间层,即Ajax引擎,这样用户在请求服务器返回数据时无需等待Web浏览器刷新页面所带来的白屏状态。本系统数据采集页面等需要实时更新的页面均采用Ajax动态更新页面技术,设定每隔1min读取一次数据库实时更新的农业生产环境监测数据。因此只有在固定的时刻点客户端才会通过JavaScript调用Ajax引擎向服务器发出HTTP请求,与此同时,用户可以继续浏览网页进行交互过程;当请求返回时,Ajax引擎接受数据并用相应指定的JavaScript函数来完成页面的局部刷新。此外,用户也可以借助于Ajax,使用JavaScript和DHTML向服务器发送异步请求,动态更新页面[15]。使用Ajax动态更新页面技术刷新页面,提高了信息的网络传输速度和用户的浏览体验效率。
3.2.4 多媒体嵌入技术
为了实现对农业环境多元信息的监测,系统的实现以多媒体嵌入技术为依托。用户可以通过网页在线播放或下载相关视频、Flash、音频,浏览相应监测点的实时图片与历史图片 (支持缩略图查询),实现了对监测区农业环境信息随时随地地监测与了解。为了支持多种文件格式,系统创建了多媒体类MediaControl,其中包括了音频、视频、图片等用户自定义控件文件,将这个多媒体类嵌入到所需功能网页,即可实现多媒体监测功能。下面以Real Player为例来实现系统视频的播放控制功能,方法是使用<object>标签把RealPlayer ActiveX控件内嵌到网站中。主要代码如下:
<object height="30"classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" style = " width:412px"/>
<param name="CONTROLS"value="ControlPanel"/>
<param name="CONSOLE"value="Video"/>
<param name="SRC"value=" <%=Session["path"]% >"/>
<param name="AUTOSTART"value="TRUE"/>
<param name="PREFETCH"value="0"/>
<param name="LOOP"value="0"/>
<param name="NUMLOOP"value="0"/>
</object>
<object>标签中的classid参数用来标识嵌入的Real-Player播放器,SRC参数指定了播放的文件或源文件地址,把其VALUE值设为<%=Session["path"]% >,以调用用户会话中所需的播放文件地址,放入播放列表中。
3.2.5 系统安全性
由于系统采用B/S模型,它的研究为今后的农业生产指导提供了准确、可靠的科学依据,因此其安全性尤为重要。网络信息的多方共享特性和系统后台大量重要信息的存储使信息的安全问题越发突出,如果因网络技术的先天不足、黑客木马的攻击而导致信息、数据的丢失破坏或恶意篡改,将直接影响到信息管理系统的完整性、机密性和可用性,因此须构建一种安全的防御体系。基于.NET的Web应用系统的安全性是建立在Windows安全性、IIS安全性和.NET Framework提供的安全架构的基础之上的,在实现时系统主要采取了以下的安全策略[16-17]:
(1)数据库访问安全策略:使用.NET组件封装连接数据库的字符串,编译此组件后,通过访问该组件来建立与数据库的安全连接,防止非法用户入侵应用系统窃取数据库连接方面的相关信息。
(2)身份验证策略:采用ASP.NET提供的表单身份验证,它支持对照自定义数据存储 (即SQL Server数据库)的身份验证和基于角色授权,而且需要编写的代码相对较少。
(3)用户授权策略:基于角色的授权策略,对具体网页的访问与操作由调用方的角色身份来决定从而加以保护。系统根据角色将用户群分为三类共享相同安全权限的用户组:普通用户、监测区管理员、系统管理员。由于用户权限的不同,只有被赋予相应权限的用户才可访问后台数据库资源。另外,为了保证用户的合法权益不受损失,用户只要连续5次登陆失败,该用户的帐号将被被暂时封禁,需向系统管理员申请解封。
(4)安全通信策略:系统采用SSL/TLS(安全套接字层/传输层安全)来保证浏览器与Web服务器之间网络通信的保密性和可靠性,使用户与服务器应用程序之间的通信不被攻击者窃听,从而实现系统安全通信。与此同时,关闭系统中易受黑客和病毒等攻击的端口如Telnet。
(5)数据验证策略:防止SQL注入攻击,从设计之初入手,加强对用户输入的校验。通过验证数据类型的合法性、过滤非法性输入、对动态SQL语句中所使用的数据进行数据验证等方法,来防范SQL注入攻击。
3.3.1 测试部署方案
为了验证系统的实用性和安全性,本试验搭建了如图4所示的硬件系统。将传感器节点采集到的监测数据通过ZigBee无线传感器网络传至网关节点,再由串口上传至本地PC机,构成温室现场监测子系统;通过GPRS技术建立现场监测系统与远程监测中心的远程无线连接,将采集信息实时发送到远程监测中心的农业生产环境信息监测子系统中;农业生产环境信息监测子系统提供多种服务,便于用户进行数据的监测、查询、分析与输出。
图4 硬件系统总体框架
测试部署分为两个阶段。第一阶段,在实验室内将软硬件安装好分别进行测试,测试成功后集成安装调试;运行一段时间待系统各项性能指标均合格后,进入第二阶段,将整套设备进行实地安装部署;实际应用中,设置传感器节点采集频率为10min,网关节点则通过GPRS每5s上传一组数据至服务器 (采集与上传频率可适时修改),此外,每个温室群配备5~7个传感器节点 (如空气温湿度)、1个网关节点和1台PC机。目前,该系统已稳定运行于内蒙准格尔、山东、天津等地的温室种植示范园区近2年 (如图5所示),系统基本达到了预期的效果,界面友好可视化、操作简捷、数据传输及时准确。
3.3.2 测试效果
用户可通过网络浏览器来访问基于.NET的农业生产环境信息监测系统,实时监测相应权限范围内温室种植示范区的环境参数变化,查询温室报警记录并作出相应的环境调控措施,从而改善作物的生长环境,提高作物的产量和质量。图6~图9是系统测试过程中部分网页的展示效果图。
图5 硬件系统测试部署
其中,图6是系统的首页,主要包括热点文章、最新文章等农情信息新闻的浏览显示,以及天气预报、友情链接、监测试验点分布地图等热点链接,点击首页右上角的登陆按钮,可进入系统的登陆页面。图7是后台信息管理界面,主要包括用户权限设置、新闻发布、网站基础设置三大类。图8是内蒙古示范区管理员登陆系统后对所有内蒙古温室监测区2011.8.29的农业生产环境信息的监测界面。图9是内蒙古A区温室4的管理员登陆系统后对所在A区温室4的2011.8.27下午的环境信息监测趋势图界面。
本文设计并实现了一个基于.NET的农业环境信息监测系统,系统运用B/S体系结构进行Web发布,弥补了传统C/S结构数据存取方式的不足,实现了用户通过Web浏览器随时随地监测农业环境信息的功能。试验结果证明,基于ASP.NET架构的该系统运行稳定可靠,具有较为完善的功能和友好的人机界面,易于扩展,易于维护。它有效地结合了SQL Server数据库使其庞大的监测数据得到了快速高效的处理,同时采用了CSS技术和Java script脚本使其具有美观、灵活、便捷等特点。该系统通过无线传感器网络实时监测作物的生长环境信息,通过图像、视频跟踪显示,快速掌握作物的生长发育情况,较大提高了农业环境信息监测与管理的质量,为进一步的农业决策提供科学支撑。
[1]ZHANG Zhiwei.Design of sunlight greenhouse environmental parameters monitoring system based on ZigBee[J].Journal of Anhui Agricultural Sciences,2011,39(26):16393-16397(in Chinese).[张志伟.基于ZigBee技术的日光温室环境参数监测系统 设 计 [J].安 徽 农 业 科 学,2011,39(26):16393-16397.]
[2]ZHAO Yuan,DU Jian,LU Shu.Design of greenhouse environment monitoring system based on Zigbee[J].Modern Electronics Technique,2011,34(11):37-39(in Chinese).[赵媛,杜坚,芦澍.基于ZigBee的温室花房环境监测系统设计 [J].现代电子技术,2011,34(11):37-39.]
[3]MA Zengwei,MA Jinru,LIYamin.Intelligent greenhouse monitoring and control system design based on wireless fidelity[J].Journal of Agricultural Mechanization Research,2011,33(2):154-157(in Chinese).[马增炜,马锦儒,李亚敏.基于WIFI的智能温室监控系统设计 [J].农机化研究,2011,33(2):154-157.]
[4]YANG S,Dai F,Cardei M,et al.On connected multiple point coverage in wireless sensor networks[J].International Journal of Wireless Information Networks,2006,13(4):289-301.
[5]YUAN Hongbo,ZHANG Dening,WEN Peng.Environment detection system of agricultural greenhouse based on GPRS [J].Journal of Agricultural Mechanization Research,2011,33(5):123-125(in Chinese).[袁洪波,张德宁,温鹏.基于GPRS的农业温室环境检测系统 [J].农机化研究,2011,33(5):123-125.]
[6]XUE Wenying,FU Ping,ZHANG Xin,et al.Design and application about monitoring and control system for greenhouse group based on configuration platform [J].Northern Horiculture,2011(9):53-56(in Chinese).[薛文英,傅平,张馨,等.基于组态平台的日光温室群监控系统软件设计与应用 [J].北方园艺,2011(9):53-56.]
[7]GUO Xiaofeng,YAO Shijun,YIN Zuwei.Design and application of framework of web application based on.NET [J].Computer Engineering and Design,2008,29(2):454-456(in Chinese).[郭晓峰,姚世军,尹祖伟.基于.NET的Web应用框架的设计与应用 [J].计算机工程与设计,2008,29(2):454-456.]
[8]YANG Yue,TANG Qiuyan,LIANG shuang.Web design program:ASP.NET [M].Beijing:Tsinghua University Press,2011(in Chinese).[杨玥,汤秋艳,梁爽.Web程序设计:ASP.NET[M].北京:清华大学出版社,2011.]
[9]QIANG Le,BAO Kejin,SHEN Tuhao.ASP.NET structure research and implementation of power monitoring information system[J].Computer Engineering and Design,2009,30(10):2524-2526(in Chinese).[强乐,鲍可进,申屠浩.ASP.NET构造电力监测信息系统的研究与实现[J].计算机工程与设计,2009,30(10):2524-2526.]
[10]XU Bing.Implementation of experiment booking management system based on.NET [J].Computer Engineering and Design,2009,30(5):1259-1261(in Chinese).[徐兵.基于.NET的实验预约管理系统的实现[J].计算机工程与设计,2009,30(5):1259-1261.]
[11]ZHANG Rong,WANG Peijun,CAO Yongyan,et al.Design of ASP.NET-based information management system for experiment center[J].Computer Technology and Development,2011,21(5):235-237(in Chinese).[张荣,王培俊,曹永彦,等.基于ASP.NET技术的实验中心信息化管理平台的设计[J].计算机技术与发展,2011,21(5):235-237.]
[12]CHEN Qi,ZHANG Lianhai,CAO Yemin.Design and implementation of.NET-based metering information management system [J].Computer Engineering and Design,2006,27(6):1030-1032(in Chinese).[陈琦,张连海,曹业敏.基于.NET的计量信息管理系统的设计与实现[J].计算机工程与设计,2006,27(6):1030-1032.]
[13]James Huddleston,JIANG lingling,FENG Fei.Beginning C#databases from novice to professional[M].Beijing:Tsinghua U-niversity Press,2008(in Chinese).[哈德斯通,姜玲玲,冯飞.C#数据库入门经典 [M].北京:清华大学出版社,2008.]
[14]GUAN Xijing.Great programming forum:C#core development technology from approaches to master[M].Beijing:Publishing House of Electronics Industry,2009(in Chinese).[管西京.编程大讲坛:C#核心开发技术从入门到精通 [M].北京:电子工业出版社,2009.]
[15]The central software incubator in national 863.C#from approaches to master[M].Beijing:Posts and Telecommunication Press,2010(in Chinese).[国家863中部软件孵化器.C#从入门到精通[M].北京:人民邮电出版社,2010.]
[16]TIAN Zhen,YOU Zhi,LI Zhanhuai.Design and implementation of online auxiliary system for education with.NET [J].Computer Engineering and Design,2006,27(18):3460-3462(in Chinese).[田珍,游智,李战怀.基于.NET的网络辅助教学系统的设计与实现 [J].计算机工程与设计,2006,27(18):3460-3462.]
[17]WANG Chaoyang.Web application system security technology based on.NET [J].Network Security Technology& Application,2008(10):68-70(in Chinese).[王朝阳.基于.NET的Web应用系统安全技术[J].网络安全技术与应用,2008(10):68-70.]