APP下载

基于微服务的在线考试系统分析与设计

2024-12-31褚娟

现代信息科技 2024年12期
关键词:MySQL数据库微服务云平台

摘" 要:随着计算机网络技术的快速发展,互联网的应用范围日益扩大。在各类考试中,为了更好地进行考务管理,使得考生的考试更加便捷,建立在线考试系统成为一个必然趋势。基于微服务的在线考试系统集报名管理、试题试卷管理、考务编排管理、在线考试管理、阅卷评分管理、成绩管理于一体,可使考试管理工作系统化、规范化,大大提高了工作效率。

关键词:在线考试系统;微服务;云平台;MySQL数据库

中图分类号:TP311" " 文献标识码:A" 文章编号:2096-4706(2024)12-0076-05

Analysis and Design of the Online Examination System Based on Microservices

CHU Juan

(Health Human Resources Development Center, National Health Commission, P.R. China, Beijing" 100097, China)

Abstract: With the rapid development of computer network technology, the application scope of the Internet is expanding day by day. In various exams, in order to better manage exam affairs and make exams more convenient for candidates, establishing an online examination system has become an inevitable trend. The online examination system based on microservices integrates registration management, question and paper management, examination arrangement management, online examination management, grading management, and score management. It can systematize and standardize the examination management work, greatly improving work efficiency.

Keywords: online examination system; microservice; cloud platform; MySQL database

0" 引" 言

随着计算机网络技术的快速发展,我们开始进入数字时代新兴技术驱动的关键转型期,《第十四个五年规划和2035年远景目标纲要》中明确指出:加快建设数字经济、数字社会、数字政府,以数字化转型整体驱动生产方式、生活方式和治理方式的变革。各行各业都是我国数字化转型的重要推动力量,其中就包括考试行业[1]。目前,各类考试大多采用传统的考试方式,由命题、考试、阅卷、成绩四大步骤组成。其过程漫长,环节较多,工作量较大[2]。将考试转到线上,采用灵活可独立部署的微服务架构实现自动组卷、阅卷、统计分析等,简化了考试流程,减轻了工作负担[3],提高了工作效率,是考试行业的发展方向。

1" 基于微服务的在线考试系统分析

1.1" 可行性分析

在线考试系统是一个快速获取考试信息的系统平台,考试管理人员可通过该系统在线维护试题、试卷和考务信息,阅卷专家可通过该系统实现在线阅卷,考生可借助该系统完成在线考试、成绩查询[4]。相对于传统考试模式,在线考试系统更加高效便捷,省时省力[5]。微服务架构[6]的引入使系统更易于扩展和开发,从而使得新功能加速创新更为可行,该系统创造了显著的经济效益和社会效益[6]。

1.2" 需求分析

该系统可使考试管理工作变得高效灵活,阅卷和考试更加便利便捷[7]。考务人员在线高效管理试题,同时在线组卷、在线编排,考生线上考试,大大减轻了劳动强度[8]。该系统应该具备以下功能:用户登录、用户权限管理、考生报名管理、试题试卷管理、考务管理、考试管理、考生考试、评卷阅卷、成绩管理等。

2" 基于微服务的在线考试系统整体设计

2.1" 业务框架

在线考试系统服务端包含三大部分,分别为系统管理、考试服务、考试考务,如图1所示。

2.1.1" 系统管理

系统管理主要分为三个部分:基础配置管理、考试用户管理和机构用户管理:

1)基础配置管理。可供研发人员使用,负责定义和维护菜单、用户、角色、业务和应用基础数据,承载着整个在线考试系统的基础数据配置功能。

2)考试用户管理。可供系统管理员维护考试主办机构和用户,为他们配置对应的角色和权限。

3)机构用户管理。为考试主办机构提供管理功能,可用于管理考试机构、监考人员、评阅卷人员,并配置相应的角色权限。

2.1.2" 考试服务

考试服务按照考试流程分为三个部分:报名管理、考生考试、成绩证书。详细功能如下:

1)报名管理。组织考试前,管理员可以针对报名任务设置报名基本信息、报名科目、考生采集信息数据维度、是否需要审核缴费等,并发布报名任务。考生填写采集信息,选择科目进行报考和缴费。

2)考生考试。考生参加考试前接受准入校验,包含人证对比、人脸核身等。考生进入考试后开始作答,完成答题后交卷[9]。除了防替考措施外,本系统还引入了防作弊措施,其中包含试题乱序[10]、选项乱序、切屏警告、全屏锁定、禁止复制、屏幕水印、双路监考、AI行为识别等。

3)成绩证书。在考试结束且阅卷完毕后,对考生成绩进行分数线划分和归档,提供成绩查询和证书下载的链接。考生可通过点击相应链接来查询成绩和下载证书。

2.1.3" 考试考务

考试考务由考试管理员按照考试要求设置,主要包括四个部分:考务管理、题库试卷管理、考试管理、评阅卷管理。详细功能如下:

1)考务管理。考试管理员可按照规则为报名的考生设置编排科目批次、考点考场,并生成准考证。

2)题库试卷管理。由考试管理员录入考试试题,并按照考试系统要求进行分类,系统可根据需要从题库中选择相应的试题,并生成考试试卷。考试管理员也可设置组卷规则,然后由系统从题库中抽取相应题目,完成自动组卷[11]。

3)考试管理。考试管理员管理即将参考的考生,设置考试相关校验和业务,发布在线考试地址。开考后,监考人员通过系统监考并对考生的作弊行为进行监控和记录,直至考试结束。

4)评阅卷管理。在考试结束后,系统可根据评分规则自动对主观题评分。客观题可实行人工网上阅卷,即阅卷老师根据管理员分配的阅卷任务实行网上阅卷。系统再将主观题分数与客观题分数相加求和给出考生最终得分。

2.2" 技术架构

基于微服务的在线考试系统技术架构如图2所示。

传统单体式架构中,所有进程紧密耦合,如果应用程序的某个进程达到峰值,则必须扩展整个架构。单体式架构增加了应用可用性风险,其自身的复杂性使得系统扩展变得较为困难。微服务架构作为面向服务的架构(SOA),将系统划分为若干微服务,每个应用程序进程作为一项独立的服务运行,这些服务采用轻量级API通过接口进行通信。每项服务独立运行,可以有针对性地进行更新、部署和扩展,增加了软件开发的自主性、敏捷性、可重复性,每个团队负责自己的微服务,更加灵活自由,提高了开发效率,服务独立性也增加了系统应对故障的弹性。本文设计的系统采用了微服务架构,详细技术内容如下:

1)主体框架。使用Spring Cloud框架(它为开发者提供一套简单易用的分布式系统基础设施),帮助我们快速构建微服务应用。

2)服务调用。采用OpenFeign、Ribbon和Hystrix三个组件。OpenFeign用于实现服务之间的调用,Ribbon提供了负载均衡算法,Hystrix提供了熔断、降级等功能。

3)注册中心。使用Nacos作为服务注册与发现的中心,Nacos提供服务注册、发现、配置管理等功能,方便我们管理和监控微服务。

4)数据存储。使用对象存储服务OBS存储文档、图片、音频、视频等资源;采用MySQL作为系统数据库;使用Canal Server实现数据库的实时同步;使用Redis提高系统读写速度和性能;采用RabbitMQ实现服务间的异步通信和解耦;采用Elastic search实现高效的搜索功能;使用XXL-Job实现定时任务的管理;使用Seata保证数据的一致性。

5)部署与管理。使用Docker实现所有服务的容器化部署;采用Kubernetes作为容器编排平台,实现自动化部署、扩缩容、故障迁移等;使用容器云服务(CCE)作为集群管理工具。

2.3" 网络架构

基于微服务的在线考试系统网络架构如图3所示。

该系统的网络架构要从多个层面确保系统的高可用、高性能和易扩展性[12]。具体来说,包含以下几个要素:

1)内容分发网络(CDN)。通过将静态资源(如图片、CSS、JS等)分发到全球各地的边缘节点,减少访问延迟,提升访问速度。

2)对象存储服务(OBS)。用于存储大量非结构化数据,如图片、音视频等文件。

3)负载均衡器(ELB)。将流入的网络流量分发到多个后端服务器,实现负载均衡。

4)Nginx。作为反向代理服务器,主要负责处理客户端的请求并将请求转发给后端服务器。

5)Kubernetes(K8S)。作为容器编排平台,能够实现应用的自动化部署、扩缩容、故障迁移等功能。

6)分布式微服务群。系统采用微服务分布式架构将服务拆分成多个独立的模块,实现高内聚低耦合的设计。

7)中间件。通过使用多种中间件来提升在线考试系统的性能。如使用Redis作为缓存数据库,使用RabbitMQ作为消息队列,使用Elastic search作为分布式搜索引擎。

8)数据库。系统采用MySQL作为关系型数据库,存储结构化数据[13]。

2.4" 安全性设计

基于微服务的在线考试系统部署在云平台上[14],为建设有效的安全防护体系,对该系统进行了整体全面的安全规划。主要包括以下5个方面的设计:

1)系统应用安全设计。在确保系统应用安全方面,最基础、最重要的策略就是权限控制,目标是对应用的所有资源进行权限控制,例如对功能菜单、各界面的按钮控件等进行权限操控,通过设置用户权限、角色权限、组权限实现权限的分配。

2)系统安全审计设计。系统应用提供完善的日志管理体系。系统自动记录用户登录、数据录入、数据提交、数据分析等日志,以便出问题时跟踪追查审计。

3)应用系统安全设计。应用系统部署在云平台上,为了避免单点服务故障,通过云容器技术分布于不同地理区域服务节点上,同时容器管理平台提供自动负载均衡与故障pod实例切换功能,确保服务的高可用性和实时性。

4)应用系统数据安全设计。应用系统支持数据存储、数据传输、密钥管理等方面的安全功能。用户客户端与Web、应用服务器支持采用HTTPS协议对数据传输过程进行加密。数据库中的敏感信息须进行加密存储,应用服务配置的密码、加密字符等不得明文存储,须使用MD5方式加密。

5)系统备份安全设计。通过备份系统的定时备份功能,定时将应用系统数据备份至云硬盘存储服务,且同步到不同区域的异地云存储服务中,保障应用系统的容灾性。数据库管理系统采用的是主从双机方案,只要其中一个发生故障可平滑切换服务。云日志服务器提供日志文件的转储服务。

2.5" 系统功能设计

2.5.1" 业务流程

基于微服务的在线考试系统整体业务涵盖考试的重要环节,包括:

1)考前。考试管理员按照考试相关要求配置考试项目,进行报名设置,生成准考证。考生自主注册,在考试报名有效期内自行完成报名,已设置缴费的科目支持在线缴费和发票申请,报名成功后支持在线打印准考证。考试管理员须按照考试相关要求管理系统题库,进行考场编排、试卷组卷。

2)考中。考生按照考试时间要求,登录考试系统进行答题并提交试卷。监考人员在后台实时监测考试过程。在线考试系统也会通过AI识别将疑似违规信息反馈给监考人员,全程对考试进行轨迹存档和视频录像。

3)考后。考试系统依据评分规则对客观题进行自动评分,主观题由阅卷人员判分,并自动将客观题和主观题得分加总,得出最终成绩。考试管理员配置成绩查询和证书下载链接,并通知考生登录查询下载。

2.5.2" 数据流程

考试系统内数据按照考试流程主要包括四个部分:考试报名数据、考试组织数据、考生考试数据、成绩数据。详细内容如下:

1)考试报名。设置报名采集信息和科目,发布后考生注册并完成信息填报,包括姓名、证件号码、考试科目、缴费(发票开具)、准考证打印等。

2)考试组织。系统可支持线上题库维护、考试组卷、考务编排、考试设置。

3)考生考试。考生登录考试系统,完成信息确认后进行答题。在考试过程中,可实现在线监考,系统同步记录考生的相关操作。

4)成绩管理。系统在评分阅卷后可对考生成绩进行分数线设置、成绩归档、统计分析。

2.5.3" 与其他系统的交互

考试系统在使用过程中,与其他系统的交互主要有三个:试卷导入、数据导出、成绩查询。详细内容如下:

1)试卷导入。系统可直接导入外部试卷、标准答案。

2)数据导出。考试管理员可导出后台数据进行存档、查看和管理。

3)成绩查询。提供成绩查询链接,考生可查询和下载成绩。

3" 实验测试

基于微服务的在线考试系统处于测试阶段,详细测试数据如下。

3.1" 系统管理

在系统管理工作台页面,展示了报名、考务、考试等应用列表,如图4所示。

3.2" 考试考务

考务编排页面包括基础设置、批次/科目管理、考生管理、编排管理等模块,如图5所示。

4" 结" 论

在数字化时代,借助互联网传递信息已是时代趋势,基于微服务的在线考试系统成熟后可研究对卫生健康行业考试的适用性。在线考试系统一定程度上减轻了考务管理的难度,降低了题库建设的复杂性,自动组卷可使试题设计变得高效快捷,提高了考生参加考试、查询成绩和下载证书的便利性。微服务架构将整个在线考试系统分解成一组较小的服务,每个服务独立部署运行,服务之间松散耦合,使得开发更加敏捷便利,可用性更高,功能扩展更方便。随着业务的变更和技术的更新,需加深业务流程细化程度,提升系统运行效率,进一步完善系统以满足实际考试需求。

参考文献:

[1] 李芳.中职学校在线考试系统的设计与实现 [J].现代信息科技,2022,6(24):134-137.

[2] 姚凯.基于B/S架构的在线心理学实验平台的设计与实现 [D].合肥:安徽医科大学,2023.

[3] 朱华汉.在线考试系统APP的设计与开发研究 [J].现代信息科技,2022,6(15):1-5+10.

[4] 王宇霄,俞丙威,王飞,等.数字化智慧题库平台设计 [J].现代信息科技,2023,7(7):49-52.

[5] 任焕海.基于B/S架构的在线考试系统设计与实现 [J].现代信息科技,2021,5(22):13-16.

[6] 吕亚龙.微服务架构下服务发现和服务容错技术研究 [D].西安:西安电子科技大学,2022.

[7] 付冬芹.在线考试系统的设计与实现 [D].北京:北京交通大学,2023.

[8] 王希常.数字化考试的愿景与挑战 [J].中国考试,2022(6):1-5.

[9] 徐晓.基于微信小程序的练习题库的设计与实现——以数字媒体交互设计资源包为例 [J].电脑与信息技术,2023,31(4):58-61+66.

[10] 徐威.客观题批改与主观题批阅痕迹识别的算法研究及系统实现 [D].武汉:华中科技大学,2022.

[11] 刘佳维,黎松筠,杨广益,等.基于遗传算法适应度分析的智能组卷在线考试系统设计 [J].电脑与信息技术,2022,30(5):46-48+63.

[12] 李艳.B/S结构下英语笔译在线考试系统设计 [J].信息技术与信息化,2022(5):103-106.

[13]金欣.基于ASP.NET和多数据库访问技术的在线考试系统设计分析 [J].长江信息通信,2021,34(11):80-82.

[14] 黄逸凡.基于云服务的计算机在线考试系统设计研究 [J].湖南工业职业技术学院学报,2022,22(2):6-8.

作者简介:褚娟(1982—),女,汉族,山东济宁人,高级工程师,硕士研究生,研究方向:卫生健康人才信息化。

猜你喜欢

MySQL数据库微服务云平台
充电桩状态实时监控系统与C/S框架设计
微信公众平台在医院图书馆的应用现状调查
基于微信企业号的校园移动服务
微服务视角下高职图书馆数字资源使用分析
从单一模式系统架构往微服务架构迁移转化技术研究
高职院校开展基于云平台网络教学的探索与思考
企业云平台建设研究
基于云平台的微信互联式教学法的探索与实践
基于云平台的高职院校开放性职业培训工作体系建设研究
基于B/S结构的高校毕业设计选题系统的设计与实现