張春秋,劉宏國(guó),杜 穎,謝季川
(國(guó)網(wǎng)山東省電力公司電力科學(xué)研究院,山東 濟(jì)南250001)
摘 要: 隨著電力行業(yè)短信服務(wù)業(yè)務(wù)的開(kāi)展,使用短信進(jìn)行數(shù)據(jù)實(shí)時(shí)交互的用戶越來(lái)越多。短信服務(wù)的推廣應(yīng)用在一定程度上減少了客戶電話的呼入數(shù)量,提高了服務(wù)效率,但中心的短信平臺(tái)建設(shè)較早,隨著短信發(fā)送數(shù)量的增加,服務(wù)存在一定的瓶頸。本文對(duì)短信發(fā)送能力與發(fā)送策略進(jìn)行改進(jìn),提升了短信發(fā)送速度,提高了短信發(fā)送數(shù)量及短信發(fā)送的準(zhǔn)確性與及時(shí)性,保障客戶發(fā)送查詢短信及時(shí)響應(yīng),為省公司“六位一體”智能互動(dòng)服務(wù)平臺(tái)建設(shè)提供支撐。
關(guān)鍵詞: 短信;發(fā)送能力;發(fā)送策略;時(shí)延;重發(fā)機(jī)制;時(shí)效性
0 引言
隨著通信行業(yè)的迅猛發(fā)展與手機(jī)應(yīng)用的普及,手機(jī)短信成為了人們?nèi)粘I钪屑橙⊥獠啃畔⒌闹匾ㄐ欧绞?,短信服?wù)越來(lái)越受到客戶群體的關(guān)注,國(guó)網(wǎng)山東公司為提升對(duì)外服務(wù)的廣度和深度,提高服務(wù)效率,開(kāi)通了短信服務(wù)平臺(tái),客戶通過(guò)發(fā)送短信對(duì)電量電費(fèi)、銀行代扣信息、抄表例日、居民階梯電價(jià)及其他常見(jiàn)問(wèn)題進(jìn)行查詢[1]。近幾年由于短信客戶數(shù)量的增加,特別是在收費(fèi)高峰期短信量突增,超出平臺(tái)發(fā)送能力,平臺(tái)無(wú)法及時(shí)推送所有短信,導(dǎo)致部分短信發(fā)送延遲或發(fā)送失敗,降低了信息傳遞的時(shí)效性[2]??蛻粲捎跓o(wú)法及時(shí)通過(guò)短信獲知電費(fèi)等信息,撥打95598客服熱線進(jìn)行電話咨詢,增加了人工話務(wù)量。國(guó)網(wǎng)山東公司為提高客戶服務(wù)滿意度,提升服務(wù)水平,對(duì)短信平臺(tái)進(jìn)行優(yōu)化升級(jí),滿足客戶實(shí)際需求。
1 短信平臺(tái)功能架構(gòu)
1.1 短信平臺(tái)簡(jiǎn)介
如圖1,國(guó)網(wǎng)山東電力95598短信平臺(tái)主要包括短信管理服務(wù)器、短信前置機(jī)、短信數(shù)據(jù)庫(kù)。短信管理服務(wù)器主要用來(lái)處理短信具體的業(yè)務(wù),并向相關(guān)業(yè)務(wù)系統(tǒng)提供短信接口服務(wù)。短信前置機(jī)和相應(yīng)的運(yùn)營(yíng)商的短信網(wǎng)關(guān)進(jìn)行通信,由運(yùn)營(yíng)商將待發(fā)送的短信內(nèi)容發(fā)送到客戶預(yù)留手機(jī)號(hào)碼上,同時(shí)短信前置機(jī)可以通過(guò)短信網(wǎng)關(guān)接收客戶發(fā)往國(guó)網(wǎng)山東電力的短信,并最終通過(guò)短信管理服務(wù)器將接收到的短信內(nèi)容轉(zhuǎn)發(fā)至各業(yè)務(wù)系統(tǒng)進(jìn)行后續(xù)服務(wù)處理。短信數(shù)據(jù)庫(kù)主要用來(lái)存放短信的收發(fā)記錄。
1.2 架構(gòu)設(shè)計(jì)
如圖2所示,短信平臺(tái)主要包括表現(xiàn)層、業(yè)務(wù)層、持久層、數(shù)據(jù)層4部分。
(1)表現(xiàn)層:表現(xiàn)層主要用于與用戶交互的界面,頁(yè)面向用戶顯示短信平臺(tái)相關(guān)數(shù)據(jù),并能接收用戶的輸入請(qǐng)求,但它并不進(jìn)行實(shí)際的業(yè)務(wù)邏輯處理。
(2)業(yè)務(wù)層:以依賴注入的方式,控制短信的發(fā)送、接收流程,業(yè)務(wù)層接收用戶的輸入,以一定的邏輯去完成用戶的請(qǐng)求。
?。?)持久層:持久層主要為業(yè)務(wù)層提供刪除,新增,更新,查找,數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程接口,使業(yè)務(wù)層無(wú)需關(guān)心數(shù)據(jù)庫(kù)的操作。
?。?)數(shù)據(jù)層:數(shù)據(jù)層采用Oracle 10g 存儲(chǔ)接收和發(fā)送的短信。
1.3 短信發(fā)送流程介紹
短信發(fā)送流程指從短信生成傳送至運(yùn)營(yíng)商到運(yùn)營(yíng)商將短信發(fā)送情況反饋至業(yè)務(wù)系統(tǒng),主要包括八個(gè)環(huán)節(jié),如圖3所示。
圖1中,①數(shù)據(jù)庫(kù)服務(wù)器調(diào)用Webservice接口提交短信發(fā)送請(qǐng)求;②③④⑤⑥⑦短信系統(tǒng)內(nèi)部處理機(jī)制,負(fù)責(zé)將請(qǐng)求發(fā)送的短信提交到短信前置機(jī)中進(jìn)行發(fā)送,獲取通信運(yùn)營(yíng)商的返回的短信消息報(bào)告信息以及發(fā)送結(jié)界信息,并將信息記錄到短信數(shù)據(jù)庫(kù)服務(wù)器中;⑧短信接口服務(wù)器檢測(cè)短信發(fā)送返回信息,包含短信消息報(bào)告以及短信發(fā)送結(jié)果信息返回給業(yè)務(wù)系統(tǒng)。
1.4 短信接收流程介紹
短信接收流程指客戶發(fā)送短信通過(guò)運(yùn)營(yíng)商傳送至國(guó)網(wǎng)山東電力業(yè)務(wù)系統(tǒng)的過(guò)程,主要包括四個(gè)環(huán)節(jié),如圖4所示。
圖中,①②③短信系統(tǒng)內(nèi)部處理機(jī)制,負(fù)責(zé)將通信運(yùn)營(yíng)商短信網(wǎng)關(guān)到達(dá)的新短信提交并將到短信數(shù)據(jù)庫(kù)服務(wù)器中;④短信接口服務(wù)器檢測(cè)短信到達(dá)信息,通知業(yè)務(wù)接口服務(wù)有短信到達(dá),并將短信到達(dá)接口的數(shù)據(jù)傳入業(yè)務(wù)接口服務(wù)。
1.5 短信平臺(tái)功能介紹
國(guó)網(wǎng)山東電力短信平臺(tái)具備基礎(chǔ)功能、運(yùn)營(yíng)管理、風(fēng)險(xiǎn)管理、接口服務(wù)4大類業(yè)務(wù),18個(gè)功能模塊。
基礎(chǔ)功能包括短信收發(fā)引擎、短信負(fù)載均衡機(jī)制、短信通道管理、運(yùn)營(yíng)商接口服務(wù)配置、業(yè)務(wù)服務(wù)平臺(tái)認(rèn)證、日志管理等功能模塊。
運(yùn)營(yíng)管理包括發(fā)送策略管理、短信隊(duì)列監(jiān)控、取消短信發(fā)送、發(fā)送時(shí)間段管理、禁發(fā)時(shí)間段管理、發(fā)送狀態(tài)查詢、統(tǒng)計(jì)分析等功能模塊。
風(fēng)險(xiǎn)管理包括重發(fā)告警功能模塊。
接口服務(wù)包括:針對(duì)運(yùn)營(yíng)商的電信、移動(dòng)、聯(lián)通服務(wù)接口;針對(duì)業(yè)務(wù)系統(tǒng)的短信發(fā)送、接收服務(wù)和短信發(fā)送狀態(tài)接口服務(wù)。
目前短信平臺(tái)承載營(yíng)銷業(yè)務(wù)支持系統(tǒng)中所有的業(yè)務(wù)短信發(fā)送業(yè)務(wù),包括電費(fèi)訂閱信息發(fā)送、電費(fèi)發(fā)行通知、電費(fèi)代扣通知、欠費(fèi)催繳、業(yè)務(wù)咨詢回復(fù)、停電通知、短信自助查詢、自助繳費(fèi)成功通知、居民階梯電價(jià)超檔提醒、遠(yuǎn)程費(fèi)控用戶電費(fèi)預(yù)警、停電預(yù)警、停復(fù)電通知等。目前高峰短信發(fā)送量達(dá)100萬(wàn)條。
2 常見(jiàn)異常及解決方案
2.1 短信重復(fù)發(fā)送
2.1.1 異常描述
同一手機(jī)號(hào)碼多次收到國(guó)網(wǎng)山東電力發(fā)送的短信,且短信內(nèi)容相同。
2.1.2 問(wèn)題分析
根據(jù)重復(fù)發(fā)送號(hào)碼查詢短信數(shù)據(jù)庫(kù)中的歷史發(fā)送信息發(fā)現(xiàn),由于短信平臺(tái)誤認(rèn)為提交短信網(wǎng)關(guān)失敗導(dǎo)致多次重發(fā)。
(1)檢查數(shù)據(jù)庫(kù)中存儲(chǔ)的短信內(nèi)容和短信發(fā)送記錄,發(fā)現(xiàn)短信內(nèi)容有1條記錄為發(fā)送成功,但是發(fā)送記錄有多條,每條之間的間隔是20 min左右。
?。?)根據(jù)短信發(fā)送號(hào)碼查詢短信發(fā)送日志,發(fā)現(xiàn)在向短信網(wǎng)關(guān)提交時(shí)運(yùn)營(yíng)商網(wǎng)關(guān)返回錯(cuò)誤代碼400,短信平臺(tái)認(rèn)為提交短信網(wǎng)關(guān)失敗,又對(duì)該條短信進(jìn)行了提交造成短信發(fā)送重復(fù)。
?。?)多次提交的過(guò)程中發(fā)送成功的回執(zhí)已經(jīng)返回,但發(fā)送進(jìn)程未對(duì)該回執(zhí)信息進(jìn)行判斷。
2.1.3 問(wèn)題解決
?。?)為提高信息發(fā)送可靠性與及時(shí)性,將重發(fā)周期設(shè)置為2小時(shí),重發(fā)次數(shù)設(shè)置為3次,重發(fā)時(shí)間為9點(diǎn)~21點(diǎn);
?。?)在重新發(fā)送時(shí)增加判斷條件,有發(fā)送成功的記錄時(shí)便不再進(jìn)行發(fā)送;
?。?)對(duì)等待網(wǎng)關(guān)回執(zhí)的短信超過(guò)2小時(shí)的直接當(dāng)做發(fā)送失敗處理短信發(fā)送;
?。?)優(yōu)化短信回執(zhí)的處理效率和發(fā)送是對(duì)短信狀態(tài)的判斷;
?。?)修改電信的網(wǎng)關(guān)測(cè)試程序,在接收到短信平臺(tái)提交的短信發(fā)送請(qǐng)求時(shí)隨機(jī)返回錯(cuò)誤信息,測(cè)試成功后批量發(fā)送電信短信進(jìn)行驗(yàn)證,測(cè)試通過(guò)。
2.2 短信發(fā)送速度慢
2.2.1 異常描述
客戶手機(jī)號(hào)碼通過(guò)業(yè)務(wù)系統(tǒng)發(fā)送信息后,號(hào)碼長(zhǎng)時(shí)間內(nèi)無(wú)法收到信息,或接收信息時(shí)間超過(guò)系統(tǒng)設(shè)定的發(fā)送時(shí)間,客戶短信接收時(shí)延過(guò)大會(huì)影響用戶感知,造成用戶投訴。
2.2.2 問(wèn)題分析
短信業(yè)務(wù)不同于語(yǔ)音業(yè)務(wù),它是一種非實(shí)時(shí)性的通信業(yè)務(wù),存在一定程度的時(shí)延是正常的、合理的。短信發(fā)送量大、用戶不在服務(wù)區(qū)等不同方面的因素都會(huì)導(dǎo)致短信不能正常發(fā)送至客戶手機(jī)或信息發(fā)送延遲的現(xiàn)象。
檢查日志發(fā)現(xiàn),短信平臺(tái)將短信提交運(yùn)營(yíng)商網(wǎng)關(guān)后等待運(yùn)營(yíng)商網(wǎng)關(guān)返回提交是否成功的狀態(tài),收到狀態(tài)信息后,再發(fā)送下一條短信。因短信平臺(tái)到短信網(wǎng)關(guān)的網(wǎng)絡(luò)速度有延遲,短信業(yè)務(wù)量小時(shí)速度還能保證,發(fā)送量大時(shí)又需要接收大量的短信狀態(tài)報(bào)告占用接收的時(shí)間,因此發(fā)送的短信速度只能達(dá)到3~5條。
2.2.3 問(wèn)題解決
?。?)將短信平臺(tái)提交短信網(wǎng)關(guān)發(fā)送的模式由串行改為并行,即短信平臺(tái)按照短信網(wǎng)關(guān)給定的發(fā)送速率,每秒提交50條短信給短信平臺(tái),不再等待短信平臺(tái)的返回信息。
?。?)設(shè)置專門的報(bào)告表示接收短信平臺(tái)提交的回執(zhí)信息和短信的發(fā)送狀態(tài)。
?。?)開(kāi)啟多個(gè)進(jìn)程進(jìn)行短信發(fā)送,提高發(fā)送的速度。
2.3 短信發(fā)送狀態(tài)異常
2.3.1 異常描述
為監(jiān)控短信發(fā)送情況,值班人員每日在業(yè)務(wù)系統(tǒng)中對(duì)短信發(fā)送狀態(tài)、發(fā)送數(shù)量、歷史發(fā)送情況等信息進(jìn)行實(shí)時(shí)查詢、測(cè)試,發(fā)現(xiàn)業(yè)務(wù)系統(tǒng)中短信發(fā)送狀態(tài)為失敗或發(fā)送中,測(cè)試手機(jī)已收到短信,且內(nèi)容完整,導(dǎo)致數(shù)據(jù)統(tǒng)計(jì)不準(zhǔn)確,無(wú)法將短信發(fā)送信息作為服務(wù)質(zhì)量分析數(shù)據(jù)支撐。
2.3.2 問(wèn)題分析
為檢驗(yàn)發(fā)送狀態(tài)不一致是否與傳送速度相關(guān),在測(cè)試系統(tǒng)中進(jìn)行壓力測(cè)試,將10個(gè)短信發(fā)送進(jìn)程在同一個(gè)時(shí)間從營(yíng)銷數(shù)據(jù)庫(kù)通過(guò)WebService接口發(fā)送36 000條短信到短信平臺(tái),短信平臺(tái)在接收到要發(fā)送的短信數(shù)據(jù)后,將狀態(tài)回寫入營(yíng)銷業(yè)務(wù)系統(tǒng),將營(yíng)銷業(yè)務(wù)系統(tǒng)的發(fā)送狀態(tài)從未發(fā)送更改為發(fā)送中,具體數(shù)據(jù)如圖5所示。
通過(guò)對(duì)測(cè)試數(shù)據(jù)進(jìn)行分析,10條短信發(fā)送線程并發(fā),共發(fā)送36 000條短信,預(yù)計(jì)發(fā)送時(shí)間為1 min,實(shí)際發(fā)送時(shí)間為2分50秒,響應(yīng)時(shí)間偏慢。
2.3.3 問(wèn)題解決
為解決短信發(fā)送狀態(tài)異常問(wèn)題,對(duì)圖5中的數(shù)據(jù)進(jìn)行分析。
?。?)從圖5報(bào)告中可看出,數(shù)據(jù)庫(kù)并不存在性能壓力。
?。?)從圖5報(bào)告中查到有一條SQL語(yǔ)句執(zhí)行時(shí)長(zhǎng)偏大,占用的buffer gets較多。存在性能問(wèn)題的語(yǔ)句如下:
select * from (select msend0_.ID as col_0_0_ from M_SEND msend0_where msend0_.MSG_CLIENT_REMARK1 = :1 and msend0_.MSG_SEND_DAY >= :2)
單獨(dú)執(zhí)行此語(yǔ)句,執(zhí)行結(jié)果如圖6。
M_SEND表是短信收發(fā)表,在查詢的字段上沒(méi)有創(chuàng)建索引,由于目前該表數(shù)據(jù)量較小,全表掃描不會(huì)造成性能影響,但隨著數(shù)據(jù)量的增加,會(huì)造成性能隱患,通過(guò)與開(kāi)發(fā)確認(rèn)后,開(kāi)發(fā)反饋的信息是該表每月會(huì)做一次歸檔。由于全省短信發(fā)送高峰期的月數(shù)據(jù)為3 300萬(wàn)條,因此在這兩個(gè)字段上創(chuàng)建聯(lián)合索引,降低掃描時(shí)間。
經(jīng)過(guò)對(duì)短信平臺(tái)進(jìn)行調(diào)整,大大提高了短信發(fā)送能力。未調(diào)整短信平臺(tái)發(fā)送參數(shù)時(shí),總共耗費(fèi)了20 min的時(shí)間才將數(shù)據(jù)發(fā)送完,在進(jìn)行短信平臺(tái)發(fā)送參數(shù)調(diào)整后,發(fā)送時(shí)間在3 min之內(nèi)。為進(jìn)一步提高短信發(fā)送效率,可繼續(xù)通過(guò)優(yōu)化短信發(fā)送線程休眠時(shí)間、隊(duì)列維護(hù)線程休眠時(shí)間、一次連接同時(shí)發(fā)送的短信數(shù)量、發(fā)送線程數(shù)量、隊(duì)列最大長(zhǎng)度等參數(shù)來(lái)縮短短信的收發(fā)時(shí)間。
3 發(fā)送策略優(yōu)化
3.1 短信重發(fā)機(jī)制
短信業(yè)務(wù)主要分為訂閱類與非訂閱類。訂閱類短信主要包括電量電費(fèi)信息、銀行代扣信息;非訂閱類短信主要包括欠費(fèi)催繳、停電通知、自助繳費(fèi)成功通知等。根據(jù)短信內(nèi)容重要性及業(yè)務(wù)需求時(shí)限性制定重發(fā)機(jī)制,以增加短信發(fā)送成功率和降低客戶重復(fù)接收次數(shù)為原則,對(duì)未發(fā)送成功的短信或回執(zhí)錯(cuò)誤的短信進(jìn)行重發(fā),確??蛻艨梢约皶r(shí)收到短信。
3.1.1 訂閱短信
訂閱類短信為客戶主動(dòng)訂閱的短信,屬于優(yōu)先級(jí)較高的信息,當(dāng)系統(tǒng)觸發(fā)此類短信時(shí),優(yōu)先進(jìn)入排隊(duì)序列進(jìn)行信息發(fā)送。發(fā)送失敗后,系統(tǒng)當(dāng)日對(duì)信息進(jìn)行3次重發(fā),確??蛻艏皶r(shí)收到短信。
3.1.2 非訂閱類短信
非訂閱類短信為國(guó)網(wǎng)山東電力根據(jù)業(yè)務(wù)發(fā)展需求,向客戶主動(dòng)推送的短信,發(fā)送優(yōu)先級(jí)較低。發(fā)送失敗后,如果當(dāng)天發(fā)送量較高,將于次日進(jìn)行3次重發(fā),每次重發(fā)按照發(fā)送次序進(jìn)入排隊(duì)序列。
3.2 發(fā)送號(hào)碼優(yōu)化
為提高短信平臺(tái)信息發(fā)送成功率,減少因號(hào)碼錯(cuò)誤造成的信息發(fā)送失敗數(shù),對(duì)半年內(nèi)發(fā)送失敗的號(hào)碼進(jìn)行統(tǒng)計(jì)分析,對(duì)于長(zhǎng)時(shí)間不使用的號(hào)碼從發(fā)送隊(duì)列中刪除。系統(tǒng)發(fā)送失敗主要為客戶終端原因、短信平臺(tái)推送原因、運(yùn)營(yíng)商發(fā)送原因三類。
(1)客戶終端原因
對(duì)近期發(fā)送失敗的號(hào)碼進(jìn)行篩選,處于關(guān)機(jī)、停機(jī)、空號(hào)的號(hào)碼放在最后發(fā)送,并且每月對(duì)號(hào)碼發(fā)送情況進(jìn)行核查,如果連續(xù)3個(gè)月手機(jī)號(hào)碼都處于關(guān)機(jī)、停機(jī)、空號(hào)狀態(tài),將把號(hào)碼導(dǎo)出發(fā)給運(yùn)營(yíng)商進(jìn)行核對(duì),并在系統(tǒng)中取消此號(hào)碼短信發(fā)送權(quán)限。
(2)短信平臺(tái)推送原因
對(duì)短信數(shù)據(jù)生成后平臺(tái)推送運(yùn)營(yíng)商失敗的短信及短信平臺(tái)未在規(guī)定時(shí)間內(nèi)接收到運(yùn)營(yíng)商發(fā)送結(jié)果反饋的短信,系統(tǒng)對(duì)此類失敗短信進(jìn)行重新標(biāo)注并放入發(fā)送隊(duì)列,重發(fā)次數(shù)設(shè)為三次,發(fā)送時(shí)間為9點(diǎn)至21點(diǎn)。
?。?)運(yùn)營(yíng)商發(fā)送原因
短信平臺(tái)接收到運(yùn)營(yíng)商反饋發(fā)送結(jié)果為失敗的短信,系統(tǒng)對(duì)此類短信進(jìn)行重新標(biāo)注,并放入發(fā)送隊(duì)列,重發(fā)次數(shù)設(shè)為三次,發(fā)送時(shí)間為9點(diǎn)至21點(diǎn)。
4 結(jié)論
對(duì)短信平臺(tái)發(fā)送能力及發(fā)送策略進(jìn)行優(yōu)化,可以有效地改善短信接收時(shí)延,提高短信發(fā)送效率,減少電量電費(fèi)、銀行代扣信息、抄表例日、居民階梯電價(jià)及其他常見(jiàn)問(wèn)題查詢的電話呼入數(shù),提高服務(wù)質(zhì)量與服務(wù)效率,更好地為省公司“六位一體”智能互動(dòng)服務(wù)平臺(tái)建設(shè)提供支撐。
參考文獻(xiàn)
[1] 常嘉岳.移動(dòng)多媒體消息業(yè)務(wù)[M].北京:北京郵電大學(xué)出版社,2006.
[2] 黃杰,梁月昌.短消息業(yè)務(wù)時(shí)延分析[J].山東通訊技術(shù),2008,28(1)16-19.