任濤
(西安外事學(xué)院陜西西安710077)
隨著科技的進(jìn)步人類生活越來越快捷,信息化建設(shè)得到了快速發(fā)展。而高校圖書館由于具有信息復(fù)雜且數(shù)量龐大的特點(diǎn),使其成為信息化建設(shè)中較為引人注目的建設(shè)目標(biāo)。而圖書館管理系統(tǒng)不僅需要幫助工作人員完成日常的維護(hù)和服務(wù),且還需要為讀者提供圖書館各類信息,如館藏圖書的查詢與借閱。因此,圖書館管理系統(tǒng)的開發(fā)設(shè)計(jì)復(fù)雜且具有挑戰(zhàn)性。
回顧圖書館管理系統(tǒng)的發(fā)展歷程,該系統(tǒng)最開始僅為單機(jī)版。而隨著計(jì)算機(jī)技術(shù)的發(fā)展和信息時(shí)代的到來,開始使用C/S模式來架構(gòu)圖書館管理系統(tǒng)。在上世紀(jì)九十年代,該模式下的管理系統(tǒng)發(fā)展成為主流[1]。隨后具備分布式訪問、可擴(kuò)展性和開放性等優(yōu)點(diǎn),基于Web的B/S模式為圖書館系統(tǒng)的開發(fā)與發(fā)展提供了一個(gè)新的機(jī)遇[2-4]。EX LIBRIS公司、INNOVATIVE公司、SIRSI公司均相繼開發(fā)出了此類圖書館管理系統(tǒng)。
J2EE平臺(tái)包括了通信類程序、組件類程序以及服務(wù)類程序[5],且擁有3類可以研發(fā)應(yīng)用程序組件的技術(shù):服務(wù)器端小程序(Servlet)、JSP( JavaServer Pages)、EJB( Enterprise JavaBean)[6-10]。
而J2EE規(guī)范定義的5個(gè)組件模型如下:
EJB應(yīng)用程序服務(wù)器:JB組件是設(shè)計(jì)開發(fā)者們針對(duì)特定應(yīng)用程序而開發(fā)的組件,且其具體的操作需要在對(duì)應(yīng)應(yīng)用容器的操作環(huán)境中進(jìn)行。第三方不僅需要為JB組件提供相應(yīng)的容器環(huán)境,且還需要提供伸縮應(yīng)用程序[11-12]。
Web應(yīng)用程序服務(wù)器:Web組件是在Web服務(wù)器收到請(qǐng)求之后的處理程序,對(duì)應(yīng)收到的請(qǐng)求指令產(chǎn)生Web響應(yīng)。其包括Java Servlet和JSP兩類。HTTP和Web服務(wù)之類的標(biāo)準(zhǔn)通信協(xié)議,可以向客戶端提Web組件[13]。
小程序客戶機(jī):小程序是一類Java應(yīng)用程序,其在容器環(huán)境中的放置工作也有較為詳細(xì)的規(guī)范,而這些規(guī)范則是由J2EE擬定[14-16]。
資源適配器:資源適配器是一種資源管理器,起連接資源的作用。其在具體部署過程中,是與相關(guān)組件被一并放置到相應(yīng)的容器中。
應(yīng)用程序客戶機(jī):是起到與客戶交互作用的,可以為用戶提供交互界面,一般以Java為基礎(chǔ)。
為滿足用戶需求,本文架構(gòu)一種標(biāo)準(zhǔn)的、開放的系統(tǒng)。

圖1 系統(tǒng)架構(gòu)示意圖
如圖1所示,架構(gòu)一個(gè)整體系統(tǒng)不僅要考慮到系統(tǒng)的各個(gè)需求及設(shè)計(jì)目標(biāo)。還要考慮到系統(tǒng)各部分之間的關(guān)系及系統(tǒng)設(shè)計(jì)的成本、復(fù)雜度、可操作性等一系列問題或影響因素。
總體而言,以J2EE為基礎(chǔ)的網(wǎng)絡(luò)應(yīng)用程序需要提供請(qǐng)求的獲取、邏輯的執(zhí)行、網(wǎng)頁的選擇及生成這4個(gè)網(wǎng)絡(luò)服務(wù)階段。系統(tǒng)網(wǎng)結(jié)構(gòu)包括了整個(gè)系統(tǒng)需要的所有部分與組件的協(xié)同工作,其包括了應(yīng)用服務(wù)器及數(shù)據(jù)庫服務(wù)器等5個(gè)部分。
眾所周知,傳統(tǒng)的圖書館信息化建設(shè)僅針對(duì)單個(gè)圖書館。即所有的信息資源均為單個(gè)圖書館所有,不能實(shí)現(xiàn)資源共享。而當(dāng)前信息共享與交換是大勢(shì)所趨,且能將圖書館所蘊(yùn)含的信息發(fā)揮到最大化。因此,本文設(shè)計(jì)開發(fā)的圖書館管理系統(tǒng)是基于圖書館群為背景,要實(shí)現(xiàn)數(shù)字信息的一體化。

圖2 一塊區(qū)域圖書館分布示意圖

圖3 區(qū)域圖書館聯(lián)合分布示意圖
如圖所示,不同的字母A,B,C,D,E,F(xiàn),G代表的是一塊區(qū)域的不同圖書館。傳統(tǒng)的圖書館之間是分離的,如圖2所示。圖書館之間的資源無法共享,讀者無法同時(shí)從不同的圖書館獲得信息。而本文所設(shè)計(jì)的系統(tǒng)要打破傳統(tǒng),如圖3所示。建立起圖書館之間的聯(lián)系,實(shí)現(xiàn)資源信息的共享,讓讀者能夠同時(shí)獲取更多的信息。
在整個(gè)圖書館系統(tǒng)中包括有流通、編目、采訪、典藏、期刊、推薦等6個(gè)部分(即6個(gè)子系統(tǒng))。圖4為該系統(tǒng)的功能模塊下書籍流通的流程示意圖,由圖4可以看出,圖書館書籍流通過程較為繁瑣,需要對(duì)書籍的收入及借閱進(jìn)行數(shù)據(jù)記錄并且還要對(duì)書籍進(jìn)行日常維護(hù),因此本文所設(shè)計(jì)的系統(tǒng)需要對(duì)圖書館的基礎(chǔ)功能進(jìn)行詳細(xì)分析與建模,并設(shè)計(jì)到該系統(tǒng)中,以滿足圖書館基本的功能性需求。

圖4 書籍流通過程示意圖
以J2EE為基礎(chǔ)的系統(tǒng)是屬于多層體系結(jié)構(gòu)的。其包括了客戶端層、Web表現(xiàn)層、商業(yè)邏輯層及企業(yè)信息系統(tǒng)層等部分,采用多層體系結(jié)構(gòu)是為了使得該系統(tǒng)結(jié)構(gòu)清晰,方便后續(xù)系統(tǒng)的管理與維護(hù)工作。
如圖5所示,本文所設(shè)計(jì)的圖書館管理系統(tǒng)選擇MVC作為整體的系統(tǒng)架構(gòu)。表現(xiàn)層、邏輯層、持久化層分別采用的是Struts Web Framework技術(shù)、Enterprise Session Bean技術(shù)和Hibernate技術(shù)。

圖5 MVC系統(tǒng)構(gòu)架示意圖
在圖書館管理系統(tǒng)中,數(shù)據(jù)倉庫內(nèi)的信息龐大而復(fù)雜,如圖書的類目信息、讀者信息、書籍借閱信息等。所以在圖書館管理系統(tǒng)中如何管理數(shù)據(jù)倉庫中的各類信息,并如何調(diào)動(dòng)使用則顯得尤為重要。
圖書館系統(tǒng)的電子數(shù)據(jù)庫支持圖像的輸入和輸出,動(dòng)態(tài)瀏覽/導(dǎo)航能力,安全機(jī)制,分布式圖像管理與倉庫管理等等系統(tǒng)功能。也就是說,本文所開發(fā)的圖書館管理系統(tǒng)中的數(shù)據(jù)庫對(duì)應(yīng)各個(gè)圖書館詳細(xì)地各類數(shù)據(jù)信息,且允許可訪問用戶進(jìn)行查詢?cè)L問操作。
較為為重要的是,該系統(tǒng)的數(shù)據(jù)庫管理著該圖書館系統(tǒng)的電子文檔。電子文檔存儲(chǔ)來自Web端用戶與數(shù)據(jù)庫產(chǎn)生的數(shù)據(jù)圖像等,并在數(shù)據(jù)庫與客戶端之間進(jìn)行流通,傳遞以及存儲(chǔ)信息。
眾所周知,MVC框架結(jié)構(gòu)是信息系統(tǒng)技術(shù)中常用的框架結(jié)構(gòu),該框架結(jié)構(gòu)具有以下優(yōu)點(diǎn):
1)耦合性低
視圖層和業(yè)務(wù)層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需要改動(dòng)MVC的模型層即可。因?yàn)槟P团c控制器和視圖相分離,所以很容易改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。
2)重用性高
隨著技術(shù)的不斷進(jìn)步,需要用越來越多的方式來訪問應(yīng)用程序。MVC模式允許使用各種不同樣式的視圖來訪問同一個(gè)服務(wù)器端的代碼,因?yàn)槎鄠€(gè)視圖能共享一個(gè)模型,它包括任何WEB(HTTP)瀏覽器或者無線瀏覽器(wap),比如,用戶可以通過電腦也可通過手機(jī)來訂購某樣產(chǎn)品,雖然訂購的方式不一樣,但處理訂購產(chǎn)品的方式是一樣的。由于模型返回的數(shù)據(jù)沒有進(jìn)行格式化,所以同樣的構(gòu)件能被不同的界面使用。
MVC使開發(fā)和維護(hù)用戶接口的技術(shù)含量降低。
3)部署快
使用MVC模式使開發(fā)時(shí)間得到相當(dāng)大的縮減,它使程序員(Java開發(fā)人員)集中精力于業(yè)務(wù)邏輯,界面程序員(HTML和JSP開發(fā)人員)集中精力于表現(xiàn)形式上。
4)可維護(hù)性高
分離視圖層和業(yè)務(wù)邏輯層也使得WEB應(yīng)用更易于維護(hù)和修改。
5)有利軟件工程化管理
由于不同的層各司其職,每一層不同的應(yīng)用具有某些相同的特征,有利于通過工程化、工具化管理程序代碼。控制器也提供了一個(gè)好處,就是可以使用控制器來聯(lián)接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構(gòu)造應(yīng)用程序提供強(qiáng)有力的手段。給定一些可重用的模型和視圖,控制器可以根據(jù)用戶的需求選擇模型進(jìn)行處理,然后選擇視圖將處理結(jié)果顯示給用戶。
基于上述優(yōu)點(diǎn),本文所設(shè)計(jì)的圖書館管理系統(tǒng)就是選擇MVC作為整體的系統(tǒng)架構(gòu),如圖6所示,整體的技術(shù)框架又包括基礎(chǔ)模塊spring和功能模塊兩部分。

圖6 系統(tǒng)的整體技術(shù)框架圖
篇幅有限,本文以流通模塊中的讀者書籍借閱以及歸還過程為例介紹流通模塊的建模設(shè)計(jì)過程。
如圖7所示,讀者進(jìn)入借閱書籍的操作頁面,首先系統(tǒng)讀入讀者的證件信息,根據(jù)讀者是否為是該圖書館讀者,是,則可進(jìn)行下一步借閱,不是該圖書館讀者則需要驗(yàn)證是否可跨館借閱,再進(jìn)行下面操作。借閱書籍有3種借書途徑,普通借閱,計(jì)費(fèi)租借,還有定時(shí)借還。讀者選擇3種之一進(jìn)行借書,并遵循規(guī)則歸還書籍。

圖7 書籍借閱操作頁面示意圖
借書的后臺(tái)管理功能主要包括3部分:
1)在頁面顯示讀者和相應(yīng)書籍的信息。
2)在操作頁面顯示讀者的借書處理結(jié)果,成功或者失敗。
3)在操作頁面顯示讀者所有的書籍借閱信息,讀者在借閱操作過程中可以核對(duì)翻閱。

圖8 歸還書籍操作頁面示意圖
如圖8所示,讀者進(jìn)入還書操作頁面,系統(tǒng)讀入讀者的證件信息,歸還書籍時(shí)讀入書籍條形碼進(jìn)行還書,然后進(jìn)行下一本書籍歸還,以此類推。如果到達(dá)借閱日期,而讀者想繼續(xù)借閱,則可以按照以證續(xù)借和按書續(xù)借兩種方式進(jìn)行續(xù)借操作,屆時(shí)可以再歸還書籍。
軟件測(cè)試方法一般有兩種,黑盒測(cè)試法和白盒測(cè)試法。
如圖9所示,文中以書籍借閱為例進(jìn)行操作測(cè)試闡述。首先建立多個(gè)本館圖書館賬號(hào)和外館賬號(hào),進(jìn)入借閱書籍操作頁面進(jìn)行借閱書籍操作。按照操作頁面提示進(jìn)行操作,讀入讀者信息和借閱書籍的信息,選擇借閱方式進(jìn)行借閱。通過多個(gè)賬號(hào)多種借閱方式的操作測(cè)試,沒有出現(xiàn)錯(cuò)誤及卡頓現(xiàn)象,功能穩(wěn)定且能正常使用。

圖9 書籍借閱測(cè)試頁面
文中通過建立多個(gè)圖書館賬號(hào)進(jìn)行具體的操作測(cè)試,并分別對(duì)系統(tǒng)的功能模塊進(jìn)行了多次檢驗(yàn),以保證測(cè)試結(jié)果的可靠性。如圖10所示,通過9項(xiàng)步驟進(jìn)行多次測(cè)試,測(cè)試結(jié)果均顯示通過。因此通過測(cè)試結(jié)果分析,本文所設(shè)計(jì)的圖書館管理系統(tǒng)性能穩(wěn)定,可以投入使用。

圖10 測(cè)試結(jié)果示意圖
文中從圖書館管理系統(tǒng)的需求出發(fā),通過對(duì)分布式圖書館的建模分析,開發(fā)并設(shè)計(jì)了基于J2EE的圖書館管理系統(tǒng)。從而實(shí)現(xiàn)了各個(gè)模塊的功能性要求以及區(qū)域圖書館群一體化的數(shù)字化建設(shè)。經(jīng)過測(cè)試表明,該系統(tǒng)性能穩(wěn)定。文中的設(shè)計(jì)對(duì)未來圖書館管理系統(tǒng)的進(jìn)一步發(fā)展,有重要的參考意義。