国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

P2P的Jxta解決之道

2019-11-18 12:18:22
字體:
來源:轉載
供稿:網友

   P2P的Jxta解決之道(圖一)

 
  摘要
  點對點(P2P)網絡無疑是當前最熱門的話題之一。在這個領域中,Sun推出了Jxta,一個用于P2P應用開發的網絡計算平臺。這篇文章介紹P2P和Jxta在這方面所作的努力。適合有意開發P2P應用的編程者閱讀。
  今日的Internet正面臨著一場革命。這場革命正在為改變Internet的一個基本的特性而努力。這就是網絡的終端(或者說客戶端),例如桌面電腦,移動電話,PDA等正要求一個更優越的網絡地位,以結束以服務器為主導的Internet。這就是P2P。
  P2P是一個網絡的模型,它的基本概念就是任何的節點都可以作為服務器或者客戶端。傳統的客戶/服務器網絡,都有預定義的客戶和服務器節點,而P2P則不同,P2P可提供一些額外的特性,而這些特性使用傳統的模型是無法實現的。
  在這篇文章中,我將為你介紹P2P網絡,并且將它和客戶/服務器網絡作對比。我還會介紹Jxta(發音是jux-ta),Jxta是由Sun的首席科學家兼CEO Bill Joy提出來的;Jxta正在被成千上萬的開放源代碼開發者模型化。在P2P領域中,Jxta作出了巨大的改進。它定義了一套的協議,開發者可以使用這些協議來建立幾乎所有的P2P應用。同時,這些協議也非常靈活,可以適合不同應用的非凡需要。Jxta也不使用特定的編程語言或者環境,不過java無疑是一個適合的選擇,原因在于:便攜性,輕易開發和豐富的類庫。
  P2P:概覽
  現今最普遍的分布計算模型是客戶/服務器模型。圖一描繪的就是典型的客戶/服務器架構。
   P2P的Jxta解決之道(圖二)  
  *****圖一******* 
  在客戶/服務器體系中,客戶請求服務,服務器提供服務。在當今的Internet上,存在在大量的服務器--Web服務器,郵件服務器,FTP服務器等等。客戶/服務器體系是中心化體系的一個例子,整個的網絡都依靠中心的節點和命名的服務器來提供服務。假如沒有服務器,網絡將是毫無意義的;假如沒有它們,Web瀏覽器如何工作?不論客戶端或者瀏覽器的數目有多少,網絡只能在服務器存在的前提下才有意義。
  和客戶/服務器體系相似,P2P也是一個分布的計算模型,但是有一個很大的不同,P2P是一個非中心化的體系(如圖2),在網絡中并沒有客戶或者服務器的狀態區分。網絡中的每個實體都是同等的,有著同樣的狀態,這意味著一個實體可以請求一個服務(客戶端的特性)或者提供一個服務(服務器的特性)。圖2展示的是一個P2P網絡。
  P2P的Jxta解決之道(圖三)
  *****圖2********* 
  雖然每個節點在網絡中有著同等的狀態,不過它們并不要求都有著同樣的物理性能。一個P2P網絡可以包含有不同性能的節點,由移動設備到大型機。對于一個移動設備來說,可能由于自身的限制,不能作為服務器,但從網絡方面來說,并沒有這個限制。
  兩個網絡模型都有著各自的優點和缺點。由圖1的客戶/服務器網絡你可以看到,當網絡增大時(即越來越多的客戶加入),中心服務器的壓力就越大。當加多一個客戶,中心節點的性能就會弱化;而它的失效將會導致整個網絡的癱瘓。
  對于P2P網絡來說,情況就完全不一樣了。由于網絡中的每個實體(或者節點)都是積極的參與者
  ,每個節點都會為網絡提供一些資源,例如存儲空間或者CPU。當越來越多的節點加入網絡時,網絡的性能將會增長。因此,當網絡增大時,它的性能也會增強。你將不會碰到客戶/服務器體系中的擴展問題。
  P2P網絡和客戶/服務器模型還有一個很大的不同是:即使只有一個節點是活躍的,P2P網絡也被認為是活躍的。只有在沒有任何節點時,P2P網絡才是不可用的。
  不過,金無足赤,雖然P2P網絡有著這些的優點,但你也要付出一些代價的。首先,治理這樣一個網絡可能是一個噩夢,而在客戶/服務器網絡中,你只需要治理中心的節點。因此,無論在安全策略和備份策略方面,P2P網絡都要復雜一些。第二,P2P協議比傳統的客戶/服務器協議需要更多的“交互”,例如當節點加入或者退出網絡。這些方面都會對性能產生一些影響。
  Jxta的解決之道
  
  不同的協議,不同的體系,不同的實現,這就是當前P2P解決方案的精確描述。現今,開發者使用各種各樣的方法論和途徑來創建P2P應用。相對于客戶/服務器模型豐富的標準,P2P領域的標準可以說是很少,為此,Sun開發了Jxta。
  以下是Jxta前景的一些陳述:
  Jxta工程是為了建立核心的網絡計算技術,它提供一套簡單、精簡和便利的技術,可以在任何的平臺、任何地點和任何時間支持P2P計算。該工程首先概述了P2P的功能,然后建立核心的技術,以彌補當前P2P計算方面的不足。它集中于創建基本的技術,并且將策略的選擇權交給應用的開發者。
  Jxta致力于提供一個基本的P2P架構,這樣其它的P2P應用可以建立在上面。這個基架包含有一套協議,這些協議與語言、平臺和網絡都是無關的(這就是它們對底層的網絡沒有作出任何的假定)。這些協議只規定了建立普遍P2P應用的必要之處。它的設計是精簡的,開銷很小,這些協議的目的可引用Jxta前景陳述中的一句話來說明:“要令每個設備都帶有一個數字的心跳”。
  當前的Jxta定義了六種協議,不過并不要求所有的Jxta節點都實現全部六種協議。節點實現的協議數目和它的性能有關;一個節點可以只實現一種協議。根據需要,節點也可以擴展或者替換任何的協議。
  有一點要注重的是。Jxta協議自身并不提供交互性。對于這一點,你可以通過TCP/ip來理解這一點。雖然FTP和HTTP都建立在TCP/IP上,不過你不能使用FTP客戶來訪問網頁。Jxta也是這樣。兩個建立在Jxta上的應用并不意味著它們是可以交互的。這一點應該由開發者開保證。不過,由于Jxta提供了一個可交互的基層,所以開發者在實現交互時可以少考慮一些東西。
  Jxta中的xml
  毫無疑問,要提供一個通用基本協議層,第一步就是要采用一種適合的表現方式,這種方式可以被當前的大部分平臺明白。XML無疑是一個理想的選擇,它已經成為數據交換的一個默認標準。XML提供通用的、語言和平臺無關的數據表現。XML也可以很輕易地轉換為其它的編碼。因此,用XML格式定義了所有的Jxta協議。
  雖然Jxta的信息使用XML定義,不過Jxta并不依靠XML來編碼。實際上,Jxta實體并不需要一個XML解析器;它是一個可選的組件。可以將XML看成是Jxta使用的一種便利的數據表現形式。小的實體(例如移動電話)可以使用預編譯的XML信息。
  Jxta的術語
  
  在更進一步講述Jxta之前,讓我們先來看一下它的各種術語。
  Peers(節點)
  網絡上實現一種或者多種Jxta協議的任何實體。一個節點可以是任何的東西,例如大型機,小至一部移動電話,甚至是一個傳感器。節點的存在是獨立的,并且可以與其它節點異步通信。
  Peer groups(節點組)
  有者共同目的的節點可以集合起來形成節點組。節點組可以跨越多個物理網絡域。
  Messages(信息)
  在Jxta的網絡中,所有的通信是通過發送和接收信息來實現的。這些信息稱為Jxta messages,它們符合標準的格式,是交互的前提。
  Pipes(管道)
  Pipes在Jxta的環境里建立起虛擬的通信管道。節點通過它們來發送和接收Jxta的信息。Pipes被認為是虛擬的,因為Pipes無需要知道使用它們的真正網絡地址。這是一個重要的抽象。
  Services(服務)
  Peers和Peer groups都可以提供服務。假如一個服務由一個peer獨立提供,那么就被稱為是一個Peer服務,這是一個和中心化相等的概念。沒有其它的Peer需要提供該服務;假如該Peer沒有活動,那么服務將無效。
  Peer groups提供的服務被稱為是peer group服務。與peer服務不同,這些服務并不依靠某個單獨的peer,而是由整個組提供。Peer group服務的可用性更強,因為即使一個peer不可用,其它的peers還可以繼續提供相同的服務。
  Codats
  Codat (Code/Data),在Jxta中,它意味著可以是代碼或者數據的內容。假如有需要,Codats可以被發布和復制。
  Advertisements
  Advertisement可發布和揭露任何的Jxta資源,例如一個peer,一個peer組,一個管道或者codat。Advertisements以XML文檔的方式來表現。
  Identifiers(標識符)
  在Jxta環境中,Identifiers扮演著重要的角色。Identifiers指定資源,而不是物理的網絡地址。Jxta的Identifier被定義為一個URN(Uniform Resource Name,統一資源名)。一個URN就是一個URI(Uniform Resource Identifier,統一資源標識符),它必須是保持全局唯一的,即使是該資源不存在了,它仍然要保持不變。
  World peer group
  任何一個Jxta peer,在默認的情況下都是World peer group的一個成員。每一個Jxta peer都知道World peer group,并且可以加入該peer組,即使它在網絡上找不到任何其它的peers。即使斷開的peer也是其中的成員。
  Net peer group
  在一個本地網絡中,網絡治理員通常都可以設置一個peer組,該組可以讓網絡上的任何peer加入:這就是Net peer group。它類似一個DHCH(dynamic host configuration PRotocol,動態主機配置協議)服務。該Net peer group可為peer提供一個全局的連接,它的限制由治理者定義。
  Rendezvous peers(集合點)
  一個集合點是一個非凡的節點,它通過緩沖節點的廣播,可以存儲其它節點的信息。因此,一個集合點可以幫助節點發現網絡上的其它節點。集合點還可以將搜索的請求導向到其它的集合點。
  Endpoints(終點)
  終點表示網絡上的一個目的地,它可以由一個網絡地址來表示。Peers通常都不直接使用終點;而是通過管道來間接使用它們;管道都建立在終點上。
  Routers(路由器)
  在Jxta的網絡上移動包的東西均被稱為Jxta路由器。并不要求所有的peers都是路由器。不是路由器的pe

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和静县| 四平市| 茶陵县| 崇文区| 莱州市| 盱眙县| 惠安县| 肥东县| 永清县| 宜川县| 九寨沟县| 连平县| 德钦县| 昌黎县| 梨树县| 洱源县| 千阳县| 噶尔县| 桐柏县| 德令哈市| 麻栗坡县| 珲春市| 海兴县| 长岛县| 扶风县| 绥滨县| 临桂县| 和林格尔县| 砚山县| 尉犁县| 格尔木市| 大同县| 江都市| 乳源| 贺兰县| 汶上县| 特克斯县| 兴安县| 青川县| 武安市| 论坛|