熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

對等(P2P)計算實際使用之發展歷史回顧

2013-11-12 23:37:47  來源: Java高級技術 

  對等網絡計算 (peertopeer PP) 成功地將許多有趣的分布計算技術重新拉回到人們視線中為了更好地理解 PP 技術本文主要從年代初流行的早期 PP 應用程序開始闡述 PP 的發展過程並解釋 PP 計算技術之所以擁有廣闊前景的原因同時還給出一個最簡單的 PP 程序代碼從而說明使用 PP 技術時要解決哪些問題通過這些內容您可以使用 Java 語言來編寫自己的 PP 程序或是利用 PP 中某些技術來解決您項目中遇到的類似問題
  
  在大多數人眼中PP 僅僅是一種局限於文件共享的應用或是由互聯網介入給計算方法帶來的新發展這種錯誤的印象很大程度上是由那些極端的 PP 支持者造成的事實上PP 計算是非常重要的它成功地將許多被忽略的有用技術拉回到大家注視的焦點掌握如何將 PP 計算應用到更廣闊的技術領域是很有幫助的當然通過一些實際的 PP 代碼來學習也是必須的所以本文也會給出一些用 Java 語言編寫的代碼例子
  
  下面將具體闡述 PP 的有關知識為了避免陷入其他一些不太重要的周邊細節討論本文將主要集中討論以下幾個方面
  
   在許多流行的 PP 應用中不可避免地要涉及到合法隱私安全控制以及版權等問題盡管這些方面都是非常有趣的課題卻不應該過分地分散掉我們討論 PP 技術的注意力因此通常情況下本文不會涉及這些課題除非某個專門的應用例子必須解決它們
  
   技術工程師在設計和開發 PP 應用程序時遇到的問題未必都是新問題因此在討論到這些舊問題時會借鑒計算機科學其他領域中的一些現成技術
  
  總而言之我們希望能夠將精力集中在技術本身主要包括內容和資源的管理信賴和安全屬主和權限通訊模型分布式計算以及搜索和查詢等至於 PP 技術所涉及的社會政治和合法性等問題則基本上略過不談
  
  PP 應用最初出現時和現在並不相同事實上可以認為它是若干不同技術以及流行趨勢的產物下面是兩個導致 PP 技術發展最重要的趨勢首先是某些新技術與軟件工程結合形成了一種將工作分散的趨勢PP 計算正是這種分散工作趨勢的自然結果
  
  其次從工程的角度看來在企業應用集成等因素的驅動下過去十年漸漸形成一種從集中的單機系統轉向分布式系統的趨勢在集中式的應用中進行控制是相對容易的這一點在一定程度上抑制了分布式潮流的發展然而隨著互聯網的發展以及 BB 商務交易方式的日益流行全面的分布式計算也就成為一種商業需求
  
  對功能強大的網絡計算機的需求以及昂貴的帶寬開銷是對這種趨勢影響最大的兩個因素為了提高效率PP 計算由許多互相連接的同位體 (peer) 組成這兩種趨勢導致了 PP 應用技術研究的迅速發展
  
  除了技術方面之外的社會因素也是一個重要原因毫無疑問人們現在對 PP 計算技術的熱切關注起源於 Napster Scour Gnutella 以及這些家族的其他成員產品這些產品提供了所謂的 killer apps 功能能夠將 PP 技術中的一部分下放到客戶端用戶的手中正是這種第一手的體驗使得人們越來越關注 PP 技術的強大功能
  
  然而必須指出的是最初的 PP 應用大約產生於年前並且其中的許多至今仍然被使用盡管這些早期應用的核心就是 PP但由於大多數的使用者並未感覺或接觸到因此通常並不認為它們是 PP 技術
  
  早期的嘗試
  PP 計算並非一種全新的技術雖然 PP 這個術語是現在才發明的但 PP 本身的基本技術的存在時間卻至少和 USENETFidoNet 這兩種非常成功的分布式對等網絡技術一樣長甚至更長些(因此筆者建議讀者朋友去嘗試這樣一個挑戰——尋造最早的 PP 應用尤其是那些現今仍在使用的應用)關鍵在於在最初的 PP 應用出現時許多使用該技術的人們甚至不會使用計算機
  
  USENET 產生於 是一種分布式系統能夠為各個地方提供新聞組USENET 最早的雛形由是兩名研究生 Tom Truscott 和 Jim Ellis 實現的當時並沒有任何類似於互聯網上隨選信息的概念文件只能通過電話線批量傳送且常常選在長途費用比較低的夜間進行因此當時的 USENET 若采用集中式的控制管理方法將效率低下自然而然地就提出了一種分散分布式的管理方法這種分布的結構一直沿用到今天
  
  早期 PP 應用另一個傑出的代表則是 FidoNet它和 USENET 類似也是一個分散分布的信息交換系統Tom Jennings 於 年創建了 FidoNet 系統來讓不同 BBS 系統中的用戶們互相交換信息這種符合人們需要的技術迅速成長起來並一直沿用到今天
  
  USENET 和 FidoNet 都是值得探究的系統因為它們在多年前就遇到並解決了許多當今 PP 技術所面臨的同樣問題同時也還存在著安全性以及其他一些問題為了開發成功的 PP 計算系統首先必須了解這些 PP 技術的發展歷史
  
  幾乎所有人都會同意 PP 計算是分布計算的一個子集這種說法而且大多數人也都會認為並非所有的分布式計算都是 PP 計算peertopeer 這個名字意味著各個 peer 之間的關系是平等的並且它們之間的聯系是直接的
  
  PP 網絡中含有許多能夠互相通訊的 peer每個 peer 都有專門的用途通常情況下網絡中 peer 的數目是非常大的但用途卻只有若干種這就是 PP 應用之所以能大量並行運行的重要原因眾所周知的 Gnutella 網絡就是一個最好的例子它包含了大量本質上相同的 peerPP 技術中最有趣的地方就在於這些對等 peer 之間的聯系其次則是它們自身
  
  在很大程度上PP 計算與那些分布計算所面臨的問題是重疊的——調整並監控網絡中獨立節點的動作並確保魯棒性以及節點間的可靠通訊但並非所有的分布計算都是 PP 計算比如象 SETI@home 或 中不同的項目這些分布計算幾乎沒有考慮網絡節點中的對等交互因此並不能認為是真正意義上的 PP 應用然而由於分布計算和 PP 面臨很多相同的問題這就值得我們了解一些分布計算方面的內容對於這類不能算是 PP 技術的分布計算筆者建議用面向同位體的應用(peeroriented)來命名
  
  最簡單的 peer 以及它存在的問題
  使用 Java 語言編寫一個最基本的 PP 應用是非常容易的這裡筆者給出一個簡單的例子以供讀者參考給出這個例子的另一目的則在於表明在網絡中傳送文件和消息是很方便的然而若要為 PP 應用建立一個魯棒性很好的平台則很困難這個 PP 例子中缺少了許多應有的重要特性其中例如安全性等特性也是當今許多流行的 PP 應用所缺乏的另外一些特性(例如消息路由和分布查詢等)則在某些應用中得到了實現例如 Gnutella 就能夠支持簡單的消息路由以及分布查詢
  
  圖 中顯示了一個典型 PP 應用的系統框圖為了支持文件共享這個 PP 系統只負責與抽象的資源進行交互而具體資源則從 Resource 接口中獲得這些具體資源可以是任何可定位的信息包括文件系統數據庫詞典或是一個電話本
  
 

  
PP 應用的主體設計框圖

  
  MessageServer 類是這個 PP 應用的核心它能夠與其他的對等網絡獲得聯系並將消息轉發到合適的地方該類的具體代碼在文件 ppjar 中(可以在 資料 部分下載此文件)讀者可以試著在命令行環境下輸入 java jar ppjar就能夠運行這個簡單的 PP 應用程序這個程序會從它所在的目錄中尋找名為 ppproperties 的屬性文件在屬性文件中可以定義要下載的資源以及它所知道的同位體信息您所下載的 jar 文件中還含有一個屬性文件的樣本可以對它進一步修改
  
  如圖 所示用戶可以通過簡單的命令行界面與該 PP 程序交互如果已選擇了某個 peer 或是正在訪問某些遠程資源則該程序會將相關的信息顯示出來
  
 

  
程序的初始運行界面

  
  任何時候用戶只要在提示符後面輸入一個問號(?)屏幕上就會顯示出一系列選項(如圖 所示)如果用戶還沒有選擇 peer輸入問號時就會顯示出該程序的所有已知的 peer否則則顯示已選定 peer 能夠訪問到的資源只要在提示符後面輸入某個 peer 或資源的名字就能夠選定它們
  
 

  
顯示 peer 和資源列表

  
  在圖 用戶選擇了名為 guppy 的 peer然後顯示 guppy 能夠獲得的資源在選定 peer 和資源之後用戶就能夠訪問並控制該資源(如圖 如果選定的是一個文件系統資源那麼對該資源對象的訪問就意味著從遠程 peer 將該對象拷貝到本地 peer 中
  
 

  
列出可控制的資源對象

  
  只要輸入兩個點(用戶就可以隨時取消對某個資源或 peer 的選擇
  

  
取消選擇

  
  真正的 PP 應用程序顯然要比本文中這個簡單的應用程序復雜得多它至少還需要擴展以下幾個方面的功能足夠的安全性(包括驗證以及授權等機制)可靠的消息路由和傳送內容和資源的管理分布查詢以及命名在以後的章節中筆者還會提出一些的具體例子和工作代碼來進一步討論這些功能的實現
From:http://tw.wingwit.com/Article/program/Java/gj/201311/11151.html
  • 上一篇文章: 没有了

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.