周建良

摘要:本文介紹了針對學校現有硬件與網絡資源而開發的,適用于中小學信息技術學科的上機考試系統的設計,并著重介紹了系統實現中關鍵問題的解決方法。
關鍵詞:中小學;信息技術;考試系統
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