.NET三層架構解析
三層架構(3-tier application) 通常意義上的三層架構就是將整個業務應用劃分為:表現層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)。區分層次的目的即為了“高內聚,低耦合"的思想。
內聚:一個模塊內各個元素彼此結合的緊密程度;耦合:一個軟件結構內不同模塊之間互連程度的度量
1、表現層(UI):通俗講就是展現給用戶的界麵,即用戶在使用一個係統的時候他的所見所得。界麵層提供給用戶一個視覺上的界麵,通過界麵層,用戶輸入數據、獲取數據。界麵層同時也提供一定的安全性,確保用戶不用看到不必要的機密信息。
2、業務邏輯層(BLL):針對具體問題的操作,也可以說是對數據層的操作,對數據業務邏輯處理。
邏輯層是界麵層和數據層的橋梁,它響應界麵層的用戶請求,執行任務並從數據層抓取數據,並將必要的數據傳送給界麵層。
3、數據訪問層(DAL):該層所做事務直接操作數據庫,針對數據的增添、刪除、修改、更新、查找等。數據層定義、維護數據的完整性、安全性,它響應邏輯層的請求,訪問數據。這一層通常由大型的數據庫服務器實現,如Oracle 、Sybase、MS SQl Server等。
優點:
1、開發人員可以隻關注整個結構中的其中某一層;
2、可以很容易的用新的實現來替換原有層次的實現;
3、可以降低層與層之間的依賴;
4、有利於標準化;
5、利於各層邏輯的複用。
6、擴展性強。不同層負責不同的層麵,如PetShop可經過簡單的配置實現Sqlserver和oracle之間的轉換,當然寫好了也可以實現B/S與C/S之間的轉換
7、安全性高。用戶端隻能通過邏輯層來訪問數據層,減少了入口點,把很多危險的係統功能都屏蔽了。
8、項目結構更清楚,分工更明確,有利於後期的維護和升級
缺點:
1、降低了係統的性能。這是不言而喻的。如果不采用分層式結構,很多業務可以直接造訪數據庫,以此獲取相應的數據,如今卻必須通過中間層來完成。
2、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和數據訪問層中都增加相應的代碼
3、增加了代碼量,增加了工作量
從開發角度和應用角度來看,三層架構比雙層或單層結構都有更大的優勢。三層結構適合群體開發,每人可以有不同的分工,協同工作使效率倍增。開發雙層或單層應用時,每個開發人員都應對係統有較深的理解,能力要求很高,開發三層應用時,則可以結合多方麵的人才,隻需少數人對係統全麵了解,從一定程度工降低了開發的難度。
三層架構屬於瘦客戶的模式,用戶端隻需一個較小的硬盤、較小的內存、較慢的CPU就可以獲得不錯的性能。相比之下,單層或胖客戶對麵器的要求太高。
三層架構的另一個優點在於可以更好的支持分布式計算環境。邏輯層的應用程序可以有多個機器上運行,充分利用網絡的計算功能。分布式計算的潛力巨大,遠比升級CPU有效。
三層架構的最大優點是它的安全性。用戶端隻能通過邏輯層來訪問數據層,減少了入口點,把很多危險的係統功能都屏蔽了。
另外三層架構還可以支持如下功能:Remote Access(遠程訪問資料),例如可透過Internet存取遠程數據庫;High Performance(提升運算效率)解決集中式運算(Centralize)及主從式架構(Client-Server)中,數據庫主機的運算負擔,降低數據庫主機的Connection Load,並可藉由增加App Server處理眾多的數據處理要求,這一點跟前麵講到的分布式計算提高運算能力是一個道理;Client端發出Request(工作要求)後,便可離線,交由App Server和DataBase
Server共同把工作完成,減少Client端的等待時間;這個功能我覺得應用場合不是很多,自己感受也不是很深刻,從理論上是成立的。
原帖地址:https://www.cnblogs.com/ChengPuYuan/archive/2011/07/07/2099978.html
最後更新:2017-04-03 20:19:49