段乃俠
(陜西國(guó)際商貿(mào)學(xué)院 陜西 咸陽(yáng) 712000)
現(xiàn)階段,很多高校都建立起試題庫(kù)系統(tǒng),但由于系統(tǒng)所采用的編程語(yǔ)言、運(yùn)行的平臺(tái)都不同,因此這些系統(tǒng)中有諸多的功能存在重復(fù)開(kāi)發(fā)的現(xiàn)象,系統(tǒng)之間的信息共享難度也較大,并且各個(gè)學(xué)校在建立試題庫(kù)時(shí),沒(méi)有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),屬于專(zhuān)用的、封閉的系統(tǒng),不符合開(kāi)放性的要求。針對(duì)這些問(wèn)題,文中主要提出面向服務(wù)體系的高校試題庫(kù)系統(tǒng),從而構(gòu)建SOA架構(gòu),利用其粗粒度服務(wù)、SOA松散耦合、標(biāo)準(zhǔn)化接口等提點(diǎn),使得試題庫(kù)系統(tǒng)在SOA設(shè)計(jì)思想下,能夠?qū)崿F(xiàn)其松耦合性、開(kāi)放性、重用性及跨平臺(tái)性,從而實(shí)現(xiàn)資源共享。
傳統(tǒng)的面向?qū)ο?、緊耦合的架構(gòu)模型和分布式組件對(duì)象模型被SOA所取代,SOA并不能算是一種新的技術(shù),只不過(guò)是與傳統(tǒng)的面向?qū)ο竽P拖鄬?duì)的又一種選擇,并且SOA也沒(méi)有排斥面向?qū)ο?,系統(tǒng)的設(shè)計(jì)是面向服務(wù),在具體到某一服務(wù)對(duì)象的設(shè)計(jì)時(shí),可以基于面向?qū)ο?。因此,SOA是允許對(duì)象存在與系統(tǒng)內(nèi),但其作為一個(gè)整體而言不是面向?qū)ο蟮?,可以理解為SOA是一個(gè)更高層次的架構(gòu)。與面向?qū)ο蟮膮s別主要是在接口上,SOA的接口可以給系統(tǒng)和組件來(lái)使用,而面向?qū)ο蟮慕涌谥荒芙o其它對(duì)象使用。在實(shí)際應(yīng)用中,SOA接口的實(shí)現(xiàn)一般基于EJB、Web服務(wù)、CORBA等技術(shù)。和傳統(tǒng)架構(gòu)對(duì)比,SOA的優(yōu)勢(shì)主要有松散耦合、基于標(biāo)準(zhǔn)、粗粒度、共享服務(wù)及聯(lián)合控制,和多數(shù)服務(wù)器及客戶(hù)端的不同在于強(qiáng)調(diào)軟件組件的松散耦合,接口上使用獨(dú)立的標(biāo)準(zhǔn)接口。
對(duì)于諸多的面向服務(wù)的架構(gòu)技術(shù)來(lái)說(shuō),Web服務(wù)器技術(shù)應(yīng)該是最為適合的,從內(nèi)在而言,Web服務(wù)器是模塊化和自描述的應(yīng)用程序,其將業(yè)務(wù)邏輯可以分解成服務(wù),然后將這些服務(wù)通過(guò)互聯(lián)網(wǎng)發(fā)布、引用和發(fā)現(xiàn)。在XML標(biāo)準(zhǔn)基礎(chǔ)上,Web服務(wù)器可以使用任何語(yǔ)言,通過(guò)任何協(xié)議與平臺(tái),開(kāi)發(fā)出松散耦合的應(yīng)用程序,作為服務(wù)的業(yè)務(wù)應(yīng)用程序在分發(fā)方面就非常方便,任何人在任何地點(diǎn)、任何時(shí)間、任何平臺(tái)上對(duì)可以對(duì)此服務(wù)進(jìn)行訪(fǎng)問(wèn)。Web服務(wù)器主要包括SOAP、XML、UDDI、WSDL等技術(shù)在內(nèi)的標(biāo)準(zhǔn)集合,對(duì)這些標(biāo)準(zhǔn)進(jìn)行利用,建立一個(gè)松散耦合的計(jì)算環(huán)境,基于.NET平臺(tái),創(chuàng)建可以互操作的分布式應(yīng)用程序。.NET平臺(tái)可以建立其對(duì)Web服務(wù)器支持的平臺(tái),從本質(zhì)來(lái)看,是Web服務(wù)的核心,在分布式計(jì)算模型及協(xié)議堆?;A(chǔ)上,為構(gòu)建可靠、高效、可用、可擴(kuò)展、安全的Web服務(wù)提供了一系列的應(yīng)用城西進(jìn)行支持。
由于SOA作為松散耦合軟件結(jié)構(gòu),在該結(jié)構(gòu)中,通過(guò)可復(fù)用的復(fù)用組成系統(tǒng)功能。對(duì)于試題庫(kù)而言,以往的試題庫(kù)都是在特定的平臺(tái)上開(kāi)發(fā)的,包含特定的軟件、開(kāi)發(fā)工具及操作系統(tǒng)等,其擴(kuò)展性和可復(fù)用性較低。構(gòu)建SOA架構(gòu)試題庫(kù)系統(tǒng),對(duì)這些問(wèn)題可以有效的進(jìn)行解決,SOA是面向服務(wù)的軟件設(shè)計(jì)方法,在計(jì)算機(jī)上很容易就可以進(jìn)行開(kāi)發(fā)、設(shè)計(jì)、部署,這就是服務(wù)。不管對(duì)SOA做何種解釋?zhuān)浜诵囊廊皇欠?wù)。SOA架構(gòu)中,包括服務(wù)提供者、服務(wù)使用者和服務(wù)注冊(cè)中心3個(gè)部分,這3個(gè)部分可以由一個(gè)或者多個(gè)實(shí)體分別充當(dāng),往往在對(duì)客戶(hù)端應(yīng)用程序進(jìn)行構(gòu)建時(shí),會(huì)遇到發(fā)布服務(wù)描述、查找描述、綁定描述3種關(guān)系。這3種關(guān)系如圖1所示。
圖1 SOA體系結(jié)構(gòu)中3個(gè)角色和3種操作關(guān)系圖Fig.1 SOA architecture in three characters and three kinds of operation diagram
在SOA架構(gòu)基礎(chǔ)上,生成該試題庫(kù)組卷系統(tǒng),主要是根據(jù)服務(wù)及服務(wù)的組合構(gòu)建而成。由軟件組件構(gòu)成一個(gè)服務(wù)單元,這個(gè)服務(wù)單元和其他程序是相同的,在邏輯方式條件下,在系統(tǒng)內(nèi)部將多個(gè)服務(wù)單元?jiǎng)澐譃閿?shù)據(jù)服務(wù)層和業(yè)務(wù)層。本文主要是在.NET平臺(tái)環(huán)境中進(jìn)行開(kāi)發(fā),其整體結(jié)構(gòu)如圖2所示。
根據(jù)系統(tǒng)的整體結(jié)構(gòu),可以將系統(tǒng)從外到內(nèi)分為5個(gè)層次:1)表示層;2)服務(wù)層;3)業(yè)務(wù)邏輯層;4)數(shù)據(jù)訪(fǎng)問(wèn)層;5)數(shù)據(jù)庫(kù)層。SOA試題庫(kù)是由服務(wù)和服務(wù)組成,服務(wù)層接口和Web服務(wù)將.NET平臺(tái)上的業(yè)務(wù)邏輯進(jìn)行封裝。該系統(tǒng)全部基于.NET平臺(tái),采用Visual Studio.NET2005為開(kāi)發(fā)工具,采用ATL Web服務(wù)設(shè)計(jì)與創(chuàng)建Web服務(wù),DLL為業(yè)務(wù)組件,數(shù)據(jù)訪(fǎng)問(wèn)則采用ADO.NET技術(shù),采用SQL Server2005作為數(shù)據(jù)庫(kù)實(shí)現(xiàn)技術(shù)。
圖2 SOA基礎(chǔ)上的試題庫(kù)自動(dòng)組卷結(jié)構(gòu)圖Fig.2 SOA library automatic group volume based on the structure
根據(jù)系統(tǒng)的目標(biāo),系統(tǒng)的功能主要包含:用戶(hù)信息管理(對(duì)管理員、教師信息進(jìn)行管理)、試題庫(kù)管理(涵蓋知識(shí)點(diǎn)管理、試題管理模塊及課程管理)、組卷管理(包括手動(dòng)組卷模塊和自動(dòng)組卷模塊)、試題管理(包含試卷添加、查詢(xún)及刪除等)等幾個(gè)方面。
1)用戶(hù)信息管理
該功能主要工作是對(duì)用戶(hù)權(quán)限進(jìn)行分配、系統(tǒng)管理員及教師管理員的添加與刪除等。不同級(jí)別對(duì)系統(tǒng)有不同的需求,考慮到此,系統(tǒng)一般對(duì)用戶(hù)可以劃分為三個(gè)級(jí)別:系統(tǒng)超級(jí)管理員、系統(tǒng)管理員及教師管理員。根據(jù)不同級(jí)別的不同需求設(shè)置不同的權(quán)限,保證系統(tǒng)的安全。系統(tǒng)超級(jí)管理員對(duì)操作系統(tǒng)擁有所有的權(quán)限,對(duì)系統(tǒng)所有功能都可以使用,不受任何限制,其工作是對(duì)系統(tǒng)管理員進(jìn)行管理與維護(hù)。系統(tǒng)管理員主要對(duì)系統(tǒng)進(jìn)行維護(hù),包括試題庫(kù)維護(hù)、教師管理維護(hù)及試卷維護(hù)等。教師管理員的權(quán)限是最少的,主要是是使用系統(tǒng)組卷功能,對(duì)試卷管理模塊進(jìn)行查詢(xún)等操作。
2)試題庫(kù)管理
主要是對(duì)試題庫(kù)進(jìn)行維持操作,包括知識(shí)點(diǎn)維護(hù)、課程維護(hù)及試題管理子模塊等。通過(guò)課程管理子模塊,低試題庫(kù)所述課程進(jìn)行管理操作,試題庫(kù)中的每一道試題都必須屬于某一課程,知識(shí)點(diǎn)也相同,如果刪除某一課程,相應(yīng)的試題或知識(shí)點(diǎn)也要?jiǎng)h除。試題管理模塊主要是對(duì)試題庫(kù)中的試題進(jìn)行添加、刪除、修改等操作。在新試題庫(kù)建立之初,由于題量少,要有專(zhuān)人完成試題錄入工作。
3)組卷管理
包含手動(dòng)和自動(dòng)組卷功能,該功能是本系統(tǒng)設(shè)計(jì)的核心,也是本文研究的重點(diǎn)。系統(tǒng)主要包含自動(dòng)組卷子模塊和手動(dòng)組卷子模塊,而本文主要對(duì)自動(dòng)組卷子模塊進(jìn)行深入的研究。如圖3所示。
圖3 組卷管理功能圖Fig.3 The group management functions
該系統(tǒng)的核心模塊之一就是組卷管理模塊,自動(dòng)組卷子模塊根據(jù)用戶(hù)所輸入?yún)?shù),對(duì)試題庫(kù)中的所有試題進(jìn)行組卷。主要分為兩步:參數(shù)輸入和試題編輯。系統(tǒng)采用遺傳算法對(duì)輸入的參數(shù)進(jìn)行計(jì)算,生成用戶(hù)滿(mǎn)意的試卷,在組卷計(jì)劃、考核大綱的基礎(chǔ)上,以參數(shù)形式上傳組卷,其中這些參數(shù)主要包括題量、總分、總試卷、題型、曝光度、分布比例、知識(shí)點(diǎn)、難度等。自動(dòng)組卷功能實(shí)際上是將用戶(hù)輸入的參數(shù)轉(zhuǎn)換為系統(tǒng)可以識(shí)別的參數(shù),然后根據(jù)這些參數(shù)在試題庫(kù)中抽取試題,組成試卷。在組卷管理中,如果所組成的試題用戶(hù)在確定使用以后,應(yīng)該將其加入試卷庫(kù)中,便于以后查找與參考。
4)試卷管理
該模塊主要針對(duì)試卷進(jìn)行一半的修改、查詢(xún)、刪除及維護(hù)等操作。
針對(duì)試題庫(kù)中的試題進(jìn)行自動(dòng)組卷系統(tǒng)的設(shè)計(jì),所以在底層試題庫(kù)中,設(shè)計(jì)與組卷的質(zhì)量與效率的關(guān)系非常緊密。由于合理的、科學(xué)的試題庫(kù)建立是一個(gè)復(fù)雜的過(guò)程,要在數(shù)學(xué)模型的基礎(chǔ)上進(jìn)行,需要各學(xué)科協(xié)作才能完成。因此,文中主要從概念和邏輯2個(gè)設(shè)計(jì)方面進(jìn)行分析。
1)概念設(shè)計(jì)
根據(jù)用戶(hù)的需求,概念設(shè)計(jì)可以滿(mǎn)足用戶(hù)與各個(gè)數(shù)據(jù)實(shí)體之間的聯(lián)系,基于ER模型,對(duì)數(shù)據(jù)庫(kù)概念模型進(jìn)行設(shè)計(jì)。該系統(tǒng)數(shù)據(jù)庫(kù)的功能主要是對(duì)不同課程、題型、知識(shí)點(diǎn)等進(jìn)行存儲(chǔ)和管理,并且對(duì)生成的試卷進(jìn)行管理。所以,對(duì)系統(tǒng)系統(tǒng)庫(kù)所包含的實(shí)體可以確定為:課程實(shí)體、試題實(shí)體、難度實(shí)體、知識(shí)點(diǎn)實(shí)體、題型實(shí)體、區(qū)分度實(shí)體、試卷實(shí)體、用戶(hù)實(shí)體及教學(xué)實(shí)體,這些實(shí)體間的關(guān)系如圖4所示。
圖4 試題庫(kù)總體ER圖Fig.4 Test database ER diagram as a whole
2)邏輯設(shè)計(jì)
根據(jù)數(shù)據(jù)庫(kù)概念設(shè)計(jì)要求,此時(shí)只需要選擇合適的數(shù)據(jù)庫(kù)管理系統(tǒng)即可,將概念設(shè)計(jì)轉(zhuǎn)化為選擇的數(shù)據(jù)模型支持的模式。邏輯設(shè)計(jì)只要是將概念設(shè)計(jì)中的ER圖以表格的形式展示出來(lái),該系統(tǒng)主要選用Microsoft SQL Server 2500作為數(shù)據(jù)庫(kù)管理系統(tǒng)。該系統(tǒng)主要數(shù)據(jù)表類(lèi)型有用戶(hù)表、試題表和試卷表3種類(lèi)型。
針對(duì)試題庫(kù)中的試題維護(hù)采取試題庫(kù)管理模塊進(jìn)行,這部分操作主要由系統(tǒng)管理員來(lái)完成,試題庫(kù)管理模塊的主要工恩那個(gè)是對(duì)課程、試題庫(kù)及知識(shí)點(diǎn)進(jìn)行添加、刪除、查看及修改等操作。先關(guān)服務(wù)如下:
通過(guò)對(duì)用戶(hù)輸入的組卷參數(shù)通過(guò)自動(dòng)組卷算法轉(zhuǎn)化為組卷參數(shù),然后從試題庫(kù)中調(diào)取試題,完成組卷操作。
自動(dòng)組卷是該系統(tǒng)的核心模塊之一,包含參數(shù)輸入和自動(dòng)組卷兩個(gè)部分,通過(guò)自動(dòng)組卷算法,將參數(shù)轉(zhuǎn)化為組卷參數(shù),組卷參數(shù)主要針對(duì)試題的難度、區(qū)分度、知識(shí)點(diǎn)、題型分布等約束條件對(duì)試題進(jìn)行選擇組合。根據(jù)用戶(hù)傳遞的組卷參數(shù),對(duì)組卷個(gè)組分進(jìn)行定義,本文主要針對(duì)群體結(jié)構(gòu)體Cpopulation進(jìn)行定義:
隨著高校信息化建設(shè)的不斷完善,對(duì)各類(lèi)技術(shù)的整合,對(duì)信息的共享都促使高校試題庫(kù)的完善,基于SOA架構(gòu)的試題庫(kù)系統(tǒng),在一定程度上解決了當(dāng)前試題庫(kù)系統(tǒng)所存在的一些問(wèn)題,系統(tǒng)的跨平臺(tái)性、開(kāi)放性、松散耦合性及可復(fù)用性更強(qiáng)。根據(jù)實(shí)際使用證明,SOA技術(shù)在試題庫(kù)自動(dòng)組卷系統(tǒng)中的應(yīng)用前景必然會(huì)十分廣闊。
[1]萬(wàn)星.從企業(yè)角度看SOA[J].中國(guó)計(jì)算機(jī)用戶(hù),2009(1):20-22.WAN Xing.Enterprises from the perspective of SOA[J].Chinese Computer Users,2009(1):20-22.
[2]鄧斯紅,楊立國(guó),賴(lài)杰賢,等.SOA在數(shù)字化校園中的應(yīng)用研究[J].中山大學(xué)學(xué)報(bào):自然科學(xué)版,2009(48):11-13.DENG Si-gong,YANG Li-guo,LAI Jie-xian,et al.SOA in the application of digital campus[J].Journal of Sun Yat-sen University:Natural Science Edition,2009(48):11-13.
[3]庶煒,閏宏印,王世兵,等.基于集合隨機(jī)抽選法的智能組卷的研究與應(yīng)用[J].電腦開(kāi)發(fā)與應(yīng)用,2010(5):25-27.ZHE Wei,RUN Hong-yin,WANG Shi-bing,et al.Based on a set of random selection method of intelligent research and application[J].The Development and Application of Computer,2010(5):25-27.
[4]凌曉東.SOA綜述[J].計(jì)算機(jī)應(yīng)用與軟件,2007(10):33-34.LING Xiao-dong.SOA review[J].Computer Application and Software,2007(5):33-34.
[5]黃勇,周勇,劉撿平.基于SOA架構(gòu)的新一代高校試題庫(kù)系統(tǒng)研究[J].江西師范大學(xué)學(xué)報(bào):自然科學(xué)版,2008(4):39-40.HUANG Yong,ZHOU Yong,LIU Jian-ping.Based on SOA to pick up a new generation of the database system[J].Journal of Jiangxi Normal University:Natural Science Edition,2008(4):39-40.