王娜
(遼寧建筑職業(yè)學(xué)院信息工程系,遼陽(yáng) 111000)
基于MVC模式的移動(dòng)通信收繳費(fèi)系統(tǒng)分析與設(shè)計(jì)
王娜
(遼寧建筑職業(yè)學(xué)院信息工程系,遼陽(yáng)111000)
分析并設(shè)計(jì)基于MVC模式的移動(dòng)通信收繳費(fèi)系統(tǒng),介紹系統(tǒng)開(kāi)發(fā)所使用的相關(guān)技術(shù):MVC模式和AJAX技術(shù),同時(shí),對(duì)客戶(hù)的業(yè)務(wù)需求進(jìn)行分析,并詳細(xì)描述系統(tǒng)各個(gè)模塊的設(shè)計(jì)及數(shù)據(jù)庫(kù)的設(shè)計(jì)?;贛VC模式的移動(dòng)通信收繳費(fèi)系統(tǒng),將顯示層、業(yè)務(wù)層和數(shù)據(jù)層分離,以實(shí)現(xiàn)代碼重用和易于修改,提高系統(tǒng)的靈活性、復(fù)用性和可維護(hù)性,達(dá)到提高軟件質(zhì)量的目的。
MVC模式;移動(dòng)通信;收繳費(fèi)系統(tǒng);模塊設(shè)計(jì);互聯(lián)網(wǎng)
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和成熟,網(wǎng)絡(luò)應(yīng)用悄然走進(jìn)我們生活的每一個(gè)角落[1]。在我們的生活中,網(wǎng)絡(luò)已經(jīng)成為重要部分,越來(lái)越多的人們接受便捷、快速、無(wú)時(shí)空限制的網(wǎng)絡(luò)應(yīng)用。由于手機(jī)的普及,目前人們對(duì)移動(dòng)通信服務(wù)的需求急劇增長(zhǎng),出現(xiàn)了服務(wù)供求矛盾,并且還在繼續(xù)加劇[2]。移動(dòng)通信企業(yè)在面對(duì)龐大的手機(jī)用戶(hù)開(kāi)展服務(wù)時(shí),出現(xiàn)了一些問(wèn)題,如分布集中的服務(wù)網(wǎng)點(diǎn)、偏遠(yuǎn)地區(qū)服務(wù)的需求等。利用互聯(lián)網(wǎng)的優(yōu)勢(shì),開(kāi)發(fā)一個(gè)移動(dòng)通信收繳費(fèi)系統(tǒng),能夠幫助解決上述問(wèn)題。因此,本文設(shè)計(jì)開(kāi)發(fā)了基于MVC模式的移動(dòng)通信收繳費(fèi)系統(tǒng),以Tomcat作為服務(wù)器,并運(yùn)用AJAX動(dòng)態(tài)驗(yàn)證技術(shù),實(shí)現(xiàn)移動(dòng)收繳費(fèi)系統(tǒng)的構(gòu)建。
本系統(tǒng)主要用于移動(dòng)業(yè)務(wù)收繳費(fèi)管理及相關(guān)手機(jī)號(hào)碼的出售管理,其操作用戶(hù)是從事收費(fèi)服務(wù)的業(yè)務(wù)員,所以系統(tǒng)功能中還應(yīng)包括對(duì)系統(tǒng)操作員賬號(hào)的管理。該系統(tǒng)是基于B/S的Web應(yīng)用,多個(gè)遠(yuǎn)程用戶(hù)通過(guò)瀏覽器訪(fǎng)問(wèn)同一個(gè)Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器,為保證軟件的正常運(yùn)行,服務(wù)器和數(shù)據(jù)庫(kù)的性能要滿(mǎn)足一定的需求。軟件部署后,要求操作用戶(hù)能夠很快對(duì)軟件進(jìn)行操作,所以軟件的設(shè)計(jì)要充分的人性化,操作簡(jiǎn)單明了,當(dāng)操作員對(duì)系統(tǒng)操作不當(dāng)時(shí),要有及時(shí)明確的提示。除此之外,對(duì)本文中用到的幾個(gè)術(shù)語(yǔ)解釋如下:
客戶(hù):移動(dòng)手機(jī)號(hào)碼用戶(hù);
用戶(hù):具體某個(gè)移動(dòng)手機(jī)號(hào)碼;
賬戶(hù):客戶(hù)為手機(jī)號(hào)開(kāi)的繳費(fèi)賬戶(hù)。
20年紀(jì)80年代,Xerox PARC發(fā)明了一種軟件設(shè)計(jì)模式,即MVC(Model、View、Controller),指模型、視圖、控制器。至今MVC已被廣泛使用到Web開(kāi)發(fā)中,是Sun公司J2EE平臺(tái)的設(shè)計(jì)模式。MVC把應(yīng)用程序分成三個(gè)核心模塊:模型、視圖和控制器,它們分別擔(dān)負(fù)不同的任務(wù)[3]:控制器接收用戶(hù)的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來(lái)進(jìn)行處理;模型根據(jù)用戶(hù)請(qǐng)求進(jìn)行相應(yīng)的業(yè)務(wù)邏輯處理,并返回?cái)?shù)據(jù);視圖把模型返回的數(shù)據(jù)呈現(xiàn)給用戶(hù)。
本系統(tǒng)視圖使用的是JSP,并結(jié)合MVC模式的Struts框架技術(shù),利用Struts框架的ActionServlet、ActionForm、ActionMapping、ActionForward、ActionError五大組件,可以很簡(jiǎn)單地收集表單的請(qǐng)求和提交的數(shù)據(jù)并進(jìn)行很好地處理,比直接運(yùn)用手工編寫(xiě)Servlet省去了很大工作量,從而使代碼的結(jié)構(gòu)簡(jiǎn)單清晰。
除了MVC設(shè)計(jì)模式外,本系統(tǒng)的核心亮點(diǎn)就是較好運(yùn)用AJAX技術(shù),頁(yè)面標(biāo)簽中不用使用多余的屬性,就能讓界面表現(xiàn)出系統(tǒng)設(shè)計(jì)的人性化。利用AJAX可以動(dòng)態(tài)地修改頁(yè)面的內(nèi)容,例如在某個(gè)管理功能里面,當(dāng)點(diǎn)擊了查看按鈕后,系統(tǒng)會(huì)列出相應(yīng)的信息列表。當(dāng)點(diǎn)擊修改連接,原信息就會(huì)被提交到下一個(gè)頁(yè)面,即修改頁(yè)面,這里既沒(méi)有用傳統(tǒng)的JSP的Java腳本語(yǔ)言取值,也沒(méi)有用冗長(zhǎng)的JSP標(biāo)簽,而是運(yùn)用AJAX動(dòng)態(tài)讓提交的數(shù)據(jù)添加到相應(yīng)的輸入域中。
3.1模塊設(shè)計(jì)
根據(jù)系統(tǒng)功能要求分析,移動(dòng)通信收繳費(fèi)管理系統(tǒng)由六個(gè)功能模塊組成,包括操作員管理模塊、手機(jī)號(hào)管理模塊、收費(fèi)管理模塊、客戶(hù)管理模塊、用戶(hù)管理模塊、賬戶(hù)管理模塊。系統(tǒng)模塊之間的關(guān)系如圖1所示。
圖1 系統(tǒng)模塊關(guān)系圖
以上六個(gè)模塊功能明確,但它們之間有一定的聯(lián)系,一個(gè)客戶(hù)是用戶(hù)和賬戶(hù)的持有者,對(duì)應(yīng)的生活實(shí)際情況就是,一個(gè)人(客戶(hù))可以購(gòu)買(mǎi)和擁有一個(gè)以上的手機(jī)號(hào)碼,可以擁有一個(gè)或多個(gè)賬戶(hù)給手機(jī)號(hào)進(jìn)行交費(fèi)。其中,每個(gè)模塊的具體功能如下:
(1)操作員管理模塊:主要是系統(tǒng)中維護(hù)操作員登錄賬號(hào)的功能模塊,該系統(tǒng)操作員之間的權(quán)限是相互平等的,某個(gè)操作員賬號(hào)不用的時(shí)候可以暫時(shí)設(shè)置為給管理員狀態(tài),再次啟用該賬號(hào)時(shí),可以通過(guò)其他可用的操作員賬號(hào)登錄系統(tǒng)以后,將賬號(hào)的狀態(tài)修改為管理員,該賬號(hào)就可以繼續(xù)使用了。
(2)手機(jī)號(hào)管理模塊:手機(jī)號(hào)碼的管理主要有增添新的待出售的手機(jī)號(hào)碼或某個(gè)號(hào)碼段之間的號(hào)碼,對(duì)號(hào)碼信息的查看、修改或刪除。號(hào)碼的狀態(tài)有已出售和未出售兩種狀態(tài),可以對(duì)兩種狀態(tài)進(jìn)行更改,另外開(kāi)戶(hù)時(shí)某個(gè)號(hào)碼出售后狀態(tài)就變?yōu)橐殉鍪蹱顟B(tài)。
(3)收繳費(fèi)管理模塊:實(shí)現(xiàn)了用客戶(hù)的已開(kāi)賬戶(hù)進(jìn)行繳費(fèi)的功能。
(4)客戶(hù)管理模塊:實(shí)現(xiàn)客戶(hù)信息的查詢(xún)、修改、刪除,客戶(hù)信息的添加是在開(kāi)戶(hù)操作中添加上的。
(5)用戶(hù)管理模塊:實(shí)現(xiàn)用戶(hù)(即手機(jī)號(hào)碼和對(duì)應(yīng)的客戶(hù))添加、刪除、修改、查詢(xún)功能。
(6)賬戶(hù)管理模塊:賬戶(hù)管理的設(shè)計(jì)是要實(shí)現(xiàn)賬戶(hù)信息的增刪改查。
系統(tǒng)的總體流程圖如圖2所示。
圖2 系統(tǒng)總體流程圖
3.2數(shù)據(jù)庫(kù)設(shè)計(jì)
根據(jù)系統(tǒng)模塊設(shè)計(jì),同時(shí)考慮到系統(tǒng)可能的并發(fā)訪(fǎng)問(wèn)量和存儲(chǔ)數(shù)據(jù)量的情況,決定采用Oracle數(shù)據(jù)庫(kù)。Oracle是甲骨文公司的一款關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),在數(shù)據(jù)庫(kù)領(lǐng)域中一直處于流行、領(lǐng)先地位,系統(tǒng)的功能強(qiáng)、使用方便、可移植性好,適用于各類(lèi)大、中、小環(huán)境,是一種可靠性好、適應(yīng)高吞吐量、高效率的數(shù)據(jù)庫(kù)解決方案[4]。
該系統(tǒng)數(shù)據(jù)庫(kù)的E-R圖如圖3所示。
圖3 數(shù)據(jù)庫(kù)E-R圖
為滿(mǎn)足各模塊的需求,共設(shè)計(jì)7個(gè)數(shù)據(jù)庫(kù)表,具體如下。
①操作員賬號(hào)信息表operator:id(操作員賬戶(hù)ID,主鍵)、name(操作員姓名)、password(操作員密碼)、admin(是否為管理員,0-是,1-否);
②手機(jī)號(hào)信息表 mobile:id(手機(jī)號(hào)的ID,主鍵)、mobileType(手機(jī)號(hào)類(lèi)型)、mobileNumber(手機(jī)號(hào)碼)、Saled(是否出售,0-否,1-是);
③收費(fèi)細(xì)則信息表 charge:id(收費(fèi)細(xì)則ID,主鍵)、chargeName(收費(fèi)細(xì)則名稱(chēng))、fee(收費(fèi)標(biāo)準(zhǔn));
④操作員收費(fèi)表 charge1:chargerId(收費(fèi)ID,主鍵)、operation(收費(fèi)項(xiàng)目)、chargerName(收費(fèi)名稱(chēng));
⑤客戶(hù)信息表 customer:id(客戶(hù)賬戶(hù)ID,主鍵)、certificatedType(客戶(hù)手機(jī)號(hào)類(lèi)型)、certifiedNumber(客戶(hù)手機(jī)號(hào)碼)、name(客戶(hù)姓名)、Sex(客戶(hù)性別)、birth-Date(客戶(hù)出生日期)、account(客戶(hù)的賬號(hào));
⑥用戶(hù)信息表mobileUser:userId(號(hào)碼用戶(hù)ID,主鍵)、mobileNumber(移動(dòng)號(hào)碼)、ramble(漫游信息)、callLevel(號(hào)碼用戶(hù)級(jí)別)、id(賬戶(hù)ID)、account(賬戶(hù)賬號(hào));
⑦賬戶(hù)信息表account:accountId(賬戶(hù)ID,主鍵)、account(賬戶(hù)賬號(hào))、name(賬戶(hù)姓名)、address(聯(lián)系地址)、accountFee(開(kāi)戶(hù)金額)、balance(賬戶(hù)余額)、operationFee(業(yè)務(wù)收費(fèi))。
3.3登錄實(shí)現(xiàn)
每一個(gè)系統(tǒng)都少不了登錄這個(gè)常見(jiàn)、又必不可少的功能模塊,登錄的實(shí)現(xiàn)技術(shù)已經(jīng)非常成熟。登錄狀態(tài)的檢查采用過(guò)濾器技術(shù),因?yàn)槊看蜽eb訪(fǎng)問(wèn)請(qǐng)求都要先經(jīng)過(guò)過(guò)濾器的處理,所以運(yùn)用過(guò)濾器進(jìn)行對(duì)登錄狀態(tài)的驗(yàn)證是一個(gè)非常完美的選擇。系統(tǒng)設(shè)計(jì)上采用會(huì)話(huà)技術(shù),當(dāng)用戶(hù)登錄系統(tǒng)以后,系統(tǒng)會(huì)在session中存放一個(gè)已登錄標(biāo)記,每次請(qǐng)求都要以該標(biāo)記為通行證通過(guò)過(guò)濾器進(jìn)行過(guò)濾。如果不先進(jìn)行登錄而試圖訪(fǎng)問(wèn)該系統(tǒng)的其他內(nèi)容,都會(huì)在過(guò)濾器被攔截并返回提示信息,從而增強(qiáng)了系統(tǒng)的安全性。
3.4收費(fèi)管理實(shí)現(xiàn)
收費(fèi)管理是本系統(tǒng)的主要功能模塊,主要子功能有開(kāi)戶(hù)、話(huà)費(fèi)充費(fèi)、收費(fèi)細(xì)則管理,下面主要對(duì)收費(fèi)細(xì)則管理的實(shí)現(xiàn)進(jìn)行一下介紹。
收費(fèi)細(xì)則的管理設(shè)計(jì)是將查看功能和修改功能設(shè)計(jì)到一個(gè)界面上,點(diǎn)擊收費(fèi)細(xì)則查看的鏈接,請(qǐng)求服務(wù)器,返回收費(fèi)細(xì)則的收費(fèi)項(xiàng)和對(duì)應(yīng)的ID,付給頁(yè)面表單的下拉列表中,下拉列表的選項(xiàng)發(fā)生改變,瀏覽器就會(huì)捕捉到相應(yīng)的事件,調(diào)用并執(zhí)行AJAX代碼向服務(wù)器端請(qǐng)求對(duì)應(yīng)ID的收費(fèi)金額。在這里使用AJAX的好處就是沒(méi)有頁(yè)面的刷新,操作員不用點(diǎn)擊提交等待返回結(jié)果刷新頁(yè)面并顯示。下面實(shí)現(xiàn)請(qǐng)求的AJAX代碼:
$(document).ready(function(){
$('#chargeSelect').change(function(){
var id=$(this).val();
$.AJAX({
url:'num/charge.do?method=fee&id='+id,
type:'get',cache:false,dataType:'text',
success:function(txt){$('#fee').val(txt)}
});
});
});
在該段代碼中,url指明了請(qǐng)求的路徑和請(qǐng)求參數(shù),type指明請(qǐng)求是采用get方法還是post方法,匿名函數(shù)function(txt){$('#fee').val(txt)}將返回的結(jié)果設(shè)置到頁(yè)面當(dāng)中,這整個(gè)的過(guò)程都在操作者察覺(jué)不到的情況下執(zhí)行的,這就是AJAX能給用戶(hù)帶來(lái)的完美體驗(yàn)之一。該系統(tǒng)中很多的驗(yàn)證和請(qǐng)求都是采用AJAX完成的,在用戶(hù)操作不當(dāng)?shù)臅r(shí)候阻止請(qǐng)求的提交并及時(shí)在頁(yè)面上給與提醒。
中國(guó)移動(dòng)通信技術(shù)迅猛發(fā)展,用戶(hù)急劇增加,分布從城鎮(zhèn)普及到農(nóng)村及偏遠(yuǎn)地區(qū),移動(dòng)業(yè)務(wù)收費(fèi)的工作只靠原來(lái)的人工收費(fèi)方式以明顯滿(mǎn)足不了現(xiàn)實(shí)業(yè)務(wù)的需求。本系統(tǒng)正是為緩解這種矛盾狀況而應(yīng)時(shí)開(kāi)發(fā)的,利用因特網(wǎng)的便利優(yōu)勢(shì),使移動(dòng)業(yè)務(wù)收費(fèi)方式由傳統(tǒng)的人工集中收繳方式變?yōu)楝F(xiàn)在的遠(yuǎn)程網(wǎng)絡(luò)化收取,只要一臺(tái)連接因特網(wǎng)的普通計(jì)算機(jī),就可以為移動(dòng)用戶(hù)進(jìn)行收繳費(fèi)服務(wù),極大地方便了移動(dòng)業(yè)務(wù)收費(fèi)的開(kāi)展,提高了移動(dòng)業(yè)務(wù)的服務(wù)質(zhì)量,從而也讓眾多的移動(dòng)用戶(hù)得到了更好的便利服務(wù)。與原來(lái)相比,也節(jié)省了開(kāi)展收費(fèi)服務(wù)所需的人力和財(cái)力。本文的收繳費(fèi)系統(tǒng)是基于MVC設(shè)計(jì)模式的,采用模塊化處理思想,充分利用了面向?qū)ο笤O(shè)計(jì)、Java語(yǔ)言的優(yōu)點(diǎn)以及代碼重用,提高了開(kāi)發(fā)效率[5]。
[1]王淼.移動(dòng)公司網(wǎng)上支付系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].大慶:東北石油大學(xué)碩士論文,2013.
[2]王流勵(lì).手機(jī)支付系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué)碩士論文,2012.
[3]孫衛(wèi)琴.精通Struts:基于MVC的Java Web設(shè)計(jì)與開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2006.
[4]于寶東.手機(jī)支付終端繳費(fèi)第三方運(yùn)營(yíng)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué)碩士論文,2011.
[5]虞甘露,郭麗莎.移動(dòng)終端繳費(fèi)系統(tǒng)的應(yīng)用[J].江西電力.2010,34(1):58-60.
MVC Pattern;Mobile;Charge Payment System;Module Design;Internet
Analysis and Design of Mobile Charge Payment System with MVC Pattern
WANG Na
(Department of Information Engineering,LiaoNing Construction Vocational College,Liaoyang 111000)
Analyzes and designs the mobile charge payment system with MVC pattern,introduces some related technologies:MVC pattern and AJAX technology,at the same time analyzes the customer's requirements,describes the design and implement of each module of this system and database in details.The mobile charge payment system with MVC pattern,which departs the displaying layer,business layer and data layer to realize the reuse and modification of code and improves the flexibility,reusability and maintainability to achieve the aim of the improvement of software quality.
1007-1423(2016)28-0077-04
10.3969/j.issn.1007-1423.2016.28.021
王娜(1980-),女,遼寧遼陽(yáng)人,碩士研究生,副教授,研究方向?yàn)閳D形圖像處理、地理信息系統(tǒng)
2016-08-03
2016-09-30