繆 綸 葉 茂 王志璋 段媛媛
(中國水利水電科學(xué)研究院 中水科信息技術(shù)有限公司,北京 100044)
近年來,隨著信息技術(shù)的飛速發(fā)展,數(shù)據(jù)資源數(shù)字化日趨成熟,發(fā)展文獻資源的網(wǎng)絡(luò)數(shù)字化共享,實現(xiàn)現(xiàn)代圖書館向數(shù)字圖書館轉(zhuǎn)變已是必然趨勢。目前,水利行業(yè)文獻資源的數(shù)字化程度不高,水利水電藏書及文獻資源面臨著數(shù)字化建設(shè)的極大需求。中國水利水電科學(xué)研究院水利水電行業(yè)國家級綜合性研究中心,從2000年就開始從事數(shù)字圖書館平臺的研究建設(shè),利用網(wǎng)絡(luò)以及數(shù)據(jù)庫技術(shù)開展圖書和文獻資料的數(shù)字化加工、存儲。并先后建成了一些文獻和圖書查詢和管理的數(shù)字化平臺系統(tǒng)。
然而,隨著信息技術(shù)不斷發(fā)展,特別是文獻資源的日益豐富和用戶需求的多樣化,使得圖書館業(yè)務(wù)格局發(fā)生了改變,更多的新業(yè)務(wù)不斷地涌現(xiàn)出來。面對這些變化,如何建立一種高效的數(shù)字化平臺實現(xiàn)對海量的異構(gòu)數(shù)字化信息資源進行充分整合,有效應(yīng)對不斷增加的新業(yè)務(wù)需求,是目前需要解決的關(guān)鍵問題.。當前國外主流的數(shù)字圖書館平臺已經(jīng)開始采用面向服務(wù)的體系架構(gòu) (Service-Oriented Architecture,SOA),這一架構(gòu)能有效賦予數(shù)字圖書館快速適應(yīng)業(yè)務(wù)需求變化的能力。本文在分析中國水利水電科學(xué)研究院圖書館館藏資源及數(shù)字化現(xiàn)狀的基礎(chǔ)上,將SOA的理念引入到水利水電數(shù)字圖書館的建設(shè)中,意在通過加強文獻數(shù)字化建設(shè)的實踐經(jīng)驗為業(yè)界提供借鑒。
面向服務(wù)的體系結(jié)構(gòu) (Service-Oriented Architecture,SOA)是一個組件模型,它將應(yīng)用程序中的不同功能單元作為服務(wù),并通過對這些服務(wù)之間定義良好的接口而將其聯(lián)系起來。接口是采用中立的方式進行定義的,它獨立于實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言,這使得構(gòu)建在各種各樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一、通用的方式進行交互。目前,這樣的通用接口技術(shù)包括COBRA、Java RMI、COM、Web服務(wù)等,其中Web服務(wù)技術(shù)由于其通用性強、開發(fā)簡單、協(xié)議標準、支持豐富等一系列優(yōu)點,成為實現(xiàn)SOA最廣泛的技術(shù)[1]。SOA是為了解決在Internet環(huán)境下業(yè)務(wù)集成的需要,通過連接能完成特定任務(wù)的獨立功能實體實現(xiàn)的一種軟件體系架構(gòu)[2]。因此,SOA特別適合于整合不同的信息應(yīng)用系統(tǒng)來形成統(tǒng)一的服務(wù)體系來供用戶使用。對于用戶而言,系統(tǒng)的服務(wù)是統(tǒng)一的接口,用戶并不需要了解SOA如何整合不同的系統(tǒng)來提供這些服務(wù)的[3~4]。
對于數(shù)字化資源和資源管理系統(tǒng)來說,采用SOA架構(gòu)可以把不同的資源庫和管理作為服務(wù)節(jié)點,采用Web服務(wù)技術(shù)形成統(tǒng)一的服務(wù)接口,然后通過SOA提供統(tǒng)一的資源管理服務(wù)門戶,可以最大限度地提高資源使用效率和提供更好的資源服務(wù)。同時,統(tǒng)一的服務(wù)接口降低了系統(tǒng)之間的耦合度,可方便地實現(xiàn)資源庫的擴展和功能的擴充。
圖1是一個面向服務(wù)的SOA架構(gòu),從圖中可以看到,在用戶和業(yè)務(wù)層之間引入了一個 “服務(wù)”抽象層。用戶通過服務(wù)層訪問業(yè)務(wù)對象,而不是直接操作業(yè)務(wù)對象,業(yè)務(wù)對象作為類庫的實例而存在,通過服務(wù)加載到內(nèi)存中。同時,服務(wù)層和業(yè)務(wù)層都處在同一流程中,對業(yè)務(wù)對象的操作就變得很簡單和容易了??梢园逊?wù)層中的 “服務(wù)”看成一個 “黑盒子”:它實際操作業(yè)務(wù)對象,然后得出結(jié)果,從而減少交互。
圖1 面向服務(wù)的架構(gòu)
中國水科院圖書館館藏圖書以水利水電科技圖書、期刊等為主。截止到目前,中文藏書10萬余冊,外文藏書6萬余冊,中文期刊200余種,外文期刊60余種。此外,圖書館材料室收錄全院各種科研文獻 (包括科技報告、技術(shù)論文、技術(shù)譯文等)近百萬冊。如圖2所示,水利水電數(shù)字圖書館現(xiàn)有文獻資源主要包括中文圖書、中/外期刊、特色書庫和自產(chǎn)文獻等,引進資源主要包括有學(xué)位論文、會議論文以及需要擴增的期刊資源等[5]。
根據(jù)資源體系結(jié)構(gòu),平臺采用基于WEB技術(shù)、B/S結(jié)構(gòu)的信息發(fā)布管理體系模式,自行開發(fā)了中文圖書、外文期刊、特殊書庫、自產(chǎn)文獻管理系統(tǒng),引進萬方數(shù)字化期刊、學(xué)位論文和會議論文系統(tǒng)[5]。
圖2 資源體系[5]
當前水利水電數(shù)字圖書館已建和待建的數(shù)據(jù)庫一共有7個,分別部署在5臺服務(wù)器、2種數(shù)據(jù)庫平臺上,與之配套的檢索系統(tǒng)有7個,如表1所示。多個資源入口給讀者帶來困擾,也給檢索帶來不便,不同系統(tǒng)之間如何實現(xiàn)有效耦合,為用戶提供簡單、完整的檢索服務(wù)是當前水利水電數(shù)字圖書館急需解決的功能性課題?;赟OA整合圖書館數(shù)字資源改變了圖書館傳統(tǒng)工作流程模式,在圖書館數(shù)字資源整合的基礎(chǔ)上為用戶提供了完整性服務(wù),其目標是將已經(jīng)存在的檢索功能封裝成檢索服務(wù),封裝的服務(wù)將部署在服務(wù)器上并向外提供服務(wù)聲明,供外部調(diào)用。
表1 數(shù)據(jù)庫及檢索系統(tǒng)
采用良好的架構(gòu)設(shè)計,能降低軟件開發(fā)成本、提高系統(tǒng)性能。架構(gòu)設(shè)計應(yīng)該完成的工作是:業(yè)務(wù)構(gòu)件分析,應(yīng)用架構(gòu)設(shè)計,按照面向構(gòu)件的思想,識別構(gòu)件、確定構(gòu)件接口和行為,決定服務(wù)構(gòu)件需求,負責(zé)架構(gòu)歸檔?!八姅?shù)字圖書館”基于SOA系統(tǒng)架構(gòu),并應(yīng)用了數(shù)據(jù)挖掘、智能決策,將先進的技術(shù)、思想與實際的應(yīng)用很好結(jié)合,可使分布各地的用戶在網(wǎng)上實現(xiàn)數(shù)據(jù)資源的查詢和下載。
“水利水電數(shù)字圖書館”的設(shè)計與制作以圖書館的基本業(yè)務(wù)活動為依據(jù),并結(jié)合數(shù)字圖書館的特點,為讀者提供個性化服務(wù),本系統(tǒng)由以下模塊構(gòu)成。
主控模塊:作為平臺系統(tǒng)的主頁,其功能主要是簡要介紹各個子模塊的功能,鏈接各個子模塊。
資源檢索:為用戶提供多種途徑(模糊檢索、書名檢索、分類檢索及作者檢索)檢索數(shù)字文獻的目錄和原文。
全文服務(wù):給有訪問權(quán)限的讀者提供全文瀏覽及下載功能。
編目錄入和維護服務(wù):面向數(shù)據(jù)采編人員及維護人員,使其可以方便地維護數(shù)據(jù)庫。
以上模塊都按照高度抽象的法則封裝成SOA的服務(wù),其體系架構(gòu)如圖3所示。
圖3 基于SOA的體系架構(gòu)[6]
如圖3所示,數(shù)字圖書館各應(yīng)用系統(tǒng)和資源數(shù)據(jù)庫等按照面向服務(wù)的思想重新集中和整合,各模塊之間采用XML進行數(shù)據(jù)交換,以 WSDL(Web Services Definition Language)來描述服務(wù),通過UDDI(Universa1 Description,Di8covery and Integration)倉庫進行注冊。
數(shù)據(jù)資源信息服務(wù)申請者可通過SOAP(Simp1e Object Access Protoc01)提出服務(wù)請求并獲得服務(wù)。
服務(wù)組件架構(gòu)(Service component architecture,SCA)是一種簡化面向服務(wù)架構(gòu)(SOA)中的應(yīng)用程序開發(fā)和實現(xiàn)的新技術(shù),借助于SCA能夠更容易創(chuàng)建新服務(wù)或者將現(xiàn)有的資源(原有的用傳統(tǒng)技術(shù)開發(fā)的管理系統(tǒng)等)轉(zhuǎn)化為可重用的服務(wù),這些服務(wù)可以快速適應(yīng)不斷變化的業(yè)務(wù)需求。
在數(shù)字圖書館架構(gòu)基礎(chǔ)上引入SOA架構(gòu),構(gòu)建基于SOA的三層數(shù)字圖書館體系架構(gòu)。
最底層是數(shù)據(jù)集成層,該層集成了當前水利水電數(shù)字圖書館已建的數(shù)據(jù)庫,包括中/外期刊數(shù)據(jù)庫、中文圖書庫、論文庫、特種書庫以及代建的資產(chǎn)文獻庫。
中間層是面向服務(wù)的SOA業(yè)務(wù)邏輯層,它將數(shù)字圖書館的各應(yīng)用系統(tǒng),屏蔽底層數(shù)據(jù)的異構(gòu)性,并內(nèi)嵌到業(yè)務(wù)邏輯層中,提供統(tǒng)一的視圖和接口。
表示層,它能夠提供用戶查詢服務(wù),并根據(jù)需要提供個性化服務(wù),實現(xiàn)戶便捷、高效地用戶操作。
在這種三層架構(gòu)中,各層的主要構(gòu)成模塊如下所述。
(1)數(shù)據(jù)集成層。數(shù)據(jù)集成層由數(shù)字圖書館已建的數(shù)據(jù)庫庫組成,它將業(yè)務(wù)利邏輯從底層數(shù)據(jù)結(jié)構(gòu)中抽象出來,維護底層數(shù)據(jù)的結(jié)構(gòu)、位置、格式、同步模式和交叉引用關(guān)系。該層利用挖掘管理工具,對已有數(shù)據(jù)資源進行綜合分析,提取有用信息,提供數(shù)據(jù)集成服務(wù),對數(shù)據(jù)進行可高的讀取和更新。并通過相應(yīng)的管理手段保證其運行,提高生產(chǎn)率,降低了創(chuàng)建和維護的成本和復(fù)雜度。
(2)SOA業(yè)務(wù)邏輯層。應(yīng)用集成是基于SOA數(shù)字圖書館體系架構(gòu)的首要問題。在這一層中,各個應(yīng)用程序的業(yè)務(wù)邏輯或某些單獨的功能被模塊化并作為服務(wù)呈獻給客戶端的用戶。這些服務(wù)采用接口提供獨立的功能。對應(yīng)用開發(fā)人員或集成者來說,可以通過組合一個或多個服務(wù)來構(gòu)建應(yīng)用,而無需理解服務(wù)的底層實現(xiàn)。SOA服務(wù)通過統(tǒng)一描述,定義和集成 (UDDI,Universa1 Description,Definition,and Integration)登記服務(wù),提供統(tǒng)一的服務(wù)列表,并使用 WSDL(Web Service Description Language)來描述具體的服務(wù)。而SOAP,作為傳輸層,用來在表示層和業(yè)務(wù)邏輯層之間傳送消息。表示層的用戶提交的查詢信息,通過UDDI注冊表查找服務(wù),取得服務(wù)的WSDL描述,最終通過SOAP來調(diào)用服務(wù)。
(3)表示層。表示層主要負責(zé)與用戶之間的交互,包括期刊、圖書、論文的查詢以及編目維護;表示層與業(yè)務(wù)邏輯層平臺采用XML進行數(shù)據(jù)交換,并由表示層翻譯成客戶端瀏覽器可以識別的格式(如HTML格式)。在這一層,系統(tǒng)為用戶提供外觀以及查詢內(nèi)容的定制,還可利用相應(yīng)的工具編制個性化的內(nèi)容。同時,通過對數(shù)據(jù)的分類和權(quán)限劃分,建立統(tǒng)一界面入口,并實現(xiàn)不同用戶的多級需求,建立統(tǒng)一訪問的界面接口和風(fēng)格。
在基于SOA水利水電數(shù)字圖書館架構(gòu)中,將數(shù)字圖書館已有的各應(yīng)用系統(tǒng)整合在一起。
通過采用XML標準定義的服務(wù)接口,在不改變原有應(yīng)用系統(tǒng)工作模式的基礎(chǔ)上,隨時增加業(yè)務(wù)功能模塊,可以用一個服務(wù)替換另一個服務(wù)而無須關(guān)心其底層的實現(xiàn)技術(shù),使系統(tǒng)更加具備可擴展性。
這種架構(gòu)可以結(jié)合歷史數(shù)據(jù)和理論模型及專家經(jīng)驗,實現(xiàn)數(shù)據(jù)和管理的集成,同時也為用戶提供統(tǒng)一的查詢平臺,同時采用SOA架構(gòu)實現(xiàn)的應(yīng)用程序可使水利水電數(shù)字圖書館擁有更大的靈活性,應(yīng)用程序更加簡潔和高效。
數(shù)字圖書館是現(xiàn)代化圖書館發(fā)展的趨勢,建設(shè)水利數(shù)字圖書館是水利信息化建設(shè)中的重要課題。本文在研究SOA體系架構(gòu)及其理論的基礎(chǔ)上,探討了基于SOA的水利水電數(shù)字圖書館架構(gòu),同時,提出建立統(tǒng)一的數(shù)據(jù)資源服務(wù)體系,整合不同數(shù)據(jù)庫資源,建立統(tǒng)一的信息資源訪問接口。本文針對水利信息化對數(shù)據(jù)資源建設(shè)、資源共享的要求,建設(shè)性的提出了采用SOA的體系架構(gòu)實現(xiàn)數(shù)字圖書館的構(gòu)建的思想,具有一定的參考價值,必將推進我國水利水電數(shù)字圖書館建設(shè)的進程。
[1]柴曉路.Web服務(wù)架構(gòu)與開放互操作技術(shù)[M].北京:清華大學(xué)出版社,2002
[2]Warawarans S.Web Services p1atform architechcture SOAP,WSDL,WS-Po1icy,WS-Addressing,WSBPEL,WS-Re1iab1emessaging andmore[M].New Jercy:Prentice Ha11,2005:101-120
[3]OASIS.Web Services architecture[EB/OL].[2008-03-26].http://www.w3.org/TR/ws-arch/
[4]G1obus.Open grid services architecture[EB/OL].[2008-03-26].http://www.g1obus.org/ogsa/
[5]王冠華,白靜怡,陳煜,朱星明 .數(shù)字圖書館體系構(gòu)架研究及實踐(J).中國水利水電科學(xué)研究院學(xué)報,2005(4):282-286
[6]楊彥輝 .基于SOA的圖書館信息綜合服務(wù)系統(tǒng).圖書館學(xué)刊(J).2007(2):134-135