付娟娟
摘 要:采用基于Android的推送系統(tǒng)將成績推送至為學生的手機客戶端,不但可以實現(xiàn)信息的實時性,還可以通過訂閱將所需內容推送給指定用戶。本文根據成績傳送需求及移動智能終端的特性,利用應用服務器、代理服務器和客戶端組成的三層B/S結構,引用Push技術,結合 MQTT技術充當代理服務器,實現(xiàn)Android手機客戶端與服務器之間相互推送消息。
關鍵詞:學生成績 ; push技術 ; 移動智能終端 ; Android
中國分類號:TP311 文獻標識號:A 文章編號:2095-2163(2015)04-
Design and Implementation of Student Achievement push System based on Android
FU Juanjuan
(Computer College, Zhoukou Normal University, Zhoukou Henan 466001,China)
Abstract:The push system based on Android could push student achievement to student's mobile phone client, which not only can realize the real time information, but also by subscribing push the required content delivery to the specified user. According to the result transport demand and characteristic of mobile intelligent terminal, the paper uses the application server, proxy server and the client of three-tier B/S structure, refer to Push technology, and combined with the MQTT technology ACTS as a proxy server, furtherly realize the Android mobile phone messages between the client and the server Push.
Keywords:Student Achievement; Push Technology; Displacement Intelligent Terminal; Android
0引 言
時下的很多高校都在應用基于Web服務的信息管理系統(tǒng),但卻只能實現(xiàn)有線網絡的主動查詢,無法將最新成績即時通知學生,缺乏實時性與便捷性。針對這一現(xiàn)狀,采用基于Android的推送系統(tǒng)將成績推送至為學生的手機客戶端,將減少信息搜索時間,還可根據學生的訂閱將所需內容推送給指定用戶。該平臺具有簡易框架,同時借助其開源性,即能發(fā)揮便利的硬件資源優(yōu)勢,并節(jié)省軟件開發(fā)的費用,成為現(xiàn)在手機市場上移植性最好的操作系統(tǒng)。為順應信息時代校園信息化建設的需求,且推動其加速發(fā)展步伐,本文設計研發(fā)了一個針對學校智能移動終端使用的綜合管理系統(tǒng)。
在應用程序需要與服務器利用交互隨時獲取更新的數(shù)據時,客戶端可以通過Pull與Push兩種方式來獲得。具體地,Pull方式需每間隔一段時間就要在服務器上查詢有無更新的信息出現(xiàn),這種方式對于客戶端來說不但浪費網絡流量和電量,還要時刻不停地監(jiān)測服務端的變化;而Push方式則是服務端將更新的信息推送到客戶端上,客戶端就能自動地接收到消息,用戶只需通過手機的通知欄處向下一拉,即可看到手機接收的各種通知信息。
1 系統(tǒng)的設計思想
結合當前學校對移動智能終端在使用時遇到的實際問題,本系統(tǒng)為現(xiàn)有移動終端搭建一個基于Android的成績推送平臺,選用發(fā)布-訂閱機制與智能終端保持網絡通訊協(xié)議的長連接來真正實現(xiàn)實時信息推送[1]。系統(tǒng)的總體架構如圖1所示。
圖1 系統(tǒng)構架圖
Fig.1 System structure diagram
由圖1可見,整個系統(tǒng)主要包括應用服務器、移動手機客戶端和代理服務器。應用服務器不但可以當作Web服務器,還能當作手機客戶端回復信息的訂閱方。作為Web服務器時,管理者可以通過Web網頁利用服務器對手機客戶端發(fā)布通知、新聞、成績信息,以及下發(fā)管理指令來遠程管理手機終端和獲取手機內的信息;當作為主題訂閱者時,主要是將移動手機終端回復的消息存儲至數(shù)據庫。而系統(tǒng)中代理服務器的功能是實現(xiàn)信息的實時推送,接收來源于應用服務器發(fā)布的信息并將其完整儲存,而后再推送給手機客戶端[2]。為保證手機客戶端能夠實時接收應用服務器推送過來的消息并對此做出響應,就必須針對手機與代理服務器之間建立持續(xù)連接。如果用戶想獲取更為詳細的文件與資料,也能通過客戶端直接來訪問應用服務器。
2 系統(tǒng)設計
2.1 系統(tǒng)實現(xiàn)的功能
結合當前學校對移動智能終端在使用時遇到的實際問題,本系統(tǒng)為現(xiàn)有移動終端搭建一個基于Android的成績推送平臺,該系統(tǒng)平臺需要滿足的功能,即系統(tǒng)需求可表述如下:
應用服務器是利用B/S結構來實現(xiàn),這種結構可分為三層,分別是客戶端瀏覽器、Web服務器以及數(shù)據庫服務器。
系統(tǒng)的前臺顯示作為信息資源的呈現(xiàn),目的是將成績信息公布在瀏覽器頁面上,利于全體學生或管理員的查閱。在前臺所顯示的頁面中,需提供登陸與搜索功能。在系統(tǒng)登陸成功之后,可以單擊“查看詳情”按鈕對詳細信息進行瀏覽[3]。在對推送記錄進行查閱時,可按發(fā)布時間或關鍵字進行查找,節(jié)省依次查詢時間。
系統(tǒng)后臺管理包括了學生成績信息的推送,而且還包含有對系統(tǒng)的管理,例如管理員、移動終端、推送命令等等。應用程序通過PHP來調用預先定義的API函數(shù)來實現(xiàn)各模塊的功能,而無需訪問源碼。
手機客戶端的實現(xiàn)要具備兩個功能:一是便于管理員對輔助功能進行添加操作;二是能夠實時接收管理員推送的消息和命令,并對其做出相應反饋。
2.2 應用服務器設計
本系統(tǒng)采用瀏覽器和服務器模式的B/S結構,因為系統(tǒng)的開發(fā)、維護或升級等工作大部分都集中在服務器端,只需要針對服務器進行操作或更改即可方便直觀地管理系統(tǒng),而且B/S操作模式便于不同部門的使用管理,不論在任何時間、地點、操作系統(tǒng),只要瀏覽器可以上網,就可以使用B/S系統(tǒng)的終端。院系管理員對應用服務器進行登錄操作,則需利用Web瀏覽器才有權限進行操作。
從構建系統(tǒng)的邏輯完整性上分析,用戶在通過應用服務器進行信息發(fā)布時,需要有一個前臺顯示模塊。在頁面中,用戶可對管理員發(fā)布的信息列表進行瀏覽,可通過查詢功能實現(xiàn)信息搜索。若對移動終端進行遠程控制,還需要建立一個后臺管理模塊,該模塊是整個推送平臺的核心,重點實現(xiàn)用戶的登錄驗證、移動終端管理、信息的上傳下載及推送管理等功能。各功能模塊如圖2所示。
圖2 應用服務器實現(xiàn)的各功能
Fig.2 Application server to achieve the various functions
設計中,如前所述,系統(tǒng)的前臺顯示作為信息資源的呈現(xiàn),目的是為了把成績信息公布在瀏覽器頁面里,全體學生或管理員的查閱。在前臺所顯示的頁面中,需提供登陸與搜索功能。在系統(tǒng)登陸成功之后,可以單擊“查看詳情”按鈕對詳細信息進行瀏覽。在對推送記錄進行查閱時,可按發(fā)布時間或關鍵字進行查找,節(jié)省依次查詢時間。其處理數(shù)據流程如圖3所示。
圖3 推送內容分布顯示
Fig.3 Shows the distribution of the push
在后臺模塊中,推送管理模塊實現(xiàn)了學生成績信息管理和終端命令發(fā)送功能,是系統(tǒng)中最為重要的功能模塊。登錄系統(tǒng)界面后,找到功能菜單里的成績發(fā)布,進入到發(fā)布頁面,填寫需要發(fā)布的課程名稱與成績,點擊提交按鈕,所有的記錄將自動存儲到scores數(shù)據表里,并返回唯一標識的ID號。
推送即時信息將根據學生客戶端訂閱的內容發(fā)布到代理服務器Broker里,此過程需借助SAM,這是一個針對MQTT寫的PHP庫,能夠實現(xiàn)該協(xié)議的訂閱與發(fā)布功能,構造SAMConnection類,利用connect方法將PHP腳本傳遞到消息服務器,subscribe方法是創(chuàng)建一種能訂閱一個或多個主題的方法,send方法是把消息傳送到隊列或主題中,receive方法是從隊列接收消息或訂閱,而disconnect方法要斷開PHP腳本借助消息服務器來實現(xiàn)。通過封裝在這個類中的方法并在相應的PHP腳本中包含require(‘SAM/php_sam.php)就可以實現(xiàn)所有的信息訂閱與發(fā)布[4]。
2.3 代理服務器功能設計
代理服務器根據用戶訂閱的主題采用消息的模式通過應用程序實現(xiàn)數(shù)據信息的推送,這也是整個系統(tǒng)推送過程的焦點。其流程是:客戶端首先向代理服務器訂閱自己需要的主題,管理員通過學號查詢到訂閱相同主題的學生并向該終端推送訂閱信息。在此過程中,代理服務器要具備接收主題的訂閱及信息的存儲與轉發(fā)。圖4所示即為訂閱與發(fā)布信息的過程。
圖4 發(fā)布/訂閱機制
Fig.4 Publish / subscribe mechanism
Android系統(tǒng)可采用MQTT協(xié)議來實現(xiàn)成績的推送功能,利用一個MQTT服務器充當系統(tǒng)的代理服務器,當作MQTT客戶端去完成應用服務端與手機客戶端的信息發(fā)布與訂閱機制[5],實現(xiàn)系統(tǒng)中全部的信息推送。
Mosquitto是一個輕量級,具有良好開源性的軟件,能為MQTT 3.1協(xié)議實現(xiàn)信息的推送提供代理,可采用發(fā)布/訂閱的模式推送信息。具體地,使用mosquitto_pub程序可以通過命令行實現(xiàn)消息在客戶端的發(fā)布,而mosquitto_sub 可用命令行實現(xiàn)消息在客戶端的訂閱,sub_client是客戶端訂閱一個或多個主題的消息。
2.4 手機移動客戶端的設計分析
手機客戶端除了具有訂閱功能外,還需要對推送命令具有運行、反饋的能力。根據需求分析并結合實際情況,手機客戶端要為用戶提供一個登錄版塊,能夠對登錄名及密碼進行驗證,并具有密碼設置修改功能,在登錄成功后,用戶可從信息通知、系統(tǒng)設置查看消息以決定對個人SIM卡及服務啟動關閉。
為使客戶端能夠瀏覽成績信息,客戶端能連接到應用服務器。手機客戶端在運行過程中的實現(xiàn)流程如圖5所示。用戶第一次使用客戶端程序時,系統(tǒng)會提示用戶修改初始密碼,進入系統(tǒng)后要求用戶對系統(tǒng)功能進行初始化設置,開啟系統(tǒng)服務,建立客戶端與代理服務器之間的TCP/IP協(xié)議長連接,等待接收來自服務器實時推送過來的信息和命令,并及時做出應對和處理。對于系統(tǒng)中的輔助功能也要在登陸之后才能使用。
圖5 客戶端效果實現(xiàn)詳細設計
Fig.5 Client effect to achieve detailed design
3 功能測試
學生成績推送系統(tǒng)在功能測試與性能測試中的運行狀況。從系統(tǒng)完整性與可實現(xiàn)性來看,采用長連接方式
圖6 客戶端整體工作的流程
Fig.6 Client whole work process
對功能模塊進行測試,針對系統(tǒng)登陸界面和系統(tǒng)功能進行測試。利用三星Galaxy Mega手機作為測試環(huán)境,把其他與測試無關的應用全部刪除,排除外界因素的干擾,使系統(tǒng)性能達到最佳狀態(tài)??蛻舳苏w工作的流程如圖6所示。
4 結束語
結合Android系統(tǒng)的分層體系結構,采用持久連接的方式通過應用服務、代理服務及Android客戶端實現(xiàn)了成績的信息推送。 系統(tǒng)數(shù)據庫在設計上仍需要進一步優(yōu)化升級,進而提高其網絡安全、數(shù)據傳輸及數(shù)據存儲的安全性。
參考文獻:
[1]賀鵬,劉永. 基于Android移動數(shù)字校園系統(tǒng)的設計和實現(xiàn)[J]. 電子技術與軟件工程,2014(5):42-43.
[2]張宗利. 基于信息推送技術的公選平臺消息子系統(tǒng)的設計與實現(xiàn)[D].上海:東華大學,2014.
[3]萬梅,顧和明. 基于智能設備的家校通系統(tǒng)的設計與實現(xiàn)[J]. 電腦知識與技術,2014(18):4163-4165+4183.
[4]鄒春剛. 基于移動互聯(lián)網應用的可靠數(shù)據推送方法[J]. 網絡安全技術與應用,2014(6):49-50.
[5]任亨. 基于MQTT協(xié)議的消息推送集群系統(tǒng)的設計與實現(xiàn)[D].沈陽:沈陽計算技術研究所,2014.