开放实验室管理信息系统的开发与实现
2015-05-04罗频捷
罗频捷, 温 荷
(1. 成都东软学院 实验管理中心, 四川 成都 611844;2. 成都东软学院 计算机科学与技术系, 四川 成都 611844)
开放实验室管理信息系统的开发与实现
罗频捷1, 温 荷2
(1. 成都东软学院 实验管理中心, 四川 成都 611844;2. 成都东软学院 计算机科学与技术系, 四川 成都 611844)
为解决开放实验室人工管理困难的问题,建立了基于信息化系统的开放实验室管理模式和管理流程,使用Struts2、Spring、Hibernate框架建立了开放实验室管理系统。系统采用JEE5的分层架构将表示层、控制层、业务逻辑层和数据持久层进行分离,具有良好的稳定性和可维护性。
开放实验室; SSH框架; 信息系统
开放实验室就是向学生提供进行实验和科学研究的空间和设备,增加实验室使用时间,给学生提供个性化发展的平台,培养学生的创新精神和创新能力[1-2]。开放实验室的重点在于“开放”,实现实验时间和实验内容对学生完全开放,使学生可以根据自己的学习计划,预约实验时间和实验项目[3-4]。传统的实验室管理是以实验室教师人工管理为主,由于实验时间、实验项目和参与实验的学生随时在变化,人工管理很难满足不断变化的需求。为促进开放实验室的健康快速发展,提高开放实验室管理水平,有必要研发一套科学、合理的开放实验室管理信息系统。
1 系统架构设计
1.1 开放实验室管理信息系统的特点
高校的开放实验室管理信息系统不同于普通的管理信息系统,它的特点主要表现在以下3方面。
(1) 研发成本低。高校实验室管理信息系统的研发通常作为学校的科研项目,项目经费有限,很难采购第三方成熟组件,并且要求低成本运行。所以,高校开放实验室管理信息系统一般采用开源技术研发。
(2) 业务复杂。开放实验室管理信息系统使用人数众多,除了教职员工以外,还有几万名学生在同时使用。实验室管理涉及大量仪器设备,部分仪器设备的型号参数仅有细微差别,管理内容繁杂。同时,高校实验教学有前序和后序安排,还必须兼顾理论课程和实验课程的时间安排,管理流程复杂。
(3) 系统多架构融合。由于开放实验室分散在学校不同建筑物中,一般采用指纹验证等安全技术手段,所以开放实验室管理系统除了采用B/S架构以满足师生随时访问以外,还要融入C/S架构以便于连接指纹仪、门禁等外接设备。
基于以上原因,系统采用Java企业级应用技术架构,以保障系统需求的可实现性、稳定性和未来的可扩展性。JEE 5是目前最先进的Java企业级应用技术标准,它简化了系统的开发、部署和管理,实现了分布式运行和跨平台移植。本文提出一种基于JEE 5的SSH框架作为开放实验室管理系统解决方案的核心架构。SSH框架是JEE 5平台下Struts2、Spring和Hibernate等3个主流框架的融合,分层实现了MVC架构,包括轻量级的IOC容器和AOP控制器的持久化应用[5]。
1.2 Struts2框架
Struts2是建立在JEE5体系架构之上的一种轻量级框架,通过使用JSP、Servlet、JavaBean、XML和自定义标签等多种技术组合实现[6-7]。Struts2框架使用了拦截器技术对用户请求进行处理,通过WebWork核心将用户业务逻辑控制器与Servlet API分离。利用Struts2框架提供的OGNL技术可以方便地获取Request,Attribute,Application,Session,Parameters中的数据,极大地优化了系统代码质量。在开放实验室管理信息系统中,Struts2作为页面表示层和控制转发层框架。
1.3 Spring框架
Spring是一个轻量级的DI和AOP容器框架,将对象之间的依赖关系交给IOC容器,降低各业务组件之间的耦合性,提供了大量的中间层模型。Spring DI机制降低了业务对象替换的复杂性,并将代码污染度减到极低[8-10]。Spring将管理的Bean作为POJO进行控制,通过AOP Interceptor能够扩展Bean的其他功能,增强了系统的可维护性。在开放实验管理信息系统中,Spring作为业务逻辑控制层框架。
1.4 Hibernate框架
Hibernate是一种轻量级的处理数据持久层框架,通过封装JDBC实现了实体对象与数据库的映射关系,让开发人员基于面向对象的设计理念去操作关系型数据库[11]。Hibernate实现了透明和持久化,对象可以作为普通的JavaBeans或POJO,无需实现第三方框架或者接口。在开放实验管理信息系统中,Hibernate作为数据持久层框架[12-14]。
1.5 开放实验室管理信息系统架构
开放实验管理信息系统基于SSH框架,在该框架基础上融入了JQuery、Ajax、JSON、RMI、SSL等相关技术,提高了用户体验和数据的安全性。开放实验室管理系统总体架构见图1。
图1 开放实验室管理信息系统总体架构图
2 系统软件功能设计
2.1 系统核心功能
高校开放实验室使学生具有一定的选题自由,以激发学生的创造力和想象力;对于专业能力强的学生,还可以独立进行实验方案的设计[15]。高校开放实验室管理信息系统要对开放实验室进行全方位管理,主要具有以下5项功能(见图2)。
(1) 预约管理。学生通过系统预约开放实验项目和实验时间,实验教师对开放实验项目进行设置,并确认学生预约是否通过。
(2) 成绩管理。实验教师根据学生实验情况进行成绩评定,学生可通过系统查询自己的实验成绩。
(3) 门禁管理。开放实验室实行指纹管理,学生成功预约开放实验室后可通过指纹验证进入开放实验室,实验教师可随时查询学生进入开放实验室情况。
(4) 设备管理。实验教师对开放实验室的设备和耗材使用情况进行记录,根据实验需要进行调拨。
(5) 系统管理。系统管理员发布开放实验相关公告或通知,并可对实验教师、学生权限进行管理,系统管理员也可通过系统实时查询系统运行状态,以便于系统维护。
2.2 系统业务流程
基于系统管理员、实验教师和学生用户等3个群体进行开放实验室管理信息系统的业务流程设计(见图3)。
图2 高校开放实验室管理信息系统功能结构图
图3 高校开放实验室管理信息系统业务流程图
3 系统的分层实现
高校开放实验室管理信息系统开发和部署均在完全开源环境中完成,操作系统使用了Ubuntu 14,Web服务器采用Tomcat 8,数据库管理系统基于MySql 5开发,开发平台为Eclipse 4和MyEclipse 6。
3.1 表示层
在系统表示层中,动态信息采用Ajax技术操作,静态信息使用HTML技术呈现,CSS和DIV技术用于信息定位,JQuery技术对用户操作效果进行了美化,数据验证用JavaScript和正则表达式实现。部分Ajax动态信息操作代码如下:
$.ajax({ url :″getLogRowCount″, type : ″post″, data : $(″#form″).serialize(), cache : true, success : function(attdata) { $(″#Pagination″).pagination(attdata, { items_per_page : 15, callback : pageselectCallback, }); $(″#info″).slideDown(″slow″); } });
3.2 控制层
在系统中使用Struts2作为系统控制器,实现与用户的交互。请求被Struts2转发至对应的Action中,由Action调用业务逻辑层进行处理,并将处理的结果以JSON格式返回至前台Ajax中进行动态信息显示。系统在Struts2中还定义了多个拦截器,SecurityFilterChain用于数据安全过滤,EncryptionFilter实现信息加密、解密拦截。
3.3 业务逻辑层
业务逻辑层实现了系统的主要功能,采用接口与实现分离的技术,减少类与类之间的耦合关系。接口定义系统功能,实现类提供具体逻辑。业务逻辑层基于Spring框架搭建,利用Spring的IOC容器整合表现层、业务层和数据访问层,使用AOP实现DAO类的事务控制[16]。系统使用DI技术进行组件之间的依赖管理,由容器动态地将依赖关系注入目标组件之中。权限功能接口代码如下:
public interface AuthorityDao {
public Map
}
权限功能实现的部分代码如下:
@Component(″authorityDao″) public class AuthorityDaoImpl implements AuthorityDao {
private JdbcTemplate jdbcTemplate;
public Map
......
3.4 数据持久层
持久层是把数据保存到可永久保存的存储设备中,通过数据访问模型对持久层对象进行操作,将数据同步到数据层中。在高校开放实验室管理信息系统中,采用Hibernate框架实现了数据持久化,使用面向对象编程思想(OOP)对Mysql进行数据的存取操作。系统对Hibernate的hibernate.cfg.xml配置文件进行配置,建立持久化对象与关系数据库表之间映射关系,同时设置事务处理、JDBC连接、数据库连接池等相关信息,确保Hibernate框架高性能运行。
4 结束语
根据Web测试理论对开放实验室管理信息系统进行了功能测试、可用性测试、安全测试、加载测试等深度测试,将系统错误和风险消灭在研发阶段,保证了系统的可用性和可维护性。该系统经过了半年的试运行,有13 431人次学生进入开放实验进行自主实验,系统运行正常稳定。该系统基于SSH框架,按层次进行分离,当某一层需求发生变化,只需修改该层相关代码,对其他层不造成影响,从而有效地降低了系统的维护难度,提高了系统二次开发的效率。
References)
[1] 李振键,金军,邓慧云,等.实验室开放是培养高素质创新人才的有效途径[J].实验技术与管理,2004,21(2):1-4.
[2] 侯凤才,张国华.高校实验室开放存在的问题与对策分析[J].实验技术与管理,2011,28(1):177-179.
[3] Palais J C, Javurek C G. The Arizona State University electrical engineering undergraduate open laboratory[J].IEEE Transactions on Education,1996,39(2):257-264.
[4] 陈先宇,李彦.开放型实验室网上选课系统设计构想[J].重庆交通大学学报:社会科学版,2008(2):133-134.
[5] 邢宝艳,门飞,张少龙.基于SSH框架技术的企业综合管理系统的设计与实现[J].信息与电脑:理论版,2012(1):69.
[6] Yu Ping, Kostas Kontogiannis, Lau T C.Transforming legacy Web applications to the MVC architecture[C]//Software Technology and Engineering Practice,2003:133-142.
[7] 张桂元,贾燕枫.Struts开发入门与项目实践[M].北京:人民邮电出版社,2000:35-96.
[8] 程显生,郭艳光.基于Spring和Hibernate数据访问技术研究与应用[J].制动业自动化,2011,33(3):152-154.
[9] 丁振凡,吴根斌.基于Spring的网站文件安全监测系统设计[J].计算机技术与发展,2012(12):179-182.
[10] Johnson R, Hoeller J. Expert One-on-One J2EE Development without EJB[M].Indiana:Wiley Publishing Inc,2004.
[11] 孙卫琴.精通Hibernate:Java对象持久化技术详解[M].北京:电子工业出版社,2005:1-35.
[12] 陈天和.Struts,Hibernate,Spring集成开发宝典[M].北京:电子工业出版社,2007.
[13] Cohen T, Gil J. Aspect J2EE=AOP+J2EE Towards an Aspect Based, Programmable and Extensible Middleware Framework[C]//Proceedings of Object-oriented Programming, 2004:221-245..
[14] Johnson R. J2EE development frameworks[J].Computer,2005,38(1):107-110.
[15] 孟乐,黄宽,包红霏.关于教学实验室开放的探讨[J].沈阳建筑大学学报:社会科学版,2006,9(3):279-281.
[16] 付更丽,曹宝香.SOA-SSH分层架构的设计与应用[J].计算机技术与发展,2010,20(1)74-77.
Development and implementation of open laboratorymanagement information system
Luo Pinjie1, Wen He2
(1. Laboratory Management Center, Chengdu Neusoft University, Chengdu 611844, China;2. Department of Computer Science and Technology, Chengdu Neusoft University, Chengdu 611844, China)
In order to solve the difficulties in artificial management of the open laboratory in colleges and universities, the university open laboratory management mode and flow based on the information system are set up. The framework including Struts2, Spring, Hibernate is adopted to achieve the open laboratory management system in colleges and universities. A layered architecture of JEE5 is used to separate the presentation layer, control layer, business logic layer and data persistence layer to ensure that the system has good stability and maintainability.
open laboratory; SSH framework; information system
2014- 10- 29
教育部信息化教指委教学研究项目(2013LX028)
罗频捷(1981—),男,四川泸州,硕士,高级工程师,实验管理中心主任,主要研究方向为实验教学管理和软件工程.
TP391.0
A
1002-4956(2015)5- 0157- 04