摘 要:針對當前數(shù)字圖書館的開發(fā)周期很長,異構(gòu)數(shù)字圖書館間資源共享困難的問題,提出了一種基于網(wǎng)格的虛擬數(shù)字圖書館(Virtual Digital Library-VDL)的體系結(jié)構(gòu),它以網(wǎng)格為基礎(chǔ),由數(shù)字圖書館服務(wù)和一些基礎(chǔ)服務(wù)設(shè)施組成,其中的網(wǎng)格結(jié)點采用自組織的方式進行管理,因此在不同負載情況下可以采用不同的資源發(fā)現(xiàn)方法,虛擬數(shù)字圖書館是依照用戶的要求動態(tài)組合各種服務(wù)而形成的,因此具有靈活的共享機制和較高的服務(wù)質(zhì)量。
關(guān)鍵詞:虛擬數(shù)字圖書館;網(wǎng)格;體系結(jié)構(gòu);自動生成
中圖分類號:C93 文獻標志碼:A 文章編號:1673-291X(2011)36-0215-04
一、虛擬數(shù)字圖書館
數(shù)字圖書館一詞最早由美國學者W.Wulf于1991年提出,數(shù)字圖書館的定義也有很多種,但其基本內(nèi)容一致,可以這樣理解:數(shù)字圖書館是將海量數(shù)字化資源實行分布式計算機管理的、實現(xiàn)網(wǎng)絡(luò)化存取和智能化服務(wù)的信息和知識資源共享系統(tǒng)。
虛擬數(shù)字圖書館是指在邏輯上存在而在實質(zhì)上并不存在的一個虛擬資源。它在邏輯上具有數(shù)字圖書館的各種功能和特性,可以像一個數(shù)字圖書館一樣來滿足用戶的需求,而事實上虛擬數(shù)字圖書館是由各種資源(軟件資源和硬件資源)通過有機組合而成的,其中軟件資源主要包括各種基礎(chǔ)設(shè)施和各種數(shù)字圖書館服務(wù)。
數(shù)字圖書館服務(wù)包含了基本服務(wù)和第三方服務(wù),它們都是由一些低級服務(wù)和高級服務(wù)組成。所謂低級服務(wù)是指不需要調(diào)用其他服務(wù)的底層服務(wù),用來完成特定的功能。而高級服務(wù)是指包含其他服務(wù)并且協(xié)同來解決某個問題的高層服務(wù)。
基本服務(wù)完成了大部分數(shù)字圖書館的傳統(tǒng)功能,如信息檢索等。第三方服務(wù)則是為了滿足用戶特定的需求而設(shè)計的服務(wù)。
無論是基本服務(wù)、第三方服務(wù)、低級服務(wù)以及高級服務(wù)都屬于網(wǎng)格服務(wù),是網(wǎng)格中的軟件資源。
二、VDL的體系結(jié)構(gòu)
1.VDL的物理結(jié)構(gòu)。事實上虛擬數(shù)字圖書館的自動生成以及賴以生存的整個體系結(jié)構(gòu)從物理結(jié)構(gòu)上來看并不是很復雜,只是一些計算機構(gòu)成的網(wǎng)格結(jié)點和一些硬件資源(包括存儲資源和數(shù)據(jù)庫資源等等),它們是整套系統(tǒng)的基礎(chǔ)。
由圖1可知,各個網(wǎng)格結(jié)點和硬件資源用高速可靠的網(wǎng)絡(luò)互聯(lián),提供良好的通訊以及數(shù)據(jù)傳輸?shù)幕A(chǔ),保障系統(tǒng)的正常運行。由于網(wǎng)格的整體與局部具有相似性這一特點使得基于網(wǎng)格系統(tǒng)的數(shù)字圖書館具有良好的擴展性,能夠在一定條件下任意的擴展系統(tǒng)規(guī)模,用來提高系統(tǒng)的性能和服務(wù)質(zhì)量,這對那些需要較高計算能力的服務(wù)來說是至關(guān)重要的。
普通的計算機結(jié)點一般是用來提供各種服務(wù)和計算資源,數(shù)據(jù)存儲節(jié)點主要是一些高性能的數(shù)據(jù)庫服務(wù)器和磁盤陣列,它們用來提供有效的分布式數(shù)據(jù)存儲,提高系統(tǒng)數(shù)據(jù)的吞吐量,解決數(shù)據(jù)分析中的數(shù)據(jù)存儲問題。另外的一些資源結(jié)點主要是根據(jù)用戶的特殊需求而加入網(wǎng)格環(huán)境中的。
從圖1中我們不難發(fā)現(xiàn),連接網(wǎng)格結(jié)點的網(wǎng)絡(luò)的可靠性和性能基本上決定了系統(tǒng)的整體服務(wù)質(zhì)量,它是系統(tǒng)的一個重要基礎(chǔ)。另外各個網(wǎng)格結(jié)點基本上不相互影響,保證當個別網(wǎng)格結(jié)點出現(xiàn)錯誤而癱瘓時整個系統(tǒng)依然能夠正常運行,當然這只是一個基礎(chǔ),還需要從軟件技術(shù)方面進行支持,相關(guān)內(nèi)容見第三部分。
2.VDL的模型結(jié)構(gòu)。網(wǎng)格本身決定了該系統(tǒng)是面向服務(wù)的,也就是說系統(tǒng)實際上是由一個個網(wǎng)格服務(wù)按照一定的規(guī)則,在特定的上下文環(huán)境中再加上一些硬件資源包括數(shù)據(jù)庫服務(wù)器、文件服務(wù)器等形成的。
圖2展示了從服務(wù)角度來看時的系統(tǒng)模型結(jié)構(gòu),網(wǎng)格系統(tǒng)就像是一個巨大的服務(wù)容器池,里面包含著各種各樣的服務(wù),包括低級服務(wù),高級服務(wù)以及用戶定制的特殊服務(wù),數(shù)字圖書館的各種服務(wù)就是由他們所組成,還有就是系統(tǒng)的基礎(chǔ)設(shè)施服務(wù),用來保證系統(tǒng)正常安全的運行。
虛擬數(shù)字圖書館是系統(tǒng)根據(jù)用戶設(shè)計的數(shù)字圖書館配置文件以及相關(guān)的資源配置文件、結(jié)構(gòu)文件對現(xiàn)有可用的服務(wù)進行動態(tài)組合而形成的邏輯上的服務(wù)資源組。由于這種資源組合具有著不同的服務(wù)屬性、服務(wù)質(zhì)量或者服務(wù)方式以及使用的資源對象的不同,從而也就形成了各種各樣的虛擬數(shù)字圖書館。
值得注意的是虛擬數(shù)字圖書館系統(tǒng)調(diào)用的服務(wù)具體存在于哪個網(wǎng)格結(jié)點上是不確定的,在用戶定制數(shù)字圖書館的時候也不能指定哪個結(jié)點上的哪個服務(wù)用于該數(shù)字圖書館實例,只是告訴系統(tǒng)要生成的數(shù)字圖書館包含哪些服務(wù),具有哪些要求,只有當該服務(wù)真正執(zhí)行的時候才會由基礎(chǔ)服務(wù)確定哪個結(jié)點上的服務(wù)被執(zhí)行,也就是說一個用戶在不同時間調(diào)用同一個服務(wù),服務(wù)的宿主結(jié)點可能是不一樣的。
具體過程如下:當整個網(wǎng)格系統(tǒng)啟動的時候,所有已經(jīng)經(jīng)過設(shè)計的數(shù)字圖書館被初始化,也就是生成數(shù)字圖書館的實例,網(wǎng)格系統(tǒng)根據(jù)用戶的數(shù)字圖書館設(shè)計文件向數(shù)字圖書館實例提供該實例被指定擁有的各種服務(wù)的引用,同一類服務(wù)可能存在多個實體,也就是說會有數(shù)個網(wǎng)格結(jié)點都提供該類服務(wù),但是服務(wù)質(zhì)量不盡相同,當需要某類服務(wù)執(zhí)行時,虛擬數(shù)字圖書館實例才會根據(jù)當時提供該類服務(wù)的網(wǎng)格結(jié)點的負載情況以及服務(wù)要求(如時間要求)來動態(tài)決定調(diào)用哪個網(wǎng)格結(jié)點上的服務(wù)實例。這樣做的目的就是能夠給用戶提供最可靠的、滿足用戶要求的最合適的服務(wù)。
3.VDL的服務(wù)組成。了解了虛擬數(shù)字圖書館的基本結(jié)構(gòu)之后,看一下該系統(tǒng)服務(wù)的邏輯結(jié)構(gòu)(如圖3所示):該系統(tǒng)總共分成了以下幾個邏輯組成部分:
用戶接口層:也可以叫做服務(wù)包裝層,對最終用戶來說虛擬數(shù)字圖書館是由數(shù)字圖書館的設(shè)計和數(shù)字圖書館的應(yīng)用兩大部分組成。數(shù)字圖書館的設(shè)計是為用戶定制滿足自身要求的數(shù)字圖書館提供可視化界面,此處是由高級服務(wù)根據(jù)用戶的具體要求設(shè)計出令用戶滿意的可視化界面,向用戶提供各種所需要的功能,包括基本服務(wù)(如檢索、瀏覽等)以及特殊服務(wù)(主要是第三方定制的完成特殊功能的服務(wù))。其二是數(shù)字圖書館界面,它是根據(jù)個性化信息生成合適的界面。
應(yīng)用服務(wù)層:該部分主要包含了數(shù)字圖書館的高級服務(wù)、低級服務(wù)和用戶定制的特殊服務(wù)以及一些基礎(chǔ)的服務(wù)設(shè)施。
其中高級服務(wù)主要包括以下幾種服務(wù):(1)虛擬數(shù)字圖書館設(shè)計工廠。它直接對用戶接口層的虛擬數(shù)字圖書館的定制設(shè)計提供功能支持,也可以說用戶接口層的該部分功能是虛擬數(shù)字圖書館設(shè)計工廠的可視化表現(xiàn)。用戶使用它就可以實現(xiàn)虛擬數(shù)字圖書館的設(shè)計,由它生成了一個虛擬數(shù)字圖書館的設(shè)計文檔,包括功能設(shè)計、資源使用、虛擬組織、共享策略以及數(shù)據(jù)庫結(jié)構(gòu)映射等等。(2)虛擬數(shù)字圖書館組裝工廠。它主要負責初始化并啟動已經(jīng)設(shè)計好的虛擬數(shù)字圖書館。首先它根據(jù)設(shè)計工廠生成的設(shè)計文檔來實例化一個虛擬數(shù)字圖書館實例,按照一定的規(guī)則(比如:用戶的需求、網(wǎng)格結(jié)點的負載情況以及網(wǎng)格結(jié)點的硬件配置等)選擇合適的網(wǎng)格結(jié)點作為宿主結(jié)點,啟動服務(wù),等待用戶的請求。(3)數(shù)字圖書館管理服務(wù)。這個服務(wù)主要是負責數(shù)字圖書館實例的管理功能,包括用戶的管理、資源的管理和數(shù)字圖書館結(jié)構(gòu)功能的管理。另外該部分還能處理一些系統(tǒng)錯誤,保證系統(tǒng)的正常運行。(4)其他高級服務(wù)。主要是輔助完成上面幾種服務(wù)。
基礎(chǔ)服務(wù)設(shè)施主要包括:(1)訪問控制服務(wù)。該服務(wù)主要是進行用戶的授權(quán)和安全性檢查。包括了對用戶身份的認證和對資源使用的權(quán)限檢查。(2)資源索引服務(wù)。該服務(wù)主要是負責管理和索引網(wǎng)格中的各種資源,包括計算資源、存儲資源、數(shù)據(jù)庫資源以及其他的特殊資源。(3)資源動態(tài)自組織服務(wù)。該服務(wù)主要是為了將網(wǎng)格服務(wù)進行合理的組織,形成特定結(jié)構(gòu)的拓撲結(jié)構(gòu),提高系統(tǒng)的服務(wù)發(fā)現(xiàn)效率和系統(tǒng)的穩(wěn)定性能。(4)存儲資源映射服務(wù)。該服務(wù)負責解決系統(tǒng)數(shù)據(jù)的存儲問題,即數(shù)據(jù)放到何處和如何放置以及如何重新獲取數(shù)據(jù)。(5)數(shù)據(jù)庫結(jié)構(gòu)映射服務(wù)。該服務(wù)主要是解決異構(gòu)數(shù)據(jù)庫的資源共享問題,通過數(shù)據(jù)庫結(jié)構(gòu)和標準結(jié)構(gòu)進行映射,完成資源的共享。(6)其他基礎(chǔ)服務(wù)設(shè)施。包括數(shù)據(jù)傳輸控制等完成網(wǎng)格系統(tǒng)運作的必須服務(wù)功能。
用戶定制服務(wù)主要是針對有特殊要求的用戶而設(shè)計的接口服務(wù),便于系統(tǒng)的擴展。
低層服務(wù)層:低層服務(wù)層一般來講主要是面向高層服務(wù)層提供基本的、單一功能服務(wù),并且直接與物理資源層進行交互,是整個系統(tǒng)的基礎(chǔ)部分,可以說是系統(tǒng)服務(wù)核心的基礎(chǔ),它在一定程度上限制了系統(tǒng)高層服務(wù)的功能。
三、VDL中的關(guān)鍵技術(shù)
1.數(shù)據(jù)庫的映射
整個虛擬數(shù)字圖書館的生成過程實際上分為兩大部分即設(shè)計與初始化啟動。設(shè)計也就是綜合考慮數(shù)字圖書館中所需要的功能結(jié)合系統(tǒng)中現(xiàn)有服務(wù)生成一個數(shù)字圖書館的結(jié)構(gòu)文檔,根據(jù)這個文檔去初始化數(shù)字圖書館實例。那么在這兩部分中間如何進行無縫結(jié)合、各個低級服務(wù)之間如何進行協(xié)調(diào)、服務(wù)如何理解操作者的意圖,所有這些問題都依賴于XML技術(shù)。
用戶設(shè)計的數(shù)字圖書館結(jié)構(gòu)用XML來存儲,程序通過分析XML文件來獲得用戶的意圖,并且用一個標準的XML定義文檔與用戶設(shè)計的數(shù)據(jù)庫結(jié)構(gòu)和數(shù)字圖書館結(jié)構(gòu)進行關(guān)聯(lián)映射,應(yīng)用服務(wù)通過這種方法來實現(xiàn)一般服務(wù)向特殊服務(wù)的轉(zhuǎn)化,滿足用戶多種多樣的需求,比如,當一個具有幾個數(shù)據(jù)庫使用權(quán)限的用戶來使用數(shù)字圖書館,用戶只需要提交一次查詢就可以對多個屬于不同數(shù)字圖書館的數(shù)據(jù)庫進行查詢,從而實現(xiàn)了數(shù)字圖書館的底層共享。
2.VDL中數(shù)據(jù)的存儲。虛擬數(shù)字圖書館的生成過程中會產(chǎn)生大量的配置文檔以及輔助文檔,這些文檔是虛擬數(shù)字圖書館的邏輯組織形式,另外,由于數(shù)字圖書館處理的是海量數(shù)據(jù),如何安全有效的管理使用這些數(shù)據(jù)就成為了虛擬數(shù)字圖書館中要解決的一個關(guān)鍵問題。為此借助于GT4中的GridFTP設(shè)計了一種管理模式(如圖5 所示):
海量數(shù)據(jù)的存儲利用一個索引服務(wù)來統(tǒng)一規(guī)劃,服務(wù)查詢索引定位資源,然后利用GridFTP進行傳輸,提供給請求者。其中配置文件十分重要,一旦損壞則整個虛擬數(shù)字圖書館就有可能癱瘓,因此要對其進行備份,首先對配置文件進行壓縮,然后利用GridFTP將壓縮的配置文件傳送到備份存儲資源上。之所以要對其進行壓縮是為了便于傳輸和存儲,提高服務(wù)質(zhì)量。
3.VDL中的資源發(fā)現(xiàn)。在虛擬數(shù)字圖書館設(shè)計以及初始化的時候需要動態(tài)的發(fā)現(xiàn)資源(包括結(jié)點資源和結(jié)點上的服務(wù)資源)。因此采用一種自組織的方式進行組織和檢索。首先各個服務(wù)根據(jù)自身的特點(包括服務(wù)性能、宿主負載情況等)自動加入相應(yīng)的虛擬組,并且每組之中動態(tài)選出一個主索引結(jié)點,然后再由主索引節(jié)點選出全局索引結(jié)點。
由圖6 可知,所有網(wǎng)格結(jié)點都能夠直接連到全局索引結(jié)點,組內(nèi)結(jié)點是雙向連接的,保持信息的雙向交互。系統(tǒng)中分組的個數(shù)由只能控制模塊控制,利用反饋機制試圖達到系統(tǒng)性能的最佳點。
在資源發(fā)現(xiàn)的模式選擇上也是由智能控制部分進行檢測管理。集中式的資源發(fā)現(xiàn)在特定的條件下有著極高的性能,但是當系統(tǒng)負載過高的時候性能就會急劇下降,所以智能模塊監(jiān)視系統(tǒng)的負載,一旦負載超過閾值就改變發(fā)現(xiàn)模式,由集中式轉(zhuǎn)為分層的分布式,在最早高的情況下采用純分布式的資源發(fā)現(xiàn)模式,最大限度地提高資源發(fā)現(xiàn)的效率。
利用這種模型進行資源的發(fā)現(xiàn)可以提高系統(tǒng)的穩(wěn)定性,即使部分網(wǎng)格結(jié)點出現(xiàn)問題整個系統(tǒng)仍然能構(gòu)正常運行,另外能夠提高系統(tǒng)的性能。
結(jié)束語
本文主要介紹了在網(wǎng)格環(huán)境下的數(shù)字圖書館的體系結(jié)構(gòu)模型和虛擬數(shù)字圖書館的自動生成過程,然后介紹了其中的一些關(guān)鍵技術(shù),包括數(shù)據(jù)映射、資源發(fā)現(xiàn)和管理以及數(shù)據(jù)存儲等。
由于基于網(wǎng)格技術(shù)的數(shù)字圖書館的自動生成的研究目前還很少,在國內(nèi)更是一片空白,因此其中的很多問題都有待于進一步研究,雖然數(shù)字圖書館的自動生成還面臨很多的問題,但是他的前景十分廣闊,它不但可以提高現(xiàn)有數(shù)字圖書館的服務(wù)質(zhì)量以及資源的共享,最主要的是它提供生成瞬時數(shù)字圖書館的能力,滿足一些臨時研究項目的要求。
參考文獻:
[1] DILIGENT項目 DILIEGNT Project Overview http://diligentproject.ors/,2006.
[2] EGEE-DILIGENT Interaction Report.4,2005.
[3] Padmanabhan,A.,Shaowen Wang,Ghosh,S.,Briggs,R.:A self-organized grouping (SOG) method for efficient Grid resource discovery
Grid Computing,2005.The 6th IEEE/ACM International Workshop on13-14 Nov. Page(s):6 pp.
[責任編輯 王玉妹]