基于容器与微服务技术的高校在线考试系统设计与实现

2022-03-19 02:00王家龙冬梅
电脑知识与技术 2022年2期
关键词:微服务容器

王家 龙冬梅

摘要:随着“互联网+”概念不断融入高校的教学与学生管理的各个方面,高校对于在线考试系统需求也逐漸增加,文章首先对高校在线考试系统需求进行调研和分析,接着根据调研的结果提出了适合于高校的在线考试系统架构,该系统采用Docker容器技术简化部署与维护成本,提高系统的可伸缩性,同时系统采用的前后端分离的软件架构,前端基于Vue实现系统网页界面,后端基于SpringBoot实现业务逻辑,最后文章提出了一套切实可行的高校在线考试系统的设计和实现方案。

关键词:容器;微服务;在线考试系统

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2022)02-0056-02

1引言

随着“互联网+”应用逐渐渗透到高校教学和管理的各个方面,高校对在线考试系统的需求越来越迫切。高校对于学生文档资料的归档的要求不断提高,加速了各种自动化系统应用到高校教学与管理中,其中一个主要的方面是对学生考试试卷的管理与考试成绩分析统计。

传统纸质试卷考试的方式已经不能够满足学生和老师的需求,老师出题难度,难以覆盖课程的各个知识点,同时学生人数多,造成批改试卷工作量大,并且统计成绩费时费力。此时在线考试系统优势就体现出来。首先,在线考试可以通过题库随机生成试卷,可以设置每个知识点在生成试卷中的占比,保证重点知识被重点考察,接着在线考试可以减轻老师在批改试卷的时候的负担,客观题目由系统自动评分,主观题目由老师在线评分。最后老师统计学生成绩更加方便和详细,可以对每道题目的得分率进行统计,也可以对每个知识点的得分率进行统计,配合各种统计图形让老师对学生的学习情况掌握得更加全面。在线考试使得学生查询成绩更加方便。

老师可以在学期中多次进行在线考试,对学生的学习情况进行跟踪。而不是因为试卷出题和批改压力过大,只能够在学期中做极少次数的考试,从而提高高校的教学质量。

虽然现在有很多的平台提供在线考试的功能,例如学习通的在线考试。但是因为高校的网络质量不同,对于教学资料安全性高,以及平台费用等问题,高校往往不能够使用公开的平台进行考试。所以本文提出了一套能够快速在学校内部部署的在线考试系统,能够保证学校对于数据的完全获取和数据的安全,避免数据泄露造成的风险,降低系统的运行费用。

1 需求分析

在线考试系统包含三种用户角色,分别针对学生、老师和后台管理人员。学生可以通过手机或者电脑的浏览器在线进行考试,考试完成以后可以查看自己的考试成绩,以及提出查分申请。老师可以对学生的试卷进行题库的添加、删除、修改,同时可以从题库当中生成所需要的试卷,设置试卷的考试时间,考试时长以及考试要求等信息,考试完成以后老师可以对主观题目进行在线的评阅,客观题由在线考试系统实时自动完成批改。试卷评阅完成后,系统会生成相关试卷的统计结果,方便老师对学生的学习情况进行分析。

后台管理模块为方便学校管理,提供了一个综合管理平台,后台可以批量的导入学生、老师和题库的信息,同时也可以批量地下载电子版的所有课程的试卷以及考试成绩的分析和统计结果,方便学校对于相关资料进行存档。

3 系统架构

3.1 系统结构

本系统基于Docker容器技术和微服务架构,为高校提供一套快速部署、运维管理、安全可靠的在线考试系统。

如图2所示为系统架构和流程,学生电脑→网络→负载均衡→服务网关(GateWay)→Docker集群→微服务。为了保证安全性,客户端请求在传输的过程中需要使用https加密保护,在系统内部需要进行SSL卸载。外部请求经过负载均衡后,路由到GateWay集群中的某个GateWay服务处理,再由GateWay服务转发到Docker集群中部署的微服务。服务网关作为内部系统的边界,基本作用为动态路由,限流和容错,身份认证和安全性控制,监控,访问日志管理。

3.2 容器技术

Docker是一种高效率的、负载性极强的容器解决方案,在线考试系统采用容器技术后,可以灵活地将系统部署到本地服务或者云平台上,Docker技术为系统提供了封装、分发、部署、运行整个链条上全方位全流程的管理功能[1]。

容器与微服务结合,系统只需要将基础镜像和微服务生成镜像,再将镜像部署在Docker容器中,系统就可以运行。系统采用此种方式能够简单、高效、安全快速部署服务。

3.3 前端应用

在线考试前端应用,为用户提供一个友好的交互界面,主要的业务逻辑功能会使用后端服务所提供的微服务。前端应用的开发过程当中,主要考虑到学生和老师可以在不同设备上面使用本系统,本系统支持在电脑,平板以及手机浏览器当中使用前端应用的网页界面。为了达到上述需求,系统采用了Vue框架。

Vue的核心思想MVVM原理,使得Vue可以对页面上需要使用的数据进行统一管理,并能够很方便地获取数据的更新,实现页面视图与数据模型的交互[2]。

3.4 后端服务

SpringBoot是一个脚手架程序,设计目的在于简化Spring应用的初始搭建以及开发过程,快速、便捷地开发Spring项目。在开发过程中,专注于应用本身的开发,而无须纠结于Spring的配置。SpringBoot具有高内聚、低耦合、声明式事务的优点,它是后端服务器应用开发的主流技术。在线考试系统使用Spirng,MyBatis,Spring MVC作为基础框架,通过SpringBoot对三个基础框架的整合与管理。

其中SpringMVC是一个基于POJO开源的轻量级Java企业级应用框架。主要由Model(模型)、Control(控制器)、View(视图)三部分组成,能够实现业务数据处理和业务数据间的解耦[3]。MyBatis框架完成对数据库的常见操作[4]。

系统后端主要提供在线考试系统的数据服务,并且以json数据格式传输提供给前台应用使用,同时将前端发送到后端的数据存储到数据库当中。为了应对在线考试中大量并发的数据请求采用消息队列来响应并发请求[5]。

后台服务被分成多个子模块。每个子模块也是一个微服务,可以单独打包为一个镜像,使用Docker进行部署。在实际运营中不同时间段,对于在线考试中各个微服务的请求量有所不同,比如在期末时,对于在线考试模块请求量会升高,此时可以通过容器技术实现多个在线考试微服务部署,并使其形成集群,从而提高系统的吞吐量解决对于该模块服务请求激增的问题。又如开学时需要大量下载相关成绩分析表格和电子版试卷,此时可以动态添加电子试卷微服务并形成集群。平时对于在线考试需求量较小时可以只保留少量的微服务容器,从而节约学校的运营成本。

4 结束语

本文主要针对高校对于在线考试系统的需求,设计实现了基于容器和微服务的在线考试系统。该系统能够减轻高校在部署系统上的难度,降低运行费用。系统能够减轻老师和学校管理人员在考试工作中所花费的时间,系统能够提高老师在批改和出题的效率,提高学校对于考试文档管理效率,提高学生对于考试的满意度,使得高校能够更好地服务学生。

参考文献:

[1] 刘昱良,何璐.基于Docker技术的容器云平台浅析[J].大众科技,2021,23(1):15-17,20.

[2] 沈佳棋,倪珊,王杰,等.基于Vue+SpringBoot的分类学科竞赛管理系统设计[J].无线互联科技,2020,17(17):74-77.

[3] 马艳夕.基于SpringBoot与Vue技术的企业电商平台的设计与实现[J].信息与电脑(理论版),2021,33(3):99-100.

[4] 刘娟,任光芹,左欣,等.基于Spring Boot的财政一体化管控平台设计与实现[J].物联网技术,2021,11(12):78-80.

[5] 邹燕飞,刘淑英,黄旺.基于Spring Boot的扶贫信息管理系统的设计与实现[J].数字技术与应用,2021,39(11):155-157.

【通联编辑:唐一东】

2468500511216

猜你喜欢
微服务容器
Different Containers不同的容器
人心像一个容器
难以置信的事情
基于供给侧改革理论的图书馆社交网络微服务研究
微信公众平台在医院图书馆的应用现状调查
基于微信企业号的校园移动服务
从单一模式系统架构往微服务架构迁移转化技术研究