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