1. 程式人生 > >什麽是三層架構?

什麽是三層架構?

aid 接收 mbed 連接 工具 樣式 邏輯 同時 規則

什麽是三層架構?

三層體系結構是在客戶端數據庫之間加入了一個“中間層”,這裏所說的三層體系是指邏輯上的三層,即把這三個層放置到一臺機器上。

三層體系的應用程序將業務規則、數據訪問、合法性校驗等工作放到了中間層進行處理。

通常情況下,客戶端不直接與數據庫進行交互,而是通過COM/DCOM通訊與中間層建立連接,再經由中間層與數據庫進行交互

UI表示層

User Interface layer(UI)

    • 第一層是用戶界面:它包含了用戶界面,讓使用者輸入,輸出,查詢等工作.
      • 負責接收用戶的輸入,將輸出呈現給用戶,以及訪問安全
        性驗證,並對輸入的數據的正確性,有效性及呈現樣式負責,但對輸出的數據的正確性不負責.
      • 主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表現成:aspx,如果邏輯層相當強大和完善,無論表現層如何定義和更改,邏輯層都能完善地提供服務
      • 位於最外層(最上層),最接近用戶。用於顯示數據和接收用戶輸入的數據,為用戶提供一種交互式操作的界面。
      • 界面層提供給用戶一個視覺上的界面,通過界面層,用戶輸入數據、獲取數據。界面層同時也提供一定的安全性,確保用戶不用看到不必要的機密信息。

BLL業務邏輯層

Business Logic Layer(BLL)

    • 第二層是
      商務邏輯層(中間層):
      • 傳統的兩層構架根本沒有能力承擔巨大的工作壓力,必須通過某種中間系統實現壓力平衡.
      • 中間層是沒有圖形界面設計的代碼編寫,並且是OOP方式的代碼編寫,不僅要熟悉後臺數據庫的特性,還要考慮前臺界面工具的特性,最重要的是商務邏輯的構架,同時還要求懂得IIS、MTS(COM+)、NT的安全設置等復雜枯燥的東西。
      • 負責系統領域業務的處理,負責邏輯性邏輯的生成處理及轉換。對所輸入的邏輯性數據的正確性及有效性負責,但對輸出的邏輯性數據及用戶性數據的正確性不負責任,對數據的呈現樣式不負責。
      • 要是針對具體的問題的操作,也可以理解成對數據層的操作,對數據業務邏輯處理,如果說數據層是積木,那邏輯層就是對這些積木的搭建。
      • 業務邏輯層(Business Logic Layer)無疑是系統架構中體現核心價值的部分。它的關註點主要集中在業務規則的制定、業務流程的實現等與業務需求有關的系統設計,也即是說它是與系統所應對的領域(Domain)邏輯有關,很多時候,也將業務邏輯層稱為領域層。
      • 業務邏輯層在體系架構中的位置很關鍵,它處於數據訪問層與表示層中間,起到了數據交換中承上啟下的作用。由於層是一種弱耦合結構,層與層之間的依賴是向下的,底層對於上層而言是“無知”的,改變上層的設計對於其調用的底層而言沒有任何影響。如果在分層設計時,遵循了面向接口設計的思想,那麽這種向下的依賴也應該是一種弱依賴關系。因而在不改變接口定義的前提下,理想的分層式架構,應該是一個支持可抽取、可替換的“抽屜”式架構。正因為如此,業務邏輯層的設計對於一個支持可擴展的架構尤為關鍵,因為它扮演了兩個不同的角色。對於數據訪問層而言,它是調用者對於表示層而言,它卻是被調用者
      • 邏輯層是界面層和數據層的橋梁,它響應界面層的用戶請求,執行任務並從數據層抓取數據,並將必要的數據傳送給界面層。

DAL數據訪問層

Data Access Layer(DAL)

    • 第三層是資料層:它就是用來放資料的地方,一般是指後端數據庫,主要有包括 Oracle、SQL Server 等,它主要是提供一個很大的地方,來有規則的存放數據.
      • 負責與數據源的交互,即數據的插入,刪除,修改,以及從數據庫中讀出數據等操作,但對數據的正確性和有效性不付責任,對數據的用途不了解,不負擔任何業務邏輯的處理。
      • 主要是對原始數據(數據庫或者文本文件等存放數據的形式)的操作層,而不是指原始數據,也就是說,是對數據的操作,而不是數據庫,具體為業務邏輯層或表示層提供數據服務.
      • 有時候也稱為是持久層,其功能主要是負責數據庫的訪問,可以訪問數據庫系統、二進制文件、文本文檔或是XML文檔。

    簡單的說法就是實現對數據表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那麽就會包括對象和數據表之間的mapping,以及對象實體的持久化。

    • 數據層定義、維護數據的完整性、安全性,它響應邏輯層的請求,訪問數據。這一層通常由大型的數據庫服務器實現,如Oracle 、Sybase、MS SQl Server等

搭建三層的步驟?

Model:

將數據表中的列轉換成實體類中的屬性。

DAL(Data Access Layer:

專門負責和數據庫交互,所有的SQL都要出現在該層。

BLL(Business Logic Layer)

隔離DALUI層,將DAL數據返回給UI層。

UI(User Interface layer)

負責界面的展示。

Common

工具類層 。負責和數據庫無關的但是UI又需要調用的。

調用關系:

  • 所有層都要引用Model

  • BLL依賴於DALModel

  • UI依賴於BLLCommonModel

  • Model:不依賴任何層

引用關系:

DALModel

BLLModelDAL

UIModel,BLLCommon

什麽是三層架構?