2.1 提供三個具體的、不同的例子,說明在2.2節定義的當代分布式系統中異構性的增加。
2.2 在通信實體之間的直接耦合,你能預見到什麼問題?這些問題在遠端調用方案中是隐含的。你期望時空分離所提供的解耦合具有什麼優勢?注意,你可能需要在閱讀第5章和第6章後再來尋求答案。
2.3 描述一個或多個主要的網際網路應用(如web、電子郵件或網絡新聞)的客戶-伺服器體系結構并給出圖示。
772.4 對于練習2.1中描述的應用,在實作相關服務适合采用什麼放置政策?
2.5 搜尋引擎是一個web伺服器,它響應客戶的請求,在它存儲的索引中查找,并(同時)運作幾個web抓取任務來建立和更新索引。在這些并發的目前活動之間進行同步的需求是什麼?
2.6 在對等系統中使用的主機通常隻是使用者辦公室或家裡的計算機。對共享資料對象的可用性和安全性而言,這意味着什麼?通過使用複制能多大程度上克服這些弱點?
2.7 列出易受不可靠程式(從遠端站點下載下傳并在本地運作的程式)攻擊的本地資源的類型。
2.8 通過應用執行個體說明使用移動代碼的好處。
2.9 考慮一個假想的汽車出租公司,畫出一個三層解決方案,提供基本的分布式汽車出租服務。用這個來說明三層解決方案的好處和缺點,考慮諸如性能、可伸縮性、故障處理、軟體長期維護等問題。
2.10 提供一個具體的例子,說明在為分布式應用提供中間件支援方面,saltzer的端到端争論所提及的困境(你可以關注提供可靠分布式系統的一個方面,例如,與容錯或安全相關的方面)。
2.11 設計一個簡單的伺服器,它不用通路其他伺服器就可完成客戶請求。解釋為什麼它通常不可能對伺服器響應客戶請求的時間設定限制。需要怎樣做才能使伺服器可以在一定時間範圍内執行請求?這是一個實用的選擇嗎?
2.12 針對影響通信通道上的兩個程序之間傳遞消息所花的時間的各個因素,說明需要對哪些影響總時間的度量設定限制。為什麼在目前通用的分布式系統中不提供這些度量?
2.13 網絡時間協定服務能用于同步計算機時鐘,解釋為什麼即使使用該服務,也不能對兩個時鐘之間的不同給出确定的範圍。
2.14 考慮在異步分布式系統中使用的兩個通信服務。在服務a中,消息可能丢失、被複制或延遲,校驗和僅應用于消息頭。在服務b中,消息可能丢失、延遲或傳遞得太快以緻接收方無法處理它,但到達目的地的消息的内容一定正确。
描述上面兩個服務會出現的故障類型,根據它們對有效性和完整性的影響為故障分類。服務b能被描述成可靠的通信服務嗎?
2.15 有一對程序x和y,它們使用練習2.14中的通信服務b互相通信。假設x是客戶而y是伺服器,一個調用始于x到y的請求消息,然後y執行該請求,最後從y向x發送應答消息。思考這樣一個調用會出現的故障類型。
2.16 假設一個基本的磁盤讀操作有時讀取的值與寫入的值不同。叙述基本的磁盤讀操作會出現的故障類型。闡述如何屏蔽故障以産生另一種良性故障,并對如何屏蔽良性故障提出建議。
2.17 定義可靠通信的完整性,列出所有來自使用者和系統元件的對完整性的可能的威脅。面對每種威脅,要采取什麼手段確定完整性?
2.18 描述可能出現在網際網路上的幾類主要的安全威脅類型(對程序的威脅、對通信通道的威脅、服務拒絕)。