徐樂 趙榮輝
摘要:本文針對企業(yè)級短信應(yīng)用,結(jié)合國內(nèi)外短信業(yè)務(wù)的現(xiàn)狀,深入分析了短信貓的應(yīng)用場景,實(shí)現(xiàn)原理和工作方式,結(jié)合工作需要,提出了基于web服務(wù)的短信貓發(fā)送平臺,詳細(xì)闡述了應(yīng)用開發(fā)流程。運(yùn)用java語言實(shí)現(xiàn)了短信貓的web service服務(wù)器端,企業(yè)級用戶可通過調(diào)用短信貓通信接口,實(shí)現(xiàn)中英文短信的發(fā)送功能,支持常用特殊字符,支持發(fā)送超長短信。本平臺通用性較好,可安裝在Linux的服務(wù)器上,也可以用于windows系統(tǒng),具有穩(wěn)定性高,易維護(hù),易升級等特點(diǎn)。
關(guān)鍵詞:GSM短信貓 web service 超長短信
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2016)09-0193-02
1 引言
近年來,隨著信息技術(shù)的發(fā)展,全球數(shù)字移動(dòng)通信系統(tǒng)(Global System for Mobile Communication,GSM)迅速發(fā)展起來,廣泛應(yīng)用于各個(gè)行業(yè)和領(lǐng)域,是目前較為穩(wěn)定、應(yīng)用面較廣的移動(dòng)通訊方法。短消息業(yè)務(wù)(Short Message Service,SMS)是基于GSM的一項(xiàng)短信通信功能,是GSM網(wǎng)絡(luò)提供給用戶的一種有別于語音傳輸?shù)幕就ㄓ崢I(yè)務(wù)[1],具有實(shí)時(shí)性強(qiáng)、成本低廉、無線傳輸?shù)葍?yōu)勢,也引起了諸多系統(tǒng)運(yùn)營商的高度關(guān)注,許多針對該業(yè)務(wù)的應(yīng)用也迅速開發(fā)出來。基于技術(shù)發(fā)展現(xiàn)狀和業(yè)務(wù)需求,筆者開發(fā)了基于WEB的短信發(fā)送平臺,可應(yīng)用于中小企業(yè)的即時(shí)短信通訊,便于提高企業(yè)內(nèi)部的溝通能力和管理效率。
主要的短信傳輸方法:(1)通過運(yùn)營商網(wǎng)關(guān)發(fā)送。開發(fā)者可向各大運(yùn)營商申請網(wǎng)關(guān),無需任何硬件配合,即可實(shí)現(xiàn)大規(guī)模的短信收發(fā)系統(tǒng),較為便捷,但價(jià)格昂貴;(2)通過GSM MODEM模塊實(shí)現(xiàn)PC對手機(jī)收發(fā)信息。GSM MODEM通常為短信貓,通過此模塊,結(jié)合短信控制的AT指令以及串口傳輸協(xié)議,即可實(shí)現(xiàn)小規(guī)模的短信收發(fā)系統(tǒng)的開發(fā);(3)通過一些網(wǎng)站提供的短信發(fā)送功能。這種方法易于實(shí)現(xiàn),所需資源少,但對網(wǎng)絡(luò)的依賴性很強(qiáng),不利于集成到企業(yè)的管理系統(tǒng)中。根據(jù)實(shí)際需要,本系統(tǒng)采用GSM MODEM模塊的方法來實(shí)現(xiàn)基于WEB的短信發(fā)送平臺。
2 短消息業(yè)務(wù)
短消息業(yè)務(wù)(SMS)指通過無線網(wǎng)絡(luò)和短消息中心,在手機(jī)之間以及手機(jī)和業(yè)務(wù)平臺之間,交換有限長度的文本或二進(jìn)制短消息,實(shí)現(xiàn)信息的存儲和轉(zhuǎn)發(fā)功能。短消息業(yè)務(wù)是充分利用移動(dòng)網(wǎng)信令資源前提下發(fā)展起來的業(yè)務(wù),相對于移動(dòng)話音基本業(yè)務(wù),被確認(rèn)為是增值業(yè)務(wù)。短消息服務(wù)具有應(yīng)用面廣泛,成本較低,運(yùn)行穩(wěn)定等特點(diǎn),可廣泛應(yīng)用于頻繁遠(yuǎn)距離小流量消息的傳輸。
短消息的基本業(yè)務(wù)特征:(1)短消息可發(fā)送的信息長度有嚴(yán)格規(guī)定,每條短信最多可傳輸140個(gè)字節(jié),每個(gè)漢字占兩個(gè)字符,英文字母、標(biāo)點(diǎn)符號均占用一個(gè)字符,長度大于140個(gè)字符的為超長短信,需分條發(fā)送;(2)短信屬于非實(shí)時(shí)性業(yè)務(wù),對帶寬和時(shí)延要求低,屬于非面向連接的業(yè)務(wù),是GSM系統(tǒng)中唯一不需要建立端到端信道的服務(wù);(3)采用存儲轉(zhuǎn)發(fā)服務(wù)機(jī)制,即使用戶關(guān)機(jī),沒有任何響應(yīng),也會自動(dòng)保存短信,一旦用戶再次開機(jī),會立刻再次發(fā)送短信,從而保證短信能夠發(fā)送成功,并返回發(fā)送結(jié)果。(4)當(dāng)用戶空閑、通話過程中都可接收短消息。
3 系統(tǒng)設(shè)計(jì)
3.1 短信貓平臺結(jié)構(gòu)
短信貓平臺結(jié)構(gòu)如圖1所示。
3.2 短信貓的硬件連接
首先將作為短信中心的SIM卡放置到短信貓的卡槽內(nèi),將天線固定在信號強(qiáng)的位置,然后用串口線將短信貓與電腦或服務(wù)器的串口或USB口連接,最后給短信貓上電。檢測短信貓的NET指示燈閃爍狀況,確保短信貓成功與GSM網(wǎng)絡(luò)連接。
3.3 短信貓的軟件總體結(jié)構(gòu)
軟件總體結(jié)構(gòu)如圖2所示,包括三大主要模塊,具體功能模塊和子模塊描述如下:
3.3.1 接收客戶端請求消息
平臺作為web service服務(wù)器端,當(dāng)收到客戶端發(fā)來的信息發(fā)送請求時(shí),解析出要發(fā)送的目的號碼,發(fā)送的內(nèi)容,并標(biāo)記發(fā)送的信息(該標(biāo)記便于將發(fā)送結(jié)果返回給客戶端),然后存入發(fā)送的消息隊(duì)列中。
3.3.2 發(fā)送消息
此模塊為本平臺的重要實(shí)現(xiàn)部分,用于實(shí)現(xiàn)短信發(fā)送業(yè)務(wù),主要包括幾個(gè)方面:(1)通過定時(shí)器啟動(dòng)發(fā)送線程,平臺定時(shí)從發(fā)送隊(duì)列頂部取出待發(fā)送的短消息,解析出相應(yīng)的發(fā)送目的地址和發(fā)送內(nèi)容,并通過編號標(biāo)記短消息;(2)發(fā)送正常短消息,即長度在140個(gè)字符內(nèi)的短消息;(3)發(fā)送超長短消息,對于消息內(nèi)容長度超出限制的短消息,可通過相應(yīng)指令和編碼控制將其分割為多條連續(xù)短消息,按多條方式連續(xù)發(fā)送給用戶,此模塊用于發(fā)送長度超過140個(gè)字符的短消息;(4)發(fā)送特殊字符,對于某些英文或中文的特殊字符,需要特殊的ASCII編碼和USC2編碼,此模塊用于實(shí)現(xiàn)特殊字符的編碼;(5)發(fā)送中文短信,中文采用UCS2編碼,通過PDU模式發(fā)送,最多可發(fā)送70個(gè)字符;(6)發(fā)送英文短信,英文采用ASCII編碼,可通過TEXT或PDU模式發(fā)送,最多可發(fā)送140個(gè)字符。
3.3.3 返回發(fā)送結(jié)果
為防止客戶端由于長期未收到短信發(fā)送結(jié)果而阻塞,采用了超時(shí)機(jī)制,即若在1分鐘內(nèi)服務(wù)器端未收到短信發(fā)送結(jié)果,默認(rèn)返回-1,以通知客戶端短信發(fā)送失敗,可改為調(diào)用備用短信貓。
3.4 短信貓的軟件流程
具體軟件發(fā)送過程如圖3所示。
(1)串口初始化。服務(wù)器啟動(dòng)后,先遍歷所有的端口,查看哪個(gè)端口被占用,即外接有短信貓?jiān)O(shè)備,找到后,設(shè)置該串口的波特率、停止位、數(shù)據(jù)位、奇偶校驗(yàn)位等信息,建立連接,并啟動(dòng)串口監(jiān)聽,注意應(yīng)加入支持串口通訊的jar包和.so文件;(2)設(shè)置短信貓格式。通過AT+CMGF設(shè)置短信發(fā)送模式,AT+CMGF=1,表示為PDU模式,AT+CMGF=0,表示為TEXT模式,還有Block模式,但較為少用。Text模式較為簡單,但只能發(fā)送英文短信;而PDU模式中英文短信均可發(fā)送。PDU模式收發(fā)短信可以使用3種編碼:7-bit、8-bit和UCS2編碼。(3)后臺啟動(dòng)發(fā)送線程,定時(shí)從短信隊(duì)列的頂端取出消息,并解析出內(nèi)容,若為中文,則調(diào)用ucs2編碼,若為英文,則調(diào)用7-bit編碼,內(nèi)容編碼結(jié)束后,再判斷信息長度,若為正常短信,則正常發(fā)送,若為超長短信,則分段發(fā)送。利用串口發(fā)送AT指令驅(qū)動(dòng)短信貓完成短信的收發(fā),并將發(fā)送結(jié)果返回給客戶端。(4)若短信發(fā)送失敗,可再次加入到發(fā)送隊(duì)列中,等待下一次發(fā)送。
3.5 熱備系統(tǒng)
由于短信貓通過串行方式收發(fā)短信,即必須收到前一條短信的返回值,方可發(fā)送下一條,否則會導(dǎo)致短信貓死機(jī)[2]。隨著請求短信數(shù)量的增加,短信貓業(yè)務(wù)會更繁忙,即使通過多線程并行處理也無法解決。因此本次設(shè)計(jì)使用短信隊(duì)列結(jié)合主備兩個(gè)服務(wù)器的方式來完成。通過多個(gè)短信貓模塊,可提高短信貓并發(fā)傳輸?shù)哪芰?,并且預(yù)防短信貓欠費(fèi)、運(yùn)行故障或服務(wù)器掛機(jī)等意外,從而提高了整體服務(wù)的效率和質(zhì)量。
4 結(jié)語
本平臺基于web service服務(wù),以手機(jī)應(yīng)用為基礎(chǔ),以短信貓為收發(fā)短信的硬件設(shè)備,實(shí)現(xiàn)了實(shí)時(shí)、穩(wěn)定、高效的短信收發(fā)系統(tǒng),一小時(shí)可發(fā)送約660條短信。為企事業(yè)單位提供了新型短信應(yīng)用,通過這個(gè)系統(tǒng),可以向中國移動(dòng)、中國聯(lián)通用戶提供短信服務(wù)。同時(shí),本平臺是一個(gè)開放的平臺,便于為第三方應(yīng)用提供接口,從而進(jìn)一步開發(fā)。
參考文獻(xiàn)
[1]沈煒.化工企業(yè)短信平臺的開發(fā)與應(yīng)用[D].浙江:浙江大學(xué),2011.
[2]劉興淮.建立短信平臺實(shí)現(xiàn)醫(yī)療設(shè)備效益分析[J].中國醫(yī)療設(shè)備,2012(12):59-61.
數(shù)字技術(shù)與應(yīng)用2016年9期