1 引言
P2P即時(shí)通訊、文件傳輸和文件共享軟件在一些專用的通信網(wǎng)絡(luò)中,如電子政務(wù)網(wǎng)絡(luò)、公安網(wǎng)及鐵路網(wǎng)中應(yīng)用非常少。主要原因一是這些都是專用網(wǎng)絡(luò),與互聯(lián)網(wǎng)物理隔絕,因此無(wú)法使用P2P在公共網(wǎng)絡(luò)上可以得到的服務(wù);二是這些專用網(wǎng)絡(luò)的部門(mén)分散于全國(guó)各地,通過(guò)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é)議,提供了開(kāi)發(fā)基于P2P應(yīng)用程序的基本組件。JXTA的特點(diǎn)是與操作系統(tǒng)無(wú)關(guān)、語(yǔ)言無(wú)關(guān)、可在任何設(shè)備運(yùn)行,這樣滿足了在不同平臺(tái)上進(jìn)行開(kāi)發(fā),而且開(kāi)發(fā)出來(lái)的系統(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)提供了簡(jiǎn)化的通信接口。
3.2 網(wǎng)絡(luò)管理
網(wǎng)絡(luò)管理采用緩存和多線程等機(jī)制,將使用JXTA協(xié)議建立的P2P網(wǎng)絡(luò)從互聯(lián)網(wǎng)中獨(dú)立出來(lái),并進(jìn)行P2P網(wǎng)絡(luò)的管理,通過(guò)了網(wǎng)絡(luò)管理后,才真正形成一個(gè)具有使用P2P軟件的系統(tǒng)。
3.3 應(yīng)用系統(tǒng)
在P2P網(wǎng)絡(luò)上開(kāi)發(fā)具有應(yīng)用工程的程序。這里有實(shí)時(shí)通信,文件傳輸,協(xié)同辦公等,針對(duì)不同要求可以開(kāi)發(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)用模型,通過(guò)底層JXTA提供的服務(wù)和應(yīng)用程序,為P2P系統(tǒng)中的網(wǎng)絡(luò)管理和信息管理提供服務(wù)接口。
而系統(tǒng)功能模塊按照功能進(jìn)行分類(lèi),功能實(shí)現(xiàn)類(lèi)則對(duì)功能模塊的不同功能進(jìn)行實(shí)現(xiàn)。
?
圖1基于JXTA的P2P信息傳輸系統(tǒng)應(yīng)用模型
4 鐵路公安P2P網(wǎng)絡(luò)方案
西安某鐵路公安機(jī)關(guān)具有線長(zhǎng)、點(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)
通過(guò)圖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的接口來(lái)進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)信息傳輸,數(shù)據(jù)共享、協(xié)同工作等應(yīng)用;最后再?gòu)南到y(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)(見(jiàn)圖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í)通信分別通過(guò)GroupConnectionHandler類(lèi)和PeerConnectionHandler類(lèi)實(shí)現(xiàn)。在JXTAP2P平臺(tái)中,兩個(gè)對(duì)等體之間是通過(guò)管道互相通信的。本系統(tǒng)使用單播安全型管道實(shí)現(xiàn)用戶間的安全通信,并在建立管道時(shí)采取多次握手方式。通過(guò)CertUti,lChatProeess,Requestor三個(gè)類(lèi)來(lái)實(shí)現(xiàn)用戶的即時(shí)通信。用戶雙方確認(rèn)對(duì)方的證書(shū)后,管道才能成功建立。CertUtil負(fù)責(zé)請(qǐng)求、驗(yàn)證證書(shū)。
ChatProcess處理整個(gè)通信連接、通信的全過(guò)程。
Requestor負(fù)責(zé)發(fā)送請(qǐng)求。發(fā)送方和接收方按照?qǐng)D5的方式進(jìn)行。首先通過(guò)網(wǎng)絡(luò)廣告的形式來(lái)提供達(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)聽(tīng)客戶端的請(qǐng)求。當(dāng)客戶端進(jìn)行共享功能請(qǐng)求的時(shí)候則JXTA進(jìn)行下載傳輸。
本系統(tǒng)采用CMS作為文件共享系統(tǒng)的平臺(tái),通過(guò)CMS中提供的API實(shí)現(xiàn)文件共享的功能。共享文件查找的具體過(guò)程如下:
(1)派生ListContentRequest類(lèi),傳入查詢條件。
(2)調(diào)用activateRequest方法啟動(dòng)查找方法。
(3)調(diào)用notifyMoreResults事件處理查找到文件,通過(guò)ListContentRequest獲取通告,包括用戶共享資源信息和用戶管道等信息。
JXTA的CMS文件共享平臺(tái),是以管道協(xié)議傳輸?shù)?,獲取資源通告,就為文件的上傳和下載提供了基本條件。查到共享資源后,調(diào)用notifyMoreResults事件處理方法,自動(dòng)將查找到的資源通告緩存在本地,供用戶使用。
4.4 協(xié)同工作系統(tǒng)
協(xié)同工作是通過(guò)P2P網(wǎng)絡(luò)中的組播功能進(jìn)行實(shí)現(xiàn),它對(duì)處于同一組播組的計(jì)算機(jī)進(jìn)行服務(wù),這樣就解決了傳統(tǒng)辦公的點(diǎn)與點(diǎn)之間效率低的問(wèn)題。
5 結(jié)語(yǔ)
本文所設(shè)計(jì)的針對(duì)鐵路公安網(wǎng)的基于JXTA的P2P網(wǎng)絡(luò)信息傳輸系統(tǒng),實(shí)現(xiàn)了即時(shí)通信系統(tǒng)、文件傳輸、文件共享等功能。這些功能是分布式辦公系統(tǒng)中最重要的功能。
評(píng)論
查看更多