敖錦蓉 王小峰 古英杰 周衛(wèi)星
【摘 要】通過對(duì)電信在線計(jì)費(fèi)系統(tǒng)可靠性提升方法的研究,分別從系統(tǒng)架構(gòu)、業(yè)務(wù)流程、并發(fā)壓力、系統(tǒng)部署等方面進(jìn)行剖析,論證了引入消息重發(fā)機(jī)制對(duì)在線計(jì)費(fèi)系統(tǒng)可靠性帶來的提升,提出了基于消息重發(fā)和緩存的在線計(jì)費(fèi)系統(tǒng)架構(gòu)設(shè)計(jì),并得到充分的技術(shù)驗(yàn)證支撐,為企業(yè)構(gòu)建高可靠性的在線計(jì)費(fèi)系統(tǒng)提供技術(shù)參考,同時(shí)較好地支持了互聯(lián)網(wǎng)時(shí)代下電信運(yùn)營(yíng)商實(shí)時(shí)計(jì)費(fèi)需求。
【關(guān)鍵詞】在線計(jì)費(fèi)系統(tǒng) BOSS BDS DCC 計(jì)費(fèi)應(yīng)用 消息重發(fā)
doi:10.3969/j.issn.1006-1010.2016.06.017 中圖分類號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-1010(2016)06-0075-05
引用格式:敖錦蓉,王小峰,古英杰,等. 基于消息重發(fā)的電信在線計(jì)費(fèi)系統(tǒng)可靠性提升研究[J]. 移動(dòng)通信, 2016,40(6): 75-79.
1 引言
隨著移動(dòng)互聯(lián)網(wǎng)時(shí)代的到來,實(shí)時(shí)計(jì)費(fèi)已經(jīng)是計(jì)費(fèi)系統(tǒng)發(fā)展的必然趨勢(shì),要求計(jì)費(fèi)不僅從離線轉(zhuǎn)向?qū)崟r(shí),同時(shí)還要能保證在線計(jì)費(fèi)率。實(shí)時(shí)計(jì)費(fèi)相比傳統(tǒng)離線計(jì)費(fèi)方式而言,是更加注重計(jì)費(fèi)處理時(shí)效性及對(duì)用戶使用情況的授權(quán)和及時(shí)控制的計(jì)費(fèi)方式。目前2G/3G/4G都是采用實(shí)時(shí)計(jì)費(fèi)的,尤其是在4G高帶寬、高網(wǎng)速的體驗(yàn)下,對(duì)計(jì)費(fèi)處理實(shí)時(shí)性的要求更加凸顯。因此,采用實(shí)時(shí)計(jì)費(fèi)方式是移動(dòng)互聯(lián)網(wǎng)時(shí)代對(duì)BOSS(Business & Operation Support System,業(yè)務(wù)運(yùn)營(yíng)支撐系統(tǒng))系統(tǒng)支撐能力轉(zhuǎn)變的主流趨勢(shì)。
2 在線計(jì)費(fèi)系統(tǒng)特點(diǎn)
在線計(jì)費(fèi)根據(jù)在線計(jì)費(fèi)消息進(jìn)行正算與反算,同時(shí)結(jié)合網(wǎng)元的實(shí)時(shí)話務(wù)控制能力,對(duì)欠費(fèi)風(fēng)險(xiǎn)進(jìn)行控制。OCS(Online Charging System,在線計(jì)費(fèi)系統(tǒng))需具備以下特點(diǎn):
(1)高性能
◆內(nèi)存計(jì)算:基于內(nèi)存數(shù)據(jù)庫(kù)進(jìn)行計(jì)算,優(yōu)化流程、內(nèi)存數(shù)據(jù)庫(kù)存儲(chǔ)和性能。
◆分布式:采用了集群化部署、分布式內(nèi)存數(shù)據(jù)庫(kù)、分布式文件系統(tǒng)等,具備了負(fù)載均衡、路由管理和分布式計(jì)算。其中,分布式內(nèi)存數(shù)據(jù)庫(kù)是完整的基于內(nèi)存的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)。
◆高速網(wǎng)絡(luò)帶寬:引入萬(wàn)兆網(wǎng)、InfiniBand網(wǎng)絡(luò)。InfiniBand網(wǎng)絡(luò)是一種不同于傳統(tǒng)以太網(wǎng)的技術(shù),支持多通道并發(fā)鏈接的“轉(zhuǎn)換線纜”技術(shù),是將存儲(chǔ)、網(wǎng)絡(luò)和服務(wù)器連在一起的I/O技術(shù)。
(2)高可用
◆切換接管:在線計(jì)費(fèi)應(yīng)用集群部署同質(zhì)化,即集群內(nèi)各個(gè)節(jié)點(diǎn)無(wú)差異,同質(zhì)化部署,能夠互相替代;提升應(yīng)用、內(nèi)存數(shù)據(jù)庫(kù)快速接管能力;多中心容災(zāi)部署。
◆會(huì)話管理:對(duì)會(huì)話進(jìn)行保存且備份。
◆消息重發(fā):先在網(wǎng)元側(cè)有重發(fā),然后在BOSS系統(tǒng)也進(jìn)行消息重發(fā),有了“雙保險(xiǎn)”。
(3)應(yīng)用集群可水平擴(kuò)展
◆支持集群內(nèi)新增在線計(jì)費(fèi)應(yīng)用節(jié)點(diǎn),新節(jié)點(diǎn)就緒后在線消息再分發(fā)任務(wù)給其處理,應(yīng)用節(jié)點(diǎn)擴(kuò)展過程中不中斷業(yè)務(wù)處理。
◆新增節(jié)點(diǎn)集群業(yè)務(wù)處理性能可線性增強(qiáng)。
(4)應(yīng)用與數(shù)據(jù)分離
在線計(jì)費(fèi)集群不保存客戶資料、賬務(wù)信息等數(shù)據(jù),在線計(jì)費(fèi)節(jié)點(diǎn)通過統(tǒng)一數(shù)據(jù)訪問引擎獲取客戶資料、賬務(wù)信息和會(huì)話信息等數(shù)據(jù),實(shí)現(xiàn)應(yīng)用與數(shù)據(jù)分離。
(5)異常、超時(shí)會(huì)話的存儲(chǔ)周期可進(jìn)行配置
3 基于消息重發(fā)的在線計(jì)費(fèi)系統(tǒng)可靠性
提升設(shè)計(jì)
新引入了消息重發(fā)和緩存模塊,為了提升可靠性,應(yīng)盡可能地將消息緩存?zhèn)浞菰谡麄€(gè)業(yè)務(wù)流程的前面,以減少信息丟失的可能性,如將緩存布置在在線接入應(yīng)用層。并且在BDS(Billing Data Service,計(jì)費(fèi)數(shù)據(jù)服務(wù))做相應(yīng)的避重處理以提升在線計(jì)費(fèi)系統(tǒng)可靠性,從而減少丟包率和提高在線率。在線計(jì)費(fèi)系統(tǒng)架構(gòu)采用分層設(shè)計(jì),主要由在線接入層、計(jì)費(fèi)應(yīng)用層、賬務(wù)數(shù)據(jù)層、數(shù)據(jù)持久層構(gòu)成。
基于消息重發(fā)的在線計(jì)費(fèi)系統(tǒng)功能架構(gòu)圖如圖1所示:
具體說明如下:
(1)在線接入層:完成服務(wù)使用記錄的采集、數(shù)據(jù)傳輸、格式轉(zhuǎn)換、數(shù)據(jù)分發(fā)、負(fù)載均衡功能。
◆在線采集包含了協(xié)議適配、路由管理、DCC(Diameter Credit Control,信用控制協(xié)議)匯接代理。
◆數(shù)據(jù)傳輸完成了采集網(wǎng)元與BOSS之間、省BOSS與總部BOSS系統(tǒng)或其他運(yùn)營(yíng)商之間數(shù)據(jù)的傳輸。
◆格式轉(zhuǎn)換:從原始服務(wù)使用記錄到標(biāo)準(zhǔn)服務(wù)使用記錄的轉(zhuǎn)換。
◆消息重發(fā):當(dāng)系統(tǒng)出現(xiàn)異常,消息處理不成功或者丟失時(shí),會(huì)觸發(fā)消息重發(fā)模塊進(jìn)行重發(fā)消息,再次進(jìn)入在線處理流程。
◆消息緩存:當(dāng)消息從網(wǎng)元發(fā)過來時(shí),同時(shí)在接入層備份一份消息存在緩存中。
(2)計(jì)費(fèi)應(yīng)用層
◆依據(jù)產(chǎn)品服務(wù)資費(fèi)、用戶資料信息和計(jì)費(fèi)資源完成個(gè)人客戶GPRS(General Packet Radio Service,通用分組無(wú)線服務(wù))業(yè)務(wù)的計(jì)費(fèi)過程,按照優(yōu)惠方式批價(jià)。
◆詳單管理暫時(shí)改為清單直接寫入文件系統(tǒng)落地。
◆計(jì)費(fèi)引擎根據(jù)計(jì)費(fèi)依據(jù)和計(jì)費(fèi)規(guī)則對(duì)輸入的待批價(jià)數(shù)據(jù)進(jìn)行費(fèi)用、費(fèi)率以及可用額度等的計(jì)算。
◆計(jì)費(fèi)引擎需要具備正算和反算的能力。正算是指根據(jù)用戶產(chǎn)品訂購(gòu)、業(yè)務(wù)資費(fèi)、用戶信息等計(jì)算使用的費(fèi)用;反算是指用戶使用產(chǎn)品服務(wù)過程中,實(shí)時(shí)計(jì)費(fèi)控制傳遞業(yè)務(wù)使用信息給計(jì)費(fèi)引擎,計(jì)費(fèi)引擎按照賬戶余額、用戶信息、訂購(gòu)產(chǎn)品、產(chǎn)品資費(fèi)和優(yōu)惠等信息,計(jì)算可使用的業(yè)務(wù)額度。
◆預(yù)處理:檢錯(cuò)完成了對(duì)原始服務(wù)使用記錄的有效性、準(zhǔn)確性和完整性檢查;糾錯(cuò)是針對(duì)檢錯(cuò)輸出的記錄進(jìn)行糾正,未能糾正的記錄則形成錯(cuò)單。
(3)賬務(wù)數(shù)據(jù)服務(wù)層
◆用戶資料管理、累積量管理、余額管理、免費(fèi)資源管理。
◆實(shí)現(xiàn)應(yīng)用與數(shù)據(jù)分離,屏蔽應(yīng)用對(duì)數(shù)據(jù)的可見性,實(shí)現(xiàn)“數(shù)據(jù)訪問方式”、“數(shù)據(jù)路由方式”驗(yàn)證。
◆避重處理:當(dāng)消息被觸發(fā)重發(fā)之后,會(huì)對(duì)緩存中的消息進(jìn)行刪除或者標(biāo)記,以避免信息重復(fù)處理。
(4)數(shù)據(jù)持久層
◆可分為資料庫(kù)、賬單庫(kù)、會(huì)話庫(kù)和余額庫(kù),采用主備部署方式。
◆保證系統(tǒng)可靠性、可擴(kuò)展和數(shù)據(jù)一致性。
基于消息重發(fā)的在線計(jì)費(fèi)系統(tǒng)業(yè)務(wù)流程圖如圖2所示。
具體說明如下:
(1)用戶在通話請(qǐng)求時(shí),向控制網(wǎng)元發(fā)起實(shí)時(shí)計(jì)費(fèi)請(qǐng)求;BOSS系統(tǒng)收到在線計(jì)費(fèi)請(qǐng)求。
(2)對(duì)采集和預(yù)處理消息進(jìn)行緩存與備份,對(duì)在線控制協(xié)議進(jìn)行適配路由,將格式轉(zhuǎn)換后的實(shí)時(shí)計(jì)費(fèi)消息發(fā)給相應(yīng)的計(jì)費(fèi)應(yīng)用節(jié)點(diǎn)。
(3)識(shí)別在線計(jì)費(fèi)消息對(duì)應(yīng)的業(yè)務(wù)。
(4)業(yè)務(wù)授權(quán):依據(jù)業(yè)務(wù)識(shí)別結(jié)果對(duì)用戶服務(wù)使用鑒權(quán)。對(duì)于不需要實(shí)時(shí)計(jì)費(fèi)的消息則返回放通消息;鑒權(quán)通過則進(jìn)入反算流程;鑒權(quán)失敗則返回用戶無(wú)法使用服務(wù)應(yīng)答。
(5)融合控制:依據(jù)配置的實(shí)時(shí)計(jì)費(fèi)流程,調(diào)用計(jì)費(fèi)引擎與實(shí)時(shí)出賬來計(jì)算用戶業(yè)務(wù)資費(fèi),根據(jù)BDS返回的用戶余額預(yù)留余額和用量,并通過在線采集在線控制通話。
(6)完成通話后,業(yè)務(wù)控制網(wǎng)元通過采集預(yù)處理向融合計(jì)費(fèi)傳遞通話情況,融合計(jì)費(fèi)依據(jù)服務(wù)使用量批價(jià),并通過BDS扣減余額。若出現(xiàn)異常情況時(shí),則會(huì)觸發(fā)重發(fā)進(jìn)行再次在線計(jì)費(fèi),并進(jìn)行避重處理,以避免多次計(jì)費(fèi)、數(shù)據(jù)重復(fù)等情況。
(7)在線計(jì)費(fèi)話單生成:用戶在線話單生成,同時(shí)生成整個(gè)在線計(jì)費(fèi)過程生成的日志。
4 在線計(jì)費(fèi)系統(tǒng)原型驗(yàn)證分析
本次原型實(shí)驗(yàn)采用Redis分布式緩存同步方式來進(jìn)行消息重發(fā),可提升在線計(jì)費(fèi)可靠性,但同時(shí)會(huì)降低一定的性能。在線計(jì)費(fèi)系統(tǒng)原型結(jié)構(gòu)圖如圖3所示:
基于消息緩存重發(fā)與無(wú)重發(fā)情況下,多次模擬異常場(chǎng)景(斷掉計(jì)費(fèi)應(yīng)用節(jié)點(diǎn)),在同樣軟硬件配置和并發(fā)數(shù)情況下,在線率和資源占用情況對(duì)比如表1所示:
一個(gè)好的重發(fā)設(shè)計(jì)方案對(duì)于系統(tǒng)的可靠性和性能都至關(guān)重要。目前驗(yàn)證發(fā)現(xiàn)重發(fā)機(jī)制對(duì)可靠性影響較大,其次就是并發(fā)壓力也會(huì)存在一定的影響。通過本次原型開發(fā)驗(yàn)證,對(duì)基于消息重發(fā)的在線計(jì)費(fèi)系統(tǒng)可靠性提升建議如下:
(1)業(yè)務(wù)流程上增加消息重發(fā)可以提升在線可靠性,但應(yīng)盡量減少因消息重發(fā)而增加的業(yè)務(wù)流程,這樣可以相對(duì)減少整個(gè)在線計(jì)費(fèi)過程時(shí)延。為了盡量縮短業(yè)務(wù)流程,可將消息重發(fā)盡可能設(shè)置在整個(gè)流程的最前面,如在線接入應(yīng)用層。
(2)消息緩存?zhèn)浞輵?yīng)盡可能靠前,以減少消息丟失和重發(fā)的可能性。
(3)業(yè)務(wù)并發(fā)數(shù)需要權(quán)衡可靠性和性能,有重發(fā)情況下雖然可靠性得到提升,但隨著并發(fā)數(shù)據(jù)的增加,性能的下降速度比無(wú)重發(fā)情況下要快,可以通過設(shè)定閾值多次驗(yàn)證得到合適的并發(fā)壓力。
(4)重發(fā)次數(shù)也是影響可靠性和性能的一個(gè)重要因素,需要對(duì)重發(fā)次數(shù)做合理限制,處理原則是若某條消息成功完成了在線計(jì)費(fèi),則在避重處理過程中可將存在緩存庫(kù)中的該信息刪除或者備份取出,以保證可靠性和性能。
(5)重發(fā)掃描頻率應(yīng)根據(jù)系統(tǒng)資源情況設(shè)置。
5 結(jié)束語(yǔ)
本文通過對(duì)電信在線計(jì)費(fèi)系統(tǒng)特征、架構(gòu)設(shè)計(jì)和業(yè)務(wù)流程進(jìn)行介紹、分析及設(shè)計(jì),討論了基于消息緩存和重發(fā)的在線計(jì)費(fèi)系統(tǒng)可靠性提升方法,并以原型開發(fā)進(jìn)行驗(yàn)證分析,給出了在線計(jì)費(fèi)系統(tǒng)可靠性提升建議,為電信企業(yè)在線計(jì)費(fèi)可靠性提升提供一種開發(fā)設(shè)計(jì)和建設(shè)技術(shù)參考。
參考文獻(xiàn):
[1] 王海燕. 在線計(jì)費(fèi)系統(tǒng)的架構(gòu)與應(yīng)用[J]. 軟件工程師, 2015(8): 46-48.
[2] 陳永華,張東生,楊碩. 在線計(jì)費(fèi)系統(tǒng)高可靠性設(shè)計(jì)方法探討[J]. 電信技術(shù), 2011(1): 84-85.
[3] 李福慶,李良. 在線計(jì)費(fèi)系統(tǒng)(OCS)云化部署架構(gòu)研究[J]. 郵電設(shè)計(jì)技術(shù), 2013(12): 17-21.
[4] 朱穎輝. OCS在線計(jì)費(fèi)系統(tǒng)解決方案分析[J]. 信息通信技術(shù), 2009(6): 33-36.
[5] 武振宇. 內(nèi)存數(shù)據(jù)庫(kù)及其在實(shí)時(shí)計(jì)費(fèi)系統(tǒng)中的應(yīng)用[J]. 電信工程技術(shù)與標(biāo)準(zhǔn)化, 2012(3): 62-65.
[6] 張健,阮前. 淺析計(jì)費(fèi)系統(tǒng)性能的影響因素及優(yōu)化措施[J]. 計(jì)算機(jī)光盤軟件與應(yīng)用, 2012(16): 65-66.
[7] 王偉,楊利,劉建鋒. 一種高性能計(jì)算環(huán)境中的計(jì)費(fèi)系統(tǒng)[J]. 計(jì)算機(jī)工程與科學(xué), 2008(1): 148-150.
[8] 張江偉,司麗娜,張志鋒. 基于J2EE的電信計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 科技信息, 2008(33): 71-72.
[9] 李蔚,張效尉,李剛. 內(nèi)存數(shù)據(jù)庫(kù)應(yīng)用于電信計(jì)費(fèi)系統(tǒng)的研究與實(shí)現(xiàn)[J]. 鄭州輕工業(yè)學(xué)院學(xué)報(bào): 自然科學(xué)版, 2008(3): 42-44.
[10] 王慧嬪. 基于MMDB技術(shù)對(duì)電信計(jì)費(fèi)系統(tǒng)研究與實(shí)現(xiàn)的探討[J]. 科技資訊, 2009(16): 230.★