文/鄒曉燕
伴隨著手機(jī)的普及與人們生活節(jié)奏的加快,短信作為一種信息傳遞方式以其及時(shí)、廉價(jià)等突出的優(yōu)點(diǎn),引起了各行各業(yè)的普遍關(guān)注和重視?,F(xiàn)有企業(yè)業(yè)務(wù)告知方式若以人工或者電話方式為主,則需要花費(fèi)大量的精力和時(shí)間。若依托現(xiàn)有的信息系統(tǒng)搭建短信平臺(tái)則可以有效地解決問題,進(jìn)一步優(yōu)化信息系統(tǒng)服務(wù)、提高工作效率。企業(yè)為了適應(yīng)社會(huì)的潮流發(fā)展,以提高生產(chǎn)信息的分析和傳遞效率,短信平臺(tái)的研發(fā)應(yīng)運(yùn)而生。
平臺(tái)需要實(shí)現(xiàn)獨(dú)立的,不區(qū)分類別(移動(dòng)、聯(lián)通、電信)的短信發(fā)送功能,為企業(yè)需要使用短信發(fā)送功能的信息系統(tǒng)提供Web服務(wù)接口,使信息系統(tǒng)可以非常便捷的實(shí)現(xiàn)短信發(fā)送功能,避免因?yàn)檫\(yùn)營商提供短信發(fā)送方式的改變而造成的各信息系統(tǒng)之間的重復(fù)建設(shè),并在一定程度上緩解短信發(fā)送的資源搶占問題。
2.1.1接口服務(wù)
表1:接口表
(1)能夠提供通用Web Service接口,用于各系統(tǒng)短信請(qǐng)求的接收,并對(duì)各系統(tǒng)短信發(fā)送請(qǐng)求發(fā)送XML文件格式接收回執(zhí)。
(2)能夠提供通用Web Service接口,用于修改短信接收人員基礎(chǔ)信息。
(3)能夠提供通用Web Service接口,用于查詢短信提交狀態(tài)。
接口名稱及功能如表1所示。
2.1.2后臺(tái)短信發(fā)送
能夠?qū)⑵脚_(tái)Web Service接口端提交短信及時(shí)發(fā)送出去并對(duì)平臺(tái)接入的信息系統(tǒng)、平臺(tái)信息以及用戶信息等進(jìn)行查詢、添加、刪除以及修改等管理性操作。
2.2.1可靠性
要求平臺(tái)可保障短信接收人員準(zhǔn)確無誤。
2.2.2及時(shí)性
要求平臺(tái)在1分鐘內(nèi)對(duì)短信發(fā)送請(qǐng)求進(jìn)行處理。
2.2.3安全性
要求平臺(tái)在企業(yè)內(nèi)網(wǎng)使用并提供根據(jù)發(fā)送者和接受者工號(hào)發(fā)送短信功能。
平臺(tái)的總體架構(gòu)從頂層到底層依次為:Web接入層、應(yīng)用管理層、業(yè)務(wù)處理層以及數(shù)據(jù)存儲(chǔ)層,如圖1所示。
各部分主要功能和相關(guān)關(guān)系簡要介紹如下:
Web接入層提供Web Service接口服務(wù),用于接收廠內(nèi)包含MES系統(tǒng)、TnPM平臺(tái)、安防監(jiān)控系統(tǒng)等在內(nèi)的11個(gè)企業(yè)內(nèi)系統(tǒng)的短信發(fā)送需求接收,并對(duì)短信提交的完整性進(jìn)行初步的檢查。
應(yīng)用管理層為平臺(tái)的主要組成部分,主要包括平臺(tái)基礎(chǔ)信息維護(hù)、接入系統(tǒng)控制管理、短信檢索查詢功能以及服務(wù)狀態(tài)查詢功能等。用于對(duì)平臺(tái)本身的參數(shù)、功能以及平臺(tái)接入等進(jìn)行管理。
業(yè)務(wù)處理層為平臺(tái)的重要組成部分,主要包括短信分發(fā)功能、聯(lián)通短信發(fā)送功能、移動(dòng)短信發(fā)送功能以及電信短信發(fā)送功能。各功能之間相互獨(dú)立,通過SQL Server以及 DB2關(guān)系型數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互,并對(duì)短信發(fā)送的完整性進(jìn)行進(jìn)一步的檢查。其中,聯(lián)通短信發(fā)送功能使用聯(lián)通公司提供的互聯(lián)網(wǎng)接口服務(wù)進(jìn)行短信發(fā)送;移動(dòng)短信發(fā)送功能使用移動(dòng)公司提供的API接口服務(wù)進(jìn)行短信發(fā)送;電信短信發(fā)送功能采用短信貓方式進(jìn)行短信發(fā)送。在實(shí)現(xiàn)平臺(tái)短信發(fā)送功能的同時(shí)也可以用于比較各種發(fā)送短信方式之間的比較。經(jīng)過對(duì)比使用,互聯(lián)網(wǎng)方式的短信發(fā)送方式在企業(yè)環(huán)境內(nèi)運(yùn)行更加穩(wěn)定可靠。
數(shù)據(jù)存儲(chǔ)層主要包含SQL 以及DB2兩種關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)存儲(chǔ)。其中,SQL Server關(guān)系型數(shù)據(jù)庫為平臺(tái)的主數(shù)據(jù)庫,存儲(chǔ)平臺(tái)相關(guān)的所有數(shù)據(jù)信息;DB2關(guān)系型數(shù)據(jù)庫存儲(chǔ)平臺(tái)處理好后的電信短信,方便后續(xù)的單獨(dú)處理。
根據(jù)系統(tǒng)功能模塊設(shè)計(jì),抽象出了人員信息模型、短息提交模型、短信明細(xì)模型、歷史短信查詢模型、短信系統(tǒng)來源模型、系統(tǒng)優(yōu)先級(jí)模型、供應(yīng)商類型模型、聯(lián)通短信狀態(tài)模型、移動(dòng)短信狀態(tài)模型以及移動(dòng)API狀態(tài)模型等11個(gè)數(shù)據(jù)模型,并建立了模型間的關(guān)聯(lián)關(guān)系。如圖2所示。
圖1:平臺(tái)總體架構(gòu)圖
圖2:系統(tǒng)模型及關(guān)聯(lián)關(guān)系
圖3:系統(tǒng)開發(fā)流程圖
本系統(tǒng)采用B/S架構(gòu),借助VS2013工具,使用c#.NET研發(fā)而成,使用了DB2關(guān)系型數(shù)據(jù)以及SQL Server關(guān)系型數(shù)據(jù)庫。
系統(tǒng)開發(fā)流程圖如圖3所示。
4.3.1利用LINQ實(shí)現(xiàn)SQL Server數(shù)據(jù)庫訪問
為了實(shí)現(xiàn)對(duì)SQL Server數(shù)據(jù)庫的安全、快速訪問,使用了LINQ技術(shù)。LINQ(Language Integrated Query,語言集成查詢)是微軟公司提供的一項(xiàng)技術(shù),能夠?qū)⒉樵児δ苤苯右氲?NET Framework3.5及以上版本所制成的編程語言中。LINQ主要包括4個(gè)組件:LINQ to Objects、LINQ to SQL、LINQ to DataSet和LINQ to XML,他們分別查詢處理對(duì)象數(shù)據(jù)、關(guān)系數(shù)據(jù)、DataSet對(duì)象數(shù)據(jù)和XML結(jié)構(gòu)數(shù)據(jù)。使用LINQ可以大量減少查詢以及操作數(shù)據(jù)庫或者數(shù)據(jù)源中的數(shù)據(jù)使用代碼,并在一定程度上避免SQL語句注入,從而提高應(yīng)用程序的安全性。平臺(tái)主要使用了其中的LINQ to SQL技術(shù)。程序中的相關(guān)內(nèi)容如圖4所示。
4.3.2利用SQL Server存儲(chǔ)過程實(shí)現(xiàn)運(yùn)營商區(qū)分功能
經(jīng)過考察,某些短信平臺(tái)在每次接收到短信發(fā)送請(qǐng)求后,均需對(duì)短信運(yùn)營商類型進(jìn)行判斷之后再發(fā)送,該處理方式是針對(duì)每一條短信進(jìn)行判斷處理,即使是發(fā)送給同一個(gè)手機(jī)號(hào)的短信,也需要進(jìn)行運(yùn)營商類型判斷,存在重復(fù)判斷的過程,降低了短信發(fā)送的效率。
平臺(tái)為了避免這個(gè)問題,特針對(duì)不同運(yùn)營商手機(jī)號(hào)碼的特點(diǎn)編寫了自動(dòng)處理存儲(chǔ)過程SMS_BT_User_SupplierTypeID,針對(duì)每一個(gè)短信平臺(tái)內(nèi)的用戶手機(jī)號(hào)進(jìn)行一次性判斷并存儲(chǔ)判斷結(jié)果,短信發(fā)送時(shí)直接使用判斷結(jié)果,避免了重復(fù)判斷的問題。程序中的相關(guān)內(nèi)容如圖5所示。
圖4:LINQ to SQL實(shí)現(xiàn)
圖5:運(yùn)營商判斷存儲(chǔ)過程
圖6:Web Service界面
平臺(tái)運(yùn)行后,Web Service接口界面如圖6所示。
平臺(tái)在研發(fā)成功并投入實(shí)際使用后,短信發(fā)送效果良好,穩(wěn)定可靠。平臺(tái)本身可移植性強(qiáng),對(duì)類似的功能具有借鑒性。在平臺(tái)下一步的運(yùn)維中,將針對(duì)不同系統(tǒng)設(shè)置系統(tǒng)的優(yōu)先級(jí)并根據(jù)優(yōu)先級(jí)隊(duì)列對(duì)短信進(jìn)行差異性發(fā)送。