本章導覽#

電腦系統正經歷一場革命。從 1945 年現代電腦時代開始到約 1985 年,電腦既大又貴——連迷你電腦都要價數萬美元,多數組織只有少數幾台電腦,而且因為無法互連,各自獨立運作。

1980 年代中期起,兩項技術進展改變了局面:

  • 強大的微處理器:從 8 位元一路發展到 16、32、64 位元 CPU,許多具備大型主機等級的運算能力,價格卻只是零頭。過去半世紀電腦技術的進步幅度在其他產業前所未見:從一台 1,000 萬美元、每秒執行 1 條指令的機器,到一台 1,000 美元、每秒執行 10 億條指令的機器——性價比提升了 10^13 倍。若汽車以同樣速度進步,一輛勞斯萊斯現在只要 1 美元,一加侖汽油能跑 10 億英里。
  • 高速電腦網路:**區域網路(LAN)**讓一棟建築內數百台機器相連,少量資訊幾微秒內即可送達,大量資料的傳輸速率可達每秒 1 億到 100 億位元;**廣域網路(WAN)**讓全球數百萬台機器以 64 Kbps 到 Gbps 級的速度相連。

這些技術使得把大量電腦用高速網路組成運算系統不僅可行,而且容易。這類系統通常稱為電腦網路分散式系統,與先前由單一電腦、其週邊及若干遠端終端機構成的集中式系統(單處理器系統)形成對比。

本章給出分散式系統的定義(1.1)、討論建造分散式系統值得追求的四個目標與常見陷阱(1.2),並綜覽三大類分散式系統(1.3)。

本章重點#

  • 定義:分散式系統由自主的電腦組成,它們協同合作,呈現出單一一致系統的外觀。
  • 優點:容易把跑在不同電腦上的不同應用整合為單一系統;設計得當時,能隨底層網路規模良好擴展。
  • 代價:軟體更複雜、效能下降,且安全性往往較弱。儘管如此,全球對建置分散式系統仍有高度興趣。
  • 分散透明性:分散式系統常試圖隱藏行程、資料與控制分散的種種細節;但透明性不僅有效能代價,實務上也永遠無法完全達成——在各種透明性形式之間權衡取捨,是分散式系統設計的本質,也使系統更難理解。
  • 錯誤假設:許多開發者一開始就對底層網路做出根本錯誤的假設(網路可靠、靜態、安全、同質、延遲不重要……),之後要遮掩這些假設不成立帶來的行為可能極為困難——例如把系統移植到廣域網路時,隱藏延遲可能深刻衝擊原本的設計。
  • 三大類型
    • 分散式計算系統:面向高效能應用,多源自平行計算領域。
    • 分散式資訊系統:常見於傳統辦公環境,資料庫居要角,典型部署是交易處理系統。
    • 分散式普及系統:新興類型——元件小、系統以臨機(ad hoc)方式組成,最重要的是不再由系統管理員管理,典型代表是無所不在運算(ubiquitous computing)環境。