天天看點

架構設計--邏輯層 vs 實體層

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

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

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

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

    大多數情況下我們所說的N層應用系統指的是實體模型,具體子產品的分布實體位置。用戶端,服務層,邏輯層,資料庫伺服器,與我們的邏輯模型之間并不是一對一的關系。邏輯上的分層架構與實體位置上的伺服器數量和網絡邊界多少無關,邏輯架構層次隻與我們的功能劃分相關,是按照功能劃分。經典的3-Layer架構:表現層,業務層,資料通路層,他們可能運作在同一實體位置上。也可以是3台計算機上,這并不是邏輯架構所關注的。邏輯層次和實體分層數量關系為:邏輯層數必須不小于實體層數,因為一個實體層可以部署一個或者多個邏輯層次,邏輯層次隻能遷移在不同的實體環境。

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

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

邏輯組織代碼

易于維護

代碼更好的重用

更好的團隊開發體驗

代碼邏輯的清晰度

  一個良好的實體架構可以帶來:

性能的提升

可伸縮性

容錯性

安全性

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

本文轉自破狼部落格園部落格,原文連結:http://www.cnblogs.com/whitewolf/archive/2012/05/09/2493458.html,如需轉載請自行聯系原作者