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