張雅君
(鄭州航空工業管理學院,河南 鄭州 450015)
隨著計算機技術的迅猛發展,尤其是網絡技術、數據存儲技術以及數據傳輸技術的不斷進步與廣泛應用,極大豐富了數字圖書館的館藏資源與共享方式。如何有效整合異構條件下分布式文獻資源庫,實現跨庫信息的統一發現、檢索和訪問,已成為當前數字圖書館的核心研究內容之一。現階段關于該方向的研究有多種,比較有代表性的成果有:①利用XML適合于異構數據定義和數據信息交換的特點,基于XML封裝資源庫中各數據記錄,同時利用Web Service適合于標準服務接口封裝和遠程服務調用的特點,基于Web Service封裝各資源庫的數據訪問協議,從而實現大范圍異構資源共享,以計算機技術為顯著特點。②充分利用元數據適合于圖書館數據資源描述的特點,設計出滿足本館需求的元數據描述標準,從而實現對本地多數據庫、第三方數據庫以及傳統圖書館OPAC系統數據庫的資源整合,以元數據技術為顯著特點。③融合前兩種解決方案,既利用XML Web Service技術適合于網絡資源和網絡服務整合的特點,又利用元數據技術適合于圖書館信息描述的特點,提出基于XML Web Service封裝的元數據跨庫檢索解決方案。這是目前最主流的共享解決方案。
筆者以第三種方案為立足點,同時考慮到OAI協議在國際上已被廣泛接受并獲得普遍應用[1],因此針對支持OAI協議的數據庫整合進行研究,其解決思路及研究成果亦適用于其他元數據協議類型,具有良好可推廣性。
OAI協議框架由數據提供者、服務提供者以及元數據搜索協議3部分組成[2]。其基本原理是:首先將數據提供者的本地元數據格式用公共元數據格式進行表達,然后利用開放元數據搜索協議對全局公共元數據進行檢索,具體應用時則由第三方服務提供者對搜索協議進行封裝,生成面向用戶的各種元數據檢索公共服務,從而有效解決多資源庫在元數據格式上的互異性問題,最終實現多館藏資源的跨庫檢索。
在該框架中,Web環境下各數字圖書館資源庫就是數據提供者,可采用簡單DC元數據格式作為公共映射格式,并將映射結果統一用XML進行編碼,形成異構數據描述與交換的物質基礎。對于元數據搜索協議,則可采用OAI的開放性元數據采集協議OAI-MHP作為公共通信標準,實現對分布式資源庫中各元數據信息的搜索與采集。考慮到網絡中不同數字圖書館平臺采用的運行環境可能互不相同,因此可采用Web Service作為提供公共基礎服務的統一封裝標準,在界面層有效消除異構性,最終實現數字圖書館的資源整合。
簡單DC元數據搜索子系統又由結果文檔XML封裝模塊與數據訪問Web Service封裝模塊兩部分組成。其中,數據訪問模塊負責與遠程OAI原始數據庫建立訪問鏈接,并按照OAI協議框架規定的協議格式發送數據訪問請求到遠程OAI數據庫,從而實現DC格式的元數據搜索。結果文檔封裝模塊負責將數據訪問模塊搜索到的元數據結果封裝成XML文檔,并將該文檔傳送給基于Web Service的查詢服務子系統中的XML文檔解析模塊。解析模塊進行解析后,取得DC元數據記錄,再存放于中心DC元數據庫中,從而實現中心庫DC元數據記錄的生成。簡單DC元數據搜索子系統應在一定時間周期內對各遠程OAI數據庫執行一次搜索,以便中心庫元數據記錄得到及時更新。
基于Web Service的查詢服務子系統又由Web Service檢索服務生成模塊、XML文檔解析模塊以及中心元數據庫檢索模塊3部分組成。其中,服務生成模塊負責生成面向用戶的基于Web Service的信息檢索服務,供所有合法登錄的用戶執行遠程調用。解析模塊負責兩種類型的XML文檔解析工作,一種是接收客戶端發送來的XML查詢文檔,對其解析,形成用戶查詢語句;另一種是接收簡單DC元數據搜索子系統的XML結果文檔,獲得DC記錄。最后,中心庫檢索模塊負責根據解析出的用戶查詢語句,直接檢索中心元數據庫中的DC記錄,并將檢索結果進行XML封裝后再返回給客戶端。由于中心元數據庫中的數據都是由搜索子系統通過遠程搜索獲取的,因此檢索時只需連接中心庫即可,無需再遠程連接原始庫,極大提高了檢索效率。
在上述整合模型中,簡單DC元數據搜索子系統與遠程OAI數據庫的訪問協議采用OAI協議框架的OAI-MHP標準協議。該協議首先自動遍歷遠程數據庫在服務器端的注冊信息,然后基于HTTP協議建立與遠程數據庫的訪問鏈接,最后從中抽取符合搜索條件的規范化、結構化元數據記錄。

在具體實現時,遠程OAI數據庫在服務器端的注冊信息至少要包括6方面內容,分別是數據庫標識符data_id、數據庫URL地址data_url、數據庫搜索標記data_flag、數據庫搜索方式data_method、數據庫元數據格式data_format以及數據庫OAI版本data_ver。可以直接將其映射成一張六字段的關系表,存放在關系數據庫中。
在基于HTTP協議與OAI數據庫建立搜索鏈接時,可使用HTTP中的GET或POST方法來傳遞請求,該請求至少要包括一個以上的數據參數和一個格式為“verb=OAI方法名”的命令參數。其中OAI方法名可有6種方法值,分別是Identify、ListSets、ListMetadataFormat、ListIdentifiers、GetRecord以及ListRecord,其功能分別是:Identify返回元數據記錄的詳細描述,如名稱、地址等,ListSets返回庫中可用資源分組的名稱,如文本、圖片、視頻等,ListMetadataFormat返回存檔所用的元數據格式,ListIdentifiers返回滿足查詢條件的元數據記錄標識,GetRecord返回與指定標識對應的元數據記錄,ListRecord返回滿足查詢條件的元數據記錄。服務器端對該請求的響應結果也采用HTTP協議進行回傳。由此,即實現了基于HTTP協議與OAI-MHP協議的對遠程OAI數據庫的元數據搜索。
Web Service采取標準Web協議作為其中間件界面描述和協同描述的規范,完全屏蔽了不同軟件運行平臺的差異[4]。遵照Web Service標準封裝而成的各種應用具有獨立性、可擴展性以及模塊化等特點,能夠通過Internet來描述、發布、定位以及調用,非常適合用于編寫OAI數據資源整合系統的各種網絡公共服務。筆者選擇JAVA語言作為實際開發平臺(其版本為jdkl.5.0_04),選擇WebLogic 9.0為應用部署服務器,實現OAI數據整合系統查詢服務,即:根據整合系統模型,查詢服務主要承擔兩方面功能,第一是接收界面層傳遞來的用戶XML查詢文檔,對其進行解析并生成用戶查詢語句;第二是檢索中心DC元數據庫,形成XML檢索結果文檔。
一般情況下,客戶端通過界面層傳來的XML查詢文檔內容較簡單,因此可采用DOM方法進行解析。DOM是一種W3C標準,可用一種與平臺和語言無關的方式來表示XML查詢文檔[5]。
(1)卵巢囊腫總計41例,其中單純囊腫14例,功能性囊腫14例,輸卵管系膜副中腎管囊腫10例,白或黃體囊腫出血3例。影像特點為圓形或卵圓形、邊緣銳利且光滑的異常信號,T1WI呈信號降低,T2WI呈信號升高。所有病例均診斷為良性病變,良性正確率100%[4]。
設界面層傳來的某用戶XML查詢文檔為search.xml,內容如下:


使用JAVA語言,對該XML文檔的DOM解析過程如下:
首先,把要解析的XML文檔轉化為輸入流,以便解析。
InputStream xml1=new FileInputStream(search.xml)。
其次,解析該輸入流,得到一個文檔對象。
Document doc=dombuilder.parse(xml1);
再次,建立該文檔對象的根節點,以便通過樹結構對XML輸入流進行遍歷解析。
Element root=doc.getDocumentElement();
最后,在遍歷解析中,依次讀取輸入流文檔樹的各子節點,獲得節點值,這些節點值就是被解析出的各種客戶端查詢信息。
NodeList dbname=childroot1.getElementsByTagName(“doc.databasename”);
NodeList dbaddress=childroot2.getElementsByTagAddress(“doc.databaseaddr
ess”);
NodeList dbsql=childroot3.getElementsByTagSql (“doc.databasesql”)。
基于Web Service標準,編寫檢索公共服務代碼,作為面向所有用戶的檢索服務提供者。其平臺環境為:設某數字圖書館資源數據庫為Oracle 9i,對外提供支持OAI協議的訪問接口,編程思路是,定義類ResourceSearchService,在該類中創建方法GetSearchRecord來完成元數據記錄提取、文檔轉換以及數據回傳等功能。
該方法中的待搜索數據庫地址、標識符、搜索語句等參數均來自于DOM對客戶端XML查詢文件的解析結果。基于該Web Service,實現了對中心DC元數據庫檢索服務的封裝,最后再將其部署到WebLogic 9.0服務器中,以響應所有客戶端的檢索請求。
基于Web Service設計了一個數字圖書館OAI資源整合模型。該模型由DC元數據搜索子系統與查詢服務子系統組成。對于每一個子系統,又分別給出了各自的實現思想與關鍵程序代碼。實踐證明,該模型能很好實現用戶對多圖書館多資源庫的統一檢索,在界面層有效消除異構性,達到了資源整合的目的。
[1]鄭建明,陳雅,陸寶益.數字時代圖書館的合作與資源共享——寫在《圖書館合作與信息資源共享武漢宣言》發表之后[J].大學圖書館學報,2006(2):2-4.
[2]Herbert Van de Sompel.The Santa Fe convention ofthe Open Archives Initiative[J].D-Lib Magazine,2000(2):12-15.
[3]王權良.數字圖書館OAI數據資源整合系統的研究與實現[D].北京:北京交通大學,2006:23-25.
[4]W3C Working Group Note.Web Services Architecture[EB/OL].[2009-10-11].http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/.
[5]W3C Recommendation.Document Object Model(DOM)Level 1 Specification[EB/OL].[2009-10-28].http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/DOM.pdf.