隨著Web應用的商業邏輯包含逐漸複雜的公式分析計算、決策支援等,使客戶機越
來越不堪重負,因此將系統的商業分離出來。單獨形成一部分,這樣三層結構產生了。
其中‘層’是邏輯上的劃分。
三層體繫結構是將整個系統劃分為2.1所示的結構[3]
(1)表現層(Presentation layer):包含表示代碼、使用者互動GUI、資料驗證。
該層用於向用戶端使用者提供GUI互動,它允許使用者在顯示系統中輸入和編輯資料,同時
系統提供資料驗證功能。
(2)商務邏輯層(Business layer):包含商務規則處理代碼,即程式中與業務
相關專業演算法、業務政策等等。該層用於執行商務程序和制訂資料的商務規則。業務邏
輯層主要面向業務應用,為展示層提供商務服務。
(3)資料持久層(Persistence layer):包含資料處理代碼和資料存放區代碼。數
據持久層主要包括資料存取服務,負責與資料庫管理系統(如資料庫)之間的通訊。
三個層次的每一層在處理常式上有各自明確的任務,在功能實現上有清晰的區分,
各層與其餘層分離,但各層之間存有通訊介面。
採用三層軟體設計架構後,軟體系統在可擴充性和可複用性方面得到極大提高,在
資源分派策略設計合理運用的同時,軟體的效能指標也得到提升,系統的安全性和易管東北
理性也得到改善。
三層體繫結構對Web應用的軟體架構產生很大影響,促進了基於組件的設計思想,
產生了許多開發Web層次架構的實現技術。較之兩級結構來說,三層結構修改和維護上
更加方便。目前開發B/S結構的Web應用系統廣泛採用這種三層體繫結構。
設計模式起源:
1994 年,由 Erich Gamma,Richard Helm,Ralph Johnson 和 John Vlissides(即所謂的“四人幫’,GoF:Gang of Four)合作的以《設計模式:可複用的物件導向軟體的基本原理》為題目的書藉出版了。這本書解釋了模式的用處,同時也使得設計模式得到廣泛普及。在書中,他們四人記錄了他們長期工作中發現的經典 23 個設計模式。
IoC模式
IoC 模式是 Apach Avalon 項目創始人之一 Stefano Mazzocchi 提出的一種代碼調用模式,後被 MartinFowlcr 改名為 Dependency Injection(依賴注入),也就是將類和類,方法和方法之間的關係通過第三方(如設定檔)進行“注入”,不需要類或者方法自己去解決彼此間的調用關係。 IoC(Inversion of Control, 控制反轉), 是一種用來解決組件(也可以是簡單的 Java類)之間依賴關係、配置及生命週期的設計模式,它可以解決模組間的耦合問題。IoC模式它是把組件之間的依賴關係提取(反轉)出來,由容器來具體配置。這樣,各個組件之間就不存在代碼關聯,解決了調用方與被呼叫者之間的關係問題,任何組件都可以最大程度的得到重用。
IoC 模式實現的技術途徑
表 2.1 列舉出了 IoC 的三種實現方式。本文中設計並實現的伺服器端資料驗證組件就是採用了第一種類型的 IoC 實現方式。
MVC模式 :
MVC 是 Model-View-Control 的簡稱,即模型-視圖-控制器。它是一個存在於伺服器
表達層的模型,它將應用分開,改變應用之間的高度耦合。
MVC 是在 20 世紀 80 年代發明的一種軟體設計模式,至今已被廣泛使用,最近幾年
被推薦為 Sun 公司 J2EE 平台的設計模式。
MVC 模式結構
MVC 模式將應用分為模型、視圖和控制器三個部分:
1. 視圖:資料的展現。
視圖是使用者看到並與之互動的介面。視圖向使用者顯示相關的資料,並能接收使用者的輸入資料,但是它並不進行任何實際的業務處理。視圖可以向模型查詢業務狀態,但不能改變模型。視圖還能接受模型發出的資料更新事件,從而對使用者介面進行同步更新。
2. 模型:應用對象。
模型是應用程式的主體部分。 模型代表了業務資料和商務邏輯; 當資料發生改變時,它要負責通知視圖部分;一個模型能為多個視圖提供資料。由於同一個模型可以被多個視圖重用,所以提高了應用的可重用性。
3. 控制器:邏輯處理、控制實體資料在視圖上展示、調用模型處理業務請求。
當 Web 使用者單擊 Web 頁面中的提交按鈕來發送 HTML 表單時,控制器接收請求並調用相應的模型組件去處理請求,然後調用相應的視圖來顯示模型返回的資料。
MVC 模式運行機制
2.2 所示為 MVC 模式運行機制:
在 MVC 模式中,Web 使用者向伺服器提交的所有請求都由控制器接管。接受到請求之後,控制器負責決定應該調用哪個模型來進行處理;然後模型根據使用者請求進行相應的商務邏輯處理,並返回資料;最後控制器調用相應的視圖來格式化模型返回的資料,並通過視圖呈現給使用者。
架構
軟體開發越來越倚重架構的使用。架構可以縮短應用軟體系統的開發週期,提高軟體生產效率和品質。大大簡化了開發。選擇何種架構、每個架構如何應用在在系統架構中是軟體架構設計的重要環節。
架構的定義
在設計模式中,Gamma 等人為架構給出了一個明確定義:“架構(Framework)是一組協同工作的類,它們為特定類型的軟體構築了一個可重用的設計”。
架構是一組為相互協作的構件(Component)的集合,它能夠處理一個或多個問題域(Domain)中的一系列問題。架構強調的是軟體設計的重用性和系統的可擴充性。它是為了追求重用所帶來的價值量最大化,而將被重用最多的部分封裝成各個組件,輔以回調機制將它們納入架構的控制範圍之內。所以,架構提供了可在應用程式之間共用的可複用的公用結構。
架構的特性
架構套件含以下幾個關鍵特性:
1.在應用方面,架構是整個或部分系統的可重用設計,表現為一組抽象構件及構件執行個體間互動的方法;在目標方面,架構是可被應用開發人員定製的應用骨架。
2.架構是一種軟體,是應用程式的半成品。它可以供系統開發人員選用,以完成系統的開發。
3.架構解決的是某個特定範圍即領域的問題。每個架構都有自己的目標領域,它並不能滿足所有人的所有需求。