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