劉秋梅 鄭耿忠
(1.韓山師范學(xué)院圖書館;2.韓山師范學(xué)院數(shù)學(xué)與信息技術(shù)系,廣東 潮州 521041)
隨著數(shù)字圖書館的不斷發(fā)展,虛擬參考咨詢平臺的重要性已日漸顯現(xiàn),如何構(gòu)建一個與數(shù)字圖書館相適應(yīng)的數(shù)字參考咨詢平臺已成為數(shù)字圖書館建設(shè)中迫切需要解決的重要課題。以國內(nèi)比較著名的數(shù)字參考咨詢系統(tǒng)CVRS為例,“CALIS分布式聯(lián)合虛擬參考咨詢系統(tǒng)(CVRS)”是CALIS重點建設(shè)子項目之一,由上海交通大學(xué)圖書館承建。CALIS分布式聯(lián)合虛擬參考咨詢系統(tǒng)(CVRS)是一個兩級分布式架構(gòu)體系,除了分中心級的CVRS服務(wù)網(wǎng)站外,還包括各成員館(參建館)級的本地咨詢系統(tǒng)。其建設(shè)目標(biāo)是構(gòu)建一個由中心咨詢系統(tǒng)和若干個本地咨詢系統(tǒng)組成的、集各種實時和非實時先進交互技術(shù)于一體的中國高等教育分布式聯(lián)合虛擬參考咨詢平臺,為實現(xiàn)7×24的理想服務(wù)模式提供技術(shù)支持;建設(shè)由各成員館共建共享的知識庫、學(xué)習(xí)中心;建立由多館參加的、具有實際服務(wù)能力的、可持續(xù)發(fā)展的分布式聯(lián)合虛擬參考咨詢服務(wù)體系[1]。從CVRS的建設(shè)目標(biāo)我們可以看到,作為數(shù)字圖書館建設(shè)的重要組成部分,分布式聯(lián)合虛擬參考咨詢平臺以其開放性、靈活性、交互性、分散性和實時性等特點,決定了其開發(fā)的復(fù)雜性。而J2EE所定義的開放式多層體系結(jié)構(gòu)能為我們開發(fā)開放的、靈活的、交互的、分布式和實時性的數(shù)字參考咨詢平臺提供思想和技術(shù)支持,利用J2EE不僅使數(shù)字參考咨詢平臺易于開發(fā),而且使得開發(fā)出的平臺易于擴充、集成和實現(xiàn)復(fù)雜的交互操作。將J2EE技術(shù)及其多層體系結(jié)構(gòu)的思想恰當(dāng)?shù)剡\用于與之相適應(yīng)的數(shù)字參考咨詢中,能夠很好地推動分布式聯(lián)合虛擬參考咨詢的快速發(fā)展。
J2EE(Java2 Platform Enterprise Edition)是由Sun公司推出的一種全新概念的模型,J2EE是一個軟件框架,如圖1所示,它提供了多層的分布式應(yīng)用模型、組件重用、一致化的安全模型和靈活的事務(wù)控制及對大量中間件技術(shù)的支持,不僅在相當(dāng)程度上減輕了開發(fā)工作,使開發(fā)者可以更快地向市場推出創(chuàng)造性的客戶解決方案,而且方案是獨立于平臺的,不會被束縛在任何一個廠商的產(chǎn)品和API上。J2EE體系的出現(xiàn),方便了分布式應(yīng)用的開發(fā),對于傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用程序模型有著不可比擬的優(yōu)勢??梢哉fJ2EE是實現(xiàn)跨平臺、跨操作系統(tǒng)、跨語言、跨協(xié)議和跨版本分布式聯(lián)合數(shù)字參考咨詢平臺的一個很好的技術(shù)解決方案。
數(shù)字參考咨詢的不斷發(fā)展給人們帶來了一種全新的服務(wù)模式,分布式聯(lián)合數(shù)字參考咨詢平臺是一種面向較廣區(qū)域的用戶群信息服務(wù)平臺。它能夠提供給不同區(qū)域的用戶方便的訪問以及豐富的信息。用戶能夠在一個盡可能大的系統(tǒng)服務(wù)區(qū)域內(nèi),方便地接入系統(tǒng),獲得相應(yīng)的服務(wù)內(nèi)容。同時,系統(tǒng)能夠很好地適應(yīng)分布性用戶帶來的經(jīng)常變化的系統(tǒng)業(yè)務(wù)負荷。由于咨詢內(nèi)容的直觀性與復(fù)雜性,盡可能多的服務(wù)內(nèi)容與信息種類也是分布式聯(lián)合數(shù)字參考咨詢平臺的建設(shè)要求之一。
圖2是一種基于多層架構(gòu)的分布式數(shù)字參考咨詢平臺的體系結(jié)構(gòu)。在這一架構(gòu)中,知識庫、管理信息庫均以數(shù)據(jù)庫形式進行存儲管理。
由于答疑專家、咨詢者和知識庫分別存在于不同的、分散的地方(如CVRS),以至咨詢和答疑可以發(fā)生在不同的時間和不同的地點,因此從本質(zhì)上講分布式聯(lián)合數(shù)字參考咨詢平臺是一種分布式數(shù)據(jù)庫資源的整合平臺。
通過前面對J2EE體系結(jié)構(gòu)及分布式聯(lián)合數(shù)字參考咨詢平臺結(jié)構(gòu)的分析可以看出,J2EE體系架構(gòu)實際上是一個多層結(jié)構(gòu)的分布式系統(tǒng)。因此,如果在構(gòu)建分布式聯(lián)合數(shù)字參考咨詢平臺時采用J2EE多層結(jié)構(gòu)的形式,可以很好地將用戶界面、業(yè)務(wù)邏輯、數(shù)據(jù)分開。通過表示層提供用戶與系統(tǒng)的友好訪問,業(yè)務(wù)層提供業(yè)務(wù)邏輯實現(xiàn),數(shù)據(jù)庫層實現(xiàn)數(shù)據(jù)信息的存儲、訪問及優(yōu)化。這樣可大大降低客戶端負擔(dān),也就是我們所說的瘦客戶結(jié)構(gòu)。這種結(jié)構(gòu)具有靈活的硬件系統(tǒng)構(gòu)成及更好的支持分布式計算環(huán)境,提供程序可維護性,容易進行嚴密的安全管理,系統(tǒng)管理簡單,可支持異種數(shù)據(jù)庫,具有很高的可用性。根據(jù)J2EE多層體系結(jié)構(gòu),結(jié)合圖2所示數(shù)字參考咨詢平臺結(jié)構(gòu),構(gòu)建出如圖3所示的基于J2EE的分布式聯(lián)合數(shù)字參考咨詢平臺。
基于J2EE結(jié)構(gòu)的分布式聯(lián)合數(shù)字參考咨詢平臺主要包括客戶層、表示層、業(yè)務(wù)層(EJB層)和數(shù)據(jù)庫層4個部分。
客戶層既可以是一個Web客戶端,也可以是一個應(yīng)用程序客戶端。Web客戶端主要由運行在Web層的動態(tài)Web頁面和接受顯示服務(wù)器傳送來的Web頁面組成。Web客戶端一般不進行數(shù)據(jù)庫查詢、連接傳統(tǒng)應(yīng)用程序等操作,這些操作一般由J2EE服務(wù)器執(zhí)行,從而充分發(fā)揮J2EE服務(wù)器采用的相關(guān)技術(shù)在安全性、速度、耐用性和可靠性方面的優(yōu)勢。J2EE應(yīng)用程序客戶端運行在客戶端機器上,從而可以獲得比Web頁面更豐富的用戶界面,它可以直接訪問運行在中間層的EJB容器完成相應(yīng)的用戶任務(wù)。在數(shù)字參考咨詢系統(tǒng)中,客戶端層提交問題檢索請求,在客戶端顯示檢索結(jié)果,以及構(gòu)造交互界面,即瀏覽器中的HTML頁面。
表示層Web層通常運行在一個集中的服務(wù)器上,該層上的服務(wù)器可同時給不同的客戶端發(fā)送內(nèi)容。在Web層采用的J2EE技術(shù)主要有JSP、Servlet和JavaBean。JSP可以很方便地把動態(tài)和靜態(tài)內(nèi)容分開。組成JSP靜態(tài)內(nèi)容的是標(biāo)準的HTML或XML格式的文本。組成JSP動態(tài)內(nèi)容的是由嵌入的Java語言、各種標(biāo)簽及JSP系統(tǒng)變量組成。Servlet是運行在服務(wù)器端且與協(xié)議無關(guān)的服務(wù)器組件。使用Servlet比傳統(tǒng)的CGI具有工作效率高、使用方便、功能強大以及安全性好等優(yōu)點。JavaBeans也是一種Java類,它通過封裝屬性和方法成為具有某種功能或者處理某個業(yè)務(wù)的對象。在JSP中可以通過使用useBean標(biāo)簽調(diào)用JavaBeans,然后可以訪問其中的屬性方法。在分布式聯(lián)合數(shù)字參考咨詢平臺中,Web層響應(yīng)客戶端請求,構(gòu)造咨詢輸入界面和咨詢結(jié)果界面,返回給用戶端,即服務(wù)器端的JSP和Servlet,負責(zé)與業(yè)務(wù)層的業(yè)務(wù)組件交互。
業(yè)務(wù)邏輯層通常當(dāng)Web服務(wù)器需要進行特定的操作時才開始發(fā)揮作用,這些操作應(yīng)用業(yè)務(wù)邏輯管理在線的交易或服務(wù)。在業(yè)務(wù)邏輯層中的事務(wù)管理確保這些操作的一致性和數(shù)據(jù)的完整性。業(yè)務(wù)層實現(xiàn)數(shù)字參考咨詢平臺的核心業(yè)務(wù),包括檢索和索引,訪問數(shù)據(jù)庫和索引文件,以及提供訪問這些核心業(yè)務(wù)的接口,即服務(wù)器端的EJB組件。
數(shù)據(jù)庫層提供了對組織數(shù)據(jù)的基本的存儲和訪問。在本系統(tǒng)中,將采用SQL Server2000作后臺數(shù)據(jù)庫服務(wù)。
3.2.1 表示層的設(shè)計及實現(xiàn)
數(shù)字參考咨詢平臺的表示層工作在Tomcat的Web服務(wù)器中,由請求控制器、服務(wù)管理器、請求處理模塊、頁面選擇模塊和數(shù)據(jù)模型組成,如圖4所示。請求控制器是整個系統(tǒng)的唯一入口,所有請求必須通過該組件。它統(tǒng)一并簡化了用戶的請求。系統(tǒng)的所有請求被配置在一個XML格式文件中,它是請求命令和處理事件及響應(yīng)頁面的映射,增加請求時,只需在配置文件中增加一個這樣的映射即可。
請求控制器接收到用戶請求后,解析出請求中攜帶的參數(shù),把參數(shù)封裝在一個數(shù)據(jù)結(jié)構(gòu)中,從請求配置文件中取出請求所需服務(wù),進行安全邏輯檢查,如果通過,就把封裝后的數(shù)據(jù)結(jié)構(gòu)傳遞到請求處理器。請求處理器處理結(jié)束后,返回相應(yīng)的數(shù)據(jù)給控制器,控制器將處理結(jié)果傳遞給頁面選擇器,頁面管理器根據(jù)先前配置文件的配置,選擇適當(dāng)?shù)捻撁娼o用戶。
3.2.2 業(yè)務(wù)層的設(shè)計及實現(xiàn)
系統(tǒng)的業(yè)務(wù)邏輯由業(yè)務(wù)層來實現(xiàn),這一層是由業(yè)務(wù)管理器、服務(wù)定位器、EJB和數(shù)據(jù)訪問對象組成,如圖5所示。業(yè)務(wù)管理器接收來自業(yè)務(wù)層接口轉(zhuǎn)換的請求,然后調(diào)用相應(yīng)的EJB來完成具體的業(yè)務(wù),當(dāng)需要數(shù)據(jù)庫操作時,這些EJB調(diào)用數(shù)據(jù)訪問對象對數(shù)據(jù)庫進行操作,數(shù)據(jù)庫返回的記錄通過統(tǒng)一數(shù)據(jù)接口封裝到數(shù)據(jù)模型中,然后返回。業(yè)務(wù)層工作在We-bLogic的應(yīng)用服務(wù)器中。
業(yè)務(wù)層需要向表示層提供數(shù)據(jù),而對業(yè)務(wù)對象每個方法的調(diào)用一般都是遠程的。因此,客戶端通過調(diào)用業(yè)務(wù)對象的get方法獲取一個屬性值,如果要獲得多個屬性值,這種操作的數(shù)量必然增加,也必然增加網(wǎng)絡(luò)的負擔(dān),影響系統(tǒng)的性能。因此,采用數(shù)據(jù)模型來封裝業(yè)務(wù)數(shù)據(jù)。當(dāng)客戶端向EJB請求業(yè)務(wù)數(shù)據(jù)時,客戶端可以對EJB做單個遠程方法調(diào)用來請求值對象,而不必啟動多個遠程調(diào)用來獲取單個屬性值。然后EJB構(gòu)造一個新的值對象實例,把檢索的值拷貝到該對象,并且該值對象的訪問方法從該值對象中獲取單個屬性值。值對象是由可串行化的Java對象來實現(xiàn)的。EJB將處理之后產(chǎn)生的數(shù)據(jù)放入數(shù)據(jù)模型中返回后供JSP頁面使用。圖6表示了數(shù)據(jù)模型的序列圖。
利用基于J2EE的多層體系結(jié)構(gòu)構(gòu)建的分布式聯(lián)合數(shù)字參考咨詢平臺,既可保持基于Web體系結(jié)構(gòu)的系統(tǒng)界面友好、開發(fā)方便、維護簡單的特點,又通過Java把系統(tǒng)建立在J2EE之上使系統(tǒng)更加靈活、容易擴充和集成已有的第三方軟件,適應(yīng)數(shù)字參考咨詢內(nèi)容和服務(wù)多樣化、個性化的要求,方便系統(tǒng)升級,符合數(shù)字參考咨詢平臺建設(shè)的特點和技術(shù)要求,是開發(fā)分布式聯(lián)合數(shù)字參考咨詢平臺的良好解決方案。
[1] 中國高等文獻保障系統(tǒng)虛擬參考咨詢子項目介紹.[2009-02-06].http://www.calis.edu.cn/calisnew/calis_index.asp?fid=3&class=7.
[2] 劉秋梅,鄭耿忠.基于J2EE和XML的數(shù)字圖書館系統(tǒng)設(shè)計及實現(xiàn)[J].情報雜志,2006(7):3147-3148.
[3] 劉秋梅.智能化數(shù)字參考服務(wù)系統(tǒng)實現(xiàn)初探[J].圖書情報工作,2006(7):92-94.
[4] 董慧,雷瑛.構(gòu)建基于J2EE規(guī)范的數(shù)字圖書館模型的探討[J].中國圖書館學(xué)報,2004(3):53-56.
[5] 董慧,雷瑛.基于J2EE規(guī)范的數(shù)字圖書館示范模型的設(shè)計與實現(xiàn)(上)[J].情報學(xué)報,2004(2):185-190.
[6] 董惠,張繼東.基于J2EE的電子政務(wù)檔案管理系統(tǒng)地構(gòu)建與研究[J].現(xiàn)代圖書情報技術(shù),2006(9):73-75.