信息技术考试软件的设计与关键技术分析
2014-03-17周建良
周建良
摘要:本文介绍了针对学校现有硬件与网络资源而开发的,适用于中小学信息技术学科的上机考试系统的设计,并着重介绍了系统实现中关键问题的解决方法。
关键词:中小学;信息技术;考试系统
2009年,笔者与象山县教育局教科研中心合作,承担了信息技术学科上机考试系统的开发。几年来,该系统在不断的改进中得到了极大的完善,下面笔者将介绍该考试系统的一些主要技术问题。
● 考试题型设计
信息技术课程的特点是要求学生不仅了解基本知识与基本概念,而且要求学生掌握常用信息处理软件的操作方法。[1]根据这一特点,考试内容主要包括基础知识和实践操作两部分。
考试时间45分钟,为综合考查学生的实际能力,本系统的考核题型包括单项选择题、Windows操作题、Office操作题、多媒体操作题(Photoshop和Flash随机二选一)和文字录入题,有关对Internet网络操作的考核融合在上述操作题中完成。
● 系统总体架构
本系统是针对中小学信息技术学科考试而开发设计的,考点安排在学校机房内,考试地点相对固定且客户端的考试机数量有限。考试内容以文件(夹)操作、Office文档操作、多媒体作品处理为主,需要初始化考试环境,实现客户端自动阅卷,考试中服务器与客户机通信量也很大。所以,系统的开发优先考虑基于局域网的C/S结构,考试环境是由一台考试服务器与多台考试客户机通过TCP/IP协议互联成的一个局域网络。
考务服务器位于考试中心,考点服务器与考务服务器通过互联网连接,采用HTTP协议通信。
● 考试软件设计
整个考试系统包括考务管理子系统、试题管理子系统、上机考核子系统和成绩处理子系统。本文重点阐述整个系统的核心部分,即上机考核子系统的设计,该子系统是一个C/S(客户机/服务器) 模式的网络考试系统。
考点服务器部署在每个考场,负责考生信息管理、试题文件更新、考生身份验证、试题文件分发、考试过程实时监控、收卷、重考与续考管理、考试包检查等工作,由考场管理员操作。客户端安装在考生上机操作的计算机上,主要功能包括试题的显示、时间控制、考生操作结果收集、考试异常情况处理、自动阅卷、考生操作结果备份上传等。
开考前,由考场管理员登录考点服务器端软件,通过因特网与考试中心内的考务服务器连接,下载更新考点服务器端的试题库文件。开考后,考生根据准考证号在指定的客户机登录,经考点服务器身份验证确认后进行答题操作。当考生完成考试交卷时,客户端自动批阅考生的考试结果,并将考试结果打包加密后以文件形式上传至考点服务器。考试结束后,由考场管理员将本考点所有考生考试包文件提交到考务服务器。[2]
● 系统实现关键技术分析
1.并发处理
考点内的考试服务器网络信息交互并发处理是系统稳定运行的一个关键所在。考试服务器同时管理多台考试客户机,而考试往往同时开始,并集中在一段时间内结束。所以,同时登录与同时交卷是经常发生的事情,如果服务器并发处理解决不好,就可能发生考生无法登录、试题文件更新失败、考试包错交或漏交等问题。本系统主要通过以下方法来处理并发问题:①服务器端采用动态WinSock数组控件,将下标为0的WinSock控件固定作为服务器端口侦听对象。②当服务端收到一个新的连接请求时,服务器首先检查在已经加载的WinSock数组对象中是否有空闲,如有,就使用该空闲WinSock对象与客户机进行通信。否则,就动态加载新的WinSock对象。③在传输考试包等大容量文件时,由于WinSock控件一次只能接收不超过8KB的数据,所以数据必须分批发送和接收,在一对多的通信状态下,系统使用一个数组变量来跟踪每个连接的通信状态,以确定每个连接数据是否发送完成。
2.文件传输
在考试的整个过程中,有两次大容量文件传输过程,第一次发生在客户端软件启动时,系统会检测客户端试题库文件的版本,如与服务器端试题库文件版本不一致,则从服务器端下载新的试题库文件;第二次发生在考生交卷后,为保留考生所有的考试操作记录,系统在交卷时,会自动收集考生的答卷信息并打包,在客户端本地生成一个以考生准考证号命名的考试包,然后将该考试包上传至考试服务器端保存。
相对于字符的传送,文件的传送要复杂得多。因为文件数据量大,格式复杂,使得接收时难以控制。为了解决这一问题,本系统采取文件分块传送的方式,把要发送的文件按一定数据量为单位进行分割,然后依次发送,因此服务器也要进行多次接收。
现以考试包文件的上传为例来说明文件传输的整个过程。整个过程可以分为以下三次:①客户端向服务器发送交卷信号“UploadFile”&准考证号&文件大小,如果服务器返回“Waiting”,说明服务器端连接数超过最大值,客户端可以等待几秒钟后重新发送交卷信号,如服务器返回“UploadOK”,说明服务器空闲,客户端可以发送考试包文件。②客户端先向服务器发送考试包文件的第一组数据,服务器接收数据完毕,发回“ReceiveOK”。客户端收到后再发送考试包文件的第二组数据。根据考试包文件大小的不同,这里需要重复若干次这样的交互,直至考试包文件传输结束。③客户端向服务器发送“UploadEnd”,服务器端把该考生作为已考处理,然后再向客户端发送“ReceiveEnd”,客户端接受到该信息以后,就说明是交卷成功了,考试结束。 [3]
3.数据安全性设计
考试是一件非常严肃的事情,决不允许发生数据泄露事件。本考试系统中需要重点安全保护的数据主要包括考试的试题库文件和考生考试结果数据两大类。
本系统中涉及文件类的数据,系统将这些文件分类压缩成标准的ZIP文件,然后利用数据加密算法RC4加密压缩文件。endprint
为了提高后期数据处理的速度,除了考试包中保存考生的考试成绩外,系统还将考生成绩直接发送到考试服务器,并保存在考试成绩数据库中。但考试成绩数据库采用的是安全性较差的Access数据库,因此除了利用Access数据库本身的安全机制进行保护外,还必须对考试成绩信息进行加密,生成考试成绩信息加密字符串。加密后的成绩数据都以密文的形式存储,没有密钥即使得到了这些密文也无法解密,从而保证了数据的安全性。成绩加密采用Blowfish加密算法,加密时将考试成绩作为明文,同时采用自定义的密钥,加密速度快,并且性能良好,解密速度也很快,在系统的应用过程中取得了良好的效果。
4.Internet模拟系统设计
基于Internet的Web网页浏览操作也是信息技术课程上机实践操作考试的主要内容之一,而在正式考试中,接入Internet是不现实的。本系统提出了一个嵌入式Web服务器的设计思想,把Web服务器嵌入客户端,即把客户机模拟成Web服务器。考试时由考试客户端来启动Web服务器程序,对考生而言,其操作就如同真正上网一样。[4]这样的设计,既方便了系统的安装,又提高了系统的稳定性与可维护性。
Web服务器使用HTTP协议进行信息交流,一个HTTP连接应该包括以下四个部分:①connection客户端连接服务器;②send request客户端发送一个request,也就是一个请求;③send response服务器解析这个request,并返回一个response;④disconnection当所有的response都发送完成后,服务器关闭连接。
以上四个部分中,第一部分和第四部分比较简单,第二部分的request是客户端生成的,需要服务器解析的一个字符串。所以,系统最主要的工作就是对request的处理和生成response,即提供基本的浏览网页(HTML文件)的功能。
最后,就是利用Hosts文件实现域名和本机IP地址的映射。具体实现方法是在客户端启动时,往Hosts文件中写入以下信息:127.0.0.1www.jsj.net。 “www.jsj.net”是考试网站的域名,该域名可以是不真实存在的,启动Web服务器程序后,当考生在IE浏览器地址栏中输入“http://www.jsj.net”时,将访问由本地Web服务器解析的网页。
5.自动阅卷实现
自动阅卷是整个系统中难度最大、工作量最大的模块。本系统将自动阅卷程序嵌入考试客户端,考生交卷后将立即进入自动阅卷过程,阅卷结束后再将考生操作的结果文档与阅卷结果打包加密,发送到考试服务器端保存。
单项选择题的评分过程比较简单,只须与标准答案比对即可评分。文字输入则根据输入的速度与正确率来计算得分。
Windows操作题主要考查考生对文件与文件夹操作、Windows设置以及IE操作等能力。文件与文件夹的操作可以使用VB的一些内部函数来获得相应的信息;Windows设置项目和IE操作则需要使用Windows API函数或直接从Windows注册表中获取信息,然后与标准答案进行比对来实现评分。
对于相关Office文档的阅卷,本系统利用Visual Basic Application(VBA) 技术对操作文档相关属性进行分析,从而获取评分所需的文档信息,与标准答案进行比对来完成评分。FrontPage网页制作的最终结果是一个文本格式的HTML文档,实现网页自动评分主要可采用两种方法:文本分析方法和文档对象模型分析方法。
多媒体作品由于包含的信息量巨大,且内部结构复杂,自动阅卷相对来说难度大一点。对于Photoshop作品的阅卷,可以利用PS脚本程序和PSD文档的二进制数据结构读取文件信息,通过分析比对实现评分;Flash作品的阅卷,是在Flash软件环境下通过运行JSFL脚本读取Flash对象的属性,并与标准答案进行比对,从而实现作品评价。
当然,作为一个完善的阅卷系统还有很多工作要做,如实际评卷时需详细考虑容错问题,编写错误处理代码等。另外,阅卷系统与具体试题的内容分离也是很重要的,这样可以提高系统的通用性。为此,本系统开发了一套阅卷信息形式化描述解释系统[5],系统的阅卷模式如下所示。
● 结束语
本文介绍了整个考试系统设计中的一些主要技术,作为一个完整的考试系统软件还需要一些与考试管理相关的配套软件,限于篇幅,本文不能面面俱到。希望本文对致力于信息技术考试系统研究的教师有一定的帮助,并最终设计出成功的考试系统。
参考文献:
[1]金炳尧,马永进,骆红波.一个信息技术等级考试系统的设计研究[J].浙江师范大学学报(自然科学版),2005,28(2):159-163.
[2]黄英斌,竹翠.基于网络的新型计算机考试系统[J].计算机工程,2001,27(8):150-152.
[3]骆红波.基于C/S模式的信息技术考试系统的设计与实现[D].北京:国防科技大学,2005:19-46.
[4]金炳尧,骆红波,马永进.信息技术考试系统中模拟Internet的实现技术[J].计算机工程,2005,31(17):208-209.
[5]马永进.中小学信息技术等级证书考试阅卷系统的设计与实现[D].北京:国防科技大学,2005:5-45.endprint