赵永明
(中国气象局气象干部培训学院 北京市 100081)
自2006年气象远程培训系统项目实施以来,逐步建成了集在线学习,教学组织管理、综合资源管理、网站内容管理、互动学习社区及在线考试系统为一体的综合性远程教育培训系统。其中在线考试系统主要实现在线管理试题库,在线组卷并安排相关学员参加在线考试等功能,包括题库管理、试卷管理、考试管理、考务管理、查询统计等主要模块,基本能满足组织远程培训学员参加在线考试等需求。在远程培训系统业务实施过程,发现存在如下问题:部分功能易用性较差;管理员组织考试的业务流程不够清晰;考试系统的性能还较差,不能满足大规模并发考试需求;系统的稳定性不高,有待提升。
为解决上述问题,通过近期的项目建设,完善了在线考试系统的题库管理、智能组卷、考试管理、考务管理及考试过程监控等功能和业务逻辑,改进了学员参加考试的易用性及浏览器的兼容性;调整了考试系统的后台业务管理流程;对之前的在线考试功能和培训班功能相互耦合紧密,不易扩展的问题进行了架构改造,对考试系统进行了独立部署,在培训实施环节通过开放接口调用使用考试系统;另外对系统的性能和稳定性的提升进行了优化,本文重点介绍在线考试系统性能优化的设计与实现。
在旧版在线考试系统基本具有了试题管理、试卷管理、考试管理、阅卷管理等基本功能模块,但在业务运行实施过程中存在一定的问题,功能性问题主要包括:试题管理的导入方式不够灵活,在线考试的防作弊功能不强,考试过程的监控不足,存在的系统性能问题包括部分考试参加人员较多时,有学员进入考试时看不到试卷的现象;少量学员参加考试时,存在中途退出以及提交答案保存时易丢失的情况,通过分析,定位原因主要是因为使用智能策略随机组卷考试模式时,大量考生同时进入考试时,系统会随机从试题库按设定的策略抽取试卷,在考试结束前考生提交答案时需集中将所有考生的每道题的答案写入到数据库,上诉操作时数据库读写的并发压力都较大,要解决这些问题,计划从系统架构、系统整体设计、数据库设计及程序编码等方面全方位对系统进行优化,提高系统的数据吞吐能力,提升系统的并发支持能力及稳定性,以提升在线考试系统的整体性能,目标是单台考试服务器稳定支持200 人考试提高到5000 人。
根据存在问题、原因分析以及需求目标,我们对系统功能和系统性能进行了改造。
系统采用高效灵活的 J2EE 架构和全 B/S 模式,具有高度的可靠性、扩展性和易用性,同时增加了用户权限控制、访问控制、日志管理、登陆安全以及资源和数据等安全性处理。如图1 所示。
通过改造系统全面实现了试题试卷信息化管理、智能化组卷、电子化考务管理、智能阅卷评判、考试过程监控、考试结果分析,真正实现全过程智能化的考试系统。具体包括:
图1:气象远程教育培训在线考试系统功能结构图
图2:气象远程教育培训在线考试管理流程图
2.2.1 考试题型增加
在原来选择题、填空题、简答题、判断题的基础上了增加了连线题和阅读理解题等新题型的支持,支持题干包含图片和视频。
2.2.2 题库可共享
题库管理模块支持独立的分类管理,题库可由各级机构自主维护管理,上级机构的题库还可共享给分院和省级培训中心使用,共享后的题库下级机构只具有使用权。
2.2.3 试卷管理
在原来只能按题型组卷的基础上增加了多种策略组卷方式,可按题型加难度加知识点组合组卷。支持策略组卷,支持按必考题和按题库比例抽题。
2.2.4 试题导入功能优化
支持试题录入、支持按导入批次,增加批量对试题进行删除等维护操作。
2.2.5 考务管理及考试监控管理
图3:气象远程教育培训在线考试实施情况列表
增加了考生卷面差异化显示等试卷防抄袭等功能,增加了考场总览、考试延时、强制收卷、作弊记录等多种管控手段,优化改造了阅卷任务分配、成绩和及格线、成绩确认、成绩公布设置、补考设置等考务管理功能。
2.2.6 题库统计功能升级。
升级后的考试系统可以按题型、难度、知识点对题库的试题量,试题库的使用率以及试题的答题正确率等维度进行统计分析。
气象远程教育培训在线考试管理流程图如图2 所示。
2.3.1 采用预加载发卷技术提升系统随机抽题效率
使用智能策略随机组卷模式,学员进入考试时,系统会随机从指定的题库按比例按策略抽取试题,自动生成试卷,每位考生所抽取的试卷都不同。为缓解抽题压力,我们设计在考试开始时间前,考试公告发布后,系统提前抽取加密后的几套试卷进行预加载,考试时间到时学员从已预先加载的试卷中自动打开试卷,对每学员通过随机更换题型顺序及选择题的答题选项的顺序。实现了每学员进入考试时看到的试卷不一样的效果。预先下发加密试卷数量默认为20 套,根据性能需要,默认数量可调整。通过预加载发卷技术、试卷动态压缩技术基本解决了大并发考试时随机抽题导致的考生进入时白屏的现象。
2.3.2 采用分时差异化答案提交技术解决试题答案并发提交稳定性
在考试过程中,针对考试答案保存,按照一个时间段(默认3分钟)为周期,在每个时段之内考生答案暂存在浏览器cookie 内, cookie 满时自动差异化的将考生答案提交到服务器端,从而避免了同一时间并发提交,通过答题双通道保障,确保答卷过程答题结果不丢失任何数据,缓解了数据库的并发写入的压力,提高系统性能,实现了考生在考试中机器掉电,断网等异常情况时,可马上换电脑或网络环境进入后实时接着考试,系统会保存考试电脑故障前的抽到的试卷及已答题情况,另外在考试结束前如果遇到其他网络问题,系统也会在网络恢复正常后自动处理考生的答题结果及成绩处理。
2.3.3 采用动态线程池技术优化了系统承载能力
在考生进入考试前,通过网页请求发送参加考试及提交答案信号,系统将所有考生的请求存入网页请求队列,利用动态线程池技术的伸缩性,基于线程预创建技术,线程创建和销毁本身所带来的开销分摊到了各个网页请求的任务上,执行次数越多,每个任务所分担到的线程本身开销则越小,实现智能缓存排队执行处理所有请求,保证所有请求不会因为某个节点压力导致请求失败。提升了系统的承载能力。
2.3.4 历史数据和实时考试数据分离保证了系统的高可用性
将历史数据和实时考试数据分离,在每次考试结束时,将实时考试数据及时归档,使得考试性能不因数据量增加而造成系统衰减,保障了在线考试系统的整体数据处理能力,明显提升了考试系统性能。
通过上述设计思路,调整了系统架构,进行了重新编码实现,完成了对旧版考试系统的升级改造,改造后的新版在线考试系统已上线运行,系统较之旧版系统增加了灵活的题库管理、丰富的题型、考试全流程管理支持、多种策略的组卷方式、智能化及协助阅卷、多重考务管理及监控、多层次的权限控制以及多维度的统计分析等新的功能,除此之外,新在线考试系统优秀的带宽节约及良好的稳定性及并发支持能力在新的考试业务中表现充分,系统上线后我们实际组织了多次面向全国的天气预报、观测、农气等不同专业的远程在线考试活动,系统表现卓越,性能提升明显,故障率明显降低,基本没有出现未知问题,通过性能测试单台考试服务器完全能满足5000 人并发考试的需求,通过系统架构的调整升级,今后随着业务量的增加,还可轻易扩展部署新的考试服务器,可轻易满足未来的在线考试的业务需求。气象远程教育培训在线考试实施情况列表如图3 所示。