楊旭 田宇 董興楷 牛鵬 郭林 內(nèi)蒙古工業(yè)大學(xué)
移動互聯(lián)網(wǎng),將互聯(lián)網(wǎng)與移動通信緊密融合成一體,其涵蓋了互聯(lián)網(wǎng)模式和應(yīng)用、移動通信技術(shù)及兩者結(jié)合產(chǎn)生的一切活動。2018年上半年,中國又增加了2000多萬移動互聯(lián)網(wǎng)用戶,人均單日使用移動互聯(lián)網(wǎng)約5h。
具體如下:安全性,保障用戶信息交互和傳遞安全;穩(wěn)定性,保障用戶客戶端和服務(wù)器端的長期可靠運行;省電省流量,處理冗余數(shù)據(jù)少,待機(jī)開銷??;體積小,不過多占用有限的移動存儲空間。
該方案可以形象地稱之為“拉”信息。用戶手中的信息推送服務(wù)客戶端每隔一定的 間與服務(wù)器建立一次連發(fā)3D版本的訓(xùn)練游戲,可有效提升用戶參與度。此外,目前游戲市場所占份額最多的仍屬低齡段的語文、數(shù)學(xué)、外語等主科教學(xué),針對特殊教育等社會應(yīng)用的游戲案例較少,面向自閉癥兒童的3D訓(xùn)練游戲研發(fā)可彌補(bǔ)此類需求,在特殊教育機(jī)構(gòu)、醫(yī)院自閉癥專科等部門有廣闊的市場。
查詢服務(wù)器上是否有信息發(fā)布出來,如果有就取回并顯示到客戶端上。這種方案看似簡單直接,但是輪詢間隔時間很難優(yōu)化。輪詢間隔時間設(shè)置太長,信息推送的實時性就很差;而如果這個時間設(shè)置太短,勢必會增加網(wǎng)絡(luò)流量和消耗電量,對于移動互聯(lián)網(wǎng)而言,這是“大忌”。
移動通信運營商向用戶發(fā)送短信息,用戶的信息推送服務(wù)客戶端攔截該短信息并將其內(nèi)容解析出來,根據(jù)解析內(nèi)容跳轉(zhuǎn)訪問服務(wù)器的指定頁面。
用戶手中的信息推送服務(wù)客戶端與服務(wù)器建立一個持久連接,即使網(wǎng)絡(luò)中斷,連接信息不丟失、資源不回收,網(wǎng)絡(luò)恢復(fù)后仍使用原有資源進(jìn)行連接,如果連接超時,客戶端將立即再次發(fā)起連接。該方案可以保證實時性,雖然也會消耗電量和流量,但可以從設(shè)計上進(jìn)行優(yōu)化,將信息推送損耗降至較低水平.對比上述幾套方案,選取最后一套方案,基于消息隊列遙測傳輸協(xié)議(MQTT)來實現(xiàn)。
源于IBM公司MQTT的設(shè)計思想是“發(fā)布—訂閱”模式??蛻舳瞬恢苯优c服務(wù)器交互,在兩者之間架設(shè)代理服務(wù)器(ProxyServer),從而做到應(yīng)用程序與服務(wù)程序松耦合。MQTT協(xié)議的基本工作過程是:首先,ProxyServer作為broker角色開啟服務(wù),然后客戶端與Broker創(chuàng)建連接并長時間維持連接,“訂閱”(準(zhǔn)備接收特定的信息)已設(shè)定好的“主題”(Topic)。
信息內(nèi)容主要包括兩種形式,一是信息內(nèi)容的全部具體信息,另一種形式則是信息的主要內(nèi)容或者信息目錄索引,由接受信息對象按照推送的通知,查詢具體信息內(nèi)容。本系統(tǒng)推送的信息以后者的形式實現(xiàn)。
信息推送服務(wù)系統(tǒng)由3個子系統(tǒng)組成,分別是信息推送服務(wù)控制端、信息代理服務(wù)器、手機(jī)APP客戶端。
信息推送服務(wù)控制端和信息代理服務(wù)器運行在同一個物理服務(wù)器上。該物理服務(wù)器是自購服務(wù)器,安裝Windows2008Server操作系統(tǒng),由第三方數(shù)據(jù)中心托管,固定國際互聯(lián)網(wǎng)IPv4地址。管理員從外部接入國際互聯(lián)網(wǎng)通過瀏覽器訪問該服務(wù)器。系統(tǒng)在推廣試用階段數(shù)據(jù)量不是很大,因此選擇性能較穩(wěn)定,操作和配置都較靈活的MySql數(shù)據(jù)庫。服務(wù)控制端使用跨平臺的PHP腳本語言開發(fā),管理員用瀏覽器即可操作,無需安裝繁瑣的控制軟件。
在早些時候,隨著MQTT協(xié)議的出現(xiàn),IBM公司為應(yīng)用該協(xié)議,編寫了RSMB組件。該組件有多種形式,可運行于Windows、Linux等操作系統(tǒng),但是它沒有考慮用戶訪問的安全性,并且未開源。在搭建信息代理服務(wù)器時,最初選用的也是RSMB組件,進(jìn)一步完善修改后,最終選用開源的、支持安全訪問的Mosquitto組件作為Broker角色來實現(xiàn)信息代理服務(wù)。
手機(jī)APP客戶端基于安卓(Android)操作系統(tǒng)設(shè)計。雖然Android用的是Linux內(nèi)核,使用C、C++開發(fā)APP軟件效率高,但是信息推送服務(wù)主要關(guān)注點在應(yīng)用層,不過多考慮底層的硬件接口、驅(qū)動,因此在開發(fā)手段上采用基于Java虛擬機(jī)的SDK實時運行環(huán)境。APP與用戶交互的主界面使用Android的Layout相對布局,查看推送信息的詳細(xì)內(nèi)容使用WebView組件加載HTML5響應(yīng)式網(wǎng)頁進(jìn)行瀏覽。
管理員登錄系統(tǒng)采用Ajax設(shè)計理念,更新登錄信息輸入狀態(tài)而不刷新頁面。
配置信息推送Broker參數(shù)的源代碼如下:參數(shù)值的含義如下:
cishu=0表示推送最新的信息。
cishu=1表示推送其次新的信息。
cishu=2表示推送從時間順序上排在第3的信息(也就是在歷史信息表中第3行的信息)。
cishu=3表示更早的信息(也就是在歷史信息表中第4行的信息)。
以此類推,最大參數(shù)為cishu=9,也即本系統(tǒng)可以重新推送以前推送過的10條信息。填寫任意網(wǎng)址,推送的信息將會鏈接到該網(wǎng)址上。注意網(wǎng)址必須以帶問號的參數(shù)結(jié)尾。
例如http://192.168.1.88/index.asp?mk=9
或者h(yuǎn)ttp://192.168.1.66/?t=23
如果沒有參數(shù),任意添加一個即可。
綜上所述,本系統(tǒng)的服務(wù)控制權(quán)完全在管理者手中,可以統(tǒng)計用戶對信息接收情況的反饋(依據(jù)設(shè)備識別碼唯一性),準(zhǔn)確掌握用戶對信息效果的反應(yīng)情況。它不僅能做到大面積統(tǒng)一推送,還可以做到定點準(zhǔn)確推送。