. JXTA定義 JXTA是深入的
特別的為了實現pear to pear網絡計算而設計的一組(
種)協議
使用JXTA協議
pears能夠自己組織和配置自己的pear groups而脫離現在的互聯網
並且不需要實現集中管理的架構(集中管理架構流行於現在很多p
p軟件)
. JXTA 概念 Pear同位體
一個可以進行虛擬通信的點
可以是一台電腦
一個電話
pda等
一台設備也可以有多個pear(雖然這是個不好的設計
但是對於debuging來說很有用)
每一個同位體能夠和一些服務聯系在一起
比如路由
網關
rendezvous等等
這些服務提供了一些比如搜索和通訊的服務
不是說所有的同位體都要實現這些服務
但是
有一部分實現這些服務確保整個網格的運行還是有必要的
比較通常的來講
一個設備上一般只有一個pear
比如進行分布搜索
內容共享
帶寬共享等
這樣是有好處的
然而
並不排除一個設備上多個pear
因為pear是一個個分開的實體
多個pear並沒什麼問題
只是會多消耗一些資源
有幾種情況我們可以使用一個multi
pear的設備
. 提供proxy服務
. 與已經存在的服務器建立接口
但是
這個已經不必要了
可以由其他方法實現
比如基於p
p的分布式系統
所以
我們盡量不要建立multi-sever的設備
違背true p
p的思想
Pear Group
同位體組
一個Pear Group是提供一個通用服務的同位體的集合
由於安全以及隱私等方面的原因可以組成一個pear group
這個pear group是實現了安全和加密等
類似於一個VPN
Endpoint
端點
端點是JXTA的基本的尋址形式
一個端點是某個同位體實現了某種協議的地址
一個同位體可以實現多種協議
所以也就可能擁有多個端點
最簡單的端點的例子就是ip地址和port
Pipe
管道
管道在JXTA中是最基本的概念
是對等點之間的數據傳輸的主要方式
對等管道協議(PBP)明確規范了對等管道的綁定
解析
響應
有兩種形式
. 點對點形式
. 廣播形式
Endpoint and Pipes:端點和管道
一個同位體可能含有多個端點-因為實現了多種協議
比如
我們可以用tcp進行連接
也可以用http進行連接-當有firewall的時候
如果覺得一個pear實現多種協議很麻煩
也可以只用一種協議
http
Advertisement:廣告
一個廣告是一個XML結構的文檔
用來命名
描述和公布現有的資源
如同位體
同位體組
管道
或服務
各種廣告的格式請參考JXTA規范
大概說明
廣告的格式是utf
編碼的
為了更有效的利用資源
所以並沒有利用unicode編碼
因為unicode是
位而utf
是
位
Message
消息
有兩種形式的消息
. Xml格式的
. 二進制格式的
之所以有這個格式的
是因為這個速度比較快
雖然message是二進制的
但是傳輸消息的協議仍然是xml格式的
Identifiers
標志
Rendezvous Pear:
從其他同位體進行查詢操作的同位體
Rendezvous Pear也可以委派查詢操作給其他的pear-當然也必須是一個Rendezvous Pear
Rendezvous Pear其實可以說是在一個對等網絡環境中代替原來的非完全對等環境中的集中服務器的東西
Rendezvous Pear還能夠傳遞檢索
也能夠傳遞發現(discovery)給其他的Rendezvous Pear
Router Pear
路由同位體
實現端點協議的同位體
和路由器功能類似
Gateway Pear
網關同位體
通訊的中間體
作為傳遞消息的中間體
和Rendezvous Pear不同
現在支持的網關協議有tcp和http(都是通過管道來組織)
. 同位體和組(peer and group)
為什麼使用組?
安全
隱私
更加高效的數據共享
. 廣告(Advertisements)
同位組廣告
定義這個同位組的識別標志和服務
Name
DESC
GID(Peer group id)
MSID
SVC(Service)-list of the service denoted by MCID and Parmeters
Peer Advertisements
同位體廣告
Name
DESC
PID(Peergroup id)
Debug Flag(Dbg)
optional tag for debugging
Service(SVC)
模塊
Modules
模塊是定義了一個同位體或者一個同位體組所提供的服務
模塊類廣告
Module Class Advertisement
定義了一種行為
格式:
MCID(Module class id)
Module唯一的識別標志
Name
模塊名稱
用來進行search和識別
不保證唯一
DESC(Descripition)
描述:供搜索和識別用
模塊規范描述廣告-Module Specification Advertisement
比較詳細的描述模塊的規范定義
Module Spec ID(MSID)
定義一個模塊-和MCID有和區別?
Compatibility(COMP)兼容性
定義代碼的兼容性
跨語言和跨平台
Name
Desc
Sprcification URI document.定義URI
Vers-the version
Parm-定義參數-供Implementation使用
Proxy
ModuleSpecID of a proxy if one exists
Authenticator
ModuleSpecID of an authenticator module if required
模塊執行廣告
Name
DESC
MSID
COMP
PURI(Package URI)
Download the special code
Code
a reference code
for a java module
this is a classname
Prov(Provider)
管道廣告-Pipe Advertisements
Name
ID
TYPE
Related to a protocol
unicasttype
unicastsecuretype
propagatetype
端點路由信息
Endpoint Router Messages
查詢和回應消息
以發現Router
分查詢和回應兩類Messages
消息
Messages
分為XML message和Binary Message
管道綁定協議
Pipe Binding Protocol
要建立管道
一個peer必須憲發布一個管道廣告
表示自己在request
接收方會回應並同時發布廣告
Request Adv
Msgtype
Query or Respond
PopeId
Pipe id being resolved
Type
the type of pope resolution requested
Cached
cache裡是否有答案
Peer
指定鏈接的peer
Response Adv
Msgtype
Pipeid
Type
Found
Resolver-解釋器
用來發現來自對等組內其它對等機的廣告
有助於發現對等機
對等組
管道和服務
解釋器的ResolverQuery message的schema
credential
信任證書 of the peer sending the query
HandlerName
QueryID
Query
Rendezvous Protocol:
描述了消息是怎麼在組裡面廣播的
使用端點協議來定位同位體和路由以及傳輸
使用Rendezvous Protocol來傳輸消息
Rendezvous ADV:
Name
Rdvgroupid
peergroup uuid
Rdvpeerid
peer id of the Rendezvous peer
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27635.html