代穎
【摘 要】本文以.NET為軟件開發(fā)平臺(tái),以ASP.NET為軟件開發(fā)框架,以O(shè)RACLE為數(shù)據(jù)庫服務(wù)器,以windows 自帶的Internet Explorer瀏覽器作為客戶端講述移動(dòng)通訊渠道管理系統(tǒng)的設(shè)計(jì)。
【關(guān)鍵詞】移動(dòng)通訊;渠道管理;.NET;數(shù)據(jù)庫
一、渠道管理系統(tǒng)功能需求
(一)功能需求
(二)系統(tǒng)功能流程
由上述系統(tǒng)擬實(shí)行的目標(biāo)和詳細(xì)需求分析,得到系統(tǒng)的功能流程圖如圖1所示。
系統(tǒng)功能流程圖
二、渠道管理系統(tǒng)的系統(tǒng)設(shè)計(jì)
(一)系統(tǒng)架構(gòu)設(shè)計(jì)
利用目前流行的三層架構(gòu)。三層結(jié)構(gòu)是一種成熟、簡單并得到普遍應(yīng)用的應(yīng)用程序架構(gòu),它將應(yīng)用程序結(jié)構(gòu)劃分三層獨(dú)立的包,包括用戶表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層。其結(jié)構(gòu)如圖2所示[2]。
(二)系統(tǒng)詳細(xì)設(shè)計(jì)
本文以渠道業(yè)務(wù)發(fā)展分析為例講述系統(tǒng)詳細(xì)設(shè)計(jì)
(1)渠道業(yè)務(wù)發(fā)展分析子系統(tǒng)功能設(shè)計(jì)
該子系統(tǒng)主要包括四個(gè)模塊:渠道業(yè)務(wù)發(fā)展分析、渠道放號(hào)質(zhì)量分析、渠道業(yè)務(wù)指標(biāo)定制和渠道業(yè)務(wù)指標(biāo)查詢。
根據(jù)上述需求的到該子系統(tǒng)的功能結(jié)構(gòu)圖如圖所示。
(2)數(shù)據(jù)同步設(shè)計(jì)
為保證系統(tǒng)安全,這里我們不能直接訪問企業(yè)的主流業(yè)務(wù)系統(tǒng),要實(shí)行實(shí)時(shí)數(shù)據(jù)的讀取,需要從主流業(yè)務(wù)系統(tǒng)中導(dǎo)出數(shù)據(jù),然后導(dǎo)入到我們的渠道管理系統(tǒng)中。
這里又出現(xiàn)一個(gè)問題,主流業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)不是oracle,這里又涉及到異構(gòu)數(shù)據(jù)庫轉(zhuǎn)換的問題。這里采用的方式是有企業(yè)技術(shù)人員從主流業(yè)務(wù)數(shù)據(jù)庫中編寫腳本提取數(shù)據(jù)保存為文本形式;然后使用oracle的sqlloader[1]技術(shù)將這些文本文件載入到本系統(tǒng)的數(shù)據(jù)庫中,這里需要編寫sqlloader控制腳本來實(shí)現(xiàn);
由于系統(tǒng)每天都需要轉(zhuǎn)換數(shù)據(jù),我們不可能要求企業(yè)技術(shù)人員每天執(zhí)行這些繁瑣的操作,因此我們把這些操作封裝成一個(gè)批處理,然后把該批處理設(shè)置成windows的定時(shí)任務(wù),每天晚上閑時(shí)執(zhí)行一次,從而達(dá)到本系統(tǒng)和主流業(yè)務(wù)系統(tǒng)數(shù)據(jù)同步的目的。
(3)選項(xiàng)卡效果設(shè)計(jì)
(4)組合查詢?cè)O(shè)計(jì)
該系統(tǒng)的角色分為四個(gè)層次,市級(jí)、縣級(jí)、區(qū)域級(jí)和渠道網(wǎng)點(diǎn)級(jí),當(dāng)我們進(jìn)行查詢時(shí),每個(gè)層級(jí)所能查詢的結(jié)果是不一樣的,這里涉及到兩個(gè)問題,一個(gè)是查詢條件設(shè)置問題,每個(gè)層級(jí)查詢條件不一樣,比如市級(jí)工號(hào)可以查詢所有,縣級(jí)可以查詢?cè)摽h所轄范圍,這里使用MultiView控件來實(shí)現(xiàn)各個(gè)層級(jí)的可視范圍;另一個(gè)問題是在每個(gè)層級(jí)的查詢中都有多個(gè)查詢條件可供選擇,這些查詢條件都是任意組合的,我們?nèi)绻褂脗鹘y(tǒng)的排列組合算法,將使選擇的分支多到不可控制,所以這里本系統(tǒng)采用拼裝sql的方式來實(shí)現(xiàn)組合查詢條件的選擇,即sql語句是有查詢條件動(dòng)態(tài)組成的。
(5)Excel讀寫設(shè)計(jì)
本子系統(tǒng)中多個(gè)模塊需要使用到下載報(bào)表的功能,即需要提供Excel報(bào)表下載。當(dāng)前主流的操作Excel的方式為調(diào)用office的com組件來實(shí)現(xiàn)Excel文件的讀寫,這里業(yè)務(wù)指標(biāo)定制模塊的上傳任務(wù)文件的Excel數(shù)據(jù)導(dǎo)入就是使用這種方式來實(shí)現(xiàn)的。但是當(dāng)進(jìn)行Excel報(bào)表下載時(shí),需要通過查詢提取大量結(jié)果集,再把這些結(jié)果集寫入到Excel文件中需要占用大量的系統(tǒng)資源,同時(shí)當(dāng)結(jié)果集的記錄達(dá)到一定的數(shù)量級(jí)可能導(dǎo)致com組件的調(diào)用崩潰,因此在業(yè)務(wù)發(fā)展分析模塊、折扣產(chǎn)品和促銷產(chǎn)品的報(bào)表下載中我們采用的另外一種方式,即將這些記錄作為文本格式保存下來,最后以csv格式提供下載從而實(shí)現(xiàn)了Excel報(bào)表下載功能,這樣不僅提高了系統(tǒng)的處理速度,同時(shí)不需要生成大量的臨時(shí)Excel文件,而是直接輸出到客戶端供用戶進(jìn)行下載,節(jié)省了系統(tǒng)空間。
三、結(jié)束語
應(yīng)用asp.net軟件框架和oracle數(shù)據(jù)庫構(gòu)建的移動(dòng)通訊渠道管理系統(tǒng),作為移動(dòng)通訊企業(yè)主流業(yè)務(wù)平臺(tái)的一個(gè)擴(kuò)展系統(tǒng),完成了許多主流業(yè)務(wù)平臺(tái)沒有關(guān)注的功能,其實(shí)是一個(gè)ERP系統(tǒng),其快速的響應(yīng)速度和全面的數(shù)據(jù)分析功能幫助移動(dòng)通訊企業(yè)快速的掌握市場動(dòng)態(tài),提高了企業(yè)的管理效率和市場競爭力。同時(shí)應(yīng)用asp.net和oracle構(gòu)建的系統(tǒng)擴(kuò)充和維護(hù)方便,為以后的系統(tǒng)維護(hù)、擴(kuò)充、技術(shù)升級(jí)做了一個(gè)良好的開端和鋪墊。
參考文獻(xiàn):
[1] 霍特卡著,馬振晗譯.《 Oracle SQL Developer編程手冊(cè).》[M]清華大學(xué)出版社.2008年9月[2] 宮生文,肖建,《Oracle PL/SQL完全自學(xué)手冊(cè)》[M]中國鐵道出版社,2010年7月