廣告:
MVC系統(tǒng)架構(gòu)設(shè)計(jì)說明書
版本號:VO. 1
2010年10月 53bk.com
1.目的
本說明書的編寫目的是描述MVC行業(yè)網(wǎng)站的MVC架構(gòu)設(shè)計(jì)方案,包括網(wǎng)站的總體架構(gòu)設(shè)計(jì)用使用的框架說明,以及基于該架構(gòu)的開發(fā)流程,并作為指導(dǎo)開發(fā)人員、測試人員進(jìn)行系統(tǒng)開發(fā)及測試的依據(jù)。
2.系統(tǒng)架構(gòu)設(shè)計(jì)
整個(gè)軟件架構(gòu)方案采用分層、分布式的部署結(jié)構(gòu),明確地分離了表現(xiàn)層和業(yè)務(wù)邏輯,能夠保證應(yīng)用服務(wù)邏輯的一致性和穩(wěn)定性、結(jié)構(gòu)的開放性、功能的可擴(kuò)展性和可維護(hù)性、開發(fā)的可并行性,同時(shí)采用一些開源的框架,兼顧了經(jīng)濟(jì)性?蚣苁且环N特殊的軟件,它為軟件開發(fā)帶來了高度的重用性,是無數(shù)軟件開發(fā)人員的多年項(xiàng)目開發(fā)經(jīng)驗(yàn)的總結(jié)。在一個(gè)優(yōu)秀的框架上開發(fā)應(yīng)用,而不是從零開始,可以大量縮短項(xiàng)目的開發(fā)周期、降低開發(fā)風(fēng)險(xiǎn)、增強(qiáng)應(yīng)用程序的穩(wěn)定性。
3.網(wǎng)站整體硬件布局圖:
總后臺(admin) 城市代理后臺(cityadmin) 會員通行證—會員后臺(member) 家具網(wǎng)總站 家具網(wǎng)城市分站 |
網(wǎng)站1:家具行業(yè)網(wǎng)
網(wǎng)站2:五金行業(yè)網(wǎng)
網(wǎng)站3:服裝行業(yè)網(wǎng)
|
共享行業(yè)數(shù)據(jù)庫
城市代理后臺 五金行業(yè)網(wǎng)總站 五金行業(yè)網(wǎng)城市分站 |
服裝網(wǎng)城市代理后臺 服裝網(wǎng)總站 服裝網(wǎng)城市分站 |
(同一數(shù)據(jù)庫)
說明:
4.系統(tǒng)架構(gòu)設(shè)計(jì)圖
用戶:Web瀏覽器 |
表示層:MVC框架 |
業(yè)務(wù)層:Business |
數(shù)據(jù)訪問層:DB |
|
數(shù)據(jù)庫:SQL Server |
操作系統(tǒng):windows server |
Common層:
cookie函數(shù) 圖片處理 公共函數(shù) |
Model類: ( 部分表需要寫實(shí)體類 ) |
JDBC |
架構(gòu)圖如上圖所示,共分六大層,其中MVC層又獨(dú)立分出Controller層和View層,系統(tǒng)采用B/S架構(gòu)模式。
為什么采用這樣六層架構(gòu)?
l 各層相互獨(dú)立,做到數(shù)據(jù)安全,訪問數(shù)據(jù)庫需要經(jīng)過中間層轉(zhuǎn)換;
l 層與層之間松散耦合,增加代碼重用率;
l 各層分工明確,這樣等于團(tuán)隊(duì)的明確分工;
l 系統(tǒng)采用MVC框架,這是一種為大系統(tǒng)、團(tuán)隊(duì)合作而設(shè)計(jì)的框架,利于網(wǎng)站將來擴(kuò)展與維護(hù)。
網(wǎng)站目錄結(jié)構(gòu)表:
/admin |
后臺目錄 |
|
/Cityadmin |
代理商(城市代理后臺目錄) |
|
/Views(前臺) |
前臺用戶管理/member |
|
網(wǎng)站內(nèi)容顯示頁 |
首頁/main |
|
產(chǎn)品頻道/product |
||
公司頻道/company |
||
商機(jī)頻道/business |
||
資訊頻道/news |
||
市場頻道/market |
||
/Contemt(圖片內(nèi)容) |
/Images(圖片) |
|
/Css(網(wǎng)站樣式) |
|
|
/Scripts(網(wǎng)站腳本) |
|
Web前臺總體功能設(shè)計(jì):
1. MVC框架
MVC是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。
MVC (Modal View Controller),M是指數(shù)據(jù)模型,V是指用戶界面,C則是控制器。
視圖:是用戶看到并與之交互的界面。
模型:表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。
控制器:接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請求,然后用確定用哪個(gè)視圖來顯示模型處理返回的數(shù)據(jù)。
MVC設(shè)計(jì)模式是一個(gè)很好創(chuàng)建軟件的途徑,它所提倡的一些原則,像內(nèi)容和顯示互相分離可能比較好理解。但是如果你要隔離模型、視圖和控制器的構(gòu)件,你可能需要重新思考你的應(yīng)用程序,尤其是應(yīng)用程序的構(gòu)架方面。如果你肯接受MVC,并且有能力應(yīng)付它所帶來的額外的工作和復(fù)雜性,MVC將會使你的軟件在健壯性,代碼重用和結(jié)構(gòu)方面上一個(gè)新的臺階。
2.Jquery框架(JS框架)
3.緩存機(jī)制
4.多圖片上傳
5.城市代理,每個(gè)城市用二級域名實(shí)現(xiàn)分站
6.同一行業(yè)網(wǎng)下不同分類對應(yīng)不同產(chǎn)品屬性
7.防死鎖機(jī)制
在數(shù)據(jù)庫系統(tǒng)中,產(chǎn)生死鎖的原因是兩個(gè)或多個(gè)事務(wù)都已封鎖了一些數(shù)據(jù)對象,然后又都請求對已為其他事務(wù)封鎖的數(shù)據(jù)對象加鎖,從而出現(xiàn)死鎖等待。防止死鎖的發(fā)生其實(shí)就是要破壞產(chǎn)生死鎖的條件。預(yù)防死鎖通常有兩種方法:一次封鎖法,一次封鎖法要求每個(gè)事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行。一次封鎖法雖然可以有效地防止死鎖的發(fā)生,但由于擴(kuò)大了加鎖的范圍,降低了系統(tǒng)的并發(fā)度;順序封鎖法,順序封鎖法是預(yù)先對數(shù)據(jù)對象規(guī)定一個(gè)封鎖順序,所有事務(wù)都按這個(gè)順序執(zhí)行封鎖。
在本系統(tǒng)中將定義一個(gè)數(shù)據(jù)庫的訪問順序,并要求所有的事務(wù)都按照這個(gè)順序訪問操作數(shù)據(jù)庫。
8.表單驗(yàn)證
對Web應(yīng)用來說,由于用戶的行為是無法預(yù)測的,在表單數(shù)據(jù)在傳遞給業(yè)務(wù)類之前,必須保證數(shù)據(jù)的合法性及有效性,而表單驗(yàn)證是保證數(shù)據(jù)合法性及有效性的重要手段。對于基于MVC框架的表單驗(yàn)證一般有兩種方式:基于JavaScript的表單驗(yàn)證(前端驗(yàn)證)及基于MVC的表單驗(yàn)證(后端驗(yàn)證)。
前端驗(yàn)證:
可以針對基本類型(漢字、英文、整型、數(shù)字、日期、郵編)的有效性及合法性開發(fā)出一些共同JavaScript函數(shù),以備整個(gè)系統(tǒng)統(tǒng)一調(diào)用。
后端驗(yàn)證:
主要采用基于WEBFORM的表單驗(yàn)證,通過ActionForm的validate函數(shù)進(jìn)行驗(yàn)證。
由于前端難不需要提交服務(wù)器,直接在客戶端完成,從而減少了服務(wù)器的壓力,所以我們優(yōu)先采用前端驗(yàn)證。
8.. 共同組件
一. 分頁組件 二. FeiShare類庫 三. 圖像處理類 四. 鏈接函數(shù)
廣告: