(1. 燕山大學 信息科學與工程學院,河北 秦皇島 066004; 2. 北京航空航天大學 軟件開發環境國家重點實驗室, 北京 100083)
摘 要:
針對現有數字圖書館網格系統中存在的瓶頸、低擴展性及節點自主性差等問題,引入P2P自組織管理策略,用P2P和網格技術互補特性及自主性管理策略來彌補這些缺陷。首先提出一個基于P2P自組織的三層數字圖書館網格結構模型;然后分析模型的體系結構并對主要模塊的功能進行了詳細的介紹;最后通過數字圖書館網格體系結構的Petri net描述方法對模型進行了評價。
關鍵詞:網格; 對等網技術; 自組織管理; 模型; 體系結構; Petri網
中圖分類號:TP391文獻標志碼:A
文章編號:1001-3695(2009)04-1357-03
Digital library grid model based on P2P self-organized
WANG Chang-wu1, ZHAO Jing1, ZHANG Fu-zhi1,2
(1. College of Information Science Engineering, Yanshan University, Qinhuangdao Hebei066004, China; 2. State Key Laboratory of Software Development Environment, Beihang University, Beijing 100083, China)
Abstract:For the bottleneck problem, low scalability and poor node freedom in the grid system, brought the P2P technology into digital library grid construction , used the complementary character of P2P and grid technology and freedom policy to make up for these deficiencies. First this paper put up a three-level digital library model based on P2P.Second,analyzed model structrue and introduced the main module function in detail.At last evaluated the model by studying the Petri net method of digital library grid model architecture.
Key words:grid; P2P technology; self-organized management;model; architecture; Petri net
隨著數字圖書館數量的日益增多,世界各地的數字圖書館形成了一個個信息孤島。如何有效地將這些數字圖書館聯合起來,共享豐富的數字資源成為了數字圖書館領域的焦點問題。用先進的網格技術來搭建數字圖書館網格也得到了越來越多的關注。目前盡管有不少人提出了數字圖書館網格設計方案并得到了一定程度上的實現,但是還存在以下問題:
a)數字圖書館網格系統的實現還是以C/S結構為主,需要使用中央服務器負責資源的搜索和協同,這樣服務器就會成為系統的一個瓶頸,同時還會帶來較低的擴充性和容錯性[1]。
b)絕大部分數字圖書館網格系統配置過于復雜,主要應用在高端的服務器上,無法在普通PC機上部署。
c)在現有的數字圖書館網格系統中,各個節點必須遵循一定的約定,資源存儲方式、管理資源的策略均受到網格系統的一些限制,各個節點的自主性低。
考慮到數字圖書館網格中的每個數字圖書館節點處于對等地位。每個節點既可以是服務的提供者,又可以是服務的請求者,既可以充當客戶端又能充當服務器。鑒于這些特點,引入P2P技術。在P2P系統中,每個節點都是對等的,不存在服務器的概念,沒有C/S結構固有的缺陷;P2P系統的資源管理協議比較成熟,它采用的是主動報告策略,每一個節點周期性地向網絡中的其他節點報告它的資源現狀,同時發現其鄰居節點的相應信息。采用P2P系統中的分散資源發現模型可以提高網格模型的開放性; P2P技術可以使得Internet用戶很容易地加入到系統中,新節點的加入會給系統增加新的資源;此外, P2P網絡還具有自組性、容錯冗余和匿名等特性。鑒于網格和P2P計算的互補特性和數字圖書館節點的特點,本文利用P2P技術與網格技術相結合來構建數字圖書館網格。
基于P2P自組織管理的數字圖書館網格結構模型中,將各個數字圖書館節點在實際中建立通信連接。對于各個數字圖書館節點首先按照P2P網絡中節點的網絡特性對節點進行分組;其次分組內按照節點傳輸性能進行分層。
1 基于P2P的數字圖書館網格結構模型
國外將P2P技術和網格技術構建數字圖書館的研究項目[2]很多,如DELOS、FreeLib、Digital Library Grid等,它們都是基于OAI模型的,大都側重于數字資源的采集。而且目前只有DELOS項目已初步完成,其他項目還在研究中。
國內將P2P技術和網格技術構建數字圖書館的研究項目比較少。ChinaGrid研究小組正在進行的CADLISGRID項目實驗中準備用P2P技術和網格技術構建數字圖書館。研究小組提出數字圖書館的P2P也是研究方向之一[3]。P2P能夠在各個數字圖書館之間共享數據,使得數字圖書館能夠滿足大量的在線訪問請求,平衡各個節點的負載,避免以服務器為中心的網絡結構的性能瓶頸。利用P2P技術,圖書館可以將經常訪問的內容發布到其他的數字圖書館,讀者可以就近訪問。
本文提出的模型結構示意圖如圖1所示。模型分為應用層、網格層和P2P層。網格層的服務提供者通常能夠提供有保障的計算服務,其節點負責資源聚合、調度、身份認證和權限管理等功能。P2P層主要為網格層提供資源管理和節點發現等功能。網絡層的服務提供者是地理上廣泛分布的數字圖書館節點為網格層提供大量的網絡邊緣計算資源。同時網格節點可以加入P2P層和普通PC以對等節點的方式組建P2P網絡,這樣網格節點之間就能以P2P方式進行直接通信,并可共享P2P層提供的大量網絡邊緣計算資源。
用戶通過網格層提供的網格服務接口可以訪問網格層和P2P層提供的資源,P2P層的資源是通過網格服務的形式提供給用戶的,相對于用戶來說P2P層是透明的。
在這個模型中將下層的P2P資源看做是一種虛擬的網格資源。因此網格服務可以作為下層P2P資源的一個包裝器或者作為普通網格服務進入下層P2P網絡的一個入口。例如,在P2P層匯聚了許多PC資源,其中的一些PC組成了一個子P2P網絡,這樣就可以將這個子P2P網絡看做一個獨立的存儲資源,并且這個存儲資源被虛擬成一個網格服務供用戶應用程序訪問。這樣,就可以利用P2P層的資源在網格層映射一個網格服務。總的來說,在這個模型中,網格層負責提供服務,且是計算任務的調度者和管理者;而P2P層則主要作為一個資源池且在底層提供資源的發現和聚集。
處于各個地理位置的數字圖書館包括各種資源,主要是硬件資源和軟件資源、數據資源和通信資源。加入網格系統的每個數字圖書館節點,通過網格門戶進行注冊,根據自組織的管理策略原則找到適合自己的分組,然后通過網格服務包裝器組件將資源包裝成網格服務的形式加入到數字圖書館網格中。每個數字圖書館節點擁有一張本地資源表,表中標記所有資源的位置、名稱、ID、狀態。當節點向網格系統注冊時,網格中心節點的資源列表中擁有了該節點可共享的所有資源基本情況。當某一節點欲離開網格系統時,首先判斷節點所有的資源是否全部處于空閑狀態時,才允許離開。當用戶向網格系統提交一任務請求時,首先通過映射機制將任務映射成資源,然后查看全局資源視圖中有哪些資源可以完成該任務,再估算一下代價開銷(包括傳輸代價、時間延遲)。選用代價開銷低的一組資源用于完成該任務,這樣提高了效率,減少了一些不必要的開銷。具體的資源選擇策略將在下一步的工作中研究。
2 基于P2P自組織管理的模型體系結構
2.1 P2P自組織管理策略[4]
自組織管理機制就是在考慮到節點實際網絡位置的對等網絡下設計的一個 P2P網絡應用方案。此網絡具有較低的網絡維護開銷和較低的定位復雜度。文獻[4]中提出了P2P網絡中自組織的節點管理機制并仿真實驗驗證了該管理機制的有效性。
自組織管理機制主要包含兩個方面,首先按照P2P網絡中節點的網絡特性對節點進行分組;其次分組內按照節點傳輸性能進行分層。分組的好處在于極大地優化節點間的傳輸性能,并將節點的控制從服務器下放到分組,采取分布式的方法讓節點在對等網絡中自主去尋找合適的位置。組內分層的目的是讓性能優異的節點處于組內的上層,優先獲取數據流,以便數據流能通過這些高輸出帶寬的節點盡快傳播給組內的各成員。對每一個分組而言,這些性能優異的節點組成了主節點列表,由它們負責分組內數據、信息的分發、維護與管理。
這種上層以tree與下層以mesh為主體的混合結構,極大地增強了網絡的魯棒性。當網絡條件變化時,整個網絡會隨之動態調整,如新節點的退出或失效不會導致轉發路徑的斷裂,轉發路徑具有自我修復、自我最優化的能力。因此,這種節點管理機制可以應用于大型文件的共享。
2.2 模型體系結構
圖2表示模型的體系結構。主要分為兩個部分,即上層為網格層和下層為P2P層。兩層都無須改變現有的通信機制,也無須作協議間的轉換,因此減少了模型實現的復雜度。
在模型中采用GT4作為網格服務架構平臺。對于P2P層,選擇使用JXTA開發平臺。JXTA是Sun公司推出的一個P2P應用開發的網絡計算平臺。在眾多P2P平臺中之所以選擇JXTA平臺,是因為它的目標不是解決特定的問題,而是為了讓更多的應用程序成為可能。JXTA是一個具有一組支持P2P應用程序標準的框架,而不是一個應用程序。JXTA致力于提供一個基本的P2P架構, P2P應用可建立其上面。這個框架包含一套協議,而這些協議與語言、網絡、平臺無關。
2.3 主要模塊功能
網格層主要以網格服務的形式存在,為用戶應用程序提供訪問接口,網格節點之間通過SOAP(simple object access protocol)通信。P2P層主要包括以下兩個模塊:
a)節點控制器。其功能是將一個網格節點映射成P2P層的一個節點,而這個節點能夠與P2P節點共同組建P2P網絡;在P2P層映射的所有網格節點使用P2P技術通信,這樣在P2P層網格層可以被看做是一個虛擬的P2P網絡,且由于網格層與P2P層分離,P2P的通信方式只存在P2P層,并不會影響網格層的執行效率。節點控制器由通信管理、節點組織管理、節點搜索管理以及JXTA基礎庫組成,當一個節點加入P2P網絡時,節點控制器負責創建節點、加入節點組、搜索鄰居節點與各節點之間的通信;當節點離開時將節點退出節點組,并通知其他節點。
b)網格服務包裝器。其功能是將P2P的PC資源通過包裝虛擬化為一個網格服務,用戶可以通過這個虛擬的網格服務接口直接使用P2P的資源。這樣,普通的PC就可以在沒有安裝網格中間件軟件包的情況下為上層網格提供資源,解決了當前情況下普通PC不能安裝復雜的網格中間件問題。網格服務包裝器主要由子任務接收器、任務分配器、資源管理器以及JXTA基礎庫組成。網格層通過網格服務接口向下分配子任務,網格服務包裝器由任務接收器接收任務并記錄,然后任務分配器再將任務分配給資源管理器,資源管理器下的節點最后完成分配的計算任務并將結果返回。
3 數字圖書館網格模型體系結構的Petri net描述
Petri net是 Carl A. Petri博士于 1962年在其博士論文中提出的一種描述計算機系統事件之間因果關系的圖形化建模工具, Petri被作為一種過程建模和分析工具提了出來。隨著Petri網理論的發展和完善,出現了各種各樣的Petri 網系統。Petri網直觀的圖形表示和堅實的數學基礎使其特別適合描述異步并發系統。由于它能精確地描述離散事件的動態過程,網格系統實際上是一種離散事件系統,如將模型體系結構中的各功能模塊看做Petri net中的庫所;將模塊之間提供的功能服務看做Petri net中的變遷;將模塊與模塊之間的信息流看做Petri net中的有向邊,就可以采用 Petri net理論對網格體系結構模型進行描述。下面首先給出 Petri net的一般定義,然后對 Petri net的概念進行擴充,給出基于Petri net的網格結構模型體系結構的描述。
3.1 Petri net的相關概念[7]
定義1 一個 Petri net的基本成分可表示為一個三元組BG=(P,T;F),并滿足以下條件:P∩T=;P∪T≠;F(P×T)∪(T×P);dom(F)∪cod(F)=P∪T。
定義2 Petri net可以進行分層,遵從的規則如圖3所示。
定義3 典型軟件結構的 Petri net表示。其中:P={p1,p2 ,…, pn}是 BG的有窮庫所;T ={t1,t2,…,tm}是 BG的有限變遷;dom(F)、cod(F)分別表示信息流F的前集和后集。
3.2 數字圖書館網格結構模型的Petri net描述
定義4 數字圖書館網格體系結構 DGS是一個Petri net ,DGS =BG,即GS=( P, T; F) 。其中:P={p1 , p2…, pn}表示網格資源或網格模型體系結構的各個功能模塊;T={t1,t2,…,tm}表示各功能模塊及資源之間提供的服務;F定義了 P與 T之間的信息流關系。
在數字圖書館網格中,網格門戶用p1表示,身份認證和權限管理模塊分別用p2和p3表示,檢索、瀏覽等服務模塊用p4表示,任務接受、任務分配、資源管理模塊分別用 p5、p6、p7表示,節點映射模塊用 p8表示。為說明各個數字圖書館的資源(包括硬件資源、軟件資源、數據資源和通信資源)地理位置差異性,用三個庫所表示為p9、p10、p11,各個模塊間對應的服務分別為t1、t2、t3、t4、t5 、t6 、t7 、t8 、t9 、t10。各庫所及變遷的意義如表1所示。數字圖書館網格的調度服務的Petri net模型如圖4所示。
表1 數字圖書館網格模型中調度服務的庫所和變遷意義
庫所意義變遷意義
P1網格門戶T1用戶通過網格門戶登錄網格系統
P2身份認證T2身份認證模塊已準備好或已執行完身份認證
P3權限管理T3權限管理已準備好或已執行完權限管理
P4檢索、瀏覽等服務T4根據用戶的權限提供不同類型的服務
P5任務接受T5任務接受模塊已準備好或接受完任務
P6任務分配T6任務分配模塊已準備好或已分配完成
P7資源管理T7資源管理模塊已準備好或已執行完資源管理
P8節點映射T8節點映射模塊已準備好或已執行完節點映射
P9節點1資源
P10節點2資源
P11節點3資源
這些理論分析為下一步的模型評價及Petri理論分析系統死鎖等問題提供了必要的理論基礎。
4 模型特點
與傳統的數字圖書館網格結構模型相比,該模型具有七個特點:a)網格中的節點可以通過P2P層采用P2P節點方式通信,解決了當前網格系統中C/S結構的問題[5]。b)底層使用P2P技術為網格提供資源發現,解決了網格在資源發現上的不足。c) P2P層分布式特性可以提高網格的規模性和可擴展性[6]。d)采用節點自組織管理的方式,使節點的控制從服務器下放到分組,大大減輕了中心服務器的工作負擔。e)節點間具有高度自主性。每個節點自主的去網絡中尋找自己的分組;每個節點可擁有不同的管理資源的方式。f) P2P層節點間有利于更好的協作與共享。g)服務使用者與提供者之間具有很好的松耦合性。
5 結束語
本文首先提出了基于P2P的數字圖書館網格結構模型;然后采用P2P自組織管理策略對底層資源節點進行管理并詳細說明了各個模塊的功能;最后用Petri net方法對模型體系結構進行了描述總結出模型的特點。為進一步的模型分析提供了必要的理論基礎。
該模型充分利用P2P技術的優勢解決了網格中存在的一些問題:如網格中的節點可以通過P2P層采用P2P節點方式通信,解決了當前網格系統中C/S結構的問題;底層使用P2P技術為網格提供資源發現,解決了網格在資源發現上的不足;P2P層分布式特性可以提高網格的規模性和可擴展性,有利于節點間更好的協作與共享。自組織的管理策略提高了各個節點的自主性并減少了節點管理的工作量,提高了底層節點間傳輸效率。
參考文獻:
[1]左東石,孫龍清.網格與P2P計算混合模型研究[J].微計算機信息,2006,22(36):126-128.
[2]韓毅,畢強,李賀.國外基于網格技術的數字圖書館內容與應用的比較研究[J].情報學報,2006,25(4):221-230.
[3]王文清.CADLISgrid試驗與研究[EB/OL].(2005-08).[2007-12].http://digitalchina.pku.edu.cn/pku/uploadfile/200712/2007120314103253.pdf.
[4]楊文俊.P2P網絡系統中節點自組織管理機制[J].計算機技術與發展,2006,16(7):56-60.
[5]PIERRE G. How CN and P2P technologies may help build next-generation grids[C]//Proc of the 2nd Workshop on Use of P2P, GRID and Agents for the Development of Content Networks. New York: ACM Press, 2007:25-28.
[6]AMORETTI M, ZANICHELLI F, GONTE G. SP2A: a service-oriented framework for P2P-based grids[C]//Proc of the 3rd International Workshop on Middleware for Grid Computing. New York: ACM Press,2005:1-6.
[7]朱赟,李曦,龔育昌,等.基于Petri網的ASIP體系結構形式化建模方法研究[J].小型微型計算機系統,2006,27(9):1722-1725.