• 沒有找到結果。

第二章 研究背景與相關研究

2.3 節 JXTA

目前有許多點對點網路系統都只因單一種類型服務而被建立。例如:Napster 提供音樂文件分享、Gnutella 提供一般文件分享。如果想要整合這些各自獨立的 點對點網路系統,開發人員必須開發出在兩個點對點網路系統之間的一個橋樑系 統,才能達到目的。現行的點對點網路系統有數十種,如果想要全部的系統都整 合起來,以開發橋樑系統的方式是不切實際而且沒有效率的,因為一旦有新的點 對點網路系統出現,就必須再開發新的橋樑系統來做整合的工作。

JXTA[15]定義了點對點網路資源分享機制的架構,提出建立點對點網路分享 機制所必備的通訊協定。不限定點對點網路分享機制的開發平台和開發所使用的 程式語言,而是期望透過定義點對點網路的資源分享機制下所需的通訊協定與組 織架構,將建立點對點網路資源分享機制的工作能夠更快速、更容易,並且有效 率整合所有以 JXTA 為基準而開發的點對點網路系統。

2.3.1 節 JXTA 架構

JXTA 分析許多點對點網路軟體架構後,在概念性層次上定義了一個通用的 架構。它以三個層級表示點對點網路軟體的基本架構。

„ 核心層(JXTA core)

z 節點群組:建立一套在節點群組中節點和名稱的機制,以新增或刪除成 員資格、公告、節點和節點群組的搜尋結果、通信、安全和內容分享。

z 節點通信通道:提供節點和節點間交換資訊的管道,在 JXTA 中,交換 的消息用 XML 文件格式定義,在允許一系列安全、完整性和隱密性選 擇的通訊協定中支援資料、內容和代碼的傳送。

z 節點監控(Peer monitoring):節點群組裡允許以執行節點管理功能包括存 取控制、優先權設定、流量測量和頻寬負載平衡,對節點的行為和活動 加以控制。

„ 服務層(JXTA Services)

提供點對點網路分享架構中,資訊搜尋、檔案分享及索引的能力。資訊搜 尋利用比對消息內容的方式,找尋符合條件的結果。檔案分享根據節點欲 分享消息內容產生索引,提供查詢使用。

„ 應用層(JXTA Applications)

根據核心所提供的資源建立點對點網路的服務。

2.3.2 節 JXTA 服務

圖 2-2 JXTA 架構

JXTA 提供以下的服務(圖 2-2)來幫助使用者建立 P2P 環境:

„ 識別碼(Identifiers):JXTA 使用 UUID(Universal Unique Identifier)來代表一個 節點、公告或服務的識別碼。(長度 128bit)。

„ 公告(Advertisements):公告是一個以 XML 為格式定義的文件,用來敘述資 源名稱、描述和資源存在的事實,這裡指的資源包括節點、節點群組、通信

通道或服務。除了 JXTA 既有的公告格式外,同時,也可以自訂公告的格式。

„ 節點(Peers):節點是能夠以節點需要的通訊協定與其它節點溝通的任何實 體。

„ 訊息(Messages):JXTA 把資訊設計成非同步的、不可靠的及定向的傳輸。

訊息內容包含表頭(header)、摘要以及端點(endpoint)。端點是消息的邏輯終 點,也就是訊息要被送往的目的地,以 URI 形式表示。

„ 節點群組(Peer groups):節點群組是一個能夠以節點群組通訊協定與其它節 點群組溝通的虛擬實體。一般來說,節點群組會由一些提供相同服務的節點 所形成。JXTA 中每個節點可以參加多個節點群組。

„ 通信通道(Pipes):通信通道是用於寄送消息和收到訊息的非同步管道。一個 點對點的通信通道是由兩個端點所建構而成,對發送端來說讓通道只能用於 傳送訊息,對接收端而言該通道只能用於接收訊息。JXTA 利用通信通道,

抽象化了兩個節點之間的通訊細節,舉例來說,為了允許兩個在不同防火牆 下之節點進行通訊,其間必須倚靠其他轉送點來協助二者進行通訊,而通信 通道的概念,便是在二者建立一個抽象的通道,通訊的兩個節點毋需考量其 間的通訊細節,大大的簡化應用程式開始的複雜度。

„ 集結點(rendezvous):在一個節點群組中扮演傳播訊息的節點,稱之為集結 點。從節點送出的訊息,會被送至該節點所連接的集結點,再由該集結點傳 播出去。

„ 轉送點(relay):當節點 A 無法直接其它節點建立連線時,例:節點 A 處在 NAT 網路環境中或是對外連線透過防火牆,節點 A 對外連線的任何動作,

都必須依賴另一節點 B 來幫它轉送,此時稱節點 B 為節點 A 的轉送點。節 點 A 會利用 HTTP Tunneling 的技術,將 JXTA 的通訊協定包裝在 HTTP 通 訊協定中,以通過防火牆或 NAT。

2.3.3 節 JXTA 協定

JXTA 定義了六種的通訊協定 (圖 2-3),以提供點對點平台的基礎運作,包括:

„ 節點搜尋通訊協定(PDP - Peer Discover Protocol):透過 PDP,節點 A 可以發 佈屬於自己的公告,也能夠去搜尋指定節點 B 所發佈出來的公告。

„ 節點資訊通訊協定(PIP - Peer Information Protocol):透過 PIP,節點 A 能夠 得到其它節點的狀態資訊,此狀態資訊包括:狀態、啟動時間、流量負荷 (traffic load)等訊息。

„ 集結點通訊協定(RVP - Rendezvous Protocol):透過 RVP,節點 A 能夠簽署 傳播服務或者成為傳播服務的用戶。在節點群組中,節點 A 可選擇是否成 為一個集結點,或是成為一個傾聽其它集結點的節點。RVP 允許集結點寄 送消息給所有傾聽的節點。

„ 建立通訊通道通訊協定(PBP - Pipe Binding Protocol):透過 PBP,節點 A 可 以 跟 任 意 一 個 或 多 個 節 點 各 建 立 一 個 虛 擬 的 通 信 通 道 或 溝 通 頻 (communication channel)。

„ 節點解析通訊協定(PRP - Peer Resolver Protocol):透過 PRP,節點 A 能夠搜 尋一個或多個其它節點的存在。

„ 端點繞送通訊協定(ERP - Endpoint Routing Protocol):透過 ERP,節點 A 能 夠探勘從節點 A 到節點 B 所經過的網路路徑。

Application

JAVA JRE

Peer Resolve Protocol

Peer Endpoint Protocol

Peer Discovery Protocol

Rendezvous Protocol

Pipe Binding Protocol

Peer Information Protocol

圖 2-3 JXTA 協定