农田管理系统设计与实现毕业设计论文Word文件下载.docx
《农田管理系统设计与实现毕业设计论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《农田管理系统设计与实现毕业设计论文Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
![农田管理系统设计与实现毕业设计论文Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-12/30/aceb916c-8be5-471f-be6e-d52c80777d1c/aceb916c-8be5-471f-be6e-d52c80777d1c1.gif)
该系统是用来做科研研究和为领导决策层提供相关数据,立体,交叉,完整。
为确保最大限度的将农田田间相关数据传播到需求者手中,系统采用多条立体交叉的信息传播链;
高安全,高兼容,易维护,可扩展,采用了跨平台的技术,保证在各种操作系统环境下系统各项功能的正常运行,易于进行后期的维护和管理工作,易于进行系统升级功能扩展和完善。
平台总体结构图
(2)
系统总体功能结构,可分为GIS功能模块试验田功能模块农事操作管理模块农资管理模块农机管理模块与系统管理模块
管理者登录界面图(3)
2.2系统架构
信息系统的主要运行模式有:
文件服务器模式主机终端模式C/S模式(client/sever)与B/S(brouser/sever)模式其中文件服务器模式与主机终端模式基于成本规模与安全的考虑,大多数情况下不再使用。
因此,现在大部分信息管理系统都使用C/S模式或者B/S模式,或者两种模式结合一起用。
鉴于C/S模式的成熟性和B/S
模式的先进性,本系统将这两种模式结合在一起使用。
本平台架构创新之处在于能实时采集地理信息和处理事务在实时采集地理信息方面,首次把移动GIS技术应用到农业信息化的野外数据采集上,能使人们更少地携带测量工具,只需带具有GPS功能的智能手机或PDA即可在实时处理事务能力方面,系统设计在固定的时间段内服务器对客户端发送的数据进行智能化处理本系统是基于移动GIS智能手机和无线通信技术为辅,形成了在农田远程用智能手机编辑并发送服务请求,通过无线通信技术送至服务系统,处理后将结果反馈到手机GIS的无线服务模式这种服务模式能很容易被使用者所接受,它降低了移动GIS的技术门槛,提高了该农田信息管理系统的及时性与交互性,同时也实现了可移动的基于GIS网络的信息管理系统。
3.1硬件环境
支持系统运行的硬件环境由两台安装在服务器机柜内的HPProLiantDL360G7型服务器及其附属系统(显示器UPSKVM)组成每台HPProLiantDL360G7型服务器均由英特尔至强5600系列的2个NC382i双口千兆以太网卡,包含有2个处理器,18个DIMM插槽,电源类型为热插拔冗余电源
3.2软件环境
开发平台采用WindowsXPprofessionalSP3操作系统环境下,采用MicrosoftVisualStudio2005和AdobeDreamweaverCS3作为开发平台,应用XHTML和JavaScript语言编写浏览器端代码,以JAVA语言编写服务器端代码部分其他文件使用记事本和AdobePhotoshopCS3等软件加以辅助开发与测试阶段在本地系统中的IIS服务器作为支持,经VS2005编辑器编译成MSIL程序集后上传至服务器发布平台在Windows2003server操作系统环境下,使用IIS(网络信息服务器)作为HTTP服务器,处理静态HTML页面访问,通过ISAPI服务器扩展调用服务器端程序,并将运算结果以静态HTML的形式返回客户端的浏览器选用的MicorosoftSQLServer2005作为数据库服务器。
4.系统实现与应用
4.1系统实现
系统实现分别在手机PDA端和服务器端两方面体现手机PDA端应用程序使用MicrosoftVisualStudio2005环境开发,利用微软自带的API接口获得使用者的坐标信息,使用者输入相关数据信息,与服务器进行数据交互应用服务器使用MicrosoftVisualStudio2005+MicrosoftSQLServer2005+IIS环境开发。
农田信息界面(4)
开发的GIS平台有2m左右的误差,选取商业通信服务电信3G服务,实现快速数据传输,当遇到较多的误差时,可以争取到更多的时间纠正在服务器数据处理方面,根据数据的批处理功能,在固定的时间段内定时处理与传送数据。
4.2系统应用与特点
田间农户利用具有GPS功能的智能手机或PDA进行一系列操作(为适应农田操作员使用习惯,移动系统操作界面可以选择以亩为单位),农户在田间对田块进行相关操作,位置坐标会自动附在短信中通过平台送到服务器端,服务器根据数据库中的相关数据获取当前坐标地块的信息,从服务器传送到田间操作员手中,然后操作员可以根据这些信息指导生产系统服务器的界面。
使用该系统在优良的土壤条件下进行水稻种植过程中,田间作业可利用该系统通过移动GIS客户端记录某田块的所有耕作过程,可以为以后在该田块种植其他作物提供历史数据,提高水稻的种植效率,间接地使水稻增产。
蔬菜每年种植次数比较多,对种植蔬菜地块的土壤属性数据要求增加,以及对该地块历史种植情况的透明度要求增高,利用该系统通过移动GIS客户端查找到该地块,利用系统服务器返回的属性数据信息来决定适宜种植蔬菜的地块。
根据水稻和蔬菜的使用情况表明,该系统可以应用于田间,能及时更新和查询服务器信息。
接下来准备提炼开发出一些可移植的公共组件类,适合未来的基于组件的开发。
4.3系统实现关键技术
该系统的关键创新之处在于把移动GIS首次应用于本系统,使该系统能很好地服务农田野外工作者,能让他们及时地把田间土壤信息、气象信息与农田作物等信息上传到系统服务器,在移动客户端也能进行有效的信息处理操作。
该系统实现的关键技术有以下三个方面:
4.3.1系统访问性能的优化
在Web应用系统中,由于用户访问量的潜在增长可能性很大,系统会存在一些对网站不利的用户(比如黑客),因此系统的数据库选择和数据库访问技术等相关技术就显得更加重要。
因此,系统选用微软公司比较成熟数据库服务器系统,采用了数据库连接池技术,建立了属于自己的单独数据库连接池,每当系统在建立连接和释放连接时,可以减少额外的消耗这样可以有效地进行数据库访问性能的优化,也可以完全控制连接池的工作方式
4.3.2系统数据的安全实现机制
在MVC架构与SQLServer数据库技术开发的应用方面,实现安全的身份验证主要有声明方式和编程方式前者不需要编程,通过在部署描述信息中用XML标记来声明,由相关容器来实现,这种方法比较容易实现,但其不如编写代码的方法灵活而本系统采用的是自定义编程方式进行身份验证,方式灵活也很安全
4.3.3系统的并发进程控制
采用对数据库进行排他锁的控制,当有多个系统操作员手持带有本系统的PDA在田间操作,需要对同一组数据进行远程读取和编辑时,通过排他锁的控制很好地解决
5部分核心代码
5.1种子类实现的接口
packagecom.sxxy.dao;
importjava.util.List;
importcom.sxxy.po.SeedInfo;
publicinterfaceSeedDAO{
publicbooleanadd(SeedInfoseed);
publicbooleanupdate(SeedInfoseed);
publicbooleandelete(intseedId);
publicSeedInfogetSeed(intseedId);
publicList<
SeedInfo>
getAllSeed(StringseedInput,StringqueryType,intuserId);
}
5.2查询农田类型的servlet类
publicclassFormTypeQueryServletextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
publicFormTypeQueryServlet(){
super();
}
publicvoiddestroy(){
super.destroy();
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doPost(request,response);
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
request.setCharacterEncoding("
utf-8"
);
StringTypeName=request.getParameter("
TypeName"
FormTypeServiceservice=newFormTypeServiceImpl();
List<
FormTypeInfo>
list=service.query(TypeName);
request.setAttribute("
list"
list);
request.getRequestDispatcher("
/view/formType/formType_list.jsp"
).forward(request,response);
publicvoidinit()throwsServletException{
5.3农田状态的jsp页面
<
%@pagelanguage="
java"
import="
java.util.*,com.sxxy.po.*"
pageEncoding="
UTF-8"
%>
%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"
:
//"
+request.getServerName()+"
"
+request.getServerPort()
+path+"
/"
;
!
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
>
html>
<
head>
<
basehref="
%=basePath%>
title>
MyJSP'
formCondition_list.jsp'
startingpage<
/title>
metahttp-equiv="
pragma"
content="
no-cache"
cache-control"
expires"
0"
keywords"
keyword1,keyword2,keyword3"
description"
Thisismypage"
styletype="
text/css"
--
body{
margin-left:
0px;
margin-top:
margin-right:
margin-bottom:
.STYLE1{
font-size:
12px
.STYLE3{
12px;
font-weight:
bold;
.STYLE4{
color:
#03515d;
a{
text-decoration:
none;
#033d61;
A:
hover{
COLOR:
#f60;
TEXT-DECORATION:
underline
-->
/style>
script>
varhighlightcolor='
#c1ebff'
varclickcolor='
#51b2f6'
functionchangeto(){
source=event.srcElement;
if(source.tagName=="
TR"
||source.tagName=="
TABLE"
)
return;
while(source.tagName!
="
TD"
source=source.parentElement;
cs=source.children;
if(cs[1].style.backgroundColor!
=highlightcolor&
&
source.id!
nc"
cs[1].style.backgroundColor!
=clickcolor)
for(i=0;
i<
cs.length;
i++){
cs[i].style.backgroundColor=highlightcolor;
functionchangeback(){
if(event.fromElement.contains(event.toElement)||source.contains(event.toElement)||source.id=="
return
if(event.toElement!
=source&
for(i=0;
cs[i].style.backgroundColor="
functionclickto(){
//alert(cs.length);
=clickcolor&
cs[i].style.backgroundColor=clickcolor;
else
/script>
scripttype="
text/javascript"
functionadd(){
window.location="
view/formCondition/formCondition_add.jsp"
}
/head>
body>
UserInfouserInfo=(UserInfo)request.getSession().getAttribute("
userInfo2"
%>
formaction="
servlet/FormConditionQueryServlet"
method="
post"
tablewidth="
100%"
border="
cellspacing="
cellpadding="
<
tr>
<
tdheight="
30"
background="
resource/images/tab_05.gif"
<
<
<
tdwidth="
12"
height="
<
imgsrc="
resource/images/tab_03.gif"
width="
height="
/>
/td>
td>
<
<
tdclass="
STYLE4"
align="
center"
&
nbsp;
请输入农田种植者状态:
<
inputtype="
text"
name="
ConditionName"
style="
width:
290px"
submit"
value="
查询"
50px"
button"
添加"
onclick="
add()"
/tr>
/table>
16"
resource/images/tab_07.gif"
bo