layer 和tier都是層,但是他們所表現的含義不同,tier指的是軟體系統中物理上的軟體和硬體,具體指部署在某伺服器上,而layer(邏輯層)指軟體系統中完成特定功能的邏輯模組,邏輯概念。
layer是邏輯上 組織**的形式。比如邏輯分層中表現層,服務層,業務層,領域層,他們是軟體功能來劃分的。並不指代部署在那台具體的伺服器上或者,物理位置。
tier這指**執行部署的具體位置,是乙個物理層次上的劃為,tier就是指邏輯層layer具體的執行位置。所以邏輯層可以部署或者遷移在不同物理層,乙個物理層可以部署執行多個邏輯層。
從layer和tier就會延伸到邏輯架構和物理架構。我們乙個邏輯分層(n-layer)的部署執行環境可以在一台或者是多台伺服器,由於物理環境的多樣性,邏輯層次的部署也具有多樣性。這就需要我們必須了解物理架構和邏輯架構。
大多數情況下我們所說的n層應用系統指的是物理模型,具體模組的分布物理位置。客戶端,服務層,邏輯層,資料庫伺服器,與我們的邏輯模型之間並不是一對一的關係。邏輯上的分層架構與物理位置上的伺服器數量和網路邊界多少無關,邏輯架構層次只與我們的功能劃分相關,是按照功能劃分。經典的3-layer架構:表現層,業務層,資料訪問層,他們可能執行在同一物理位置上。也可以是3臺計算機上,這並不是邏輯架構所關注的。邏輯層次和物理分層數量關係為:邏輯層數必須不小於物理層數,因為乙個物理層可以部署乙個或者多個邏輯層次,邏輯層次只能遷移在不同的物理環境。
邏輯層次的架構能幫助我們解決邏輯耦合,達到靈活配置,遷移。
乙個良好的邏輯分層可以帶來:
邏輯組織**
易於維護
**更好的重用
更好的團隊開發體驗
**邏輯的清晰度
乙個良好的物理架構可以帶來:
效能的提公升
可伸縮性
容錯性安全性
邏輯層次越多會影響程式執行的效能,但**層次的低耦合,鬆散化,是需要架構師的權衡的,我覺得一般應用程式的瓶頸並不在這裡。
軟體架構設計系列總結 3 邏輯層 vs 物理層
layer 和tier都是層,但是他們所表現的含義不同,tier指的是軟體系統中物理上的軟體和硬體,具體指部署在某伺服器上,而layer 邏輯層 指軟體系統中完成特定功能的邏輯模組,邏輯概念。layer是邏輯上 組織 的形式。比如邏輯分層中表現層,服務層,業務層,領域層,他們是軟體功能來劃分的。並不...
軟體架構設計系列總結 3 邏輯層 vs 物理層
layer 和tier都是層,但是他們所表現的含義不同,tier指的是軟體系統中物理上的軟體和硬體,具體指部署在某伺服器上,而layer 邏輯層 指軟體系統中完成特定功能的邏輯模組,邏輯概念。layer是邏輯上 組織 的形式。比如邏輯分層中表現層,服務層,業務層,領域層,他們是軟體功能來劃分的。並不...
架構設計 業務邏輯層簡述
業務邏輯層是專門處理軟體業務需求的一層,處於資料庫之上,服務層之下,完成一些列對domain object的crud,作為一組微服務提供給服務層來組織在暴露給表現層,如庫存檢查,用法合法性檢查,訂單建立。業務邏輯層包含領域物件模型,領域實體,業務規則,驗證規則,業務流程。1 領域物件模型為系統結構描...