(計算機軟件與理論專業(yè)論文)面向?qū)ο蟮膒2p網(wǎng)絡(luò)基礎(chǔ)設(shè)施平臺設(shè)計與實現(xiàn).pdf_第1頁
(計算機軟件與理論專業(yè)論文)面向?qū)ο蟮膒2p網(wǎng)絡(luò)基礎(chǔ)設(shè)施平臺設(shè)計與實現(xiàn).pdf_第2頁
(計算機軟件與理論專業(yè)論文)面向?qū)ο蟮膒2p網(wǎng)絡(luò)基礎(chǔ)設(shè)施平臺設(shè)計與實現(xiàn).pdf_第3頁
(計算機軟件與理論專業(yè)論文)面向?qū)ο蟮膒2p網(wǎng)絡(luò)基礎(chǔ)設(shè)施平臺設(shè)計與實現(xiàn).pdf_第4頁
(計算機軟件與理論專業(yè)論文)面向?qū)ο蟮膒2p網(wǎng)絡(luò)基礎(chǔ)設(shè)施平臺設(shè)計與實現(xiàn).pdf_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

(計算機軟件與理論專業(yè)論文)面向?qū)ο蟮膒2p網(wǎng)絡(luò)基礎(chǔ)設(shè)施平臺設(shè)計與實現(xiàn).pdf.pdf 免費下載

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 摘要 :p e e r t o p e e r ( 簡稱為p 2 p ) 計算模式現(xiàn)在得到越來越廣泛的應(yīng)用,針對不同 用途的p 2 p 應(yīng)用正在迅速流行。然而所有這些應(yīng)用都是獨立開發(fā),缺乏統(tǒng)一的通 信協(xié)議和體系結(jié)構(gòu),這就制約了新的應(yīng)用的開發(fā)和應(yīng)用間的互操作。 為了簡化p 2 p 應(yīng)用的開發(fā),促進p 2 p 計算的發(fā)展,我們開發(fā)了p 2 p 網(wǎng)絡(luò)基礎(chǔ) 設(shè)施平臺。我們通過將p 2 p 應(yīng)用共同需要的功能抽象出來,為這些應(yīng)用提供統(tǒng)一 和簡單的調(diào)用接口,使應(yīng)用開發(fā)者能夠?qū)W⒂趹?yīng)用本身的設(shè)計。- 同時,統(tǒng)一的傳 輸機制和x m l 消息的使用極大地方便了不同應(yīng)用間交換信息。, n 本文首先介紹了p 2 p 平臺的體系、控制核心,服務(wù)框架。提出了p 2 p 平臺的 基本結(jié)構(gòu)。 接下來詳細(xì)描述了平臺各基本服務(wù)結(jié)構(gòu)、設(shè)計和實現(xiàn),涉及x m l 消息解析、 獨立于網(wǎng)絡(luò)環(huán)境的通信體系以及分布式查找協(xié)議。 最后給出了利用這個平臺實現(xiàn)的p 2 p 文件共享應(yīng)用實例,展現(xiàn)了基于這個平 臺構(gòu)建p 2 p 應(yīng)用的便捷性和優(yōu)勢。 關(guān)鍵詞:對等網(wǎng)絡(luò)、對等實體、x m l 消息、協(xié)議綁定 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) a b s t r a c t t h ep e e r - t o p e e rc o m p u t i n gm o d eh a s g a i n e dg r o u n d ,w i t h w h i c hm a n yp 2 p a p p l i c a t i o n s f o rv a r i o u ss c e n e sa r e b o o m i n g t h ea p p l i c a t i o n s a r e d e v e l o p e d i n d i v i d u a l l y ,h o w e v e r ,w i t h o u tu n i f i e di n t e r f a c e sa n dc o n f o r m i n gt r a n s p o r tp r o t o c o l s , w h i c hh a n d i c a pt h ed e v e l o p m e n to fp 2 pa p p l i c a t i o n sa n db r e a kt h ei n t e r o p e r a b i l i t y a m o n g t h ep 2 p a p p l i c a t i o n s t os i m p l i f yc o n s t r u c t i n gap 2 pa p p l i c a t i o na n dd r i v et h ep 2 p c o m p u t i n gm o d e 1 w e i m p l e m e n tap 2 p i n f r a s t r u c t u r ep l a t f o r m b ya b s t r a c t i n gc o m m o nm o d u l e sf r o m t h ep 2 pa p p l i c a t i o n s ,w e p r o v i d et h ed e v e l o p e r s as i m p l ea n du n i f i e d i n v o k i n g i n t e r f a c e s ot h a tt h e yc a nf i xt h e i rm i n do nt h eb u s i n e s sl o g i co ft h ea p p l i c a t i o n f u r t h e r m o r e ,t h et r a n s p o r tp r o t o c o lb a s e do nx m lm e s s a g e sf a c i l i t a t e si n f o r m a t i o n e x c h a n g ea m o n g t h ea p p l i c a t i o n s i nt h e p a p e r , if i r s t l yi n t r o d u c et h ep 2 pp l a t f o r m sa r c h i t e c t u r e ,c o n t r o lk e r n e la n d s e r v i c e sf r a m e ,w h i c hr e p r e s e n tt h eb a s i cs t r u c t u r eo ft h e p l a t f o r m i nt h ef o l l o w i n gc h a p t e r s ,id i s c u s sd e t a i l e dt h eb a s i cs e r v i c e s s t r u c t u r e s ,d e s i g n a n di m p l e m e n t a t i o n ,i n c l u d i n gx m l m e s s a g e s ,t r a n s p o r ta r c h i t e c t u r ei n d e p e n d e n to f s p e c i f i cn e t w o r kp r o t o c o l ,a n dd i s t r i b u t e dl o o k u pp r o t o c 0 1 f i n a l l y iu s e t h ep l a t f o r mt oc o n s t r u c ta s i m p l e p 2 pf i l e ss h a r i n gd e m o ,b yw h i c h is h o wt h ec o n v e n i e n c eo fd e v e l o p i n gap 2 p a p p l i c a t i o r b a s e do n t h ep l a t f o r ma n dt h e a d v a n t a g e so f i t k e y w o r d s :p e e r - t o p e e rn e t w o r k ,p e e r , x m lm e s s a g e ,p r o t o c o lb i n d i n g 3 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 第一章引言 1 1 p e e r - t o - p e e r 一全新的計算模式 現(xiàn)在代表一種新的i n t e m e t 計算模式的革新正在發(fā)生,它極大地改變了現(xiàn)有 的計算方式和軟件運行模式。 這場革新隨著p e e r t o p e e r ( 以下簡稱為p 2 p ) 計算的出現(xiàn)而引發(fā),由于 n a p s t e r 、s c o u r 、f r e e n e tp r o j e c t ,g n u t e l l a 和s e t l h o m e 的成功,p 2 p 計算也越 來越引起公眾的主意。( p e e l 一對等實體,參與p 2 p 應(yīng)用的各種網(wǎng)絡(luò)結(jié)點。) p 2 p 計算可以簡單的定義為通過直接交換信息來共享計算資源和服務(wù)。這種 計算模式得到主流計算機用戶和p c 業(yè)界成員的推動。 1 9 9 9 年九月出現(xiàn)的n a p s t e rm p 3 音樂文件共享應(yīng)用到2 0 0 0 年中用戶已經(jīng)超 過2 千萬。 截至2 0 0 1 年初,用于分布處理射電望遠鏡數(shù)據(jù)的s e t i h o m e 程序已經(jīng)吸引 了超過2 6 0 萬的用戶,這些用戶總共貢獻了超過5 0 萬年的c p u 時間用來尋 找地外文明。 2 0 0 0 年十月,2 5 0 家公司和機構(gòu)的3 5 0 多位代表召開了第一屆p 2 pw o r k i n g g r o u p 會議。 p 2 p 計算提供傳統(tǒng)c l i e n t s e r v e r 體系的替代技術(shù)。在部署現(xiàn)有的網(wǎng)絡(luò)、服務(wù) 和客戶基礎(chǔ)設(shè)施的同時,p 2 p 提供了不同于c l i e n t s e r v e r 的計算模式。這兩種模 式可以共存、交叉和互相補充。 在c l i e n t s e r v e r 模式中,客戶向網(wǎng)絡(luò)中的服務(wù)器提出請求,服務(wù)器負(fù)責(zé)處理 和響應(yīng)請求。在p 2 p 計算中,每個參與的對等實體作為客戶的同時還具有服務(wù)層 功能,這就使每個對等實體在特定的應(yīng)用環(huán)境下既作為客戶也作為服務(wù)器。p 2 p 應(yīng)用可以實現(xiàn)如下功能:分布存儲、分布式計算、消息服務(wù)、安全和文件分布共 享,這些功能都通過對等實體間直接交換信息實現(xiàn)。 p 2 p 網(wǎng)絡(luò)中的每個對等實體都可以發(fā)出請求,也可以響應(yīng)來自其他對等實體 的請求。這種與其他用戶直接交換信息的能力使p 2 p 用戶從傳統(tǒng)的對中心服務(wù)器 的依賴中解放出來。用戶可以有更高級別的自主權(quán)和對服務(wù)的控制權(quán)。 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) p 2 p 計算的最大的好處在于團體組織,用戶可以組織一個a dh o c 組進行有效 地和安全地請求處理、資源共享、協(xié)同工作和通信。隨著p 2 p 計算的發(fā)展,我們 可以預(yù)計將來會出現(xiàn)各種各樣的在線團體。 圖1 - 1 描述了c l i e n t s e r v e r 模式和p 2 p 模式的不同,同時也描述了兩種模式 如何疊加和共存。在c l i e n t s e r v e r 模式中,每次交換信息和通信都通過中心服務(wù) 器,并由中心服務(wù)器管理。在p 2 p 計算模式中,對等實體直接進行通信和交換信 息。一些p 2 p 應(yīng)用也許在某些時候使用服務(wù)器,但p 2 p 計算的總體影響是將網(wǎng) 絡(luò)計算分散。 圖1 - 1 :c l i e n t s e r v e r 和p 2 p 模式 1 2p 2 p 應(yīng)用領(lǐng)域及當(dāng)前研究動態(tài) p 2 p 目前在下列領(lǐng)域具有很好的應(yīng)用前景: 基于w e b 的社廚。具有共同興趣的小組通過w e b 站點創(chuàng)建自己的i n t r a n e t 。 鬯子廊務(wù)。p 2 p 可以連接供應(yīng)鏈,提供更有效的分布信息、內(nèi)容或軟件, 以及在原始結(jié)點上保存信息項目。 勞琵。p 2 p 基礎(chǔ)設(shè)施為開發(fā)在線游戲提供基礎(chǔ)并且不需要中心服務(wù)器。開 發(fā)者可以把工作重心放在游戲特性上而不是通信協(xié)議接口。 搜霜羅倩氍通過在可能的地址上直接搜索取得最新的信息。 屬霉防辮。p 2 p 社團結(jié)點之間允許協(xié)同進行病毒檢測和預(yù)警,同時能夠?qū)?進一步的攻擊進行隔離。 分布:疑務(wù)。例如,在線教學(xué)需要提供大量視頻片斷。如果大量的數(shù)據(jù)文件 和使用者之間物理距離很近,應(yīng)用就可以提供很好的服務(wù)質(zhì)量。因此多個 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 客戶提供存儲空間比單個服務(wù)器有更好的靈活性和可靠性。 協(xié)同刃翟e 。包括軟件開發(fā)、協(xié)作文檔處理和協(xié)同圖像處理等多種應(yīng)用。 雖然p 2 p 計算的潛力很大而且業(yè)界的興趣也很高,還是有幾方面問題要解決。 到目前為止,p 2 p 應(yīng)用還不能容易地和其他p 2 p 應(yīng)用通信,每個應(yīng)用有自己一套 基本服務(wù)和插件。更不利的是新的應(yīng)用開發(fā)者不能利用已有的p 2 p 應(yīng)用開發(fā)成 果。結(jié)果應(yīng)用開發(fā)者花費大量時間和精力開發(fā)別人已經(jīng)成功開發(fā)過的服務(wù)。本來 這些時間和精力可以用來為新服務(wù)增加更好的功能和特性。 這個問題可以通過業(yè)界合作使p 2 p 應(yīng)用之間可以互操作來解決。通過定義一 組為p 2 p 計算提供所需功能的公共服務(wù)實現(xiàn)互操作,這些公共服務(wù)可以作為中間 件層。這樣開發(fā)者不需要反復(fù)創(chuàng)建相同的基本服務(wù)。互操作意味著p 2 p 應(yīng)用可以 在不同的軟件環(huán)境下進行通信。使用不同編程語言的應(yīng)用可以通過公共中間件通 信和集成,并且公共中間件提供與其他非p c 設(shè)備和服務(wù)器集成的機制和基礎(chǔ)設(shè) 施,非p c 設(shè)備包括無線和手持式產(chǎn)品以及多種網(wǎng)絡(luò)設(shè)備。 圖1 - 2 給出了p 2 p 應(yīng)用的層次結(jié)構(gòu),其中p 2 p 中間件層位于對等實體本地操 作系統(tǒng)和p 2 p 應(yīng)用調(diào)用的接口層之間。 圖1 2 :p 2 p 棧 不久前,s u n 微系統(tǒng)公司公開了旨在建立p 2 p 通用技術(shù)基礎(chǔ)的j x t a 計劃。 “j x t a 技術(shù)是網(wǎng)絡(luò)編程和計算的平臺,用以解決現(xiàn)代分布計算尤其是p 2 p 計算 中出現(xiàn)的問題”。j x t a 研究項目提供給用戶更便捷地訪問連接在互聯(lián)網(wǎng)上的個人 電腦資源的新框架,進一步拓展互聯(lián)網(wǎng)的空間。 j x t a 技術(shù)提供的基礎(chǔ)機制試圖解決當(dāng)前分布計算應(yīng)用中面i 臨的問題,幫助 實現(xiàn)新一代廣泛( u b i q u i t o u s ) 、安全( s e c u r e ) 、可互操作( i n t e r o p e r a b l e ) 以及異構(gòu) ( h e t e r o g e n e o u s ) 的應(yīng)用。目前它支持基于j a v a 技術(shù)的平臺和系統(tǒng)。而將來j a t x 技術(shù)將不受到內(nèi)存的限制而支持更多小型移動設(shè)備。j x t a 通過j a v a 技術(shù)和x m l 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 數(shù)據(jù)表達的結(jié)合,提供了強大的功能使得不同應(yīng)用得以交互,并且可以克服目前 p 2 p 軟件中的限制。同時,通過小型、簡單、便于開發(fā)的構(gòu)造模塊,j x t a 將使 開發(fā)者從建立各自框架的復(fù)雜工作中得以解放,可以潛心關(guān)注于構(gòu)建各類新穎、 具有創(chuàng)造性的分布式計算應(yīng)用。 目前,國際上對p 2 p 基礎(chǔ)平臺的研究正在積極展開,由于起步不久還沒有形 成固定的標(biāo)準(zhǔn)。雖然我國在這方面還缺乏相應(yīng)的研究,但是構(gòu)建p 2 p 平臺的基礎(chǔ) 技術(shù)和分布對象處理技術(shù)已經(jīng)相當(dāng)成熟,這給我們提供了迎頭趕上的機會和技術(shù) 基礎(chǔ)。 我這次畢業(yè)設(shè)計的工作就是開發(fā)一個面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施,完成核 心資源和服務(wù)表示、基礎(chǔ)協(xié)議以及計算環(huán)境的設(shè)計和實現(xiàn)。 1 3p 2 p 基礎(chǔ)平臺的基本概念 1 3 1 什么是p 2 p p 2 p 網(wǎng)絡(luò)中的結(jié)點不僅執(zhí)行c l i e n t s e r v e r 模式中c l i e n t 功能,它也包含額外 的一層軟件執(zhí)行s e r v e r 的功能,這樣結(jié)點可以響應(yīng)來自其他結(jié)點的請求。請求和 響應(yīng)的范圍以及如何執(zhí)行由具體應(yīng)用指定。一般來說,請求是對屬于其他結(jié)點的 資源的訪問,可以請求訪問文件、執(zhí)行計算或者傳遞消息。 p 2 p 計算中的計算作名詞時,指的是計算模式或框架,提供結(jié)點直接交互的 能力。直接交互能力的重要特征是計算環(huán)境分布化。 p 2 p 計算中的計算作動詞時,指的是p 2 p 框架做些什么。通過p 2 p 服務(wù),可 以構(gòu)造許多基于終端用戶的應(yīng)用,如存儲、計算、消息服務(wù)、安全、分布文件共 享等。這些應(yīng)用的共同特點就是共享具有協(xié)作方式的資源。 一些p 2 p 提倡者提出“純p 2 p 計算”和“混合p 2 p 計算”的區(qū)別?!凹僷 2 p 計算”指所有參與的計算機都是對等實體的模式,例如f r e e n e t ,不使用中心服 務(wù)器進行控制、協(xié)同或管理對等實體間的信息交換。在“混合p 2 p 計算”模式中, 應(yīng)用依賴中心服務(wù)器執(zhí)行某些需要的功能。例如,n a p s t e r 要求用戶首先要連接 到控制服務(wù)器上讀取文件列表。圖1 - 1 中的p 2 p 模型是純p 2 p 計算模型,圖1 3 給出混合p 2 p 計算模型。 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 圖1 - 3 :混合p 2 p 計算模型 1 3 2p 2 p 基礎(chǔ)平臺的基本設(shè)計原則 不存在單結(jié)點失敗。 對等實體廿j 以自發(fā)組織為一個自治組。 對等實體可以適應(yīng)各種網(wǎng)絡(luò)環(huán)境。 資源和服務(wù)表示與網(wǎng)絡(luò)平臺、操作系統(tǒng)無關(guān)。 統(tǒng)一的服務(wù)和服務(wù)訪問接1 :3 。 1 3 3p 2 p 基礎(chǔ)平臺的組成部分 p 2 p 基礎(chǔ)平臺主要由控制核心、x m l 消息傳輸協(xié)議、分布式查找服務(wù)以及成 員服務(wù)組成。在第二章中,我將介紹p 2 p 基礎(chǔ)平臺的結(jié)構(gòu)和資源表示:在第三章 中描述p 2 p 平臺服務(wù)框架和控制核心的設(shè)計和實現(xiàn);在第四章中討論x m l 消息 傳輸協(xié)議的設(shè)計和實現(xiàn);在第五章中闡述分布查找服務(wù)設(shè)計;在第六章中介紹成 員服務(wù)的設(shè)計;最后在第七章中介紹如何使用p 2 p 平臺開發(fā)p 2 p 應(yīng)用。 1 4 小結(jié) 本章介紹了p 2 p 計算的發(fā)展和當(dāng)前研究方向,解釋了p 2 p 計算的相關(guān)概念。 同時說明建立? 2 p 基礎(chǔ)平臺的必要性,并指出了建立p 2 p 基礎(chǔ)平臺的基本原則和 平臺的組成部分。 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 第二章p 2 p 基礎(chǔ)平臺體系和資源表示 我們的p 2 p 基礎(chǔ)平臺( 為了編程方便,使用m e c u r y 作為代號,在下面的實 現(xiàn)代碼和例子中會看到這個代號) 分為三層。x m l 消息傳輸協(xié)議負(fù)責(zé)與對等實 體所在系統(tǒng)的傳輸協(xié)議進行綁定,同時為上層服務(wù)提供與具體通信協(xié)議無關(guān)的基 于x m l 消息的通信協(xié)議接v i 。在x m l 消息傳輸協(xié)議之上是p 2 p 基礎(chǔ)平臺核心 部分,提供平臺所需的基本服務(wù)。所有基本服務(wù)均由控制核心調(diào)度,并且可以方 便地替換和加人新服務(wù)。統(tǒng)一調(diào)用接口為建立在p 2 p 基礎(chǔ)平臺上的p 2 p 應(yīng)用提 供語義一致的調(diào)用接口,屏蔽核心服務(wù)細(xì)節(jié)。系統(tǒng)結(jié)構(gòu)見圖2 一l 。 圖2 - 1 :p 2 p 基礎(chǔ)平臺體系結(jié)構(gòu) 圖2 - 2 給出了p 2 p 基礎(chǔ)平臺系統(tǒng)u s e c a s e 圖。 圖2 - 2 :p 2 p 基礎(chǔ)平臺系統(tǒng)u s ec a s e 圖 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 2 1p 2 p 基礎(chǔ)平臺各部分概述 控制核心:p 2 p 基礎(chǔ)平臺所有的核心服務(wù)均由控制核心管理,所有上層應(yīng)用 的請求都通過控制核心分派到相應(yīng)的服務(wù)對象。 x m l 傳輸協(xié)議:對象傳輸協(xié)議分為兩層,一層負(fù)責(zé)與具體網(wǎng)絡(luò)協(xié)議進行綁 定,另一層提供基于x m l 消息的通信協(xié)議。通過分層,系統(tǒng)實現(xiàn)了平臺與 具體網(wǎng)絡(luò)環(huán)境的分離,針對不同的網(wǎng)絡(luò)協(xié)議只要替換相應(yīng)的綁定就可實現(xiàn)通 信。目前我們完成對t c p a j d p 協(xié)議的綁定,同時增加了連接管理、異步消 息等功能。使用x m l 消息格式方便建立獨立于具體網(wǎng)絡(luò)環(huán)境的p 2 p 基礎(chǔ)平 臺,而且可以很方便地擴展不同服務(wù)需要的消息。我們希望傳輸協(xié)議兼容 w 3 cx m l 協(xié)議標(biāo)準(zhǔn),今后工作方向是使x m l 消息可以通過s o a p , x m l r p c 等協(xié)議進行傳輸。 e 查找服務(wù):提供分布查找功能,用來查找對等實體、服務(wù)和資源。根據(jù)不同 應(yīng)用要求可以有不同查找算法,服務(wù)可以根據(jù)情況選擇合適的算法。 成員服務(wù):負(fù)責(zé)確定對等實體所在組、加入某個組,以及查找組內(nèi)其他對等 實體。所有對等實體的服務(wù)請求都可以通過成員服務(wù)進行控制。 2 2 資源表示 p 2 p 基礎(chǔ)平臺使用公告( p l a c a r d ) 描述、發(fā)布對等實體資源和服務(wù)。平臺定 義了下列公告: 對等實體公告( p e e r p l a c a r d ) 對等實體組公告( p e e r g r o u p p l a c a r d ) 服務(wù)公告( s e r v i c ep l a c a r d ) 服務(wù)內(nèi)容公告( c o n t e n t p l a c a r d ) 訪問端點公告( e n d p o i n t p l a c a r d ) 2 2 1 基于x m l 的公告表示 p 2 p 基礎(chǔ)平臺所有公告都使用x m l 表示。x m l 為分布式系統(tǒng)提供了強大的 數(shù)據(jù)描述方法和與平臺無關(guān)的數(shù)據(jù)表示。公告由一系列結(jié)構(gòu)化元素組成,每個元 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 素包含數(shù)據(jù)或其它元素。元素可以具有屬性,屬性由名字,值字符串對組成。屬 性用來存放描述元素數(shù)據(jù)的元數(shù)據(jù)類型。用戶可以根據(jù)現(xiàn)有的公告創(chuàng)建自己的公 告類型,自定義公告可以增加任意元素。 平臺根據(jù)公告定義的x m ls c h e m a s 檢查公告的有效性,并且依據(jù)公告操作 資源或服務(wù)。這些公告也是平臺最經(jīng)常交換的信息。 2 2 2 對等實體公告( p e e rp l a c a r d ) 對等實體公告描述了對等實體資源,主要保存對等實體的信息,例如:對等 實體名、可訪問的服務(wù)和訪問對等實體的端點。圖2 3 描述了對等實體公告的結(jié) 構(gòu)及對應(yīng)的類。 對等實體公告包括下列域: n a m e :對等實體的名字。名字用來方便p 2 p 系統(tǒng)按名字查找對等實體。 p i d :對等實體的d 。在同一個對等實體組里,對等實體d 應(yīng)該是唯一 的。 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) s e r v i c e :對等實體可訪問的每個服務(wù)的服務(wù)公告。 e n d p o i n t :對等實體可以獲得的每個訪問端點的u r i ,例如 t o p :l 2 0 2 1 1 5 3 0 1 9 4 :9 0 0 0 或者叢婭;叢2 蝗:! ! :3 q :! 塑;盟。 i n i t i a l a p p :對等實體初始化時可選擇調(diào)用特定服務(wù)的服務(wù)公告。 各元素值類型見表2 - 1 : 表2 - 1 :對等實體公告元素說明 元素名稱數(shù)量兀素值類型 n a m e1 s t r i n 9 1 p 正)1u u ) s e r v i c e s 女2 s e r v i c e p l a e n d p o i n t s + 3 e n d p o i n t p l a i i n i f i a l a p p 0 1 4 s e r v i c e p l a 1 在本文中s t r i n g 類型假定不包含任何x m l 限界符( “ ”) ,但可以 包含空格。 2 “指0 個或多個元素。 3 “+ ”指1 個或多個元素。 4 “0 1 ”指0 個或1 個元素,表示該元素是可選的。 2 2 3 對等實體組公告( p e e r g r o u p p l a c a r d ) 對等實體組公告描述了對等實體組資源,主要保存了對等實體所在組的信 息,例如:組名、組i d 和可供訪問的組服務(wù)。圖2 - 4 描述了對等實體組公告的 結(jié)構(gòu)。 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 劉等實體組公告包括下列域: n a m e :對等實體組的名字。用來表示對等實體構(gòu)成的自治組。 g i d :對等實體組d 。 s e r v i c e :對等實體組提供的每個服務(wù)的服務(wù)公告。當(dāng)對等實體加入組時, 不需要實例化所有服務(wù),但是新對等實體加入組至少要執(zhí)行成員服務(wù)。 目前的p 2 p 基礎(chǔ)平臺不對對等實體進行成員身份認(rèn)證,也就是說任何對 等實體都可以加入到組中。 i n i t i a l a p p :對等實體加入組時可選擇調(diào)用的特定服務(wù)的服務(wù)公告。 各元素值類型見表2 - 2 : 表2 - 2 :對等實體組公告元素說明 兀素名稱數(shù)量元素值類型 n a m el s 砸n g g )lu u 口) s e r v i c e s+s e r v i c e p l a ,l n i t i a l a p p 0 1s e r v i c e p l a 2 2 4 服務(wù)公告( s e r v i c ep l a c a r d ) 服務(wù)公告描述了對等實體提供的服務(wù)。通過服務(wù)公告確定如何調(diào)用和使用對 等實體提供的服務(wù)。圖2 - 5 描述了服務(wù)公告的結(jié)構(gòu)。 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 服務(wù)公告包括下列域: n a m e :服務(wù)名字。 v e r s i o n :服務(wù)版本。 c o d e :實現(xiàn)這個服務(wù)的實現(xiàn)代碼。 u r i :指定服務(wù)代碼提供者的地址。 p r o v i d e r :服務(wù)提供者信息,通常是提供者名字。 c o n t e n t :服務(wù)提供的共享資源類型。通常提供共享資源的服務(wù)擁有大量 的同類型資源。為了保持一定的對象粒度,我們?yōu)橥活愋偷馁Y源定義 一個服務(wù)對象。例如文件共享服務(wù),我們不可能為每個文件創(chuàng)建一個操 作對象,我們只定義了文件共享服務(wù)對象,提供文件共享操作。 各元素值類型見表2 3 : 表2 - 3 :服務(wù)公告元素說明 元素名稱數(shù)量兀系值類型 n a m e1 s t r i n g v e r s i o n1 s t r i n g c o d e 1 s t r i n g u r io ,1 s t r i n g p r o v i d e rl s t r i n g c o n t e n t0 1c o n t e n t p l a 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 2 2 5 服務(wù)內(nèi)容公告( c o n t e n tp l a c a r d ) 服務(wù)內(nèi)容公告描述了提供共享資源服務(wù)的資源類型,共享資源可以是文件、 存儲空間或者c p u 處理資源。圖2 - 6 描述了服務(wù)內(nèi)容公告的結(jié)構(gòu)。 服務(wù)內(nèi)容公告包括下列域: n a m e :服務(wù)內(nèi)容類型名字。 m i m e t y p e :服務(wù)內(nèi)容的m i m e 類型,根據(jù)m i m e 類型決定如何處理服務(wù) 內(nèi)容。 r e s l i s t :這種服務(wù)內(nèi)容類型的所有共享資源列表。 各元素值類型見表2 4 : 表2 - 4 :服務(wù)內(nèi)容公告元素說明 兀素名稱數(shù)量元素值類型 n a m e0 1 s t r i n g m i m e t y p e 1 r m m e t y p e r e s “s t s t r i n g 2 2 6 訪問端點公告( e n d p o i n t p l a c a r d ) 訪問端點公告描述了對等實體傳輸協(xié)議。每個對等實體可以有多個傳輸協(xié) 議,每個傳輸協(xié)議對應(yīng)一個訪問端點。訪問端點公告是對等實體公告的元素,表 示對等實體擁有的訪問端點。訪問端點由虛擬訪問端點地址表示,這個虛擬地址 包含有用來創(chuàng)建物理連接需要的全部信息。例如u r i 字符串 t c p :2 0 2 1 1 5 3 0 1 9 4 :1 0 0 0 或h ! 蟲;絲q 2 :! ! :3 q :! 絲;8 q 表示端點的虛擬地址。圖2 7 描述了訪問端點公告的結(jié)構(gòu)。 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 訪問端點公告包括下列域: n a m e :訪問端點的名字。 a d d r e s s :訪問端點的邏輯地址,平臺根據(jù)這個地址創(chuàng)建相應(yīng)的物理連接。 各元素值類型見表2 5 : 表2 - 5 :訪問端點公告元素說明 i 兀索名稱數(shù)量元素值類型 n a m e0 ,l s t r i n g a d d r e s s1 s t r i n g 2 2 7p 2 p 基礎(chǔ)平臺公告類和i d 定義 p 2 p 平臺的公告在系統(tǒng)中都有對應(yīng)的類描述,定義公告的元素以及解析和生 成公告的x m l 文檔。圖2 8 給出了公告類圖。 j p l a c a n ds e r v i c b p l a i _ l a r t d l e c d e t e l j c t h a n d l e r 一一h o m es t r i n g + t o x m lv o l d h a n d l e rd e f a u l t h a n d l er n a m es t rr n g ) p l 丑c m de t d p o i n t p k i l a n d l e r0 0 f a u f i h a 1 d je r - 一r l a l t l es t r i n g + t o y j i lv o t d h a n d l erd 科a u l t h a n d l e r n a m es t x l n g ,i m p ld a r dp g i l t ) p l e 一i l a n d l e r d e f a u m a 挑r - 一n a m e :s t r i n g + t o x m lv o i d h a n d l e r d e f a u l l l - 1 a n d l e r i _ 】a m os tr i n g 圖2 - 8 :公告類圖 接口p l a c a r d 定義了公告類需要實現(xiàn)的基本操作 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) p u b l i c v o i d t o x m l ( o u t p u t s t r e a mo u o ;生成公告的x m l 文檔。 p u b l i cs t r i n gg e t n a m e o ;取得公告名字。 p u b l i cd e f a u l t h a n d l e rg e t h a n d l e r o ;取得處理公告元素的h a n d l e r 。 類p e e r p l a 、p g r p p l a 、s e r v i c e p l a 、c o n t e n t p l a 和e n d p o i n t p l a 分別對應(yīng)對等實 體公告、對等實體組公告、服務(wù)公告、服務(wù)內(nèi)容公告和端點公告。 p 2 p 平臺的對等實體和對等實體組需要有唯一d ,d 由u u i d 表示。u u i d 是1 2 8 位的通用身份表示符,由u u i d 類生成和處理。圖2 - 9 給出u u l d 類和 u u l d f a c t o r y 類圖。 2 3 小結(jié) s e r ;b # z a bj e i m p l u t i lu u i d - m o s t s i g :l o n g l e a s t s i gl o n g + u u d + h a s l 3 c o d ei m + e q u a l sb o o l e s n + t o s t n n g :s t r m g d i ( 3 i t s :s t r l n o m o s t s i g n i f i c a n t b i t sl o n g l e a s t s i g n l f i c a n t b i l sl o n g 圖2 - 9 :u u i d 類及其工廠類類圖 本章介紹了p 2 p 基礎(chǔ)平臺的框架和組成部分,以及平臺的資源和服務(wù)表示。 平臺所有資源和服務(wù)都使用公告表示,公告是x m l 定義的描述文檔。利用x m l 的數(shù)據(jù)表示能力和中性語言特性,這些表示獨立于具體的實現(xiàn)環(huán)境。p 2 p 基礎(chǔ)平 臺服務(wù)交換的信息中,很大一部分就是各種公告。 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 第三章p 2 p 基礎(chǔ)服務(wù)與控制核心 3 1p 2 p 基礎(chǔ)平臺服務(wù) 服務(wù)是p 2 p 基礎(chǔ)平臺的主要組成部分,決定平臺提供的功能。我們的工作主 要是為p 2 p 應(yīng)用提供基本運行環(huán)境,為此平臺實現(xiàn)p 2 p 運行環(huán)境需要的基本服 務(wù)。目前我們實現(xiàn)了x m l 通信服務(wù)、分布式查找服務(wù)和成員服務(wù),并提供用戶 建立服務(wù)的接口。 3 1 1 服務(wù)結(jié)構(gòu)描述 p 2 p 基礎(chǔ)平臺的所有服務(wù)都要實現(xiàn)s e r v i c e 接口。由于控制核心服務(wù)k e r n e l 是管理平臺服務(wù)運行的基礎(chǔ)模塊,與其他的服務(wù)不同,它不需要實現(xiàn)這個接口。 s e r v i c e 接口規(guī)定了服務(wù)需要實現(xiàn)的基本方法。圖3 - i 給出了服務(wù)體系的類圖。 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 接口s e r v i c e 方法與屬性說明如下: k e r n e l k e r n e l :p 2 p 基礎(chǔ)平臺控制核心服務(wù)對象的引用,為了使服務(wù)能 夠與控制核心交互,服務(wù)對象必須具有控制核心服務(wù)對象的引用。 v o i d i n i t ( k e r n e lk n ) :初始化服務(wù),并將控制核心服務(wù)對象引用傳進來。 s t r i n gg e t s r v n a m e o :取得服務(wù)名字,控制核心服務(wù)將服務(wù)名字與服務(wù)對 象相關(guān)聯(lián),方便根據(jù)消息提供的服務(wù)名字分派消息給相應(yīng)服務(wù)處理。 s e r v i c e p l ag e t s r v p l a o :取得服務(wù)的服務(wù)公告對象。 v o i d r e q u e s t p r o c ( m e s s a g e m s g t ) :處理接收的消息。 我們在設(shè)計基礎(chǔ)服務(wù)時使用了兩層接口,這主要是為了方便替換基礎(chǔ)服務(wù)的 實現(xiàn)類。 3 1 2p 2 p 基礎(chǔ)平臺消息概述 p 2 p 平臺的服務(wù)主要通過消息的交互實現(xiàn)其功能。每個服務(wù)一般都要定義一 組自己使用的消息。但是消息服務(wù)在接收到消息時,并不知道如何生成具體的消 息類型,因此我們定義了一個基本消息類描述接收到的所有消息。圖3 - 2 給出了 基本消息類的定義。 i m p o r t p u b l i ca b s t r a c tc l a s sm e s s a g e p r i v a t es t r i n g m s g n a m e ; p r i v a t es t r i n 9 _ s w n a m e ; p r i v a t es a x p a r s e r p a r s e r ; p r i v a t ei n p u t s t r e a mm s g s t r e a m ; p u b l i cs t r i n gg e l m s g n a m e ( ) : p u b l i cs t r i n gg e t s r v n a m e 0 ; p u b l i cv o i ds e t m s g n a m e ( s t r i n gm s g n a m e ) ; p u b l i cv o i ds e t s r v n a m e ( s t r i n gs r v n a m e ) : p u b l i cv o i ds e t p a r s e r f s a x p a r s e rp a r s e r ) ; p u b l i cv o i dt o x m l ( b u f f e r e d w r i t e ro u t ) ; p u b l i cs a x p a r s e rg e t p a r s e r 0 ; p u b l i ci n p u t s t r e a mg e t m s g s t r e a m o ; p u b l i cv o i ds e t m s g s t r e a m ( i n p u t s t r e a mm s g s t r e a m ) ; ) 圖3 - 2 :基本消息類定義 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 基本消息類主要屬性和方法: p r i v a t el n p u t s t r e a mm s g s t r e a m ;接收到的消息內(nèi)容。 p u b l i cs t r i n g g e t m s g n a m e o ;獲取消息名字。 p u b h cs t r i n gg e t s r v n a m e o ;獲取處理消息的服務(wù)對象名字。 p u b l i cv o i dt o x m l u f f e r e d w r i t e ro u t ) ;生成消息的x m l 文檔流。將表 示消息內(nèi)容的屬性值寫到一個輸出流中,并且生成相應(yīng)的x m l 標(biāo)記。 p u b l i cs a x p a r s e r g e t p a r s e r o ;取得h l 解析器引用。 p u b i ci n p u t s t r e a mg e t m s g s t r e a m o ;取得消息內(nèi)容。 這個基本消息類主要是提供處理消息所需的信息。p 2 p 基礎(chǔ)平臺采用異步 x m l 消息傳輸機制,當(dāng)消息傳輸服務(wù)接收到一個消息的時候,并不會提前知道 消息類型,只能從接收到的消息中解析出來消息的類型和處理消息的服務(wù)名稱。 所以通過這個消息的對象將接收的消息轉(zhuǎn)到相應(yīng)服務(wù)處理。其他特定消息均繼承 這個基本消息類。接收到一個基本消息后,服務(wù)可以通過解析消息中所存消息內(nèi) 容構(gòu)造相應(yīng)的消息。各種服務(wù)所需的特定消息在介紹該服務(wù)的章節(jié)中定義。 3 1 3 解析x m l 數(shù)據(jù)源 p 2 p 基礎(chǔ)平臺所有的消息、配置信息都是由x m l 表示的,這就經(jīng)常需要根 據(jù)消息對象生成相應(yīng)x m l 數(shù)據(jù),或者將x m l 數(shù)據(jù)源映射成相應(yīng)對象。由消息 對象生成x m l 數(shù)據(jù)不困難,一般就是將屬性按x m l 數(shù)據(jù)格式輸出到輸出流中 即可。而由x m l 數(shù)據(jù)源映射到對象就要復(fù)雜些,需要一些解析器的幫助。我們 使用s a x ( s i m p l e a p i f o r x m l ) 解析x m l 數(shù)據(jù)。 s a x 定義了應(yīng)用程序從x m l 文檔中讀取數(shù)據(jù)的一套接口,這是基于事件驅(qū) 動處理x m l 文檔的接口。s a x 接v i 的具體實現(xiàn)由x m l 解析器完成。我們使用 s u nm i c r o s y s t e m 提供的j a x p ( j a v aa p if o rx m l p r o c e s s i n g ) ,這套a p i 實現(xiàn) s a x 接口的解析器是a p a c h e 的c r i m s o n 解析器。我們之所以使用s a x 接口基于 以下原因: 可以解析任意大小的文件:因為s a x 不需要把整個文件加載到內(nèi)存中, 所以對內(nèi)存的占用比較小,而且不會隨著文件大小的增加而增加。 適合創(chuàng)建自己的數(shù)據(jù)結(jié)構(gòu):服務(wù)對象往往需要根據(jù)公告、消息這樣的高 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 級對象而不是一些低級元素、屬性和處理指令來創(chuàng)建數(shù)據(jù)結(jié)構(gòu)。這些“高 級對象”可能只是和xml 文件內(nèi)容有一點關(guān)系,例如它們可能只是組 成xml 文檔和其他數(shù)據(jù)源的數(shù)據(jù)。因此,沒有必要象d o m 接口那樣 將所有x m l 元素都按對象處理。 適合少量信息子集:s a x 一個非常好的特點就是可以非常容易地忽略不 感興趣的數(shù)據(jù)信息。 簡單、快速:sax 非常易于使用,而且如果從文檔的簡單序列中獲取 需要的信息,sax 幾乎一定是最快的方法。 下面我們看一下使用j a x p 處理x m l 文檔的例子。圖3 3 給出使用j a x p 解析x m l 數(shù)據(jù)源的示例代碼。 m y h a n d l e r 類定義。這個類繼承d e 廚“觸刪d 跆r 類,定義如何處理x m l 數(shù)據(jù)源 中的元素。下面以服務(wù)公告為例,給出如何將服務(wù)公告的x m l 表示映射成服務(wù) 公告對象。圖3 4 給出服務(wù)公告x m l 文檔示例和對應(yīng)的服務(wù)公告對象。 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 服務(wù)公告x m l 文檔:s e r v i c e p l a 對象s r v p l a : s r v p l a 映射。 f d e m o s t r i n gn a m e = ”d e m o ”: 10 s t r i n gv e r s i o n = ”1 0 ”: n e tm e n u r y d e m o d c o d e s t r i n gc o d e = ”n e tm e r c u r y d e m o ”; u e s t c s t r i n gp r o v i d e = “u e s t c ”: 】 圖3 4 :服務(wù)公告x m l 文檔及其對應(yīng)對象 圖3 - 5 給出處理服務(wù)公告x m l 文檔元素的h a n d l e 卜蚴,王配n d l e r 。 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與實現(xiàn) 3 1 4 服務(wù)使用的消息隊列 p 2 p 平臺的服務(wù)一般都需要發(fā)送和接收消息。為了方便消息的處理,平臺定 義了消息隊列,定義如下: p u b l i cc l a s sm s g q u e u e p r i v a t ev e c t o r i n m s g ; p r i v a t em e s s a g en e x t ( ) ; p u b l i cm s g q u e u e o ; p u b l i cs y n c h r o n i z e dv o i dp u s h ( m e s s a g e m s g ) ; p u b l i cs y n c h r o n i z e dm e s s a g ep o l l ( 1 0 n gt i m e o u t ) ; ) 向量_ i n m s g 存放需要處理的接收消息。一般都是服務(wù)的r e q u e s t p r o c 方法將 接收的消息解析后調(diào)用p u s h 方法放人消息隊列。服務(wù)中需要接收消息的方法調(diào) 用p o l l 方法提取消息,如果消息隊列中沒有消息,p o l l 方法調(diào)用w a i t 將線程阻塞, 直到p u s h 方法被調(diào)用或者超時。當(dāng)p u s h 方法被調(diào)用存儲消息時,p u s h 方法調(diào) 用n o 夠y a l l 喚醒所有阻塞在這個消息隊列上的線程: 3 2p 2 p 基礎(chǔ)平臺控制核心服務(wù) 控制核心服務(wù)實現(xiàn)了對p 2 p 平臺上各種服務(wù)的管理和調(diào)度功能,同時為建立 在平臺上的p 2 p 應(yīng)用提供訪問接口。平臺通過控制核心服務(wù)初始化和注冊服務(wù), 并且通過控制核心完成服務(wù)調(diào)度。 3 2 1 控制核心服務(wù)描述 控制核心由k e r n e l 接口和k e r n e l s e r v i c e 實現(xiàn)類組成。k e r n e l 接口為其他服務(wù) 和應(yīng)用提供訪問接口,起了統(tǒng)一調(diào)用接口的作用。k e r n e l s e r v i c e 實現(xiàn)接口定義的 功能,并且控制平臺運行。圖3 - 6 給出了k e r n e l 和k e r n e l s e r v i c e 定義。 面向?qū)ο蟮膒 2 p 網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)計與

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論