【文章內(nèi)容簡介】
”、“會員卡充值”、“教練查詢”、“項(xiàng)目查詢”、“器械查詢”和“健身論壇”等頁面。具體頁面如圖25所示:圖25 會員操作界面3. 體系結(jié)構(gòu)系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)遵循如下原則。1)系統(tǒng)應(yīng)具有良好的適應(yīng)性:能適應(yīng)用戶對系統(tǒng)的軟件環(huán)境、管理內(nèi)容、模式和界面的要求;2)系統(tǒng)應(yīng)具有可靠性:采用成熟的技術(shù)方法和軟件開發(fā)平臺,以保證系統(tǒng)在以后的實(shí)際應(yīng)用中安全、可靠;3)系統(tǒng)應(yīng)具有較好的安全性:應(yīng)提高安全機(jī)制和用戶權(quán)限限制機(jī)制的完善程度,確保數(shù)據(jù)的受限訪問;4)系統(tǒng)應(yīng)具有良好的可維護(hù)性:系統(tǒng)應(yīng)易于維護(hù)、安裝;5)系統(tǒng)應(yīng)具有良好的可擴(kuò)展性:系統(tǒng)應(yīng)適應(yīng)未來信息化建設(shè)的要求,能方便地進(jìn)行功能擴(kuò)展,以建立完善的信息集成管理體系。本系統(tǒng)采用體系結(jié)構(gòu),struct是一個(gè)基于模型(Model)一視圖(View)一控制器(Controller),即MVC模式的應(yīng)用架構(gòu)的開源框架。 體系結(jié)構(gòu)目前軟件項(xiàng)目中有很多體系結(jié)構(gòu),其中struct是比較流行的一種。 struct體系結(jié)構(gòu)對于開發(fā)Web應(yīng)用,要從頭設(shè)計(jì)并開發(fā)出一個(gè)可靠、穩(wěn)定的框架不是一件容易的事情。隨著Web開發(fā)技術(shù)的日趨成熟,在Web開發(fā)領(lǐng)域出現(xiàn)了一些現(xiàn)成的優(yōu)秀的框架、開發(fā)者可以直接使用它們,struct就是一個(gè)很好的框架結(jié)構(gòu),它是在JSP Model2基礎(chǔ)上實(shí)現(xiàn)的一個(gè)MVC框架,在struct框架在模型由實(shí)現(xiàn)業(yè)務(wù)邏輯的JavaBean或者EJB組件構(gòu)成,控制器由ActionServlet和Action來實(shí)現(xiàn),視圖由一組JSP文件組成,圖26顯示了Struct實(shí)現(xiàn)的MVC框架。其中:視圖,就是一組JSP文件,這些JSP文件沒有業(yè)務(wù)邏輯,也沒有模型信息,只有標(biāo)簽,這些標(biāo)簽可以是標(biāo)準(zhǔn)的JSP標(biāo)簽或者是客戶化標(biāo)簽,如struct標(biāo)簽庫的標(biāo)簽。此外,通常將struct框架中的ActionForm Bean也劃為視圖模塊,ActionForm Bean是一種JavaBean,除了具有一些JavaBean的常規(guī)方法外,還包含了一些特殊的方法,用于驗(yàn)證HTML表單數(shù)據(jù)以及將其屬性重新設(shè)置為默認(rèn)值。Struct框架利用ActionForm Bean來進(jìn)行視圖和控制器之間表單數(shù)據(jù)的傳遞。Strcut框架將用戶輸入的表單數(shù)據(jù)保存在ActionForm Bean中,將它傳遞給控制器,控制器可以對ActionForm Bean中的數(shù)據(jù)進(jìn)行修改,JSP文件使用struct標(biāo)簽讀取修改后的ActionForm Bean的信息,然后重新設(shè)置HTML表單??刂破鰽ctionServlet視圖JSP模型JavaBeanEJBActionActionAction瀏覽器Web服務(wù)器圖26 struct實(shí)現(xiàn)的MVC框架控制器,控制器由ActionServlet類和Action類實(shí)現(xiàn),ActionServlet類是struct框架中的核心組件,是這個(gè)MVC的中央控制器的角色。ActionServlet主要負(fù)責(zé)接收HTTP請求的信息,將請求轉(zhuǎn)發(fā)給適當(dāng)?shù)腁ction對象,如果該Action對象不存在,更新模型的狀態(tài),并幫助控制應(yīng)用程序的流程,對于小型簡單的應(yīng)用,Action類本身也可以完成一些實(shí)際的業(yè)務(wù)邏輯。模型,模型表示應(yīng)用程序的狀態(tài)和業(yè)務(wù)邏輯,業(yè)務(wù)邏輯常常由JavaBean或者EJB組件實(shí)現(xiàn)。如果在Web應(yīng)用開發(fā)中套用現(xiàn)成的struct框架,就可以簡化每個(gè)開發(fā)階段的工作,開發(fā)人員可以更加有針對性地分析應(yīng)用需求,不必重新設(shè)計(jì)框架,只需在struct框架的基礎(chǔ)上,設(shè)計(jì)MVC各個(gè)模塊包含的具體組件,在編碼過程中,可以充分利用struct提供的各種實(shí)用類和標(biāo)簽庫,簡化編碼工作。Struct框架可以方便迅速地將一個(gè)復(fù)雜的應(yīng)用劃分成模型、視圖和控制器組件,以簡化開發(fā)過程。 系統(tǒng)體系結(jié)構(gòu)根據(jù)系統(tǒng)分析結(jié)果,該系統(tǒng)從結(jié)構(gòu)上應(yīng)滿足:基于游覽器進(jìn)行顯示以方便用戶使用;采用MVC的三層體系結(jié)構(gòu),分化各個(gè)功能組件;采用JDBC技術(shù)與數(shù)據(jù)庫通信以便于數(shù)據(jù)庫的轉(zhuǎn)換;采用標(biāo)簽技術(shù)完成動態(tài)頁面的簡單邏輯。本系統(tǒng)的體系結(jié)構(gòu)如圖27所示,它基本遵循了struct體系的MVC框架規(guī)范。視圖(V)層:用戶界面(瀏覽器)HTML,CSS,DHTML,JavaScript,XML視圖(V)層:服務(wù)器端腳本Connects UI to Business Objects, Java Server Pages,Java Servlets控制(C)層:分布式組件JavaBean模型(M):數(shù)據(jù)源和持久對象存儲ODBC, JDBC, OLEDB, ADO, XML, LDAP圖27 系統(tǒng)的體系結(jié)構(gòu)其中:表示層,用于與用戶進(jìn)行交互并顯示結(jié)果。包括所有的JSP,提供用戶界面,接受用戶輸入,還包括相應(yīng)的ActionFrom Bean,用來存放表單數(shù)據(jù),并進(jìn)行表單數(shù)據(jù)驗(yàn)證;控制層,包括所有的Action類,它完成三項(xiàng)任務(wù),一是進(jìn)行業(yè)務(wù)邏輯驗(yàn)證,二是調(diào)用模型組件,三是決定將合適的視圖組件返回給用戶;模型,包括進(jìn)行邏輯處理的JavaBean等,數(shù)據(jù)庫采用ODBC技術(shù)以提供數(shù)據(jù)庫的可移植性。體系結(jié)構(gòu)的具體拓?fù)鋱D示如圖28所示。圖28體系結(jié)構(gòu)拓?fù)鋱D1)客戶層:用于與企業(yè)信息系統(tǒng)的用戶進(jìn)行交互以及顯示根據(jù)特定業(yè)務(wù)規(guī)則進(jìn)行計(jì)算后的結(jié)果。本系統(tǒng)將完全采用基于Web的(B/S架構(gòu))客戶端,即用戶可以直接通過瀏覽器來訪問和使用本系統(tǒng)。2)中間層:這相當(dāng)于三層標(biāo)準(zhǔn)架構(gòu)中的Web應(yīng)用服務(wù)層,支持諸如響應(yīng)客戶請求以及查詢等功能。并且由中間層進(jìn)行邏輯處理,再將處理的結(jié)果反饋給客戶或者發(fā)送到數(shù)據(jù)庫中。3)服務(wù)層:主要是數(shù)據(jù)庫系統(tǒng),這里的數(shù)據(jù)庫系統(tǒng)主要是關(guān)系數(shù)據(jù)庫系統(tǒng)(RDMS)。 系統(tǒng)進(jìn)行環(huán)境 下面講述系統(tǒng)運(yùn)行的網(wǎng)絡(luò)結(jié)構(gòu),硬件、軟件環(huán)境。 網(wǎng)絡(luò)結(jié)構(gòu)圖本系統(tǒng)的網(wǎng)絡(luò)拓?fù)鋱D如圖29所示。圖29 網(wǎng)絡(luò)拓?fù)鋱D其中的局域網(wǎng)用戶機(jī)主要是俱樂部內(nèi)部的人員可以使用的機(jī)器,運(yùn)程用戶機(jī)主要是指通過互聯(lián)網(wǎng)登錄系統(tǒng)的人員使用的機(jī)器,可以是俱樂部管理者,也可以是會員。 硬件環(huán)境本系統(tǒng)的硬件環(huán)境如下。1)客戶機(jī):普通PCCPU:內(nèi)存:256MB以上分辨率:推薦使用1024768像素2)Web服務(wù)器CPU:內(nèi)存:1GB以上硬盤:80GB以上網(wǎng)卡:KMb/s速度網(wǎng)卡3)數(shù)據(jù)庫服務(wù)器CPU:內(nèi)存:1GB以上硬盤:80GB以上 軟件環(huán)境本系統(tǒng)的軟件環(huán)境如下:操作系統(tǒng):UNIX/Linux/Windows2000或以上版本數(shù)據(jù)庫:SQL Server 2000開發(fā)工具包:JDK(Java集成開發(fā)工具包)開發(fā)環(huán)境:eclipseSDKWeb服務(wù)器:Tomcat瀏覽器:1) 數(shù)據(jù)庫及操作系統(tǒng):對于核心數(shù)據(jù)庫來說,選擇一個(gè)合適的數(shù)據(jù)庫系統(tǒng)對我們的系統(tǒng)運(yùn)行是很重要的,選擇數(shù)據(jù)庫的關(guān)鍵因素是要考慮預(yù)計(jì)會有多少人同時(shí)訪問數(shù)據(jù)庫;正常工作時(shí)間的級別;用來訪問數(shù)據(jù)庫的應(yīng)用程序的類型;運(yùn)行數(shù)據(jù)庫的服務(wù)器的硬件和操作系統(tǒng)類型以及管理人員的專業(yè)技術(shù)水平。目前市場上適用于中小型企業(yè)的數(shù)據(jù)庫產(chǎn)品有IBM DBMicrosoft SQL Server系列,Oracle系列。所有這些產(chǎn)品都基于SQL語言。同時(shí),它們還擁有精度復(fù)雜的安全控制以適應(yīng)不同的商業(yè)需要。服務(wù)器操作系統(tǒng)使用Windows2000 Server考慮到價(jià)格因素、易用性,我們使用SQL Server2000作為系統(tǒng)后臺數(shù)據(jù)庫系統(tǒng),服務(wù)器操作系統(tǒng)采用Windows2000 Server。2)Web服務(wù)軟件:目前的Web服務(wù)器軟件有很多種,成熟而且穩(wěn)定的有Apache、Tomcat和Microsoft的IIS,它們占據(jù)著Web服務(wù)器市場最大的份額。Tomcat是Sun和Apache合作推出的JSP Server。而且Tomcat未來將會取代Jserv,成為Apache主要的Servletamp。JSP Engine。Tomcat在設(shè)計(jì)上是以獨(dú)立的Server執(zhí)行,而不像Jserv是附在Apche中,這樣就更可以在servlet中,發(fā)揮非HttpServlet的能力。Tomcat是Java程序,所以只要有JDK就可以使用,不需要考慮操作系統(tǒng)平臺。因此這里選擇Tomcat作為Web服務(wù)器。4. 數(shù)據(jù)模型本系統(tǒng)的數(shù)據(jù)模型設(shè)計(jì)內(nèi)容主要是進(jìn)行數(shù)據(jù)庫的設(shè)計(jì)。 數(shù)據(jù)庫的概念結(jié)構(gòu)模型設(shè)計(jì)概念設(shè)計(jì)用來反映現(xiàn)實(shí)世界中的實(shí)體、屬性和它們之間的關(guān)系等的原始數(shù)據(jù)形式,建立數(shù)據(jù)庫的每一幅用戶視圖。圖210是系統(tǒng)ER圖。系統(tǒng)管理員管理會員信息器械信息活動信息教練信息項(xiàng)目信息員工信息指導(dǎo)教練會員管理發(fā)帖論壇回帖管理修改MMN N N N N N N N N N N M M N N M N N M M N M N 圖210 系統(tǒng)實(shí)體聯(lián)系圖 數(shù)據(jù)庫的邏輯結(jié)構(gòu)模型設(shè)計(jì)數(shù)據(jù)庫的邏輯設(shè)計(jì)是將各局部的ER圖進(jìn)行分解、合并后重新組織起來形成數(shù)據(jù)庫全局邏輯結(jié)構(gòu),包括所確定的關(guān)鍵字和屬性、重新確定的記錄結(jié)構(gòu)、所建立的各個(gè)數(shù)據(jù)之間的相互關(guān)系。根據(jù)本系統(tǒng)需求分析,系統(tǒng)的數(shù)據(jù)庫包括了會員管理、教練管理、項(xiàng)目管理、器械管理、活動管理、論壇管理、員工管理、系統(tǒng)管理以及需要的基本數(shù)據(jù)字典等部分。會員管理包括的庫表:memberInfo——會員信息表,包含會員的所有信息;cardInfo——會員卡信息表,包含會員卡的所有信息;cardExpense——會員卡消費(fèi)表,包含會員卡消費(fèi)的所有信息;memberExpense——會費(fèi)信息表,完成對會員投票的控制。教練管理包括的庫表:coachInfo——教練信息表,包含教練的所有信息;coachArtical——教練信息發(fā)布表,包含教練發(fā)布的所有信息。項(xiàng)目管理包括的庫表:itemInfo——項(xiàng)目信息表,包含管理員的所有信息。論壇管理包括的庫表:topic——發(fā)帖表,包含網(wǎng)站公告的所有信息;reply——回帖表,包含管理員的所有信息;bbsnews——公告表,包含網(wǎng)站公告的所有信息。系統(tǒng)管理包括的庫表:manager——管理員表,對應(yīng)作品的章節(jié)以及內(nèi)容;表21是對表memberInfo的設(shè)計(jì),其他庫表的詳細(xì)設(shè)計(jì)見數(shù)據(jù)表設(shè)計(jì)文件。表21 memberInfo(會員信息列表)表字段名稱數(shù)據(jù)類型字段大小說明UserID字符型10會員編號,代碼干預(yù)UserName字符型10用戶名Password字符型50登陸密碼Password2字符型50驗(yàn)證密碼Name文本型50會員姓名Sex字符型10會員性別Age整型4年齡Birth日期/時(shí)間型8生日Shenfenzheng字符型50身份證號Phone字符型50會員的聯(lián)系電話Email字符型50會員的電子郵件YiXiang1字符型50會員的健身意向1YiXiang2字符型50會員的健身意向2 數(shù)據(jù)庫物理結(jié)構(gòu)模型設(shè)計(jì)信息存儲結(jié)構(gòu)的設(shè)計(jì)在系統(tǒng)的設(shè)計(jì)中至關(guān)重要,要考慮到數(shù)據(jù)冗余、系統(tǒng)執(zhí)行效率、信息控制以及維護(hù)等方面的要求。信息的管理離不開數(shù)據(jù)庫的支持,我們采用SQL Server 2000數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫的物理設(shè)計(jì)主要是對數(shù)據(jù)在內(nèi)存中的安排,包括對索引區(qū)、緩沖區(qū)的設(shè)計(jì),對使用的外存設(shè)備及外存空間的組織,包括索引區(qū)、數(shù)據(jù)塊的組織與劃分,設(shè)置訪問數(shù)據(jù)的方式方法。需在非系統(tǒng)卷(操作系統(tǒng)所在卷以外的其他卷)上安裝SQL Server程序及數(shù)據(jù)庫文件。內(nèi)存是影響Microsoft SQL Server系統(tǒng)性能的一個(gè)重要因素,應(yīng)在Microsoft SQL Server數(shù)據(jù)庫安裝后進(jìn)行內(nèi)存選項(xiàng)(Memory)設(shè)置,最大配置值為2GB。為了確定SQL Server系統(tǒng)最適宜的內(nèi)存需求,可以從總的物理內(nèi)存中減去 Windows 2000 Server需要的內(nèi)存(12MB)以及其他一些內(nèi)存需求后綜合確定,理想的情況是給SQL Server分配盡可能多的內(nèi)存,而不產(chǎn)生頁面調(diào)度。設(shè)置服務(wù)器的虛擬內(nèi)存為1GB。通過JdbcOdbcDriver與數(shù)據(jù)庫連接1)首先創(chuàng)建Connection對象。()。=(jdbc:odbc:na)。 2)使用記錄集后關(guān)閉并釋放資源。()。()。()。數(shù)據(jù)庫各庫表的腳本代碼見數(shù)據(jù)庫腳本文件。5. 模塊設(shè)計(jì)按照功能分解,本系統(tǒng)分為客戶端管理系統(tǒng)和管理端管理系統(tǒng)。根據(jù)頁面流的設(shè)計(jì),管理端系統(tǒng)又分為會員管理、教練管理、論壇管理、系統(tǒng)管理、項(xiàng)目管理、器械管理、健身活動管理、員工管理8個(gè)模塊。如圖211所示。圖211 模塊設(shè)計(jì)針對不同用戶,提供了兩類功能登錄接口:即會員登錄接口和健身俱樂部管理人員登錄接口,這些接口都以Web頁面的形式提供。通過各自的頁面,會員和俱樂部管理人員可以從事各自的活動。以下將分小節(jié)介紹各個(gè)部分的設(shè)計(jì)。 客戶端模塊設(shè)計(jì)客戶端運(yùn)行在公用網(wǎng)上,客戶端主要為會員提供服務(wù)。用戶可以填寫自己的基本信息,包括:真實(shí)姓名、年齡、性別、用戶名、密碼、生日、身份