沈晗
摘 要在軟件研發(fā)中,架構(gòu)設(shè)計是十分重要的內(nèi)容之一,往往涉及到軟件的設(shè)計模式、發(fā)布環(huán)境和運行效率等環(huán)節(jié)。在現(xiàn)在的軟件設(shè)計中,由于三層架構(gòu)具有設(shè)計簡便、便于管理等優(yōu)點,所以得到了十分廣泛的應(yīng)用。當然,三層軟件架構(gòu)也存在著一定的缺陷,比如在系統(tǒng)前端編程以及其拓展性等方面存在一定的缺陷。由于三層軟件架構(gòu)將表示層、數(shù)據(jù)訪問層以及業(yè)務(wù)邏輯層三種均放到了服務(wù)器上,使得所有的頁面表單數(shù)據(jù)都得經(jīng)由服務(wù)器的控制才可以實現(xiàn)工作的完成,這就大大提高了對配置的要求,尤其是對容器的要求。同時,這也會影響軟件的整體運行效率和用戶的良好體驗。筆者通過對多年的工作經(jīng)驗的總結(jié),一三層架構(gòu)為基礎(chǔ),并將JavaScript、SOA、Browser cache等技術(shù)引入到軟件設(shè)計中,希望能夠?qū)μ岣哕浖O(shè)計的整體水平的提高有所幫助。
【關(guān)鍵詞】三層架構(gòu) 重構(gòu) 優(yōu)化
眾所周知,在研發(fā)周期中軟件設(shè)計工作十分重要,主要原因在于其關(guān)系到軟件的設(shè)計模式、發(fā)布環(huán)境、開發(fā)成本和運行效率等一系列極為重要的環(huán)節(jié)。目前來看,實現(xiàn)結(jié)構(gòu)設(shè)計的創(chuàng)新工作主要是將表示層從服務(wù)器端轉(zhuǎn)移到了客戶端。也就是將AJAX、ISON、JS、JQuery、Cache等技術(shù)引入到軟件設(shè)計中,將軟件本身的構(gòu)造進行一定程度的改造,實現(xiàn)最大程度的優(yōu)化與整合,進行有效解決軟件及服務(wù)器壓力過大的問題,這樣也能夠提高軟件的使用壽命。因此,本文提出了基于ISON、Cridential和SOA的業(yè)務(wù)邏輯分解模型。這種模型是指以ISO為數(shù)據(jù)交互載體,同時利用Cridential保證相關(guān)數(shù)據(jù)的安全性,同時將化整為零的數(shù)學手段運用到商業(yè)邏輯分解工作中,具體的就是將其分解成的多個基本功能模塊并將它們掛載到SOA總線上,以實現(xiàn)滿足各個平臺數(shù)據(jù)請求的目標,完成更廣范圍的服務(wù)工作。
1 簡述三層架構(gòu)
三層架構(gòu)的應(yīng)用是由于人們對軟件工程的認識越來越深入和普通大眾對軟件使用的體驗效果要求越來越高。實際上,由于各種新技術(shù)的研發(fā)與應(yīng)用,比如人們對封裝、擴展移置,使原有的二層架構(gòu)不能很好地支撐整個龐大的體系,這也就是三層架構(gòu)得以研發(fā)和應(yīng)用的主要原因。當三層架構(gòu)的設(shè)計被人們認識并應(yīng)用后,實現(xiàn)了更高的應(yīng)用目標,因此可以說在一定程度上革新了軟件的整體架構(gòu)。
所謂的“三層架構(gòu)”具體指的是將“業(yè)務(wù)邏輯層”作為中間層插入“數(shù)據(jù)庫服務(wù)層”和“客戶界面層”中間,從而三個不同的層面構(gòu)成了一個更加合理的三層體系。這種三層結(jié)構(gòu)更加合理,因為當加入“業(yè)務(wù)邏輯層”之后,就解決了以往的二層架構(gòu)難以解決的問題,比如復(fù)雜的商業(yè)邏輯的分解工作。這樣一來就使得服務(wù)器更具安全性、可靠性和可移置性,很大程度上減少了用戶的管理應(yīng)用的時間,提高了其體驗效果與滿意度。
2 對三層架構(gòu)的優(yōu)點與缺點的理解
通過上文的分析,我們不難發(fā)現(xiàn),三層架構(gòu)在整體上更具競爭優(yōu)勢,而其優(yōu)勢則主要體現(xiàn)在以下幾個方面:
(1)高內(nèi)聚。
(2)低禍合。
(3)更加適合團隊開發(fā)。
因此,在設(shè)計過程中,前臺工程師的設(shè)計重心可以更加傾向于表示層設(shè)計,比如數(shù)據(jù)的綁定、頁面的渲染等;而負責業(yè)務(wù)邏輯的工程師則可以將工作重心放在業(yè)務(wù)邏輯層就可以了,而沒有必要深入、透徹地了解表示層的實現(xiàn)原理。
當然,我們在看到三層架構(gòu)的這些優(yōu)勢的同時,也不能忽視其缺點。在實踐中我們不難發(fā)現(xiàn),三層架構(gòu)具有如下不足之處:
(1)設(shè)計更加復(fù)雜,難度大。因為三層架構(gòu)為多層設(shè)計,設(shè)計十分復(fù)雜,而且也沒有將關(guān)于支持面向服務(wù)的設(shè)計納入考慮范圍之內(nèi),所以復(fù)雜程度可想而知;
(2)對服務(wù)器的要求很高。因為三層結(jié)構(gòu)都要在同一個服務(wù)器上,總的負荷量很大,這就要求服務(wù)器具備極高的可靠性和數(shù)據(jù)處理能力,而在實際設(shè)計中,為了保證服務(wù)器的運行質(zhì)量,往往會做系統(tǒng)集群與負載均衡,這就使得應(yīng)用三層架構(gòu)的成本大大增加了;
(3)三層架構(gòu)缺乏跨平臺服務(wù)功能,無法實現(xiàn)數(shù)據(jù)共享。
3 對表示層的重構(gòu)
由于三層架構(gòu)具有一定的限制性,也就是對系統(tǒng)環(huán)境的要求較高,本文以此為切入段,將AJAX、JQuery、JS、Cache、ISON等技術(shù)手段引入到軟件設(shè)計中,從而提出把表示層的渲染從服務(wù)器端轉(zhuǎn)移到客戶端的CUL(Client-UI-layer)模型,希望能夠?qū)崿F(xiàn)軟件架構(gòu)以及系統(tǒng)資源的優(yōu)化和組合。CUL的最大優(yōu)勢和特點在于其可以協(xié)助完成表示層的渲染與國際化。如果有客戶訪問頁面,就會在高速緩存服務(wù)器的作用下將表示層的資源轉(zhuǎn)移客戶端上,這樣一來不經(jīng)提高了下載速度,而且還會提高訪問率。
4 對業(yè)務(wù)邏輯層的重構(gòu)
業(yè)務(wù)邏輯層的主要作用是溝通表示層和數(shù)據(jù)訪問層,起到橋梁的作用,其位置在數(shù)據(jù)層和表示層中間和數(shù)據(jù)訪問層之間。首先業(yè)務(wù)邏輯層對數(shù)據(jù)訪問層的原始數(shù)據(jù)實施相關(guān)的處理,并且依照相應(yīng)的標準完成數(shù)據(jù)的封裝工作,然后再將所有的處理數(shù)據(jù)發(fā)送到表示層。因此,通過引入CUL模型,就實現(xiàn)了將表示層從服務(wù)器端轉(zhuǎn)移到客戶端的目標。另一方面,也要將業(yè)務(wù)邏輯層改造為面向服務(wù)的業(yè)務(wù)邏輯層,實現(xiàn)分享型的數(shù)據(jù)服務(wù)目標。
5 小結(jié)
綜上所述,三層架構(gòu)并不是憑空出現(xiàn)的,而是在二層架構(gòu)的基礎(chǔ)上產(chǎn)生的。三層架構(gòu)的最大特點就是將業(yè)務(wù)邏輯層引入了原有的二層結(jié)構(gòu)中,形成了“表示層”、“業(yè)務(wù)邏輯層”以及“數(shù)據(jù)訪問層”三層,在很大程度上簡化了操作的難度,也就是使相關(guān)的代碼設(shè)計工程師減輕了設(shè)計負擔,不需要研究什么是不業(yè)務(wù)邏輯但依然可以很好地完成工作,同樣的負責業(yè)務(wù)邏輯的工程師也沒必要了解什么是數(shù)據(jù)庫的訪問過程,仍然可以很好地完成工作。整體上來看,各個層面之間則可以實現(xiàn)良好的協(xié)作效果,實現(xiàn)更高的工作效率。
參考文獻
[1]周明輝,徐俊剛.基于J2EE體系的框架分析與設(shè)計方法MBP[J].計算機應(yīng)用與軟件,2009(12).
[2]劉艷,張銳,彭巖.Hibernate+Spring+Struts
+Ajax整合框架在企務(wù)通系統(tǒng)中的應(yīng)用[J].計算機應(yīng)用與軟件,2009(10).
[3]肖榮榮,張鳳斌,劉亞麗,徐昕業(yè).Web2.0應(yīng)用情況調(diào)查分析及其啟示[J].圖書館理論與實踐,2009(09).
作者單位
江蘇蘇源高科技有限公司 江蘇省南京市 210008