天天看點

JXTA v2.5技術手冊:第二章 JXTA架構

[align=center]第二章 JXTA™ 架構[/align]

概覽

Jxta軟體架構分為三層,如下圖所示:

 核心JXTA

JXTA的核心封裝了P2P網絡所需要的最少的和最必要的基本功能。包括(It includes building blocks to enable key mechanisms for P2P applications, including discovery, communication transports (including firewall and NAT traversal), the creation of peers and peer groups, and associated security primitives.)

 服務層

服務層包括了一些對于P2P網絡來說并不是絕對必須的服務,但這些網絡服務對P2P環境來說是常常需要的。例如搜尋服務以及索引,目錄服務,存儲系統,檔案共享,分布式檔案系統,資源聚合與租用(resource aggregation and renting),協定轉換,認證,PKI((Public Key Infrastructure)服務。

 應用層

應用層包含了一些綜合服務,諸如P2P即時消息,文檔與資源共享,娛樂内容的管理與傳遞,P2P郵件系統,分布式拍賣系統,以及更多。

服務層與應用層之間的界限并不是嚴格的。一個使用者的應用可以被看做成另一個使用者的服務。整個系統被設計成子產品化的,它允許開發人員根據自己需要選取一些有用的服務。

JXTA元件

JXTA網絡是有一系列互相聯結的節點(或者說是對等點peer)組成的。一個對等點可以是任何類型的裝置,諸如傳感器、超級計算機,甚至是一個虛拟程序。一個單一實體裝置上可以運作多個對等點,但也有可能多個實體裝置互相協作對外表現的是一個對等點。對等點之間可以通過任何合适的網絡協定連接配接,包括TCP/IP,HTTP,Bluetooth,GSM等等。

每一個對等點都提供一些對其它對等點有用的“服務”或者“資源”。“服務”就是互相協作的一段代碼程式,它可以包括資料庫,認證系統,聊天伺服器,或者其它任何可以網絡聯結的程式。JXTA網絡中最常見的有兩種服務:對等點服務(peer services)群組服務(group services)。對等點服務是有一個對等點提供的服務。組服務是整個組通過聯合方式或者協作方式提供的服務。一般情況下,每一個對等點服務的執行個體相對于其它執行個體是獨立的。一個執行個體的行為不會影響其它示例。每一個組服務的執行個體常常會參與到一個公共的執行個體中(Each Peer group service instance is normally a participant in a common instance)。一個執行個體的行為很可能會影響到所有的執行個體。

所有的JXTA對等點都實作了很少一部分所必須的核心服務(core services),并且一般情況下還提供一些額外的标準服務(standard services)。每一個組都包含了部分它所定義的一些組服務,每一個加入到這個組的對等點都必須應用這些服務(Each Peer Group includes as part of it's definition the set of Group services which each peer must run in order to participate in the peer group)。

一個對等點的資源一般情況下是它所控釋的(或者擁有的,甚至僅僅是一個拷貝的)靜态的(非互動的)内容。這些資源可以是檔案(files),文檔(documents),媒體資源,通告(advertisements),索引(indexes),而且也可以包括現實世界中的諸如開關,傳感器和列印機之類的資源。

JXTA對等點用一個叫做通告(advertisement)的XML文檔來釋出它們的服務和資源,通過這個通告,其它對等點就可以找到這些服務和資源,也可以決定如何同這些服務聯結和互動。

對等點自行加入一個點組(peer group)(Peers can organize themselves into peer groups)。點組是一個松散的概念,是任意一組為了一個共同目的、提供一組相同服務的對等點的組合。點組中兩個關鍵的概念就是“共同的服務”和“共同的目的”。連個點組可能包含相同的服務,例如一個聊天應用,但是它們的目的不同,例如一個是政治話題的聊天,一個是體育話題的聊天。一個點組可以以開發者或者部署者的任意選擇為基礎(Peer groups can be defined on almost any basis that developers or deployers choose)。如前例那個點組可以被重新定義為提供多個聊天話題的聊天應用,但是處于一個組織内,例如某一個大學的院系。當你要定義一個點組時候,你首先要搞清楚兩個問題:“這個點組都要包含哪些對等點呢?”和“這些對等點應該互相協作着提供哪些應用或者服務呢?”

JXTA對等點之間通過Socket和管道傳送消息。JXTA Socket向應用程式之間的通信提供可靠的、雙向的連接配接。管道服務之間通信所使用的一種異步的、單向的消息傳送機制。消息。消息隻是一個簡單的XML文檔,這個文檔包含了路由、digest,和認證資訊(Messages are simple XML documents whose envelope contains routing, digest, and credential information)。管道是同一個指定的終端(endpoint)綁定的,例如一個TCP端口和相應的IP位址。

這些方面的知識将在下來的章節中詳細讨論。

JXTA架構中的關鍵方面

JXTA架構中有四個方面使得其有别于其它分布式網絡模型:

 使用XML文檔(通告)來描述網絡資源

 抽象出管道、對等點,不依賴于像DNS那樣的中心命名/位址認證(Abstraction of pipes to peers, and peers to endpoints, without reliance upon a central naming/ addressing authority such as DNS)。

 統一的對等點位址機制(ID)

 基于DHT(Distributed Hash Table)的非集中式資源搜尋機制(A decentralized search infrastructure based on Distributed Hash Table (DHT) for resource indexing)。

繼續閱讀