摘要:介紹了基于ICP服務(wù)的網(wǎng)上應(yīng)用計(jì)費(fèi)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)技術(shù)。詳細(xì)闡述了計(jì)費(fèi)子系統(tǒng)中各個模塊的實(shí)現(xiàn)流程、各數(shù)據(jù)和功能模塊之間的相互關(guān)系;采用了良好的設(shè)計(jì)理念,通過三層體系結(jié)構(gòu),基于Java技術(shù)的開發(fā)方法和Oracle優(yōu)化的存儲過程與函數(shù)設(shè)計(jì)了靈活的計(jì)費(fèi)策略和方案,實(shí)現(xiàn)了計(jì)費(fèi)策略的動態(tài)管理和維護(hù),滿足了計(jì)費(fèi)策略變動的需要,并且為計(jì)費(fèi)系統(tǒng)的良好運(yùn)行提供了保證。
關(guān)鍵詞:網(wǎng)絡(luò)內(nèi)容提供商;計(jì)費(fèi)日志;帳戶監(jiān)視
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2009)36-10190-03
The Dynamic Charging Policy System of ICP Service Network Based on Web+Oracle
ZHU Ya-xing
(Dept. of Software Engin.,Guangdong Vocational Institute of Science and Technology,Guangzhou 510640,China)
Abstract: The design and realization technology of the charging management system based on ICP service is introduced in this paper. The realization flow of each module, the relation of each data and function module are discussed in details. with the good design idea and three tier architecture system frame, Java developing technology, storage procedure and function, the flexible charging policy and schema is designed well. It realizes the dynamic management and maintenance of the charging system which meets the policy change and ensures charging system run well.
Key words: ICP; charging log; account watching
目前一些大型網(wǎng)站的定位側(cè)重于作ICP(網(wǎng)絡(luò)內(nèi)容提供商),其主攻方向是信息增值服務(wù),收入來源于信息費(fèi)。因此ICP的網(wǎng)站大都具有比較豐富的網(wǎng)上信息資源、信息全文檢索 、電子出版系統(tǒng)、BBS和網(wǎng)絡(luò)新聞、視頻會議系統(tǒng)、動態(tài)信息發(fā)布等;那么網(wǎng)上應(yīng)用管理和計(jì)費(fèi)管理就變得十分必要和迫切。一個設(shè)計(jì)良好的網(wǎng)上應(yīng)用計(jì)費(fèi)系統(tǒng)不僅可以保障網(wǎng)站的良好運(yùn)行,而且可以帶來好的運(yùn)營收入和效果。本文主要針對一提供ICP應(yīng)用服務(wù)的網(wǎng)站本身的特色,建立一套完善的網(wǎng)上應(yīng)用計(jì)費(fèi)管理系統(tǒng)。
網(wǎng)上應(yīng)用計(jì)費(fèi)管理系統(tǒng)的設(shè)計(jì)思想是按用戶享有的各種“服務(wù)”為基礎(chǔ),為了將來管理和計(jì)費(fèi)的需要,系統(tǒng)引入了“服務(wù)”的概念并支持服務(wù)的動態(tài)擴(kuò)展,如用戶可自由選取系統(tǒng)提供的各種服務(wù)(全文檢索、電子郵件、代理、撥號,視頻點(diǎn)播等服務(wù)),針對每種服務(wù)實(shí)施計(jì)費(fèi)。系統(tǒng)維護(hù)人員可根據(jù)需要增加新的服務(wù)或放棄現(xiàn)有的服務(wù)。網(wǎng)上用戶上網(wǎng)申請注冊并交費(fèi)后,可自由選取系統(tǒng)提供的各種服務(wù)。對于用戶本身來講不僅有不同的類型,不同用戶還可以選取各種不同的服務(wù),選擇不同的計(jì)費(fèi)方式(包括:按流量計(jì)費(fèi)、按連續(xù)時間計(jì)費(fèi)、按讀取信息量計(jì)費(fèi)、是否包月等),并且在不同的上網(wǎng)時段可能會有一些不同的時區(qū)或節(jié)假日的減免率,那么,針對這樣的可支持不斷擴(kuò)展的網(wǎng)上應(yīng)用該如何設(shè)計(jì)計(jì)費(fèi)方案,根據(jù)需要靈活調(diào)整并實(shí)施計(jì)費(fèi)呢?
1 系統(tǒng)設(shè)計(jì)
建立計(jì)費(fèi)管理系統(tǒng)的目的是為系統(tǒng)提供統(tǒng)一的計(jì)費(fèi)管理工作。首先建立一個合理的計(jì)費(fèi)方案和策略是計(jì)費(fèi)的基礎(chǔ)。在此基礎(chǔ)上實(shí)行計(jì)費(fèi)服務(wù)系統(tǒng)的管理。
1.1 計(jì)費(fèi)方案管理系統(tǒng)
首先分析系統(tǒng)的計(jì)費(fèi)類型。主要包括按流量計(jì)費(fèi);按連接時間計(jì)費(fèi);按讀寫信息量計(jì)費(fèi)。
計(jì)費(fèi)類型有統(tǒng)一的計(jì)費(fèi)參數(shù)項(xiàng),包括:基本費(fèi)率;減免優(yōu)惠的時區(qū)和時區(qū)優(yōu)惠率、減免優(yōu)惠的用戶類型和用戶類型減免優(yōu)惠率。一個用戶只有一個用戶類型,用戶類型可視需要增減;每個用戶類型有統(tǒng)一的計(jì)費(fèi)參數(shù)項(xiàng)。
對新建立的各用戶類型,系統(tǒng)應(yīng)提供一個缺省的計(jì)費(fèi)方案;可以根據(jù)情況修改計(jì)費(fèi)標(biāo)準(zhǔn),提供方案報(bào)告。
1.2 計(jì)費(fèi)系統(tǒng)
計(jì)費(fèi)系統(tǒng)根據(jù)各需要計(jì)費(fèi)的信息,執(zhí)行計(jì)費(fèi)任務(wù)。包括:計(jì)費(fèi)日志;計(jì)費(fèi)日志統(tǒng)計(jì)結(jié)果;用戶帳戶記錄;此外,系統(tǒng)還提供完善的繳費(fèi)管理和帳務(wù)處理等。其中,計(jì)費(fèi)日志是計(jì)費(fèi)的依據(jù),由一套完善的日志系統(tǒng)進(jìn)行判斷、處理、提取和自動生成,這里不作贅述。
1.3 系統(tǒng)環(huán)境
本系統(tǒng)包含有不同操作系統(tǒng)(Solaris 、IRIX和Windows 2000 server)、應(yīng)用軟件(NETSCAPE、SYBASE、ORACLE、OPENVIEW、全文檢索、視頻點(diǎn)播、郵件系統(tǒng)等)。開發(fā)平臺是以Sybase公司的Enterprise Application Server(EAS)為應(yīng)用服務(wù)器,以Power J及Powersite為應(yīng)用軟件開發(fā)工具, EAS包括組件事務(wù)服務(wù)器Jaguar CTS和動態(tài)站點(diǎn)管理工具PowerDynamo兩者緊密集成,是同時實(shí)現(xiàn)Web聯(lián)機(jī)事務(wù)處理和動態(tài)信息發(fā)布的企業(yè)級應(yīng)用服務(wù)器平臺。在本計(jì)費(fèi)系統(tǒng)中,良好的應(yīng)用Power J和PowerDynamo制作了Java Applet和動態(tài)頁面[1]來管理和維護(hù)計(jì)費(fèi)方案,并大量利用了Oracle的優(yōu)秀的存儲過程和函數(shù)[3]來實(shí)現(xiàn)復(fù)雜的計(jì)費(fèi)。為了將來維護(hù)和擴(kuò)展的需要,系統(tǒng)采用了三層體系結(jié)構(gòu)。
1.4 三層體系結(jié)構(gòu)
前端的客戶層:客戶端系統(tǒng)采用Web方式,利用瀏覽器向Web服務(wù)器請求對網(wǎng)上應(yīng)用管理系統(tǒng)進(jìn)行操作的相關(guān)網(wǎng)頁;
中間應(yīng)用層:封裝業(yè)務(wù)邏輯、進(jìn)行事務(wù)處理[4],包括PowerDynamo和Jaguar CTS,其中PowerDynamo負(fù)責(zé)網(wǎng)頁生成和動態(tài)數(shù)據(jù)發(fā)布,Jaguar CTS負(fù)責(zé)組件和事務(wù)處理,客戶端利用HTTP協(xié)議與PowerDynamo通訊,得到想調(diào)用的頁面(包括以Java Applet形式下載的組件),若有組件則由PowerDynamo與Jaguar CTS通過IIOP協(xié)議執(zhí)行組件方法;
后端數(shù)據(jù)庫管理層:提供對數(shù)據(jù)庫的訪問。其具體體系結(jié)構(gòu)圖如圖1。
2 系統(tǒng)功能實(shí)現(xiàn)
根據(jù)系統(tǒng)的設(shè)計(jì)分析和網(wǎng)站將來靈活擴(kuò)展的需要,以及方便系統(tǒng)的維護(hù)管理,此計(jì)費(fèi)管理系統(tǒng)主要包括計(jì)費(fèi)方案管理系統(tǒng)、計(jì)費(fèi)系統(tǒng)、用戶繳費(fèi)系統(tǒng)、帳戶監(jiān)視系統(tǒng)等。
計(jì)費(fèi)管理系統(tǒng)功能流程圖如圖2所示。
2.1 計(jì)費(fèi)方案管理系統(tǒng)
計(jì)費(fèi)方案管理系統(tǒng)涉及到服務(wù)類型(包括:代理、郵件、撥號、全文檢索和視頻點(diǎn)播)、計(jì)費(fèi)方式(包括:按流量計(jì)費(fèi)、按連續(xù)時間計(jì)費(fèi)、按讀取信息量計(jì)費(fèi)、包月等)、時區(qū)減免率、用戶類型及用戶類型減免率等方面的信息。所有這些信息都是進(jìn)行計(jì)費(fèi)統(tǒng)計(jì)計(jì)算的基礎(chǔ)。
計(jì)費(fèi)方案管理系統(tǒng)包括策略設(shè)置、計(jì)費(fèi)規(guī)則維護(hù)等。因此,為了達(dá)到靈活計(jì)費(fèi)的需要,需要設(shè)計(jì)良好的計(jì)費(fèi)數(shù)據(jù)庫表[2],包括大量的代碼表和計(jì)費(fèi)規(guī)則表。如:用戶代碼表、服務(wù)類型基本費(fèi)用、時區(qū)減免設(shè)置、用戶類型減免設(shè)置、計(jì)費(fèi)策略設(shè)置、計(jì)費(fèi)規(guī)則等。
a)計(jì)費(fèi)方案管理
計(jì)費(fèi)方案管理如圖3:用戶以適當(dāng)角色登錄系統(tǒng),可進(jìn)行計(jì)費(fèi)規(guī)則及策略的維護(hù)工作,包括用戶類型、服務(wù)類型、計(jì)費(fèi)方式、數(shù)據(jù)類型、計(jì)費(fèi)屬性、用戶狀態(tài)、用戶角色、節(jié)假日信息等的維護(hù)、服務(wù)類型基本費(fèi)用設(shè)置、時區(qū)減免率設(shè)置、用戶類型減免率設(shè)置、計(jì)費(fèi)策略設(shè)置、計(jì)費(fèi)規(guī)則等信息維護(hù)管理功能。系統(tǒng)功能樹利用java applet來實(shí)現(xiàn),管理員也可遠(yuǎn)程維護(hù)此系統(tǒng),只要通過相應(yīng)的安全認(rèn)證下載有關(guān)的文件,使系統(tǒng)維護(hù)靈活,安全。
b)權(quán)限管理
用戶帳號與用戶角色、計(jì)費(fèi)規(guī)則的關(guān)聯(lián)維護(hù),所涉及到的權(quán)限維護(hù)有:用戶帳號與角色關(guān)聯(lián)代碼維護(hù);用戶角色與功能樹關(guān)聯(lián)代碼;缺省規(guī)則表維護(hù);計(jì)費(fèi)規(guī)則表維護(hù);時區(qū)減免對照表維護(hù);用戶類型減免率對照表維護(hù);服務(wù)類型基本費(fèi)用表維護(hù);用戶帳號與計(jì)費(fèi)策略關(guān)聯(lián)表維護(hù)。
2.2 計(jì)費(fèi)系統(tǒng)
計(jì)費(fèi)系統(tǒng)要根據(jù)計(jì)費(fèi)方案管理系統(tǒng)制定的計(jì)費(fèi)策略及用戶繳費(fèi)系統(tǒng)的用戶帳號信息以及用戶日志信息執(zhí)行計(jì)費(fèi)統(tǒng)計(jì)任務(wù)。其核心任務(wù)包括:即時計(jì)費(fèi)統(tǒng)計(jì)、結(jié)算統(tǒng)計(jì)等。
1)即時計(jì)費(fèi)系統(tǒng)根據(jù)計(jì)費(fèi)日志和計(jì)費(fèi)策略產(chǎn)生計(jì)費(fèi)數(shù)據(jù),系統(tǒng)運(yùn)行的原理如下:通過控制日志信息表中的標(biāo)志位(1,0),0表示未計(jì)費(fèi),1表示已計(jì)費(fèi) ,篩選出各種服務(wù)日志表中計(jì)費(fèi)標(biāo)志位為0的所有記錄,根據(jù)計(jì)費(fèi)策略及單位費(fèi)用逐條計(jì)費(fèi)。
即時計(jì)費(fèi)調(diào)度模塊由定時器調(diào)用,進(jìn)行n次大的循環(huán)(n表示服務(wù)種類),每次處理一種服務(wù),不同的服務(wù)調(diào)用相應(yīng)的存儲過程處理,然后向日志統(tǒng)計(jì)表中插入一條日志記錄。其內(nèi)部循環(huán)根據(jù)不同服務(wù)的計(jì)費(fèi)日志和本結(jié)算期用戶對應(yīng)的計(jì)費(fèi)策略,調(diào)用相應(yīng)的函數(shù)向日志明細(xì)表中插入記錄。
數(shù)據(jù)來源:日志系統(tǒng)產(chǎn)生的數(shù)據(jù);
數(shù)據(jù)流向:即時計(jì)費(fèi)月表
2)結(jié)算統(tǒng)計(jì)系統(tǒng)將即時計(jì)費(fèi)月表中屬于本結(jié)算區(qū)間內(nèi)的計(jì)費(fèi)數(shù)據(jù)按照用戶帳號、服務(wù)類型進(jìn)行分類匯總。此模塊的特點(diǎn)為可動態(tài)求出本結(jié)算期截止當(dāng)天的累計(jì)費(fèi)用。方便查詢和對帳。
數(shù)據(jù)來源:即時計(jì)費(fèi)月表
數(shù)據(jù)流向:結(jié)算統(tǒng)計(jì)表
涉及到的過程函數(shù)有:結(jié)算統(tǒng)計(jì)調(diào)度模塊、結(jié)算統(tǒng)計(jì)模塊、計(jì)費(fèi)方式分為按流量計(jì)費(fèi)策略;按時間計(jì)費(fèi)策略;重新調(diào)整用戶與策略的的關(guān)聯(lián)函數(shù),調(diào)整某帳號某服務(wù)包月修改信息,同時刪除無效的關(guān)聯(lián)信息。
2.3 用戶繳費(fèi)系統(tǒng)
用戶繳費(fèi)系統(tǒng)為用戶提供預(yù)付與結(jié)算管理。在預(yù)付管理模塊中,可按用戶類型查詢計(jì)費(fèi)規(guī)則表,按最小余額提示用戶至少繳納的費(fèi)用。用戶可查詢自己的費(fèi)用使用情況,并得到相應(yīng)的結(jié)算賬單;繳費(fèi)管理員不僅可查詢用戶的費(fèi)用賬單,還可以得到各種統(tǒng)計(jì)報(bào)表,并利用統(tǒng)計(jì)數(shù)據(jù)進(jìn)行用戶及服務(wù)狀況的分析。
2.4 帳戶監(jiān)視系統(tǒng)
系統(tǒng)功能流程圖如圖4。
帳戶監(jiān)視系統(tǒng)提供自動帳戶監(jiān)視和管理功能,在后臺定時運(yùn)行。通過對用戶信息庫、計(jì)費(fèi)統(tǒng)計(jì)庫及計(jì)費(fèi)方案庫相關(guān)信息的綜合查詢,對到結(jié)算期的用戶,發(fā)結(jié)算賬單;到交費(fèi)期的用戶,發(fā)交費(fèi)通知;發(fā)現(xiàn)欠費(fèi)且未超出欠費(fèi)催款期的用戶,發(fā)出欠費(fèi)催款通知;發(fā)現(xiàn)欠費(fèi)且超出欠費(fèi)催款期的用戶,發(fā)出注銷帳號警告通知;發(fā)現(xiàn)欠費(fèi)且超出注銷帳號警告期的用戶,發(fā)出注銷用戶通知。用戶狀態(tài)的改變是由系統(tǒng)后臺程序根據(jù)相應(yīng)用戶的余額自動做出調(diào)整。
以上用戶狀態(tài)的改變均在用戶狀態(tài)日志表中添加一條日志記錄,并根據(jù)缺省規(guī)則中的內(nèi)容及發(fā)送方式,發(fā)出相應(yīng)的郵件通知。
3 關(guān)于計(jì)費(fèi)動態(tài)擴(kuò)展管理
3.1 計(jì)費(fèi)策略
系統(tǒng)支持新增用戶類型和新增服務(wù)類型的動態(tài)擴(kuò)展。系統(tǒng)自動為新增“用戶類型”生產(chǎn)一個缺省的計(jì)費(fèi)方案;根據(jù)需要管理員可以在后臺維護(hù)調(diào)整。
新增的“服務(wù)類型”只需要更改觸發(fā)器中相應(yīng)的服務(wù)類型代碼和對應(yīng)的計(jì)費(fèi)方式類別便可。系統(tǒng)自動會將服務(wù)代碼與“時間”,“包月”等計(jì)費(fèi)方式結(jié)合形成一系列相關(guān)的計(jì)費(fèi)策略。后臺程序會自動創(chuàng)建相關(guān)的日志表和自動生成相應(yīng)的計(jì)費(fèi)程序模板。
3.2 關(guān)于權(quán)限的維護(hù)擴(kuò)展
系統(tǒng)支持對用戶角色進(jìn)行修改,同時也支持新增角色,為角色設(shè)置權(quán)限,并將用戶與新角色關(guān)聯(lián)的設(shè)置。
3.3 關(guān)于計(jì)費(fèi)與用戶管理的接口擴(kuò)展說明
任何用戶只要被系統(tǒng)確認(rèn)為合法用戶并選擇服務(wù)后,系統(tǒng)會自動建立帳號與計(jì)費(fèi)策略的關(guān)聯(lián)。此時,計(jì)費(fèi)系統(tǒng)便可以對此用戶計(jì)費(fèi)。當(dāng)用戶選擇服務(wù)或更改計(jì)費(fèi)方式或放棄服務(wù)時,相應(yīng)觸發(fā)器會自動向用戶選擇服務(wù)動作表中插入一條記錄,“操作類型”字段說明用戶執(zhí)行了什么操作,此表上的觸發(fā)器根據(jù)此數(shù)據(jù)決定用戶帳號與計(jì)費(fèi)策略的關(guān)聯(lián)。
“操作類型”字段有兩位組成,含義說明為:第一位表示包月與否,0:包月1:不包月,第二位表示操作方式1:增加、2:刪除、3:更改。
4 結(jié)束語
計(jì)費(fèi)管理系統(tǒng)包括計(jì)費(fèi)方案管理系統(tǒng)、計(jì)費(fèi)系統(tǒng)、用戶繳費(fèi)系統(tǒng)、帳戶監(jiān)視系統(tǒng)。計(jì)費(fèi)方案管理為計(jì)費(fèi)系統(tǒng)的實(shí)現(xiàn)奠定了基礎(chǔ),各系統(tǒng)的實(shí)現(xiàn)流程、各數(shù)據(jù)和功能模塊之間的相互關(guān)系、各計(jì)費(fèi)策略和方案的制定、優(yōu)化的存儲過程和函數(shù),實(shí)現(xiàn)了計(jì)費(fèi)策略的靈活性、動態(tài)管理和維護(hù),為計(jì)費(fèi)系統(tǒng)的良好運(yùn)行提供了保證。而且系統(tǒng)本身也具有良好的擴(kuò)展性。此系統(tǒng)在運(yùn)行過程中,得到較好的效果。
參考文獻(xiàn):
[1] 陳雍.基于ORACLE數(shù)據(jù)庫應(yīng)用系統(tǒng)性能調(diào)整和優(yōu)化研究[J].江西師范大學(xué),2008.
[2] 蔣秀風(fēng),何鳳英.oracle9i數(shù)據(jù)庫管理教程[M].北京:清華大學(xué)出版社,2007.
[3](美)Nilesh Shah.Oracle數(shù)據(jù)庫系統(tǒng)—SQL和PL/SQL簡明教程[M].2版.劉偉琴,譯.北京:清華大學(xué)出版社,2005.
[4] 劉紅巖.Sybase組件事務(wù)服務(wù)器Jaguar技術(shù)詳解[M].北京:電子工業(yè)出版社,2000.