《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > 短信息在图书查询中的应用设计
短信息在图书查询中的应用设计
朱会东1, 黄 艳2, 刘祥
摘要: 介绍了短信息服务及其在图书馆查书系统中的应用技术,论述该系统的功能及在系统中采用MFC多线程及动态链接库的实现方法。
關(guān)鍵詞: 多线程 动态链接库
Abstract:
Key words :

  摘  要: 介紹了短信息服務(wù)及其在圖書館查書系統(tǒng)中的應(yīng)用技術(shù),論述該系統(tǒng)的功能及在系統(tǒng)中采用MFC多線程及動態(tài)鏈接庫的實現(xiàn)方法。

  關(guān)鍵詞: 短信息服務(wù)  圖書查詢  多線程  動態(tài)鏈接庫

 

  在飛速發(fā)展的信息技術(shù)領(lǐng)域中,移動通信和Internet是兩支突飛猛進的支柱產(chǎn)業(yè)?;ヂ?lián)網(wǎng)為人們提供必要的信息資料,移動通信讓人們擺脫電話線的束縛,能夠隨時隨地進行交流。而移動通信與互聯(lián)網(wǎng)的結(jié)合——移動互連則意味著將跨時空的計算和全方位的信息置于人們掌心。短信息服務(wù)作為移動互連技術(shù)的一種,因其不占用語音通信的信道與費用低廉等優(yōu)點,目前已在許多領(lǐng)域得到廣泛應(yīng)用。

  當(dāng)今社會,人們對知識的需求不斷增加,人們常常需要從海量的書籍中來查找自己需要的信息。網(wǎng)絡(luò)的出現(xiàn)為人們通過Web查詢書籍提供了一種方便的途徑。利用短消息人們可以隨時隨地用手機發(fā)短消息查詢書籍,既方便又快捷,同時,也可為各大書店及圖書館節(jié)省人力物力。

1 短信息服務(wù)

  短信息服務(wù)SMS(Short Message Service)是通過手機發(fā)送和接收有限長度的文本信息的功能。一條短信息可以包含160個英文字母(7位編碼)或70個非拉丁字母(16位編碼),如中文漢字或阿拉伯字等Unicode編碼。

  SMS屬于GSM(Global System for Mobile Communications)第一階段的標(biāo)準(zhǔn)。但目前SMS已經(jīng)被集成到了很多網(wǎng)絡(luò)標(biāo)準(zhǔn)中,GSM、CDMA、TDMA、PHS、PDC等移動網(wǎng)絡(luò)都支持SMS,這使得SMS成為一項非常普及的移動數(shù)據(jù)業(yè)務(wù)。SMS與話音傳輸及傳真一樣,都是GSM數(shù)字蜂窩移動通信網(wǎng)絡(luò)提供的主要電信業(yè)務(wù)。它通過無線控制信道進行傳輸,經(jīng)短信息業(yè)務(wù)中心完成存儲和前轉(zhuǎn)功能。SMS是非對稱業(yè)務(wù),它使用SS7信令信道傳輸數(shù)據(jù)分組,即使在業(yè)務(wù)信道處于高峰期的情況下,也照樣可以使用短信息順利通信。它還可以實現(xiàn)全國和國際漫游。

  SMS具有收費低廉、隨時隨地、能夠承載多種數(shù)據(jù)、可以實現(xiàn)推和拉二種不同的工作模式及傳輸安全等優(yōu)點,目前已在資訊服務(wù)、移動商務(wù)、商務(wù)助理等領(lǐng)域被廣泛應(yīng)用。

2 系統(tǒng)設(shè)計

  短信自動查書系統(tǒng)的目標(biāo)就是通過手機短信息服務(wù),實現(xiàn)用戶的無線信息查詢,快速方便地使圖書查詢業(yè)務(wù)通過手機方式完成。

2.1 系統(tǒng)結(jié)構(gòu)

  由于采用CMPP接口,移動和聯(lián)通不能互發(fā),必須將移動和聯(lián)通各開通一個號碼,這給管理者和讀者都帶來不便??紤]到書籍查詢中的業(yè)務(wù)量的實際情況,采用內(nèi)嵌SIM卡的通信器作為與SMSC(短消息業(yè)務(wù)中心)的通信工具。通信器通過USB口與計算機相聯(lián),啟動計算機后通信器就處于加電狀態(tài),可進行短信收發(fā),通信器內(nèi)最多可保存10條短信。系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

 

 

  客戶通過移動電話發(fā)送短信到通信器內(nèi)所嵌入的SIM卡的號碼要求查書。該短信首先通過GSM網(wǎng)上送到短消息業(yè)務(wù)中心,然后短消息業(yè)務(wù)中心把短消息內(nèi)容下傳到通信器。短消息處理主機監(jiān)聽到有短消息到來時,立即讀取通信器,然后分析讀取的內(nèi)容,分解出不同字段的內(nèi)容,存入短消息數(shù)據(jù)庫中的接收數(shù)據(jù)表中。系統(tǒng)根據(jù)客戶所要查詢的內(nèi)容,啟動查詢線程查詢圖書館內(nèi)圖書數(shù)據(jù)庫,把查詢的結(jié)果寫入短消息數(shù)據(jù)庫的發(fā)送數(shù)據(jù)表中。短消息處理主機把發(fā)送的內(nèi)容轉(zhuǎn)換成通信可識別的格式,然后寫入通信器,以短消息的型式返回到客戶的手機。

2.2 系統(tǒng)功能模塊

  在系統(tǒng)需求及功能的分析上,把系統(tǒng)劃分為如圖2所示的子系統(tǒng)和功能模塊。

 

 

2.2.1 通信接口子系統(tǒng)

  該子系統(tǒng)中硬件的控制較為復(fù)雜,微小的變動都有可能導(dǎo)致系統(tǒng)不能正常運行。由于對硬件的訪問需求比較固定,所以采用動態(tài)鏈接庫技術(shù)(DLL)來實現(xiàn)對硬件的控制。完成的功能主要包括實現(xiàn)硬件上的短消息的自動接收和發(fā)送、信號量的獲取、通信器工作狀態(tài)讀取等。

2.2.2 業(yè)務(wù)中心子系統(tǒng)

  該子系統(tǒng)主要完成整個系統(tǒng)的管理及各種數(shù)據(jù)的處理。主要實現(xiàn)以下基本功能:

  (1)系統(tǒng)管理。完成操作員的管理,包括操作員的增加、注銷、權(quán)限的設(shè)置、密碼的設(shè)置及修改;系統(tǒng)參數(shù)的設(shè)置,包括設(shè)置短消息中心號碼以及圖書數(shù)據(jù)庫的用戶名、密碼以及短消息的格式。

  (2)收信處理。系統(tǒng)啟動后創(chuàng)建短消息接收線程,線程不斷查詢通信器。如果有短信接收,通信器立即讀取內(nèi)容,然后分析讀取的內(nèi)容,分解出短消息的內(nèi)容和手機號碼,存入收信數(shù)據(jù)表中。接收短消息參數(shù)字符串的格式為:手機號|短消息格式|接收日期|接收時間。

  (3)發(fā)送處理。系統(tǒng)定時查詢發(fā)送表,如果發(fā)送表有內(nèi)容,就創(chuàng)建短消息發(fā)送線程,再把發(fā)送表中的數(shù)據(jù)合成通信器可識別的格式發(fā)送出去,然后刪除發(fā)送表中已發(fā)送出去的內(nèi)容。發(fā)送短消息參數(shù)字符串的格式為:手機號|短消息內(nèi)容|日期|時間|加密標(biāo)志|發(fā)送等級。

    (4)信息統(tǒng)計。以短消息數(shù)據(jù)庫里的內(nèi)容為基礎(chǔ),對短消息查詢的類別、內(nèi)容、讀者類別、返回結(jié)果等的查詢、匯總統(tǒng)計、分析,以圖表的形式顯示出來,并可生成用戶指定格式的報表。

2.2.3 數(shù)據(jù)庫接口子系統(tǒng)

  實現(xiàn)通過局域網(wǎng)來訪問圖書信息數(shù)據(jù)庫。首先根據(jù)短消息數(shù)據(jù)庫收信表中的內(nèi)容分析要查詢的內(nèi)容和查詢條件,然后生成SQL查詢語句的形式,對圖書數(shù)據(jù)庫進行查詢,把查詢結(jié)果放到發(fā)件箱。

3 系統(tǒng)實現(xiàn)中的關(guān)鍵技術(shù)

  短消息查書系統(tǒng)采用VC作為開發(fā)工具,短消息數(shù)據(jù)庫采用SQL Server2000,整個系統(tǒng)在Windows 2000 Server操作系統(tǒng)下運行。

3.1 動態(tài)鏈接庫技術(shù)

  動態(tài)鏈接庫是用作共享函數(shù)庫的可執(zhí)行文件。一般情況下,DLL是一個庫中所有函數(shù)的集合,并通過包含在可執(zhí)行文件中的信息進行檢索來使用。在收發(fā)短信息時需與通信器交互,這里是通過動態(tài)鏈接庫實現(xiàn)的。DLL中的函數(shù)有導(dǎo)出函數(shù)和內(nèi)部函數(shù)二種,導(dǎo)出函數(shù)可以被外部程序調(diào)用,內(nèi)部函數(shù)只能在動態(tài)鏈接庫內(nèi)部使用。

  對通信器控制的動態(tài)鏈接庫提供的導(dǎo)出函數(shù)包括短消息的發(fā)送、接收等

  

3.2 多線程技術(shù)

  Windows是一個多任務(wù)操作系統(tǒng)。在Win32中,每一個進程可以同時執(zhí)行多個線程,這意味著一個程序可以同時完成多個任務(wù)。圖書查詢系統(tǒng)需要對大型的數(shù)據(jù)庫進行訪問,系統(tǒng)既要進行耗時的工作,又要保證用戶輸入響應(yīng)的及時性,尤其當(dāng)檢索的數(shù)據(jù)量很大、數(shù)據(jù)處理任務(wù)很重時,如果不采用多線程,檢索時的漫長的等待是難以忍受的。在采用多線程時,關(guān)鍵的問題是要采取措施來保持線程間的同步。

  短消息查書系統(tǒng)主要包括消息發(fā)送線程、短消息接收線程、圖書數(shù)據(jù)庫查詢線程。在對收信箱和發(fā)信箱操作時,使用的是臨界區(qū)(CCriticalSection)同步對象,對圖書數(shù)據(jù)庫的查詢采用信號量同步機制,信號量初始化時資源計數(shù)設(shè)置為3,這樣最多三個查書線程可同時運行,避免因查詢數(shù)據(jù)庫的線程太多而造成擁塞。

    

3.3 數(shù)據(jù)庫

  數(shù)據(jù)庫是系統(tǒng)的核心和基礎(chǔ),短消息數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的合理性及優(yōu)劣性將直接影響整個系統(tǒng)的性能。對圖書數(shù)據(jù)庫的訪問方式也同樣影響訪問數(shù)據(jù)庫的執(zhí)行效率。在對短消息數(shù)據(jù)庫的設(shè)計中遵循數(shù)據(jù)獨立性原則,按規(guī)范化設(shè)計數(shù)據(jù)庫,可減少數(shù)據(jù)間的依賴和數(shù)據(jù)冗余。

  在對圖書數(shù)據(jù)庫訪問時采用ADO訪問數(shù)據(jù)庫技術(shù)。ADO是基于COM接口的技術(shù),使用這種技術(shù)可以直接對數(shù)據(jù)庫的驅(qū)動程序進行訪問,從而大大提高訪問的速度。

    ADO的主體接口對象有三個:ConnectionPtr、CommandPtr和RecordsetPtr。ConnectionPtr返回一個記錄集或空指針,通常用來創(chuàng)建一個數(shù)據(jù)連接;CommandPtr接口返回一個記錄集,它提供一種簡單的方法來執(zhí)行返回記錄集的存儲過程和SQL語句;RecordsetPtr記錄集對象,它能夠提供更多的控制功能。

其程序?qū)崿F(xiàn)為:

  ∷CoInitialize(NULL);

  m_connection.CreateInstance(__uuidof(Connection));

    m_recordSet.CreateInstance(__uuidof(Recordset));

    pConn.CreateInstance(__uuidof(Connection));

  pConn->Open(″Provider=SQLOLEDB;SERVER=server;

    DATABASE=dbname;UID=user;pwd=password″,″″,″″,-1);

  pRs.Open(″select*from cmk where name=msg″,

                pConn,adOpenDynamic,adLockOptimistic,

                   adCmdUnknown);

  ……

  ∷CoUninitialize();

4 結(jié)束語

  目前移動電話的普及已使得SMS的應(yīng)用極為廣泛。本文應(yīng)用SMS技術(shù)通過使用MFC多線程編程及動態(tài)鏈接庫實現(xiàn)的自動查書系統(tǒng),已經(jīng)在圖書館及書店中得到很好的使用。系統(tǒng)不但方便了圖書的管理,也給人們的學(xué)習(xí)生活帶來了極大的便利。

 

參考文獻

1   劉刀桂,孟繁晶.Visual C++實踐與提高,數(shù)據(jù)庫篇.北京:中國鐵道出版社,2001

2   周學(xué)泳,石丹.短消息(SMS)與WAP的開發(fā)及應(yīng)用.北京:電子工業(yè)出版社,2002

3   Petzokd C.Windows程序設(shè)計.北京:北京大學(xué)出版社,1999

4   侯俊杰.深入淺出MFC.武漢:華中科技大學(xué)出版社,2001

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。