1 引言
在公共網(wǎng)絡(luò)上P2P即時(shí)通訊、文件傳輸和文件共享軟件已經(jīng)取得了非常成熟的應(yīng)用,。而在一些專用的通信網(wǎng)絡(luò)中,,如電子政務(wù)網(wǎng)絡(luò)、公安網(wǎng)及鐵路網(wǎng)中應(yīng)用非常少,。主要原因一是這些都是專用網(wǎng)絡(luò),,與互聯(lián)網(wǎng)物理隔絕,因此無法使用P2P在公共網(wǎng)絡(luò)上可以得到的服務(wù),;二是這些專用網(wǎng)絡(luò)的部門分散于全國各地,,通過VPN進(jìn)行互聯(lián),這樣就會(huì)導(dǎo)致網(wǎng)絡(luò)帶寬比較小,,而P2P軟件的使用會(huì)占用非常大的帶寬,,這樣會(huì)影響整個(gè)網(wǎng)絡(luò)的使用。本文從鐵路公安網(wǎng)絡(luò)的特點(diǎn)出發(fā),,研究了基于JXTA平臺(tái)的P2P網(wǎng)絡(luò)傳輸方案,,本文的研究成果對(duì)其它專用網(wǎng)絡(luò)P2P應(yīng)用程序的設(shè)計(jì)具有重要的參考價(jià)值。
2 JXTA概述
2001年4月SUN公司推出了JXTA,它是SUN推出的一組標(biāo)準(zhǔn)化的P2P協(xié)議,,提供了開發(fā)基于P2P應(yīng)用程序的基本組件,。JXTA的特點(diǎn)是與操作系統(tǒng)無關(guān)、語言無關(guān),、可在任何設(shè)備運(yùn)行,,這樣滿足了在不同平臺(tái)上進(jìn)行開發(fā),而且開發(fā)出來的系統(tǒng)通用性很好,。
JXTA應(yīng)用的基本流程是:組建P2P網(wǎng)絡(luò)啟動(dòng)JXTA平臺(tái)實(shí)現(xiàn)JXTA協(xié)議實(shí)現(xiàn)JXTA應(yīng)用系統(tǒng),。
3 基于JXTA平臺(tái)的P2P網(wǎng)絡(luò)方案
基于JXTA的P2P網(wǎng)絡(luò)是使用JXTA協(xié)議建立起的P2P網(wǎng)絡(luò),由JXTA協(xié)議,、網(wǎng)絡(luò)管理,、應(yīng)用系統(tǒng)三部分組成。
3.1 JXTA平臺(tái)
JXTA實(shí)現(xiàn)了在物理設(shè)備上進(jìn)行網(wǎng)絡(luò)互聯(lián)的功能,,并為應(yīng)用系統(tǒng)提供了簡化的通信接口,。
3.2 網(wǎng)絡(luò)管理
網(wǎng)絡(luò)管理采用緩存和多線程等機(jī)制,將使用JXTA協(xié)議建立的P2P網(wǎng)絡(luò)從互聯(lián)網(wǎng)中獨(dú)立出來,,并進(jìn)行P2P網(wǎng)絡(luò)的管理,,通過了網(wǎng)絡(luò)管理后,才真正形成一個(gè)具有使用P2P軟件的系統(tǒng),。
3.3 應(yīng)用系統(tǒng)
在P2P網(wǎng)絡(luò)上開發(fā)具有應(yīng)用工程的程序,。這里有實(shí)時(shí)通信,文件傳輸,,協(xié)同辦公等,,針對(duì)不同要求可以開發(fā)不同的系統(tǒng)[4]。上面三個(gè)層次的結(jié)合構(gòu)成基于JXTA的P2P網(wǎng)絡(luò)。P2P信息傳輸系統(tǒng)以JXTA為平臺(tái),,應(yīng)用它提供的一些服務(wù)接口完成系統(tǒng)的應(yīng)用,。圖1為基于JXTA的P2P信息傳輸系統(tǒng)應(yīng)用模型,通過底層JXTA提供的服務(wù)和應(yīng)用程序,,為P2P系統(tǒng)中的網(wǎng)絡(luò)管理和信息管理提供服務(wù)接口,。
而系統(tǒng)功能模塊按照功能進(jìn)行分類,功能實(shí)現(xiàn)類則對(duì)功能模塊的不同功能進(jìn)行實(shí)現(xiàn),。
圖1基于JXTA的P2P信息傳輸系統(tǒng)應(yīng)用模型
4 鐵路公安P2P網(wǎng)絡(luò)方案
西安某鐵路公安機(jī)關(guān)具有線長,、點(diǎn)多的特點(diǎn),它是按照鐵路站點(diǎn)與站點(diǎn)之間的關(guān)系進(jìn)行分布的,,每個(gè)站點(diǎn)是局域網(wǎng),,它們之間進(jìn)行連接組成廣域網(wǎng),其計(jì)算機(jī)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,。
圖2鐵路公安機(jī)關(guān)計(jì)算機(jī)網(wǎng)
通過圖2發(fā)現(xiàn),,按照這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)可以使用JXTA協(xié)議的應(yīng)用,建設(shè)虛擬的P2P網(wǎng)絡(luò),。首先使用已建立了局,、處、基層的三級(jí)計(jì)算機(jī)網(wǎng)絡(luò),,建立P2P網(wǎng)絡(luò),;然后運(yùn)用JXTA協(xié)議,使用JXTA的接口來進(jìn)行二次開發(fā),,實(shí)現(xiàn)信息傳輸,,數(shù)據(jù)共享、協(xié)同工作等應(yīng)用,;最后再從系統(tǒng)性能和安全性角度出發(fā),,使用信息安全技術(shù)對(duì)P2P網(wǎng)絡(luò)進(jìn)行管理,提高系統(tǒng)的安全性,。
在鐵路公安機(jī)關(guān)均建立了廣域網(wǎng),,有若干個(gè)服務(wù)器負(fù)責(zé)網(wǎng)絡(luò)服務(wù)。為了保證不同局域網(wǎng)中的用戶互相通信,,可將服務(wù)器作為SUPERPEER實(shí)現(xiàn)JXTA集合,、網(wǎng)關(guān)、路由,、代理的功能,,保證P2P網(wǎng)絡(luò)的暢通。其P2P網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,。
圖3鐵路公安機(jī)關(guān)P2P網(wǎng)絡(luò)
鐵路公安機(jī)關(guān)的JXTA-P2P信息傳輸系統(tǒng)由四個(gè)子系統(tǒng)組成,,即時(shí)通訊系統(tǒng),、文件加密傳輸系統(tǒng)、文件共享系統(tǒng)和協(xié)同工作系統(tǒng)(見圖4),。
圖4信息傳輸系統(tǒng)界面
4.1 通訊系統(tǒng)實(shí)現(xiàn)
通訊功能是對(duì)在P2P網(wǎng)絡(luò)中不同的辦公點(diǎn)進(jìn)行信息的及時(shí)通信,,這里有兩個(gè)部分:分為發(fā)送(sender)和接收(receiver)。本系統(tǒng)采用兩種即時(shí)通信方式:一種是組內(nèi)群發(fā),,一種是兩個(gè)用戶之間的單獨(dú)通信,。兩種即時(shí)通信分別通過GroupConnectionHandler類和PeerConnectionHandler類實(shí)現(xiàn),。在JXTAP2P平臺(tái)中,,兩個(gè)對(duì)等體之間是通過管道互相通信的。本系統(tǒng)使用單播安全型管道實(shí)現(xiàn)用戶間的安全通信,,并在建立管道時(shí)采取多次握手方式,。通過CertUti,lChatProeess,Requestor三個(gè)類來實(shí)現(xiàn)用戶的即時(shí)通信。用戶雙方確認(rèn)對(duì)方的證書后,,管道才能成功建立,。CertUtil負(fù)責(zé)請(qǐng)求、驗(yàn)證證書,。
ChatProcess處理整個(gè)通信連接,、通信的全過程。
Requestor負(fù)責(zé)發(fā)送請(qǐng)求,。發(fā)送方和接收方按照?qǐng)D5的方式進(jìn)行,。首先通過網(wǎng)絡(luò)廣告的形式來提供達(dá)到雙方的服務(wù)確定,并形成P2P服務(wù)通道,,在這個(gè)通道上使用socket進(jìn)行傳輸,,傳遞的信息是用xml形式封裝的字節(jié)數(shù)組,數(shù)據(jù)被保存在xml文件中,。
sender對(duì)數(shù)據(jù)進(jìn)行加密并發(fā)送,,receiver接收數(shù)據(jù),并將數(shù)據(jù)解密還原,。
圖5JXTA-P2P即時(shí)通信實(shí)現(xiàn)流程
4.2 文件傳輸功能實(shí)現(xiàn)
文件傳輸功能與共享功能不同,,文件發(fā)送者只希望把文件發(fā)給特定的Peer,而不希望其他Peer得到或竊取這個(gè)文件。首先進(jìn)行文件傳輸屬性的確認(rèn),,然后在接收文件后進(jìn)行加密文件的傳輸,,接收端在收到文件后則需要進(jìn)行解密,文件收發(fā)采用"AES"方法加解密,。
4.3 文件共享功能實(shí)現(xiàn)
文件共享功能把兩個(gè)Peer分別看作服務(wù)端和客戶端,,服務(wù)端在啟動(dòng)時(shí),將共享目錄下所有文件的文件名,、MD5和文件保存位置輸入管道,,以廣告形式發(fā)布到JXTA網(wǎng)絡(luò)中,,同時(shí)以線程的形式啟動(dòng)服務(wù)端,監(jiān)聽客戶端的請(qǐng)求,。當(dāng)客戶端進(jìn)行共享功能請(qǐng)求的時(shí)候則JXTA進(jìn)行下載傳輸,。
本系統(tǒng)采用CMS作為文件共享系統(tǒng)的平臺(tái),通過CMS中提供的API實(shí)現(xiàn)文件共享的功能,。共享文件查找的具體過程如下:
?。?)派生ListContentRequest類,傳入查詢條件,。
?。?)調(diào)用activateRequest方法啟動(dòng)查找方法。
?。?)調(diào)用notifyMoreResults事件處理查找到文件,,通過ListContentRequest獲取通告,包括用戶共享資源信息和用戶管道等信息,。
JXTA的CMS文件共享平臺(tái),,是以管道協(xié)議傳輸?shù)模@取資源通告,,就為文件的上傳和下載提供了基本條件,。查到共享資源后,調(diào)用notifyMoreResults事件處理方法,,自動(dòng)將查找到的資源通告緩存在本地,,供用戶使用。
4.4 協(xié)同工作系統(tǒng)
協(xié)同工作是通過P2P網(wǎng)絡(luò)中的組播功能進(jìn)行實(shí)現(xiàn),,它對(duì)處于同一組播組的計(jì)算機(jī)進(jìn)行服務(wù),,這樣就解決了傳統(tǒng)辦公的點(diǎn)與點(diǎn)之間效率低的問題。
5 結(jié)語
本文所設(shè)計(jì)的針對(duì)鐵路公安網(wǎng)的基于JXTA的P2P網(wǎng)絡(luò)信息傳輸系統(tǒng),,實(shí)現(xiàn)了即時(shí)通信系統(tǒng),、文件傳輸、文件共享等功能,。這些功能是分布式辦公系統(tǒng)中最重要的功能,。本文的設(shè)計(jì)方法對(duì)專網(wǎng)系統(tǒng)的P2P應(yīng)用開發(fā)具有重要的參考意義。