有六個協議構成了JXTA的核心,JXTA通過這六個協議來完成Peer之間的通信,彼此之間的資源的發布和發現,信息的傳遞和路由,協議本身並不是應用程序,需要添加更多的代碼來開發有用的應用,協議隱藏了很多細節,這樣使得編寫JXTA應用程序比從空白開發P2P應用要容易得多。
JXTA在JXTA協議規范中定義了它的協議。此規范描述了Peer間如何通信和交互,它並未描述實現的細節或如何編寫P2P應用程序,下面是JXTA協議的列表,其中包含了協議名稱的首字母縮略詞,這六個協議如圖所示。
圖 JXTA的核心協議
1、對等機發現協議Peer Discovery Protocol(PDP):主要用來發布自己的廣告信息,並且從其他Peer處獲得廣告。PDP允許一個Peer發現其他Peer的廣告(包括Peer廣告、對等組廣告、服務廣告,或者是管道廣告)。該協議通過指定一種廣告類型(如Peer、對等組)、一個XML標簽名、一個匹配這個XML標簽所表示數據的字符串來定義查詢。它使用Peer Resolver Protocol來發送和傳播搜索廣告的請求。
2、管道綁定協議Pipe Binding Protocol(PBP):允許Peer之間建立虛擬的通信通道。
該協議首要關注的是通過Peer端點路由協議提供的路由連接Peer。它使用Peer Resolver Protocol來發送和傳播搜索廣告的請求。
3、對等機信息協議Peer Information Protocol(PIP):用來獲得其他Peer的狀態信息,包括更新時間、狀態等等。該協議有時被用做ping命令,有時被用來獲得一個Peer的基本狀態信息,PIP消息的正文是自由格式的,它允許詢問特定的Peer信息。此外,這種能力可以被擴展以提供控制能力,它使用Peer Resolver Protocol來發送和傳播搜索廣告的請求。
4、對等機解析協議Peer Resolver Protocol(PRP):允許Peer發送更一般的請求,並可以接收到該請求的回應;同時可以將請求分發到組內的一個或者多個匹配的處理器,Peer解析協議是一個基礎通信協議,它按照一種請求/響應格式來進行,要使用這個協議,需要提供一個查詢的Peer和一個包含能被目標Peer理解的XML請求消息,該協議被用來支持JXTA中的其他協議(PDP、PBP和PIP),而且允許傳播查詢,例如,如果一個Peer收到一個查詢並且不知道答案,解析協議就會將該查詢發送給別的Peer。
5、端點路由協議Peer Endpoint Protocol(PEP):通過該協議Peer以發送消息的形式獲得一條路由路徑。它使用Peer間的網關來建立一條包含一個或多個適合建立管道的管道協議組成的通路。管道綁定協議借助此Peer列表來建立Peer間的路由。一般情況下傳統的路由器和DNS服務器會因為防火牆、代理服務器和NAT設備等原因而無法建立連接,而端點路由協議通過尋找網關來穿越諸如防火牆等障礙來建立連接。端點路由協議還可以同時幫助相互不支持對方使用協議的Peer進行通信。例如,如果你連接支持TCP的Peer-A和只支持HTTP的Peer-B,端點路由協議既可以選擇一個可以支持此傳輸的網關,又可以選擇多個並且相互協議兼容的一組網關。
6、集合點協議Rendezvous Protocol(RVP):通過該協議Peer可以對一個服務訂閱或者被訂閱。集合點協議負責在JXTA對等組內傳播消息,它為Peer在組內接收和發送消息並且控制消息如何傳播定義了一個基本的協議。
從編寫P2P應用程序的角度而言,可以簡單地劃分上述協議的主要用途:
* Peer Discovery----搜索資源
* Peer Resolver----一般查詢服務
* Peer Information----監控
* Pipe Binding----可尋址的消息傳遞
* Rendezvous----消息傳播
* PeerEndpoint----路由