架構(gòu)設(shè)計:邏輯層vs物理層
Layer 和Tier都是層,但是他們所表現(xiàn)的含義不同,Tier指的是軟件系統(tǒng)中物理上的軟件和硬件,具體指部署在某服務(wù)器上,而Layer(邏輯層)指軟件系統(tǒng)中完成特定功能的邏輯模塊,邏輯概念。
Layer是邏輯上 組織代碼的形式。比如邏輯分層中表現(xiàn)層,服務(wù)層,業(yè)務(wù)層,領(lǐng)域?qū)?,他們是軟件功能來劃分的。并不指代部署在那臺具體的服務(wù)器上或者,物理位置。
Tier這指代碼運行部署的具體位置,是一個物理層次上的劃為,Tier就是指邏輯層Layer具體的運行位置。所以邏輯層可以部署或者遷移在不同物理層,一個物理層可以部署運行多個邏輯層。
從Layer和Tier就會延伸到邏輯架構(gòu)和物理架構(gòu)。我們一個邏輯分層(N-Layer)的部署運行環(huán)境可以在一臺或者是多臺服務(wù)器,由于物理環(huán)境的多樣性,邏輯層次的部署也具有多樣性。這就需要我們必須了解物理架構(gòu)和邏輯架構(gòu)。
大多數(shù)情況下我們所說的N層應(yīng)用系統(tǒng)指的是物理模型,具體模塊的分布物理位置??蛻舳耍?wù)層,邏輯層,數(shù)據(jù)庫服務(wù)器,與我們的邏輯模型之間并不是一對一的關(guān)系。邏輯上的分層架構(gòu)與物理位置上的服務(wù)器數(shù)量和網(wǎng)絡(luò)邊界多少無關(guān),邏輯架構(gòu)層次只與我們的功能劃分相關(guān),是按照功能劃分。經(jīng)典的3-Layer架構(gòu):表現(xiàn)層,業(yè)務(wù)層,數(shù)據(jù)訪問層,他們可能運行在同一物理位置上。也可以是3臺計算機上,這并不是邏輯架構(gòu)所關(guān)注的。邏輯層次和物理分層數(shù)量關(guān)系為:邏輯層數(shù)必須不小于物理層數(shù),因為一個物理層可以部署一個或者多個邏輯層次,邏輯層次只能遷移在不同的物理環(huán)境。
邏輯層次的架構(gòu)能幫助我們解決邏輯耦合,達(dá)到靈活配置,遷移。
一個良好的邏輯分層可以帶來:
- 邏輯組織代碼
- 易于維護(hù)
- 代碼更好的重用
- 更好的團(tuán)隊開發(fā)體驗
- 代碼邏輯的清晰度
一個良好的物理架構(gòu)可以帶來:
- 性能的提升
- 可伸縮性
- 容錯性
- 安全性
邏輯層次越多會影響程序運行的性能,但代碼層次的低耦合,松散化,是需要架構(gòu)師的權(quán)衡的,我覺得一般應(yīng)用程序的瓶頸并不在這里。
原文鏈接:http://www.cnblogs.com/whitewolf/archive/2012/05/09/2493458.html