丁永尚,何旭明,朱 亮,芮文艷
(蘇州工業(yè)職業(yè)技術(shù)學院,江蘇 蘇州 215104)
隨著移動通信和電子技術(shù)的不斷發(fā)展,手機越來越成為人們?nèi)粘I詈凸ぷ髦斜夭豢缮俚耐ㄐ殴ぞ?。?jù)工業(yè)和信息化部的統(tǒng)計數(shù)據(jù)顯示,目前,我國移動電話普及率達到每百人80.2部,超過固定電話28.1%,其用戶已躍居世界第一位[1]。
SMS業(yè)務將手機的通話功能和尋呼機的尋呼功能合二為一,可以靈活地發(fā)送和接收各種信息。很多企事業(yè)單位開始根據(jù)自身的需求,以短信息的形式發(fā)送企事業(yè)產(chǎn)品、服務、各種促銷活動、通知、公告等信息;利用短信息提供信息互動查詢,實現(xiàn)企事業(yè)內(nèi)部以及企事業(yè)與客戶之間的有效溝通,加強企事業(yè)單位內(nèi)部管理和客戶關(guān)系管理[2]。 作為高職院校,根據(jù)高校繳費管理工作的需要和發(fā)展趨勢,加入短信平臺也將顯得尤為重要。
基于以上考慮,本文在對GSM數(shù)字移動通信網(wǎng)絡、串口通信、AT指令和PDU編解碼進行研究的基礎上,設計并實現(xiàn)基于串口通信的短信收發(fā)中間件,根據(jù)提供的接口可方便地應用于其他軟件中。
為了能夠使得應用系統(tǒng)中的短信息收發(fā)模塊具有更強的可擴展性和可管理性,更具有模塊強內(nèi)聚性、低耦合性的特點,本文設計的中間件和應用系統(tǒng)之間以數(shù)據(jù)庫作為訪問接口,即可把本中間件看作是短信底層接口通信模塊層 MC(Message Communication)、應用層中可設計短信收發(fā)平臺層 MR(Message Receive and send)和短信應用層 MA(Message Application),形成獨立的三層架構(gòu)。
其中MC(中間件)作為短信平臺框架的基礎,包含了系統(tǒng)的核心技術(shù),是系統(tǒng)實現(xiàn)的難點,也是本文重點研究的內(nèi)容。系統(tǒng)總體框架圖如圖1所示。
MC作為MR的核心組件是非常重要的,MC能夠把所有與硬件(GSM Modem)交互的細節(jié)全部封起來,與其他模塊以數(shù)據(jù)庫表為接口相互協(xié)調(diào)工作。不論是對于MR還是MA來說,MC都是透明的,MC實際上起到的作用就是將GSM Modem與關(guān)系型數(shù)據(jù)庫緊密地聯(lián)系起來,第三方應用時只需要對MC中的數(shù)據(jù)庫進行標準操作,就可以正常地對GSM Modem進行控制,從而獲得對短信息的操作權(quán)。
圖1 系統(tǒng)總體框架圖
MC作為硬件(GSM Modem)和數(shù)據(jù)庫的樞紐,設計應該具備以下功能:
(1)被動處理:將GSM Modem接入到計算機標準COM口上,當GSM Modem接收到信息并且通過COM反饋到MC后,MC可以把收到的的短信數(shù)據(jù)存放到數(shù)據(jù)庫中。
(2)主動處理:當數(shù)據(jù)庫中的信息發(fā)送表中有新的數(shù)據(jù)時,MC每隔1 min進行掃描,并在作出反應后,MC把相關(guān)數(shù)據(jù)通過COM口發(fā)送給GSM Modem。
MC功能示意圖如圖2所示。
圖2 MC功能示意圖
ATPort類庫設計的目的是把底層調(diào)用AT指令進行串行通信的細節(jié)分裝,然后以方法的形式提供外部調(diào)用接口,使整個短信平臺有一個很好的擴展性、穩(wěn)定性和低耦合性;而且編譯封裝之后可以以二次開發(fā)包的身份供其他程序員或項目使用。ATPort類庫的內(nèi)部結(jié)構(gòu)如圖3所示。
其他模塊只需要訪問ATPort類的7個公共方法即可很方便地實現(xiàn)短消息平臺系統(tǒng)。7個接口方法的功能和參數(shù)描述如下:
圖3 ATPort類庫的內(nèi)部結(jié)構(gòu)圖
調(diào)用此類庫進行AT串口編程時,首先要調(diào)用Sms_Connection方法對GSM Modem進行硬件初始化,包括串口號、串口速率等參數(shù)設置;之后打開相應串口,檢驗GSM Modem的初始化是否成功。成功之后,即可以進行調(diào)用Sms_Send方法發(fā)送短信、調(diào)用Sms_Receive接收短信、調(diào)用Sms_Delete方法刪除短信等事務處理。處理完之后調(diào)用Sms_Disconnection方法斷開終端與串口的連接。具體的流程如圖4所示。
圖4 事務流程
流程代碼如下:
模塊高內(nèi)聚、低耦合性是軟件開發(fā)必須重點考慮的問題,所以系統(tǒng)設計應用層(MR)與中間件(MC)之間的接口以數(shù)據(jù)庫的形式設計。根據(jù)系統(tǒng)實際需求應該有7個表,即待發(fā)短信表、正在發(fā)送表、發(fā)送成功表、發(fā)送失敗表、過期未發(fā)送表、收到新短信表、收到短信已讀表等7個數(shù)據(jù)表,而且7個數(shù)據(jù)表在結(jié)構(gòu)上是一致的。其數(shù)據(jù)結(jié)構(gòu)如表1所示。
表1 接口數(shù)據(jù)庫表結(jié)構(gòu)
至此,本文就完成了整個中間件的設計與實現(xiàn)。應用系統(tǒng)如典型的信息管理系統(tǒng),對中間件來說只是一個提供數(shù)據(jù)的對象,此數(shù)據(jù)以數(shù)據(jù)庫的方式提供?;谶@樣一種架構(gòu),不僅使得系統(tǒng)結(jié)構(gòu)更清晰,而且更易于管理、維護和擴充。
本文設計并實現(xiàn)了基于串口通信的短信收發(fā)中間件系統(tǒng),由于其具有很強的高內(nèi)聚和低耦合性,可直接應用于各種應用系統(tǒng),如家校通系統(tǒng)、企業(yè)管理系統(tǒng)、圖書信息查詢系統(tǒng)、教務信息系統(tǒng)等。但本中間件還有改進之處,例如對于彩信(MMS)格式的支持。隨著3G的逐步發(fā)展,彩信的使用已經(jīng)逐漸滲入到普通百姓的生活當中,多媒體信息的表現(xiàn)形式將在不久的將來占據(jù)越來越多的市場的份額??朔礼SM Modem的自身瓶頸(如發(fā)送穩(wěn)定性和發(fā)送吞吐量),可以考慮采用 “GSM Modem池”的方式來構(gòu)架短信平臺。
[1]肖明華.Wap業(yè)務發(fā)展淺析[J].科技和產(chǎn)業(yè),2005(2).
[2]王子禎,孫亞夫.移動定位業(yè)務的開發(fā)[J].微計算機應用,2006(1):23-25.
[3]郭梯云,鄔國揚,李建東.移動通信[M].西安:西安電子科技大學出版社,1995.
[4]張云.基于GSM的短消息業(yè)務協(xié)議分析[J].無線電工程,2001(4).
[5]劉濤.基于手機模塊TC35的單片機短消息收發(fā)系統(tǒng)[J].電子技術(shù),2003(3).
[6]Dino Esposito.構(gòu)建 Web解決方案[M].北京:清華大學出版社,2002.
[7]劉德山,楊春志.基于C/S和B/S混合結(jié)構(gòu)的高校教務管理信息系統(tǒng)[J].遼寧師范大學學報,2002(12).
[8]歐洲電信標準協(xié)會.AT command set for GSM mobile equipment.1999.
[9]SIEMENS.SIEMENS mobile.AT command set.2002.