周建良
摘要:本文介紹了針對學(xué)?,F(xiàn)有硬件與網(wǎng)絡(luò)資源而開發(fā)的,適用于中小學(xué)信息技術(shù)學(xué)科的上機(jī)考試系統(tǒng)的設(shè)計(jì),并著重介紹了系統(tǒng)實(shí)現(xiàn)中關(guān)鍵問題的解決方法。
關(guān)鍵詞:中小學(xué);信息技術(shù);考試系統(tǒng)
2009年,筆者與象山縣教育局教科研中心合作,承擔(dān)了信息技術(shù)學(xué)科上機(jī)考試系統(tǒng)的開發(fā)。幾年來,該系統(tǒng)在不斷的改進(jìn)中得到了極大的完善,下面筆者將介紹該考試系統(tǒng)的一些主要技術(shù)問題。
● 考試題型設(shè)計(jì)
信息技術(shù)課程的特點(diǎn)是要求學(xué)生不僅了解基本知識與基本概念,而且要求學(xué)生掌握常用信息處理軟件的操作方法。[1]根據(jù)這一特點(diǎn),考試內(nèi)容主要包括基礎(chǔ)知識和實(shí)踐操作兩部分。
考試時(shí)間45分鐘,為綜合考查學(xué)生的實(shí)際能力,本系統(tǒng)的考核題型包括單項(xiàng)選擇題、Windows操作題、Office操作題、多媒體操作題(Photoshop和Flash隨機(jī)二選一)和文字錄入題,有關(guān)對Internet網(wǎng)絡(luò)操作的考核融合在上述操作題中完成。
● 系統(tǒng)總體架構(gòu)
本系統(tǒng)是針對中小學(xué)信息技術(shù)學(xué)科考試而開發(fā)設(shè)計(jì)的,考點(diǎn)安排在學(xué)校機(jī)房內(nèi),考試地點(diǎn)相對固定且客戶端的考試機(jī)數(shù)量有限??荚噧?nèi)容以文件(夾)操作、Office文檔操作、多媒體作品處理為主,需要初始化考試環(huán)境,實(shí)現(xiàn)客戶端自動閱卷,考試中服務(wù)器與客戶機(jī)通信量也很大。所以,系統(tǒng)的開發(fā)優(yōu)先考慮基于局域網(wǎng)的C/S結(jié)構(gòu),考試環(huán)境是由一臺考試服務(wù)器與多臺考試客戶機(jī)通過TCP/IP協(xié)議互聯(lián)成的一個(gè)局域網(wǎng)絡(luò)。
考務(wù)服務(wù)器位于考試中心,考點(diǎn)服務(wù)器與考務(wù)服務(wù)器通過互聯(lián)網(wǎng)連接,采用HTTP協(xié)議通信。
● 考試軟件設(shè)計(jì)
整個(gè)考試系統(tǒng)包括考務(wù)管理子系統(tǒng)、試題管理子系統(tǒng)、上機(jī)考核子系統(tǒng)和成績處理子系統(tǒng)。本文重點(diǎn)闡述整個(gè)系統(tǒng)的核心部分,即上機(jī)考核子系統(tǒng)的設(shè)計(jì),該子系統(tǒng)是一個(gè)C/S(客戶機(jī)/服務(wù)器) 模式的網(wǎng)絡(luò)考試系統(tǒng)。
考點(diǎn)服務(wù)器部署在每個(gè)考場,負(fù)責(zé)考生信息管理、試題文件更新、考生身份驗(yàn)證、試題文件分發(fā)、考試過程實(shí)時(shí)監(jiān)控、收卷、重考與續(xù)考管理、考試包檢查等工作,由考場管理員操作??蛻舳税惭b在考生上機(jī)操作的計(jì)算機(jī)上,主要功能包括試題的顯示、時(shí)間控制、考生操作結(jié)果收集、考試異常情況處理、自動閱卷、考生操作結(jié)果備份上傳等。
開考前,由考場管理員登錄考點(diǎn)服務(wù)器端軟件,通過因特網(wǎng)與考試中心內(nèi)的考務(wù)服務(wù)器連接,下載更新考點(diǎn)服務(wù)器端的試題庫文件。開考后,考生根據(jù)準(zhǔn)考證號在指定的客戶機(jī)登錄,經(jīng)考點(diǎn)服務(wù)器身份驗(yàn)證確認(rèn)后進(jìn)行答題操作。當(dāng)考生完成考試交卷時(shí),客戶端自動批閱考生的考試結(jié)果,并將考試結(jié)果打包加密后以文件形式上傳至考點(diǎn)服務(wù)器??荚嚱Y(jié)束后,由考場管理員將本考點(diǎn)所有考生考試包文件提交到考務(wù)服務(wù)器。[2]
● 系統(tǒng)實(shí)現(xiàn)關(guān)鍵技術(shù)分析
1.并發(fā)處理
考點(diǎn)內(nèi)的考試服務(wù)器網(wǎng)絡(luò)信息交互并發(fā)處理是系統(tǒng)穩(wěn)定運(yùn)行的一個(gè)關(guān)鍵所在。考試服務(wù)器同時(shí)管理多臺考試客戶機(jī),而考試往往同時(shí)開始,并集中在一段時(shí)間內(nèi)結(jié)束。所以,同時(shí)登錄與同時(shí)交卷是經(jīng)常發(fā)生的事情,如果服務(wù)器并發(fā)處理解決不好,就可能發(fā)生考生無法登錄、試題文件更新失敗、考試包錯(cuò)交或漏交等問題。本系統(tǒng)主要通過以下方法來處理并發(fā)問題:①服務(wù)器端采用動態(tài)WinSock數(shù)組控件,將下標(biāo)為0的WinSock控件固定作為服務(wù)器端口偵聽對象。②當(dāng)服務(wù)端收到一個(gè)新的連接請求時(shí),服務(wù)器首先檢查在已經(jīng)加載的WinSock數(shù)組對象中是否有空閑,如有,就使用該空閑WinSock對象與客戶機(jī)進(jìn)行通信。否則,就動態(tài)加載新的WinSock對象。③在傳輸考試包等大容量文件時(shí),由于WinSock控件一次只能接收不超過8KB的數(shù)據(jù),所以數(shù)據(jù)必須分批發(fā)送和接收,在一對多的通信狀態(tài)下,系統(tǒng)使用一個(gè)數(shù)組變量來跟蹤每個(gè)連接的通信狀態(tài),以確定每個(gè)連接數(shù)據(jù)是否發(fā)送完成。
2.文件傳輸
在考試的整個(gè)過程中,有兩次大容量文件傳輸過程,第一次發(fā)生在客戶端軟件啟動時(shí),系統(tǒng)會檢測客戶端試題庫文件的版本,如與服務(wù)器端試題庫文件版本不一致,則從服務(wù)器端下載新的試題庫文件;第二次發(fā)生在考生交卷后,為保留考生所有的考試操作記錄,系統(tǒng)在交卷時(shí),會自動收集考生的答卷信息并打包,在客戶端本地生成一個(gè)以考生準(zhǔn)考證號命名的考試包,然后將該考試包上傳至考試服務(wù)器端保存。
相對于字符的傳送,文件的傳送要復(fù)雜得多。因?yàn)槲募?shù)據(jù)量大,格式復(fù)雜,使得接收時(shí)難以控制。為了解決這一問題,本系統(tǒng)采取文件分塊傳送的方式,把要發(fā)送的文件按一定數(shù)據(jù)量為單位進(jìn)行分割,然后依次發(fā)送,因此服務(wù)器也要進(jìn)行多次接收。
現(xiàn)以考試包文件的上傳為例來說明文件傳輸?shù)恼麄€(gè)過程。整個(gè)過程可以分為以下三次:①客戶端向服務(wù)器發(fā)送交卷信號“UploadFile”&準(zhǔn)考證號&文件大小,如果服務(wù)器返回“Waiting”,說明服務(wù)器端連接數(shù)超過最大值,客戶端可以等待幾秒鐘后重新發(fā)送交卷信號,如服務(wù)器返回“UploadOK”,說明服務(wù)器空閑,客戶端可以發(fā)送考試包文件。②客戶端先向服務(wù)器發(fā)送考試包文件的第一組數(shù)據(jù),服務(wù)器接收數(shù)據(jù)完畢,發(fā)回“ReceiveOK”??蛻舳耸盏胶笤侔l(fā)送考試包文件的第二組數(shù)據(jù)。根據(jù)考試包文件大小的不同,這里需要重復(fù)若干次這樣的交互,直至考試包文件傳輸結(jié)束。③客戶端向服務(wù)器發(fā)送“UploadEnd”,服務(wù)器端把該考生作為已考處理,然后再向客戶端發(fā)送“ReceiveEnd”,客戶端接受到該信息以后,就說明是交卷成功了,考試結(jié)束。 [3]
3.數(shù)據(jù)安全性設(shè)計(jì)
考試是一件非常嚴(yán)肅的事情,決不允許發(fā)生數(shù)據(jù)泄露事件。本考試系統(tǒng)中需要重點(diǎn)安全保護(hù)的數(shù)據(jù)主要包括考試的試題庫文件和考生考試結(jié)果數(shù)據(jù)兩大類。
本系統(tǒng)中涉及文件類的數(shù)據(jù),系統(tǒng)將這些文件分類壓縮成標(biāo)準(zhǔn)的ZIP文件,然后利用數(shù)據(jù)加密算法RC4加密壓縮文件。endprint
為了提高后期數(shù)據(jù)處理的速度,除了考試包中保存考生的考試成績外,系統(tǒng)還將考生成績直接發(fā)送到考試服務(wù)器,并保存在考試成績數(shù)據(jù)庫中。但考試成績數(shù)據(jù)庫采用的是安全性較差的Access數(shù)據(jù)庫,因此除了利用Access數(shù)據(jù)庫本身的安全機(jī)制進(jìn)行保護(hù)外,還必須對考試成績信息進(jìn)行加密,生成考試成績信息加密字符串。加密后的成績數(shù)據(jù)都以密文的形式存儲,沒有密鑰即使得到了這些密文也無法解密,從而保證了數(shù)據(jù)的安全性。成績加密采用Blowfish加密算法,加密時(shí)將考試成績作為明文,同時(shí)采用自定義的密鑰,加密速度快,并且性能良好,解密速度也很快,在系統(tǒng)的應(yīng)用過程中取得了良好的效果。
4.Internet模擬系統(tǒng)設(shè)計(jì)
基于Internet的Web網(wǎng)頁瀏覽操作也是信息技術(shù)課程上機(jī)實(shí)踐操作考試的主要內(nèi)容之一,而在正式考試中,接入Internet是不現(xiàn)實(shí)的。本系統(tǒng)提出了一個(gè)嵌入式Web服務(wù)器的設(shè)計(jì)思想,把Web服務(wù)器嵌入客戶端,即把客戶機(jī)模擬成Web服務(wù)器??荚嚂r(shí)由考試客戶端來啟動Web服務(wù)器程序,對考生而言,其操作就如同真正上網(wǎng)一樣。[4]這樣的設(shè)計(jì),既方便了系統(tǒng)的安裝,又提高了系統(tǒng)的穩(wěn)定性與可維護(hù)性。
Web服務(wù)器使用HTTP協(xié)議進(jìn)行信息交流,一個(gè)HTTP連接應(yīng)該包括以下四個(gè)部分:①connection客戶端連接服務(wù)器;②send request客戶端發(fā)送一個(gè)request,也就是一個(gè)請求;③send response服務(wù)器解析這個(gè)request,并返回一個(gè)response;④disconnection當(dāng)所有的response都發(fā)送完成后,服務(wù)器關(guān)閉連接。
以上四個(gè)部分中,第一部分和第四部分比較簡單,第二部分的request是客戶端生成的,需要服務(wù)器解析的一個(gè)字符串。所以,系統(tǒng)最主要的工作就是對request的處理和生成response,即提供基本的瀏覽網(wǎng)頁(HTML文件)的功能。
最后,就是利用Hosts文件實(shí)現(xiàn)域名和本機(jī)IP地址的映射。具體實(shí)現(xiàn)方法是在客戶端啟動時(shí),往Hosts文件中寫入以下信息:127.0.0.1www.jsj.net。 “www.jsj.net”是考試網(wǎng)站的域名,該域名可以是不真實(shí)存在的,啟動Web服務(wù)器程序后,當(dāng)考生在IE瀏覽器地址欄中輸入“http://www.jsj.net”時(shí),將訪問由本地Web服務(wù)器解析的網(wǎng)頁。
5.自動閱卷實(shí)現(xiàn)
自動閱卷是整個(gè)系統(tǒng)中難度最大、工作量最大的模塊。本系統(tǒng)將自動閱卷程序嵌入考試客戶端,考生交卷后將立即進(jìn)入自動閱卷過程,閱卷結(jié)束后再將考生操作的結(jié)果文檔與閱卷結(jié)果打包加密,發(fā)送到考試服務(wù)器端保存。
單項(xiàng)選擇題的評分過程比較簡單,只須與標(biāo)準(zhǔn)答案比對即可評分。文字輸入則根據(jù)輸入的速度與正確率來計(jì)算得分。
Windows操作題主要考查考生對文件與文件夾操作、Windows設(shè)置以及IE操作等能力。文件與文件夾的操作可以使用VB的一些內(nèi)部函數(shù)來獲得相應(yīng)的信息;Windows設(shè)置項(xiàng)目和IE操作則需要使用Windows API函數(shù)或直接從Windows注冊表中獲取信息,然后與標(biāo)準(zhǔn)答案進(jìn)行比對來實(shí)現(xiàn)評分。
對于相關(guān)Office文檔的閱卷,本系統(tǒng)利用Visual Basic Application(VBA) 技術(shù)對操作文檔相關(guān)屬性進(jìn)行分析,從而獲取評分所需的文檔信息,與標(biāo)準(zhǔn)答案進(jìn)行比對來完成評分。FrontPage網(wǎng)頁制作的最終結(jié)果是一個(gè)文本格式的HTML文檔,實(shí)現(xiàn)網(wǎng)頁自動評分主要可采用兩種方法:文本分析方法和文檔對象模型分析方法。
多媒體作品由于包含的信息量巨大,且內(nèi)部結(jié)構(gòu)復(fù)雜,自動閱卷相對來說難度大一點(diǎn)。對于Photoshop作品的閱卷,可以利用PS腳本程序和PSD文檔的二進(jìn)制數(shù)據(jù)結(jié)構(gòu)讀取文件信息,通過分析比對實(shí)現(xiàn)評分;Flash作品的閱卷,是在Flash軟件環(huán)境下通過運(yùn)行JSFL腳本讀取Flash對象的屬性,并與標(biāo)準(zhǔn)答案進(jìn)行比對,從而實(shí)現(xiàn)作品評價(jià)。
當(dāng)然,作為一個(gè)完善的閱卷系統(tǒng)還有很多工作要做,如實(shí)際評卷時(shí)需詳細(xì)考慮容錯(cuò)問題,編寫錯(cuò)誤處理代碼等。另外,閱卷系統(tǒng)與具體試題的內(nèi)容分離也是很重要的,這樣可以提高系統(tǒng)的通用性。為此,本系統(tǒng)開發(fā)了一套閱卷信息形式化描述解釋系統(tǒng)[5],系統(tǒng)的閱卷模式如下所示。
● 結(jié)束語
本文介紹了整個(gè)考試系統(tǒng)設(shè)計(jì)中的一些主要技術(shù),作為一個(gè)完整的考試系統(tǒng)軟件還需要一些與考試管理相關(guān)的配套軟件,限于篇幅,本文不能面面俱到。希望本文對致力于信息技術(shù)考試系統(tǒng)研究的教師有一定的幫助,并最終設(shè)計(jì)出成功的考試系統(tǒng)。
參考文獻(xiàn):
[1]金炳堯,馬永進(jìn),駱紅波.一個(gè)信息技術(shù)等級考試系統(tǒng)的設(shè)計(jì)研究[J].浙江師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,28(2):159-163.
[2]黃英斌,竹翠.基于網(wǎng)絡(luò)的新型計(jì)算機(jī)考試系統(tǒng)[J].計(jì)算機(jī)工程,2001,27(8):150-152.
[3]駱紅波.基于C/S模式的信息技術(shù)考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:國防科技大學(xué),2005:19-46.
[4]金炳堯,駱紅波,馬永進(jìn).信息技術(shù)考試系統(tǒng)中模擬Internet的實(shí)現(xiàn)技術(shù)[J].計(jì)算機(jī)工程,2005,31(17):208-209.
[5]馬永進(jìn).中小學(xué)信息技術(shù)等級證書考試閱卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:國防科技大學(xué),2005:5-45.endprint