先來一張簡易的框架圖shell

什麼是Refined Architecture
Refined Architecture相對於Conceptual Architecture而言,分別對應於「概念級」解決方案和「規約級」解決方案。Refined Architecture(細化架構)屬於架構設計,數據庫
不能與Detailed Design(詳細設計)相混淆。編程
第三篇章主要講了細化架構、Refined Architecture總論、邏輯架構、物理架構、運行架構、開發架構、數據架構的難點和數據分佈。安全
經過閱讀,瞭解到了幾個重要概念,以下:架構
1.概念架構和細化架構框架
1)層次:系統 用戶 業務 角度:功能 約束 質量屬性
2)架構=組件+交互
3)概念架構僅關注高層組件,對高層組件的「職責」進行了籠統的界定,並給出了高層組件之間的相互關係,其不涉及接口細節(只有抽象組件和抽象交互機制)。
4)在細化架構中接口占據很是核心的地位,且細化架構重視經過子系統和模塊來分割整個系統,有「實在的」交互機制,如基於接口編程、消息機制或遠程方法調用。分佈式
2.多視圖
介紹:多視圖方法是業界普遍認同的一種架構設計思路,方法種類有不少,這本書介紹的是以RUP4+1爲基礎改良而來,RUP4+1視圖法包括:用例視圖、性能
邏輯視圖、開發視圖、進程視圖和物理視圖,本篇章介紹的多視圖包括:優化
邏輯視圖:職責劃分、職責間協做spa
開發視圖:程序單元組織
運行視圖:控制流組織
物理視圖:物理節點安排
數據視圖:持久化設計
3.物理架構、運行架構、開發架構
- 物理架構主要設計:
- 硬件選擇與物理拓撲
- 軟件到硬件的映射關係
- 方案的優化
- 運行架構的設計內容:(控制流圖是關鍵,實現控制流三種手段:進程 線程 中斷服務程序)
- 肯定引入哪些控制流;
- 肯定每條控制流的任務;
- 控制流的建立、銷燬、通訊機制等;
- 控制流之間的同步關係,加鎖機制等
- 開發架構的設計內容:
- 將「邏輯結構」映射爲程序單元
- 要自主編寫的源程序
- 可重用的庫、框架
- 其餘方式(shell腳本,平臺配置文件)
4.數據分佈
- 獨立Schema
- 當一個大系統由相關的多個小系統組成,且不一樣小系統具備互不相同的數據庫Schema定義,這種狀況稱爲「獨立Schema」。
若是能夠架構師應首選此種分佈策略,以減小系統間無謂的互相影響,避免人爲地將問題複雜化。
- 集中(Centralized)
- 指一個大系統必須支持來自不一樣地點的訪問,或者該系統由相關的多個小系統組成,而將持久集中化數據進行集中化的、統一格式的存儲。
特色:集中存儲、分佈訪問
3. 分區(Partitioned)
- 分區方式包括水平分區和垂直分區。
當系統要爲「地域分佈普遍的用戶」提供「相同的服務」時,經常採用水平分區。
- 特色:兩個相同,兩個不一樣——相同的應用程序、不一樣的應用程序部署實例,相同的數據類型、不一樣的數據值。
通常垂直分區做用較小。特色:不一樣數據節點的Schema會有「部分字段」的差別。
4.複製(Replicated)
- 整個分佈式系統中,數據保存多個副本,而且以某種機制(實時或快照)保持多個數據副本之間的數據一致性。
特色:經過數據「本地化」,提高了數據訪性能;數據的專門副本,有利於針對性地進行優化;數據的專門副本,提升可管理性,增強安全控制。
5.子集(Subset)
- 「子集」是「複製」的特殊方式,就是某節點因功能或非功能考慮而保存全體數據的一個相對固定的子集。
子集相對複製特色(優勢):減小了跨機器進行數據傳遞的開銷;下降了數據冗餘,節省了存儲成本。
6.重組(Reorganized)
- 不一樣數據節點因要支持的功能不一樣,而以不一樣的Schema保存數據——但本質上這些數據是同源的。數據不是直接複製,而是以「從新組織」格式進行傳遞或者保存。