快速了解學(xué)術(shù)期刊目錄級別、選刊、行業(yè)刊物等解決方案
隨著計算機科技的發(fā)展和互聯(lián)網(wǎng)+應(yīng)用的日益普及,網(wǎng)絡(luò)教學(xué)和在線考試系統(tǒng)已逐步成為傳統(tǒng)教學(xué)、考試模式的有效補充。該文基于J2EE平臺討論構(gòu)建在線考試系統(tǒng),并論述利用緩存預(yù)取一體化技術(shù)優(yōu)化系統(tǒng)性能。
《中國電子科學(xué)研究院學(xué)報》(雙月刊)創(chuàng)刊于1990年,由中國電子科學(xué)研究院主辦。主要發(fā)表電子信息系統(tǒng)研發(fā)和綜合集成領(lǐng)域內(nèi)的技術(shù)和學(xué)術(shù)研究論文。聘請行業(yè)內(nèi)工程院院士等資深專家以及近年來在此領(lǐng)域內(nèi)卓有成就的中年專家組成編委會。辦刊宗旨:注重研究成果,提高理論水平。
隨著互聯(lián)網(wǎng)科技日新月異的發(fā)展,網(wǎng)絡(luò)教育培訓(xùn)由于其不受時間和空間的限制,規(guī)模不斷發(fā)展壯大,已成為教育培訓(xùn)中不可或缺的重要組成部分。利用網(wǎng)絡(luò)培訓(xùn)平臺學(xué)員可自主制定培訓(xùn)計劃,即可以順利完成培訓(xùn)任務(wù)又不會影響其正常的工作和生活。在線考試系統(tǒng)作為檢驗培訓(xùn)效果的重要工具,開發(fā)技術(shù)已經(jīng)非常成熟。但基于大規(guī)模用戶并發(fā)訪問的考試系統(tǒng),在實際應(yīng)用過程中還是會存在一些問題。想要提升優(yōu)化考試系統(tǒng)性能,當(dāng)應(yīng)對大規(guī)模用戶并發(fā)訪問時,就要求系統(tǒng)有較高地穩(wěn)定性和較快的響應(yīng)速度。
本文基于J2EE平臺討論構(gòu)建在線考試系統(tǒng),并通過對比分析,討論緩存和預(yù)取技術(shù)對優(yōu)化考試系統(tǒng)f生能所起到的積極作用。
1應(yīng)用技術(shù)
開發(fā)在線考試系統(tǒng)的主要目的是借助互聯(lián)網(wǎng)搭建考試平臺,使得用戶可以通過直接訪問互聯(lián)網(wǎng)參加考試,從而打破傳統(tǒng)考試模式對時間和空間的限制。系統(tǒng)開發(fā)使用J2EE平臺,采用MVC設(shè)計模式、B/S結(jié)構(gòu),使用技術(shù)包括:JAVA、Ajax,數(shù)據(jù)庫選用SQLserver2008。
1.1MVC模式概述
MVC(Model-View-Controller模型-視圖-控制器)是一種設(shè)計模式,可以實現(xiàn)模型和視圖的代碼分離。在MVC中輸入、處理、輸出互相分離,整個系統(tǒng)分為:模型、視圖、控制器三個模塊。
1.2Ajax技術(shù)簡介
Ajax(Asynchmnous JavaScript And XML異步JavaScript和XML),它通過Ajax引擎工作,使得客戶端只和服務(wù)器進(jìn)行少量的數(shù)據(jù)交換,例如頁面顯示等信息不必重復(fù)加載,而是對部分重要的數(shù)據(jù)進(jìn)行更新,從而實現(xiàn)網(wǎng)頁異步更新。
在傳統(tǒng)的交互方式中,用戶向服務(wù)器發(fā)送一個HTTP請求,例如點擊鏈接或按鈕,服務(wù)器響應(yīng)請求完成處理任務(wù)后返回一個HTML頁面給用戶,在服務(wù)器進(jìn)行響應(yīng)操作時,用戶只能空閑等待。在Ajax的異步存取模式中,用戶在等待服務(wù)器處理數(shù)據(jù)、響應(yīng)操作的過程中仍然可以進(jìn)行其他操作,節(jié)省了時間、提升了效率。服務(wù)器完成了響應(yīng)操作之后,Ajax引擎通過函數(shù)將處理結(jié)果顯示給用戶。
2系統(tǒng)需求分析及設(shè)計
2.1系統(tǒng)需求分析
需求分析是整個系統(tǒng)開發(fā)的關(guān)鍵一環(huán),也是最先進(jìn)行的環(huán)節(jié)。在線考試系統(tǒng)的開發(fā)目的是利用互聯(lián)網(wǎng)科技,建立考試平臺。命題者可以通過平臺設(shè)置、發(fā)布考試試題;參考者通過平臺在線學(xué)習(xí)及報名參加考試,而不必在統(tǒng)一地點集中考試,該種學(xué)習(xí)、考試形式更適用于網(wǎng)絡(luò)培訓(xùn);閱卷者可以通過平臺進(jìn)行閱卷,平臺也具備客觀題自主閱卷的功能;通過平臺也可以發(fā)布考試信息、考試結(jié)果、考試分析等信息。
系統(tǒng)基本功能模塊:1)在線學(xué)習(xí)模塊、2)命題組卷模塊、3)在線考試模塊、4)閱卷模塊。
2.2系統(tǒng)總體結(jié)構(gòu)設(shè)計
系統(tǒng)采用B/S(瀏覽器/服務(wù)器)結(jié)構(gòu),不需要專門安裝客戶端軟件,降低系統(tǒng)使用門檻,有助于系統(tǒng)的普及應(yīng)用及更新升級。系統(tǒng)總體結(jié)構(gòu)分:表示層、功能層、數(shù)據(jù)層三層。數(shù)據(jù)庫選用SQLServer2008。
(圖1)為系統(tǒng)三層體系結(jié)構(gòu):
3緩存預(yù)取技術(shù)在系統(tǒng)中的應(yīng)用
作為在線考試系統(tǒng),能否穩(wěn)定地支持大規(guī)模用戶并發(fā)訪問是衡量系統(tǒng)性能的一項重要標(biāo)準(zhǔn)。傳統(tǒng)的考試系統(tǒng)中,服務(wù)器承擔(dān)了大量的工作,而客戶端只負(fù)責(zé)簡單的人機交互。試題及用戶答案的保存、試題的解析和答案的匹配等工作都由服務(wù)器完成,這樣的布局使得服務(wù)器負(fù)擔(dān)過重,當(dāng)用戶訪問量急劇增加時,服務(wù)器壓力過大易出現(xiàn)問題而影響系統(tǒng)的正常工作。與此同時客戶端則處于閑置等待的狀態(tài),造成資源利用率低下。為了改善系統(tǒng)性能可以考慮升級服務(wù)器或采用服務(wù)器集群,但這樣勢必會增加系統(tǒng)成本。本文考慮充分挖掘客戶端資源,利用緩存與預(yù)取相結(jié)合的技術(shù),將部分適宜由客戶端完成的工作交由客戶端處理,減輕服務(wù)器負(fù)擔(dān),提升系統(tǒng)效率。
3.1系統(tǒng)緩存
緩存技術(shù)的提出目的是解決系統(tǒng)運算和系統(tǒng)存儲過程的時間差異。在考試系統(tǒng)實際運行過程中,緩存主要是由客戶端先從服務(wù)器端獲取所必需的數(shù)據(jù)信息,之后暫停與服務(wù)器之間的通信,直到下一次信息的獲取。緩存主要分為三類:服務(wù)器端緩存數(shù)據(jù)、代理端緩存服務(wù)器端數(shù)據(jù)、客戶端緩存數(shù)據(jù)。為了盡可能緩解服務(wù)器壓力,開發(fā)客戶端的運算能力,轉(zhuǎn)換服務(wù)器的角色,當(dāng)大規(guī)模用戶并發(fā)訪問時段,服務(wù)器僅僅充當(dāng)一個分發(fā)及收集用戶數(shù)據(jù)的角色,關(guān)于數(shù)據(jù)的運算分析交由客戶端執(zhí)行。用戶登陸系統(tǒng)以后將用戶試題下載到客戶端,暫停和服務(wù)器之間的通信,所有試題的解析及用戶答案的匹配都在客戶端進(jìn)行,用戶完成部分答題后將答案轉(zhuǎn)換為系統(tǒng)格式傳輸?shù)椒⻊?wù)器,并由服務(wù)器存儲到用戶數(shù)據(jù)庫中。在執(zhí)行過程中,盡可能提升了客戶端的利用效率,減輕了服務(wù)器的壓力,當(dāng)大規(guī)模用戶并發(fā)訪問時,服務(wù)器的負(fù)載也只是適當(dāng)增加,不會造成系統(tǒng)運算量和存儲量過快增加。
下面以用戶翻頁操作為例,分析緩存技術(shù)對服務(wù)器和網(wǎng)絡(luò)帶寬的影響。(圖2)
通過對比分析,采取緩存技術(shù)可以節(jié)省分析答案并匹配的時間,另外,部分答案內(nèi)容也不需傳輸至服務(wù)器。因此,適度開發(fā)客戶端的運算能力即節(jié)約了時間、減輕了服務(wù)器的負(fù)擔(dān),也提升了整個系統(tǒng)的工作效率。
3.2系統(tǒng)預(yù)取
單純依靠緩存技術(shù),在試題內(nèi)容不是很多的時候可以緩存全部試題和答案。當(dāng)試題量很大的時候只能對部分內(nèi)容進(jìn)行緩存,為了加快系統(tǒng)的響應(yīng)時間,可以通過預(yù)取技術(shù)對系統(tǒng)下一步需要的數(shù)據(jù)進(jìn)行預(yù)測,提前進(jìn)行緩存。通過預(yù)取和緩存技術(shù)相結(jié)合減少了服務(wù)器的負(fù)擔(dān),提升了客戶端資源的利用率。
(圖3)有無預(yù)取技術(shù)工作流程對比
通過分析對比,采用預(yù)取技術(shù)可以大大節(jié)省系統(tǒng)的響應(yīng)時間,改善用戶體驗。
3.3緩存預(yù)取一體化
用戶在實際使用考試系統(tǒng)的過程中,往往是按照一定規(guī)律進(jìn)行答題和檢查。我們可以通過預(yù)測用戶的答題順序,根據(jù)緩存實際容量的大小將用戶正在使用和即將會使用到內(nèi)容先預(yù)取到緩存中。當(dāng)緩存內(nèi)容過滿時,將使用幾率較低的頁面從緩存中移除。通過緩存和預(yù)取一體化技術(shù)盡可能地提升系統(tǒng)資源的利用率,保障系統(tǒng)的穩(wěn)定性,便于應(yīng)對大規(guī)模用戶并發(fā)訪問。
4結(jié)束語
構(gòu)建在線考試平臺,能夠突破傳統(tǒng)教學(xué)考試模式對時間和空間的限制,節(jié)省了大量的社會資源。但由于系統(tǒng)硬件、軟件及網(wǎng)絡(luò)帶寬等多方面因素的影響,系統(tǒng)在實際使用過程中還是會受到種種制約。為了進(jìn)一步提升系統(tǒng)性能,改善用戶體驗,本文討論主動預(yù)取與被動緩存相結(jié)合的設(shè)計思路。盡可能地開發(fā)客戶端的運算能力,將能夠由客戶端完成的工作交由客戶端負(fù)責(zé)完成,使得當(dāng)大規(guī)模用戶并發(fā)訪問的時候,系統(tǒng)不會由于服務(wù)器本身負(fù)擔(dān)過重而導(dǎo)致響應(yīng)緩慢甚至系統(tǒng)癱瘓。適度開發(fā)客戶端的運算能力對客戶端本身的配置要求并不是太高,在不大量增加系統(tǒng)投入的情況下,通過策略調(diào)整提升系統(tǒng)穩(wěn)定性及增強系統(tǒng)工作效率。
硬核推薦閱讀
SCI、SCIE
SCI、SCIE
SCIE
SCIE、SCI
SCIE、SCI
SCI、SCIE
SCIE
SCIE
SCIE
SCIE、SCI
SCIE
SCIE