關(guān)鍵詞:圖書館;電子資源;管理系統(tǒng);MVC框架
摘要:文章闡述了關(guān)鍵技術(shù)與電子資源管理系統(tǒng)實(shí)現(xiàn)需要的功能,分析了Model層中數(shù)據(jù)檢索、數(shù)據(jù)更新、數(shù)據(jù)刪除的條件以及實(shí)現(xiàn)圖書館電子資源管理系統(tǒng)的基本路徑。
中圖分類號(hào):G250文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1003-1588(2014)04-0112-03
收稿日期:2014-03-12
作者簡(jiǎn)介:尚超(1979-),中國(guó)醫(yī)科大學(xué)圖書館館員。1關(guān)鍵技術(shù)介紹
1.1MVC框架簡(jiǎn)介
MVC是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性地使應(yīng)用程序的輸入、處理和輸出分開(kāi),使MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。
模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù),如:它可以用像EJBs和ColdFusion Components這樣的構(gòu)件對(duì)象來(lái)處理數(shù)據(jù)庫(kù)。被模型返回的數(shù)據(jù)是中立的,也就是說(shuō)模型與數(shù)據(jù)格式無(wú)關(guān),這樣,一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。
視圖是用戶看到并與之交互的界面。對(duì)老式的Web應(yīng)用程序來(lái)說(shuō),視圖就是由HTML元素組成的界面。在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,包括Macromedia Flash和XHTML、XML/XSL、WML等一些標(biāo)識(shí)語(yǔ)言和Web services。如何處理應(yīng)用程序的界面變得越來(lái)越有挑戰(zhàn)性。MVC最大的好處是能為應(yīng)用程序處理很多不同的視圖。在視圖中,其實(shí)沒(méi)有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲(chǔ)的,還是一個(gè)雇員列表,作為視圖來(lái)講,他只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式[1]。
控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁(yè)面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西,也不做任何處理,只是接收請(qǐng)求并決定調(diào)用某個(gè)模型構(gòu)件去處理請(qǐng)求,然后確定用某個(gè)視圖來(lái)顯示模型以及處理返回的數(shù)據(jù)。
1.2關(guān)于ASP.NET MVC2.0
1.2.1ASP.NET MVC2.0基本框架。①通過(guò)把項(xiàng)目分成model view和controller,使得復(fù)雜的項(xiàng)目更加容易維護(hù)。②沒(méi)有使用view state和服務(wù)器表單控件,可以更方便地控制應(yīng)用程序。③應(yīng)用程序通過(guò)controller來(lái)控制程序請(qǐng)求,可以提供豐富的url重寫。④對(duì)單元測(cè)試的支持更加出色。⑤在團(tuán)隊(duì)開(kāi)發(fā)模式下表現(xiàn)更加出眾。
1.2.2ASP.NET MVC2.0框架web窗體的優(yōu)點(diǎn)。①采用事件驅(qū)動(dòng)模式來(lái)控制應(yīng)用程序請(qǐng)求,由大量服務(wù)器控件支持。②采用頁(yè)面控制機(jī)制,可以為單個(gè)頁(yè)面添加事件處理函數(shù)。③使用view state和服務(wù)器端頁(yè)面,使管理頁(yè)面狀態(tài)信息更加輕松。④對(duì)部分想使用服務(wù)器端控件的開(kāi)發(fā)團(tuán)隊(duì),使用起來(lái)更加方便。⑤開(kāi)發(fā)起來(lái)比MVC模式要輕松簡(jiǎn)單一些。
2圖書館電子資源管理系統(tǒng)功能設(shè)計(jì)
圖書館電子資源管理系統(tǒng)功能設(shè)計(jì)見(jiàn)圖1。
圖1圖書館電子資源管理系統(tǒng)結(jié)構(gòu)圖沈陽(yáng)理工大學(xué)圖書館目前有的中文期刊、英文期刊、電子圖書、報(bào)紙、網(wǎng)頁(yè)信息、多媒體及學(xué)位論文等電子資源總數(shù)據(jù)量已達(dá)到千萬(wàn)級(jí)別,占用存儲(chǔ)空間已經(jīng)達(dá)到15TB。因此,其建立的系統(tǒng)要能對(duì)大數(shù)據(jù)量的信息進(jìn)行存儲(chǔ)并要保證其高速的檢索,但與此同時(shí),不能占用系統(tǒng)過(guò)多的資源。
由于各種電子資源所需的展示方式不同,所以不同類型的資源可以以個(gè)性化的方式進(jìn)行展示。
由于存在管理權(quán)限問(wèn)題,所以系統(tǒng)要為用戶提供分級(jí)、分權(quán)限的管理,同時(shí)允許用戶上傳文件以及對(duì)資源的好壞進(jìn)行評(píng)價(jià)。
3圖書館電子資源管理系統(tǒng)框架設(shè)計(jì)
由于系統(tǒng)的整體采用了ASP.NET MVC2.0設(shè)計(jì)模式,所以將系統(tǒng)分為了三個(gè)部分,即 Model層、View層與Control層。其中,Model層為整個(gè)系統(tǒng)的心臟;View層中完成了對(duì)中文期刊、英文期刊、電子圖書、報(bào)紙、網(wǎng)頁(yè)信息、多媒體及學(xué)位論文等電子資源的個(gè)性化展示,其中融入了較多的web2.0技術(shù);Control層主要完成了系統(tǒng)的權(quán)限管理及請(qǐng)求分配的問(wèn)題[2]。
3.1Model層設(shè)計(jì)
Model層設(shè)計(jì)了對(duì)數(shù)據(jù)的基本操作。該層除涉及對(duì)數(shù)據(jù)的增加、刪除、更新等簡(jiǎn)單操作之外,還需要考慮到信息情報(bào)學(xué)中涉及的比較復(fù)雜的檢索功能。從數(shù)據(jù)模型的建立開(kāi)始,筆者以大家熟知的期刊中論文的數(shù)據(jù)結(jié)構(gòu)模型為例,來(lái)介紹電子資源管理系統(tǒng)中Model層建立的總體構(gòu)想。
T_EN_Journal類代表了大家熟知的某種期刊。當(dāng)然期刊又細(xì)分為很多的年卷與信息,如:《Science》期刊的某一期暫且用T_EN_Issues類來(lái)代表,T_EN_Journal到T_EN_Issues是一種一對(duì)多的關(guān)系。T_EN_Literary類代表期刊中的文章,具體結(jié)構(gòu)關(guān)系見(jiàn)圖2。
圖2數(shù)據(jù)庫(kù)結(jié)構(gòu)圖以T_EN_Literary類為代表,圖2詳細(xì)分析了怎樣使用Lucene實(shí)現(xiàn)數(shù)據(jù)庫(kù)的各種操作以及怎樣使用Lucene來(lái)實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)檢索并且避開(kāi)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。
尚超:圖書館電子資源管理系統(tǒng)的設(shè)計(jì)尚超:圖書館電子資源管理系統(tǒng)的設(shè)計(jì)3.1.1檢索接口。上述提到的每個(gè)類都實(shí)現(xiàn)了Search這個(gè)公共接口,該接口的主要功能是負(fù)責(zé)執(zhí)行各種復(fù)雜的檢索任務(wù),并將檢索出來(lái)的結(jié)果以數(shù)據(jù)集合的形式返回給Control層。
系統(tǒng)采用ASP.NET MVC2.0框架,雖然可以很便捷的使用LINQ來(lái)完成以上的工作,但是其中會(huì)存在很大的隱患。當(dāng)數(shù)據(jù)量比較大時(shí),LINQ會(huì)對(duì)整個(gè)數(shù)據(jù)表進(jìn)行查詢,換句話說(shuō),就是將數(shù)據(jù)庫(kù)的整個(gè)表的信息加載到內(nèi)存中進(jìn)行查找,調(diào)度過(guò)程中要占用幾乎全部的CPU資源,但返回結(jié)果的速度卻不盡如人意。
因此,當(dāng)數(shù)據(jù)量達(dá)到一定程度時(shí),就要考慮更高級(jí)的檢索方法,Lucene檢索框架就是最好的選擇。前文提到,在系統(tǒng)初始化過(guò)程中已經(jīng)對(duì)整個(gè)數(shù)據(jù)庫(kù)建立了索引,那么在實(shí)現(xiàn)Search接口查詢數(shù)據(jù)時(shí),就可以避開(kāi)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),直接從已經(jīng)建立好的索引中查詢,然后將查詢的結(jié)果返回給Control層。這樣就避免了內(nèi)存及CPU的消耗,同時(shí)亦保證了檢索的速度[3]。
3.1.2更新接口。電子資源管理系統(tǒng)中的每種資源都被定義為一個(gè)類,這些類同時(shí)也實(shí)現(xiàn)了update的接口。該接口主要負(fù)責(zé)數(shù)據(jù)庫(kù)的更新及索引的同步。更新數(shù)據(jù)首先要獲取那些需要更新的數(shù)據(jù),這些工作由檢索接口去實(shí)現(xiàn)。當(dāng)檢索接口將數(shù)據(jù)對(duì)象集返回后,再將數(shù)據(jù)對(duì)象集進(jìn)行拆分,只留大家需要的對(duì)象主鍵ID數(shù)據(jù),隨后利用主鍵ID到數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)。這一步不會(huì)過(guò)多地耗費(fèi)系統(tǒng)的資源,因?yàn)閿?shù)據(jù)庫(kù)中對(duì)唯一主鍵數(shù)值的查詢耗費(fèi)資源極小。當(dāng)數(shù)據(jù)更新成功之后,再?gòu)臄?shù)據(jù)庫(kù)中取回已經(jīng)更新的數(shù)據(jù)集合,根據(jù)這部分集合為數(shù)據(jù)庫(kù)的lucene索引進(jìn)行更新,從而完成了索引到數(shù)據(jù)庫(kù)兩面數(shù)據(jù)的同步[4]。
3.1.3刪除接口。delete的接口負(fù)責(zé)數(shù)據(jù)的刪除工作。當(dāng)檢索接口將數(shù)據(jù)對(duì)象集返回后,再將數(shù)據(jù)對(duì)象集進(jìn)行拆分,只留需要的對(duì)象主鍵ID數(shù)據(jù),隨后利用主鍵ID到數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)。如果刪除成功,就對(duì)數(shù)據(jù)庫(kù)索引進(jìn)行相關(guān)的刪除工作,從而完成了索引到數(shù)據(jù)庫(kù)兩面數(shù)據(jù)的同步。
3.2View層設(shè)計(jì)
View層主要負(fù)責(zé)對(duì)圖書館目前現(xiàn)有的中文期刊、英文期刊、電子圖書、報(bào)紙、網(wǎng)頁(yè)信息、多媒體及學(xué)位論文等電子資源的個(gè)性化展示。View中所用到的數(shù)據(jù)都是Control層提供的。如:期刊列表的展示頁(yè)面將View層中的數(shù)據(jù)接收類型設(shè)置為期刊的集合對(duì)象,就可以將Control層返回過(guò)來(lái)的數(shù)據(jù)對(duì)象解析。
endprint
3.3Control層設(shè)計(jì)
Control層作為ASP.NET MVC2.0框架的中間樞紐,負(fù)責(zé)各項(xiàng)工作的調(diào)度。當(dāng)接到用戶的請(qǐng)求時(shí),請(qǐng)求首先會(huì)被分配到相應(yīng)的控制器,然后控制器會(huì)對(duì)請(qǐng)求進(jìn)行各種業(yè)務(wù)邏輯的驗(yàn)證。當(dāng)驗(yàn)證通過(guò)后,Control層會(huì)根據(jù)具體的情況請(qǐng)求Model層中的相關(guān)方法。此時(shí),Model層把數(shù)據(jù)返回給Control層,Control層將數(shù)據(jù)加工后,以適當(dāng)?shù)男问椒祷氐絍iew層,也就是用戶瀏覽器所看到的頁(yè)面中。
3.4系統(tǒng)權(quán)限控制設(shè)計(jì)
權(quán)限管理指根據(jù)系統(tǒng)設(shè)置的安全規(guī)則或安全策略,用戶可以訪問(wèn)而且只能訪問(wèn)自己被授權(quán)的資源。從控制力度來(lái)看,權(quán)限管理可以分為兩大類[5]:能級(jí)權(quán)限管理和數(shù)據(jù)級(jí)權(quán)限管理。從控制方向來(lái)看,又將權(quán)限管理分為兩大類:①?gòu)南到y(tǒng)獲取數(shù)據(jù),如:查詢資源、查詢用戶資料。②向系統(tǒng)提交數(shù)據(jù),如:刪除資源、修改資源。
系統(tǒng)的Model層數(shù)據(jù)模型可以觀察到每個(gè)類中都有Owner、Visit、Edit屬性,這些屬性實(shí)現(xiàn)了數(shù)據(jù)級(jí)權(quán)限管理。
Owner中存有對(duì)數(shù)據(jù)對(duì)象的擁有者的id,他們對(duì)這個(gè)資源掌握最高級(jí)的權(quán)限,可以對(duì)數(shù)據(jù)進(jìn)行瀏覽、增加、刪除、修改等。
Visit中存有對(duì)數(shù)據(jù)對(duì)象的擁有訪問(wèn)權(quán)用戶的id,他們對(duì)這個(gè)資源有瀏覽的權(quán)限,但僅此而已。
Edit屬性存有對(duì)數(shù)據(jù)對(duì)象的擁有編輯權(quán)用戶的id,他們擁有可以對(duì)這個(gè)資源編輯的權(quán)限。設(shè)置這個(gè)屬性的原因是讓資源權(quán)限管理起來(lái)更加靈活。
功能級(jí)的權(quán)限控制是由用戶的角色分類控制的,系統(tǒng)先將角色分好,然后通過(guò)Control層中提到的過(guò)濾器執(zhí)行,最終實(shí)現(xiàn)了功能級(jí)的權(quán)限控制。
4圖書館電子資源管理系統(tǒng)功能實(shí)現(xiàn)
圖書館電子資源管理系統(tǒng)主要功能包括:①圖書館對(duì)目前已有的中文期刊、英文期刊、電子圖書、網(wǎng)頁(yè)信息、多媒體及學(xué)位論文等電子資源進(jìn)行存儲(chǔ)。②在英文期刊、中文期刊、電子圖書模塊為專業(yè)的信息情報(bào)人員提供A-Z的導(dǎo)航功能,并針對(duì)期刊進(jìn)行年卷期的專業(yè)化樹(shù)狀展示、對(duì)電子圖書進(jìn)行中圖分類法的目錄樹(shù)展示,同時(shí)還應(yīng)提供這些資源的模糊檢索、正則表達(dá)式等高級(jí)檢索功能,方便用戶定位資源。③為每個(gè)模塊添加資源編輯功能,授權(quán)用戶可以對(duì)資源進(jìn)行相關(guān)的操作。④為所有資源添加評(píng)價(jià)屬性。用戶可以評(píng)價(jià)資源、推薦資源,方便了資源的推廣,同時(shí)節(jié)省了用戶的時(shí)間。⑤在資源倉(cāng)庫(kù)模塊實(shí)現(xiàn)高級(jí)用戶的目錄樹(shù)編輯功能。用戶可以創(chuàng)建目錄樹(shù),定義資源類型。每個(gè)目錄樹(shù)后自動(dòng)生成RSS訂閱鏈接,方便信息資源的推送。⑥用戶收藏模塊實(shí)現(xiàn)了用戶站內(nèi)資源的收藏功能。用戶在觀看站內(nèi)的所有資源時(shí),資源的相關(guān)位置都有收藏按鈕,用戶點(diǎn)擊后可以直接將資源添加到自己的站內(nèi)收藏夾中。⑦權(quán)限管理模塊使系統(tǒng)實(shí)現(xiàn)了功能級(jí)權(quán)限管理與數(shù)據(jù)級(jí)權(quán)限管理。
5結(jié)論
文章首先闡述了電子資源管理系統(tǒng)主要需要實(shí)現(xiàn)的功能,隨后,結(jié)合系統(tǒng)中用到的ASP.NET MVC2.0框架對(duì)系統(tǒng)進(jìn)行了概述。與此同時(shí),文章還詳細(xì)分析了Model層中數(shù)據(jù)檢索、數(shù)據(jù)更新、數(shù)據(jù)刪除的基本功能。最后,文章從整體角度設(shè)計(jì)了Control層的調(diào)度,實(shí)現(xiàn)了圖書館電子資源管理系統(tǒng)的功能。
參考文獻(xiàn):
[1]李瑋,李利.Web搜索引擎與全文檢索技術(shù)[J].情報(bào)科學(xué),2003(5):558-560.
[2]Brian GoetzThe Lucene search engine: Powerful, flexible, and free [M ]. JavaWorld, 2010.
[3]鄭依華.搜索引擎也開(kāi)源[N].計(jì)算機(jī)世界報(bào),2006-12-04:B30-B31.
[4]涂新輝,何婷婷,羅景.一種全文檢索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005(17):55-57.
[5]彭波.大規(guī)模搜索引擎檢索系統(tǒng)框架與實(shí)現(xiàn)要點(diǎn)[J].計(jì)算機(jī)工程與科學(xué),2006(3):1-4.
(編校:馬懷云)
endprint
3.3Control層設(shè)計(jì)
Control層作為ASP.NET MVC2.0框架的中間樞紐,負(fù)責(zé)各項(xiàng)工作的調(diào)度。當(dāng)接到用戶的請(qǐng)求時(shí),請(qǐng)求首先會(huì)被分配到相應(yīng)的控制器,然后控制器會(huì)對(duì)請(qǐng)求進(jìn)行各種業(yè)務(wù)邏輯的驗(yàn)證。當(dāng)驗(yàn)證通過(guò)后,Control層會(huì)根據(jù)具體的情況請(qǐng)求Model層中的相關(guān)方法。此時(shí),Model層把數(shù)據(jù)返回給Control層,Control層將數(shù)據(jù)加工后,以適當(dāng)?shù)男问椒祷氐絍iew層,也就是用戶瀏覽器所看到的頁(yè)面中。
3.4系統(tǒng)權(quán)限控制設(shè)計(jì)
權(quán)限管理指根據(jù)系統(tǒng)設(shè)置的安全規(guī)則或安全策略,用戶可以訪問(wèn)而且只能訪問(wèn)自己被授權(quán)的資源。從控制力度來(lái)看,權(quán)限管理可以分為兩大類[5]:能級(jí)權(quán)限管理和數(shù)據(jù)級(jí)權(quán)限管理。從控制方向來(lái)看,又將權(quán)限管理分為兩大類:①?gòu)南到y(tǒng)獲取數(shù)據(jù),如:查詢資源、查詢用戶資料。②向系統(tǒng)提交數(shù)據(jù),如:刪除資源、修改資源。
系統(tǒng)的Model層數(shù)據(jù)模型可以觀察到每個(gè)類中都有Owner、Visit、Edit屬性,這些屬性實(shí)現(xiàn)了數(shù)據(jù)級(jí)權(quán)限管理。
Owner中存有對(duì)數(shù)據(jù)對(duì)象的擁有者的id,他們對(duì)這個(gè)資源掌握最高級(jí)的權(quán)限,可以對(duì)數(shù)據(jù)進(jìn)行瀏覽、增加、刪除、修改等。
Visit中存有對(duì)數(shù)據(jù)對(duì)象的擁有訪問(wèn)權(quán)用戶的id,他們對(duì)這個(gè)資源有瀏覽的權(quán)限,但僅此而已。
Edit屬性存有對(duì)數(shù)據(jù)對(duì)象的擁有編輯權(quán)用戶的id,他們擁有可以對(duì)這個(gè)資源編輯的權(quán)限。設(shè)置這個(gè)屬性的原因是讓資源權(quán)限管理起來(lái)更加靈活。
功能級(jí)的權(quán)限控制是由用戶的角色分類控制的,系統(tǒng)先將角色分好,然后通過(guò)Control層中提到的過(guò)濾器執(zhí)行,最終實(shí)現(xiàn)了功能級(jí)的權(quán)限控制。
4圖書館電子資源管理系統(tǒng)功能實(shí)現(xiàn)
圖書館電子資源管理系統(tǒng)主要功能包括:①圖書館對(duì)目前已有的中文期刊、英文期刊、電子圖書、網(wǎng)頁(yè)信息、多媒體及學(xué)位論文等電子資源進(jìn)行存儲(chǔ)。②在英文期刊、中文期刊、電子圖書模塊為專業(yè)的信息情報(bào)人員提供A-Z的導(dǎo)航功能,并針對(duì)期刊進(jìn)行年卷期的專業(yè)化樹(shù)狀展示、對(duì)電子圖書進(jìn)行中圖分類法的目錄樹(shù)展示,同時(shí)還應(yīng)提供這些資源的模糊檢索、正則表達(dá)式等高級(jí)檢索功能,方便用戶定位資源。③為每個(gè)模塊添加資源編輯功能,授權(quán)用戶可以對(duì)資源進(jìn)行相關(guān)的操作。④為所有資源添加評(píng)價(jià)屬性。用戶可以評(píng)價(jià)資源、推薦資源,方便了資源的推廣,同時(shí)節(jié)省了用戶的時(shí)間。⑤在資源倉(cāng)庫(kù)模塊實(shí)現(xiàn)高級(jí)用戶的目錄樹(shù)編輯功能。用戶可以創(chuàng)建目錄樹(shù),定義資源類型。每個(gè)目錄樹(shù)后自動(dòng)生成RSS訂閱鏈接,方便信息資源的推送。⑥用戶收藏模塊實(shí)現(xiàn)了用戶站內(nèi)資源的收藏功能。用戶在觀看站內(nèi)的所有資源時(shí),資源的相關(guān)位置都有收藏按鈕,用戶點(diǎn)擊后可以直接將資源添加到自己的站內(nèi)收藏夾中。⑦權(quán)限管理模塊使系統(tǒng)實(shí)現(xiàn)了功能級(jí)權(quán)限管理與數(shù)據(jù)級(jí)權(quán)限管理。
5結(jié)論
文章首先闡述了電子資源管理系統(tǒng)主要需要實(shí)現(xiàn)的功能,隨后,結(jié)合系統(tǒng)中用到的ASP.NET MVC2.0框架對(duì)系統(tǒng)進(jìn)行了概述。與此同時(shí),文章還詳細(xì)分析了Model層中數(shù)據(jù)檢索、數(shù)據(jù)更新、數(shù)據(jù)刪除的基本功能。最后,文章從整體角度設(shè)計(jì)了Control層的調(diào)度,實(shí)現(xiàn)了圖書館電子資源管理系統(tǒng)的功能。
參考文獻(xiàn):
[1]李瑋,李利.Web搜索引擎與全文檢索技術(shù)[J].情報(bào)科學(xué),2003(5):558-560.
[2]Brian GoetzThe Lucene search engine: Powerful, flexible, and free [M ]. JavaWorld, 2010.
[3]鄭依華.搜索引擎也開(kāi)源[N].計(jì)算機(jī)世界報(bào),2006-12-04:B30-B31.
[4]涂新輝,何婷婷,羅景.一種全文檢索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005(17):55-57.
[5]彭波.大規(guī)模搜索引擎檢索系統(tǒng)框架與實(shí)現(xiàn)要點(diǎn)[J].計(jì)算機(jī)工程與科學(xué),2006(3):1-4.
(編校:馬懷云)
endprint
3.3Control層設(shè)計(jì)
Control層作為ASP.NET MVC2.0框架的中間樞紐,負(fù)責(zé)各項(xiàng)工作的調(diào)度。當(dāng)接到用戶的請(qǐng)求時(shí),請(qǐng)求首先會(huì)被分配到相應(yīng)的控制器,然后控制器會(huì)對(duì)請(qǐng)求進(jìn)行各種業(yè)務(wù)邏輯的驗(yàn)證。當(dāng)驗(yàn)證通過(guò)后,Control層會(huì)根據(jù)具體的情況請(qǐng)求Model層中的相關(guān)方法。此時(shí),Model層把數(shù)據(jù)返回給Control層,Control層將數(shù)據(jù)加工后,以適當(dāng)?shù)男问椒祷氐絍iew層,也就是用戶瀏覽器所看到的頁(yè)面中。
3.4系統(tǒng)權(quán)限控制設(shè)計(jì)
權(quán)限管理指根據(jù)系統(tǒng)設(shè)置的安全規(guī)則或安全策略,用戶可以訪問(wèn)而且只能訪問(wèn)自己被授權(quán)的資源。從控制力度來(lái)看,權(quán)限管理可以分為兩大類[5]:能級(jí)權(quán)限管理和數(shù)據(jù)級(jí)權(quán)限管理。從控制方向來(lái)看,又將權(quán)限管理分為兩大類:①?gòu)南到y(tǒng)獲取數(shù)據(jù),如:查詢資源、查詢用戶資料。②向系統(tǒng)提交數(shù)據(jù),如:刪除資源、修改資源。
系統(tǒng)的Model層數(shù)據(jù)模型可以觀察到每個(gè)類中都有Owner、Visit、Edit屬性,這些屬性實(shí)現(xiàn)了數(shù)據(jù)級(jí)權(quán)限管理。
Owner中存有對(duì)數(shù)據(jù)對(duì)象的擁有者的id,他們對(duì)這個(gè)資源掌握最高級(jí)的權(quán)限,可以對(duì)數(shù)據(jù)進(jìn)行瀏覽、增加、刪除、修改等。
Visit中存有對(duì)數(shù)據(jù)對(duì)象的擁有訪問(wèn)權(quán)用戶的id,他們對(duì)這個(gè)資源有瀏覽的權(quán)限,但僅此而已。
Edit屬性存有對(duì)數(shù)據(jù)對(duì)象的擁有編輯權(quán)用戶的id,他們擁有可以對(duì)這個(gè)資源編輯的權(quán)限。設(shè)置這個(gè)屬性的原因是讓資源權(quán)限管理起來(lái)更加靈活。
功能級(jí)的權(quán)限控制是由用戶的角色分類控制的,系統(tǒng)先將角色分好,然后通過(guò)Control層中提到的過(guò)濾器執(zhí)行,最終實(shí)現(xiàn)了功能級(jí)的權(quán)限控制。
4圖書館電子資源管理系統(tǒng)功能實(shí)現(xiàn)
圖書館電子資源管理系統(tǒng)主要功能包括:①圖書館對(duì)目前已有的中文期刊、英文期刊、電子圖書、網(wǎng)頁(yè)信息、多媒體及學(xué)位論文等電子資源進(jìn)行存儲(chǔ)。②在英文期刊、中文期刊、電子圖書模塊為專業(yè)的信息情報(bào)人員提供A-Z的導(dǎo)航功能,并針對(duì)期刊進(jìn)行年卷期的專業(yè)化樹(shù)狀展示、對(duì)電子圖書進(jìn)行中圖分類法的目錄樹(shù)展示,同時(shí)還應(yīng)提供這些資源的模糊檢索、正則表達(dá)式等高級(jí)檢索功能,方便用戶定位資源。③為每個(gè)模塊添加資源編輯功能,授權(quán)用戶可以對(duì)資源進(jìn)行相關(guān)的操作。④為所有資源添加評(píng)價(jià)屬性。用戶可以評(píng)價(jià)資源、推薦資源,方便了資源的推廣,同時(shí)節(jié)省了用戶的時(shí)間。⑤在資源倉(cāng)庫(kù)模塊實(shí)現(xiàn)高級(jí)用戶的目錄樹(shù)編輯功能。用戶可以創(chuàng)建目錄樹(shù),定義資源類型。每個(gè)目錄樹(shù)后自動(dòng)生成RSS訂閱鏈接,方便信息資源的推送。⑥用戶收藏模塊實(shí)現(xiàn)了用戶站內(nèi)資源的收藏功能。用戶在觀看站內(nèi)的所有資源時(shí),資源的相關(guān)位置都有收藏按鈕,用戶點(diǎn)擊后可以直接將資源添加到自己的站內(nèi)收藏夾中。⑦權(quán)限管理模塊使系統(tǒng)實(shí)現(xiàn)了功能級(jí)權(quán)限管理與數(shù)據(jù)級(jí)權(quán)限管理。
5結(jié)論
文章首先闡述了電子資源管理系統(tǒng)主要需要實(shí)現(xiàn)的功能,隨后,結(jié)合系統(tǒng)中用到的ASP.NET MVC2.0框架對(duì)系統(tǒng)進(jìn)行了概述。與此同時(shí),文章還詳細(xì)分析了Model層中數(shù)據(jù)檢索、數(shù)據(jù)更新、數(shù)據(jù)刪除的基本功能。最后,文章從整體角度設(shè)計(jì)了Control層的調(diào)度,實(shí)現(xiàn)了圖書館電子資源管理系統(tǒng)的功能。
參考文獻(xiàn):
[1]李瑋,李利.Web搜索引擎與全文檢索技術(shù)[J].情報(bào)科學(xué),2003(5):558-560.
[2]Brian GoetzThe Lucene search engine: Powerful, flexible, and free [M ]. JavaWorld, 2010.
[3]鄭依華.搜索引擎也開(kāi)源[N].計(jì)算機(jī)世界報(bào),2006-12-04:B30-B31.
[4]涂新輝,何婷婷,羅景.一種全文檢索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005(17):55-57.
[5]彭波.大規(guī)模搜索引擎檢索系統(tǒng)框架與實(shí)現(xiàn)要點(diǎn)[J].計(jì)算機(jī)工程與科學(xué),2006(3):1-4.
(編校:馬懷云)
endprint