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