- 1 -
基于 SSH 的粮食储存实验网络管理系统
周慧玲,姬嘉兴**
(北京邮电大学自动化学院,北京 100876)
摘要:本文就粮食储存实验具有不间断的长期性,实验人员无法长期停留在实验室进行数据
观察的问题进行了分析,提出了利用互联网的B/S架构解决这个问题。对于所采用的Struts,
Spring 及 Hibernate(SSH)的 J2EE 的 B/S 开发的主流应用框架工作原理作了介绍,最后阐述
了如何将他们整合协调在一起设计了粮食储存实验网络管理系统。为粮食储存实验提供了网
络在线实验创建,审批,实验用品管理,实验数据在线查看,分析等服务,实现了粮情检测
实验对于网络信息化的要求。
关键词:自动化;粮食储存实验网络管理系统;MVC;SSH
Network management system of grain storage experiment
based on SSH
Zhou Huiling, Ji Jiaxing
(Automation school,Beijing University of Post and Telecommunication,Beijing 100876)
Abstract: In this paper, non-stop and long-term grain store experiments and the problem that
laboratory worker can not long remain in the laboratory for the observation of experiments were
analyzed. The use of the Internet's B / S structure to solve this problem was proposed. For used Struts,
Spring and Hibernate (SSH) for J2EE-B / S application framework were introduced. Finally how to
integrate them to coordinate with the design of the network management system of grain storage
experiment was described. And this network management system of grain storage provides a network
of online storage experiment to create, approve, experimental supplies management, experimental data
online viewing, analysis and other services to achieve the Grain detection experiments for network
information requirements.
Keywords:Automation; Network management system of grain storage experiment; MVC; SSH
0 引言
粮食储存关系到国计民生,粮食储存实验对粮食储存至关重要。粮食储存实验检测系统
主要由上位 PC 机,智能节点、数据采集电路和 CAN 通讯控制驱动电路构成。上位管理机
主要完成整个监测网络系统的参数设置、粮库的状态查询、数据处理、粮情分析、超限实时
报警等功能,但是上位机不具有实验数据管理的功能,而粮食储存实验的长时间的不间断性,
需要实验人员在不同的地点进行实验,观察与数据分析,甚至调整实验过程。如果能够在粮
食储存实验检测系统之上建立运用 B/S 系统对实验以及实验数据进行管理将能够很好的解
决粮食储存实验对于远程观察监控的要求,具有很好的实际应用意义和良好的应用前景。基
于 J2EE 的 SSH(Struts,Spring,Hibernate)框架的 B/S 网络系统由于其代码耦合度低,易于配置
和维护等特性被广泛的应用于多种 web 信息管理系统,也同样适用于粮食储存实验数据管
理。因此采用 SSH 的 J2EE 开发框架,基于粮食储存实验数据采集系统开发粮食储存实验的
上层实验管理系统,对于完善粮食储存实验管理具有实际意义。系统的整体架构如图 1
- 2 -
图 1 粮食储存实验系统整体结构
1 技术简介
本系统采用 J2EE 的技术与方法主要有 MVC 设计模式,SSH(Struts,Spring,Hibernate)
设计框架,采用的数据库和 web 服务器分别为 Oracle 和 Tomcat。
MVC 简介
本系统采用 J2EE 的技术与方法主要有 MVC 设计模式,SSH(Struts,Spring,Hibernate)
设计框架,采用的数据库和 web 服务器分别为 Oracle 和 Tomcat。
MVC (Model - View – Controller)是一个设计模式,它强制性地使应用程序输入、处理和
输出分开。MVC 包括三个核心部件(M)数据模型,(V)是指用户界面,(C)控制器。MVC 将 M
和 V 的实现代码分离,从而使同一个程序可以使用不同的表现形式。C 存在的目的则是确
保 M 和 V 的同步,一旦 M 改变,V 应该同步更新。MVC 设计模式具有低耦合性,高重用
性和适用性,较低的生命周期成本,快速的部署,可维护性,有利于软件工程化管理等诸多
优点。
Struts,Spring,Hibernate(SSH)正是 J2EE 中对于 MVC 模式的一种典型实现。Struts 是
SSH 的基础框架,它负责 MVC 的分离并实现视图层;而 Hibernate 用于提供持久层的支持
以实现对象关系映射,从而实现对数据持久层的操作;Spring 以业务逻辑类的方式连接了
Struts,以 DAO(Data Access Objects 数据访问对象)方式连接 Hibernate 从而实现了和数据
源进行交互。
SSH 所实现的 MVC 框架的工作流程
SSH 工作流程如图 2 所示。
1 浏览器将来自页面的请求 URL 提交给 Struts 的核心控制类 Actionservlet,2 由此核心
控制类根据 的配置列表将客户端请求分配给不同的 Action 业务层处理。 3
Action 类通过 JavaBean 方式将来自客户端的请求提交给包含在 Spring 框架中的 Manager 类
的实现类 ManagerImp,此 JavaBean 调用由 文件配置。
ManagerImp 通过 Bean 的方式获得客户端的请求表单 Actionform,此 JavaBean 同样是通过
配置。31 ManagerImp 业务实现类通过 JavaBean 的方式将由
配置的 HibernateDao 的持久层连接起来进行交互业务处理业
务逻辑。最后将业务逻辑处理结果反馈给 Action。32 持久层由 Hibernate 根据 DAO 的 POJO
- 3 -
中国科技论文在线
Model 及其对应映射文件 与配置好的数据连接池操作数据库。进行数据的持
久化并将操作结果返回业务逻辑层。4 最后由 Action 反馈给客户端表示层。
图 2 SSH 的 MVC 设计模式工作原理
2 系统设计与实现
所有用户通过登录验证后,系统会根据用户的权限返回相应的操作页面,用户在对应的
页面中可以根据自己的操作权限进行操作。操作结束后退出系统,系统的架构如图 3 所示。
图 3 粮食储存实验网络管理系统结构
图中功能需求最终都会体现在数据库逻辑中,例如权限控制由数据库用户表单中的权限
字段来体现,粮食储存实验项目状态控制,由对应数据库项目表单的状态标志字段体现。由
此实现以上所有需求均体现为客户端对于数据库的操作。本系统的技术实现主要包括 Web
交互层,业务逻辑层,数据持久层,通过此三层结构实现了客户浏览器端以代码低耦合的方
式操作数据库。如图 4 所示。
- 4 -
中国科技论文在线
图 4 系统的技术实现层次
Web 交互层
本系统 Web 交互层采用 Struts 的 MVC 框架结构与服务层交互。Struts 框架把应用分成
模型,视图,和控制器。用户界面表示层,也就是 Struts 的视图层采用 Flash 和 Java Serve Page
相结合的方式。Flash 用于生动的展现实验人员所需要的动态数据曲线与实验流程图定义。
Flash 界面与 Struts 使用公有定义语言 xml 文件进行数据交互。Struts 的控制器是
ActionServlet。控制器接受接收客户端提交的 Action Form 表单,转给模型层 Action 处理。
由 Action 调用 Spring 业务层的 Manager 类来处理业务逻辑,其中 是 Struts
框架的配置说明文件。
业务逻辑层
业务逻辑层采用 Spring 框架连接 Struts 的用户交互层和 Hibernate 的数据持久层。Spring
框架的核心是 IOC(Inversion Of Control 控制反转)和 DI(Dependence Injection,依赖注入)
机制。IOC 就是把组建之间的依赖关系提取出来,由 java 容器来具体配置。DI 是对 IOC 更
形象的解释,即由 java 容器在运行期间动态的将依赖关系注入到组件中,其中
是 Spring 控制反转依赖的重要配置文件。由 Manager 接口的实现类使用依赖注入的方式实
现业务逻辑处理,并协调 Hibernate 进行数据持久化。
数据持久层
数据库与 Java 程序之间的交互则采用了Hibernate的持久层,使用Hibernate的Dao Class
来映射数据库中的表或者视图等,使用 Data Source/Connection Pool 作为 Java 语言与数据库
交互的接口,其中 为 Hibernate 层的重要配置文件。
3 以数据查询为例详解系统技术实现
实验数据由粮食储存实验的检测系统上位 PC 机通过因特网的 webservices 上传至服务
器数据库,统一管理。客户端需要查看实验数据,首先需经过登录验证,由系统的过滤器通
过 SSH 查询数据库用户表查找该用户及其访问权限,若用户登陆信息正确则返回数据查看
请求页面(Struts 对应的视图层 V)。实验人员通过 flash 页面点击发送查看数据请求,请求被
提交给Struts-MVC层的(C)控制器ActionServlet。ActionServlet根据配置文件
- 5 -
中国科技论文在线
将客户端请求发送给对应的模型层(M)Action。Action 通过控制反转的方式将客户端查看实
验数据的请求交给对应的Spring所实现的业务层,其中是控制反转的配置文件。
Spring 判断客户端所请求的粮食储存实验数据的类型,并通过 Dao Class 请求 Hibernate
查询数据库。Hibernate 根据数据源配置,以及数据库表对应的映射文件 查
询数据库,获得查询结果列表返回给 Spring 的业务处理类。Spring 将 Hibernate 返回的数据
生成为标准 Dom tree 的 xml 文件。Struts 的模型层(M)Action 将查询获得的对应的粮食储存
实验数据 xml 文件返回给客户端(Struts 的视图层 V)。由 V 层解析 xml 文件并展示给客户端。
客户端可以根据需求由 flash 对数据进行筛选生成不同的数据曲线。
4 结论
粮食是国民经济的基础,是关系国计民生的特殊战略物资,其数量、质量、安全直接关
系到国民经济的健康发展和社会大局的安全稳定,因此,进一步完善国家粮食储备体系具有
重大战略意义,而粮食储存实验是完善国家粮食储备体系的必经阶段。鉴于粮食储存实验不
间断的长期性以及粮食储存实验对于网络信息化的要求。基于 J2EE 的 SSH 框架所设计的
B/S 粮食储存实验管理系统在国家粮食局粮食科学研究院的实施取得了预期的效果,提高了
粮食储存实验的效率;统一了对于粮食储存实验的管理;实现了远程的实验数据的实时监控
与简单数据统计分析。同时,本系统低耦合的特点可以进一步进行扩展实现各级粮食管理部
门远程查询。国家粮食管理部门也可以使用本系统通过下属各级粮食管理部门的局域网及时
获得各级粮库的粮情信息,以便进行更加有效地行业监管。
[参考文献] (References)
[1] Midleware,Hibernate Reference Doeumentation[S],,2003
[2] Cecillia,The Apache Struts Web Application Framework[M],USA:2008
[3] Parker, Caroline1,Shields, Julie. Grain store management support using the GrainPlan DSS[J]. American
Society of Agricultural and Biological (11):19~90
[4] 张月金,谭军.国内粮情测控系统现状及发展趋势.农业装备技术[J].2009(8):35~4
[5] 韩效国,陈良光.三层结构数据库粮情检测系统软件设计.粮油食品科技[J]. 2003(2):11~35
[6] 乔瑞林,李永平,王艳芳. 粮食储存品质监测系统设计. 现代电子技术[J] 2009(14): 51~53
[7] 蓝会立,张认成,毛思文. 基于无线传感器网络的粮情检测系统设计. 农机化研究[J]2006(9):99~102
[8] 刘爽,赵丹丹. Spring 和 Hibernate 的 J2EE 三层架构研究. 大连民族学院学报[J].2009(1):81~84
[9] 郭宏杰,朱荣. 基于 SSH 的物流信息系统的研究与实现. 计算机与数字工程[J].2009(2):63~65
[10] 李文杰,翁胜利. 基于 J2EE 集成开源框架的研究与应用. 计算技术与自动化[J].2008(3):63~68