《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于JXTA的P2P實(shí)例的研究與實(shí)現(xiàn)
基于JXTA的P2P實(shí)例的研究與實(shí)現(xiàn)
來(lái)源:微型機(jī)與應(yīng)用2013年第14期
李淑霞
(河南工業(yè)職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程系,河南 南陽(yáng)473000)
摘要: 對(duì)JXTA做了比較深入的研究,,介紹JXTA的概念,、協(xié)議、框架,描述JXTA平臺(tái)拍賣(mài)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),最后對(duì)拍賣(mài)模型等關(guān)鍵部分進(jìn)行設(shè)計(jì)分析,。
Abstract:
Key words :

摘  要: 對(duì)JXTA做了比較深入的研究,,介紹JXTA的概念,、協(xié)議框架,,描述JXTA平臺(tái)拍賣(mài)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),,最后對(duì)拍賣(mài)模型等關(guān)鍵部分進(jìn)行設(shè)計(jì)分析。
關(guān)鍵詞: P2P,;JXTA,;協(xié)議;框架,;拍賣(mài)模型

    B/S或者C/S的應(yīng)用模式已經(jīng)無(wú)法滿足網(wǎng)絡(luò)上大文件的共享,,就產(chǎn)生了一種新型的點(diǎn)對(duì)點(diǎn)技術(shù),出現(xiàn)了“我為人人,,人人為我”的P2P模式,,這為互聯(lián)網(wǎng)的分布、共享精神帶來(lái)了無(wú)限的遐想,。
1 P2P技術(shù)
    P2P是英文Peer-to-Peer的縮寫(xiě),,該名字意味著P2P網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)之間的關(guān)系是對(duì)等的,無(wú)需經(jīng)過(guò)任何中心節(jié)點(diǎn)直接與服務(wù)器聯(lián)系,。P2P系統(tǒng)分類(lèi)如圖1所示,。

    隨著Napster[1]、Gnutella[2]及ICQ類(lèi)P2P系統(tǒng)的出現(xiàn),,P2P的技術(shù)優(yōu)勢(shì)以及在未來(lái)網(wǎng)絡(luò)中的應(yīng)用價(jià)值逐漸體現(xiàn)出來(lái),,在工業(yè)界和學(xué)術(shù)界都受到了高度的重視。許多大公司及新興公司,,如Intel,、HP等都成立了P2P工作組從事這一技術(shù)研究,。
2 JXTA技術(shù)
    JXTA是一種標(biāo)準(zhǔn)平臺(tái),,它提供了開(kāi)發(fā)分布式服務(wù)和應(yīng)用程序的基本組件,JXTA具有以下優(yōu)越性[3-5]:
    (1)互操作性,。它可以使各種P2P系統(tǒng)互聯(lián),,無(wú)縫地提供服務(wù)。
    (2)平臺(tái)無(wú)關(guān)性,。它與開(kāi)發(fā)語(yǔ)言,、操作協(xié)議及網(wǎng)絡(luò)協(xié)議都沒(méi)有關(guān)系。
    (3)無(wú)處不在性(設(shè)備無(wú)關(guān)性),。只要這個(gè)設(shè)備遵循這個(gè)協(xié)議,,都可以建立P2P系統(tǒng),如圖2 所示,。

    第一層是JXTA的核心層,,包括Peer,、對(duì)等組、Peer發(fā)現(xiàn),、Peer通信,、Peer監(jiān)視和相關(guān)的安全原語(yǔ)。
    第二層是服務(wù)層,,提供訪問(wèn)JXTA協(xié)議的接口,。
    第三層是應(yīng)用層,讓?xiě)?yīng)用程序訪問(wèn)JXTA的網(wǎng)絡(luò)和服務(wù),。
3 餐館拍賣(mài)模型
    拍賣(mài)系統(tǒng)被設(shè)計(jì)為包含2個(gè)組成部分:一個(gè)用戶接口(前端)和一個(gè)JXTA集成(后臺(tái)),。用戶接口將為用戶顯示對(duì)等體和對(duì)等組的信息[6],以便用戶能監(jiān)控其他對(duì)等體和對(duì)等組,,而對(duì)等體和對(duì)等組信息的更新是通過(guò)JXTA的后臺(tái)實(shí)現(xiàn)的,。
    由圖3所示的餐館拍賣(mài)模型可知:

    (1)RestoPeer加入或創(chuàng)建一個(gè)對(duì)等組,廣播自己的基本信息通告,,建立自己的輸入管道端點(diǎn),,餐館A和餐館B分別加入NetPeerGroup,并在小組內(nèi)部廣播自己的服務(wù)通告,,建立屬于自己的RestoNet小組,。
    (2)用餐者1、用餐者2和用餐者3分別加入NetPeer-
Group,,在小組內(nèi)部廣播自己的服務(wù)請(qǐng)求,,分別根據(jù)接收到的通告,根據(jù)自己的愛(ài)好,,加入相應(yīng)的RestoNet小組,,建立對(duì)應(yīng)的輸入管道端點(diǎn);發(fā)送廣告通告,,尋找適合自己的RestoPeer,,建立輸出管道端點(diǎn)。把自己所要請(qǐng)求的信息[7]先轉(zhuǎn)化為結(jié)構(gòu)化文檔(即XML文檔),,通過(guò)已經(jīng)建立的管道發(fā)送給相應(yīng)的RestoPeer,。
    (3)餐館加入對(duì)等組,向組中的用餐者發(fā)送自己的需求通告,,從輸入管道中獲取信息,,轉(zhuǎn)化為結(jié)構(gòu)化文檔,讀取消息的各個(gè)部分,,根據(jù)消息的內(nèi)容,,將自己的拍賣(mài)信息轉(zhuǎn)化為XML文檔,建立輸出管道端點(diǎn),發(fā)送給所對(duì)應(yīng)的用餐者,。
    (4)用餐者選擇餐館發(fā)送確認(rèn)通告,,發(fā)送自己所能接受的價(jià)位,拍賣(mài)競(jìng)標(biāo)過(guò)程完成,。
4 餐館拍賣(mài)系統(tǒng)的流程圖
    餐館拍賣(mài)流程是在一個(gè)RestorPeer和一個(gè)HungryPeer兩個(gè)人之間進(jìn)行的,。拍賣(mài)系統(tǒng)流程圖如圖4所示。

    (1)RestoPeer在NetPeerGroup的引導(dǎo)下完成自身的初始化,,并加入NetPeerGroup小組,,若沒(méi)有發(fā)現(xiàn),則建立一個(gè)新的NetPeerGroup對(duì)等組,。
    (2)對(duì)RestoPeer這一對(duì)等組來(lái)說(shuō),,首先試圖通過(guò)Net-
PeerGroup的發(fā)現(xiàn)服務(wù)或PDP去發(fā)現(xiàn)RestoNet對(duì)等組,如果找到RestoNet則加入這一對(duì)等組,,如果找不到則創(chuàng)建一個(gè)新的RestoNet對(duì)等組,。
    (3)對(duì)HungryPeer而言也是在NetPeerGroup的引導(dǎo)下,完成自身的初始化,,并加入NetPeerGroup小組,,接下來(lái)加入RestoNet對(duì)等組。加入RestoNet的RestoPeer后,,發(fā)現(xiàn)了一個(gè)RestoPeer發(fā)布的管道通告,,根據(jù)管道通告,建立自己的輸出管道,,把適合自己的RestoPeer加入到自己的通信列表中,,并與相應(yīng)的RestoPeer建立連接,創(chuàng)建一個(gè)輸出管道端點(diǎn),,將自己的就餐請(qǐng)求轉(zhuǎn)化成結(jié)構(gòu)化文檔,,并壓縮成消息的格式,通過(guò)輸出管道將消息發(fā)送出去,。
    (4)RestoPeer從輸入管道中獲取消息,,并轉(zhuǎn)化為結(jié)構(gòu)化文檔,獲取消息的各個(gè)部分,,創(chuàng)建輸出管道端點(diǎn),,根據(jù)相應(yīng)的請(qǐng)求,,發(fā)出自己的出價(jià)響應(yīng),,并把消息轉(zhuǎn)化為XML文檔,通過(guò)輸出管道,,發(fā)送消息到HungryPeer,。
    (5)HungryPeer獲取消息,根據(jù)消息所提供的信息,選擇能很好滿足自己的就餐信息,,對(duì)RestoPeer發(fā)出定單,。

 


    本文利用JXTA平臺(tái)的P2P技術(shù)開(kāi)發(fā)一個(gè)網(wǎng)上餐館拍賣(mài)系統(tǒng),詳細(xì)描述了從對(duì)等組的搜索,、建立到兩個(gè)對(duì)等體的發(fā)現(xiàn),、相互通信直到通信的結(jié)束,對(duì)從事P2P相關(guān)應(yīng)用程序的開(kāi)發(fā)具有很強(qiáng)的指導(dǎo)意義,。
參考文獻(xiàn)
[1] 胡忠紅,,王以群.基于P2P技術(shù)的信息網(wǎng)絡(luò)[J].中國(guó)信息導(dǎo)報(bà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ò)計(jì)算環(huán)境[J]. 計(jì)算機(jī)工程,2004,,30(9):4-6.
[5] 黃小琴,,黎星星,朱慶生.對(duì)等網(wǎng)絡(luò)技術(shù)的新發(fā)展——JXTA[J].計(jì)算機(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].計(jì)算機(jī)工程與應(yīng)用,,2002,38(13):20-23.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。