李紅娟,溫 喆
LI Hong-juan,WEN Zhe
(石家莊學(xué)院,石家莊 050035)
Web2.0技術(shù)是以Blog、RSS、Tag、P2P、wiki等應(yīng)用為核心,根據(jù)Ajax、XML等新技術(shù)及新理論而實(shí)現(xiàn)的新的Internet應(yīng)用模式。其之所以能夠快速地發(fā)展,主要是由于其采用了全新的Ajax(Asynchronous JavaScript and XML)技術(shù)。與傳統(tǒng)的Web技術(shù)相比,Ajax技術(shù)克服了B/S(Browse/Server)模式的瓶頸帶寬問(wèn)題,可以使用戶(hù)像使用桌面軟件一樣方便、快捷地進(jìn)行瀏覽,并且不用安裝特別的控件與插件等東西;完善了和服務(wù)器通信的方式,采用異步方式實(shí)施和服務(wù)器通信,能夠不通過(guò)刷新方式頁(yè)面就能和服務(wù)器實(shí)施數(shù)據(jù)的交換,極大地提高了交互性能;采用了動(dòng)態(tài)頁(yè)面的開(kāi)發(fā)方式,提高了Web頁(yè)面的顯示效果。
因此,本文充分利用了J2EE平臺(tái)的豐富功能及Ajax的性能優(yōu)勢(shì),構(gòu)建了一種新的基于Web2.0模式的應(yīng)用架構(gòu),該架構(gòu)和未來(lái)的Web技術(shù)的發(fā)展趨勢(shì)相一致,具有較強(qiáng)的實(shí)踐與參考意義。本文對(duì)Ajax技術(shù)原理及Ajax框架進(jìn)行了探討,對(duì)于基于J2EE平臺(tái)與Ajax技術(shù)實(shí)施Web2.0模式開(kāi)發(fā)的架構(gòu),本文給出了詳細(xì)的設(shè)計(jì)方法,通過(guò)整合和改進(jìn)Ajax框架的方法,開(kāi)展了客戶(hù)關(guān)系管理系統(tǒng)架構(gòu)開(kāi)發(fā)工作。
MVC設(shè)計(jì)模型原理如圖1所示。
圖1 MVC設(shè)計(jì)模型原理圖
視圖(View)表示與用戶(hù)的交互界面,針對(duì)Web應(yīng)用而言,能夠概括成HTML界面。模型(Model)為對(duì)業(yè)務(wù)狀態(tài)/流程的處理,對(duì)業(yè)務(wù)規(guī)則的制定??刂?Controller)能夠認(rèn)為是自用戶(hù)處接收請(qǐng)求,把模型和視圖進(jìn)行匹配,然后一同完成用戶(hù)的請(qǐng)求。
本文通過(guò)一個(gè)客戶(hù)關(guān)系管理系統(tǒng)的設(shè)計(jì),來(lái)對(duì)采用Ajax和J2EE的構(gòu)建Web應(yīng)用架構(gòu)進(jìn)行方法的闡述??蛻?hù)關(guān)系管理系統(tǒng)是為企業(yè)提供統(tǒng)一協(xié)調(diào)與部署企業(yè)的業(yè)務(wù)查詢(xún)、銷(xiāo)售活動(dòng)、業(yè)績(jī)考核等設(shè)計(jì)的管理系統(tǒng)。針對(duì)系統(tǒng)的不同用戶(hù)角色類(lèi)型,進(jìn)行了以下幾個(gè)主功能模塊的設(shè)計(jì),即:客戶(hù)模塊、系統(tǒng)管理模塊、聯(lián)系人模塊、報(bào)表模塊、聯(lián)系記錄模塊、知識(shí)庫(kù)模塊以及目標(biāo)管理模塊。為了保護(hù)系統(tǒng)的安全,還設(shè)計(jì)了用戶(hù)登錄模塊,能夠?qū)Σ煌挠脩?hù)實(shí)施權(quán)限的管理功,并采用MD5加密算法進(jìn)行密碼的嚴(yán)重,增強(qiáng)系統(tǒng)的安全性。各功能模塊需求設(shè)計(jì)如下:
客戶(hù)模塊:實(shí)施客戶(hù)與銷(xiāo)售對(duì)應(yīng)的查詢(xún)、新增及更改等關(guān)系,更改客戶(hù)與組相對(duì)應(yīng)的關(guān)系,并對(duì)客戶(hù)基本資料進(jìn)行必要的修改。
系統(tǒng)管理模塊:新建用戶(hù)組或功能組,把用戶(hù)添加至該組中,并給用戶(hù)賦予新的角色,設(shè)置用戶(hù)不同的權(quán)限。
聯(lián)系人模塊:新增聯(lián)系人,查詢(xún)聯(lián)系人,更改聯(lián)系人信息。
報(bào)表模塊:形成企業(yè)的銷(xiāo)售活動(dòng)報(bào)表。
聯(lián)系記錄模塊:實(shí)施對(duì)項(xiàng)目的創(chuàng)建、修改及搜索等操作;依據(jù)實(shí)際的項(xiàng)目,進(jìn)行客戶(hù)、聯(lián)系人及相應(yīng)活動(dòng)記錄的查詢(xún)。
知識(shí)庫(kù)模塊:將銷(xiāo)售工作中通用的資料信息進(jìn)行存儲(chǔ),包含了下載資料及上傳資料兩個(gè)部分。
目標(biāo)管理模塊:對(duì)每個(gè)銷(xiāo)售獨(dú)立地設(shè)置某階段的銷(xiāo)售目標(biāo)。
登陸界面:用戶(hù)登陸首頁(yè),能夠?qū)τ脩?hù)任務(wù)完成及下級(jí)用戶(hù)等情況進(jìn)行查看。
采用Ajax技術(shù)架構(gòu)的應(yīng)用主要有以下特點(diǎn):1)全新的富互聯(lián)網(wǎng)應(yīng)用 (Rich Internet Application,RIA)Web體驗(yàn),用戶(hù)可以進(jìn)行平滑的Web交互以及連續(xù)的局部刷新,而不用傳統(tǒng)的不斷刷新頁(yè)面的方式;2)合理的Ajax分層架構(gòu),把邏輯層與表現(xiàn)層進(jìn)行了劃分,層次劃分更加清楚,基礎(chǔ)類(lèi)庫(kù)移植性更強(qiáng);3)異步通信機(jī)制更加完善,其采用了Ajax技術(shù)的通信方式,將XMLHttpRequest組件的通信機(jī)制進(jìn)行完善,從而實(shí)現(xiàn)Ajax的框架設(shè)計(jì)。
3.2.1 表單(Form)
設(shè)計(jì)目標(biāo):表單設(shè)計(jì)的目標(biāo)是幫助用戶(hù)方便地在一個(gè)窗口中,進(jìn)行全部項(xiàng)目的編輯,然后進(jìn)行一次性的提交,從而可以提高用戶(hù)工作效率。
實(shí)現(xiàn)概要:表單的屬性主要有:表單條目可以按照類(lèi)別分類(lèi),能夠容納頁(yè)面的控件,可以完成Ajax的異步提交功能。
3.2.2 組合編輯框(ComboBox)
設(shè)計(jì)目標(biāo):其設(shè)計(jì)目標(biāo)主要是為了可以提升應(yīng)用的易用性,力圖一次性地選擇完成編輯工作,使用戶(hù)的工作效率可以極大地提高。
實(shí)現(xiàn)概要:組合編輯框的主要屬性有:條目記錄能夠編輯、增加及刪除,進(jìn)行異步更新操作;條目記錄能夠進(jìn)行排序;實(shí)現(xiàn)無(wú)刷新異步檢測(cè)功能。
本系統(tǒng)使用了MVC的三層架構(gòu)模式來(lái)實(shí)施開(kāi)發(fā),即:數(shù)據(jù)模型層(Model-Tier)的設(shè)計(jì)是通過(guò)JDBC的使用完成持久化處理工作;業(yè)務(wù)邏輯控制層(Control-Tier)的設(shè)計(jì)是通過(guò)Spring Framework進(jìn)行業(yè)務(wù)邏輯的處理;頁(yè)面視圖層(View-Tier)的設(shè)計(jì)是綜合了JavaScript+ HTML+XML+CSS+DOM幾種技術(shù),同時(shí)與先進(jìn)的Ajax技術(shù)進(jìn)行結(jié)合。
通過(guò)功能模塊劃分能夠得出,系統(tǒng)大體可以劃分成關(guān)聯(lián)關(guān)系數(shù)據(jù)實(shí)體及基本數(shù)據(jù)實(shí)體?;緮?shù)據(jù)實(shí)體主要包括10種類(lèi)型:用戶(hù)組數(shù)據(jù)表、用戶(hù)信息數(shù)據(jù)表、銷(xiāo)售目標(biāo)數(shù)據(jù)表、用戶(hù)角色數(shù)據(jù)表、客戶(hù)信息數(shù)據(jù)表、銷(xiāo)售項(xiàng)目數(shù)據(jù)表、聯(lián)系人信息數(shù)據(jù)表、知識(shí)庫(kù)信息數(shù)據(jù)表、知識(shí)庫(kù)類(lèi)型數(shù)據(jù)表及銷(xiāo)售活動(dòng)數(shù)據(jù)表。關(guān)聯(lián)關(guān)系數(shù)據(jù)實(shí)體主要包含了5種類(lèi)型:用戶(hù)/用戶(hù)組關(guān)聯(lián)表、用戶(hù)/聯(lián)系人關(guān)聯(lián)表、用戶(hù)/角色關(guān)聯(lián)表、客戶(hù)/活動(dòng)關(guān)聯(lián)表及用戶(hù)/客戶(hù)關(guān)聯(lián)表??蛻?hù)關(guān)系管理系統(tǒng)的數(shù)據(jù)尸體關(guān)聯(lián)如圖2所示。
圖2 客戶(hù)關(guān)系管理系統(tǒng)數(shù)據(jù)實(shí)體關(guān)聯(lián)圖
系統(tǒng)持久層邏輯通過(guò)JDBC引擎來(lái)進(jìn)行設(shè)計(jì),通過(guò)DAO設(shè)計(jì)模式的進(jìn)行實(shí)現(xiàn)。通過(guò)JDBC引擎,用戶(hù)能夠以SQL語(yǔ)言形式把訪(fǎng)問(wèn)請(qǐng)求語(yǔ)句編寫(xiě)出來(lái),再通過(guò)此接口發(fā)送至數(shù)據(jù)庫(kù)中,其請(qǐng)求結(jié)果通過(guò)該接口返回給Java應(yīng)用程序。JDBC引擎基于簡(jiǎn)單的基礎(chǔ)上,為開(kāi)發(fā)者提供極大的靈活性。而DAO模式為J2EE的一種核心模式,其核心思想就是在具體數(shù)據(jù)源與業(yè)務(wù)核心方法二者間增加一層,通過(guò)這種方式就能夠有效減少二者間的耦合關(guān)系。使用了DAO模式后,業(yè)務(wù)邏輯核心就可以不用關(guān)系怎樣具體地操作數(shù)據(jù)庫(kù)了,因而使整個(gè)系統(tǒng)結(jié)構(gòu)層次更加清晰合理。持久層的設(shè)計(jì)原理圖如3所示。
圖3 持久層設(shè)計(jì)原理圖
業(yè)務(wù)邏輯層采用了采用MVC設(shè)計(jì)模式及Spring框架技術(shù)進(jìn)行了實(shí)現(xiàn)。Spring框架采用統(tǒng)一的方式來(lái)對(duì)DAO模式支持,采用Spring框架能夠減少很多資源裝配、SQL異常捕獲以及事物管理等繁雜的代碼編寫(xiě)。
Spring框架控制器組件主要是接受用戶(hù)的請(qǐng)求,并進(jìn)行更新處理,將合適的視圖組件返回給用戶(hù)。當(dāng)Web請(qǐng)求出現(xiàn)時(shí),Spring框架的前端控制器會(huì)自動(dòng)分析這個(gè)請(qǐng)求,而不進(jìn)行具體的邏輯處理,將其轉(zhuǎn)發(fā)至底層核心控制器實(shí)施處理,前端控制器提供一個(gè)控制、管理Web請(qǐng)求處理的集中式入口,并于底層核心控制器緊密耦合,并通過(guò)核心控制器發(fā)送至業(yè)務(wù)邏輯實(shí)施處理,通常該業(yè)務(wù)邏輯和數(shù)據(jù)庫(kù)服務(wù)器實(shí)施數(shù)據(jù)交換業(yè)務(wù),直到數(shù)據(jù)交換結(jié)果返回后,再提交至Spring框架控制器組件,由控制器組件發(fā)送對(duì)應(yīng)的視圖,最后,用戶(hù)通過(guò)瀏覽器進(jìn)行交互信息的查看。
本文對(duì)當(dāng)前新的Web2.0開(kāi)發(fā)模式實(shí)施了研究和設(shè)計(jì),對(duì)Web2.0模式下的Ajax框架技術(shù)與J2EE平臺(tái)技術(shù)進(jìn)行了仔細(xì)地闡述,并設(shè)計(jì)了基于Ajax與J2EE技術(shù)的Web應(yīng)用架構(gòu)設(shè)計(jì),給出了設(shè)計(jì)的方法,即整體客戶(hù)關(guān)系管理系統(tǒng)應(yīng)用架構(gòu)基于MVC分層模型設(shè)計(jì),通過(guò)JDBC API引擎設(shè)計(jì)持久層,通過(guò)Spring框架技術(shù)設(shè)計(jì)控制層,通過(guò)Ajax技術(shù)設(shè)計(jì)視圖層。
[1] 盧雷,萬(wàn)建成,鹿旭東,郭小濤.基于Web應(yīng)用特點(diǎn)的界面組成及交互模型[J].計(jì)算機(jī)工程與設(shè)計(jì),2006.
[2] 殷旻昊.基于J2EE輕量級(jí)框架的敏捷型Web架構(gòu)研究及應(yīng)用[D].重慶大學(xué),2008.
[3] 白國(guó)枝.基于J2EE/Web架構(gòu)的安全系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2008,08.
[4] 王建平.MVC&MVP集成模式在RIA開(kāi)發(fā)中的應(yīng)用[J].軟件導(dǎo)刊,2009,07.
[5] 張琪.基于MVC設(shè)計(jì)模式的Struts框架設(shè)計(jì)與應(yīng)用[D].武漢科技大學(xué),2008.