陳坡坡 文福安
摘要:隨著我國信息化技術的發展,網絡考試在各種培訓考試、等級考試、認證考試、專業考試等方面應用都非常廣泛,且越來越呈現出其卓越的優越性,各種網上考試系統隨之而產生。雖然在線考試系統的開發越來越簡單,但是在考試過程中,考場管理系統的作用尤為重要,針對這種情況,本文以此探討了現有的一些考場管理系統,著重分析了基于Java的考場管理系統,介紹了基于java的考場管理系統是如何通過thrift通信實現對考試過程的控制的,使得監考人員能夠直接使用這套系統,同時介紹了基于Java的考場管理系統的開發過程的難點研究,希望借此給開發人員提供相應的經驗,提高開發的效率。
關鍵詞:考場管理系統;在線考試;java開發;thrift
中圖分類號:TP39 文獻標識碼:A DOI:10.3969/j.issn.1003-6970.2016.04.020
0 引言
隨著計算機應用及網絡技術的迅猛發展,人們迫切要求利用計算機技術來進行在線考試或者計算機化考試,以減輕教師的工作負擔以及提高工作效率,提高考試的質量。從而使考試更趨于公正、客觀。由于計算機自動組卷、閱卷,不僅能節省教師大量寶貴時間,而且能徹底消除出卷人的主觀影響,考試工作更加規范化,更加客觀、真實、全面的反映教學的實際效果,有助于促進教學質量的提高,有助于實現考、教分離,促使教師嚴格按照教學大綱的要求認真備課,認真組織教學內容,改進教學方法,對提高教學質量和整體教學水平有著非常重要的意義。
目前在線考試系統很多,ETS(美國教育考試服務中心)舉辦的GRE(美國研究生入學考試)的計算機網絡化考試就是最有影響的案例,但是在線考試系統實現的功能差異很大,存在的問題也很多,例如數據庫的安全性等,考試系統研究開發仍任重而道遠。管理系統的不完善導致了考試的漏洞,所以優秀的考場管理系統的開發,對考試系統的全面發展有重要意義。本文主要是對考場管理系統的關鍵技術進行研究。
1 考場管理系統的關鍵步驟
1.1 考場管理系統與考生的通信
在考場管理系統配置好考務的信息后,就需要進行的是考場管理系統和考生機系統的通信,在局域網條件下,使用什么樣的通信協議連接考生機系統和考場管理系統,這個就需要考慮考場管理系統和考生機系統的開發語言,由于我們需要使用chrome改裝的考生機系統,所以考生機系統和考場管理系統是兩種不同的語言,所以我們需要的通信框架就應該是一個跨語言的通信框架,所以thrift通信框架成了我們的首選。
1.1.1 Thrift簡介(一個跨語言通信框架)
Thrift是一個跨語言的服務部署框架,最初由Facebook于2007年開發,2008年進入Apache開源項目。Thrift通過一個中間語言(IDL,接口定義語言)來定義RPC的接口和數據類型,然后通過一個編譯器通過編譯一個后綴名為.thrift的文件來生成指定語言的代碼(目前支持C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,Cocoa,Smalltalk和OCaml),并由生成的代碼負責RPC協議層和傳輸層的實現:如服務端是用Thrift生成的Java代碼,客戶端使用Thrift生成的C++/C#代碼,用Thrift可以完成C++代碼到Java代碼的調用,而不需要關心其他如網絡通信等內容,可以讓開發人員專注于業務實現。
1.2 考試信息的設置
在傳統的考試中,我們需要知道我們考試的時間,考試的科目,考試的場次,考試的地點等等,這樣我們才能確認需要考試的是哪一門考試,在考場管理系統中,我們也需要知道這場考試的信息,所以需要對考試的信息進行處理,這就需要我們對考試信息經行設置。
1.3 考務數據的導入
在傳統的考試中,監考教師會有這場考試的考務信息,這其中就包含了考試的時間,考試的科目,考試的場次,考試的地點等等,所以在考場管理系統中,我們也需要有考務的數據,我們需要把這些考務信息導入到考場管理系統中,所以需要有考務數據的導入。
1.4 考試信息的確認
傳統考試中,我們需要確認一下考生信息和考務信息,確認一下這場考試是不是我們將要進行的考試,同時我們需要確認一下這場考試的考生是不是需要考這場試的學生,所以在這套新的考場管理系統中,我們也需要確認一下這些信息,通過對比設置的考試信息和考務數據信息我們來確認當場考試,通過確認考生的信息和考務數據里的考生信息來確認考試學生,只要這兩點同時滿足,我們就確定了考試的主題和考試的對象。
1.5 試卷的導入,安全的研究
這是考試過程中重要的環節,傳統考試過程中最重要的環節是答題,所以對試卷的保護是尤為重要的,考場管理系統負責把試卷分發給每個考生,在分發的過程中就會出現安全的問題,所以在這個過程中就需要提供安全機制,由于不同的網絡設施,其安全性是不同的,因此需要根據對網絡的安全性要求來選擇相應的網絡設施。網絡中有服務器、考試機、交換機、路由器等,需要針對各種設施的不同特點分別考慮其安全性。網絡中存在的安全漏洞以及安全威脅的類型,由于網絡的安全漏洞多種多樣,使得攻擊者可采用多種攻擊手段。考試系統中的服務器、考試客戶機的操作系統本身有各種各樣的漏洞,很多漏洞都能夠被黑客利用進而對系統進行控制或破壞,對操作系統的漏洞評估是整個安全項目中不可缺少的一部分。應用服務的軟件也不可避免存在有漏洞或缺陷,而且應用系統的配置也是一個關鍵的因素,如果不考慮安全的配置,很容易被黑客利用。全面的安全策略就是在不同層次上利用不同的安全技術,不同成本的設備相互補充,從而既加強安全,又平衡安全中存在的矛盾。在實際網絡環境中應著重考慮網絡的通信安全、網絡層的安全以及應用安全。
1.6 通知考生登錄
這一部分內容是對考生的控制,控制考生的登錄時間和答題時間,告訴考生什么時間可以登錄系統,下載考試數據,然后進行答題,這就是一個控制器,控制進程,這就相當于傳統考試的發卷和通知考生可以答題了。
1.7 考場的監控
這個模塊是對傳統考試的優化,在傳統的考試中,監考教師并不知道考生答了哪些題目,不了解考生的答題進度,考場管理系統完全解決了這個問題,通過對考生機的監控,我們可以知道考生的答題進度,掌握考生的動向,同時可以在監控過程中對違紀考生直接處理,記錄違紀考生的信息或者直接禁止違紀考生繼續答題。
1.8 導出考試的結果
傳統考試的結束就是收回試卷,考場管理系統的結束就是收回考試的答案,在答案的收回之后我們還需要對答案進行處理,因為是計算機化考試,所以閱卷系統也是計算機化閱卷,我們需要把答案的格式變成閱卷系統需要的格式,這樣就完成了考場管理系統的整體流程。
1.9 考場管理系統的恢復問題
我們知道系統并不是穩定的,在考試的過程中完全可能會出現考場管理系統的崩潰或者考場管理系統的不穩定,在遇到這些問題時,我們需要做的就是立即恢復系統,使得系統回到崩潰前的狀態,這是我們必須要能夠保證的,所以對問題的處理也是我們需要研究的內容。
2 本考場管理系統的優點
本研究課題主要是為了實現考生的計算機化答題,讓考生拋棄了傳統的紙筆答題,這本身就是一種進步,其次,考場管理系統是為了實現計算機對考場的管理,這直接就降低了人的參與度,這也是一種進步,在技術上的創新點有以下幾點:
2.1 一種可快速部署的考場管理系統
現有的考場管理系統大都是以數據庫的形式保存考生數據,而現要開發的考場管理系統在保存數據上主要是以文件的形式保存數據,用xml格式的文件保存考生答案和考生信息,考場管理系統直接把這些收到的文件保存到本地,省略了數據庫的部署,加快了考場管理系統的部署。
2.2 一種安全的考場管理系統的數據處理方法
首先更加安全的是對考務數據的處理,在導入考務數據和試卷的信息時,對這些資料經行加密處理,使得更加安全,同時對服務器進行加密處理,使得在工作過程中不受影響。其次安全的是對數據用xml文件形式處理,更加安全。第三,是對數據的保存更加安全,考場管理系統會保存一份考生的答案,同時考生機本身也對數據進行了保存,這樣就使得數據是雙份保存,更加安全。
2.3 基于Thrift通信協議的系統解決方案
現在比較流行的通信協議還是TCP/IP協議,但是本系統使用的是Thrift通信協議thrift可以支持多種程序語言,例如:C++,C#,Cocoa,Erlang,Haskell,Java,Ocami,Perl,PHP,Python,Ruby,Smalltalk.在多種不同的語言之間通信thrift可以作為二進制的高性能的通訊中間件,支持數據(對象)序列化和多種類型的RPC服務。Thrift適用于程序對程序靜態的數據交換,需要先確定好他的數據結構,他是完全靜態化的,當數據結構發生變化時,必須重新編輯IDL文件,代碼生成,再編譯載人的流程,跟其他IDL工具相比較可以視為是Thrift的弱項,Thrift適用于搭建大型數據交換及存儲的通用工具,對于大型系統中的內部數據傳輸相對于JSON和xml無論在性能、傳輸大小上有明顯的優勢。而且這個系統在傳輸過程中傳輸的主要是xml文件,所以thrift通信有無與倫比的優勢。
3 本考場管理系統的實現
考場管理系統本身就是從現實中的考試過程中抽象出來的,所以它的實現必須滿足現有考試的一切功能,所以根據現有考試的流程,本系統實現了這些流程,并且增加了新的功能,下面就按照考試的流程來實現這些功能:
4 總結與展望
本系統適用于局域網內的高利害考試,保證了考生答案的回收與處理,通過thrift技術解決了客戶端和服務器的高并發通信問題,使得考試能夠在通信安全的情況下完成考試,但是本系統還有可以提高的地方,本次研究開發的考場管理系統只是在北京郵電大學對大學英語進行了測試,測試的次數和范圍都比較小,具有一定的片面性。因此,希望以后能夠將該考場管理系統放在更多的學校進行測試,從而完善本考場管理系統。由于筆者本人軟件開發經驗有限,可能導致開發的系統功能不是那么完善,性能不是那么穩定,希望在以后的開發過程中完善系統功能,進一步增加系統的穩定性。