在线考试系统的实现与优化

2014-10-10 17:46伍红华谷金平李治鑫
电脑知识与技术 2014年24期
关键词:在线考试优化

伍红华 谷金平 李治鑫

摘要:该文描述了在线考试系统的具体设计与实现过程以及该系统所包含的一些关键技术。特别对在设计中如何优化软件,提高服务器性能方面进行了具体的阐述。经过优化后的系统在学院多次举行的近3万人次的无纸化考试中性能良好。

关键词:优化;缓存;在线考试;ASP.NET

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)24-5684-03

随着计算机网络技术的不断发展,现代考试系统已经发生了革命性的变化。国外一些著名的考试项目均采用了网络在线考试的形式,例如雅思考试、托福考试以及一些专业技能的认证考试等,而国内也有很多高校和企业研制或者定制了自己的考试系统,例如,北京大学的ACM公开训练系统,全国计算机等级考试系统等。当然,由于当时的技术不成熟,很多系统都采用了C/S结构,例如,全国计算机等级考试系统等。为了省去客户端安装的麻烦,笔者根据高校标准化考试的要求,结合实际的教学软硬件条件,采用VS2010和MS SQL2008等开发工具,开发了一套基于B/S模式的在线考试系统。在论文中阐明了在线考试系统的设计方案,并且对考试系统进行了优化探讨。该系统在考试中发挥了重要作用,为学校的无纸化考试提供了有力的支持。

1 系统设计

根据系统的业务分析与需求,在线考试系统包括前台系统(即学生考试系统)和后台管理系统两个部分。如图1所示。

图1 在线考试系统的功能模块关系图

前台系统部分,考生可以登录进入熟悉考试规则页面,然后进入正式考试页面;后台管理系统部分,只有管理员权限才能进行操作,管理员可以进行题库管理、题型管理、试卷管理、学生管理、时间控制、考试实时监控和数据备份等操作。详细功能描述如下:

1.1 学生端在线考试

1)登录进入。学生凭有效身份登录进入考试系统,并锁定考生座位号。

2)进行考试。考生在线答题,选出答案,考试系统进行有效记录。

3)自动收发试卷。考生在有效时间内答题,答题时间结束时,系统将自动给出提示,并强制提交用户的试卷。

1.2 题型管理

1)浏览题型信息。确认系统题库中是否有该题型以及本次考试是否需要该题型。

2)修改相关题型信息。确定题型后,修改试卷的提醒内容。

1.3 题库管理

1)浏览题库信息。确认本次考试系统题库中是否存在题目内容。

2)增加新题目到题库中。向题库增加需要的题目内容。

3)修改相关题目信息。对题库中题目内容有误的题目信息进行校正。

4)根据相应的题型浏览题库信息。查看相应题型的具体题目内容。

1.4 学生管理

1)浏览学生信息。搜索查看特定学生的信息,或者查看所有考生的信息。

2)添加新学生。临时添加学生进入考试。

3)修改相关学生信息。修改考生的考试状态,解除座位锁定,进行换机操作。

1.5 命题管理

1)出卷命题。命题人进入后台管理系统,可以选择相应的题型和题目数量,生成对应的试卷;

2)分类随机组卷。考生在线考试时的试卷是系统随机分配的,每个考生的试卷都是不同的。

1.6 考试管理

1)统计考生参考信息。考试进行中随时可以统计本场考试的参考人数和缺考人数。

2)实时监控。后台管理员可以实时监控考试的提交人数和为提交人数。

1.7 试卷管理

1)生成个人详细答题试卷。考试结束后,管理员可进行相关操作,生成每位考生的答题详细报告,并做归档。

2)整体试卷分析报告。科目考试结束后,系统可以按照一定的统计分析规则生成整个考试的分析报告。

1.8 数据备份

1)数据库备份。管理员进入后台管理系统,可以对本场考试的数据库数据进行备份并下载到本地。

2)文件备份。科目考试结束后,管理员可以对本场考试的文件数据进行备份并下载到本地。

2 在线考试软件的优化及关键技术

在有限的硬件条件下,为了能有更好的性能,这就需要对软件进行优化处理。

1)提前生成考试数据,采用空间换时间的策略。为了满足对考试的实时性要求,在考试时应该尽量减少对服务器的访问请求。很多考试软件采用实时生成考试数据的方法,容易形成并发操作,对服务器的压力必然增大,因此将所有能提前到考试前生成的数据均提前到考试前生成,如考生数据的提前导入,试题的提前抽取,试卷的生成,考生密码的生成等。

2)采用.net的缓存策略。试题库虽然是随机抽取的,但是对全部考生来说,总有一些考生的试卷中的试题会是相同的。当采用缓存策略时,就可以将考生访问过的试题缓存起来,当下一个考生要到数据库中访问同一道试题时,就可以直接命中缓存中的试题,而不需要进行数据库的连接与查询,也就是一次访问数据库,多次使用。这样可以极大地提高软件对数据的访问性能,明显地加快数据的处理。

3)采用Ajax技术减少访问服务器的数据量和避免频繁的刷新屏幕。由于考生要频繁地操作屏幕,如果不采用Ajax技术,必然会因为考生频繁地翻题而导致屏幕不断地刷新,每一次的刷新都会是整个屏幕的数据与服务器进行交换。大量的数据交换,必然会增加服务器的压力,导致拓机等后果。分析可知,考生在做题过程中,整个屏幕需要改变的只是每道题的更新,因此采用Ajax技术,可以只进行局部刷新。一方面减少与服务器的数据量的交换,另一方面局部刷新,增强用户体验。

4)服务器对数据的访问,采用存储过程。用存储过程来存取数据,虽然会加大开发难度。但好处也是挺多的。首先是可以充分利用数据库的性能,通过预编译的方法加快对数据的访问,达到快速对数据的访问与存储,从而提高软件对数据的访问性能。另一方面也可以达到与前台页面的低耦合,提高软件的适应变化能力。

5)采用临时存储考生答案,避免频繁对数据库的读写操作。如果考生每做一道题,就在数据服务器中保存,必定会加重服务器的读写压力。本软件采用临时将考生的答案存储在客户端,然后间隔一定的时间后一次写入。这样就避免了频繁地与后台数据库进行操作,达到减轻服务器压力的效果,从而提高性能。

3 软件测试

利用LoadRunner测试软件,对在线考试系统进行测试,测试方案模型如图3所示。

利用软件控制器虚拟出大量的用户对系统进行并发测试,检验软件和硬件的支撑能力。当按照预定的用户数进行测试时,所观察到的硬件设施以及网络的性能。

1)当虚拟并发用户达到400时,网络吞吐量以及事件响应时间均正常。如图4所示。

2)当虚拟用户达到1000时,硬件系统状况运行正常。如图5所示。

4 总结

本系统是一个基于ASP.NET的浏览器/服务器模式的系统,具有广泛的实用性,功能符合实际考试步骤,成功地实现了无纸化考试,系统操作简单方便,无需专业培训,利用浏览器即可进行操作。随着信息技术的快速发展,在线考试系统将会越来越受到人们的青睐,也必将成为教学管理部门的好帮手。

参考文献:

[1] 黄龙军.存储过程技术在网络考试系统SQL注入攻击防御上的应用[J].计算机系统应用, 2013 (1): 103-106.

[2] 刘爱民.基于.net技术的在线考试系统的设计与实现[J].电脑开发与应用,2011(7): 73-74,77.

[3] 王晓丰,李海健, (). "ASP.NET和AJAX技术在网络考试系统中的应用[J].廊坊师范学院学报:自然科学版,2009 (5): 33-35.

[4] 王瑜,侯整风.缓存技术在在线考试系统中的应用[J].哈尔滨师范大学自然科学学报,2011(2): 59-63.

[5] 徐少文.Ajax技术在在线考试系统开发中的应用[J].中国科技信息,2010(22):120-121.

猜你喜欢
在线考试优化
超限高层建筑结构设计与优化思考
民用建筑防烟排烟设计优化探讨
关于优化消防安全告知承诺的一些思考
一道优化题的几何解法
基于Java的考场管理系统的研究与实现
大学物理在线考试与分析系统
效率观下高校课程考试形式的改革探索
大数据背景下在线评教与在线考试融合的思路探讨