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