国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于JXTA的P2P即時通信系統(tǒng)設計

發(fā)布時間:2010-7-22 10:23    發(fā)布者:vinda
關鍵詞: JXTA , P2P
一、 引言  

最近幾年,對等式網(wǎng)絡模型P2P開始受到重視,成為最近的技術熱點。P2P即Peer to Peer,稱為對等連接或對等網(wǎng)絡,它與傳統(tǒng)的客戶端/服務器(C/S)或瀏覽器/服務器(B/S)模式相比,最大的不同是降低了對服務器的依賴,在P2P網(wǎng)絡中各Peer之間的關系是對等的,Peer同時具有Client和Server的特點。它們可以直接通信,進行文件傳輸,無需依賴集中式服務器或資源就可完成。  

P2P技術將在網(wǎng)絡尤其是寬帶網(wǎng)絡方面具備強大的應用潛力,2002 legend world大會上中科院計算機所的李國杰所長對P2P技術與網(wǎng)格技術的融和做出了非常有遠見的預測,國外P2P網(wǎng)絡流量占據(jù)了整個網(wǎng)絡流量的40%,國外P2P網(wǎng)絡注冊用戶超過3億以上這些都是有力的證據(jù),從試驗科學的角度來看,P2P技術是因為解決了互聯(lián)網(wǎng)模型中的弱鏈接模塊的信息傳遞這個障礙,使得互聯(lián)網(wǎng)的信息流動更加通暢才使他具備了這樣強大的生命力和應用前景。  

目前,P2P 技術的應用主要是在文件共享和即時通訊方面這兩個方面。所謂即時通訊,其實指的就是諸如OICQ、ICQ等被稱為在線聊天的軟件。從某種意義上說,由于版  權的限制,即時通訊應用將超過文件共享應用,成為P2P的第一大應用。我基于JXTA(JXTA將在第二節(jié)作詳細介紹)設計了一個簡單的P2P 即時通信系統(tǒng),它可以實現(xiàn)互聯(lián)網(wǎng)上任意兩臺主機之間的直接連接,不僅可以隨時知曉對方在線與否,而且交流雙方的通訊完全是點對點進行,不依賴服務器的性能和網(wǎng)絡帶寬,它為開發(fā)更多的P2P應用提供了基礎。由于Java為網(wǎng)絡編程提供了很好的支持和優(yōu)化,并且是跨平臺的,可移植性好,因此,我們選用Java作為開發(fā)語言。  

二、 JXTA簡介  

由于P2P應用軟件的前景看好,各大軟件公司都在競相開發(fā)P2P的軟件開發(fā)產(chǎn)品,Sun的JXTA就是其中的一個。使用JXTA開發(fā)技術,軟件開發(fā)人員可以開發(fā)出基于Java語言的P2P的應用軟件。JXTA技術是一組開發(fā)式的協(xié)議,它們能夠連接網(wǎng)絡中的任何設備,從手提電話、無線PDA到臺式電腦,讓它們協(xié)同工作、共享資源。JXTA網(wǎng)絡里面的全部結點共同組成了一個虛擬網(wǎng)絡,里面的任何一個結點都能直接訪問其他的結點,即使那些結點是位于防火墻的背后。   

1、 使用JXTA技術來開發(fā)分布式計算軟件,可以實現(xiàn)以下功能:  

(1) 能夠直接跟防火墻之后的其他結點連接;  
(2) 簡易的共享文檔資料;  
(3) 得到網(wǎng)絡上包含的信息的簡要目錄;  
(4) 建立結點群組來提供定制的服務;  

可以在遠端監(jiān)視某個結點的行為。  

2、 JXTA的軟件結構分為以下三層(如圖1所示)  

(1)核心層(JXTA Core):它包含了服務所需要的核心功能,這一層封裝了最根本的東西,包括Peer、對等組、Peer發(fā)現(xiàn)、Peer通信、Peer監(jiān)視和相關的安全原語。  
(2)服務層(JXTA Service):它提供了訪問JXTA協(xié)議的接口,這一層包括了對于P2P網(wǎng)絡不是必需的、但很通用的功能,如查找、共享、索引、代碼緩存和內(nèi)容緩存的機制。  
(3)應用層(JXTA Application):它使用服務來訪問JXTA網(wǎng)絡和JXTA提供的功能。這一層包括了應用JXTA服務卡發(fā)出來的完整的P2P應用程序,例如myJXTA ,JXTA-CAD等應用程序。  

圖1 JXTA的層次結構三、 結構設計

1、 總體介紹  

本系統(tǒng)是一個建立在基于JXTA的P2P網(wǎng)絡之上的即時通信軟件,它的功能類似于我們目前常常用到的即時通信軟件,如OICQ、ICQ和MSN等。即時通信系統(tǒng)分為發(fā)送(sender)、中繼轉發(fā)(transfer)和接收(receiver)三部分。當transfer啟動時加入P2P網(wǎng)絡,并且在P2P網(wǎng)絡中發(fā)布提供即時通信服務的通告。Sender加入P2P網(wǎng)絡,通過查找P2P網(wǎng)絡通告尋找提供服務的transfer,選擇transfer形成P2P網(wǎng)絡通道。Sender在這個通道基礎上建立與目的端的SOCKET連接,將信息傳遞到receiver。傳遞的信息是用XML形式封裝的字節(jié)數(shù)組,數(shù)據(jù)被保存在XML文件中,由transfer解析出數(shù)據(jù)。通過通道中的各個transfer對信息進行加密及解密操作,實現(xiàn)sender和receiver之間的通信。當用戶運行該軟件時,會出現(xiàn)登陸界面,如圖2所示,如果用戶是第一次運行該程序,并沒有任何默認的設置,JXTA會彈出JXTA GUI 配置實用程序讓你進行一些強制的和可選的設置。當用戶輸入正確的用戶名和密碼之后,就會加入JXTA網(wǎng)絡,并啟動本機的JXTA服務,成為JXTA網(wǎng)絡中的一個Peer。  



圖2系統(tǒng)通信過程示意圖如圖2所示,A、B、P1、P2……P5都是存在于基于JXTA的P2P網(wǎng)絡中的Peer,其中的A希望與B建立連接進行通信,而B收到A發(fā)出的Advertisement并對其進行驗證,當驗證通過,則A與B之間建立Pipe,進行消息的傳遞。

2、 層次結構  

系統(tǒng)主要分成三個部分:  

l P2P網(wǎng)絡中的中繼轉發(fā)部分(transfer)  
l 系統(tǒng)的發(fā)送部分(sender)  
l 系統(tǒng)的接收部分(receiver)  

(1)中繼轉發(fā)部分(transfer)  

Transfer主要負責提供匿名通信的服務,接收sender不同類型的消息,對其信息進行解密操作并且傳遞到JXTA網(wǎng)絡中下一個Peer的transfer,如果是最終結點PEER就首先建立與receiver的連接,然后將信息解密之后,再解析XML文件得到數(shù)據(jù)傳遞到receiver。然后再接收receiver不同類型的消息,對其信息進行加密操作并且傳遞到下一個Peer的transfer ,直到傳回到sender。在sender請求建立通道時,必須根據(jù)sender 請求信息判斷這個transfer是作為中間結點處理數(shù)據(jù)還是作為最終結點處理數(shù)據(jù),兩者的處理信息方式有很大區(qū)別。如果信息傳遞過程中出現(xiàn)問題,將出錯信息傳回receiver。  

(2)發(fā)送部分(sender)  

sender主要負責查找JXTA網(wǎng)絡中提供匿名通信服務的transfer,通過找到的transfer建立起一條基于P2P網(wǎng)絡的通道,然后就可以在這條通道上建立每一個SOCKET通話連接,這樣通過這條通道就可以傳遞不同類型的信息(請求建立通道、數(shù)據(jù)、請求結束通話、請求關閉通道、建立通道允許、結束通話允許、關閉通道允許以及出錯信息)。在接收到receiver傳遞過來的信息時,由于經(jīng)過加密得到的是密文,必須按照建立的P2P網(wǎng)絡路徑的順序進行解密,才能得到所需要的明文數(shù)據(jù)。在傳遞信息時,把需要傳遞的信息封裝成XML的格式,這樣在需要使用這些信息的transfer上就可以解析出所需要的數(shù)據(jù),以便于進行下一步的操作。

(3)接收部分(receiver)  

receiver主要負責在接收到P2P網(wǎng)絡中的transfer傳遞過來時的SOCKET連接請求時同意SOCKET連接,列出和自己建立連接的sender,通過選擇sender進行基于P2P網(wǎng)絡的信息傳遞。在接收到P2P網(wǎng)絡中的transfer傳遞過來時的SOCKET通話結束請求時關閉SOCKET連接,同時取消在列表中的sender,這樣receiver就無法與結束通話的sender再次取得聯(lián)系。在receiver關閉時,必須通知所有已經(jīng)與自己連接的sender,sender才可以關閉與這個receiver的連接。  

3、 具體實現(xiàn)及代碼分析  

由于篇幅所限,在本文中我只對系統(tǒng)中的中繼轉發(fā)部分進行介紹。  

Transfer部分主要包括如下幾個重要的類:  

(1)TRANSFER.CLASS  

該類主要是繼承了SERVERSOCKET類,SERVERSOCKET類是用來寫服務器程序的類,所謂服務器程序,通常會監(jiān)聽某一個連接端口,如果有某一臺客戶端計算機發(fā)出聯(lián)機的請求,則服務器就必須做出一些反應。TRANSFER.CLASS除了繼承了SERVERSOCKET的創(chuàng)建服務器監(jiān)聽端口,接受連接,關閉連接的功能之外,還定義了自己的功能函數(shù)——transnext(),與下一個P2P網(wǎng)絡結點PEER  
建立連接。  

(2)NEWMSG.CLASS和PARSEMSG.CLASS  

在信息傳遞的過程中,所有的數(shù)據(jù)都是以XML文件格式封裝的,將整個XML文件格式的信息作為整個字節(jié)數(shù)組byte[]進行加密和解密,在需要的結點PEER將字節(jié)數(shù)組的內(nèi)容寫入到XML文件中,再使用XML的解析方法將需要的數(shù)據(jù)解析出來。關于XML文件部分的操作主要由NEWMSG.CLASS和PARSEMSG.CLASS完成,其中NEWMSG.CLASS主要是將收到的信息保存到XML文件中,而PARSEMSG.CLASS主要是解析出XML文件中需要的數(shù)據(jù)。  

(3)JXTASHELL.CLASS  

JXTASHELL.CLASS主要是使用JXTA創(chuàng)建P2P網(wǎng)絡中的點組,初始化點組,創(chuàng)建通告,發(fā)布通告。這個CLASS文件對搭建P2P網(wǎng)絡起了主要的作用。  

下面是部分源代碼:  

public void workdealwith(String m,String de){ //解析XML文件元素  
try{  
DOMParser parser=new DOMParser();  
parser.parse(m+".xml"); //取得需要解析的XML文件  
Document dom=parser.getDocument(); //dom為結點樹的根結點  
NodeList games=dom.getElementsByTagName(de); //取得需要解析的元素  
for (int i=0;iNode anode=games.item(i);  
NamedNodeMap attributes=anode.getAttributes();  
contest=anode.getFirstChild().getNodeValue(); //得到元素de的值  
for (int a=0;aNode theattribute=attributes.item(a); //取得元素de的屬性  
type=theattribute.getNodeValue(); //得到元素de的屬性的值  
}  
}  
}catch(Exception e){}  
}  

四、 結束語  

本文作者的創(chuàng)新點主要在于在JXTA架構的基礎上構建一個P2P的即時通信息通。利用P2P非中心性和動態(tài)性的特征為即時通信服務,在即時通信的過程中,在發(fā)送端對消息進行加密,在接收端再對加密的消息解密,消息在JXTA網(wǎng)絡中是以匿名方式的方式進行傳輸?shù)模箶?shù)據(jù)傳輸更加安全。傳遞的信息是用XML形式封裝的字節(jié)數(shù)組,數(shù)據(jù)被保存在XML文件中,由transfer解析出數(shù)據(jù)。通過通道中的各個transfer對信息進行加密及解密操作,實現(xiàn)客戶端和目的端之間的匿名通信。在系統(tǒng)的設計和實現(xiàn)過程中,對XML文件格式、JXTA技術、加密解密技術等等做了一定的了解。但是由于時間倉促,且實驗條件的限制,程序的在穩(wěn)定性方面仍然存在一定的問題,這有待于進一步開發(fā)和完善。
本文地址:http://m.qingdxww.cn/thread-15944-1-1.html     【打印本頁】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內(nèi)容、版權和其它問題,我們將根據(jù)著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節(jié)省時間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項目中的數(shù)據(jù)
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監(jiān)視
  • 貿(mào)澤電子(Mouser)專區(qū)
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美视屏 | 久久996| 成年看片免费高清观看 | 国产精品资源在线播放 | 天海翼一区二区在线观看 | 一级做a爰片性色毛片男 | 青青青爽在线视频观看大全 | 成人午夜久久精品 | 中文字幕日韩一区 | 亚洲一级在线观看 | 国产区视频在线观看 | 麻豆国内精品久久久久久 | 国产农村乱色xxxx | 狠狠干伊人网 | 亚洲国产天堂久久综合图区 | 狠狠色丁香婷婷综合久久来 | 九九热精品视频在线 | 99在线观看视频 | 中文字幕日韩wm二在线看 | 国产夫妻精品 | 成人性生交免费观看视频 | 成人在线亚洲 | 欧美vs日韩vs国产在线观看 | 久久综合精品国产一区二区三区无 | 欧美精品成人久久网站 | 国产成人欧美 | 久久香蕉国产线看观看亚洲卡 | 欧美大片天天免费看视频 | 艾玛好色在线观看 | 亚洲国产一区在线二区三区 | 日韩免费精品 | 99热4| 亚洲va视频 | 俺也操| 亚洲伦理精品久久 | 欧美精彩视频在线观看 | 久久在草 | 久久毛片免费看一区二区三区 | 日日日日日操 | www.色日本| 亚洲精品tv久久久久久久久 |