基于ESSH框架的高校科研团队信息管理系统设计与实现

时间:2022-08-24 09:41:25

基于ESSH框架的高校科研团队信息管理系统设计与实现

摘要:针对当前高校院级学生信息管理系统不能满足其科研团队对学生科学、高效的信息化管理需求,依托Gradle构建工具整合当前最新主流框架EasyUI、Struts、Spring和Hibernate,运用经典MVC分层架构设计模式开发出了适合高校科研团队的学生信息管理系统。该系统下辖3个权限子模块:超级管理员模块、教师模块和学生模块。该系统在阿里云服务器平台和Windows服务器平台验证通过,目前已服务于重庆邮电大学通信新技术应用研究中心。

关键词:EasyUI;Struts;Hibernate;Spring;RabbitMQ

中图分类号:TP319

文献标识码:A

文章编号:16727800(2017)004009403

0引言

高校科研团队是我国科研创新的主力军,也是勇攀科研高峰的先锋队[1]。一个科研团队的科研创新能力不仅与团队成员的学术水平息息相关,更与高效管理密不可分,在当前信息技术迅猛发展的今天,团队的科学高效管理离不开信息技术支撑[1]。但是经查证,在高校中只有少数国家级重点实验室才会有面向本团队研究生的信息管理系统,绝大多数高校对团队内部研究生的信息管理均是依托于研究生院的学生信息管理系统,这种院级学生信息管理系统以学校视角侧重于成绩、学籍与学位的管理,然而面向科研团队的学生信息管理侧重于促进科研团队的科研效率,其关注:导师公告、查看学生考勤与周报、导师推送学习任务、学生信息报表打印和助管、助研资格快速审查等核心需求。 针对这一缺陷,本文整合当前最新主流框架EasyUI1.4.5、Struts2.5、Spring4.2和Hibernate5.1,运用经典的MVC分层架构设计模式开发出了适合高校科研团队的学生信息管理系统。

1关键技术

1.1EasyUI

EasyUI是一组基于jQuery的UI插件集合体,EasyUI可以帮助Web开发人员更轻松地打造出功能丰富并且美观的UI界面[2];另外开发人员不需要编写复杂的Javascript脚本,也不需要对css样式有深入的了解,他们只需要了解一些简单的html标签即可。EasyUI使用简单却很强大,相较于Bootstrap、extjs等框架,其控件更加丰富,与浏览器的兼容性也更胜一筹,尤其是在企业级OA系统业务中,EasyUI优势更加明显。

1.2Struts

Struts是Apache软件基金会(ASF)赞助的一个开源项目,它是JavaWeb应用中MVC分层架构的一个经典框架[3]。表单实例自动封装和拦截器是最为开发人员津津乐道的两个特性。 在MVC分层架构中,对于大型Web应用,控制层通常由Action构成,模型层由JavaBean组件或者EJB组件实现;但对于小中型Web应用控制层和域模型层的角色均可由Action扮演。

1.3Hibernate

Hibernate是JBoss旗下的一款秀的ORM数据持久层框架,它能够将面向对象的域模型层对象映射到关系型数据库中,这使得开发人员可以随心所欲地使用面向对象思维实现数据库增删改查(CRUD)操作。Hibernate不仅封装了丰富的数据操作方法,还提供了完善的事务管理机制[4]。

1.4Spring

Spring开源框架是由Rod Johnson 在其著作Expert OneOnOne J2EE Development and Design中阐述的部分理念和原型衍生而来。Spring框架的主要优势之一就是其分层架构,为 J2EE 应用程序的开发提供框架集成环境[5]。Spring的核心是依赖注入(DI)和面向切面编程(AOP)。

1.5ESSH框架整合

本系统是以MVC封层架构设计模式(模型层、视图层和控制层)展开,分层架构逻辑如图1所示。模型层、视图层和控制层的功能正是依托于EasyUI、Struts、Spring和Hibernate框架。

1.5.1模型层 模型层其内包含:域模型层、数据访问层和业务逻辑层。利用Hibernate持久层框架通过配置hbm.xml将域模型层JavaBean对象映射到数据库对应的表中,数据访问层关联Hibernate的SessionFactory实例从而使用Session中的数据操作方法。 有一点要特别注意:为了保护数据原子一致性,对于业务逻辑层中涉及更新数据表的方法要将其置于事务管理器中。1.5.2视图层 Struts的自定义Action负责接收用户请求并跳转到登录、注册、找回密码、面向学生系统、面向教师系统和面向管理员系统等页面。1.5.3控制层 本系统并没有涉及太多Action与Action之间的请求关系,所以在控制层中编写的自定义Action并不负责页面的跳转而是调用业务逻辑层中的方法。控制层、业务逻辑层与数据访问层之间的调用关系如图2所示。

2系统设计与实现

2.1系统功能设计

本信息管理系统有3个子模块:超级管理员模块、教师模块和研究生模块,每个子模块对应不同的权限,每一级权限对应不同的服务。系统整体功能设计如图3所示。

2.2数据库设计

数据库是信息管理系统的核心,良好的数据库设计不仅可以改善数据存取效率,还会减少维护成本[6]。本系统采用MySQL关系数据库系统,它具有体积小、速度快、灵活性高、免费等优点[7]。通过分析信息管理系统的对象,设计了7张数据表:学生信息表、教师信息表、管理员信息表、学生考勤信息表、公告信息表、学生请假信息表和周报信息表。 所有数据表模型使用ProcessON构建,如图4所示。

2.3功能模块具体设计

管理员模块、教师模块和学生模块除个别功能外基本一致。限于篇幅,本文仅仅围绕学生模块展开,管理员模块和教师模块不再赘述。2.3.1登录与注册模块 用户提交注册表单后,得益于Struts的域模型驱动传值模式,注册表单数据将会自动封装到RegisterAction中的Student实例中,但是此时并不会将数据写入数据库除非用户登录注册邮箱进行账户激活。激活完成后将自动为用户跳转至登录页面;如果用户登录失败,那么系统会将提示信息显示在页面中。 尤其要注意的是,用户在提交注册按钮时,由于后台有发送邮件的业务,这会耗费一定的时间,假如下游业务逐渐增多,那么用户等待的时间会越来越长,从而造成较差的用户体验。为了解决这个问题,引入消息中间件技术来实现后端业务逻辑的异步执行,将邮件发送拆分成一个独立的RESTFul模块,其注册逻辑如图5所示。 对上述串行和异步这两种技术方案进行12次用户注册测试,其平均用时如图6所示。可以看出,引入消息中间件RabbitMQ确实大大减少了用户注册的等待时间,而且注册时间不会随着下游业务的增多而增多。

2.3.2面向学生系统模块 该模块主要涉及登陆时长统计、修改个人信息、修改登录密码、上传周报、下载个人资料(excel和pdf格式)、查看公告和导师推送功能。其中个人信息与密码修改、周报上传都是依托于表单元素提交,在后台用自定义的Action处理后再更新对应数据表,导师推送是每一周导师派发给学生的学习任务,利用WebSocket技术实现该需求。在学生模块中,由于团队人数较多(56人),而每学期的助管和助研名额各只有一个,以往均是由学生抓阄产生最终名单。针对这一实际业务需求,设计了一个针对助研和助管资格的限量秒杀功能。本文着重从3个方面考量: (1)如何缓解应用服务器和数据库服务器的压力。用户在秒杀开始前会不断刷新页面以保证不会错过秒杀活动,这些请求将会访问应用服务器和数据库服务器,毫无疑问,如此高频率的访问将给应用服务器和数据库服务器带来巨大压力。本文应对方案:秒杀页面静态化,然后将静态化的页面放在Nginx服务器或者Apache服务器中。 (2)如何应对秒杀器以保证秒杀公平性。验证码或者积分策略(用户必须拥有足够的积分才能参与秒杀活动,常见的积分获取方式:在线时间达到某一值)。 (3)如何应对突然增加的服务器带宽。一个秒杀页面200KB大小,假设100并发量,则服务器带宽应为:200KB*100=20MB。这一点对于大多数团队而言并不算难题,多数团队都是使用校内的百兆教育网。 将核心业务模块一分为二:用户请求模块和秒杀业务处理模块,用户请求模块将用户请求写入消息中间件中的消息队列,队列容量2,当队列容量满载时,用户请求模块〖LL〗不再处理之后的用羟肭笞而为这些用户跳转至“秒杀结束”页面;接下来,秒杀业务处理模块从消息队列中读取消息,然后更新数据库中的用户信息表。系统的核心设计思想就是使用消息中间件进行流量削峰,得益于消息中间件,此时到达数据库服务器的请求只有2个。但是,用户在秒杀成功前肯定会不断刷新商品详情页面,以获取是否还有剩余商品,假如这一部分的请求由MySql负责处理,也即这种高频请求每次都会去访问数据层,为了进一步改善用户体验,在业务层引入基于内存的Redis来抗压(Redis在单机模式下可以实现读取数据10W/S次)。系统总体架构如图7所示。

3结语

本文着眼于当前高校科研团队对学生信息管理过程中存在的不足,将EasyUI框架与经典的SSH框架搭配,整合开发出一套适合高校科研团队针对教师与研究生信息管理的B/S系统。本系统所使用的ESSH框架均是目前最新版本,也为广大Java Web开发爱好者提供了一个良好的整合开发案例。目前,该系统已经服务于重庆邮电大学通信新技术应用研究中心,并得到实验室师生的一致好评,同时将不断改进与完善该信息管理系统。

参考文献:[1]高昂,卫文学.基于Hibernate 与剧加把框架的数据持久化应用研究[J].计算机应用,2005,25(12):28172820.

[2]李婵.基于J2EE的热电厂生产班组管理系统的开发[D].西安:西安石油大学,2011.

[3]周光前.基于B/S模式小型酒店住宿预订系统设计与实现[D].南京:东南大学,2015.

[4]林秀芬.基于SSH的招投标管理系统的设计与实现[D].成都:电子科技大学,2014.

[5]刘波.基于J2EE和设计模式的企业交易平台的研究[D].武汉:华中科技大学,2006.

[6]沈军峰.基J2EE的高校招标采购管理信息系统设计与实现[D].南京:东南大学,2013.

[7]高凡,陈学卿,梁强.基于互联网的高校国资管理系统的设计[J].计算机技术与发展,2015,25(10):174178.

上一篇:论专业化效率、职业化收入分配体制与市场经济... 下一篇:基于AdaBoost算法的在线连续极限学习机集成算...