杨玉建
摘 要:基于B/S架构的土壤-茶系统的集成开发选用开源的Eclipse平台,其数据库和有关表格运用MySQL管理。Spring+Struts+Hibernate(SSH)集成框架下研发土壤-茶系统,实现了轻量级包装和3层业务的分离管理:基于Struts框架执行表现层的业务,Spring负责业务层的操作,Hibernate进行数据层的管理。该系统涵盖了土壤GPS定位信息系统、茶树病虫害诊断系统、养分和水分系统的 Web服务内容,实现了土壤-茶系统信息的智能化管理和定量决策。研究结果表明,基于SSH整合技术的多层土壤-茶应用系统架构有效地提高了系统的可扩展性、可维护性、稳定性及开发效率。
关键词:土壤-茶系统; Hibernate; Struts; Spring; SSH集成框架
中图分类号:S126 文献标识号:A 文章编号:1001-4942(2014)04-0016-05
1 引言
在我国农业迈入智慧农业的进程中,基于B/S架构的涉农应用系统研究[1~5]逐渐成为热点。其中,SSH技术支持下的涉农应用系统是B/S架构应用的一个重要亮点。SSH是三个开源框架Struts、Spring和Hibernate的简称,是在软件开发和架构过程中产生的中间件系统。使用Struts开源软件开发Web应用可缩短系统开发与设计用时,Spring促进了Struts的发展,而Hibernate作为对象持久化框架,能提高软件开发效率。三者的整合应用,发挥了各自优势,使软件开发更加快速与便捷[1~7]。
茶是我国的特色经济作物,其生产与分布受自然条件影响较大,在茶园合理采摘、病虫草害有效防控及品种因素确定后,肥水管理成为茶叶优质、高产、高效的关键。化肥的过量使用、土壤有机质缺乏和旱涝不均等问题一直困扰着北方茶,尤其是山东茶的生产。开展肥水高效利用及水肥一体化计算机系统研究,有利于智能化调控茶叶产量与品质[8,9]。目前有关茶计算机信息系统研发还只是零星的研究[10,11],亟待深入研究以提高土壤-茶系统信息的定量化、智能化。
运用一些开发性语言,如VB、Delphi、C++、PHP等进行COM组件开发及功能模块的程序设计,虽缩短了开发时间,但由于程序底层不具有开源性,导致对商用平台架构的依赖性和应用成本的高额性,这促使研发者选用开源系统。随着软件开源性以及软件生态系统的发展,为迅速提升北方茶尤其是山东茶的土壤水肥产出效益,从底层开源,进行模块的设计以及系统事件的无缝连接,开发具备高可靠性与伸缩性的土壤-茶水肥决策系统程序迫在眉睫。本项目立足于B/S软件并基于软件发展的最新成果,基于SSH底层开源性架构,对土壤-茶系统中影响茶叶优质高产的因素进行条理化、系统化,设计北方茶品种特性、生态条件及栽培技术的Web服务系统,实现土壤-茶系统信息的智能化管理和决策。
2 SSH 整合框架技术分析
SSH(Struts+Spring+Hibernate)是Web 层最成熟稳定的技术之一,也是一种常见的开源解决方案。B/S技术支持下的土壤-茶系统架构减轻了客户端处理的负载,从而使业务开发能在服务器端集中管理。SSH集成的J2EEE开源框架,不仅简化了系统开发过程,而且解决了系统开发和整合过程中出现的代码冗余问题,提高了系统的可维护性和扩展性。
Struts面向对象设计,采用MVC(Model, View, Controller Design)设计模式进行应用程序的输入、处理和输出,提高了系统开发的灵活性、可重用性和健壮性。Hibernate作为J2EE的持久层框架和开源对象关系映射(ORM)框架工具,可对JDBC进行轻量级的对象封装,用HQL语句进行对象操作,调用API操作数据,避免了逻辑层直接写SQL语句,完成了数据持久化。并通过对hibernate.cfg.xml文件配置连接数据库,同时加载*.hbm.xml文件,在程序中可通过操作*.java类来操作数据库。Spring与Hibernate整合的过程,指把Hibernate代码委托给Spring管理。Spring贯穿表现层、业务层和数据持久层,核心集中于IOC(控制反转,又称依赖注入,用反射的方式调用get和set方法)方面,主要运用该框架的依赖注入实现Hibernate持久化任务的托管,完成Dao层的管理。
在SSH 整合框架中,Struts主要把业务逻辑层和表现层分开,并不涉及业务层与持久层的关联。Spring主要对业务层进行细化,即更深层次地降低耦合程度,并利用延时注入思想组装代码,提高系统的扩展性和灵活性。Hibernate主要负责Java对象和关系数据库之间的映射,本质是数据库服务的中间件,利用数据库及配置文件(如hibernate.cfg.xml)为应用程序提供数据持久化服务。SSH 整合框架结合了3个框架各自特点及Web应用分层思想,为Web应用各层提供了相应的整合策略。整合框架以Spring框架为核心,向下整合Hibernate 进行数据持久化访问,向上整合Struts使用MVC模式控制,可清晰划分应用层次;同时采用依赖注入思想,降低了层间耦合;并通过XML配置文件装配组件,使各模块之间的调用从代码中分离出来,从而降低了系统各层的耦合度,易于维护和扩展。
3 系统实现
3.1 运行环境及开发程序包
在Tomcat6.0 Web服务器和IE6.0浏览器的运行环境下,选用Windows XP操作系统,MySQL 5.5数据库系统,JDK开发工具包,Eclipse3.6开发集成环境及相关插件进行系统开发。
3.2 系统实现
3.2.1 土壤-茶B/S系统设计 根据对系统业务功能的分析,可抽象出系统所管理的主要实体关系表,并形成如图1所示的土壤-茶B/S系统模块结构。
该土壤-茶系统包括三层:表现层(Presentation Layer)、业务层(Bussiness Layer)和数据层(Data source Layer)。表现层,即网页,与业务层之间的接口是网页和Action接口,由Struts处理并实现。Struts负责为用户管理请求和响应,提供一个控制器代理调用业务逻辑和其他上层处理,处理Action异常,为显示提供模型,执行用户接口验证等方面任务。业务层,包括业务逻辑和事
图1 土壤-茶B/S系统模块结构图
务管理等,由Spring管理,处理应用程序的业务逻辑和业务验证、管理事务、预留与其他层交互的接口、管理业务层对象之间的依赖、增加在表现层和持久化对象操作之间的灵活性、从表现层中提供一个上下文给业务层获得业务服务、管理从业务逻辑到持久化对象操作的实现。数据层,负责存放和管理应用的持久性业务数据。业务层和数据持久层之间由数据访问对象Dao处理,对于数据的持久化操作由Hibernate处理,可完成使查询数据条目对象化处理,并保存、更新、删除储存在数据库中的数据信息等任务。
3.2 表现层设计
在Struts框架下,常规的Servlet被拆分为ActionServlet、FormBean、ActionBean三部分。ActionServlet配合Struts-config.xml完成页面导航,而具体的数据获取与相应逻辑则由FormBean和ActionBean来完成。Struts的核心是Controller,即ActionServlet,而ActionServlet的核心就是Struts-config.xml。Struts和Spring整合的实质是让Struts能访问交给Spring进行托管的类。
3.3 业务层设计
业务层设计通过Spring框架来完成。为了将控制层与业务层分开,又将业务层分为Dao层、业务逻辑层、Web层[2]。Dao层完成与持久化对象的交互,实现数据的增、删、改、查操作。Dao层首先定义Dao接口,编写Dao接口的实现类(JavaBean),类中利用Hibernate提供的接口编写实现Dao接口中定义的方法,该层中的方法供Service层调用,以实现系统业务逻辑;业务逻辑层负责实现系统业务逻辑,以Dao层为基础,通过对Dao组件的调用、封装完成操作,首先定义Service接口,并定义实现系统所需的业务逻辑方法,编写Service接口的实现类(JavaBean),该类中要实现Service 接口中定义的方法,该层的方法供控制器(Action) 调用。Web 层包括MVC 模式中的控制层和表现层,由Struts 完成。控制层编写Action首先根据系统具体需求定义一系列方法,这些方法通过调用Service 层来实现系统业务逻辑,并通过提供私有变量get、set 方法从前台表现层接收用户输入的数据或将经过处理的数据传到表现层展示给用户。在Struts 机制中该组件作为分控制器供主控制器调用。
3.4 数据层持久化设计
该层通过Hibernate框架来完成。首先根据上述数据库设计在DBMS中创建关系表,然后创建Hibernate的配置文件hibernate.cfg.xml,配置连接数据库和所操作实体类对应配置文件的Hibernate参数,利用Eclipse的插件MyEclipse的“反转工程”工具生成相应的实体类和实体映射文件*.hbm.xml,实体类和实体关系表一一对应。
3.5 系统模块和应用
MySQL数据库主要设置本系统的土壤位置和GPS定位信息、茶树病虫害诊断、养分和水分等系统栏目。土壤-茶B/S决策系统登录界面如图2所示,输入用户名和密码后点击登录按钮,通过验证后进入B/S内容模块系统。系统数据库名称为Soil_TeaDB,数据库包括茶园地块信息表、茶园环境信息表、茶园土壤水分养分和障碍信息表、茶树生长和病虫害表,这4张表构成了整个系统的数据处理。根据ID编号,进行茶园培土、施肥、喷药和茶生长过程中如剪枝信息的数据录入,重点对土壤水分动态演变状况进行记录,在数据录入过程中强调障碍性因素数据的录入和分析,如土壤酸碱度信息。
图2 系统登录界面
茶叶品种特性及其生育状况、生态条件和栽培技术措施是影响茶叶优质高产的3个主要方面。其中,施肥对茶叶产量、品质影响在栽培管理中居于首位,但目前山东茶园的氮磷钾肥料利用率仍比较低,氮肥利用率在30%左右,施氮量高时仅10%,磷肥、钾肥的利用率分别在20%和60%左右[8,9]。水分关系到茶树新陈代谢强度和方向,影响茶叶中各种有机物的形成和积累,对产量和品质的影响也极大。土壤-茶系统综合考虑了土壤环境和养分含量状况、不同树龄茶树的需肥特点及不同生长期需水、需肥规律等因素,在系统研发时提取了一些关键模块,可通过各项数据的基本输入及数据建库、筛选和建模,形成专家决策,并把决策结果可视化,最终将水分、养分定时定量、按比例直接提供到茶树根系最佳吸收位置。这些关键模块主要包括:(1)土壤GPS定位模块。该模块的主要功能是基于GIS和GPS技术实时定位采样机位置,并按照采样设计模块中规划好的最优路径,引导采样器到达预定采样位置。(2)茶树病虫害诊断系统。该模块可将茶树主要病虫害的生物学表现,通过文字、图像、声音、视频等方式以简便、快捷、直观的方式体现在系统中,并针对病虫害发生情况提出合理的防治措施。(3)养分和水分系统。该模块主要是将采集、测定的土壤养分和水分数据建立成数据库。土壤养分属性包括有机质、全氮、速效氮等的含量,土壤水分含量由时域反射仪(TDR)测定。
4 小结
本研究基于SSH框架设计了北方土壤-茶系统,实现了土壤位置GPS定位系统、茶树病虫害诊断系统、养分和水分系统的B/S信息的实时更新及智能决策。SSH 整合框架可较好地实现表现层、业务层及数据层的分离,使系统具有很好的稳定性、可扩展性和可维护性。在今后的研究中,力求完善土壤-茶系统决策的功能,如集成空间GIS数据的管理和决策,进行产品认证和项目成果等信息公布,并提供产品交易、技术对接平台服务,促进茶生产、加工和销售环节的信息化。该系统预留与山东省农村农业信息化综合服务平台的数据接口,可实现该系统内容快速嵌入平台,推送给用户。
参 考 文 献:
[1] 刘之光,吕丽萍,丁桂玲,等. 基于JavaEE-Asp.net 技术的蜜蜂种质资源信息数据库系统的建立与应用[J].中国农业科技导报,2012,14(3):69-73.
该土壤-茶系统包括三层:表现层(Presentation Layer)、业务层(Bussiness Layer)和数据层(Data source Layer)。表现层,即网页,与业务层之间的接口是网页和Action接口,由Struts处理并实现。Struts负责为用户管理请求和响应,提供一个控制器代理调用业务逻辑和其他上层处理,处理Action异常,为显示提供模型,执行用户接口验证等方面任务。业务层,包括业务逻辑和事
图1 土壤-茶B/S系统模块结构图
务管理等,由Spring管理,处理应用程序的业务逻辑和业务验证、管理事务、预留与其他层交互的接口、管理业务层对象之间的依赖、增加在表现层和持久化对象操作之间的灵活性、从表现层中提供一个上下文给业务层获得业务服务、管理从业务逻辑到持久化对象操作的实现。数据层,负责存放和管理应用的持久性业务数据。业务层和数据持久层之间由数据访问对象Dao处理,对于数据的持久化操作由Hibernate处理,可完成使查询数据条目对象化处理,并保存、更新、删除储存在数据库中的数据信息等任务。
3.2 表现层设计
在Struts框架下,常规的Servlet被拆分为ActionServlet、FormBean、ActionBean三部分。ActionServlet配合Struts-config.xml完成页面导航,而具体的数据获取与相应逻辑则由FormBean和ActionBean来完成。Struts的核心是Controller,即ActionServlet,而ActionServlet的核心就是Struts-config.xml。Struts和Spring整合的实质是让Struts能访问交给Spring进行托管的类。
3.3 业务层设计
业务层设计通过Spring框架来完成。为了将控制层与业务层分开,又将业务层分为Dao层、业务逻辑层、Web层[2]。Dao层完成与持久化对象的交互,实现数据的增、删、改、查操作。Dao层首先定义Dao接口,编写Dao接口的实现类(JavaBean),类中利用Hibernate提供的接口编写实现Dao接口中定义的方法,该层中的方法供Service层调用,以实现系统业务逻辑;业务逻辑层负责实现系统业务逻辑,以Dao层为基础,通过对Dao组件的调用、封装完成操作,首先定义Service接口,并定义实现系统所需的业务逻辑方法,编写Service接口的实现类(JavaBean),该类中要实现Service 接口中定义的方法,该层的方法供控制器(Action) 调用。Web 层包括MVC 模式中的控制层和表现层,由Struts 完成。控制层编写Action首先根据系统具体需求定义一系列方法,这些方法通过调用Service 层来实现系统业务逻辑,并通过提供私有变量get、set 方法从前台表现层接收用户输入的数据或将经过处理的数据传到表现层展示给用户。在Struts 机制中该组件作为分控制器供主控制器调用。
3.4 数据层持久化设计
该层通过Hibernate框架来完成。首先根据上述数据库设计在DBMS中创建关系表,然后创建Hibernate的配置文件hibernate.cfg.xml,配置连接数据库和所操作实体类对应配置文件的Hibernate参数,利用Eclipse的插件MyEclipse的“反转工程”工具生成相应的实体类和实体映射文件*.hbm.xml,实体类和实体关系表一一对应。
3.5 系统模块和应用
MySQL数据库主要设置本系统的土壤位置和GPS定位信息、茶树病虫害诊断、养分和水分等系统栏目。土壤-茶B/S决策系统登录界面如图2所示,输入用户名和密码后点击登录按钮,通过验证后进入B/S内容模块系统。系统数据库名称为Soil_TeaDB,数据库包括茶园地块信息表、茶园环境信息表、茶园土壤水分养分和障碍信息表、茶树生长和病虫害表,这4张表构成了整个系统的数据处理。根据ID编号,进行茶园培土、施肥、喷药和茶生长过程中如剪枝信息的数据录入,重点对土壤水分动态演变状况进行记录,在数据录入过程中强调障碍性因素数据的录入和分析,如土壤酸碱度信息。
图2 系统登录界面
茶叶品种特性及其生育状况、生态条件和栽培技术措施是影响茶叶优质高产的3个主要方面。其中,施肥对茶叶产量、品质影响在栽培管理中居于首位,但目前山东茶园的氮磷钾肥料利用率仍比较低,氮肥利用率在30%左右,施氮量高时仅10%,磷肥、钾肥的利用率分别在20%和60%左右[8,9]。水分关系到茶树新陈代谢强度和方向,影响茶叶中各种有机物的形成和积累,对产量和品质的影响也极大。土壤-茶系统综合考虑了土壤环境和养分含量状况、不同树龄茶树的需肥特点及不同生长期需水、需肥规律等因素,在系统研发时提取了一些关键模块,可通过各项数据的基本输入及数据建库、筛选和建模,形成专家决策,并把决策结果可视化,最终将水分、养分定时定量、按比例直接提供到茶树根系最佳吸收位置。这些关键模块主要包括:(1)土壤GPS定位模块。该模块的主要功能是基于GIS和GPS技术实时定位采样机位置,并按照采样设计模块中规划好的最优路径,引导采样器到达预定采样位置。(2)茶树病虫害诊断系统。该模块可将茶树主要病虫害的生物学表现,通过文字、图像、声音、视频等方式以简便、快捷、直观的方式体现在系统中,并针对病虫害发生情况提出合理的防治措施。(3)养分和水分系统。该模块主要是将采集、测定的土壤养分和水分数据建立成数据库。土壤养分属性包括有机质、全氮、速效氮等的含量,土壤水分含量由时域反射仪(TDR)测定。
4 小结
本研究基于SSH框架设计了北方土壤-茶系统,实现了土壤位置GPS定位系统、茶树病虫害诊断系统、养分和水分系统的B/S信息的实时更新及智能决策。SSH 整合框架可较好地实现表现层、业务层及数据层的分离,使系统具有很好的稳定性、可扩展性和可维护性。在今后的研究中,力求完善土壤-茶系统决策的功能,如集成空间GIS数据的管理和决策,进行产品认证和项目成果等信息公布,并提供产品交易、技术对接平台服务,促进茶生产、加工和销售环节的信息化。该系统预留与山东省农村农业信息化综合服务平台的数据接口,可实现该系统内容快速嵌入平台,推送给用户。
参 考 文 献:
[1] 刘之光,吕丽萍,丁桂玲,等. 基于JavaEE-Asp.net 技术的蜜蜂种质资源信息数据库系统的建立与应用[J].中国农业科技导报,2012,14(3):69-73.
该土壤-茶系统包括三层:表现层(Presentation Layer)、业务层(Bussiness Layer)和数据层(Data source Layer)。表现层,即网页,与业务层之间的接口是网页和Action接口,由Struts处理并实现。Struts负责为用户管理请求和响应,提供一个控制器代理调用业务逻辑和其他上层处理,处理Action异常,为显示提供模型,执行用户接口验证等方面任务。业务层,包括业务逻辑和事
图1 土壤-茶B/S系统模块结构图
务管理等,由Spring管理,处理应用程序的业务逻辑和业务验证、管理事务、预留与其他层交互的接口、管理业务层对象之间的依赖、增加在表现层和持久化对象操作之间的灵活性、从表现层中提供一个上下文给业务层获得业务服务、管理从业务逻辑到持久化对象操作的实现。数据层,负责存放和管理应用的持久性业务数据。业务层和数据持久层之间由数据访问对象Dao处理,对于数据的持久化操作由Hibernate处理,可完成使查询数据条目对象化处理,并保存、更新、删除储存在数据库中的数据信息等任务。
3.2 表现层设计
在Struts框架下,常规的Servlet被拆分为ActionServlet、FormBean、ActionBean三部分。ActionServlet配合Struts-config.xml完成页面导航,而具体的数据获取与相应逻辑则由FormBean和ActionBean来完成。Struts的核心是Controller,即ActionServlet,而ActionServlet的核心就是Struts-config.xml。Struts和Spring整合的实质是让Struts能访问交给Spring进行托管的类。
3.3 业务层设计
业务层设计通过Spring框架来完成。为了将控制层与业务层分开,又将业务层分为Dao层、业务逻辑层、Web层[2]。Dao层完成与持久化对象的交互,实现数据的增、删、改、查操作。Dao层首先定义Dao接口,编写Dao接口的实现类(JavaBean),类中利用Hibernate提供的接口编写实现Dao接口中定义的方法,该层中的方法供Service层调用,以实现系统业务逻辑;业务逻辑层负责实现系统业务逻辑,以Dao层为基础,通过对Dao组件的调用、封装完成操作,首先定义Service接口,并定义实现系统所需的业务逻辑方法,编写Service接口的实现类(JavaBean),该类中要实现Service 接口中定义的方法,该层的方法供控制器(Action) 调用。Web 层包括MVC 模式中的控制层和表现层,由Struts 完成。控制层编写Action首先根据系统具体需求定义一系列方法,这些方法通过调用Service 层来实现系统业务逻辑,并通过提供私有变量get、set 方法从前台表现层接收用户输入的数据或将经过处理的数据传到表现层展示给用户。在Struts 机制中该组件作为分控制器供主控制器调用。
3.4 数据层持久化设计
该层通过Hibernate框架来完成。首先根据上述数据库设计在DBMS中创建关系表,然后创建Hibernate的配置文件hibernate.cfg.xml,配置连接数据库和所操作实体类对应配置文件的Hibernate参数,利用Eclipse的插件MyEclipse的“反转工程”工具生成相应的实体类和实体映射文件*.hbm.xml,实体类和实体关系表一一对应。
3.5 系统模块和应用
MySQL数据库主要设置本系统的土壤位置和GPS定位信息、茶树病虫害诊断、养分和水分等系统栏目。土壤-茶B/S决策系统登录界面如图2所示,输入用户名和密码后点击登录按钮,通过验证后进入B/S内容模块系统。系统数据库名称为Soil_TeaDB,数据库包括茶园地块信息表、茶园环境信息表、茶园土壤水分养分和障碍信息表、茶树生长和病虫害表,这4张表构成了整个系统的数据处理。根据ID编号,进行茶园培土、施肥、喷药和茶生长过程中如剪枝信息的数据录入,重点对土壤水分动态演变状况进行记录,在数据录入过程中强调障碍性因素数据的录入和分析,如土壤酸碱度信息。
图2 系统登录界面
茶叶品种特性及其生育状况、生态条件和栽培技术措施是影响茶叶优质高产的3个主要方面。其中,施肥对茶叶产量、品质影响在栽培管理中居于首位,但目前山东茶园的氮磷钾肥料利用率仍比较低,氮肥利用率在30%左右,施氮量高时仅10%,磷肥、钾肥的利用率分别在20%和60%左右[8,9]。水分关系到茶树新陈代谢强度和方向,影响茶叶中各种有机物的形成和积累,对产量和品质的影响也极大。土壤-茶系统综合考虑了土壤环境和养分含量状况、不同树龄茶树的需肥特点及不同生长期需水、需肥规律等因素,在系统研发时提取了一些关键模块,可通过各项数据的基本输入及数据建库、筛选和建模,形成专家决策,并把决策结果可视化,最终将水分、养分定时定量、按比例直接提供到茶树根系最佳吸收位置。这些关键模块主要包括:(1)土壤GPS定位模块。该模块的主要功能是基于GIS和GPS技术实时定位采样机位置,并按照采样设计模块中规划好的最优路径,引导采样器到达预定采样位置。(2)茶树病虫害诊断系统。该模块可将茶树主要病虫害的生物学表现,通过文字、图像、声音、视频等方式以简便、快捷、直观的方式体现在系统中,并针对病虫害发生情况提出合理的防治措施。(3)养分和水分系统。该模块主要是将采集、测定的土壤养分和水分数据建立成数据库。土壤养分属性包括有机质、全氮、速效氮等的含量,土壤水分含量由时域反射仪(TDR)测定。
4 小结
本研究基于SSH框架设计了北方土壤-茶系统,实现了土壤位置GPS定位系统、茶树病虫害诊断系统、养分和水分系统的B/S信息的实时更新及智能决策。SSH 整合框架可较好地实现表现层、业务层及数据层的分离,使系统具有很好的稳定性、可扩展性和可维护性。在今后的研究中,力求完善土壤-茶系统决策的功能,如集成空间GIS数据的管理和决策,进行产品认证和项目成果等信息公布,并提供产品交易、技术对接平台服务,促进茶生产、加工和销售环节的信息化。该系统预留与山东省农村农业信息化综合服务平台的数据接口,可实现该系统内容快速嵌入平台,推送给用户。
参 考 文 献:
[1] 刘之光,吕丽萍,丁桂玲,等. 基于JavaEE-Asp.net 技术的蜜蜂种质资源信息数据库系统的建立与应用[J].中国农业科技导报,2012,14(3):69-73.