top
Loading...
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:概覽

現今最普遍的分布計算模型是客戶/服務器模型。圖一描繪的就是典型的客戶/服務器架構。


*************圖一****************

在客戶/服務器體系中,客戶請求服務,服務器提供服務。在當今的Internet上,存在在大量的服務器--Web服務器,郵件服務器,FTP服務器等等。客戶/服務器體系是中央化體系的一個例子,整個的網絡都依靠中央的節點和命名的服務器來提供服務。如果沒有服務器,網絡將是毫無意義的;如果沒有它們,Web瀏覽器如何工作?不論客戶端或者瀏覽器的數目有多少,網絡只能在服務器存在的前提下才有意義。

和客戶/服務器體系相似,P2P也是一個分布的計算模型,但是有一個很大的不同,P2P是一個非中央化的體系(如圖2),在網絡中并沒有客戶或者服務器的狀態區分。網絡中的每個實體都是同等的,有著同樣的狀態,這意味著一個實體可以請求一個服務(客戶端的特性)或者提供一個服務(服務器的特性)。圖2展示的是一個P2P網絡。


***********圖2**************

雖然每個節點在網絡中有著同等的狀態,不過它們并不要求都有著同樣的物理性能。一個P2P網絡可以包含有不同性能的節點,由移動設備到大型機。對于一個移動設備來說,可能由于自身的限制,不能作為服務器,但從網絡方面來說,并沒有這個限制。

兩個網絡模型都有著各自的優點和缺點。由圖1的客戶/服務器網絡你可以看到,當網絡增大時(即越來越多的客戶加入),中央服務器的壓力就越大。當加多一個客戶,中央節點的性能就會弱化;而它的失效將會導致整個網絡的癱瘓。

對于P2P網絡來說,情況就完全不一樣了。由于網絡中的每個實體(或者節點)都是積極的參與者
,每個節點都會為網絡提供一些資源,例如存儲空間或者CPU。當越來越多的節點加入網絡時,網絡的性能將會增長。因此,當網絡增大時,它的性能也會增強。你將不會碰到客戶/服務器體系中的擴展問題。

P2P網絡和客戶/服務器模型還有一個很大的不同是:即使只有一個節點是活躍的,P2P網絡也被認為是活躍的。只有在沒有任何節點時,P2P網絡才是不可用的。

不過,金無足赤,雖然P2P網絡有著這些的優點,但你也要付出一些代價的。首先,管理這樣一個網絡可能是一個噩夢,而在客戶/服務器網絡中,你只需要管理中央的節點。因此,無論在安全策略和備份策略方面,P2P網絡都要復雜一些。第二,P2P協議比傳統的客戶/服務器協議需要更多的“交互”,例如當節點加入或者退出網絡。這些方面都會對性能產生一些影響。

<
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗