天天看點

JXTA V2.3x 開發者手冊(一)第一章 簡介第二章 JXTA的體系結構

JXTA V2.3x 開發者手冊

 檔案來源 : www.jxta.org

 翻譯     :  starshift

 開始時間 : 2006-10-28

 結束時間 :  未知

 版本     :  v1.0

版權資訊 :本文是作者在學習JXTA過程中的學習筆記,

大部分内容來自《JXTA v2.3.x:  Java™ Programmer’s Guide

》由作者本人翻譯,其中包含的代碼,經作者在xp+jdk1.50+NetBeans 中編寫和測試,僅供學習研究之用。

本文檔可以自由轉載,但必須保留原作者和出處。

第一章 簡介

JXTA是一族開放且無顯著特點的供P2P系統中一切可以連接配接到網絡的節點(例如從蜂窩電話到PDA,從用戶端到伺服器)通信和協作的P2P協定。JXTA協定族獨立于任何的開發語言,并且在不同的環境中擁有不同的實作(叫做:JXTA綁定 bindings in JXTA )。本文檔明确翔實的描述了JXTA是如何綁定到J2SE(Java™ 2 Platform, Standard Edition)的。

       本文檔适用于希望采用J2SE平台和JXTA技術開發P2P服務的開發者。介紹了JXTA技術,描述了JXTA網絡體系結構和關鍵技術,包含了執行個體并分析了采用J2SE和JXTA綁定開發的具體應用。

     為什麼采用JXTA

       随着網絡的不斷擴大,越來越多的裝置接入網際網路,越來越多的内容在互連網上釋出,P2P的計算模式變得越來越流行。P2P技術在檔案共享領域,分布式計算,和實時通信系統中都有非常著名的應用。雖然這些應用都肩負着不同的任務,但是他們還有許多的共同之處,比如節點發現,搜尋,檔案傳輸等重要步驟。但是不幸的是,目前的P2P應用開發是混亂的,我們都在底層做着重複的勞動。而且,幾乎所有的P2P應用都采用各自的私有協定而不能互相通信。

       而JXTA的一個最基本的動機就是提供P2P網絡的最基礎功能,并且試圖克服現有P2P協定的缺點:

(1)       協同性:JXTA技術允許節點之間在一個共同的通信機制上運作不同的服務。

(2)       平台獨立性: JXTA技術适合不用的開發語言,傳輸協定和開發平台。

(3)       到處存在:JXTA技術适合任何擁有核心的裝置,而并不是單單運作在PC機上。

所有的P2P節點都具有共同的特點就是他們都存在于網絡的邊緣。這是因為他們都通常處在DNS的範圍之外,并且受到由位址經常變化帶來的不确定連通性的限制。JXTA提供了差別傳統名字解析的唯一“位址”幫助這些在網羅邊緣的節點更好的識别其他節點。通過配置設定JXTAID,節點可以自由的在網絡中移動,變換端口号和IP位址,甚至可以暫時的失去連接配接,但是仍然能夠被其他節點順利的定位。

什麼是JXTA

       JXTA是專門為P2P計算設計的開放的網絡計算平台。它的目标是通過提供基本的構模組化塊和服務,革新P2P應用的開發。

       術語JXTA意味着并發,目前公認的是P2P應用就是目前傳統的客戶機——伺服器模型 和WEB分布式服務的并發處理。

       JXTA包含了一族開放的通信協定和開源的P2P應用實作。這些協定可以采用java,c,C++,perl還有許多不知名的語言實作。同時可以部署在HTTP,TCP/IP,藍牙等等的傳輸協定之上。

我們可以用JXTA來做些什麼?

       JXTA協定使得開發者可以建構和部署可以協同的P2P應用。因為協定不僅獨立于開發平台而且獨立于傳輸實作,并且可以應用于異構的各種裝置,協定棧實作。利用JXTA技術,開發者可以真正的開發出網絡的,協同工作的P2P應用,同時具有一下這些奇妙的功能:

(1)       穿過防火牆找到網絡中的其他節點。

(2)       通過網絡自由的于任何人共享檔案

(3)       在網絡上查找微小的資源

(4)       建立共享同一服務的群

(5)       遠端監控節點的行動

(6)       安全的于其他節點進行通信。

第二章 JXTA的體系結構

     綜述

       JXTA的體系結構被分為三層,如下圖所示:

平台層(JXTA 核心)

       平台層,也就是JXTA的核心。經過最小化的封裝,并保有P2P網絡的常見特性。包含的P2P應用關鍵機制的子產品。包括發現,傳輸(包括防火牆穿越),建立節點組和安全保證機制。

服務層

       這一層包含了P2P應用需要的所有網絡服務。例如:搜尋和索引,目錄,存儲系統,檔案共享,檔案分布,協定轉換,認證和PKI等等服務。

應用層

       應用層包含了建構在P2P之上的所有應用。例如P2P實時消息,資源共享,娛樂資訊管理和分發,P2P email等等。

       服務曾和應用層之間的界限并不是嚴格的。對于一個使用者的服務者可能是另一個使用者的消費者。而應用的實作也将子產品化,允許使用者根據其需要定制應用層的服務。

JXTA 的組成

       JXTA網絡由一系列的節點組成,節點間可以根據運作的不同服務組成自組織的節點群(group)。例如:節點可以根據實際應用分成檔案共享和即時通信兩種類型的群。

       JXTA節點在XML檔案上面組測,組測的内容包括如何于本節點互動,如何連接配接到本節點和本節點上面運作那種類型的服務等等。

       JXTA節點之間采用管道(pipe)發送消息(message),管道是一種異步的單向的消息傳送機制,用做服務消息傳送。消息是封裝好的格式化的簡單XML文檔,其中包含了節點的路由,摘要,和認證資訊。管道以特定的端為結束,比如特定的IP位址和端口組合。

JXTA的幾個關鍵概念:

       以下三個重要的概念使得JXTA差別于其他的分布式系統:

       · 采用XML檔案進行資源描述

       · 将節點之間的聯系抽象成為管道,節點之間的聯系并不依賴于類似DNS這樣的映射。

       ·擁有全局唯一的結構化節點ID

繼續閱讀