■李海彬
本文闡述了“沖瞳網(wǎng)絡(luò)短信收發(fā)平臺(tái)”的自主研發(fā)以及通過這個(gè)軟件搭建廣西電視臺(tái)新聞短信收發(fā)平臺(tái)的過程。通過自主研發(fā)的短信平臺(tái)軟件,將新聞中心的各個(gè)軟件系統(tǒng)連接起來,實(shí)現(xiàn)短信群發(fā)、記者通過短信回傳稿件至文稿系統(tǒng)、記者通過短信驗(yàn)證碼遠(yuǎn)程登陸內(nèi)網(wǎng)認(rèn)證等。
以前,記者在外地通過短信將稿件發(fā)送回來,只能發(fā)送給在臺(tái)的其他同事再由他們幫著錄入,而通過建立一個(gè)新聞短信收發(fā)平臺(tái),記者可以直接將短信稿件發(fā)送到新聞中心的短信平臺(tái),實(shí)現(xiàn)短信稿件的自動(dòng)分類提交等,從而提高工作效率。
1.平臺(tái)的實(shí)用性 系統(tǒng)的安全性、可靠性要高,可以實(shí)現(xiàn)與廣西電視臺(tái)新聞中心、資訊頻道目前所用系統(tǒng)(文稿系統(tǒng)、遠(yuǎn)程文稿系統(tǒng)、報(bào)題系統(tǒng))的無縫連接。
2.平臺(tái)的開放性和獨(dú)立性 短信平臺(tái)必須是一個(gè)開放的、獨(dú)立的系統(tǒng),它提供開放的接口供第三方系統(tǒng)調(diào)用;短信平臺(tái)的獨(dú)立性體現(xiàn)在它自成一個(gè)系統(tǒng),在第三方系統(tǒng)發(fā)生故障時(shí),其自身仍然能夠正常工作而不受影響。
3.平臺(tái)的穩(wěn)定性、可靠性 系統(tǒng)平臺(tái)應(yīng)采用穩(wěn)定、成熟的先進(jìn)技術(shù)來設(shè)計(jì)和實(shí)現(xiàn),并具備7*24 小時(shí)不間斷提供短信收發(fā)服務(wù)的能力。
4.平臺(tái)的靈活性和前瞻性 系統(tǒng)平臺(tái)要適應(yīng)電視新聞工作未來發(fā)展的需要,具有較高的靈活性和前瞻性,在盡可能不升級(jí)系統(tǒng)的情況下,能通過簡單的方法實(shí)現(xiàn)與新聞中心未來其它系統(tǒng)的連接。
我們要搭建的新聞短信收發(fā)平臺(tái),除了要完成網(wǎng)絡(luò)化的短信群發(fā)外,還要實(shí)現(xiàn)短信的實(shí)時(shí)接收、內(nèi)容共享、遷移轉(zhuǎn)發(fā),在目前的市場上,提供了兩種方式的短信收發(fā)平臺(tái)產(chǎn)品:
1.以愛迪生短信收發(fā)平臺(tái)為代表的產(chǎn)品。
在這種工作方式下,我方需要有自己的服務(wù)器主機(jī),并在服務(wù)器主機(jī)上安裝短信收發(fā)平臺(tái)軟件及短信數(shù)據(jù)庫,通過串口或USB 口連接短信貓進(jìn)行短信的收發(fā)。當(dāng)用戶需要發(fā)送短信時(shí),只需要向短信數(shù)據(jù)庫的“發(fā)送表”插入短信內(nèi)容即可發(fā)送;而短信平臺(tái)接收到的短信,將自動(dòng)保存到短信數(shù)據(jù)庫的“接收表”中。
2.與互聯(lián)網(wǎng)上的短信服務(wù)供應(yīng)商,如移動(dòng)、電信的一些下屬公司簽訂合作協(xié)議,通過付費(fèi)的方式使用。
在這種方式中,我方不需要服務(wù)器、短信貓及相關(guān)短信平臺(tái)軟件,只需要登陸短信服務(wù)供應(yīng)商提供的網(wǎng)站,即可通過網(wǎng)站發(fā)送短信;而平臺(tái)接收到的短信,也將保存到短信服務(wù)供應(yīng)商的網(wǎng)站數(shù)據(jù)庫,由用戶自行登陸查詢。
通過分析這兩種不同工作方式的短信收發(fā)平臺(tái),在最終的定案中,我們決定采用方式一,即在內(nèi)部建立短信服務(wù)器來提供短信收發(fā)服務(wù)的方式。
在軟件的選購上,我們發(fā)現(xiàn)現(xiàn)成的短信收發(fā)平臺(tái)軟件產(chǎn)品并不是針對(duì)新聞工作而設(shè)計(jì)的,其工作的重心仍然是在短信群發(fā)上,如果我們直接購買使用,需要對(duì)我們現(xiàn)在的各個(gè)系統(tǒng)作較大的改動(dòng)。通過分析整個(gè)短信收發(fā)平臺(tái)的結(jié)構(gòu)和工作原理,我們初步制定了自主研發(fā)短信平臺(tái)軟件的方案,并將短信服務(wù)軟件命名為“沖瞳網(wǎng)絡(luò)短信收發(fā)平臺(tái)”。
1.短信收發(fā)的編解碼選擇 本案中發(fā)送時(shí)采用PDU UCS2 編碼進(jìn)行發(fā)送,并支持CMPP 協(xié)議;短信的接收支持PDU 的三種編碼方式的解碼:7-bit、8-bit 和UCS2 編碼。
2.采用短信分級(jí)發(fā)送方式 短信收發(fā)平臺(tái)根據(jù)網(wǎng)絡(luò)用戶投遞短信的優(yōu)先級(jí)別進(jìn)行排隊(duì)發(fā)送,優(yōu)先級(jí)高的先發(fā)送,在目前的應(yīng)用中,使用了0-2 三個(gè)優(yōu)先級(jí),0 級(jí)優(yōu)先級(jí)最高。
3.采用Delphi 7.0 自主研發(fā)新聞短信服務(wù)軟件,用于發(fā)送/接收短信。
4.采用VC 6.0 開發(fā)短信編解碼動(dòng)態(tài)函數(shù)庫,完成底層的快速編解碼。
5.采用MS SQL 2005 作為短信數(shù)據(jù)庫系統(tǒng)。
6.采用存儲(chǔ)過程接口,為第三方系統(tǒng)提供接口服務(wù)。
1.短信服務(wù)軟件的工作原理
我們?cè)诙绦欧?wù)軟件中使用多個(gè)定時(shí)器對(duì)短信數(shù)據(jù)庫進(jìn)行定期查詢,實(shí)現(xiàn)短信的收發(fā)。根據(jù)系統(tǒng)設(shè)定的觸發(fā)時(shí)間,多個(gè)定時(shí)器線程對(duì)短信數(shù)據(jù)庫的各表進(jìn)行輪詢,分別實(shí)現(xiàn)短信的整理、發(fā)送、接收、遷移等工作。如圖1。
工作流程:
用戶通過第三方系統(tǒng)向短信服務(wù)器發(fā)送短信,短信可以超長,并選擇多位接收入。
短信整理線程收到用戶提交的短信后,需要進(jìn)行整理。用戶提交發(fā)送的短信,可能超長或者是群發(fā)的,此時(shí)需要通過此線程進(jìn)行處理,將短信分成一條條適合發(fā)送的數(shù)據(jù)送至短信發(fā)送隊(duì)列。
短信發(fā)送線程對(duì)發(fā)送隊(duì)列進(jìn)行優(yōu)先級(jí)排序并順序發(fā)送。
短信貓收到外來短信后,將未解碼的短信交給短信接收線程,由短信接收線程對(duì)其進(jìn)行解碼,并保存到短信接收表。
用戶通過第三方系統(tǒng)查詢短信接收表,將需要的短信遷移。
同時(shí)短信接收遷移線程也在工作中,它根據(jù)設(shè)定的短信關(guān)鍵字,將接收到的短信遷移到不同的第三方系統(tǒng)。如短信前綴詞CWS 轉(zhuǎn)A 系統(tǒng),101 轉(zhuǎn)B 系統(tǒng),等等。
市售的短信收發(fā)平臺(tái)軟件,不包含短信數(shù)據(jù)遷移的功能,它只是將接收到的短信保存在短信接收表中,由第三方系統(tǒng)自行去遷移,這樣對(duì)于每個(gè)第三方系統(tǒng),需要另行開發(fā)一個(gè)遷移的軟件,而我們自主研發(fā)的新聞短信平臺(tái)系統(tǒng),提供了短信接收遷移的功能,第三方系統(tǒng)不需要再編寫程序,只需要提供短信遷移的存儲(chǔ)過程接口供遷移線程調(diào)用即可。
2.短信收發(fā)服務(wù)軟件的功能
(1)系統(tǒng)工具箱 包括系統(tǒng)參數(shù)配置、短信平臺(tái)狀態(tài)設(shè)置、第三方接口設(shè)置、批量數(shù)據(jù)清理。
(2)發(fā)送短信 可以通過本軟件直接或間接發(fā)送短信,直接發(fā)送即不通過數(shù)據(jù)庫,由軟件直接驅(qū)動(dòng)短信貓發(fā)送短信;間接發(fā)送則是將短信保存到短信發(fā)送數(shù)據(jù)表,由短信平臺(tái)按工作流程發(fā)送。
(3)讀SIM 卡短信 在平臺(tái)正常運(yùn)行的情況下,平臺(tái)接收到的短信并不保存在SIM 卡中,而是由短信接收線程解碼并保存到數(shù)據(jù)庫中。當(dāng)由于某種原因短信平臺(tái)退出工作狀態(tài)時(shí),將短信接收的存儲(chǔ)切換回SIM卡中,保證了接收短信時(shí)不丟失。
(4)網(wǎng)絡(luò)提交短信 通過這個(gè)功能,管理員可以查詢第三方系統(tǒng)用戶通過終端軟件提交發(fā)送的短信內(nèi)容、接收人、發(fā)送情況等。
(5)瀏覽命令隊(duì)列 查看已按長度、接收人整理好的一條條待發(fā)送短信。如某用戶提交了130 字的短信,分別發(fā)給3 個(gè)人,此時(shí)系統(tǒng)會(huì)將這條短信分成6 條加入發(fā)送隊(duì)列。
(6)本次待發(fā)短信 查看短信發(fā)送線程即將發(fā)送的一批短信,此待發(fā)短信的數(shù)量根據(jù)系統(tǒng)參數(shù)的設(shè)定(如30 條),在定時(shí)器觸發(fā)時(shí),根據(jù)優(yōu)先級(jí)從短信發(fā)送隊(duì)列表中讀取一定數(shù)量的短信進(jìn)行順序發(fā)送,其余的短信繼續(xù)排隊(duì)等待。
(7)接收短信記錄 查詢平臺(tái)接收到的短信。
(8)歷史發(fā)信記錄 查看已經(jīng)發(fā)送完成的短信。
(9)系統(tǒng)工作日志 短信平臺(tái)的每個(gè)讀寫操作,都會(huì)記錄在日志中。
短信服務(wù)軟件開發(fā)完成及測試通過后,開始搭建短信平臺(tái),搭建這個(gè)系統(tǒng)平臺(tái),需要以下硬件設(shè)備:短信服務(wù)器、短信貓;而軟件部分,需要windows 2003 Server 系統(tǒng)1 套、MS SQL 2005 數(shù)據(jù)庫系統(tǒng)1 套、自主研發(fā)的短信服務(wù)軟件1 套。
考慮到短信平臺(tái)對(duì)系統(tǒng)硬件資源的要求不是很高,在本案中,我們沒有新購服務(wù)器作為短信服務(wù)器,而是使用新聞中心的文稿系統(tǒng)服務(wù)器兼作短信服務(wù)器使用,因?yàn)槲母逑到y(tǒng)服務(wù)器已安裝了Windows 2003 Server 及MS SQL 2005 軟件,所以在本案中我們需要購買一臺(tái)短信貓即可,節(jié)省了購買其它軟硬件設(shè)備的費(fèi)用。
在文稿系統(tǒng)服務(wù)器上運(yùn)行SQL Server Management Studio,將已建好的短信數(shù)據(jù)庫文件CTSMS.mdf 附加進(jìn)去。之后運(yùn)行短信服務(wù)軟件并進(jìn)行以下配置:系統(tǒng)參數(shù)配置;短信平臺(tái)的狀態(tài)設(shè)置;第三方數(shù)據(jù)接口設(shè)置。
我們自主研發(fā)的“沖瞳網(wǎng)絡(luò)短信收發(fā)平臺(tái)”,通過標(biāo)準(zhǔn)的AT 命令與短信貓進(jìn)行通訊。目前市場上銷售的主流短信貓都可以使用。
在本案中,我們通過存儲(chǔ)過程接口與其它第三方系統(tǒng)對(duì)接,完成短信的收發(fā)工作。這其中有短信數(shù)據(jù)庫提供的接口,也有第三方系統(tǒng)提供的接口。
短信數(shù)據(jù)庫提供了以下接口:
提交短信的存儲(chǔ)過程:InserSmsText 第三方系統(tǒng)用戶通過這個(gè)接口,將短信提交到短信服務(wù)器的數(shù)據(jù)庫中,之后短信服務(wù)軟件會(huì)將這條信息分解及編碼后發(fā)送。
直接發(fā)送緊急短信的存儲(chǔ)過程:InsertCommand 不經(jīng)過上面的短信分解整理,直接將短信加入發(fā)送隊(duì)列作為緊急短信,其優(yōu)先級(jí)設(shè)為最高0,可以排在前面快速發(fā)出。但通過這個(gè)存儲(chǔ)過程進(jìn)行發(fā)送時(shí),有一些限制,即每次只能發(fā)給一個(gè)用戶,且短信內(nèi)容不能超過70 字。
查詢本人提交短信的接口:GetMySend 用于查詢本人提交的短信,從而可以知道提交的短信是否發(fā)送出去了,發(fā)送成功與否。
查詢接收短信的接口:GetReviceSms 在第三方系統(tǒng)中,通過這個(gè)接口查詢平臺(tái)收到的短信。
第三方系統(tǒng)需要提供的遷移短信接口:短信貓收到短信后將其保存在短信接收表中,此時(shí)系統(tǒng)的短信遷移線程會(huì)根據(jù)“第三方數(shù)據(jù)接口設(shè)置”里提供的參數(shù),將收到的短信遷移到第三方系統(tǒng)中,這需要第三方系統(tǒng)提供一個(gè)存儲(chǔ)過程用于接收這些短信。本系統(tǒng)要求的存儲(chǔ)過程名稱可由第三方系統(tǒng)自行定義,但入?yún)⑿枰凑找欢ǖ慕Y(jié)構(gòu)填寫。
通過這些存儲(chǔ)過程接口,短信平臺(tái)系統(tǒng)能完成與第三方系統(tǒng)的對(duì)接,對(duì)接的雙方只需要通過接口完成短信的收發(fā),而無需了解對(duì)方內(nèi)部的數(shù)據(jù)結(jié)構(gòu)。
根據(jù)廣西電視臺(tái)新聞中心的要求,需要將新聞中心的文稿系統(tǒng)、遠(yuǎn)程文稿系統(tǒng)、報(bào)題系統(tǒng)與短信平臺(tái)進(jìn)行對(duì)接,其中文稿系統(tǒng)、報(bào)題系統(tǒng)要求可以群發(fā)短信,以及接收記者短信后作為稿件分類遷移;遠(yuǎn)程文稿系統(tǒng)只需要發(fā)送登陸認(rèn)證短信,即用戶登陸遠(yuǎn)程文稿系統(tǒng)并通過賬號(hào)密碼認(rèn)證后,由遠(yuǎn)程文稿系統(tǒng)通過短信平臺(tái)發(fā)送登陸驗(yàn)證碼,驗(yàn)證碼3 分鐘有效。
圖2 是第三方系統(tǒng)發(fā)送短信流程圖,圖3 是短信平臺(tái)自動(dòng)遷移流程圖。
以自主研發(fā)的“沖瞳網(wǎng)絡(luò)短信收發(fā)平臺(tái)”作為核心軟件,我們完成了廣西電視臺(tái)新聞短信收發(fā)平臺(tái)的搭建,并通過存儲(chǔ)過程接口實(shí)現(xiàn)了與第三方系統(tǒng)的連接。由于充分利用了新聞中心的現(xiàn)有軟硬件資源,使得我們可以用極低的成本(短信貓售價(jià)400 元)達(dá)到目的。