国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

短信息網(wǎng)關(guān)在校園管理系統(tǒng)中的應(yīng)用

2013-04-29 00:44:03張紅剛陶衛(wèi)東
江蘇教育研究 2013年9期

張紅剛 陶衛(wèi)東

摘要:研究設(shè)計(jì)移動(dòng)通信網(wǎng)關(guān),通過信息轉(zhuǎn)換和短信群發(fā)將校園信息管理系統(tǒng)拓展到移動(dòng)通信平臺(tái),以提供更實(shí)時(shí)便捷的校園信息服務(wù),是校園信息化管理的需要。移動(dòng)通信網(wǎng)關(guān)開發(fā)的關(guān)鍵技術(shù),包括基于AT指令的短信貓的開發(fā)、可靠的批量發(fā)送和流控技術(shù)等。要根據(jù)項(xiàng)目需求設(shè)計(jì)具有短信群發(fā)的網(wǎng)關(guān)軟件,設(shè)計(jì)時(shí)還應(yīng)考慮軟硬件部署和實(shí)現(xiàn)方法等。

關(guān)鍵詞:校園信息管理系統(tǒng);移動(dòng)通信平臺(tái);網(wǎng)關(guān)開發(fā);AT指令

中圖分類號:G712 文獻(xiàn)標(biāo)志碼:A 文章編號:1673-9094-C-(2013)03-0053-04

根據(jù)實(shí)際條件和情況在學(xué)校范圍內(nèi)采用短信網(wǎng)關(guān)方式實(shí)現(xiàn)移動(dòng)通信信息的推送,利用手機(jī)終端普遍支持簡單的數(shù)據(jù)通信功能,將現(xiàn)有的學(xué)校信息管理系統(tǒng)的功能擴(kuò)展到手機(jī)終端,能使管理系統(tǒng)從被動(dòng)查詢到主動(dòng)數(shù)據(jù)推送。將教學(xué)管理中的信息用定制化的方式實(shí)時(shí)發(fā)送給每位家長,讓家長隨時(shí)了解學(xué)生的動(dòng)態(tài),也能使教師在信息傳遞過程中解除精力、時(shí)間和空間的限制,為現(xiàn)有的教學(xué)、學(xué)生管理工作帶來更多便利。

一、相關(guān)技術(shù)和分析

(一)目前存在的群發(fā)短信的幾種方式

短信群發(fā)方式主要有手機(jī)自帶群發(fā)短信、飛信、移動(dòng)增值業(yè)務(wù)SP群發(fā)和使用第三方API實(shí)現(xiàn)短信群發(fā)等。但這些方式存在著無法直接被管理系統(tǒng)使用或使用成本較高的缺陷。

采用工業(yè)手機(jī)模塊GSM Modem(一種使用移動(dòng)通訊系統(tǒng)的調(diào)制解調(diào)器,俗稱“短信貓”),在業(yè)務(wù)層把傳統(tǒng)的計(jì)算機(jī)網(wǎng)絡(luò)擴(kuò)展到手機(jī)等移動(dòng)終端,是開發(fā)簡單快速、節(jié)約人力成本的最佳短信應(yīng)用開發(fā)模式。其關(guān)鍵技術(shù)是設(shè)計(jì)實(shí)現(xiàn)一個(gè)短信網(wǎng)關(guān)作為短信發(fā)送的中間件,以實(shí)現(xiàn)既能直接發(fā)送短信,又能為其他管理系統(tǒng)所調(diào)用發(fā)送短信。

(二)AT指令技術(shù)

AT指令就是帶有串行口的計(jì)算機(jī)操作GSM Modem或手機(jī)的指令集。AT指令都以AT+開頭,以回車結(jié)尾,各命令執(zhí)行成功與否都有相應(yīng)的返回。

通信網(wǎng)關(guān)軟件中用到的與發(fā)送和接收短信相關(guān)的指令及其功能見表1。

一般而言,在AT指令后加上“=”及命令參數(shù)即可。有些命令例如AT+CMGR命令沒有參數(shù),直接就可以執(zhí)行。

1.AT指令編碼技術(shù)研究

對SMS的控制共有三種實(shí)現(xiàn)途徑:基于AT命令的Text Mode、基于AT命令的PDU Mode 、Block Mode。Text Mode比較簡單,多款諾基亞手機(jī)均支持該模式,但這種模式只能發(fā)送ASCII 碼,不能發(fā)送中文的Unicode 碼。西門子手機(jī)大多只支持PDU模式,PDU模式是發(fā)送或接收手機(jī)SMS信息的一種方法,短信息正文經(jīng)過十六進(jìn)制編碼后被傳送。使用Block Mode 需要手機(jī)生產(chǎn)廠家提供驅(qū)動(dòng)支持。目前,PDU已取代Block Mode,因此本文主要探討PDU模式的發(fā)送。

2.短信息編碼和解碼

發(fā)送短信息的PDU編碼主要包含這些內(nèi)容:短信息中心(SMSC)號碼信息、短信息首字節(jié)、短信息索引號、目標(biāo)號碼信息、協(xié)議標(biāo)示符、數(shù)據(jù)編碼方式、效驗(yàn)周期、短信息長度和內(nèi)容。短信息內(nèi)容是以十六進(jìn)制7位字節(jié)或Unicode編碼,其他信息是以十六進(jìn)制8位字節(jié)編碼。

(1)英文編碼。

缺省的GSM字符集為7位編碼,可以簡單地理解為ASCII碼(ASCII值小于80Hex,因此,Bit8被忽略),依次將下一個(gè)7位編碼的后幾位逐次移至前面,形成新的8位編碼。

例如:設(shè)置短信息內(nèi)容為“Hello World!”,參見表2指示。

(2)英文解碼。

就是將7位字符編碼轉(zhuǎn)換為8位字符編碼。

(3)中文編碼和解碼。

中文短信息的編碼和解碼,只需將GB2312的中文編碼和代碼頁為CP936的Unicode編碼進(jìn)行相互轉(zhuǎn)換。

(三)可靠的批量發(fā)送和流控技術(shù)研究

由于移動(dòng)通信網(wǎng)絡(luò)存在發(fā)送速率和穩(wěn)定性等不確定性,在設(shè)計(jì)實(shí)現(xiàn)過程中,必須保證大數(shù)據(jù)量條件下的通信可靠性。具體方法有以下幾種。

1.基于SMSC Pool容災(zāi)備份

單套短信中心內(nèi)部采用了1+1或N+1的備份方式,來確保當(dāng)一個(gè)核心單元宕機(jī)后有備份的單元來接替工作。這種短信網(wǎng)元之間是相互孤立的,資源無法得到很好共享,投資大利用率低,容易對備份單元產(chǎn)生較大的沖擊。采用SMSC Pool技術(shù),多個(gè)單套短信網(wǎng)元被邏輯上整合在一起,組成一個(gè)域池。通過短信中心網(wǎng)元增加流量控制中心模塊,分級組網(wǎng)實(shí)現(xiàn)對短信業(yè)務(wù)量的統(tǒng)一分流控制。對短信網(wǎng)元各業(yè)務(wù)處理單元的性能、容量進(jìn)行實(shí)時(shí)的監(jiān)控,可實(shí)現(xiàn)對業(yè)務(wù)智能地、自動(dòng)地分流,從而達(dá)到容災(zāi)的目的。

2.隊(duì)列緩存技術(shù)

通過串口隊(duì)列技術(shù)[1]避免擁塞的發(fā)生或者在擁塞發(fā)生時(shí)做出反應(yīng),它主要是考慮系統(tǒng)內(nèi)的服務(wù)情況,目的是使負(fù)載不超過系統(tǒng)服務(wù)的能力。隊(duì)列緩存技術(shù)和流控措施實(shí)現(xiàn)批量信息的緩存發(fā)送。

3.異步延時(shí)處理

系統(tǒng)逐條對短信進(jìn)行編碼[2]、發(fā)送信息。由于系統(tǒng)編碼的速度較快,短信元件尚未處理完成,編碼就完成了,會(huì)造成隊(duì)列溢出,導(dǎo)致錯(cuò)誤。異步延時(shí)處理實(shí)現(xiàn)批量發(fā)送短信功能,通過循環(huán)逐條對短信進(jìn)行編碼、發(fā)送信息、延時(shí)、反饋信息處理完成信息的發(fā)送。

4.發(fā)送可靠性管理

要實(shí)現(xiàn)發(fā)送可靠性管理,對于發(fā)送過程中出現(xiàn)的因移動(dòng)網(wǎng)絡(luò)故障、計(jì)費(fèi)等問題導(dǎo)致發(fā)送失敗及成功的記錄進(jìn)行記錄,并向業(yè)務(wù)系統(tǒng)提供報(bào)告,以便對未成功記錄進(jìn)行處理,保證系統(tǒng)消息發(fā)送的可靠性。

二、短信網(wǎng)關(guān)的設(shè)計(jì)

(一)短信網(wǎng)關(guān)需求分析

該短信網(wǎng)關(guān)軟件主要分為“信息發(fā)送服務(wù)”“短信發(fā)送服務(wù)監(jiān)控”“系統(tǒng)配置模塊”“基礎(chǔ)功能模塊”等模塊(見圖1)。

信息發(fā)送服務(wù),實(shí)現(xiàn)短信數(shù)據(jù)提取、發(fā)送、監(jiān)視回復(fù)等功能。短信發(fā)送服務(wù)監(jiān)控,提供了啟動(dòng)、暫停、停止短信發(fā)送服務(wù)的功能。系統(tǒng)配置模塊,提供短信網(wǎng)關(guān)的設(shè)置管理功能,如通信組件的基本信息設(shè)置、短信服務(wù)器的基本設(shè)置、數(shù)據(jù)庫系統(tǒng)的設(shè)置等?;A(chǔ)功能模塊,提供了發(fā)送服務(wù)和發(fā)送管理的基本功能。

(二)短信網(wǎng)關(guān)設(shè)計(jì)

本文設(shè)計(jì)的短信網(wǎng)關(guān)是基于GSM Modem的短信框架(見圖2),在框架上實(shí)現(xiàn)短信的收發(fā)。該系統(tǒng)構(gòu)架分為三層:短信底層接口通信組件層、短信收發(fā)平臺(tái)層、短信應(yīng)用層。

1.短信底層接口通信組件層

短信底層接口通信組件層中,通過硬件接口實(shí)現(xiàn)向GSM Modem發(fā)送AT指令,控制GSM Modem發(fā)送和接收消息。

2.短信收發(fā)平臺(tái)層

短信收發(fā)平臺(tái)層是設(shè)計(jì)的一個(gè)獨(dú)立的短信息收發(fā)及處理的服務(wù)模塊,它單獨(dú)于其他任何的業(yè)務(wù)系統(tǒng),僅僅提供了一個(gè)成熟的短信收發(fā)服務(wù),并封裝成統(tǒng)一的短信收發(fā)接口。

3.短信應(yīng)用層

短信應(yīng)用層根據(jù)短信收發(fā)平臺(tái)層定制的接口規(guī)范,就可以把本身的業(yè)務(wù)與短信連接起來,實(shí)現(xiàn)在各自的管理系統(tǒng)(軟件)中快速集成短消息收發(fā)的服務(wù)。

(三)短信網(wǎng)關(guān)硬件部署

短信網(wǎng)關(guān)的部署(見圖3)是將短信貓或者貓池連接到服務(wù)器上,將服務(wù)器連接到防火墻的DMZ區(qū),在服務(wù)器上安裝好短信網(wǎng)關(guān)軟件或?qū)ν獍l(fā)布Web平臺(tái)(調(diào)用了短信發(fā)送接口的Web服務(wù))后,服務(wù)器直接可以通過服務(wù)端或客戶端軟件進(jìn)行短消息的發(fā)送,內(nèi)網(wǎng)的用戶可以通過客戶端軟件進(jìn)行短消息的發(fā)送。其他的管理平臺(tái)可通過調(diào)用短信接口實(shí)現(xiàn)短消息的發(fā)送;外網(wǎng)用戶可以通過VPN的方式接入到內(nèi)網(wǎng)中進(jìn)行短信的發(fā)送或通過瀏覽器終端實(shí)現(xiàn)短消息的發(fā)送。

(四)串口通信的實(shí)現(xiàn)

短信貓相關(guān)應(yīng)用開發(fā)的核心是實(shí)現(xiàn)串口通信,在此研究短信貓?jiān)贑#語言下的實(shí)現(xiàn)是利用微軟公司提供的通用串口通信MSCOMM32控件。在Visual Studio 2010編譯器開發(fā)環(huán)境下,把微軟通用串口通信控件MSCOMM32作為組件裝入編譯器,實(shí)現(xiàn)串口通信的實(shí)際過程如下。

1.打開串口和初始化串口

在程序初始化時(shí),先對串口初始化,同時(shí)由于串口短信貓是使用RTS/CTS握手信號的硬件設(shè)備,只有該設(shè)備的RTS信號置為高才能接收數(shù)據(jù),所以需將MSCOMM32通信控件DTREnable屬性設(shè)為TRUE,其所有具體實(shí)現(xiàn)過程如下。

private void InitComPort()

{

try{

com.CommPort=1;//設(shè)置通信端口是COM1

if(com.PortOpen)com.PortOpen=false;//如果串口開啟關(guān)閉它

com.RThreshold=1;//每接收一個(gè)字符則激發(fā)OnComm()事件

com.Settings=“9600,n,8,1″;//設(shè)置串口通信的參數(shù)

com.DTREnable=true;

com.Handshaking=MSCommLib.Handshake

Constants.comNone;

com.InputMode=MSCommLib.InputMode

Constants.comInputModeBinary;

com.INputLen=0;//清除接收緩沖區(qū)

com.NullDiscard=false;

com.OnComm+=new System.EventHandler(this.OnComm); //注冊一個(gè)OnComm事件

com.PortOpen=true;//打開串口

this.msg.Text=”設(shè)備打開成功!”;}

catch{

this.msg.Text=”設(shè)備打開失??!”;}

}

2.讀串口

當(dāng)短信相關(guān)應(yīng)用接收短信時(shí),通過串口把讀短消息AT指令(AT+CMGR)發(fā)送給短信貓,短信貓接到指令后調(diào)用內(nèi)部短信接收模塊接收短信,同時(shí)把短信內(nèi)容回傳到串口緩沖區(qū),短信相關(guān)應(yīng)用從串口緩沖區(qū)讀取短信息,其讀串口過程如下。

private void com_OnComm(object sender,System. EventArgs e)

{

com.InputMode=MSCommLib.InputMode

Constants.comInputModeBinary;

com.InputLen=0;

byte[]indata=(byte[])com.Input; //接收數(shù)據(jù)

}

3.寫串口

當(dāng)短信相關(guān)應(yīng)用發(fā)送短信時(shí),把發(fā)送短消息AT指令(AT+CMGS)和發(fā)送消息通過串口發(fā)送給短信貓,其寫串口過程如下。

private void SendDate()

{

try{

byte[]byOut=new byte[2];

byOut[0]=0x01;

byOut[1]=0x02;

com.Output=byOut;//向緩沖區(qū)寫入數(shù)據(jù)

}

Catch(Exception ex)

{

messageBox.show(ex.Message,”Error”,MessageBoxButtons.Ok,MessageBoxIcon.Error);

}

}

4.關(guān)閉串口

當(dāng)短信相關(guān)應(yīng)用完成所有的任務(wù)時(shí),把串口關(guān)閉,釋放串口資源。

private void close()

{

if (com.PorOpen==true)

com.PortOpen=false;//關(guān)閉串口

}

三、總結(jié)展望

使用GSM-Modem工業(yè)手機(jī)模塊實(shí)現(xiàn)基于GSM網(wǎng)絡(luò)的信息收發(fā),短信息網(wǎng)關(guān)提供了靈活、可靠的批量信息生成、收發(fā)、解析轉(zhuǎn)發(fā)和web信息管理等功能。系統(tǒng)可以獨(dú)立運(yùn)行,也可以作為各種信息管理系統(tǒng)的接口集成使用,隨著管理信息化技術(shù)的發(fā)展,系統(tǒng)將有重要的實(shí)際應(yīng)用價(jià)值。系統(tǒng)不僅能擴(kuò)展本學(xué)校信息管理系統(tǒng),服務(wù)各項(xiàng)管理工作,還能以標(biāo)準(zhǔn)組件的形式應(yīng)用于各種相關(guān)的信息管理系統(tǒng)。

參考文獻(xiàn):

[1]葉春寶.應(yīng)用GSM短消息服務(wù)構(gòu)建學(xué)院短信平臺(tái)[J].福建農(nóng)林大學(xué)學(xué)報(bào),2007(3).

[2]申靜波,李井輝.基于GSM Modem的短信發(fā)布平臺(tái)設(shè)計(jì).長江大學(xué)學(xué)報(bào)(自然科學(xué)版),2008(5).

(責(zé)任編輯:沈彬)

南平市| 蒙山县| 阳曲县| 三门县| 长海县| 留坝县| 繁昌县| 乃东县| 沛县| 内乡县| 丰都县| 镇坪县| 东港市| 彰武县| 浦东新区| 茶陵县| 衡东县| 怀远县| 洮南市| 辽阳市| 手机| 文昌市| 铁岭市| 额敏县| 德江县| 义乌市| 临夏县| 铜川市| 微山县| 西昌市| 东平县| 江油市| 九龙城区| 浦东新区| 长垣县| 安丘市| 诸城市| 洪湖市| 洞头县| 新晃| 柳江县|