- 相關(guān)推薦
web系統(tǒng)分層架構(gòu)設(shè)計(jì)
企業(yè)中許多WEB信息管理系統(tǒng)同屬于針對(duì)關(guān)系型數(shù)據(jù)庫(kù)的,并且有相當(dāng)一部分功能需求是重復(fù)的。比如組織結(jié)構(gòu)管理、通知公告發(fā)布,甚至是訪問(wèn)權(quán)限控制等。出于對(duì)軟件復(fù)用原則和開(kāi)發(fā)效率等方面的考慮,可以采用相同的系統(tǒng)框架,再進(jìn)行具有各自業(yè)務(wù)特點(diǎn)的功能開(kāi)發(fā),這樣可以避免重復(fù)工作,保證項(xiàng)目進(jìn)度。
1 框架分析
1.1 框架
框架(Framework)是整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì),表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實(shí)例間交互的方法;另一種定義認(rèn)為,框架是可被應(yīng)用開(kāi)發(fā)者定制的應(yīng)用骨架。前者是從應(yīng)用方面而后者是從目的方面給出的定義。其具有以下的特點(diǎn):
1)它是一個(gè)功能類的集合,類之間可以相互協(xié)作,為業(yè)務(wù)子系統(tǒng)提供服務(wù)。
2)它包含了具體類和抽象類,這些類定義了標(biāo)準(zhǔn)的接口、對(duì)象間的交互作用和系統(tǒng)的相關(guān)常量。
3)為了利用、自定義或擴(kuò)展框架的服務(wù),通常需要框架的使用者去定義已存在的框架類的子類。
4)框架中定義好的類只提供給用戶自定義的類調(diào)用,而從不調(diào)用用戶自己定義的類。
框架可分為白盒(White-Box)與黑盒(Black-Box)兩種框架。
基于繼承的框架被稱為白盒框架。所謂白盒即具備可視性,被繼承的父類的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)對(duì)子類而言都是可知的。利用白盒框架的應(yīng)用開(kāi)發(fā)者通過(guò)衍生子類或重寫(xiě)父類的成員方法來(lái)開(kāi)發(fā)系統(tǒng)。子類的實(shí)現(xiàn)很大程度上依賴于父類的實(shí)現(xiàn),這種依賴性限制了重用的靈活性和完全性。但解決這種局限性的方法可以是只繼承抽象父類,也就是基類,因?yàn)槌橄箢惢旧喜惶峁┚唧w的實(shí)現(xiàn)。白盒框架是一個(gè)程序骨架,而用戶衍生出的子類是這個(gè)骨架上的附屬品。
基于對(duì)象構(gòu)件組裝的框架就是黑盒框架。應(yīng)用開(kāi)發(fā)者通過(guò)整理、組裝對(duì)象來(lái)獲得系統(tǒng)的實(shí)現(xiàn)。用戶只須了解構(gòu)件的外部接口,無(wú)須了解內(nèi)部的具體實(shí)現(xiàn)。另外,組裝比繼承更為靈活,它能動(dòng)態(tài)地改變,繼承只是一個(gè)靜態(tài)編譯時(shí)的概念。
在理想情況下,任何所需的功能都可通過(guò)組裝已有的構(gòu)件得到。事實(shí)上,可獲得的構(gòu)件遠(yuǎn)遠(yuǎn)不能滿足需求,有時(shí)通過(guò)繼承獲得新的構(gòu)件比利用已有構(gòu)件組裝新構(gòu)件更容易,因此白盒和黑盒將同時(shí)應(yīng)用于系統(tǒng)的開(kāi)發(fā)中。不過(guò)白盒框架趨向于向黑盒框架發(fā)展,黑盒框架也是系統(tǒng)開(kāi)發(fā)希望達(dá)到的理想目標(biāo)。
1.2 分層架構(gòu)
分層架構(gòu)是一個(gè)層次結(jié)構(gòu),每一層為上層服務(wù),并作為下層的客戶。在一些分層系統(tǒng)中,除了一些精心挑選的輸出函數(shù)外,內(nèi)部的層只對(duì)相鄰的層可見(jiàn)。這樣的系統(tǒng)中,構(gòu)件在一些層實(shí)現(xiàn)了虛擬機(jī)(對(duì)實(shí)現(xiàn)過(guò)程的不可見(jiàn))。連接件通過(guò)決定層間如何交互的協(xié)議來(lái)定義、拓?fù)浼s束,包括對(duì)相鄰層間交互的約束。
這種風(fēng)格支持基于可增加抽象層的設(shè)計(jì)。允許將一個(gè)復(fù)雜問(wèn)題分解成一個(gè)增量步驟序列的實(shí)現(xiàn)。由于每一層最多只影響兩層,同時(shí)只要給相鄰層提供相同的接口,允許每層用不同的方法實(shí)現(xiàn),為軟件復(fù)用提供了強(qiáng)大的支持。
我們經(jīng)常提到的三層架構(gòu)就屬于分層架構(gòu)設(shè)計(jì)的一種。它是信息管理系統(tǒng)最為常見(jiàn)的設(shè)計(jì)模式?傮w思想就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:數(shù)據(jù)訪問(wèn)層(DAL)、業(yè)務(wù)邏輯層(BLL)、用戶界面層(UI)。層與層的職責(zé)沒(méi)有重疊,上層只能依賴于下層。這樣的系統(tǒng),結(jié)構(gòu)非常明確,可以很容易的用新的實(shí)現(xiàn)來(lái)替換原有層次的實(shí)現(xiàn),大大增加了系統(tǒng)的可復(fù)用性,降低了后期的維護(hù)成本。
2 實(shí)現(xiàn)目標(biāo)
鑒于目前遇到的需求基本都屬于中低等規(guī)模的信息管理系統(tǒng)開(kāi)發(fā),綜合考慮開(kāi)發(fā)難度、可維護(hù)性、可擴(kuò)展性等因素,開(kāi)發(fā)一個(gè)介于白盒(類復(fù)用)與黑盒(功能復(fù)用)之間的基于分層架構(gòu)設(shè)計(jì)模式的框架較為適宜?蚣苤饕獙(shí)現(xiàn)以下幾個(gè)目標(biāo):
1)實(shí)現(xiàn)類、組件、代碼甚至設(shè)計(jì)的最大化重用。
2)框架結(jié)構(gòu)盡可能合理、簡(jiǎn)單,符合架構(gòu)設(shè)計(jì)的單一職責(zé)原則和單向調(diào)用原則,即框架各層的職責(zé)單一,只能上層依賴于下層,不能上下層互相依賴。
3)框架要有靈活的擴(kuò)展性,可滿足二次開(kāi)發(fā)要求。但是在進(jìn)行二次開(kāi)發(fā)時(shí),對(duì)框架只能擴(kuò)展不能修改,即滿足軟件架構(gòu)設(shè)計(jì)思想中的開(kāi)放-關(guān)閉原則。
4)框架具備一定的配置開(kāi)發(fā)能力,部分通用的功能可適用大部分信息管理系統(tǒng)。并且在針對(duì)不同的存儲(chǔ)設(shè)備時(shí),通過(guò)修改配置而不需要修改代碼就可以適應(yīng)新的運(yùn)行環(huán)境。
以上是一種基于分層架構(gòu)的WEB系統(tǒng)框架的分析、設(shè)計(jì)與實(shí)現(xiàn)的全過(guò)程。該框架層次分明、結(jié)構(gòu)簡(jiǎn)單,對(duì)每層都有一個(gè)抽象,派生類強(qiáng)制實(shí)現(xiàn)規(guī)定的抽象方法,規(guī)范了編碼過(guò)程,提高了框架的可維護(hù)性。根據(jù)信息管理系統(tǒng)的共同需求,提供了部分通用的框架功能。所以,不論在白盒框架部分還是在功能方面都具有一定的可復(fù)用性。
【web系統(tǒng)分層架構(gòu)設(shè)計(jì)】相關(guān)文章:
基于Web的MES系統(tǒng)安全架構(gòu)設(shè)計(jì)及分析10-16
系統(tǒng)架構(gòu)設(shè)計(jì)模式大全08-22
基于云架構(gòu)的系統(tǒng)安全設(shè)計(jì)08-08
系統(tǒng)架構(gòu)設(shè)計(jì)師要素01-11
MES系統(tǒng)安全架構(gòu)設(shè)計(jì)09-19
系統(tǒng)架構(gòu)設(shè)計(jì)師考試之路01-11
三層架構(gòu)的商務(wù)智能系統(tǒng)設(shè)計(jì)12-25
系統(tǒng)架構(gòu)設(shè)計(jì)師考試報(bào)考條件12-30