王雁飞,王秀义
(1.山西大同大学煤炭工程学院,山西大同 037003;2.山西大同大学数学与计算机科学学院,山西大同 037009)
开放实验室管理系统的设计与实现
王雁飞1,王秀义2
(1.山西大同大学煤炭工程学院,山西大同 037003;2.山西大同大学数学与计算机科学学院,山西大同 037009)
实验室开放能够为学生提供自主实验、个性化学习的实验环境,是培养学生实践创新、动手能力的有效途径。为了提高实验设备的使用和管理效率,开发了基于Struts+Spring+Hibernate技术的开放实验室管理系统,实现了网上辅助教学和网络化、智能化管理。
开放实验室;管理系统;J2EE;Struts;Spring;Hibernate
实验室是高等学校实施素质教育、培养学生创新精神与实践能力的重要基地。实验室对学生开放、为学生提供实践学习条件是教育教学改革的重要内容。实行实验室开放能最大限度地利用实验室资源,充分发挥实验室在实施素质教育中的重要作用,为学生提供自主发展和实践锻炼的空间,是提高仪器设备利用率的有效措施。实验室开放不仅对学生的技能训练,而且对培养学生的创新意识、创新精神和开拓能力都具有重要作用。为了加强实验室全面开放管理,提高实验室的管理水平,建立网络化的实验教学和实验室管理信息平台,实现网上辅助教学和网络化、智能化管理,本文提出了基于Struts+Spring+Hibernate技术的开放实验室管理系统[1-3]。
1.1 业务流程
1.实验中心通过校园网于新学期开学第1周向学校师生公布审定的开放实验项目名称、地点、时间安排、主要仪器设备、指导教师、申请办法、面向专业等情况,供学生预约。
2.开放实验室所开放的实验项目可分为设计性、综合性、研究性实验和教学实验等四类。
3.学生可以根据自己的兴趣爱好预约实验项目、实验时间、实验地点,经实验中心审核同意后方可进行实验。
4.学生在实验项目完成后,向实验室提交实验报告、实验作品或论文等实验结果。
1.2 功能需求
开放实验室管理系统由预约登记,实验考勤,实验成绩管理以及实验室设备、办公管理构成。通过解决实验室的开放时间、实验课程、实验项目和实验研究课题的开放管理,充分提高设备的利用率,实现资源共享,满足不同层次学生实践教学的需求,提高实验教学质量,培养学生的实践能力、创新能力及团队协作精神[4]。
1.3 分析建模
通过对用户需求的深入分析,用面向对象的观点建立系统问题域模型,分别使用类图、状态图和用例图建立系统的对象模型、动态模型和功能模型[5]。
系统的用例图如图1所示。
2.1 体系结构设计
本系统采用面向对象的思想和J2EE多层体系结构,三层C/S和B/S结构相结合模式和模块化设计,大大提高了系统的安全性和可维护性,并充分发挥了C/S结构和B/S结构的优点。对于广大学生和教师的浏览、查询、数据输入等简单功能采用B/S结构,来发挥B/S结构的不限时间、地点、可移动办公的优点;对于实验教学中心及实验室管理人员的部分功能采用C/S结构,来发挥C/S结构的响应速度快、操作灵活、高强的事务处理能力、可以实现复杂的业务流程的优点[6]。
Java Web应用程序主要由JSP、Servlet、JavaBean(或EJB)组成。架构设计就是要把这些组件合理的组织在一起,使得按照这种架构设计出的程序易于维护和扩展。本系统使用MVC设计模式,采用如图2所示的技术架构。
图1 开放实验室管理系统的用例图
图2 开放实验室管理系统的技术架结构
在此架构中,使用Servlet充当控制器的角色,负责处理客户的请求。控制器收到请求后,对请求进行分析以决定调用哪个模型组件完成相应的业务操作,执行完业务操作后,控制器负责选择合适的视图(JSP页面)显示操作的结果[7-8]。
2.2 子系统结构设计
为了降低设计难度,便于分工协作和日后维护,对系统进一步分解,划分为用户界面子系统、实验预约子系统、仪器预约子系统、数据查询子系统、在线交流子系统、实验管理子系统、设备管理子系统、成绩考勤子系统、数据统计子系统和基础数据维护子系统,具体结构设计,见表1。
2.3 数据库设计
根据上述的设计规划和需求分析,本系统采用关系数据库管理系统存储数据,系统所需的实体及各个实体的情况如下:
表1 子系统结构
1.用户管理:分为管理员、教师和学生信息。
2.实验室信息:实验室基本信息表、实验设备信息表、实验室规章制度表、实验室使用状况表、实验室工作日志表。
3.实验教学管理:实验教学计划表、实验课程表、实验项目表、实验教学队伍、实验教材讲义、实验预约情况表。
4.成绩考勤管理:学生实验成绩表、学生实验出勤表。
5.设备管理:预约仪器设备表。
本系统使用基于Struts+Spring+Hibernate技术进行开发[9]。
3.1 Struts框架
Struts是一个基于MVC的Web应用框架。Struts有其自己的控制器,同时整合了其他的一些技术去实现模型和视图。在实现模型的过程中,Struts可以很容易地与数据访问技术相结合,包括EJB,JDBC和Object Relation Bridge。在实现视图的过程中,Struts能够与JSP、Velocity Templates等这些表示层组件相结合。在Struts框架中,Action-Servlet、Action充当控制器的角色,JSP充当视图的角色,ActionForm充当模型的角色[10]。
3.2 Spring框架
Spring的核心是个轻量级的容器,它是实现控制反转(Inversion of Control,IoC)容器、非侵入性的框架,并提供AOP(Aspect-oriented programming)概念的实现方式,提供对持久层、事务的支持,提供MVC Web框架的实现,并对一些常用的企业服务API提供了一致的模型封装,是一个全方位的应用程序框架,也提供了与现存各种框架(Struts、JSF、Hibernate等)的整合方案[11]。
3.3 Hibernate框架
Hibernate是一个数据持久层框架,是一种实现对象和关系之间映射(O/R Mapping)的工具,它对JDBC进行了轻量级的对象封装,使程序员可以使用对象编程思想来操作数据库。Hibernate框架用配置文件的形式来定义Java对象和数据表之间的映射关系,同时在更深的层面将数据表之间的关系解释为Java对象之间的继承及包含等关系。与使用JDBC和SQL来操作数据库相比,Hibernate能大大的提高实现的效率。使用HQL语句能够将复杂的关系算法用对象的方式描述,极大地简化了对数据的查询,加快了开发的效率。Hibernate中简单而直观的API,用于对数据库所表示的对象执行查询。要创建或修改这些对象,只需在程序中与它们进行交互,然后告诉Hibernate保存即可。这样,大量封装持久化操作的业务逻辑不再需要编写烦琐的JDBC语句,从而使数据持久层得到了极大的简化[12]。
3.4 Struts+Spring+Hibernate的整合
图3 Struts+Spring+Hibernate构架图
本系统采用MVC设计模式,并使用Struts、Spring和Hibernate一起来构建,整合结果如图3所示[13].Struts负责该系统的视图层和控制层,视图层页面由JSP和Struts标记组成,而控制层主要由一组按照Struts框架规范开发的Action类组成,它们继承了Spring的ActionSupport类;持久层由DAO组成,它们继承了Spring的HibernateDaoSupport类。系统的数据库连接、会话管理、业务类等都在Spring的应用上下文文件(aplicationContext.xml)中声明。该系统所用开发工具Eclipse 3.0,数据库SQL Server 2008,Web服务器Tomcat 6.0[14]。
3.5 关键技术
以实验预约子系统为例来说明其软件组成,结构如下:
1)视图层
(1)index.jsp:系统初始页面。
(2)login.jsp:系统登录页面。
(3)mainMenu.jsp:实验项目浏览及预约页面。
(4)query.jsp:实验项目查找页面。
(5)book.jsp:显示已预约实验项目页面。
2)控制层
(1)LoginActionod类:处理登录请求。
(2)LoginActionodForm类:Form Bean。
(3)BaseAction类:继承了Spring的ActionSupport类,直接使用ActionSupport的getWebApplicationContext()方法来获得WebApplicationContext的对象,然后利用该对象的getBean()方法从Spring的应用上下文(pplicationContext)文件中根据Bean的名称获得该Bean的对象。
(4)ProjectAction类:ProjectAction类继承了BaseAction类,它是控制层的一个核心组件.它先从视图层的页面表单获得用户的请求数据,然后根据用户的操作类型来决定调用持久层中的Project-DAO类的哪个方法来处理用户的请求数据,并把处理结果返回到哪个页面显示出来。
(5)web.xml文件。
(6)struts-config.xml文件:Action Form Bean和Action都在struts-config.xml文件中作了声明。同时还利用<plug-in>标记在struts-config.xml文件中声明了Spring的applicationContext.xml文件。
3)持久层
(1)Project类和Project.hbm.xml文件:javaBean,用来封装实验项目(project)实体,并通过映射文件Project.hbm.xml,将它的属性与数据表(project)中的列一一对应起来。Project.hbm.xml在application-Context.xml文件中作了声明。
(2)IProjectService接口和ProjectService类:IProjectService接口和ProjectService类是服务组件,ProjectService是IProjectService接口的实现类。它们定义了getProjectDAO()方法和setProjectDAO()方法,用来获得ProjectDAO对象。
(3)IProjectDAO接口和ProjectDAO类:IProjectDAO接口和ProjectDAO类是持久层的核心组件,ProjectDAO是IProjectDAO接口的实现类。它们定义了在数据库中对数据进行操作的方法。ProjectDAO类继承了Spring的HibernateDAOSupport类,直接使用getHibernateTemplate()方法来操作数据库。
(4)applicationContext.xml文件:applicationContext.xml文件是该系统的一个核心配置文件。它声明了数据源、会话工厂(SessionFactory)、DAO类等。
开放实验室管理系统采用J2EE技术进行开发,具有功能齐全、伸缩自如、灵活方便、容易维护、安全可靠等特点。该系统投入运行后,实现了开放实验室的网络化、智能化管理,对学校的学分制改革和学生个性化培养提供了有力支持,学院的实验教学水平和实验室使用效益有明显的提高。
[1]施瑞,于晓勇,柳英,等.高校实验室开放管理模式的探索[J].实验技术与管理,2010,27(4):164-166.
[2]张丽杰,刘建成,朱慧云.开放实验室系统的分析与设计[J].实验技术与管理,2009,26(8):101-104.
[3]蔡勇,阿依木古丽,陈丽华,等.实验室开放网上预约系统的开发与应用[J].实验技术与管理,2010,27(4):97-99.
[4]博思特软件.开放实验室解决方案[EB/OL].(2010-06-10)[2010-07-20].http://www.whbestsoft.com/project/project_shiyanshi.asp.
[5]张海藩.软件工程导论[M].北京:清华大学出版社,2008.
[6]赵强.J2EE应用开发[M].北京:电子工业出版社,2006.
[7]范会联,李献礼.基于J2EE的网上选课系统设计[J].计算机应用研究,2006,23(9):172-174.
[8]肖杰浩.Hibernate+Struts的J2EE应用开发[J].计算机与信息技术,2007(5):19-20.
[9]席晓峰,吕良双,逯鹏.使用J2EE框架技术构建可用的Web应用[J].计算机工程与应用,2005(29):208-210.
[10]孙卫琴.精通Struts基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004.
[11]邬继成.J2EE开源编程精要15讲[M].北京:电子工业出版社,2008.
[12]孙卫琴.精通Hibernate-Jave对象持久化技术详解[M].北京:电子工业出版社,2005.
[13]杨兴,谯石,董文,等.基于轻量级J2EE框架高校教务管理系统的设计与实现[J].计算机系统应用,2007(3):75-76.
[14]孙卫琴.Tomcat与Java Web开发技术详解[M].北京:电子工业出版社,2008.
〔编辑 高海〕
Design and Implementation of Open Laboratory Magagement System
WANG Yan-fei1,WANG Xiu-yi2
(1.School of Coal Engineering,Shanxi Datong University,Datong Shanxi,037003;2.School of Mathematics and Computer Science,Shanxi Datong University,Datong Shanxi,037009)
Opening laboratories can create a experimental environment of independent experiment and personalized learning for students,is an effective channel to foster the practical innovation of students and fine working skills.In order to improve utility and management efficiency of experimental equipment,a new opening laboratories managwment system based on Struts+Spring+Hibernate was developed,and a net-working and intelligent Web booking system was realized for the laboratory.
open laboratory;magagement system;J2EE;Struts;Spring;Hibernate
TP39
A
1674-0874(2011)01-0012-04
2010-10-26
王雁飞(1963-),女,山西大同人,高级实验师,研究方向:电气自动化。