实验室智能管理系统的研究与实现
2019-12-18吕太之
吕太之,张 军,陈 勇
近年来,随着云计算、大数据和人工智能等新一代信息技术的迅猛发展,越来越多的高职院校投入资金建设智慧校园,大力提升校园信息化水平,推动教育资源信息化[1].职业教育培养的是技术应用型人才,职业教育的特征决定了其在人才培养中实验和实训的重要性,然而实验室的信息化一直是智慧校园建设中的薄弱环节,甚至是建设的盲区.因此,利用信息化手段提高实验室的利用率,提高实验室管理水平,成为目前许多高职院校需要解决的问题之一[2-3].
目前很多高职院校实验室管理仍然停留在手工方式.以实验室预约使用为例,首先是教师以纸质或者电子表格的方式申请,然后实验室管理员以纸质或电子的方式登记,最后按照教学安排由教务员和实验室管理员合作进行实验室分配.这种方式随着实验室、实验项目和使用人数的增加,会导致实验室管理工作的复杂度大幅提升,也容易出现诸多的错误,无法满足当前实验室管理的要求.
基于云计算和人工智能技术,设计并实现基于Web的实验室管理系统.为了提高实验室排课的可靠性、准确性和效率,系统使用粒子群算法对多个实验课程在同一时间段的排课冲突进行优化.为了提高系统开发效率,基于MVC(Model View Controller)模式,使用SSM(Spring+Spring MVC+Mybatis)框架实现系统功能.系统部署在Docker集群上,发挥了云平台的弹性计算、高可靠性、高可扩展性等优点,有效降低了开发和运维成本[4].实验室管理系统有效地解决了实验室管理效率和预约冲突的问题,提升了实践教学的管理水平,促进了智慧校园的建设.
1 需求分析与设计
1.1 需求分析
通过对江苏部分高职院校实验室管理现状的调研和文献查阅,结合江苏海事职业技术学院智慧化校园建设和实验室管理的实际,设计并实现实验室管理系统.系统面向游客、学生、教师、实验室管理员四类用户,包括实验室管理、设备管理、实验室预约、基础数据管理等功能.整体系统的用例如图1所示.
图1 系统用例图
游客指的是无需登录的用户,该类用户可以查看首页、实验室介绍、通知通告和实验教学课表.学生用户可以预约使用某类设备、上机管理、设备报修、个人信息管理.学生预约主要安排在晚上、周末等非教学时间,预约使用的设备目前只支持电脑.教师用户可以执行实验室预约管理、签到管理、设备报修、个人信息管理等功能.实验室管理员完成整个实验室的管理操作.基础数据管理包括教师信息、班级信息、课程信息、课表信息等管理,对这些基础数据的操作有导入、导出和增删改查.实验室管理主要是完成对实验室基本信息的维护,包括实验室名称、实验室地址、实验室描述和实验室所能支持开展实验的课程列表.设备管理维护实验室的设备信息.实验教学管理包括自动生成实验教学课表、实验教学课表调整、实验教学调课或者调整场所.通知通告管理包括通知通告信息的增加、修改、删除、发布功能.系统管理包括日志管理、数据管理和参数设置功能.
1.2 系统设计
(1)平台设计思想.平台设计根据需求分析调研的结果,结合敏捷开发模式,通过快速迭代实现系统的开发.平台首先要满足江苏海院实验室管理的需求,并具有一定的扩展性,能应用到其他高校的实验室管理中.系统早期通过数据导入导出的方式对接学院其他系统,后期统一接入到智慧校园大平台.
(2)功能模块设计.通过需求分析,确定系统需要实现的功能,设计出系统的总体框架.系统功能主要分为后台管理模块和前端查询模块.用户在登录模块输入正确的用户名和密码后进入后台管理主界面.使用用户分为学生、教师和管理员,主要功能包括基础数据管理、实验室管理、预约管理、实验教学管理、通知通告管理、系统管理、个人资料管理.后台功能模块设计如图2所示.
图2 后台管理功能模块图
前台功能包括网站首页、实验室查询、实验教学课表查询和通知通告查询.前端功能同时支持手机端和PC端.手机端采用响应式布局,兼容不同手机型号.图3显示了前台管理的主要功能模块.
图3 前台管理功能模块图
(3)数据库设计.数据库设计是系统设计的根基,直接关系到系统是否能满足用户需求.在充分了解用户需求后,设计系统数据库,主要包括实验室表、设备表、课程表、预约表、教师表、实验教学课表、学生表、班级表、新闻公告表.图4显示了系统部分数据表,主要涉及到实验室预约的功能.
图4 数据库设计
2 系统架构
SSM(Spring+Spring MVC+MyBatis)框架由Spring和MyBatis两个开源软件集合而成,采用标准的MVC(Model View Controller)模式[5].Spring是一个轻量级的Java开源框架,核心思想是控制反转和面向切面编程.Spring MVC是Spring框架的重要构件,是一个轻量级的Web应用开发框架,通过前端控制器、应用控制器和上下文将Web开发分成模型层、视图层和控制层三个层面[6].MyBatis是持久层的框架,支持定制化SQL和映射,实现了对象关系的映射.系统使用SSM框架进行开发,开发架构如图5所示.控制层由Spring MVC的入口DispatcherServlet和业务控制器组成,负责处理用户交互部分;模型层由业务逻辑层和数据访问层组成,负责业务逻辑的处理,数据访问层通过MyBatis框架实现;视图层由HTML、CSS、JavaScript等前端技术实现,负责数据的显示.
图5SSM框架
用户在前台、预约、实验室管理等功能界面上进行操作会向Web服务器发送请求,前端控制器DispatcherServlet是请求的入口,整个操作流程分为四个步骤.
步骤一,DispatcherServlet通过处理适配器调用各类拦截器,权限拦截器判断当前用户是否有请求某业务控制器的权限,对于后台管理如果是未登录用户或不具备相应操作权限将跳转回登录界面或给出未授权操作的提示.日志拦截器记录用户的操作,信息记录到日志表.编码拦截器实现字符集的转码操作.
步骤二,DispatcherServlet根据用户请求的地址和处理映射器调用对应业务控制器.
步骤三,业务控制器进行业务处理,调用业务逻辑层获得数据,返回ModelAndView对象给DispatcherServlet前端控制器.ModelAndView中包含了模型(Model)和视图(View).View可以是视图的逻辑名,或者是实现了View接口的对象.Model是借助于Map来存储数据.
步骤四,DispatcherServlet将View对象渲染出的结果返回给客户.
3 排课功能实现
3.1 实验教学课程安排
实验室教学安排是根据已有的教学课表、实验室所支持的课程来进行实验室的合理分配,从而满足实验教学的工作需求,避免冲突.伴随着生源的增加,且高职院校实践教学占据教学任务的大半,实验室安排在时间和空间上越来越复杂,传统的人工安排已无法适应实践教学安排的需要.为了有效提高实验室管理的工作效率,合理分配实验室资源,促进实验室安排更为科学合理,采用计算机自动安排实验室具有现实的意义[7].为了生成满意的实验室安排结果,设定了一些限制因素,使得结果能够尽可能满足这些约束.主要限制因素如同一时间同一实验室只能排一门课程,实验室支持安排的课程是否满足教师预约的要求、是否和上次实践安排在同一实验室等.
3.2 基于DFC&ASD-PSO实验室排课算法
粒子群优化算法(Particle Swarm Optimization,PSO)是1995年由KENNEDY等人提出一种模拟鸟群社会行为的搜索算法[8].在PSO算法中,粒子记录了自己的速度、位置和已访问过的最优位置,代表了一种解决方案.粒子通过每一次迭代朝着全局最优和已访问过的最优上移动.
基于传统PSO算法收敛速度慢和局部收敛的问题,将前期研究成果动态分数阶和alpha稳定分布的PSO算法(DFC&ASD-PSO)[9]应用于实验室排课,提高了实验室排课效率.将排课信息格式为长串数字,适应度函数根据排课约束设定.下面的伪代码描述了使用DFC&ASD-PSO搜索最优排课结果的过程.
输入:
预约信息、时间、实验室、课程等信息.
步骤:
particles=Init;//根据预约信息初始化粒子群
//根据搜索迭代次数和收敛情况确定搜索是否结束
while(IsStop()==false)
//根据适应度函数更新粒子的最优值和全局最优值
CalculateEvaluation(particles);
for i=1 to Length(particles)
UpdateVelocity(particles(i));//更新粒子速度
UpdatePosition(particles(i));//更新粒子位置
end for
end while
viastore 始终致力于为工业、商业和服务业提供完备的内部物流设备——拣选系统、高架仓库、自动化小型部件仓库、配送和物流中心,可以为用户提供咨询、规划并建造全新系统。作为viastore在中国的子公司,维世多物流系统(上海)有限公司负责其中国地区业务,为客户提供全年无休的24 h专家热线,为客户提供周到的服务和快速的备件配送。
排课表=Extract(particles);
输出:
使得适应度函数尽可能大地排课表
3.3 预约冲突
如果教师都没有预约指定时间,在实验室能满足教学的情况下,通过实验室排课算法自动生成的实验教学课表是不存在冲突的问题.如果有教师预约,通过以下的方法解决潜在的冲突问题.
(1)教师在预约的时候,会预执行自动排课算法,如果存在冲突问题,给予冲突提示,指导其调整预约,但不强制调整.
(2)授课人数、教师权值、实验需求、预约时间等都作为排课算法权值的一部分,这样虽然不能满足所有教师的预约,但是能够让实验室使用时间效率最大化,受益面最广,较好地解决了系统潜在的冲突问题.
(3)自动课表生成后可以通过手动调整来满足教师的特殊要求.
4 分布式平台部署
单台服务器的性能、资源和可靠性是无法确保的,所支持的并发连接数也是有限的,采用分布式Web平台可以提高系统的并发数和稳定性[10].Docker是开源的应用容器引擎,简化了系统平台之间的差异性,具有较强的移植性[11].Web应用及依赖包可以非常容易被打包并部署到Docker容器中.设计Docker集群化管理分布方案实现了实验室管理系统分布式Web平台.平台总体架构如图6所示,由负载均衡、容器集群管理、Docker镜像库,以及基于容器的Web服务器四个部分组成.
图6 分布式Web平台
负载均衡将Web请求分担给多台Web服务器,提高了系统并发能力,保证了业务的高可用性.平台基于高性能HTTP代理服务Nginx,通过HTTP重定向实现负载均衡[12].用户的所有请求首先发送给Nginx服务器,然后根据调度策略将请求分配给某一Web服务器处理.平台采用轮询策略,即当新的请求到来时,Nginx服务器将请求依次分配给下一台Web服务器.
平台采用Kubernetes构建云端集群,实现一个灵活、可扩展的实验室管理系统.Kubernetes是Goolge公司开源的容器集群管理系统,通过Kubernetes可以方便地实现Web应用部署、维护和扩展[13].
Docker镜像提供基本的运行环境,是容器的基石,容器是镜像的运行实例,有了镜像才能启动容器[14].Docker私有镜像仓库存储了智慧校园部分系统运行的Docker镜像.
Web服务部署在Docker容器上,操作系统采用CentOS,基于Java平台,Web服务采用Apache+Resin的配置.
5 结束语
针对当前高职院校实验室管理中存在的不足,尤其是实验教学的安排过程繁琐、实验室管理工作效率低下及容易出错的问题,设计基于Web的实验室管理系统来满足学院实验室管理的业务需求.系统用户分为实验室管理、教师、学生和游客,实验室管理可以完成实验室管理、设备管理、基础数据管理、通知通告等功能.教师用户能够完成实验室使用预约,学生用户可以完成实验项目预约,游客可以查看实验室介绍、实验教学安排、通知通告等信息.
系统使用DFC&ASD-PSO算法完成实验室排课,将实验室排课转化为数学模型,通过粒子群算法搜索最优结果,完善了实验室管理问题.系统开发综合运用SSM框架,简化了开发流程,提高了开发效率.构建基于Docker集群的分布式Web平台,将系统部署到该Web平台上,提高了系统的并发性、可靠性和稳定性.利用Kubernetes实现Docker集群的弹性计算,使得系统能够更灵活地提供服务.