摘 要:隨著計(jì)算機(jī)信息技術(shù)的不斷發(fā)展,應(yīng)用程序的設(shè)計(jì)方法也越來越多。三層架構(gòu)的開發(fā)方式近年來受到了越來越多的好評(píng),這主要是因?yàn)槿龑蛹軜?gòu)的開發(fā)模式對(duì)于開發(fā)人員的能力要求不高,同時(shí)可以實(shí)現(xiàn)多個(gè)成員間的協(xié)同作戰(zhàn),更加提高軟件開發(fā)的效率,降低成本。本文基本三層架構(gòu)的Web應(yīng)用程序設(shè)計(jì),以電子商務(wù)的服務(wù)超市與某系統(tǒng)管理軟件的開發(fā)為案例,對(duì)其中的設(shè)計(jì)問題進(jìn)行分析與探討。
關(guān)鍵詞:三層架構(gòu);Web;應(yīng)用程序;系統(tǒng)管理;商務(wù)
中圖分類號(hào):TP311.52
隨著信息技術(shù)的不斷發(fā)展,越來越多現(xiàn)實(shí)中的管理系統(tǒng)加入了應(yīng)用程序的角色,使流程更加高效,提高收益。信息管理工具對(duì)于大型企業(yè)的信息化自動(dòng)化的管理有著重要的意義,行業(yè)中大型企業(yè)的信息化系統(tǒng)不斷復(fù)雜多變,要通過一定的措施確保這些系統(tǒng)能夠被有效地管理,同時(shí)確保其安全、運(yùn)行可靠。系統(tǒng)管理開始成為企業(yè)電子商務(wù)必要的基礎(chǔ)設(shè)施。
在N層體系結(jié)構(gòu)中,三層體系架構(gòu)是一種特殊的存在,同時(shí)也是最為常用的一種設(shè)計(jì)方法。對(duì)于較為繁瑣的企業(yè)信息管理系統(tǒng)來說,往往將業(yè)務(wù)層分解成N個(gè)層,這樣帶來很多益處,可以保持結(jié)構(gòu)清晰、能夠不斷重復(fù)使用代碼,極大地節(jié)約了人力成本,在后期的維護(hù)中也非常方便。選擇三層架構(gòu)主要由于其具有N層體系結(jié)構(gòu)擁有的許多優(yōu)越性,另外也不用太多時(shí)間進(jìn)行設(shè)計(jì)進(jìn)而支持N層復(fù)雜體系結(jié)構(gòu)的那些代碼?;谌龑蛹軜?gòu)的應(yīng)用程序設(shè)計(jì)中也存在著一定的問題,本文結(jié)合案例進(jìn)行深入分析,以供參考。
1 三層架構(gòu)定義
三層架構(gòu)最下層為表示層,中間層為邏輯層,最上層為數(shù)據(jù)訪問層。窗體以及用戶控件通常構(gòu)成表示層,表示層往往直接面對(duì)用戶,在設(shè)計(jì)時(shí)需要滿足用戶的觀感要求,設(shè)計(jì)美觀大方,表示層中的業(yè)務(wù)邏輯在中間層,一旦用戶發(fā)出數(shù)據(jù)申請(qǐng),表示層調(diào)用邏輯層相關(guān)方法從而得以實(shí)現(xiàn),邏輯層屬于核心層,往往需要許多函數(shù)構(gòu)成,集中到此層,從而有利于模塊化實(shí)現(xiàn)。數(shù)據(jù)訪問層主要接受來自于業(yè)務(wù)層的數(shù)據(jù)調(diào)用申請(qǐng),包括鏈接訪問鏈接字符串,并進(jìn)行存儲(chǔ),把數(shù)據(jù)操作結(jié)果返回給業(yè)務(wù)邏輯層。
2 程序設(shè)計(jì)需求分析
對(duì)于電子商務(wù)服務(wù)超市網(wǎng)站而言,其主要基于三層系統(tǒng)架構(gòu)這一理念,進(jìn)而設(shè)計(jì)出來的一種網(wǎng)上購(gòu)買服務(wù)的Web應(yīng)用系統(tǒng)。系統(tǒng)分為前臺(tái)與后臺(tái),前臺(tái)主要包括與消費(fèi)者直接面對(duì)的環(huán)節(jié),有用戶的注冊(cè)、登錄、商品的展示與用戶的購(gòu)物管理等,而后臺(tái)則主要是指用戶的管理、商品的管理等。
在網(wǎng)站的前臺(tái),用戶可以進(jìn)行注冊(cè),之后通過用戶名與密碼進(jìn)行登錄,瀏覽商品并進(jìn)行購(gòu)買。商品的展示主要分為圖片、詳情、價(jià)格等于,用戶可以對(duì)自己管理的商品進(jìn)行購(gòu)買、消除或刪減等,根據(jù)自己的喜好實(shí)現(xiàn)商品收藏與評(píng)論等。后臺(tái)則主要是管理員對(duì)網(wǎng)站的數(shù)據(jù)進(jìn)行維護(hù),包括用戶詳細(xì)信息管理、密碼修改等。對(duì)于商品的管理主要包括類別的制定、首頁推廣等。在交易類網(wǎng)站中,訂單管理非常重要,可以按照用戶名、訂單號(hào)等進(jìn)行查詢并修改,另外可以實(shí)現(xiàn)對(duì)批量的信息導(dǎo)入或?qū)С龇?wù)。
ASP.NET和SQL Server數(shù)據(jù)庫(kù)作為開發(fā)平臺(tái)、VB.NET語言編寫應(yīng)用程序,他們都是主流開發(fā)工具,這些開工工具的應(yīng)用性較強(qiáng),執(zhí)行效率高,能夠具有很好的復(fù)用性。在本案例中采用瀏覽器/服務(wù)器結(jié)構(gòu)作為應(yīng)用模型,對(duì)用戶端的要求低,安全性更高。這種三層架構(gòu)開發(fā)可以把工作進(jìn)行無限細(xì)化,多個(gè)團(tuán)隊(duì)協(xié)同工作,效率更高。
3 三層架構(gòu)的Web程序設(shè)計(jì)實(shí)施
Web窗體和Web用戶控件組合進(jìn)而構(gòu)成了應(yīng)用程序的表示層,這些表示層把訪問需要加載的HTML代碼進(jìn)行創(chuàng)建,使得用戶通過界面作出訪問,各層均置于各種項(xiàng)目里面,用戶界面就置于UI項(xiàng)目里面,UI項(xiàng)目里面存在著網(wǎng)站首頁Main.aspx以及登錄界面Login.aspx、還包括商品展示界面GoodsShow.aspx這些界面,這層里面還存在著界面簡(jiǎn)潔的通用代碼。
以本文的電子商務(wù)超市購(gòu)物案例來講,為滿足表示層中商品展示的需要,于業(yè)務(wù)邏輯層項(xiàng)目DDL里面,應(yīng)該進(jìn)行GoodsList.vb類的創(chuàng)建,進(jìn)而就實(shí)際的邏輯作出定義,上述邏輯程序不僅具有字段綁定以及數(shù)據(jù)獲取,還有參數(shù)傳遞。
來自于表示層的請(qǐng)示主要是由業(yè)務(wù)邏輯層負(fù)責(zé)接收,利用內(nèi)部運(yùn)算進(jìn)行處理或調(diào)用函數(shù)。數(shù)據(jù)訪問層項(xiàng)目DAL中主要包含數(shù)據(jù)庫(kù)操作類與數(shù)據(jù)庫(kù)連接類、密鑰構(gòu)造類等,這些類主要與數(shù)據(jù)庫(kù)進(jìn)行交互,通過對(duì)函數(shù)進(jìn)行調(diào)用,從而實(shí)現(xiàn)數(shù)據(jù)的獲取、寫入等。
業(yè)務(wù)邏輯層的GoodsList.vb類對(duì)商品展示的方式進(jìn)行定義,同時(shí)不僅針對(duì)數(shù)據(jù)訪問層數(shù)據(jù)庫(kù)操作類函數(shù)進(jìn)行調(diào)用,也調(diào)用了數(shù)據(jù)庫(kù)交互,執(zhí)行了數(shù)據(jù)庫(kù)中的存儲(chǔ)過程獲得了商品明細(xì),獲取數(shù)據(jù)集然后回到表示層綁定到DataGrid控件上面,最終顯示到使用者。系統(tǒng)里面別的功能的業(yè)務(wù)流程處于三層架構(gòu)里面都具備對(duì)應(yīng)的類或者函數(shù)和它們一一對(duì)應(yīng)。首頁推薦商品展示、商品分類展示以及商品詳情展示這些功能模塊具有不一樣的顯示結(jié)果,然而于業(yè)務(wù)邏輯層里面均要使用GoodsList.vb類里面的GetGoodsList()這個(gè)函數(shù)。其實(shí)來說三層架構(gòu)里面類的功能保持相對(duì)完整的狀態(tài),使用它的功能時(shí),能對(duì)其直接調(diào)用,促使程序的結(jié)構(gòu)簡(jiǎn)便,復(fù)用性也非常強(qiáng),進(jìn)行維護(hù)也簡(jiǎn)單。數(shù)據(jù)庫(kù)進(jìn)行遷移、有時(shí)進(jìn)行密碼更正,此時(shí)僅僅對(duì)數(shù)據(jù)訪問層里面數(shù)據(jù)庫(kù)連接類DBConn.vb里的連接字符串函數(shù)ConnStr()作出更正就行了。其他層為訪問數(shù)據(jù)庫(kù)均是調(diào)用的連接字符串函數(shù)ConnStr(),進(jìn)而促使程序的修改量以及出錯(cuò)幾率變小。進(jìn)行整個(gè)設(shè)計(jì)的時(shí)候,讓項(xiàng)目邏輯結(jié)構(gòu)顯得更為全面,根據(jù)系統(tǒng)需求功能對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行合理設(shè)計(jì),分功能模塊由頁面開始進(jìn)行設(shè)計(jì),還要進(jìn)行業(yè)務(wù)邏輯層算法代碼以及數(shù)據(jù)訪問層代碼的編寫。
4 三層架構(gòu)的應(yīng)用程序設(shè)計(jì)總結(jié)
三層架構(gòu)的優(yōu)點(diǎn)主要表現(xiàn)于依賴性不大以及擴(kuò)展性強(qiáng)。如果分層系統(tǒng)沒有各種邏輯關(guān)系緊密連接、相互關(guān)聯(lián)制約、彼此間相互依賴不可替代,要求在改變的同時(shí),就系統(tǒng)產(chǎn)生很大的影響。三層架構(gòu)就每層各自的職責(zé)作出規(guī)范,讓層和層二者間的依賴性得以降低,讓系統(tǒng)的可擴(kuò)展性得以強(qiáng)化。另外三層架構(gòu)具有強(qiáng)的復(fù)用性、開發(fā)周期也變少。進(jìn)行現(xiàn)代程序設(shè)計(jì)的目的即為確保實(shí)踐效果的實(shí)現(xiàn),于最短的時(shí)間內(nèi)實(shí)施應(yīng)用,獲取最高的經(jīng)濟(jì)價(jià)值,系統(tǒng)各種功能模塊處于每層里面都存在已經(jīng)定義的接口,給予別的功能模塊進(jìn)行調(diào)用,此類設(shè)計(jì)架構(gòu)讓團(tuán)隊(duì)并發(fā)試開發(fā)得以實(shí)現(xiàn),程序的復(fù)用性得以提升,開發(fā)成本明顯減少。UI工作者僅僅考慮用戶界面的體驗(yàn)及其操作,開發(fā)設(shè)計(jì)工作者只要重視業(yè)務(wù)邏輯層的設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì)工作者不用麻煩于復(fù)雜的用戶交互。所有開發(fā)人員的任務(wù)清晰,能大力提升開發(fā)進(jìn)度。
5 結(jié)束語
利用三層架構(gòu)設(shè)計(jì)思路對(duì)Web程序設(shè)計(jì)有著重要的意義,以其靈活、高效的優(yōu)勢(shì)獲得了軟件開發(fā)者的一致認(rèn)可。在未來的程序中,三層架構(gòu)思想應(yīng)用將會(huì)更加廣泛,展現(xiàn)更高的價(jià)值,同時(shí)在設(shè)計(jì)過程中有一些問題需要注意,提前進(jìn)行規(guī)避,才能夠設(shè)計(jì)出最完美的程序。
參考文獻(xiàn):
[1]劉娜,王如龍.基于ASP.NET的校園網(wǎng)上商店的研究與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù)(學(xué)術(shù)交流),2007(09).
[2]岳敏,劉遵仁.基于.NetFramework的N層分布式企業(yè)應(yīng)用架構(gòu)的研究[J].大眾科技,2006(03).
[3]張秋余,賈志龍,楊玥.基于.NET的分布式軟件框架的研究與應(yīng)用[J].蘭州理工大學(xué)學(xué)報(bào),2006(05).
[4]章利,范濱多,曹樂松.基于ASP .net動(dòng)態(tài)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2007(01).
[5]王濤,陳曦,王偉勝.基于Web的新疆資源生態(tài)環(huán)境數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2004(23).
作者單位:南昌大學(xué) 科學(xué)技術(shù)學(xué)院,南昌 330029