石文華
〔摘 要〕分析了高校圖書信息管理系統(tǒng)在圖書管理中的重要性,并簡要介紹了基于J2EE的B/S 結(jié)構(gòu)的特點(diǎn)及優(yōu)勢,重點(diǎn)論述了在此基礎(chǔ)上實(shí)現(xiàn)的圖書管理信息系統(tǒng)的體系結(jié)構(gòu)與功能,最后用實(shí)例說明了基于J2EE的圖書管理信息系統(tǒng)的實(shí)現(xiàn)過程。
〔關(guān)鍵詞〕J2EE;B/S;圖書管理信息系統(tǒng)
〔中圖分類號〕G251 〔文獻(xiàn)標(biāo)識碼〕B 〔文章編號〕1008-0821(2009)09-0137-03
The Building of Book Management Information
System in B/S Structure Based on J2EEShi Wenhua
(Information Center,Shandong Electric Power College,Jinan 250002,China)
〔Abstract〕The article analyzed the importance of the book management information system,gave the brief introduction of the feature and virtue of J2EE,emphasized on the introduction of the structure and function of the book MIS in B/S based on J2EE,at the end,gave an example to explain the realization of the book MIS.
〔Key words〕J2EE structure;B/S;Book MIS
目前使用計(jì)算機(jī)處理圖書信息已經(jīng)非常普及,但多數(shù)系統(tǒng)是基于C/S(Client/Server)模式的。隨著Internet/Intranet的快速發(fā)展及廣泛應(yīng)用,傳統(tǒng)的基于客戶機(jī)/服務(wù)器的計(jì)算方式已不適應(yīng)新的需求。主要表現(xiàn)為程序之間的關(guān)聯(lián)性很強(qiáng)[1],如果改動某一處則可能會影響到其他模塊的改動,因此程序難以維護(hù)。其次,單一的服務(wù)器在系統(tǒng)穩(wěn)定性和安全性方面存在隱患,而且在信息訪問高峰期系統(tǒng)效率較低,而安全性和穩(wěn)定性對于類似于圖書管理系統(tǒng)來說確是必須保證的。這些缺陷的存在主要是由于C/S模式客戶端的數(shù)量受到服務(wù)器處理能力的限制,系統(tǒng)的可擴(kuò)充性不好、系統(tǒng)維護(hù)代價(jià)高,當(dāng)商務(wù)邏輯層變化時(shí),需要同時(shí)更新客戶端和服務(wù)器端的內(nèi)容等多個(gè)方面原因所造成的影響,而J2EE架構(gòu)的出現(xiàn)解決了這一問題。J2EE架構(gòu)是為適合Internet上的Web計(jì)算特點(diǎn)而產(chǎn)生和發(fā)展的,與傳統(tǒng)的客戶機(jī)/服務(wù)器計(jì)算模型相比,J2EE架構(gòu)采用組件的思想,將商務(wù)邏輯從客戶端、服務(wù)器端中獨(dú)立出來,更適應(yīng)于日益復(fù)雜化和日益變化的商務(wù)邏輯的需要,從而使開發(fā)、維護(hù)和使用時(shí)更加方便。分布式和可移植性更強(qiáng)。系統(tǒng)的客戶端可以是基于瀏覽器的,也可以是基于用各種編程語言開發(fā)的各種應(yīng)用程序。J2EE平臺上的多層應(yīng)用使高重用性、高安全性、高可靠性和可移植性得到實(shí)現(xiàn)。因此基于J2EE平臺開發(fā)基于B/S模式的MIS(管理信息系統(tǒng))系統(tǒng)是一個(gè)發(fā)展趨勢。
具體到圖書管理信息系統(tǒng)軟件體系結(jié)構(gòu)的設(shè)計(jì),主要考慮了以下幾方面的因素:(1)圖書管理信息系統(tǒng)的用戶主要是教師和學(xué)生,為了使他們可以在不同的地點(diǎn)、不同的時(shí)間、不同的系統(tǒng)環(huán)境下訪問該系統(tǒng),系統(tǒng)的跨平臺運(yùn)行特性是必須要考慮的因素。(2)系統(tǒng)提供的大部分操作都涉及到與用戶動態(tài)地進(jìn)行信息交互,因此要求系統(tǒng)能夠?qū)崿F(xiàn)數(shù)據(jù)的動態(tài)發(fā)布功能。(3)圖書管理信息系統(tǒng)的運(yùn)行需要后臺數(shù)據(jù)庫提供數(shù)據(jù)管理和控制服務(wù)。綜合以上考慮和J2EE構(gòu)架的特點(diǎn),該系統(tǒng)采用J2EE結(jié)構(gòu)作為系統(tǒng)體系結(jié)構(gòu)的技術(shù)開發(fā)平臺。
1 J2EE體系結(jié)構(gòu)及其優(yōu)勢
J2EE(Java2 Platform Enterprise Edition)是由SUN公司引導(dǎo),各廠商共同發(fā)起的,并得到廣泛認(rèn)可的工業(yè)標(biāo)準(zhǔn),是一種利用Java2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。
J2EE體系結(jié)構(gòu)定義了3個(gè)層次,分別為客戶層、中間層和資源層[1-4]。客戶層又稱為客戶表示層,在系統(tǒng)中具體表現(xiàn)為瀏覽器等,是整個(gè)應(yīng)用系統(tǒng)的用戶接口部分,擔(dān)負(fù)著用戶與應(yīng)用間的對話功能,主要用于檢查用戶從鍵盤等輸入設(shè)備輸入的資料,可通過HTML等顯示用戶請求的信息。客戶層可以使用不同的客戶端程序,具有很好的分布性,適應(yīng)分布管理的要求。中間層,又稱為中間邏輯層,包括WEB層(Presentation Logic表示邏輯)和EJB層(Business Logic商務(wù)邏輯),該層可以由多個(gè)子層組成,WEB層通過WEB容器與客戶層進(jìn)行交流,主要的商務(wù)邏輯的處理則放到EJB層;WEB層的JSP組件作為EJB層的Enterprise Java Beans組件的客戶端。EJB對數(shù)據(jù)庫的訪問通過JDBC來實(shí)現(xiàn)。資源層,又稱為數(shù)據(jù)邏輯層,在系統(tǒng)中就是數(shù)據(jù)庫管理系統(tǒng),可由多個(gè)數(shù)據(jù)庫系統(tǒng)組成,主要負(fù)責(zé)管理對數(shù)據(jù)庫資料的讀寫。
J2EE是一個(gè)標(biāo)準(zhǔn)的體系結(jié)構(gòu),特別面向使用Java程序設(shè)計(jì)語言進(jìn)行基于Web的企業(yè)應(yīng)用的開發(fā)和部署。其核心為Java平臺或Java2平臺的標(biāo)準(zhǔn)板。同其他開發(fā)平臺相比所有的企業(yè)邏輯和服務(wù)都封裝在可重用和可移植的EJB組件中,版本更新變得簡單,只需要在服務(wù)器端進(jìn)行,而客戶端無需任何修改,具有系統(tǒng)可維護(hù)性和可重用性好的特點(diǎn),又由于其能夠通過WEB服務(wù)可以使用標(biāo)準(zhǔn)的方法將功能和數(shù)據(jù)暴露出來,供其他程序使用,有利于應(yīng)用系統(tǒng)的集成。此外,J2EE架構(gòu)把一些通用的、很繁瑣的服務(wù)端任務(wù)交給中間件去完成,無需考慮數(shù)據(jù),使開發(fā)人員可以把精力集中在如何創(chuàng)建業(yè)務(wù)邏輯上,節(jié)省了開發(fā)時(shí)間。
2 圖書管理信息系統(tǒng)結(jié)構(gòu)
2.1 圖書管理信息系統(tǒng)功能模塊分析
根據(jù)高校圖書信息管理的工作實(shí)際,對常規(guī)的圖書信息管理的內(nèi)容進(jìn)行分類總結(jié),確定了圖書管理信息系統(tǒng)組成的四大模塊,即:圖書信息模塊、圖書借閱統(tǒng)計(jì)管理模塊、教職工/學(xué)生信息管理模塊和系統(tǒng)管理模塊。其主要系統(tǒng)功能分析如表1所示。
3.2 基于J2EE平臺的圖書管理信息系統(tǒng)架構(gòu)分析
圖書信息管理系統(tǒng)符合J2EE架構(gòu),分為客戶層、表示邏輯層、商務(wù)邏輯層和數(shù)據(jù)庫層。其結(jié)構(gòu)流程如圖1所示。
3.3 系統(tǒng)開發(fā)過程
下面以圖書管理信息系統(tǒng)中學(xué)生信息查詢的實(shí)例說明開發(fā)的基本過程[3]。
客戶層:客戶端可以為任何瀏覽器頁面或java應(yīng)用程序,該系統(tǒng)中假定為瀏覽器頁面student.html,該頁面中包含各種查詢條件控件,如學(xué)生姓名文本框、學(xué)生性別單選框、學(xué)生班級列表框等,當(dāng)用戶輸入查詢條件,并單擊“查詢”按鈕時(shí),則觸發(fā)JavaScript事件Query,該事件將根據(jù)輸入的數(shù)據(jù)構(gòu)造一個(gè)XML數(shù)據(jù),例如,一個(gè)按學(xué)生姓名“李明”查找該學(xué)生入學(xué)基本信息的XML數(shù)據(jù):<信息查詢>
<查詢類型>姓名查詢類型
<信息類型>入學(xué)信息信息類型
<查詢關(guān)鍵字>李明查詢關(guān)鍵字
信息查詢
上述XML數(shù)據(jù)由JavaScript事件發(fā)送到Web服務(wù)器。
中間層:Web服務(wù)器中的主控制器Main Controller是一個(gè)Servlet??蛻舳说乃姓埱蠖家l(fā)送到作為主控制器的servlet,由它負(fù)責(zé)解析并將客戶端的請求轉(zhuǎn)發(fā)到負(fù)責(zé)相應(yīng)模塊的Servlet或JSP。例如,當(dāng)主控制器接受到上述的XML數(shù)據(jù)后,由相應(yīng)模塊解析,根據(jù)XML的根元素是“信息查詢”將請求轉(zhuǎn)發(fā)到信息查詢模塊,如StudentQuery,StudentQuery也是一個(gè)Servlet,它分析主控制器傳入的XML數(shù)據(jù)后,決定應(yīng)該使用商務(wù)邏輯層中EJB的哪個(gè)方法來查詢數(shù)據(jù)。EJB層用于處理信息查詢這個(gè)業(yè)務(wù)的會話Bean,假定為QuerySessionBean,這里由于查詢到數(shù)據(jù)后就返回給客戶端,不需要保持會話狀態(tài),所以是一個(gè)無狀態(tài)的會話Bean。其中分別提供了按姓名QueryByName(Stringname)、班級QueryByClass(Stringclass)、專業(yè)QueryBySpeciality(Stringspeciality)等查詢的方法,通過執(zhí)行程序,利用JDBC提供的標(biāo)準(zhǔn)API對數(shù)據(jù)庫進(jìn)行訪問和相應(yīng)的操作處理。
該例中,StudentQuery根據(jù)XML的數(shù)據(jù),通過QuerySessionBean的本地接口獲得一個(gè)QuerySessionBean的遠(yuǎn)程接口對象,并用這個(gè)遠(yuǎn)程接口對象調(diào)用QuerySessionBean的QueryByName(“李明”)方法,獲得姓名為“李明”的符合查詢條件的結(jié)果。StudentQuery將查詢的結(jié)果重新構(gòu)造一個(gè)XML數(shù)據(jù)以返回到提出請求的客戶端。
客戶端的StudentQuery.html頁面接受到上面的XML數(shù)據(jù)響應(yīng)后,使用XML解析器解析XML數(shù)據(jù)后顯示給用戶。
若客戶端使用其它應(yīng)用程序,只需將應(yīng)用程序中加入解析XML的程序模塊即可,無須對系統(tǒng)進(jìn)行較大改動,充分體現(xiàn)了J2EE的優(yōu)勢。
3 結(jié)束語
本文在分析J2EE架構(gòu)及優(yōu)點(diǎn)的基礎(chǔ)上介紹了基于J2EE的圖書管理信息系統(tǒng)的總體設(shè)計(jì)思路和初步實(shí)現(xiàn)。該系統(tǒng)充分利用了J2EE標(biāo)準(zhǔn)構(gòu)架的特點(diǎn)與優(yōu)點(diǎn),功能齊全,操作方便,投入運(yùn)行以來,性能穩(wěn)定可靠,提高了圖書管理部門工作效率,順應(yīng)了教師和學(xué)生對圖書信息電子化和部分信息有限度地公開化查詢的要求,具有一定的經(jīng)濟(jì)效益和社會效益,有一定的推廣價(jià)值。
參考文獻(xiàn)
[1]蔡明,陳永運(yùn).J2EE架構(gòu)的研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,21(1).
[2]楊綺,陳偉.基于J2EE的體育管理信息系統(tǒng)研究[J].湖北體育科技,2003,22(4):489-491.
[3]馬仁配.J2EE平臺在圖書館系統(tǒng)中的應(yīng)用[J].現(xiàn)代圖書情報(bào)技術(shù),2003,(4):29-32.
[4]董宛,武強(qiáng).基于J2EE結(jié)構(gòu)的教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2003,(25):229-232.