分布式系統的5個優點
- 資源共享
- 開放性
- 并發性
- 可伸縮性
- 容錯性
分布式計算中必須考慮的設計問題
-
透明性:隱藏底層分布
-
開放性
-
可伸縮性
- 三個維度
- 規模:又分為增強擴展(單挑),增加擴展(群毆)
- 分布
- 可靠性
- 三個維度
-
信息安全性
主要防止以下類型的攻擊- 攔截
- 中斷
- 更改
- 偽造
-
失效管理
云計算的三種服務
- 基礎設施即服務IaaS、
- 平臺即服務PaaS、
- 軟件即服務SaaS
云計算的一個主要優點
大大降低了提供冗余系統構件的成本
分布式計算系統中計算機可能會發生兩種基本類型的交互
- 過程式交互
- 基本消息交互
可伸縮性(重點)
系統的可伸縮性反映了系統能在外部需求增加的情況下提供高質量的服務的能力。
可伸縮性的三個維度是規模、分布和可管理性。
規模。
系統應該增加更多的系統資源來應對越來越多的用戶。理想情況下,隨著用戶數量的增加,系統應該自動增加規模來處理用戶數量的增加。
所謂的規模,有增強擴展( scaling up,縱向擴展,單挑)和增加擴展( scaling out,橫向擴展,群毆)的區別。
- 增強擴展意味著用更強大的資源替換系統中的資源。例如,你或許會把服務器的內存由16GB增加到64GB。
- 增加擴展是指向系統增加更多的資源(例如,增加一個額外的服務器與現存的服務器一起工作)。增加擴展通常要比增強擴展更有成本效益,但是這意味著系統要設計得能并行處理才行。
中間件
- 交互支持
- 提供公共服務
分布式系統的體系結構模式
- 主從體系結構
- 兩層客戶-服務器體系結構
- 多層客戶-服務器體系結構
- 分布式構件體系結構
- 對等體系結構
主從體系結構
兩層客戶-服務器體系結構
多層客戶-服務器體系結構
分布式構件體系結構
對等體系結構
Sass和Soa的區別
- SaaS是在遠程服務器上提供功能而客戶端通過Web瀏覽器訪問的一種方法。服務器在交互會話期間維持用戶的數據和狀態。事務常常是長事務(例如,編輯文件)。
- SOA是把軟件系統構建為一系列單獨的無狀態服務的方法。這些服務或許由多個提供商提供并且可能是分布的。典型地,事務是短事務,其中服務被調用,做-一些處理,接著返回結果。
- SaaS是向用戶交付應用功能的方法,而SOA是應用系統的一種實現技術。
- 使用SOA實現的系統不一定要作為Web服務被用戶訪問。
實現SaaS的時候必須考慮以下3個重點要素
- 可配置性。
- 多租戶。
- 可伸縮性
當在SaaS的環境下考慮可伸縮型時,我們采用的是“增加擴展”而不是“增強擴展,盡量用群毆不要用單挑
可伸縮性軟件的一般準則如下
- 所開發的應用要使得每一個構件都實現為簡單的無狀態服務,每一個服務都可以運行在一個服務器上
- 使用異步交互來設計系統,這樣引用程序就不需要等待交互結果
- 管理資源
- 設計你的數據庫以允許細粒度的加鎖
- 使用云Paas平臺