- 相關(guān)推薦
簡(jiǎn)析網(wǎng)絡(luò)應(yīng)用系統(tǒng)通用框架的研究與設(shè)計(jì)
論文關(guān)鍵詞:通用框架;網(wǎng)絡(luò)應(yīng)用系統(tǒng);Struts;MVC
論文摘要:針對(duì)目前比較流行的網(wǎng)絡(luò)管理系統(tǒng),分析其具有的共性,同時(shí)利用Java和Struts技術(shù)開(kāi)發(fā)一個(gè)通用的網(wǎng)絡(luò)管理系統(tǒng)框架.通過(guò)此框架可以提高系統(tǒng)開(kāi)發(fā)的效率,縮短系統(tǒng)開(kāi)發(fā)周期.
結(jié)合當(dāng)前比較流行的網(wǎng)絡(luò)開(kāi)發(fā)技術(shù)Java和Struts,針對(duì)信息管理系統(tǒng)的共性,開(kāi)發(fā)了適用于多數(shù)信息管理系統(tǒng)的通用框架結(jié)構(gòu),使用此結(jié)構(gòu)進(jìn)行系統(tǒng)地開(kāi)發(fā)可以提高系統(tǒng)開(kāi)發(fā)的效率,降低開(kāi)發(fā)的成本,有利于系統(tǒng)的維護(hù).
1信息管理系統(tǒng)的共性
信息管理系統(tǒng)主要是針對(duì)數(shù)據(jù)進(jìn)行處理,盡管每個(gè)行業(yè)對(duì)于處理的信息有所不同,例如人員信息、產(chǎn)品信息、車(chē)輛信息等.但是對(duì)于這些信息管理系統(tǒng)來(lái)說(shuō),存在著很多的共性.例如,它們都使用關(guān)系型數(shù)據(jù)庫(kù)、XML或其他格式的數(shù)據(jù)文件來(lái)存儲(chǔ)這些信息;對(duì)這些信息都需要顯示、查詢(xún)、添加、修改、刪除等操作.如果能夠?qū)⑦@些操作封裝到一個(gè)共同的模塊中,無(wú)疑將會(huì)加快開(kāi)發(fā)的進(jìn)度,降低程序產(chǎn)生bug的數(shù)量,程序員就可以把大部分精力投放到具體業(yè)務(wù)的處理上面.
除了上面一些共同點(diǎn)外,一個(gè)成功的軟件產(chǎn)品,還需要良好的操作界面、統(tǒng)一的界面風(fēng)格,或者可定做的各種屬性.而這些也都完全可以封裝到一個(gè)模塊中,定義成屬性文件.根據(jù)客戶(hù)的不同喜好,只需要修改屬性文件,就產(chǎn)生了外觀完全不同的另一套軟件產(chǎn)品.
利用MVC良好的設(shè)計(jì)模式,使用Struts技術(shù),完全可以對(duì)上述的基本操作功能和操作界面進(jìn)行完全的封裝,開(kāi)發(fā)出適用于信息管理系統(tǒng)的通用框架.
2模型一視圖一控制器
模型一視圖一控制器模式簡(jiǎn)稱(chēng)MVC模式,即Mode—View—Control,是交互式應(yīng)用程序廣泛使用的一種體系結(jié)構(gòu).它可有效地存儲(chǔ)和展示數(shù)據(jù)的對(duì)象中區(qū)分功能模塊以降低它們之間的藕合度,這種架構(gòu)模式能將傳統(tǒng)的輸入、處理和輸出的模式轉(zhuǎn)化為圖形顯示用戶(hù)交互模式.MVC體系結(jié)構(gòu)具有3個(gè)層面,即模型(Model )、視圖(View)和控制(Controller) .
MVC架構(gòu)模式是針對(duì)交互式系統(tǒng),基于“分而治之”的思想,將系統(tǒng)分成不同的邏輯部件.換言之,這是對(duì)系統(tǒng)不同責(zé)任的劃分過(guò)程.這種架構(gòu)模式除了對(duì)系統(tǒng)本身帶來(lái)的優(yōu)點(diǎn)以外,對(duì)于項(xiàng)目管理也有很大的好處.它可以將開(kāi)發(fā)團(tuán)隊(duì)按照MVC分成小組,擅長(zhǎng)界面設(shè)計(jì)的人員開(kāi)發(fā)視圖組件,精通業(yè)務(wù)的開(kāi)發(fā)模型,對(duì)于整個(gè)系統(tǒng)都比較熟悉的可進(jìn)行控制器設(shè)計(jì).
3 Struts技術(shù)
Struts是一種基于MVC經(jīng)典設(shè)計(jì)模式的開(kāi)放源代碼的應(yīng)用框架,也是目前Web開(kāi)發(fā)中比較成熟的一種框架.通過(guò)把Servlet , JSP, JavaBean、自定義標(biāo)簽和信息資源整合到一個(gè)統(tǒng)一的框架中,為Web開(kāi)發(fā)提供了具有高可配置性的MVC開(kāi)發(fā)模式.
Struts體系結(jié)構(gòu)實(shí)現(xiàn)了MVC設(shè)計(jì)模式的概念,它將Model , View和Controlle:分別映射到Web應(yīng)用中的組件.Model由代表系統(tǒng)狀態(tài)和業(yè)務(wù)邏輯的Action來(lái)構(gòu)建.在Struts中,系統(tǒng)的狀態(tài)主要由ActiomFormBean體現(xiàn),對(duì)于業(yè)務(wù)邏輯通常由JavaBean或EJB組件來(lái)實(shí)現(xiàn).View是由JSP和Struts提供的自定義標(biāo)簽來(lái)實(shí)現(xiàn),Struts自身包含了一組可擴(kuò)展的自定義標(biāo)簽庫(kù)( Taglib),可以簡(jiǎn)化創(chuàng)建用戶(hù)界面的過(guò)程.Controlle:負(fù)責(zé)控制流程,由Action Servlet和Action Mapping來(lái)完成.Action Servlet類(lèi)是Struts框架中的核心組件,主要負(fù)責(zé)接收HTTP請(qǐng)求信息,并轉(zhuǎn)發(fā)給相應(yīng)的Action對(duì)象.Action類(lèi)負(fù)責(zé)調(diào)用模型的方法、更新模型的狀態(tài),并幫助控制應(yīng)用程序的流程.當(dāng)Action Servlet接收HTTP請(qǐng)求信息時(shí),把用戶(hù)請(qǐng)求轉(zhuǎn)發(fā)給哪個(gè)Action對(duì)象,這就需要一些描述用戶(hù)請(qǐng)求的路徑和Action映射關(guān)系的配置信息.在Struts中,這些配置映射信息都存儲(chǔ)在Struts-config. xml文件中,在該配置文件中,每一個(gè)Action的映射信息都通過(guò)一個(gè)(action )元素來(lái)配置.這些配置信息在系統(tǒng)啟動(dòng)時(shí)會(huì)被讀人內(nèi)存,供Struts在運(yùn)行期間使用.在內(nèi)存中,每一個(gè)(action)元素都對(duì)應(yīng)一個(gè)Action Mapping類(lèi)的實(shí)例.
4通用框架設(shè)計(jì)
首先從整體上對(duì)通用框架進(jìn)行設(shè)計(jì),圖1是所要設(shè)計(jì)通用框架的結(jié)構(gòu)圖.該框架在設(shè)計(jì)時(shí),考慮了當(dāng)前數(shù)據(jù)庫(kù)盡管主要是以關(guān)系型數(shù)據(jù)庫(kù)為主,但也加人了對(duì)XML等文件存儲(chǔ)格式的數(shù)據(jù)處理.下面對(duì)框架中的主要部分進(jìn)行說(shuō)明.
4.1 DAO/DPO
在該框架中采用了數(shù)據(jù)訪(fǎng)問(wèn)對(duì)象(Data Access Object,簡(jiǎn)稱(chēng)DAO)設(shè)計(jì)模式.DAO模式提供了訪(fǎng)問(wèn)關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)所需的所有操作接口,其中包括了創(chuàng)建數(shù)據(jù)庫(kù),定義表、字段和索引,建立表間的關(guān)系,更新和查詢(xún)數(shù)據(jù)庫(kù)和執(zhí)行存儲(chǔ)過(guò)程等.
DAO模式將底層數(shù)據(jù)訪(fǎng)問(wèn)操作與高層業(yè)務(wù)邏輯分離開(kāi),對(duì)上層提供面向?qū)ο蟮臄?shù)據(jù)訪(fǎng)問(wèn)接口另外,該通用框架還提供了數(shù)據(jù)解析對(duì)象(DPO)設(shè)計(jì)模式. 同DAO類(lèi)似,它主要是提供了對(duì)XML或其他文件格式的數(shù)據(jù)進(jìn)行操作的所有接口.
同時(shí)在該框架中,還對(duì)應(yīng)2種設(shè)計(jì)模式提供了2個(gè)類(lèi),即Data Access Object和Data Parse Object.對(duì)于Data Access Object,還提供了數(shù)據(jù)庫(kù)連接池,通過(guò)配置文件,可以設(shè)置是否使用連接池,同時(shí)還可以使用應(yīng)用服務(wù)器提供的連接池.由于當(dāng)前數(shù)據(jù)庫(kù)種類(lèi)繁多,通過(guò)配置文件可以設(shè)置使用不同的數(shù)據(jù)庫(kù),例如Oracle ,SQL Server , My SQL等.
通過(guò)對(duì)數(shù)據(jù)操作的封裝,使通用框架具有了通用性.它把具體的業(yè)務(wù)對(duì)象和數(shù)據(jù)庫(kù)操作完全分離,不僅可以使程序員更專(zhuān)注于具體業(yè)務(wù)的處理,而且程序也易于維護(hù)和調(diào)試.
由于目前大多數(shù)信息管理系統(tǒng)都采用關(guān)系數(shù)據(jù)庫(kù),因此也有很多的DAO組件,例如Hibernate, Cas-for . Free Form等,在通用框架中也可以采用這些成熟的DAO組件.
4.2業(yè)務(wù)對(duì)象(BO)
業(yè)務(wù)對(duì)象,即Business Object,是對(duì)真實(shí)世界實(shí)體的軟件抽象,它包含數(shù)據(jù)和行為.它們對(duì)應(yīng)著數(shù)據(jù)庫(kù)中的一條或多條記錄,盡管不同業(yè)務(wù)之間的差距非常大,但是它們都共享一些公共的屬性,例如版本號(hào)、描述、操作者、操作時(shí)間、表名、列數(shù)等.因此,為了避免每個(gè)業(yè)務(wù)對(duì)象都重復(fù)定義這些公共屬性,需定義一個(gè)抽象父類(lèi)來(lái)存放這些公共屬性,如果需要還可以在這個(gè)類(lèi)中定義公共的業(yè)務(wù)邏輯,如分頁(yè)等.
該框架定義了一個(gè)抽象父類(lèi),即BaseBusines-sObject.它包含了業(yè)務(wù)對(duì)象所用到的公共屬性,所有的業(yè)務(wù)對(duì)象都必須繼承該父類(lèi).由于幾乎每個(gè)業(yè)務(wù)對(duì)象都需要分頁(yè)顯示,因此,在父類(lèi)中還添加了分頁(yè)顯示的功能.在具體的項(xiàng)目中如果還有其他的公共屬性,程序員還可以對(duì)該類(lèi)進(jìn)行擴(kuò)充.
4.3界面封裝設(shè)計(jì)
BiS結(jié)構(gòu)的操作界面基本是Html/JSP/Servlet ,其中JSP是最常用且是最多的.對(duì)于JSP的各種標(biāo)簽,如按鈕、文本框、下拉框等,為了保持它們的界面風(fēng)格統(tǒng)一,可以采用自定義標(biāo)簽,定義屬性文件,也可以采用Struts提供的一些標(biāo)簽.
在該框架中,除了對(duì)界面風(fēng)格提供了屬性配置文件外,為了最大限度地減少JSP頁(yè)面中的Java代碼,還對(duì)JSP的操作進(jìn)行了封裝.現(xiàn)以員工基本信息為例進(jìn)行說(shuō)明.建立一個(gè)員工信息頁(yè)面一personlist. jsp,該網(wǎng)頁(yè)包含3個(gè)通用網(wǎng)頁(yè),即common. jsp, list _ tool _ top. jsp和list _ data. jsp, common, jsp頁(yè)面中導(dǎo)人了常用類(lèi)、Struts標(biāo)簽、自定義標(biāo)簽、頁(yè)面CSS樣式文件、Javascript函數(shù)文件和共同變量等;list _ tool _ top. jsp中包含了查詢(xún)、刪除、保存、修改、排序等通用操作的邏輯處理,界面操作按鈕、分頁(yè)和操作類(lèi)型的標(biāo)簽;,listdata.jsp文件主要用于數(shù)據(jù)顯示的功能.
personlist. jsp除了包含上述3個(gè)文件外,還需要定義本功能模塊action的target.因此,personlist. jsp作為一個(gè)完整功能模塊的數(shù)據(jù)操作界面,需要編寫(xiě)的代碼行數(shù)僅有10行左右.
另外,通過(guò)在Javascript函數(shù)對(duì)list-tool-top. jsp文件中操作類(lèi)型的設(shè)置,可以把數(shù)據(jù)錄人、修改和查看3個(gè)功能在同一個(gè)界面中實(shí)現(xiàn).這樣1個(gè)功能模塊的操作界面僅需要2個(gè)界面就完全實(shí)現(xiàn)了.
5結(jié)束語(yǔ)
該通用框架是利用MVC和Struts,抽取了當(dāng)前信息管理系統(tǒng)的共同性進(jìn)行設(shè)計(jì)并實(shí)現(xiàn)的,并且在遼寧盤(pán)錦瀝青有限公司信息管理系統(tǒng)的設(shè)計(jì)和開(kāi)發(fā)中得到了驗(yàn)證.實(shí)踐證明,利用這樣的應(yīng)用框架不但能提高開(kāi)發(fā)效率,還能夠?qū)崿F(xiàn)框架和代碼的重用,且有利于系統(tǒng)維護(hù).
【簡(jiǎn)析網(wǎng)絡(luò)應(yīng)用系統(tǒng)通用框架的研究與設(shè)計(jì)】相關(guān)文章:
網(wǎng)絡(luò)應(yīng)用系統(tǒng)通用框架的研究與設(shè)計(jì)12-11
簡(jiǎn)析有線(xiàn)電視的網(wǎng)絡(luò)應(yīng)用價(jià)值03-25
景區(qū)防盜報(bào)警系統(tǒng)簡(jiǎn)析03-15
論析網(wǎng)絡(luò)應(yīng)用流分析與風(fēng)險(xiǎn)評(píng)估系統(tǒng)03-26
簡(jiǎn)析哲學(xué)研究的一個(gè)新領(lǐng)域12-10
簡(jiǎn)析媒體藝術(shù)中的色彩設(shè)計(jì)論文12-03
簡(jiǎn)析衛(wèi)生籌資公平性分析方法研究03-01