• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      使用Socket組件開發(fā)C/S網(wǎng)絡(luò)考試系統(tǒng)

      2009-03-14 06:59:48陳曉舟
      新媒體研究 2009年4期

      陳曉舟 林 意

      [摘要]目前,無紙化考試系統(tǒng)正越來越多成為一種普遍采用的考試手段,是對卷面?zhèn)鹘y(tǒng)考試的一種改革,由于考試品種的多樣性,現(xiàn)階段對于無紙化考試基本上都采用客戶端/服務(wù)器模式,即我們普遍所說的C/S系統(tǒng)。以Delphi6.0作為開發(fā)C/S系統(tǒng)的開發(fā)工具為例,重點(diǎn)研究網(wǎng)絡(luò)無紙化考試系統(tǒng)的開發(fā)思路。

      [關(guān)鍵詞]C/S系統(tǒng) Socket組件 套接字 Delphi

      中圖分類號:TP3文獻(xiàn)標(biāo)識碼:A文章編號:1671-7597(2009)0220052-02

      一、引言

      網(wǎng)絡(luò)無紙化考試系統(tǒng)作為一種新穎的考試手段出現(xiàn)在上世紀(jì)九十年代,是對傳統(tǒng)卷面考試形式的重大改革,是為了克服傳統(tǒng)考試形式所帶來的一系列問題應(yīng)運(yùn)而生的,無紙化考試對于傳統(tǒng)考試形式具有幾大優(yōu)勢:

      1.減少資源浪費(fèi)尤其是大量考試用紙張和印刷的浪費(fèi),實(shí)現(xiàn)“綠色”考試的理念。

      2.極大地降低了考試成本,尤其是考務(wù)人員的工作量可以大大降低。

      3.提高了考試的公平性和公正性,由于題庫加密的因素,可以最大限度地保證考題的安全性。

      4.突破了地域限制,能最大限度地利用網(wǎng)絡(luò)的優(yōu)勢實(shí)施異地考試。

      由于考試的特殊性,在多方面都有比較嚴(yán)格的要求,而根據(jù)地域的差異性,在組織考試的時(shí)候要充分考慮到影響考試正常進(jìn)行的因素,例如題庫的保密、網(wǎng)絡(luò)線路的可靠與否等等,所以開發(fā)無紙化網(wǎng)絡(luò)考試系統(tǒng)一般是在基于安全連接的TCP/IP協(xié)議上進(jìn)行,而且,題庫必須進(jìn)行加密以確??荚嚨墓叫浴?/p>

      二、開發(fā)網(wǎng)絡(luò)考試系統(tǒng)的基本思路

      (一)網(wǎng)絡(luò)考試系統(tǒng)開發(fā)中主要采用的網(wǎng)絡(luò)協(xié)議組件

      無紙化網(wǎng)絡(luò)考試系統(tǒng)的開發(fā)是一個(gè)系統(tǒng)工程,根據(jù)考試的特殊性,我們通常要從考試的保密性、考試的客觀性和考試的數(shù)據(jù)安全性方面考慮,歸納起來有如下幾個(gè)問題:考試系統(tǒng)的題庫組織工作,考試系統(tǒng)采用的網(wǎng)絡(luò)安全保障,以及服務(wù)器、考試管理機(jī)、客戶端的兼容性運(yùn)行以及考試故障的數(shù)據(jù)恢復(fù)。

      在Windows中廣泛采用TCP套接字作為連接的主要接口,TCP/IP協(xié)議的套接字接口有三種可選類型:流式套接字、數(shù)據(jù)報(bào)套接字和原始套接字,由于數(shù)據(jù)報(bào)套接字屬于無連接服務(wù),是不可靠的鏈接協(xié)議,而原始套接字只用于新網(wǎng)絡(luò)協(xié)議的測試,因此,我們在考試系統(tǒng)中選用流式套接字作為網(wǎng)絡(luò)協(xié)議基礎(chǔ)。

      在Delphi開發(fā)系統(tǒng)中,TclientSocket是客戶端Socket套接字組件,它負(fù)責(zé)實(shí)現(xiàn)客戶端的協(xié)議基礎(chǔ),我們使用它作為考試客戶端的主要組件,這個(gè)組件專門負(fù)責(zé)客戶端與服務(wù)器之間的通訊,主要實(shí)現(xiàn)的功能是與服務(wù)器保持連接,收發(fā)題庫和考生的答題,它的幾個(gè)重要屬性是:

      1.Address屬性

      字符串型,它指明了要連接的服務(wù)器的IP地址。

      2.Host屬性

      字符串型,它指明了要連接的服務(wù)器的主機(jī)名,不過它的優(yōu)先級比Address高,如果同時(shí)指定了Address和Host屬性,則Address將被忽略,當(dāng)然,在開發(fā)考試系統(tǒng)時(shí),我們通常只指定Address屬性。

      3.Port屬性

      整數(shù)類型,指定服務(wù)器的服務(wù)端口,一般避免使用系統(tǒng)默認(rèn)端口0~1023,我們這里使用6000端口。

      4.ClientType屬性

      枚舉類型,本屬性對組件影響較大,它指定客戶端的Socket讀寫信息的方式。我們設(shè)定為ctNoBlocking。

      TserverSocket組件是服務(wù)器套接字組件,用于考試管理機(jī)服務(wù)端,它和TclientSocket組件的許多屬性相似,不同的屬性中比較重要的是TserverType,該屬性也是一個(gè)枚舉類型,它包括stNonBlocking和stThreadBlocking兩個(gè)值,stThreadBlocking表示采用阻塞方式進(jìn)行連接,在這種情況下,服務(wù)器會為每一個(gè)阻塞方式的鏈接自動(dòng)分配一個(gè)新的執(zhí)行線程,這樣,即使某個(gè)客戶端程序正在進(jìn)行讀寫操作,其他客戶端也不必等待。在考試系統(tǒng)的開發(fā)中,TserverSocket應(yīng)該采用stThreadBlocki

      ng方式進(jìn)行。

      (二)網(wǎng)絡(luò)考試系統(tǒng)開發(fā)的基本結(jié)構(gòu)的有關(guān)思路

      根據(jù)網(wǎng)絡(luò)考試系統(tǒng)開發(fā)的要求,網(wǎng)絡(luò)考試系統(tǒng)由考試服務(wù)器端、考試管理機(jī)端、考試客戶機(jī)端、考試后臺支持系統(tǒng)等軟件組成。當(dāng)然,根據(jù)考試的類型,還可由其他部分組成,如某些考試需要計(jì)算機(jī)模擬一些軟件的運(yùn)行環(huán)境,則另需一些模擬運(yùn)行環(huán)境軟件,本文僅討論一般情況下,網(wǎng)絡(luò)考試系統(tǒng)的組成框架,并不涉及某些專門考試類型,而且,考慮到目前的計(jì)算機(jī)的功能情況,本文將考試服務(wù)器端與考試管理機(jī)端合并在一起進(jìn)行考慮。

      1.服務(wù)器與考試管理機(jī)端的設(shè)計(jì)思路

      服務(wù)器與考試管理機(jī)端在考試中承擔(dān)了數(shù)據(jù)核心中轉(zhuǎn)、考試管理的重要任務(wù),所以,在整個(gè)考試系統(tǒng)中占有核心地位,目前在普遍使用的網(wǎng)絡(luò)C/S考試系統(tǒng)中大都采用瘦客戶端方式,也就是說,客戶端僅擔(dān)任考生考試平臺的作用,主要的工作是由服務(wù)器和考試管理機(jī)來完成的。因此,服務(wù)器與考試管理機(jī)端軟件的開發(fā)占有很重要的地位。

      仔細(xì)分析網(wǎng)絡(luò)考試系統(tǒng),可以考慮服務(wù)器與考試管理機(jī)端所承擔(dān)的任務(wù)有:題庫的管理與加載、考生庫的管理與加載、考生的考試登錄、考試異常情況處理、考試數(shù)據(jù)處理等等。因此,服務(wù)器與考試管理機(jī)端的軟件框架如圖:

      (1)題庫管理模塊

      負(fù)責(zé)對考試所涉及的題庫的組織、加密和發(fā)送等工作,其中題庫我們采用數(shù)據(jù)庫的形式進(jìn)行封裝,根據(jù)不同的考試可以分為客觀題和主觀題兩種,而在題目的編排上設(shè)計(jì)到題面和選項(xiàng)的組織,根據(jù)考試的規(guī)模,數(shù)據(jù)庫可以采用SQL或Access,在Delphi中,基本上可以采用三種數(shù)據(jù)庫引擎,即:ODBC引擎、ADO引擎以及Delphi自帶的BDE引擎,考慮到兼容性和易用性等方面的要求,首選采用基于OLE技術(shù)的ADO引擎技術(shù)。使用Delphi自帶的ADO數(shù)據(jù)庫組件即可輕松實(shí)現(xiàn)上述數(shù)據(jù)庫連接。主要使用TADOConnection和TADOQuery組件。TADOConnection負(fù)責(zé)數(shù)據(jù)庫的連接,只需對其連接字符串正確設(shè)置即可完成連接,TADOQuery組件負(fù)責(zé)具體操作數(shù)據(jù)庫,使用通用的SQL語言。

      (2)考生管理模塊

      負(fù)責(zé)考生信息的登錄、校驗(yàn)的工作,也是采用數(shù)據(jù)庫方式進(jìn)行管理,可以單獨(dú)存放于考生數(shù)據(jù)庫庫中,對于小型的考試,也可與成績庫一起打包。

      (3)考試異常情況處理模塊

      負(fù)責(zé)隨時(shí)考生考試情況,客戶端網(wǎng)絡(luò)故障處理以及考生因機(jī)器問題的處理解決辦法(移機(jī)考試或重新登錄),它需要在整個(gè)考試過程中監(jiān)視每一個(gè)客戶端的情況,一發(fā)現(xiàn)客戶端異常就要出現(xiàn)警告信息,以便于考務(wù)人員及時(shí)作出調(diào)整。

      (4)考試成績處理與數(shù)據(jù)處理模塊

      這是網(wǎng)絡(luò)考試中的最后一道環(huán)節(jié),它負(fù)責(zé)處理考生的考試成績的加密與打包,考生考試中間數(shù)據(jù)的備份和上傳。

      2.考試客戶機(jī)的設(shè)計(jì)思想

      客戶端承擔(dān)著考生的考試平臺,在與服務(wù)器的數(shù)據(jù)交換方面采用的組件主要也是TclientSocket組件,其監(jiān)聽端口與服務(wù)器設(shè)置一致,其工作方式采用ctBlocking模式,為可靠地進(jìn)行與服務(wù)器的數(shù)據(jù)交換,客戶端采用TwinSocketStream流方式進(jìn)行讀寫。

      客戶端的主要任務(wù)是建立一個(gè)友好的人機(jī)交互界面,由于采用瘦客戶模式,因此,在一般的考試系統(tǒng)中,并不考慮在客戶端設(shè)計(jì)考試評分環(huán)節(jié),而是統(tǒng)一在服務(wù)器端進(jìn)行評分。

      3.考試服務(wù)器、考試客戶機(jī)數(shù)據(jù)通信協(xié)議的設(shè)計(jì)

      在Delphi中,即使TclientSocket和TserverSocket能夠相互協(xié)調(diào)工作,但考慮到考試的特殊性,本考試系統(tǒng)在考試服務(wù)器和考試客戶機(jī)之間仍應(yīng)該設(shè)計(jì)一個(gè)完整的數(shù)據(jù)交換協(xié)議,以便于最大限度地減少考試數(shù)據(jù)的錯(cuò)誤傳遞。所以,必須建立一個(gè)所謂的“令牌”規(guī)則,在服務(wù)器(或客戶機(jī))向客戶機(jī)(或服務(wù)器)發(fā)送第n條數(shù)據(jù)流后,不應(yīng)該馬上發(fā)送第n+1條,而是在收到對方的“請求下一傳送”的“令牌”后才能繼續(xù)傳送數(shù)據(jù),根據(jù)這個(gè)思想,我們實(shí)際上在TclientSocket和TserverSocket的基礎(chǔ)上開發(fā)了一個(gè)數(shù)據(jù)傳送中間件供整個(gè)系統(tǒng)使用。

      三、考試系統(tǒng)開發(fā)中幾個(gè)重要技術(shù)

      (一)組件開發(fā)技術(shù)

      在Delphi中,開發(fā)組件使用三種方法:繼承、聚合和子類化,但是,不管什么方法,開發(fā)VCL組件都必須合理選擇和使用好父類,因?yàn)橹虚g件的屬性和方法往往是繼承自父類,使用輕捷的父類能有效提高開發(fā)效率,例如本文所提及的考試服務(wù)器和考試客戶機(jī)之間的數(shù)據(jù)交換協(xié)議,我們就是分別繼承自TclientSocket和TserverSocket。

      (二)掛鉤技術(shù)的合理使用

      掛鉤技術(shù)即我們俗稱的“Hook”技術(shù),Hook技術(shù)功能強(qiáng)大,它能成功地屏蔽系統(tǒng)事件,在考試系統(tǒng)的開發(fā)中,應(yīng)該考慮到考生在考試中的各種操作習(xí)慣,甚至某些作弊手段,例如,為了防止考生有意無意地結(jié)束考試進(jìn)程而導(dǎo)致考試無法進(jìn)行,可建立鍵盤掛鉤,監(jiān)視Ctrl+Alt+Del鍵的情況,屏蔽任務(wù)管理器。

      (三)數(shù)據(jù)加密技術(shù)

      考試數(shù)據(jù)的加密無疑是考試安全的保障,對考試數(shù)據(jù)的加密是保證考試公平的有效手段,本文采用內(nèi)存壓縮流的方法就是針對數(shù)據(jù)加密而提出的解決方法,對于數(shù)據(jù)庫的加密,也可考慮對關(guān)鍵數(shù)據(jù)實(shí)行高強(qiáng)度MD5加密方法進(jìn)行。

      總之,無紙化考試系統(tǒng)將越來越多地使用在各種考試形式中,它對考試的更加公平、更加公正無疑起著重要的推動(dòng)作用。

      參考文獻(xiàn):

      [1]羅小平,《Delphi精要》,電子工業(yè)出版社,2004年1月出版.

      [2]靜海,《深入Delphi網(wǎng)絡(luò)編程》,2001年10月出版.

      [3]朱蓉、張鼎,《基于Java Socket技術(shù)的網(wǎng)絡(luò)考試模擬系統(tǒng)的開發(fā)》,《嘉興學(xué)院學(xué)報(bào)》,2005.第17卷,第06期.

      [4]劉暢,《Socket技術(shù)在小型C/S應(yīng)用程序加密中的應(yīng)用》,《科技咨詢導(dǎo)報(bào)》2007.第24期.

      [5]沈祥鴻、范云芝,《Delphi6.0與VB6.0中的Socket技術(shù)對比分析及集成》,《信陽農(nóng)業(yè)高等專科學(xué)校學(xué)報(bào)》,2005.第15卷,第03期.

      作者簡介:

      陳曉舟,江蘇無錫人,江南大學(xué)工程碩士,無錫市廣播電視大學(xué)講師;林意,江蘇無錫人,江南大學(xué)教授。

      邢台市| 孟州市| 桦川县| 绥宁县| 潮安县| 土默特右旗| 阜城县| 桂阳县| 新民市| 南皮县| 盐山县| 宁南县| 建瓯市| 富锦市| 五家渠市| 霍城县| 镇康县| 临湘市| 铁力市| 丰县| 澄城县| 镇远县| 海阳市| 全椒县| 丰镇市| 桑日县| 通化县| 定日县| 高安市| 邯郸市| 平南县| 林芝县| 曲沃县| 台北市| 韩城市| 安塞县| 浦北县| 广昌县| 土默特左旗| 方山县| 奎屯市|