趙永明
(中國氣象局氣象干部培訓學院 北京市 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 所示。