上面的各種系統模型完全不同,但具有一些基本特性。特别是,所有的模型都由若幹程序組成,這些程序通過在計算機網絡上發送消息而互相通信,所有的模型都共享下列設計需求:實作程序及網絡的性能和可靠性特征,確定系統中資源的安全性。本節給出基于基本特性的模型,利用這些模型,我們能更詳細地描述系統可能展示的特征、故障和安全風險。
通常,為了了解和推理系統行為的某些方面,一個基礎模型應該僅包含我們要考慮的實質性成分。這樣一個模型的目的是:
顯式地表示有關我們正在模組化的系統的假設。
給定這些假設,就什麼是可能的、什麼是不可能的給出結論。結論以通用算法或要確定的特性的形式給出。特性成立的保證依賴于邏輯分析和(适當時候的)數學證明。
了解設計依賴什麼、不依賴什麼,我們就能從中獲益。如果在一個特定系統中實作一個設計,這個設計能否運作,61我們隻需詢問在那個系統中假設是否成立。通過清晰、顯式地給出我們的假設,就能利用數學技巧證明系統的特征,這些特征對任何滿足假設的系統都成立。最後,通過從細節(如硬體)中抽象系統的基本實體和特性,我們就能闡明對系統的了解。
我們希望在我們的基本模型中提取的分布式系統情況能解決下列問題:
互動:計算在程序中發生,程序通過傳遞消息互動,并引發程序之間的通信(資訊流)和協調(活動的同步和排序)。在分布式系統的分析和設計中,我們特别關注這些互動。互動模型必須反映通信帶來的延遲,這些延遲的持續時間會比較長,互動模型必須反映獨立程序互相配合的準确性受限于這些延遲,受限于在分布式系統中很難跨所有計算機維護同一時間概念。
故障:隻要分布式系統運作的任一計算機上出現故障(包括軟體故障)或連接配接它們的網絡出現故障,分布式系統的正确操作就會受到威脅。我們的模型将對這些故障進行定義和分類。這為分析它們潛在效果以及設計能容忍每種類型故障的系統奠定了基礎。
安全:分布式系統的子產品特性和開放性将其暴露在外部代理和内部代理的攻擊下。我們的安全模型對發生這種攻擊的形式給出了定義并進行了分類,為分析對系統的威脅以及設計能抵禦這些威脅的系統奠定了基礎。
為了幫助讨論和推理,我們對本章介紹的模型進行了必要的簡化,省略了許多真實系統中的細節。它們與真實系統的關系,以及在模型幫助下揭示的問題環境中的解決方案是本書讨論的主題。