1.1分布式系統的類
存在多種觀點、模型和部署來表征分布式系統。這些包括在物理資源聚合級別(例如,點對點或云系統)定義分布式系統,在中間件級別(例如,發布-訂閱、分布式對象平臺或Web服務)定義它,或者根據分布式系統提供的服務(例如,數據庫或分類賬)定義它。雖然文獻中存在一系列定義,但分布式系統可以通過鏈接資源的協調模式或利用它們的服務的規范進行廣泛分類。一個廣泛的類別是分散控制,其中單個資源主要與其“相鄰”資源相互作用。另一大類通過通信過程(如消息傳遞)將分布式資源連接起來,以實現各種形式的虛擬控制/協調控制。因此,基于這種通信和協調模型,分布式系統可以分為以下兩大類。

?在沒有集中協調服務的情況下,分布式實體之間的分散點對點交互:點對點系統(P2P)系統代表了這類分布式系統。分散式非定時控制是此類系統的突出特征。例如,Kademlia,Napster,Gnutella等系統以及許多其他分布式文件和音樂共享/存儲系統,無線傳感器網絡以及在線游戲系統都屬于此類別。
跨分布式資源和服務的協調?聚類:這是一個廣泛的類,當細分為兩個協調子類時,最好理解,即(a)資源的協調以及(b)服務的協調。我們將在本章中使用這兩個協調抽象。分布式系統的范圍包括客戶端-服務器模型、n層多租戶模型、彈性按需地理分散的資源聚合(云-公共、私有、混合、多云、大數據服務、高性能計算)和事務性服務,如數據庫、賬本、存儲系統或鍵值存儲(KVS)。GoogleFileSystem、AmazonWebServices、Azure和ApacheCassandra就是這類的簡單示例。雖然此類可能看起來既廣泛又多樣,但協調抽象(針對資源或服務)直接表征了分布式的類型系統分為這兩個子類。在這兩種情況下,這些系統通常通過通信交換和協調服務進行協調,其預期結果是提供“虛擬集中式系統”。其中確保因果關系、任務順序、復制處理和一致性等屬性。在文獻中,客戶端-服務器系統、云計算、移動計算、分布式數據庫等都有離散的定義,盡管提供虛擬的“集中/協調”行為是它們的共同特征。
注意:
分布式系統中有許多細微的安全性。一種觀點側重于在資源和服務分散的分布式系統中提供安全性的概念和機制。另一種觀點考慮使用分發作為提供安全性的一種手段,例如,密鑰的分散與集中式密鑰存儲或使用虛擬機(VM)來分區和隔離資源和應用程序。此KA側重于前一類“分布式系統中的安全性”。但是,它還討論了后一種觀點,因為分散的安全機制通常在邏輯上在分散的資源上執行,從而導致需要上述類別分散或協調集群。
值得強調的是,分布式系統架構通常是多個層的聚合,其中每一層都建立在下層提供的服務和整個發行版提供的協調服務之上。在最低級別,特定設備中的資源(內存、計算、存儲、通信)通過該設備上提供的操作系統原語進行訪問。分布式服務,例如命名、時間同步、分布式文件系統,是通過在各個設備上運行的不同組件和服務的交互來組裝的。較高層建立在較低層和服務之上,以提供其他功能和應用程序。每個級別的分布式系統不同組件之間的交互由支持許多不同通信方式的中間件框架提供:消息傳遞、遠程過程調用(RPC)、分布式對象平臺、發布-訂閱體系結構、企業服務總線。因此,分布式應用程序通過分布式組件和服務的交互和協調以分層(或分層)的方式實現。在這些架構中,每一層的去中心化和協調可能不同,從而導致去中心化和協調模式的混合組合。我們向讀者推薦操作系統和虛擬化CyBOK知識領域,了解有關訪問基本資源和書籍,以進一步閱讀有關分布式系統體系結構和中間件的信息。