ylbtech-架構-三層架構:三層架構 |
三層架構(3-tier architecture) 通常意義上的三層架構就是將整個業務應用划分為:界面層(User Interface layer)、業務邏輯層(Business Logic Layer)、數據訪問層(Data access layer)。區分層次的目的即為了“高內聚低耦合”的思想。在軟件體系架構設計中,分層式結構是最常見,也是最重要的一種結構。微軟推薦的分層式結構一般分為三層,從下至上分別為:數據訪問層、業務邏輯層(又或稱為領域層)、表示層。
1.返回頂部 |
1、
- 中文名:三層架構
- 外文名:3-tier architecture
- 分 類:界面層、業務邏輯層、數據訪問層
- 目 的:“高內聚,低耦合”的思想
- 優 點:降低層與層之間的依賴 標准化
- 缺 點: 系統架構復雜,不適合小型項目
2、
2.返回頂部 |
1、
概述
顧名思義,三層架構分為三層,分別是“數據訪問層”、“業務邏輯層”、“表示層”。
數據訪問層:數據訪問層在作業過程中訪問數據系統中的文件,
實現對數據庫中數據的讀取保存操作。
表示層:主要功能是
顯示數據和接受傳輸用戶的數據,可以在為網站的系統運行
提供交互式操作界面,表示層的應用方式比較常見,例如
Windows窗體和Web頁面。
業務邏輯層:
將用戶的輸入信息進行甄別處理,分別保存。
建立新的數據存儲方式,在存儲過程中對數據進行讀取,
將“商業邏輯”描述代碼進行包含。
三層架構軟件系統
為用戶的數據傳輸、提取、儲存創造了便利條件。在應用數據時,信息划分架構開發項目,對各層次之間的
工作職責進行清晰規划,
這樣就降低了網站系統的維護風險。
三層原理
3個層次中,系統主要功能和業務邏輯都在業務邏輯層進行處理。
所謂三層體系結構,
是在客戶端與數據庫之間加入了一個“中間層”,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡單地放置三台機器就是三層體系結構,也不僅僅有B/S應用才是三層體系結構,三層是指邏輯上的三層,即把這三個層放置到一台機器上。
三層體系的應用程序將業務規則、數據訪問、合法性校驗等工作放到了中間層進行處理。通常情況下,客戶端不直接與數據庫進行交互,而是
通過COM/DCOM通訊與中間層建立連接,再經由中間層與數據庫進行交互。
三層架構中主要功能與業務邏輯一般要在業務邏輯層進行信息處理和實現,其中三層體系架構中的客戶端和數據庫要預設中間層,成為組建層。三層架構中的三層具有一定的邏輯性,即是將三層設置到同一個計算機系統中,把業務協議、合法校驗以及數據訪問等程序歸置到中間層進行信息處理,一般客戶端無法和數據庫進行數據傳輸,主要是利用COM/DCOM通訊和中間層構建銜接通道,實現中間層與數據庫的數據傳輸,進而實現客戶端與是數據庫的交互。

結構
表示層
表示層又稱表現層UI,位於三層構架的最上層,與用戶直接接觸,主要是B/S信息系統中的Web瀏覽頁面。作為Web瀏覽頁面,表示層的主要功能是實現系統數據的傳入與輸出,在此過程中不需要借助邏輯判斷操作就可以將數據傳送到BLL系統中進行數據處理,處理后會將處理結果反饋到表示層中。換句話說,表示層就是實現用戶界面功能,將用戶的需求傳達和反饋,並用BLL或者是Models進行調試,保證用戶體驗。
業務邏輯層
業務邏輯層BLL的功能是對具體問題進行邏輯判斷與執行操作,接收到表現層UI的用戶指令后,會連接數據訪問層DAL,訪問層在三層構架中位於表示層與數據層中間位置,同時也是表示層與數據層的橋梁,實現三層之間的數據連接和指令傳達,可以對接收數據進行邏輯處理,實現數據的修改、獲取、刪除等功能,並將處理結果反饋到表示層UI中,實現軟件功能。
數據訪問層
數據訪問層DAL是數據庫的主要操控系統,實現數據的增加、刪除、修改、查詢等操作,並將操作結果反饋到業務邏輯層BLL。在實際運行的過程中,數據訪問層沒有邏輯判斷能力,為了實現代碼編寫的嚴謹性,提高代碼閱讀程度,一般軟件開發人員會在該層中編寫DataAccessCommon,保證數據訪問層DAL數據處理功能。
各層作用
1、
數據訪問層:主要是對
非原始數據(
數據庫或者文本文件等存放數據的形式)的操作層,而不是指原始數據,也就是說,是對數據庫的操作,而不是數據,具體為業務邏輯層或表示層提供數據服務。
2、業務邏輯層:主要是針對具體的問題的操作,也可以理解成對數據層的操作,對數據業務邏輯處理,如果說數據層是積木,那邏輯層就是對這些積木的搭建。
3、界面層:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表現成:aspx,如果邏輯層相當強大和完善,無論表現層如何定義和更改,邏輯層都能完善地提供服務。
規則
三層結構並不是普通的
DAL,BLL,WebUI三個模塊,三層程序有一些需要約定遵守的規則:
1、最核心的模塊規則,表現層只是外殼作用,
不能包含任何BizLogic的處理過程。
2、各層次模塊設計時應該從業務邏輯層出發,而不是開始於表現層.。
業務邏輯層在API上應該實現所有BizLogic,以面向對象的方式。
3、不論數據層是一個簡單的SqlHelper,還是帶有Mapping的Classes,
應該保證其與抽象的系統層無關。
4、
不管使用COM+(EnterpriseService),
還是Remoting,還是WebService之類的遠程對象技術,
不管部署是否在服務器上,在起碼在設計時必須要
考慮多台服務器通過
負載均衡作集群。
綜上,考慮一個項目是否符合
應用三層或多層設計時,
必須要考慮是否真正符合項目的需求。
優缺點
優點
1、開發人員可以
只關注整個結構中的其中某一層;
2、可以
很容易的用新的實現來替換原有層次的實現;
3、可以
降低層與層之間的依賴;
4、有利於標准化;
5、
利於各層邏輯的復用;
6、
結構更加的明確;
7、在后期維護的時候,
極大地降低了維護成本和維護時間;
8、避免了表示層直接訪問數據訪問層,表示層只和業務邏輯層有聯系,
提高了數據安全性。
9、
有利於系統的分散開發,每一個層可以由不同的人員來開發,
只要遵循接口標准,利用相同的對象模型實體類就可以了,這樣就可以大大提高系統的開發速度。
10、
方便系統的移植,如果要把一個C/S的系統變成B/S系統,只要修改三層架構的表示層就可以了。業務邏輯層和數據訪問層幾乎不用修改就可以輕松的把系統移植到網絡上。
11、
項目結構更清楚,分工更明確,有利於后期的維護和升級。
缺點
1、
降低了系統的性能。這是不言而喻的。如果不采用分層式結構,很多業務可以直接造訪數據庫,以此獲取相應的數據,如今卻必須通過中間層來完成。
2、
有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和數據訪問層中都增加相應的代碼。
3、
增加了開發成本。
應用
(1)應用服務器。
服務器一般包括
有連接與無連接形式,
無連接在最底層要設置UDP/IP協議實現服務器通信功能,同時在實際使用的過程中,
由於客戶機無法保證可靠的傳輸渠道,使得客戶機向服務器提交請求時,很容易造成請求的丟失、延遲以及傳遞失序等傳輸問題,進而降低通信質量。UDP的可靠性很低,在實際運行中UDP
要依托於下層IP網絡進行交付分組,無法引入檢驗程序,而IP網絡還要由實際硬件網絡或者是相關網關決定其工作質量。因此,從這一層面上看,下層網絡的好壞直接關系到UDP工作。在進行開發有連接服務器的過程中,
要利用TCP/IP通信協議,利用互聯網創建良好的通信環境,進而提高通信數據的真實性和可靠性。TCP/IP通信協議
可以對數據信息進行驗證與校對,保證數據信息的完整性。同時在實際運行中,
可以通過數據的序列號排序保證數據信息的有序到達,防止出現信息重復分組的情況。另外,這種通信協議可以對流量進行有效控制,
確保發送信息速度在接收方的承受范圍以內,通過INTERNET,實現服務器的面向連接。

(2)應用客戶端。
在三層構架系統中,客戶端是使用者的主要功能體驗區域,相比於服務器而言非常簡單。一方面,在三層構架運行的過程中,
客戶機軟件要和各個服務器進行相互通信,不需要過於重視並發性處理。另一方面,一般客戶機軟件可以仿照常規程序進行指令執行,不需要進行外加保護,依托於操作系統進行強迫性保護。但與此同時對界面具有極高的要求,系統分析的過程中就要進行專門的界面設計,同時要和客戶進行及時溝通,
掌握客戶的實際需求,實現高效的信息反饋與交流溝通,進而保證信息系統軟件界面設計的質量和效率。
(3)數據服務器。
在進行數據服務器選擇的過程中,
要根據信息系統平台要求和用戶期望要求,同時對應各個服務器的特點進行使用與選擇。一般情況下出於對系統性能的考慮,
會選擇SQLSERVER數據服務器,設計階段中要通過Proactive等有效措施對系統數據庫的實際使用性能進行不斷地優化與完善。同時管理人員要和程序設計人員進行有效的溝通與協作,
明確信息系統軟件的性能目標,設置性能期望值,構建系統資源組合體系,滿足用戶的實際需求。
(4)數據庫和應用服務器的連接。
在基於三層構架的信息系統開發中,應用服務器要
利用SQL語言進行連接數據庫服務器,其連接方法
包括DB-Library、DAO以及OLE等方式,其中DB-Library是最為常見的連接方式,作為SQLSERVER的重要接口層,
具有極強的訪問信息效率和訪問速度。這主要是
源於DB-Library的語言開發能力,
直接省去DAO以及OLE等連接方式中抽象層的調用,節省了信息訪問時間。同時,三層構架適用於使用諸多開發語言的信息系統開發,不是.NET的專利,也不是專門用在數據庫上的技術,
而是一種更加普適的架構設計理念,除了
數據、邏輯、界面等層次之外,在實際應用中
還會根據需要多出傳遞數據的層、接口層等等。在結合DB-Library數據庫連接后,
設置NTWDBLIB.LIB組建,構建CDBConn實體類庫體系,實現數據庫與應用服務器的連接。因此,信息系統軟件架構可
以為系統開發創造出良好的分布式計算環境,其中
邏輯層可以
實現多個機器的同時運行,
通過計算機網絡計算能力,
強化系統各個功能板塊的精准性和復用性,
進而有效減少了信息系統軟件開發的時間和周期,保證信息系統的
安全性與拓展性,實現系統功能的最大化實現。
2、
3.返回頂部 |
4.返回頂部 |
5.返回頂部 |
1、
2、
6.返回頂部 |
![]() |
作者:ylbtech 出處:http://ylbtech.cnblogs.com/ 本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 |