架構設計--邏輯層 vs 物理層


    Layer 和Tier都是層,但是他們所表現的含義不同,Tier指的是軟件系統中物理上的軟件和硬件,具體指部署在某服務器上,而Layer(邏輯層)指軟件系統中完成特定功能的邏輯模塊,邏輯概念。

   Layer是邏輯上 組織代碼的形式。比如邏輯分層中表現層,服務層,業務層,領域層,他們是軟件功能來划分的。並不指代部署在那台具體的服務器上或者,物理位置。

  Tier這指代碼運行部署的具體位置,是一個物理層次上的划為,Tier就是指邏輯層Layer具體的運行位置。所以邏輯層可以部署或者遷移在不同物理層,一個物理層可以部署運行多個邏輯層。

   從Layer和Tier就會延伸到邏輯架構和物理架構。我們一個邏輯分層(N-Layer)的部署運行環境可以在一台或者是多台服務器,由於物理環境的多樣性,邏輯層次的部署也具有多樣性。這就需要我們必須了解物理架構和邏輯架構。

    大多數情況下我們所說的N層應用系統指的是物理模型,具體模塊的分布物理位置。客戶端,服務層,邏輯層,數據庫服務器,與我們的邏輯模型之間並不是一對一的關系。邏輯上的分層架構與物理位置上的服務器數量和網絡邊界多少無關,邏輯架構層次只與我們的功能划分相關,是按照功能划分。經典的3-Layer架構:表現層,業務層,數據訪問層,他們可能運行在同一物理位置上。也可以是3台計算機上,這並不是邏輯架構所關注的。邏輯層次和物理分層數量關系為:邏輯層數必須不小於物理層數,因為一個物理層可以部署一個或者多個邏輯層次,邏輯層次只能遷移在不同的物理環境。

   邏輯層次的架構能幫助我們解決邏輯耦合,達到靈活配置,遷移。

   一個良好的邏輯分層可以帶來:

  1. 邏輯組織代碼
  2. 易於維護
  3. 代碼更好的重用
  4. 更好的團隊開發體驗
  5. 代碼邏輯的清晰度

  一個良好的物理架構可以帶來:

  1. 性能的提升
  2. 可伸縮性
  3. 容錯性
  4. 安全性

  邏輯層次越多會影響程序運行的性能,但代碼層次的低耦合,松散化,是需要架構師的權衡的,我覺得一般應用程序的瓶頸並不在這里。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM