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