摘 要: 對JXTA做了比較深入的研究,,介紹JXTA的概念、協(xié)議,、框架,,描述JXTA平臺拍賣系統(tǒng)的設(shè)計和實現(xiàn),最后對拍賣模型等關(guān)鍵部分進行設(shè)計分析,。
關(guān)鍵詞: P2P,;JXTA;協(xié)議,;框架,;拍賣模型
B/S或者C/S的應(yīng)用模式已經(jīng)無法滿足網(wǎng)絡(luò)上大文件的共享,就產(chǎn)生了一種新型的點對點技術(shù),,出現(xiàn)了“我為人人,,人人為我”的P2P模式,這為互聯(lián)網(wǎng)的分布,、共享精神帶來了無限的遐想,。
1 P2P技術(shù)
P2P是英文Peer-to-Peer的縮寫,該名字意味著P2P網(wǎng)絡(luò)中各個節(jié)點之間的關(guān)系是對等的,,無需經(jīng)過任何中心節(jié)點直接與服務(wù)器聯(lián)系,。P2P系統(tǒng)分類如圖1所示。
隨著Napster[1],、Gnutella[2]及ICQ類P2P系統(tǒng)的出現(xiàn),,P2P的技術(shù)優(yōu)勢以及在未來網(wǎng)絡(luò)中的應(yīng)用價值逐漸體現(xiàn)出來,在工業(yè)界和學(xué)術(shù)界都受到了高度的重視,。許多大公司及新興公司,,如Intel、HP等都成立了P2P工作組從事這一技術(shù)研究,。
2 JXTA技術(shù)
JXTA是一種標(biāo)準(zhǔn)平臺,,它提供了開發(fā)分布式服務(wù)和應(yīng)用程序的基本組件,JXTA具有以下優(yōu)越性[3-5]:
(1)互操作性,。它可以使各種P2P系統(tǒng)互聯(lián),,無縫地提供服務(wù),。
(2)平臺無關(guān)性。它與開發(fā)語言,、操作協(xié)議及網(wǎng)絡(luò)協(xié)議都沒有關(guān)系,。
(3)無處不在性(設(shè)備無關(guān)性)。只要這個設(shè)備遵循這個協(xié)議,,都可以建立P2P系統(tǒng),,如圖2 所示。
第一層是JXTA的核心層,,包括Peer,、對等組、Peer發(fā)現(xiàn),、Peer通信、Peer監(jiān)視和相關(guān)的安全原語,。
第二層是服務(wù)層,,提供訪問JXTA協(xié)議的接口。
第三層是應(yīng)用層,,讓應(yīng)用程序訪問JXTA的網(wǎng)絡(luò)和服務(wù),。
3 餐館拍賣模型
拍賣系統(tǒng)被設(shè)計為包含2個組成部分:一個用戶接口(前端)和一個JXTA集成(后臺)。用戶接口將為用戶顯示對等體和對等組的信息[6],,以便用戶能監(jiān)控其他對等體和對等組,,而對等體和對等組信息的更新是通過JXTA的后臺實現(xiàn)的。
由圖3所示的餐館拍賣模型可知:
(1)RestoPeer加入或創(chuàng)建一個對等組,,廣播自己的基本信息通告,,建立自己的輸入管道端點,餐館A和餐館B分別加入NetPeerGroup,,并在小組內(nèi)部廣播自己的服務(wù)通告,,建立屬于自己的RestoNet小組。
(2)用餐者1,、用餐者2和用餐者3分別加入NetPeer-
Group,,在小組內(nèi)部廣播自己的服務(wù)請求,分別根據(jù)接收到的通告,,根據(jù)自己的愛好,,加入相應(yīng)的RestoNet小組,建立對應(yīng)的輸入管道端點,;發(fā)送廣告通告,,尋找適合自己的RestoPeer,建立輸出管道端點,。把自己所要請求的信息[7]先轉(zhuǎn)化為結(jié)構(gòu)化文檔(即XML文檔),,通過已經(jīng)建立的管道發(fā)送給相應(yīng)的RestoPeer,。
(3)餐館加入對等組,向組中的用餐者發(fā)送自己的需求通告,,從輸入管道中獲取信息,,轉(zhuǎn)化為結(jié)構(gòu)化文檔,讀取消息的各個部分,,根據(jù)消息的內(nèi)容,,將自己的拍賣信息轉(zhuǎn)化為XML文檔,建立輸出管道端點,,發(fā)送給所對應(yīng)的用餐者,。
(4)用餐者選擇餐館發(fā)送確認(rèn)通告,發(fā)送自己所能接受的價位,,拍賣競標(biāo)過程完成,。
4 餐館拍賣系統(tǒng)的流程圖
餐館拍賣流程是在一個RestorPeer和一個HungryPeer兩個人之間進行的。拍賣系統(tǒng)流程圖如圖4所示,。
(1)RestoPeer在NetPeerGroup的引導(dǎo)下完成自身的初始化,,并加入NetPeerGroup小組,若沒有發(fā)現(xiàn),,則建立一個新的NetPeerGroup對等組,。
(2)對RestoPeer這一對等組來說,首先試圖通過Net-
PeerGroup的發(fā)現(xiàn)服務(wù)或PDP去發(fā)現(xiàn)RestoNet對等組,,如果找到RestoNet則加入這一對等組,,如果找不到則創(chuàng)建一個新的RestoNet對等組。
(3)對HungryPeer而言也是在NetPeerGroup的引導(dǎo)下,,完成自身的初始化,,并加入NetPeerGroup小組,接下來加入RestoNet對等組,。加入RestoNet的RestoPeer后,,發(fā)現(xiàn)了一個RestoPeer發(fā)布的管道通告,根據(jù)管道通告,,建立自己的輸出管道,,把適合自己的RestoPeer加入到自己的通信列表中,并與相應(yīng)的RestoPeer建立連接,,創(chuàng)建一個輸出管道端點,,將自己的就餐請求轉(zhuǎn)化成結(jié)構(gòu)化文檔,并壓縮成消息的格式,,通過輸出管道將消息發(fā)送出去,。
(4)RestoPeer從輸入管道中獲取消息,并轉(zhuǎn)化為結(jié)構(gòu)化文檔,獲取消息的各個部分,,創(chuàng)建輸出管道端點,,根據(jù)相應(yīng)的請求,發(fā)出自己的出價響應(yīng),,并把消息轉(zhuǎn)化為XML文檔,,通過輸出管道,發(fā)送消息到HungryPeer,。
(5)HungryPeer獲取消息,,根據(jù)消息所提供的信息,選擇能很好滿足自己的就餐信息,,對RestoPeer發(fā)出定單,。
本文利用JXTA平臺的P2P技術(shù)開發(fā)一個網(wǎng)上餐館拍賣系統(tǒng),詳細(xì)描述了從對等組的搜索,、建立到兩個對等體的發(fā)現(xiàn),、相互通信直到通信的結(jié)束,對從事P2P相關(guān)應(yīng)用程序的開發(fā)具有很強的指導(dǎo)意義,。
參考文獻
[1] 胡忠紅,,王以群.基于P2P技術(shù)的信息網(wǎng)絡(luò)[J].中國信息導(dǎo)報,2003(4):58-59.
[2] FLENNER R.Java P2P技術(shù)內(nèi)幕[M].北京:人民郵電出版社,,2003.
[3] Li Gong.JXTA:a network programming environment[J].IEEE Internet Computing,2001,,5(3):88-95.
[4] 吳勝浩,,鐘亦平,張世永.JXTA:新型的網(wǎng)絡(luò)計算環(huán)境[J]. 計算機工程,,2004,,30(9):4-6.
[5] 黃小琴,黎星星,,朱慶生.對等網(wǎng)絡(luò)技術(shù)的新發(fā)展——JXTA[J].計算機科學(xué),,2003,30(1):104.
[6] WATERHOUSE S,,DOOLIN D M,,KAN G,et al.Distributed search in P2P networks[J].IEEE Internet Computing,,2002,,6(1):68-72,116-117.
[7] 陳姝,,方濱興,,周勇林.P2P技術(shù)的研究與應(yīng)用[J].計算機工程與應(yīng)用,2002,,38(13):20-23.