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