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