絕大部分傳統軟件是運行於單機系統之上的,它們的用戶界面、應用的業務流程以及持久化數據都會駐留於同一台使用總線或電纜來連接外部設備的計算機 上。不過,現今備受關注的系統中,幾乎沒有哪個還保有這種設計。如今,大多數計算機軟件都運行在分布式系統中,其交互界面、應用的業務流程以及數據資源存 儲於松耦合的計算節點和分層的服務中,再由網絡將它們連接起來。圖2-1描述了一個倉庫管理控制系統的三層分布式架構,我們會在本書的第二部分詳細描述該基於模式的設計,示例中的三層是通過Broker (137) 架構連接起來的。
以下特性是分布式系統之所以成為信息和控制系統[Tran 92]基礎的關鍵。
協作與互聯
分布式系統的重要作用之一就是能夠為我們整合大量地理上分散於各地的信息和服務,如地圖、電子商務網站、多媒體、大百科全書等。互聯網上即時通訊系統和聊天室的流行凸顯了分布式系統的另一個重要作用:與家庭、朋友、同事乃至客戶保持聯系。
經濟性
包括PDA、筆記本、台式機和服務器在內的計算機網絡通常比集中式的大型機具有更高的性價比。例如,它們支持非集中式的、模塊化的應用,這 使得共享像大容量的文件服務器、高清晰度的打印機等昂貴的外設成為可能。相應地,我們可以將選定的應用組件和服務分配到具有特殊處理屬性的計算機節點上執 行,如具有高性能磁盤控制器、大容量內存或增強的浮點運算能力的節點,而那些簡易的程序就可以運行在相對廉價的硬件上。
![]() |
(點擊查看大圖)圖 2-1 |
性能與可伸縮性
成功的軟件通常會隨着時間推移而擁有更多的用戶和需求,因此分布式系統的性能能否擴展以處理不斷增加的負荷至關重要。我們可以將已 聯網計算節點的處理能力組合起來以獲得性能的極大提升,此外,至少理論上來說,多處理器和網絡更容易擴展。例如,多個計算和通信處理任務可以並行運行在數 據中心的不同節點上,或運行在同一服務器的不同虛擬機上。
容錯性
分布式系統的關鍵目標之一是允許系統發生部分故障。例如,盡管網絡中的所有節點都運轉正常,但網絡本身可能會出現故障。類似地,網絡中的某 個終端系統,或多處理器系統中的某個中央處理器可能崩潰。這些故障應當能被很好地處理而不影響其他不相關的部分或整個系統。一種常見的容錯實現方式是在多 個節點或網絡上提供重復的服務。冗余性有助於將單節點失敗的影響控制在最小范圍內,它可以顯著提高系統在出現部分故障時的可靠性。
內在的分布性
某些應用天生就是分布式的,如電信管理網絡(TMN)系統、跨區域部門的企業級業務系統、對等網絡(P2P)的內容共享系統、企業之間(B2B)的供應鏈管理系統等。分布式在這些系統中已經不再是一個可選項,而是滿足客戶需求至關重要的部分。