web系統分層架構設計

企業中許多WEB信息管理系統同屬於針對關係型數據庫的,並且有相當一部分功能需求是重複的。比如組織結構管理、通知公告發布,甚至是訪問權限控制等。出於對軟件複用原則和開發效率等方面的考慮,可以採用相同的系統框架,再進行具有各自業務特點的功能開發,這樣可以避免重複工作,保證項目進度。

web系統分層架構設計

  1 框架分析

1.1 框架

框架(Framework)是整個或部分系統的可重用設計,表現爲一組抽象構件及構件實例間交互的方法;另一種定義認爲,框架是可被應用開發者定製的應用骨架。前者是從應用方面而後者是從目的方面給出的定義。其具有以下的特點:

1)它是一個功能類的集合,類之間可以相互協作,爲業務子系統提供服務。

2)它包含了具體類和抽象類,這些類定義了標準的接口、對象間的交互作用和系統的相關常量。

3)爲了利用、自定義或擴展框架的服務,通常需要框架的使用者去定義已存在的框架類的子類。

4)框架中定義好的類只提供給用戶自定義的類調用,而從不調用用戶自己定義的類。

框架可分爲白盒(White-Box)與黑盒(Black-Box)兩種框架。

基於繼承的框架被稱爲白盒框架。所謂白盒即具備可視性,被繼承的父類的內部實現細節對子類而言都是可知的。利用白盒框架的應用開發者通過衍生子類或重寫父類的成員方法來開發系統。子類的實現很大程度上依賴於父類的實現,這種依賴性限制了重用的靈活性和完全性。但解決這種侷限性的方法可以是隻繼承抽象父類,也就是基類,因爲抽象類基本上不提供具體的實現。白盒框架是一個程序骨架,而用戶衍生出的子類是這個骨架上的附屬品。

基於對象構件組裝的框架就是黑盒框架。應用開發者通過整理、組裝對象來獲得系統的實現。用戶只須瞭解構件的外部接口,無須瞭解內部的具體實現。另外,組裝比繼承更爲靈活,它能動態地改變,繼承只是一個靜態編譯時的概念。

在理想情況下,任何所需的功能都可通過組裝已有的構件得到。事實上,可獲得的構件遠遠不能滿足需求,有時通過繼承獲得新的構件比利用已有構件組裝新構件更容易,因此白盒和黑盒將同時應用於系統的開發中。不過白盒框架趨向於向黑盒框架發展,黑盒框架也是系統開發希望達到的理想目標。

1.2 分層架構

分層架構是一個層次結構,每一層爲上層服務,並作爲下層的客戶。在一些分層系統中,除了一些精心挑選的'輸出函數外,內部的層只對相鄰的層可見。這樣的系統中,構件在一些層實現了虛擬機(對實現過程的不可見)。連接件通過決定層間如何交互的協議來定義、拓撲約束,包括對相鄰層間交互的約束。

這種風格支持基於可增加抽象層的設計。允許將一個複雜問題分解成一個增量步驟序列的實現。由於每一層最多隻影響兩層,同時只要給相鄰層提供相同的接口,允許每層用不同的方法實現,爲軟件複用提供了強大的支持。

我們經常提到的三層架構就屬於分層架構設計的一種。它是信息管理系統最爲常見的設計模式。總體思想就是將整個業務應用劃分爲:數據訪問層(DAL)、業務邏輯層(BLL)、用戶界面層(UI)。層與層的職責沒有重疊,上層只能依賴於下層。這樣的系統,結構非常明確,可以很容易的用新的實現來替換原有層次的實現,大大增加了系統的可複用性,降低了後期的維護成本。

  2 實現目標

鑑於目前遇到的需求基本都屬於中低等規模的信息管理系統開發,綜合考慮開發難度、可維護性、可擴展性等因素,開發一個介於白盒(類複用)與黑盒(功能複用)之間的基於分層架構設計模式的框架較爲適宜。框架主要實現以下幾個目標:

1)實現類、組件、代碼甚至設計的最大化重用。

2)框架結構儘可能合理、簡單,符合架構設計的單一職責原則和單向調用原則,即框架各層的職責單一,只能上層依賴於下層,不能上下層互相依賴。

3)框架要有靈活的擴展性,可滿足二次開發要求。但是在進行二次開發時,對框架只能擴展不能修改,即滿足軟件架構設計思想中的開放-關閉原則。

4)框架具備一定的配置開發能力,部分通用的功能可適用大部分信息管理系統。並且在針對不同的存儲設備時,通過修改配置而不需要修改代碼就可以適應新的運行環境

以上是一種基於分層架構的WEB系統框架的分析、設計與實現的全過程。該框架層次分明、結構簡單,對每層都有一個抽象,派生類強制實現規定的抽象方法,規範了編碼過程,提高了框架的可維護性。根據信息管理系統的共同需求,提供了部分通用的框架功能。所以,不論在白盒框架部分還是在功能方面都具有一定的可複用性。