周朝陽 王時繪
〔摘 要〕本文分析了當前高校圖書館數(shù)字資源整合檢索系統(tǒng)的現(xiàn)狀和常見的整合方式。提出了一個面向服務架構的資源整合檢索系統(tǒng)框架,并在圖書館應用中實現(xiàn)了該框架。
〔關鍵詞〕整合檢索;面向服務架構;數(shù)字資源
〔中圖分類號〕G250.7 〔文獻標識碼〕B 〔文章編號〕1008-0821(2009)09-0175-04
Research and Design of Integral Retrieval System Based on SOAZhou Zhaoyang1,2 Wang Shihui2
(1.Library,Hubei University,Wuhan 430062,China;
2.School of Mathematics and Computer Science,Hubei University,Wuhan 430062,China)
〔Abstract〕The paper analysed present situation and normal integration mode of integral retrieval system of library digital resources.Furthermore,this article brought forward an architecture of integral retrieval system based on SOA.At the same time,the method in this article was put into practice in the library of university.
〔Key words〕integral retrieval;SOA;digital resource
隨著數(shù)字圖書館建設的發(fā)展,高校圖書館已經(jīng)建設了眾多的數(shù)字資源系統(tǒng),包括書目數(shù)據(jù)、學術期刊、學位論文、全文圖書、視頻圖像等。這些資源系統(tǒng)開發(fā)的編程語言不同、部署的平臺各異、軟件系統(tǒng)的通信協(xié)議也不一樣,在數(shù)據(jù)結構、發(fā)布方式、檢索方式、顯示風格等方面均存在差異,各資源提供商之間不能共享彼此資源,從而形成了一個一個的信息孤島,導致用戶不能對多個資源系統(tǒng)進行統(tǒng)一的信息檢索。這給用戶的資源查詢帶來了巨大的不便。因此,集成這些不同資源提供商、不同平臺之間的資源系統(tǒng),為用戶提供一個快捷的整合檢索平臺的需求越來越緊迫。
1 當前整合檢索系統(tǒng)的現(xiàn)狀
目前館藏資源的整合方式主要有數(shù)據(jù)級整合、應用接口級整合兩種[2]。數(shù)據(jù)級整合是一種簡單的企業(yè)資源整合方式,以共享或合并多種數(shù)字資源的方式實現(xiàn)整合。如常見的萬方統(tǒng)一檢索平臺、CNKI統(tǒng)一檢索系統(tǒng)等。這種整合方式的缺點是只能在單個資源提供商內部實現(xiàn),不能解決不同資源異構平臺之間的整合。應用接口級整合是通過調用各種資源服務系統(tǒng)的檢索接口(API)實現(xiàn)資源的整合,屬于面向接口的方式。如基于頁面鏈接的統(tǒng)一檢索系統(tǒng)就屬于此類。這種方式的局限性在于必須要求資源提供商開放各自資源服務系統(tǒng)的檢索接口。據(jù)筆者所知,某些重要資源就不提供開放的檢索接口。此外,還出現(xiàn)了數(shù)據(jù)級和應用接口級相結合的混合整合檢索系統(tǒng)。如超星讀秀跨庫檢索系統(tǒng)。
從技術角度分析,面向數(shù)據(jù)級和面向接口級的整合都屬于緊耦合的方式,系統(tǒng)之間的關聯(lián)程度很高,每種方法都只適合特定的環(huán)境。整合檢索系統(tǒng)的靈活性很差,對舊資源系統(tǒng)的更新、升級以及增加新的資源都會導致系統(tǒng)重新編整,系統(tǒng)的維護、擴展、更新的成本比較高昂。
本文利用面向服務架構(SOA)思想,利用XML、WebService等被廣泛接受的技術,通過服務包裝的形式將各資源服務系統(tǒng)封裝為資源檢索服務,利用資源檢索組件進行檢索流程建模,集成整合各種資源檢索服務,從而解決了異構平臺帶來的問題,實現(xiàn)了面向服務的資源整合檢索平臺。
2 面向服務的整合檢索系統(tǒng)設計
2.1 面向服務架構及技術
SOA是一種構建分布式軟件系統(tǒng)的方法,是一種軟件架構思想。SOA將應用程序的不同功能組件(稱為服務)通過服務之間的定義良好的接口和約定聯(lián)系起來,接口的定義獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言,并使各組件之間可以用統(tǒng)一和通用的方式進行通信。服務是粗粒度的業(yè)務功能,可以進行分布式部署和組合,可以被標準程序調用。在SOA的體系結構中,服務是一個核心概念,是把已有業(yè)務功能封裝為可重用組件的具體實現(xiàn)方法,是接入SOA體系架構的基本單元[3]。
SOA的主要技術包括:用于描述服務的WSDL,用于定義數(shù)據(jù)格式的XML,用于信息傳輸?shù)腟OAP,用于連接服務的ESB,用于注冊管理服務的UDDI,以及用于編排業(yè)務流程的BPEL等。
2.2 單個資源檢索系統(tǒng)的服務封裝
在構建面向服務的資源整合檢索系統(tǒng)過程中,首先要解決的問題就是對現(xiàn)有的各種檢索系統(tǒng)進行服務封裝,形成可以被調用的檢索服務組件。經(jīng)過充分的分析比較,在當前條件下,對資源檢索系統(tǒng)進行服務封裝的最佳技術是XML web services。原因如下:
(1)XML web services以XML作為應用程序之間的數(shù)據(jù)傳輸格式,而XML已經(jīng)受到各主要應用平臺的良好支持,如SUN JAVA平臺、Microsoft.NET Framework等。
(2)XML web services以http作為傳輸協(xié)議。http已經(jīng)是絕大部分組織之間的通信協(xié)議,也可以被用作分布式環(huán)境中各應用系統(tǒng)間的傳輸協(xié)議。
(3)XML web services提供一種松耦合的方式來實現(xiàn)眾服務間的互操作。
(4)用WSDL描述的服務接口是一個操作的集合,每個接口都定義了一個特定的信息交換模式。
如圖1所示,每個用XML web services封裝好的檢索服務是一種粗粒度、松耦合的服務,其優(yōu)點表現(xiàn)為:
(1)檢索服務提供一種原子檢索功能。這種功能可被重用、被組裝,能被充分共享。
(2)檢索服務具有跨平臺性。封裝好的服務屏蔽了各資源系統(tǒng)底層特定的技術平臺和數(shù)據(jù)類型。在整合檢索系統(tǒng)中,不需要關心異構平臺的實現(xiàn)細節(jié),只需要關注服務功能即可。通過XML web services服務封裝,實現(xiàn)了統(tǒng)一標準的數(shù)據(jù)通信格式。
(3)檢索服務具有松耦合性。松耦合性最大程度地減小了檢索服務之間的相互關聯(lián)和限制,使得整合檢索系統(tǒng)結構靈活、擴展方便、維護工作量小。
2.3 面向服務的整合檢索系統(tǒng)框架
本文所提出的面向服務的整合檢索系統(tǒng)框架,在功能上能夠支持豐富多樣的館藏數(shù)字資源類別,實現(xiàn)操作與數(shù)據(jù)的全面整合,并通過提供靈活多樣的檢索流程來滿足用戶多樣的檢索需求。在地域上,還能沖破館域限制,實現(xiàn)館際之間的協(xié)同整合,從而實現(xiàn)數(shù)字資源在更廣的范圍內的共知、共享。
該框架由下而上包括館藏資源層、檢索服務層、服務連接層、集成服務層、檢索流程服務層、數(shù)據(jù)控制服務層和用戶接口層。如圖2所示。
以檢索服務為核心的整合檢索架構具有很好的敏捷性、靈活性以及跨平臺性,并實現(xiàn)了服務請求者與服務提供者之間的松耦合。各層邏輯功能簡述如下:
2.3.1 館藏資源層
館藏資源包括圖書館擁有的軟件資源、硬件資源和數(shù)據(jù)資源。軟件資源指各資源提供商的檢索平臺,硬件資源指運行這些檢索平臺的服務器和存儲設備。數(shù)據(jù)資源指可對讀者提供檢索服務的數(shù)字資源。資源層提供了最基本的文獻檢索功能。
2.3.2 檢索服務層
檢索服務層是一個檢索web服務的集合。這些web服務通過對各資源服務系統(tǒng)的檢索功能進行XML web services封裝得到,對外提供一個由WSDL描述的符合標準規(guī)范的接口,以供服務請求者調用。
2.3.3 服務連接層
服務連接層起到連接所有檢索服務的作用。該框架中用IBM WebSphere ESB實現(xiàn)。連接層以“總線”這種模式來管理下層的各種服務,簡化了服務之間的拓撲關系,并以開放標準的方式實現(xiàn)服務之間的互聯(lián)互通。服務連接層的主要功能包括:管理描述服務的元數(shù)據(jù),服務注冊管理(UDDI),在服務請求者與提供者之間傳遞數(shù)據(jù)以及對這些數(shù)據(jù)進行適當?shù)母袷睫D換,發(fā)現(xiàn)、路由、匹配、選擇所需要的服務,此外,連接層還提供安全支持、服務質量保證以及負載均衡等。
2.3.4 集成服務層
集成服務層負責對眾多的檢索服務進行分類集中管理。在該框架中,根據(jù)檢索對象的類別屬性來對檢索服務分類集中管理。檢索服務的分類聚集可以在總體上對檢索功能進行分類,同時匯聚成功能上一致但粒度更大的服務,便于請求者調用。
2.3.5 檢索流程服務層
對于資源檢索系統(tǒng)來說,具體的檢索流程是由用戶的需求確定的,不同的需求對應不同的檢索流程。每一個檢索流程通常需要多個檢索服務來協(xié)同完成。檢索流程服務層的功能就是把多個集成服務類別聯(lián)合起來,按照一定的邏輯順序依次調用,滿足用戶對資源的檢索需求。
2.3.6 數(shù)據(jù)控制服務層
目前各資源提供商收集的資源具有很大的重復性,同一種期刊或者圖書可能被多家資源提供商所收錄。顯然,用戶在檢索資源時不希望看到太多重復的檢索結果。數(shù)據(jù)控制服務層的功能就是過濾重復結果,編排顯示序列,給用戶返回理想的檢索結果。
2.3.7 用戶交互層
用戶交互層給用戶提供一個與整合檢索系統(tǒng)交互的統(tǒng)一接口,為用戶提供檢索入口和結果展示窗口。用戶交互層主要用到如PORTAL等多種門戶網(wǎng)站技術。
3 面向服務的資源整合檢索系統(tǒng)實現(xiàn)
某大學圖書館經(jīng)過多年的數(shù)字圖書館建設,館藏數(shù)字資源建設已經(jīng)取得了豐碩的成果。為該校的教學、科研提供了有力的文獻資源保障。該館先后購買了CNKI的期刊、博碩論文,萬方的數(shù)字期刊和學位論文、維普期刊、超星電子圖書、書生圖書,以及其他多種視頻資源。對于眾多的電子資源,如何向用戶提供一個統(tǒng)一的檢索入口,提高資源檢索效率,一直是一個急需解決的問題。
該館利用面向服務的整合檢索系統(tǒng)框架,搭建了一個能夠滿足用戶需要的統(tǒng)一檢索平臺。圖3是該系統(tǒng)的結構圖。該系統(tǒng)以經(jīng)過XML web services封裝的檢索服務為核心,以IBM WebSphere系列軟件為基礎平臺和開發(fā)工具,通過編排靈活的檢索流程來滿足用戶的檢索需求。在系統(tǒng)建設過程中,關鍵技術有如下幾點:
3.1 服務的劃分與封裝
利用IBM服務建模工具以檢索服務組件的形式將一個完整的資源檢索過程建模。每個檢索服務組件都通過接口連接。這些服務組件的具體功能實現(xiàn)需要從已有的資源檢索系統(tǒng)中抽象提取出來。為了體現(xiàn)出服務的松耦合性、自治性和可重用性,本系統(tǒng)按照資源類型來劃分服務,包括CNKI期刊檢索服務、CNKI學位論文檢索服務、萬方期刊檢索服務等。
服務劃分好以后,需要對其進行XML web services服務封裝。本系統(tǒng)采用黑盒再工程技術,通過適配器(adapter)來封裝整合各檢索功能,使其可以web services的形式被調用。封裝完成后,服務提供者用文本的形式給出服務功能、接口等信息的詳細說明。圖4給出了CNKI期刊檢索服務的WSDL描述文檔截圖。
在服務描述文檔中,接口說明部分定義了服務接口的名稱、操作名稱以及參數(shù)類型等,服務部分描述了該web服務的特征關鍵字、提供的訪問入口的部署細節(jié)等信息。服務提供者把這種用WSDL描述的標準接口提供給服務請求者調用。
3.2 服務的集成管理
檢索服務WSDL文檔中保存有服務特征關鍵字信息,在對服務進行集中管理時,根據(jù)服務特征關鍵字來匯聚成期刊類、論文類、圖書類,建立好各具體服務到其類別的映射關聯(lián)。
3.3 檢索流程的編排
檢索流程是由用戶需求確定的,不同的檢索流程需要調用不同的檢索服務類別。假設檢索服務匯聚為N類,則每個檢索流程調用的服務類別是這N類中的一個子集類。因此,檢索流程共有2N種。本系統(tǒng)中,檢索服務匯聚為3類,故共有8種可能的檢索流程。通過WebSphere Business Modeler來進行檢索流程建模,生成BPEL流程。圖5所示為期刊類檢索的流程。各檢索流程驅動相應的檢索服務,進而完成檢索任務。
3.4 檢索結果的去重整編
每類檢索的返回結果集都可能存在大量的重復結果。該系統(tǒng)對每類檢索服務使用輪詢算法,每次確定一個主體檢索服務,同類其他的檢索服務為輔。在篩選結果集時,以主體檢索服務的結果為主,以輔助檢索服務的結果為輔,運用集合運算確定最終返回給用戶的結果集,確保用戶的檢索結果不重不漏。
3.5 在UI層,基于WebSphere Portal Server,應用多種portal技術給用戶提供一個統(tǒng)一的檢索入口
在交互界面上,除了提供多種關鍵字選項外,還提供資源類別選項,以供用戶確定檢索范圍,如提供期刊、論文、圖書等多種資源類型供用戶選擇。利用portal頁面的集成功能來驅動對應的資源檢索流程,滿足用戶的資源檢索需求。
4 結束語
SOA是一種新型的軟件架構思想,也為信息系統(tǒng)的集成提供了一種新的思路。本文在對傳統(tǒng)的圖書館資源整合方法充分分析的基礎上,提出了一種面向服務的整合檢索系統(tǒng)架構,并付諸實踐。該資源整合檢索平臺靈活、易于擴展,并且具有良好的跨平臺、跨館域邊界的性能。是整合高校電子資源,給用戶提供一站式檢索服務的有效方法。
參考文獻
[1]張紅.SOA在高校圖書館資源整合中的應用[J].圖書館建設,2007,(6):85-87.
[2]李樹全,陳志飛.基于SOA的企業(yè)資源整合軟件體系結構研究[J].計算機科學,2008,35(4A):316-318.
[3]張一川,汪德帥.基于業(yè)務服務的企業(yè)遺留系統(tǒng)集成框架[J].計算機應用,2008,(6):263-269.