国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于B/S的高校在線考試系統(tǒng)并發(fā)性和可靠性的優(yōu)化

2012-12-20 08:24李隘優(yōu)
關(guān)鍵詞:字段客戶端答題

李隘優(yōu)

(閩西職業(yè)技術(shù)學(xué)院,福建 龍巖364021)

在線考試系統(tǒng)是高校校園數(shù)字化建設(shè)項(xiàng)目中教學(xué)管理信息化平臺(tái)的一個(gè)重要組成部分.在線考試系統(tǒng)的實(shí)現(xiàn),可輔助高校組織考試,對(duì)考試工作進(jìn)行系統(tǒng)化、科學(xué)化管理,真正實(shí)現(xiàn)用較小的代價(jià)為學(xué)校提供較高性能、標(biāo)準(zhǔn)化的考試管理服務(wù),減輕教師的工作負(fù)擔(dān),激發(fā)學(xué)生的學(xué)習(xí)興趣,從而為高校培養(yǎng)高端技能型人才提供了必要的保障[1].

但是,現(xiàn)有在線考試系統(tǒng)安全性較差,并發(fā)控制較薄弱,且可靠性不強(qiáng).因此,研發(fā)一款能滿足在線考試,且擴(kuò)展性強(qiáng)、安全性高、可靠性強(qiáng)和運(yùn)行效率高的在線考試系統(tǒng),是非常迫切的.其中,優(yōu)化B/S在線考試系統(tǒng)的并發(fā)性和可靠性,是解決當(dāng)前問題的重中之重.

1 在線考試系統(tǒng)的并發(fā)性優(yōu)化策略

1.1 并發(fā)性概述

所謂并發(fā)性,是指在相同的時(shí)間間隔內(nèi),同時(shí)有2個(gè)或者2個(gè)以上的事件發(fā)生.其中的很多事件是隨機(jī)同時(shí)發(fā)生的,這類事件稱為并發(fā)事件[2].一般情況下,在B/S系統(tǒng)中,數(shù)據(jù)在服務(wù)器和客戶機(jī)中來回傳輸,數(shù)據(jù)處理的實(shí)時(shí)性要求較高,相關(guān)操作非常頻繁,故存在著較多的不同層次的并發(fā)事件.

并發(fā)事件的多少是衡量一個(gè)系統(tǒng)性能好壞的標(biāo)準(zhǔn).一般情況下,B/S系統(tǒng)能承載的并發(fā)事件越多,系統(tǒng)的性能就越好.因此,在進(jìn)行B/S系統(tǒng)設(shè)計(jì)時(shí),應(yīng)盡可能地對(duì)其并發(fā)性進(jìn)行挖掘和控制,以不斷提高其并發(fā)控制能力.提高B/S系統(tǒng)并發(fā)性的主要措施分為3類:時(shí)間重疊、資源重復(fù)和資源共享[2].

1.2 系統(tǒng)并發(fā)控制的實(shí)現(xiàn)

在線考試模塊中,同時(shí)參加考試的用戶數(shù)較多,少則數(shù)十人,多則幾百甚至上千人,這就對(duì)系統(tǒng)的并發(fā)控制提出了更高的要求.因此,如何對(duì)在線考試系統(tǒng)設(shè)計(jì)策略進(jìn)行優(yōu)化,提升服務(wù)器的性能,是必須解決的問題.

經(jīng)過分析,在在線考試系統(tǒng)的運(yùn)行過程中,致使服務(wù)器響應(yīng)慢甚至死機(jī)的主要因素包括:自動(dòng)組卷的算法、同時(shí)在線的考生數(shù)和考生考試時(shí)提交至服務(wù)器處理的數(shù)據(jù)量和操作量.針對(duì)這些因素,本文采用以下幾種方法來提高系統(tǒng)的并發(fā)控制能力.

1.2.1 基于二級(jí)存儲(chǔ)策略的并發(fā)控制

目前,有些考試系統(tǒng)將考生作答的信息存儲(chǔ)在服務(wù)器的數(shù)據(jù)庫中.此方法存在的不足是:每間隔較短的時(shí)間就將考試信息寫入到服務(wù)器的數(shù)據(jù)庫中,當(dāng)多人同時(shí)參加考試時(shí),高并發(fā)的數(shù)據(jù)訪問給系統(tǒng)帶來較大的負(fù)載,嚴(yán)重時(shí)甚至可能導(dǎo)致服務(wù)器崩潰.有些考試系統(tǒng)將考生作答的信息存儲(chǔ)在客戶端中.此方法存在的不足是:①當(dāng)考試時(shí)間結(jié)束時(shí),由于大多數(shù)考生集中交卷,帶來瞬間的高并發(fā)數(shù)據(jù)訪問,系統(tǒng)開銷巨大;②有些客戶端安裝了還原卡,保存在客戶機(jī)上的數(shù)據(jù)會(huì)因重啟而丟失,因此數(shù)據(jù)存儲(chǔ)在客戶端并不安全[3].本文提出了二級(jí)存儲(chǔ)策略的并發(fā)控制方法,用來解決系統(tǒng)的并發(fā)控制問題.

所謂二級(jí)存取策略,就是指考生的答題數(shù)據(jù)先存儲(chǔ)在客戶端,然后定期更新至服務(wù)器的數(shù)據(jù)庫中,從而解決數(shù)據(jù)存儲(chǔ)的并發(fā)問題,且在一定程度上保證了數(shù)據(jù)的可靠性.具體流程如下:

(1)采用 UserData Behavior技術(shù),通過JavaS-cript將考試信息以XML格式寫入到UserData存儲(chǔ)區(qū)中,這些數(shù)據(jù)不會(huì)因重啟而丟失.

(2)每間隔一段時(shí)間(此時(shí)間可設(shè)置稍長,如10min,以避免服務(wù)器操作過于頻繁),調(diào)用更新檢測和保存數(shù)據(jù)函數(shù),將客戶端UserData存儲(chǔ)區(qū)中的數(shù)據(jù)寫入服務(wù)器對(duì)應(yīng)的表中.

(3)如系統(tǒng)掉電或死機(jī)后重啟客戶端,重新登錄考試系統(tǒng),調(diào)用UserData Behavior的getAttribute()方法讀取客戶端UserData存儲(chǔ)區(qū)中的數(shù)據(jù),恢復(fù)到斷點(diǎn)前的狀態(tài).

(4)重啟后,如系統(tǒng)發(fā)現(xiàn)客戶端UserData存儲(chǔ)區(qū)中的數(shù)據(jù)為空,則自動(dòng)讀取服務(wù)器數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù),進(jìn)行現(xiàn)場恢復(fù).這樣就解決了安裝還原卡的客戶機(jī)重啟后數(shù)據(jù)丟失的問題.

1.2.2 服務(wù)端生成靜態(tài)頁面的并發(fā)控制方法

一般情況下,考生進(jìn)入考試系統(tǒng)需要在客戶端生成JSP頁面,其生成過程是邊解析邊執(zhí)行[4].此方法的不足是:解析JSP的時(shí)間較長,導(dǎo)致服務(wù)器的開銷較大;同時(shí)在線的考生數(shù)較多時(shí),系統(tǒng)訪問速度過慢,甚至崩潰.本文采用服務(wù)端生成靜態(tài)頁面的方法,以解決客戶端生成JSP頁面帶來的不足.

服務(wù)端生成靜態(tài)頁面方法的基本思想是:

(1)服務(wù)器通過調(diào)用JavaBean函數(shù)生成頁面信息(如頁面內(nèi)容、布局等)字符串.

(2)在JSP文件中調(diào)用頁面信息字符串,并生成HTML格式的頁面.

1.2.3 降低服務(wù)器數(shù)據(jù)更新量的并發(fā)控制方法

當(dāng)更新服務(wù)器數(shù)據(jù)庫中的答題表時(shí),多數(shù)考試系統(tǒng)在服務(wù)器中對(duì)需要更新的字段進(jìn)行判斷,如該字段已有信息,則進(jìn)行替換操作,否則進(jìn)行插入操作.這種方法的不足是:在更新數(shù)據(jù)之前,需要在服務(wù)器中進(jìn)行判斷,導(dǎo)致提交的數(shù)據(jù)量劇增,服務(wù)器性能在高并發(fā)下明顯下降甚至死機(jī),從而導(dǎo)致數(shù)據(jù)更新失?。?].為此,本文提出降低服務(wù)器數(shù)據(jù)更新量的方法,用來提高系統(tǒng)的并發(fā)控制能力.

所謂降低服務(wù)器數(shù)據(jù)更新量,是指在客戶端中利用JavaScript腳本對(duì)服務(wù)器的數(shù)據(jù)更新情況進(jìn)行判斷,直接將要更新的信息寫入數(shù)據(jù)庫答題表相應(yīng)字段中.用此方法代替原來在服務(wù)器中進(jìn)行判斷的做法,減少了提交至服務(wù)器的判斷信息,減輕了服務(wù)器的工作負(fù)擔(dān),從而增強(qiáng)了系統(tǒng)的并發(fā)控制能力.具體算法過程如下:

(1)客戶端

①根據(jù)題量的規(guī)模來定義數(shù)組;

②寫入數(shù)據(jù)前與已定義的數(shù)組對(duì)應(yīng)值進(jìn)行匹配,若該字段已有數(shù)據(jù),則將數(shù)據(jù)賦值給數(shù)組中對(duì)應(yīng)的變量;

③用iFrame技術(shù),提交在線考試頁面的部分?jǐn)?shù)據(jù)(如試卷號(hào),考生號(hào)等).

(2)服務(wù)器

①將待寫入的數(shù)據(jù)信息構(gòu)成數(shù)組;

②通過Hibernate,用數(shù)據(jù)信息數(shù)組中的數(shù)據(jù)對(duì)數(shù)據(jù)庫進(jìn)行更新.

1.2.4 錯(cuò)開時(shí)間分批開始考試的并發(fā)控制方法

在考生數(shù)量龐大的情況下,同時(shí)開始考試會(huì)導(dǎo)致服務(wù)器負(fù)載迅速達(dá)到峰值,嚴(yán)重時(shí)甚至可能導(dǎo)致服務(wù)器癱瘓.為降低服務(wù)器的壓力,系統(tǒng)采用錯(cuò)開時(shí)間分批開考的方法.具體流程為:用戶進(jìn)入考試系統(tǒng),點(diǎn)開始考試后,在服務(wù)器端的考試時(shí)間中加上一個(gè)隨機(jī)延時(shí)時(shí)間(如0~60s,此時(shí)間可在考試管理中修改),返回給客戶端的計(jì)時(shí)器函數(shù)處理;當(dāng)這個(gè)時(shí)間減少至考試時(shí)間時(shí),考生才可以進(jìn)行答題.

各考生的考試計(jì)時(shí)由系統(tǒng)倒計(jì)時(shí)來實(shí)現(xiàn),總時(shí)間相同,不存在先考占優(yōu)的情況.因此,此方法降低了服務(wù)器的瞬間負(fù)載,提高了系統(tǒng)的并發(fā)控制能力.

2 在線考試系統(tǒng)的可靠性優(yōu)化策略

所謂可靠性,是指系統(tǒng)在受外部條件作用下能否保證正常運(yùn)行的一個(gè)衡量指標(biāo),這種外部條件包括軟、硬件的故障等.當(dāng)故障發(fā)生時(shí),故障的轉(zhuǎn)移和斷點(diǎn)的恢復(fù)是可靠性必須考慮的問題.

在線考試時(shí),可能出現(xiàn)人為或非人為的非法操作情況,如考生故意關(guān)機(jī)(以爭取比正常操作更多的答題時(shí)間)、掉電和死機(jī)等.此類情況嚴(yán)重影響系統(tǒng)的正常運(yùn)行,且有失考試的公平性.

針對(duì)在線考試的業(yè)務(wù)需求,結(jié)合系統(tǒng)可靠性的特點(diǎn),本文提出了以下解決方案:

2.1 考生故意關(guān)機(jī)爭取更多答題時(shí)間的解決辦法

目前,大多考試系統(tǒng)在計(jì)算機(jī)關(guān)機(jī)時(shí),計(jì)時(shí)器會(huì)暫停.重啟計(jì)算機(jī),進(jìn)入系統(tǒng)后會(huì)在已用時(shí)間的基礎(chǔ)上繼續(xù)計(jì)時(shí).這樣就給了考生可乘之機(jī),如考生遇到難度較高的題目時(shí),記下題目,關(guān)機(jī)作答,等完成答案后,再重啟計(jì)算機(jī),進(jìn)入系統(tǒng)填寫答案,從而能爭取到更多的答題時(shí)間.本文提出雙計(jì)時(shí)認(rèn)證的方法,用來解決考生故意關(guān)機(jī)爭取更多答題時(shí)間的問題.

所謂雙計(jì)時(shí)認(rèn)證,是指開考計(jì)時(shí)和考試中的實(shí)時(shí)計(jì)時(shí)相結(jié)合來認(rèn)定考生的已用考試時(shí)間.具體算法流程如下:

(1)考生登錄后,系統(tǒng)進(jìn)行抽題,并為每一個(gè)考生新建一個(gè)答題表,用于答題.其中Examtime字段用于保存該次考試的限定時(shí)間,Starttime字段用于保存開考時(shí)間,Currenttime字段用于保存系統(tǒng)運(yùn)行的當(dāng)前時(shí)間.

(2)當(dāng)考生點(diǎn)擊開始考試時(shí),系統(tǒng)讀取服務(wù)器的時(shí)間,并記錄在答題表的Starttime字段中.

(3)系統(tǒng)在運(yùn)行過程中,實(shí)時(shí)地去獲取服務(wù)器的當(dāng)前時(shí)間,并更新到答題表的Currenttime字段中.

(4)當(dāng) Currenttime-Startime-Examtime>5min(此值在系統(tǒng)管理端中可修改)時(shí),系統(tǒng)強(qiáng)制提交考卷并結(jié)束考試.如遇特殊情況,導(dǎo)致用時(shí)超過設(shè)定值,考生繼續(xù)考試須進(jìn)行申請(qǐng),并經(jīng)管理員在管理端設(shè)置允許延時(shí)后,才能進(jìn)行考試延時(shí).

通過以上方法,可以解決故意關(guān)機(jī)獲取更多答題時(shí)間的問題,也能對(duì)非人為故障導(dǎo)致考試系統(tǒng)終止考試的情況作出相應(yīng)的處理.

2.2 現(xiàn)場保護(hù)和恢復(fù)的解決辦法

在線考試時(shí),因斷電、死機(jī)等不可避免的因素造成計(jì)算機(jī)重啟,可能丟失考試現(xiàn)場和考試數(shù)據(jù),嚴(yán)重?fù)p害考生的利益.因此,系統(tǒng)應(yīng)在現(xiàn)場保護(hù)和恢復(fù)上提供充足的保障.以上在并發(fā)控制中提出的二級(jí)存儲(chǔ)策略,即可用于解決在線考試的現(xiàn)場保護(hù)和恢復(fù)問題.

(1)若客戶端沒有安裝還原卡,重啟計(jì)算機(jī)后,系統(tǒng)讀取UserData存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行現(xiàn)場恢復(fù).

(2)若客戶端已安裝還原卡,重啟計(jì)算機(jī)后,數(shù)據(jù)會(huì)丟失.這時(shí)系統(tǒng)會(huì)自動(dòng)讀取服務(wù)器上的相應(yīng)數(shù)據(jù)進(jìn)行現(xiàn)場恢復(fù).

3 測 試

系統(tǒng)的性能測試主要包括連接速度、負(fù)載、壓力等測試.其中,連接速度測試是對(duì)系統(tǒng)響應(yīng)時(shí)間進(jìn)行的檢測;負(fù)載測試是系統(tǒng)在大量用戶同時(shí)且長時(shí)間操作的條件下,對(duì)服務(wù)器能否正常運(yùn)行及資源是否有很高的利用率進(jìn)行的檢測;壓力測試是在一定數(shù)量的用戶對(duì)系統(tǒng)進(jìn)行訪問時(shí),對(duì)系統(tǒng)及服務(wù)器的運(yùn)行情況進(jìn)行的檢測.本文采用LoandRunner作為測試工具,對(duì)在線考試系統(tǒng)進(jìn)行性能測試.

3.1 LoadRunner介紹

Loadrunner是一種預(yù)測系統(tǒng)行為和負(fù)載的性能測試工具,可以通過它來模擬成千上萬的用戶訪問系統(tǒng),從而對(duì)B/S系統(tǒng)進(jìn)行并發(fā)負(fù)載和實(shí)時(shí)性能監(jiān)測,并自動(dòng)整理生成測試結(jié)果,便于測試員尋找被測系統(tǒng)的性能瓶頸,寫出測試報(bào)告[6].

3.2 測試方案

本文主要對(duì)在線考試系統(tǒng)進(jìn)行負(fù)載測試和壓力測試.具體實(shí)施方案如下:

(1)模擬虛擬用戶的運(yùn)行場景,用200個(gè)并發(fā)用戶進(jìn)行負(fù)載測試,并分析測試結(jié)果.

(2)逐步加大負(fù)載壓力,用250個(gè)并發(fā)用戶進(jìn)行負(fù)載測試,并分析測試結(jié)果.

(3)當(dāng)系統(tǒng)測試性能指標(biāo)還正常時(shí),繼續(xù)加大并發(fā)用戶的負(fù)載量(并發(fā)用戶數(shù)增量遞減),直至系統(tǒng)性能出現(xiàn)問題.

分析比較不同數(shù)量并發(fā)用戶下的負(fù)載壓力測試結(jié)果,當(dāng)該系統(tǒng)用到590個(gè)并發(fā)用戶時(shí),各項(xiàng)性能指標(biāo)還正常,如圖1所示.

圖1 590個(gè)并發(fā)用戶同時(shí)訪問時(shí)的事務(wù)概要圖

但當(dāng)用到591個(gè)并發(fā)用戶時(shí),就會(huì)發(fā)現(xiàn)有些用戶 的指標(biāo)會(huì)出現(xiàn)Fail的現(xiàn)象,如圖2所示.

圖2 591個(gè)并發(fā)用戶同時(shí)訪問時(shí)的事務(wù)概要圖

綜上所述,該系統(tǒng)的并發(fā)用戶數(shù)可達(dá)590個(gè),當(dāng)超過這個(gè)用戶數(shù)據(jù)時(shí),系統(tǒng)就會(huì)出現(xiàn)用戶被拒絕訪問的情況.

4 結(jié) 語

本文對(duì)在線考試系統(tǒng)的并發(fā)性和可靠性進(jìn)行了分析,提出了綜合改進(jìn)方案,并進(jìn)行了負(fù)載測試.結(jié)果表明,優(yōu)化后系統(tǒng)能承受較大并發(fā)的沖擊,可同時(shí)有590個(gè)用戶在線考試,在一定程度上提高了系統(tǒng)的并發(fā)性;解決了考生故意關(guān)機(jī)爭取更多考試時(shí)間和系統(tǒng)現(xiàn)場保護(hù)和恢復(fù)問題,提高了系統(tǒng)的可靠性.該解決方案為其他B/S系統(tǒng)解決并發(fā)性和可靠性問題提供了參考.

[1]沈斌,李興國,鐘金宏,等.基于多隊(duì)列和多線程的短信實(shí)時(shí)并發(fā)控制算法[J].計(jì)算機(jī)工程,2008(4):62-65.

[2]張敏霞.基于高并發(fā)及大數(shù)據(jù)量的B2B商務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].河南工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2009(1):41-44.

[3]沈斌,李興國,鐘金宏,等.基于多隊(duì)列和多線程的短信實(shí)時(shí)并發(fā)控制算法[J].計(jì)算機(jī)工程,2008(4):62-65.

[4]郭新峰.新型考試系統(tǒng)的實(shí)現(xiàn)[J].電力學(xué)報(bào),2005(2):45-55.

[5]吳峻,聶勤務(wù).基于 Web的分布式數(shù)據(jù)庫實(shí)時(shí)訪問策略研究[J].微機(jī)發(fā)展,2004(4):116-121.

[6]楊萍,李杰.利用LoadRunner實(shí)現(xiàn) Web負(fù)載測試的自動(dòng)化[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007(1):242-244.

猜你喜歡
字段客戶端答題
邀你來答題
邀你來答題
邀你來答題
邀你來答題
如何看待傳統(tǒng)媒體新聞客戶端的“斷舍離”?
淺談臺(tái)灣原版中文圖書的編目經(jīng)驗(yàn)
縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
孵化垂直頻道:新聞客戶端新策略
大樞紐 云平臺(tái) 客戶端——中央人民廣播電臺(tái)的探索之路
題名與責(zé)任說明附注字段用法分析