資源描述:
《基于jxta的p2p即時(shí)通信系統(tǒng)的設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、基于JXTA的P2P即時(shí)通信系統(tǒng)的設(shè)計(jì)隨著P2P應(yīng)用的普及,P2P技術(shù)受到廣泛關(guān)注。本文首先詳細(xì)介紹了JXTA平臺(tái)的概念、核心構(gòu)件和體系結(jié)構(gòu),然后設(shè)計(jì)了一個(gè)基于JXTA的P2P應(yīng)用程序開發(fā)框架,最后針對(duì)這個(gè)框架實(shí)現(xiàn)了一個(gè)即時(shí)通信系統(tǒng)。關(guān)鍵詞:JXTA;對(duì)等X絡(luò);即時(shí)通信系統(tǒng);對(duì)等體;對(duì)等組 中圖分類號(hào):TP302.1文獻(xiàn)標(biāo)識(shí)碼:A: 1.引言 近年來(lái),對(duì)等X絡(luò)模型P2P受到人們的關(guān)注,成為熱點(diǎn)技術(shù)。P2P就是peertopeer,也叫對(duì)等X絡(luò)或?qū)Φ冗B接,它與傳統(tǒng)的瀏覽器/服務(wù)器(b/s)模式或客戶端/服務(wù)器(c/s)最大的不同是降低了對(duì)服務(wù)器的
2、依賴,并且在P2PX絡(luò)中各peer之間的關(guān)系是對(duì)等的,peer同時(shí)具有client和server的特點(diǎn)。P2P模型無(wú)需依賴集中式服務(wù)器或資源就可以直接通信,進(jìn)行文件傳輸[1]。 P2P技術(shù)在寬帶X絡(luò)中具有較強(qiáng)的應(yīng)用潛力,中科院計(jì)算機(jī)技術(shù)研究所的原所長(zhǎng)李國(guó)杰先生在2002年的legendent(通告):通告是JXTA的語(yǔ)言無(wú)關(guān)的元數(shù)據(jù)結(jié)構(gòu),用于描述資源。所有的X絡(luò)資源都用通告表示,例如一個(gè)Peer、PeerGroup、管道或一個(gè)服務(wù)。通告一般以XML文檔作為表示形式。2.3JXTA的體系結(jié)構(gòu) JXTA的體系結(jié)構(gòu)分為三層,如圖1所示:(1)JXTA
3、核心 JXTA核心封裝了P2PX絡(luò)的一些最基礎(chǔ)的要素。包括為P2P應(yīng)用提供核心機(jī)制的模塊,如節(jié)點(diǎn)發(fā)現(xiàn)、通信傳輸、對(duì)等點(diǎn)和對(duì)等點(diǎn)組的建立以及相關(guān)的安全原語(yǔ)。(2)服務(wù)層 服務(wù)層包含一些P2PX絡(luò)操作中常用的X絡(luò)服務(wù),這些服務(wù)并非必不可少,但卻非常有用。這些服務(wù)包括查找和排序、指向、文件共享、存儲(chǔ)系統(tǒng)、分布式文件系統(tǒng)、資源整合和租借、協(xié)議轉(zhuǎn)換、認(rèn)證及PKI服務(wù)等[7]。(3)應(yīng)用層 應(yīng)用層包括應(yīng)用的實(shí)現(xiàn),例如P2P即時(shí)通信、文件資源共享、P2P電郵系統(tǒng)、娛樂(lè)內(nèi)容管理和傳遞、分布式拍賣系統(tǒng)以及其它很多應(yīng)用程序的整合。應(yīng)用層和服務(wù)層之間并沒(méi)有嚴(yán)格的界
4、限?! ?.基于JXTA的P2P即時(shí)通信系統(tǒng)設(shè)計(jì)3.1需求分析 本系統(tǒng)是一個(gè)建立在JXTA平臺(tái)上的P2P即時(shí)通信軟件,其功能類似于目前常用的即時(shí)通信軟件,如、ICQ和MSN等軟件。本系統(tǒng)要求能夠?qū)崿F(xiàn)局域X內(nèi)的即時(shí)通信功能,具體的功能有對(duì)等點(diǎn)的發(fā)現(xiàn)、對(duì)等點(diǎn)之間的一對(duì)一通信、對(duì)等點(diǎn)之間的文件傳輸和視音頻傳輸以及對(duì)等點(diǎn)到對(duì)等點(diǎn)組的一對(duì)多通信,同時(shí)要求系統(tǒng)具有良好的擴(kuò)展性。3.2X絡(luò)模型設(shè)計(jì) 因?yàn)镴XTA平臺(tái)本身基于P2P技術(shù)設(shè)計(jì),可以避免大量信息通過(guò)中心節(jié)點(diǎn)造成過(guò)度負(fù)載而引起的系統(tǒng)變慢和崩潰的情況,因此非常適合用于即時(shí)通信應(yīng)用。另外,由于程序基于Ja
5、vaApplet開發(fā),X內(nèi)節(jié)點(diǎn)都必須通過(guò)中心服務(wù)器獲取程序,為了體現(xiàn)P2P的負(fù)載分散特性和C/S結(jié)構(gòu)的集中式同步節(jié)點(diǎn)狀態(tài)的優(yōu)點(diǎn),這里采用P2P的非完全集中式結(jié)構(gòu),如圖2所示。該結(jié)構(gòu)中所有節(jié)點(diǎn)都與服務(wù)器相連,上下線信息均通過(guò)服務(wù)器同步和分發(fā),節(jié)點(diǎn)在獲取組內(nèi)其他節(jié)點(diǎn)的在線狀態(tài)后可以不通過(guò)服務(wù)器而直接與節(jié)點(diǎn)相連。3.3模塊設(shè)計(jì) 通過(guò)分析,本系統(tǒng)從功能上分為用戶界面(GUI)模塊、通信模塊、資源模塊等三大模塊。其中資源模塊涵蓋產(chǎn)生和存儲(chǔ)應(yīng)用需要的所有資源,主要有用戶的各種管道廣告信息、本機(jī)X絡(luò)資源和國(guó)際化資源。如圖3所示,三大模塊相互協(xié)作構(gòu)成本軟件的基本
6、框架?! 〕跏紶顟B(tài)下,程序通過(guò)入口函數(shù)傳入用戶名等信息,同時(shí)完成通信模塊和用戶界面模塊的初始化。接下來(lái)將詳細(xì)介紹用戶界面模塊和通信模塊的設(shè)計(jì)。3.3.1用戶界面模塊 用戶界面是軟件和用戶交互的最主要方式,本軟件作為企業(yè)內(nèi)部信息系統(tǒng)的子系統(tǒng),使用Javaapplet實(shí)現(xiàn),設(shè)計(jì)的原則要求簡(jiǎn)單明了,另外由于是嵌在X頁(yè)中的程序,故要求其具有較高的可靠性。因此本界面設(shè)計(jì)盡量簡(jiǎn)潔,其總體結(jié)構(gòu)如圖4所示?! ”窘缑媸褂肧wing工具包進(jìn)行開發(fā),它以抽象窗口工具包(AWT)為基礎(chǔ),可以使跨平臺(tái)應(yīng)用程序使用任何外觀風(fēng)格。同時(shí),Swing開發(fā)人員用很少的代碼便可利用
7、Swing靈活豐富的功能和模塊化組件創(chuàng)建出優(yōu)雅的用戶界面。3.3.2通信模塊 通信模塊是程序與外界交互的最重要的部分。本程序的通信機(jī)制是在JXTA協(xié)議基礎(chǔ)上開發(fā)的,而JXTA的節(jié)點(diǎn)發(fā)現(xiàn)機(jī)制(Discovery)中發(fā)現(xiàn)新節(jié)點(diǎn)需要很長(zhǎng)時(shí)間,非常不適用于局域X,因此本系統(tǒng)重新設(shè)計(jì)新的節(jié)點(diǎn)發(fā)現(xiàn)機(jī)制。JXTA協(xié)議中用于通信的組件主要有Pipe和Socket,其中JxtaBiDiPipe用于節(jié)點(diǎn)之間的文字通信和信令傳輸,JxtaSocket用于節(jié)點(diǎn)之間的字節(jié)流傳輸,本系統(tǒng)中用于文件傳輸,JxtaPropagatedPipe用于對(duì)等點(diǎn)組內(nèi)的廣播型文本通信。(1
8、)發(fā)現(xiàn)機(jī)制的設(shè)計(jì) JXTA提供了對(duì)等點(diǎn)發(fā)現(xiàn)協(xié)議(PeerDiscoveryProtocol),對(duì)等點(diǎn)之間利用這個(gè)協(xié)議來(lái)發(fā)