摘要: 相比書面通知、網(wǎng)上查詢,若能利用短信進(jìn)行成績(jī)的查詢,對(duì)于學(xué)生及其家長(zhǎng)來說,是最為方便、快捷的。短信服務(wù)系統(tǒng)能接收手機(jī)用戶的短信查詢請(qǐng)求并返回相應(yīng)的查詢結(jié)果信息。基于SMS系統(tǒng)所具有的這一特性和學(xué)生成績(jī)短信查詢的現(xiàn)實(shí)需求。本文作者設(shè)計(jì)和實(shí)現(xiàn)了學(xué)生成績(jī)查詢SMS系統(tǒng),主要介紹了學(xué)生成績(jī)查詢、SMS系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。
關(guān)鍵詞: 學(xué)生成績(jī)查詢SMS系統(tǒng)系統(tǒng)設(shè)計(jì)
書面通知、網(wǎng)上查詢是當(dāng)前各個(gè)學(xué)校發(fā)布學(xué)生成績(jī)的主要途徑。網(wǎng)上查詢相比書面通知顯然要方便、快捷得多,但其同時(shí)也會(huì)受到兩個(gè)條件的限制:一是要有計(jì)算機(jī),二是計(jì)算機(jī)能夠上網(wǎng)。雖然計(jì)算機(jī)和互聯(lián)網(wǎng)已經(jīng)比較普及,但是對(duì)于經(jīng)濟(jì)條件不好的家庭或偏遠(yuǎn)的農(nóng)村家庭,可能會(huì)沒有計(jì)算機(jī)或無法上網(wǎng)。
隨著移動(dòng)通信技術(shù)的發(fā)展和移動(dòng)通信網(wǎng)絡(luò)在城市、鄉(xiāng)村的覆蓋,手機(jī)用戶越來越多,并且已經(jīng)普。因此,利用短信進(jìn)行成績(jī)的查詢,對(duì)于學(xué)生及其家長(zhǎng)來說,是最為方便、快捷的方法。
短信服務(wù)系統(tǒng)(Short Message Service,SMS)是利用計(jì)算機(jī)控制短信終端設(shè)備收發(fā)短信,并應(yīng)用數(shù)據(jù)庫技術(shù)進(jìn)行數(shù)據(jù)查詢和管理的系統(tǒng)[1]-[5]。也就是說,SMS系統(tǒng)能接收手機(jī)用戶的短信查詢請(qǐng)求并返回相應(yīng)的查詢結(jié)果信息。基于SMS系統(tǒng)所具有的這一特性和學(xué)生成績(jī)短信查詢的現(xiàn)實(shí)需求,筆者設(shè)計(jì)和實(shí)現(xiàn)了學(xué)生成績(jī)查詢SMS系統(tǒng)。
1.系統(tǒng)硬件
本系統(tǒng)除計(jì)算機(jī)外的關(guān)鍵硬件,即短信終端設(shè)備,采用GSM Modem(俗稱“短信貓”),因?yàn)镚SM Modem相比當(dāng)前一些較大規(guī)模單位、短信業(yè)務(wù)提供商(SP)等采用的互聯(lián)網(wǎng)短信網(wǎng)關(guān)在設(shè)備購(gòu)置費(fèi)和月使用費(fèi)等方面要節(jié)省得多,并且在功能和性能上已經(jīng)完全能滿足學(xué)生成績(jī)短信查詢的需要。
GSM Modem一般通過串口(有些可通過USB接口)與計(jì)算機(jī)相連接,而計(jì)算機(jī)則利用GSM AT指令[6]控制GSM Modem進(jìn)行短信的接收與發(fā)送。當(dāng)前已有一些GSM Modem提供商和軟件開發(fā)商將底層的GSM AT指令封裝成了供VB、VC、VFP、PB、Delphi等開發(fā)工具進(jìn)行二次開發(fā)使用的動(dòng)態(tài)鏈接庫(DLL),這使得基于GSM Modem的SMS系統(tǒng)的開發(fā)便捷了許多。
本系統(tǒng)采用Wavecom公司的GSM Modem和迅賽公司的GSM Modem動(dòng)態(tài)鏈接庫(SMS.dll)二次開發(fā)接口[7]。當(dāng)然,GSM Modem中要插有已開通GSM短信功能的無線通信SIM卡。
2.學(xué)生成績(jī)數(shù)據(jù)形式與系統(tǒng)設(shè)計(jì)原則
本系統(tǒng)所能查詢的學(xué)生成績(jī),不僅僅只是學(xué)校學(xué)期末各課程的學(xué)生成績(jī),而且包括學(xué)生的其他由學(xué)校統(tǒng)一報(bào)考的考試成績(jī),如英語等級(jí)考試成績(jī)、計(jì)算機(jī)等級(jí)考試成績(jī)等。學(xué)生期末課程成績(jī)一般由特定的數(shù)據(jù)庫系統(tǒng)管理,而其他的一些學(xué)生成績(jī)的數(shù)據(jù)形式可能會(huì)是Excel表格或其他數(shù)據(jù)庫格式。當(dāng)然,Excel表格文檔也可以視為一種數(shù)據(jù)庫。
因此,本系統(tǒng)設(shè)計(jì)所遵循的一個(gè)基本原則是:系統(tǒng)查詢功能的通用性。也就是說,用一個(gè)通用的數(shù)據(jù)查詢功能模塊來實(shí)現(xiàn)可能來自不同數(shù)據(jù)庫,甚至不同類型數(shù)據(jù)庫數(shù)據(jù)的查詢。
3.系統(tǒng)總體功能模塊設(shè)計(jì)與關(guān)鍵功能模塊的實(shí)現(xiàn)
如圖1所示,本系統(tǒng)的總體功能模塊有:短信接收功能模塊、短信發(fā)送功能模塊、短信解析功能模塊、成績(jī)查詢功能模塊、系統(tǒng)管理功能模塊。
(1)短信接收功能模塊:通過“SMS.dll”中的短信接收功能,從GSM Modem的已接收短信隊(duì)列中接收短信,然后將接收到的短信轉(zhuǎn)入“短信解析功能模塊”以進(jìn)一步地解析和處理,并將該短信存入本系統(tǒng)數(shù)據(jù)庫的“已接收短信日志”表中。
(2)短信發(fā)送功能模塊:將“成績(jī)查詢功能模塊”返回的查詢結(jié)果信息,通過“SMS.dll”中的短信發(fā)送功能,控制GSM Modem發(fā)送給查詢請(qǐng)求者,并將該短信存入本系統(tǒng)數(shù)據(jù)庫的“已發(fā)送短信日志”表中。
(3)短信解析功能模塊:對(duì)接收到的短信進(jìn)行解析,即首先判斷是否為一個(gè)有效的成績(jī)查詢請(qǐng)求,若是,則按成績(jī)查詢請(qǐng)求格式獲取成績(jī)查詢的各個(gè)參數(shù),并將參數(shù)傳遞給“成績(jī)查詢功能模塊”以執(zhí)行該終端手機(jī)用戶的成績(jī)查詢短信請(qǐng)求;若不是,則通過“短信發(fā)送功能模塊”給查詢請(qǐng)求者返回如“查詢格式錯(cuò)誤”之類的信息。本系統(tǒng)要求終端手機(jī)用戶請(qǐng)求的查詢格式對(duì)各個(gè)查詢參數(shù)間以“+”號(hào)作為分隔,比如“XQCJ+10006055+張三+計(jì)算方法”。
(4)成績(jī)查詢功能模塊:根據(jù)解析短信查詢請(qǐng)求獲得的成績(jī)查詢參數(shù),執(zhí)行成績(jī)查詢,并通過“短信發(fā)送功能模塊”向請(qǐng)求成績(jī)查詢的終端手機(jī)用戶返回相關(guān)查詢結(jié)果信息。由于所查詢的目標(biāo)數(shù)據(jù),如學(xué)期課程成績(jī)、各類等級(jí)考試成績(jī)等,都是本系統(tǒng)的外部數(shù)據(jù),而且數(shù)據(jù)庫類型可能不同,因而為實(shí)現(xiàn)本功能模塊的通用性,采用如下描述的方案。
系統(tǒng)對(duì)查詢目標(biāo)數(shù)據(jù)庫(包括Excel表格形式的數(shù)據(jù))的鏈接和訪問采用ODBC方式,即首先對(duì)目標(biāo)數(shù)據(jù)庫建立ODBC數(shù)據(jù)源,然后系統(tǒng)對(duì)ODBC數(shù)據(jù)源進(jìn)行鏈接和訪問。這樣,系統(tǒng)就與目標(biāo)數(shù)據(jù)庫的類型無關(guān),而僅用一個(gè)統(tǒng)一的ODBC數(shù)據(jù)訪問接口即可。系統(tǒng)與ODBC數(shù)據(jù)源的鏈接并非在程序代碼中設(shè)定,而是用戶在系統(tǒng)的使用過程中綁定或取消。這樣,需要在系統(tǒng)數(shù)據(jù)庫中建立一個(gè)“數(shù)據(jù)庫鏈接信息”表,該表中包含字段“查詢代碼”、“數(shù)據(jù)源名”、“SQL查詢語句”等。其中“SQL查詢語句”不包含查詢條件,因?yàn)椴樵儣l件中的參數(shù)是由終端手機(jī)用戶的短信請(qǐng)求確定的,而且查詢條件可能不止一個(gè),比如:學(xué)期課程成績(jī)查詢中的“學(xué)號(hào)”、“姓名”和“課程名稱”,各類等級(jí)考試成績(jī)查詢中的“準(zhǔn)考證號(hào)”、“身份證號(hào)”和“姓名”等。為此,在系統(tǒng)數(shù)據(jù)庫中建立一個(gè)“SQL查詢條件”表,該表中包含字段“查詢代碼”、“序號(hào)”、“條件字段”等。其中的“查詢代碼”字段與“數(shù)據(jù)庫鏈接信息”表中的“查詢代碼”字段相關(guān)聯(lián)。這樣,用戶就可以通過“SQL查詢條件”表中相應(yīng)的一個(gè)或多個(gè)條件字段結(jié)合終端手機(jī)用戶指定的參數(shù)而成的SQL條件與“SQL查詢語句”,生成最終系統(tǒng)需要執(zhí)行的SQL查詢語句。
下面,筆者以學(xué)期課程成績(jī)查詢?yōu)槔敿?xì)敘述其實(shí)現(xiàn)方法。首先,對(duì)學(xué)期課程成績(jī)數(shù)據(jù)庫建立ODBC數(shù)據(jù)源(設(shè)數(shù)據(jù)源名為“學(xué)期課程成績(jī)”,并相應(yīng)地設(shè)其存放學(xué)期課程成績(jī)的數(shù)據(jù)表為“成績(jī)表”)。然后在系統(tǒng)數(shù)據(jù)庫的“數(shù)據(jù)庫鏈接信息”表中加入“查詢代碼”、“數(shù)據(jù)源名”、“SQL查詢語句”字段的內(nèi)容分別為“XQCJ”、“學(xué)期課程成績(jī)”、“Select課程名稱,總評(píng)成績(jī)From成績(jī)表”,并在“SQL查詢條件”表中加入“查詢代碼”、“序號(hào)”、“條件字段”字段的內(nèi)容分別“XQCJ”、“1”、“學(xué)號(hào)”和“XQCJ”、“2”、“姓名”及“XQCJ”、“3”、“課程名稱”的三條記錄。這樣,若有學(xué)生發(fā)送來內(nèi)容為“XQCJ+10006055+張三+計(jì)算方法”的查詢請(qǐng)求短信,則通過本系統(tǒng)“短信解析功能模塊”對(duì)短信內(nèi)容的解析,分別獲得“查詢代碼”、“學(xué)號(hào)”、“姓名”和“課程名稱”的參數(shù),從而生成最終系統(tǒng)需要執(zhí)行的SQL查詢語句“Select課程名稱,總評(píng)成績(jī)From成績(jī)表Where學(xué)號(hào)=‘10006055’And姓名=‘張三’And課程名稱=‘計(jì)算方法’”。系統(tǒng)執(zhí)行該查詢后的結(jié)果信息即可通過短信回復(fù)成績(jī)查詢請(qǐng)求者。
(5)系統(tǒng)管理功能模塊:主要是用戶信息管理和短信日志管理。用戶信息管理包括用戶信息的添加、修改、刪除和用戶的登錄、注銷等;短信日志管理包括已接收短信日志和已發(fā)送短信日志的查看、組織和備份等。
4.系統(tǒng)數(shù)據(jù)流程圖
根據(jù)上述系統(tǒng)總體功能模塊的詳細(xì)描述,可以歸納出本系統(tǒng)的數(shù)據(jù)流程圖,如圖2所示。
本學(xué)生成績(jī)查詢SMS系統(tǒng),能使學(xué)生及其家長(zhǎng)通過手機(jī)短信進(jìn)行學(xué)期課程成績(jī)、各類等級(jí)考試成績(jī)等的查詢。終端手機(jī)用戶對(duì)本系統(tǒng)在使用上非常便捷,同時(shí),本系統(tǒng)返回查詢結(jié)果信息非常快速。由于本系統(tǒng)設(shè)計(jì)遵循和強(qiáng)調(diào)的是系統(tǒng)數(shù)據(jù)查詢功能的通用性,以使系統(tǒng)可以實(shí)現(xiàn)多個(gè)來自不同數(shù)據(jù)庫、甚至不同類型數(shù)據(jù)庫數(shù)據(jù)的短信查詢。因而,本系統(tǒng)的設(shè)計(jì)思想和實(shí)現(xiàn)方法還能適用于其他一些常見教學(xué)信息的短信查詢,如教師和學(xué)生的課表查詢、學(xué)生考試和教師監(jiān)考安排查詢等。
參考文獻(xiàn):
[1]江紅,熊思民.短消息業(yè)務(wù)SMS[J].重慶郵電學(xué)院學(xué)報(bào)(自然科學(xué)版),2001,(2):46-49.
[2]王維民,劉恩.短消息服務(wù)提供商系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2006,32,(12):280-282.
[3]奚曉明,葛萬成.短信服務(wù)平臺(tái)的設(shè)計(jì)[J].信息技術(shù),2006,(10):20-22.
[4]伊衛(wèi)星.使用面向?qū)ο蠓椒ㄔO(shè)計(jì)短消息服務(wù)平臺(tái)系統(tǒng)[J].計(jì)算機(jī)與現(xiàn)代化,2006,(9):70-71.
[5]李晶,劉佳娜,錢松榮.企業(yè)短信服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2007,24,(5):91-93.
[6]Wavecom公司.AT Commands Interface[EB/OL].http://www.wavecom.com.
[7]迅賽公司.GSM MODEM動(dòng)態(tài)鏈接庫(DLL)二次開發(fā)接口[EB/OL].http://www.shoujika.com/sms/gsmdll/smsdll.htm.