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