摘要:JXTA是一個用來解決P2P計算的開放的網絡計算平臺。JXTAP2P平臺使開發者在其上建立P toP的應用。2001年4月,發布了第一個源型實現,它是基于JDK1.1.4的。
分布式計算發展非常迅速,新技術不斷出現,現在出現的P2P技術,讓用戶可以直接連接到其他用戶的計算機,進行文件共享與交換,另外P2P在深度搜索、分布計算、協同工作等方面也大有用途。
現有P2P系統的缺陷和JXTA的目標
現有的P2P系統有一些缺陷,大多數P2P系統用來實現一個單一類型的網絡服務(Napster用來音樂文件交換、Gnutella用來普通文件交換),由于不同的網絡服務的特性和缺少一個共同的底層基礎,每一個供應商都使用不兼容的技術使它的用戶同別的P2P通信相隔離。JXTA通過提供一個簡單的普遍的P2P平臺來解決這個問題:
- JXTA使用一些協議,每一個協議都可以很容易的實現和集成到P2P服務和應用中,這樣,不同的P2P系統之間可以方便的互相通信,協同工作,向對方提供服務。
- JXTA被設計成獨立于編程語言,如C或JAVA,獨立于系統平臺,如WINDOWS和UNIX,獨立于網絡平臺,如TCP/IP和藍牙。而且JXTA被設計能在任何數字設備上實現,包括傳感器、消費電子產品、PDA設備、網絡路由器、桌面電腦、服務器和存儲設備。
術語
同位體(peer):一個同位體是可以理解協議的任何實體。所以,一個同位體可以是一個處理器、機器或用戶。
同位體組(peer group):一個同位體組是提供一個通用服務的同位體的集合。
管道(pipes):它是發送和接受消息的通道,它是異步的。
廣告(advertisement):一個廣告是一個XML結構的文檔,用來命名,描述和公布現有的資源,如同位體,同位體組,管道,或服務。各種廣告的格式請參考JXTA規范。
JXTA的層次
JXTA平臺被分為三層
- 平臺(platform):這一層封裝了最根本的東西,包括同位體、同位體組、同位體發現、同位體通信、同位體監視和相關的安全原語。
- 服務(services):這一層包括對于P2P網絡不是必需的,但很通用的,如查找、共享、索引、緩存代碼和內容的機制。
- 應用(application):這一層包括 P2P電子郵件系統、分布式拍賣系統等。
JXTA協議
抽象的看,JXTA技術實際上就是一些協議,目前定義了以下協議
同位體發現協議
這個協議用來查找其它同位體的廣告,通過它,可以查找所有的同位體、同位體組或核心廣告。這個協議是缺省的發現協議,可以被替換。集合點同位體是這樣一種同位體,它保存著一個知道的同位體和同位體組的表。如果這個表是完全及時的,那么往這個同位體發一個消息,就可以發現所有的同位體,當然,這是最簡單的一種方式。查找有兩種方式,其一就是上述的向集合點同位體發送消息,另外,可以向一個范圍內廣播發送消息,這種消息叫做發現查詢消息。發現響應消息返回一個或多個同位體和同位體組的廣告。以上這兩種消息的格式請參考 JXTA規范。
同位體解決(resolver)協議
這個協議使一個同位體可以通過發送和接收查詢來查找同位體、同位體組、管道和一些與服務相關的信息,如服務的狀態,通道端點的狀態等。一個同位體組的每一個服務都可以注冊一個handler來處理這些查詢。每一個查詢都包括唯一的handler的名字,指出由誰來處理它。同樣解決查詢消息與解決響應消息的格式參考JXTA規范。
同位體信息協議
當一個同位體被定位后,我們關心它的能力和狀態,這個協議就是用來得到這些信息。如想要知道一個同位體是否激活,向它發送ping消息。相關消息的格式參考JXTA規范。
同位體成員資格協議
這個協議允許同位體:得到組的成員資格的要求和應用的證書;請求成員資格和得到成員資格的證書;更新現存的成員資格和應用的證書;除掉成員資格和應用的證書。這個協議定義的消息參考JXTA規范。
管道綁定協議
這個協議被組的成員把管道的廣告綁定到管道的端點。
端點路由協議
這個協議被同位體路由器用來發送消息給另一個路由器來找出一個消息到達目的的路由。
JXTA原型實現
2001年4月,發布了第一個原型實現JXTA version 1.0,由于java的跨平臺特性,所以這個實現是基于JDK1.1.4的。
發現機制:JXTA規范中并沒有具體規定,JXTA version 1.0支持以下發現機制
- 基于局域網的發現。
- 通過邀請發現:一個同位體收到邀請,通過邀請的內容發現。
- 層疊發現:如果一個同位體發現了第二個同位體,若第二個允許的話,第一個可以通過第二個發現新的同位體,組和服務。
- 通過集合點同位體:這個前面已討論過,集合點同位體就是知道其它同位體信息的同位體。
傳播范圍:JXTA沒有強制規定消息怎么傳播,一個消息可能只在局域網上傳播,也可能在INTERNENT上傳播。現在的JXTA實現把同位體組作為隱示的傳播范圍,因為在理論上,任何范圍都可以以對應的同位體組的形式表示。
安全:
JXTA Version 1.0提供了以下安全原語一個簡單的支持哈希函數(如MD5)、對稱加密算法(如RC4)和非對稱加密算法(如RSA)的庫;一個鑒別框架;一個簡單的基于口令的登錄策略;一個簡單的存取控制機制,這基于同位體組,一個組的成員自動的授權訪問其它的成員共享的數據;基于SSL/TLS的安全傳輸策略。 Project JXTA是開放源代碼的,由許多參與者共同發展,它每天都有新的發展,我們應該參與進去,在剛剛興起的P2P計算中做出自己的貢獻。關于JXTA更詳細的知識,請到它的網站 http://www.jxta.org