王 斌,王勤為,侯祥宇(中南大學信息科學與工程學院,湖南長沙410083)
中間件及消息推送技術在K12教育中的應用和改進
王 斌,王勤為,侯祥宇
(中南大學信息科學與工程學院,湖南長沙410083)
K12教育環(huán)境中課堂教育幾乎在同一時刻進行,大多數(shù)課堂互動系統(tǒng)難以承受瞬時并發(fā)壓力,同時受限于有限的硬件資源,該類系統(tǒng)通常局限于局域網(wǎng)環(huán)境.針對這個問題,設計了一種分布式的數(shù)據(jù)采集、消息推送中間件,該中間件能有效降低服務器壓力,具備良好的擴展性.同時,對消息推送中TCP長連接機制進行了優(yōu)化,提出了一種動態(tài)心跳頻率策略DHFS,該策略能根據(jù)移動設備網(wǎng)絡狀態(tài)動態(tài)調(diào)整心跳頻率.相比固定心跳頻率策略,它能有效節(jié)省移動設備的電量和流量.通過實驗驗證了中間件和DHFS的有效性.
K12教育;課堂互動;輔助教學;分布式中間件;自適應消息推送機制
K12是國際上對基礎教育的統(tǒng)稱,K12代表從小學一年級到高中三年級的中小學教育.隨著IT技術的發(fā)展,教育界對傳統(tǒng)教育模式提出了新的需求.一些新的教學模式開始萌芽,包括網(wǎng)上課堂、在線作業(yè)、在線考試等形式[1-3],但這些形式有一些缺陷.線上教育要求學生主動完成學習任務,脫離了傳統(tǒng)教育模式中教師的監(jiān)督,年齡較小和自控力差的學生往往難以主動完成學習任務.
針對K12教育環(huán)境的獨特特點,一類名為“課堂互動”的教育支撐平臺開始興起,它并沒有完全改變傳統(tǒng)教育模式,而是作為傳統(tǒng)教育模式的一種輔助手段,它結(jié)合了傳統(tǒng)教育和遠程教育兩者的優(yōu)點,既能利用傳統(tǒng)教育模式監(jiān)督學生自主完成學習任務,也能減少教師的手工勞動.課堂互動系統(tǒng)一般由無線答題器,信號接收基站和支撐軟件平臺3部分組成.答題器和信號接收基站用于發(fā)送和接收反饋信息,配套軟件用于控制教學活動、呈現(xiàn)評測內(nèi)容以及進行相關數(shù)據(jù)統(tǒng)計.學生通過無線答題器實時答題,配套軟件快速收集信息并通過教室內(nèi)的投影設備顯示結(jié)果.
課堂互動系統(tǒng)有一些應用案例,例如西弗吉尼亞大學的考德威爾把一種名為ARS(Audience Response Systems,ARS)教學系統(tǒng)應用在課堂中[4],國內(nèi)廣州市某小學應用了一種名為“齊齊樂”的課堂互動系統(tǒng),文獻[5]介紹了一種基于Web的教學反饋系統(tǒng)WSRS-I,實踐表明這種系統(tǒng)能顯著提升學生課堂注意力和學習興趣[6-7].
目前,課堂互動系統(tǒng)由于難以承受K12教育環(huán)境的并發(fā)壓力,各個學校甚至各個班級獨自使用一套系統(tǒng),彼此處于孤立的網(wǎng)絡環(huán)境中,不能利用開放互聯(lián)網(wǎng)進行數(shù)據(jù)共享.其次,雖然有一些課堂互動系統(tǒng)為家長提供了信息渠道,但不具備消息推送功能,家長角色難以真正融入到教學環(huán)節(jié)中.
為解決K12教學環(huán)境中的高并發(fā)性能難題,研發(fā)了一種分布式中間件用以承受數(shù)據(jù)獲取、采集、存儲和消息推送帶來的壓力.在中間件的消息推送模塊中,對TCP長連接機制進行了優(yōu)化,提出了一種動態(tài)心跳頻率策略(Dynamic Heartbeat Frequency Strategy,DHFS),相比固定心跳頻率策略,該策略能根據(jù)不同網(wǎng)絡狀態(tài)動態(tài)調(diào)節(jié)心跳頻率,有效節(jié)省移動設備的電量和通信流量.
根據(jù)分布式中間件設計方案,完成了名為DATP(Distributed Assistant Teaching Platform)的課堂互動平臺,文章最后通過實驗對分布式中間件性能進行了評價,同時驗證了DHFS策略在節(jié)省電量和流量上的優(yōu)勢.
K12教育環(huán)境中,多個學校多個班級基本在同一時刻開始使用系統(tǒng),而且隨著加入平臺的學校增多,“課堂互動系統(tǒng)”服務器的壓力幾乎呈指數(shù)級增長.傳統(tǒng)的服務器集群技術在硬件成本和人力維護成本上消耗十分巨大.
本文設計一種分布式中間件來解決并發(fā)壓力難題,使得“課堂互動系統(tǒng)”能夠面向開放互聯(lián)網(wǎng)、滿足多校聯(lián)合使用需求.圖1是本文基于分布式中間件的輔助教學平臺DATP的架構圖.
DATP平臺包含一整套教育支撐系統(tǒng),教學軟件包括課堂使用的C/S模式軟件、校外使用的B/S端,以及供家長教師手機使用的移動應用,提供了課堂考勤、測試、作業(yè)批改、學生知識掌握缺陷分析、家長教師聊天等一系列功能.
每所學校都部署了一套教學軟件和中間件,不同學校由不同的中間件提供數(shù)據(jù)服務和消息推送服務(見圖1).服務器集群上的中間件調(diào)度軟件負責控制所有中間件的數(shù)據(jù)同步問題,并向中間件獲取各校的教學軟件監(jiān)控信息.這種基于分布式中間件的平臺架構將服務器的一部分壓力分攤到了各個學校,降低了服務端的硬件成本.同時,這種分布式架構十分易于擴展,如有新學校加入,只需在新學校中部署一套中間件和教學軟件即可.
圖1 基于分布式中間件的平臺架構
圖2 DEATP中間件功能模塊
中間件是一種工作在系統(tǒng)軟件和應用軟件之間的軟件層,它能屏蔽底層和上層的細節(jié)差異,給開發(fā)者提供統(tǒng)一的、功能強大的接口.中間件技術使開發(fā)者能專注于業(yè)務邏輯,有利于實現(xiàn)架構上的解耦,而分布式中間件技術進一步了提升服務器性能,擁有更好的架構可擴展能力[8].DATP教學平臺中的中間件屬于數(shù)據(jù)訪問中間件和消息推送中間件的混合體,它負責屏蔽DATP后臺的復雜性,對包括Web端、客戶端、Android、IOS等移動端上的教學軟件提供統(tǒng)一的數(shù)據(jù)訪問儲存接口和消息推送功能.圖2是中間件的功能模塊圖,中間主要包含令牌生成驗證模塊、任務調(diào)度模塊、同步控制模塊、數(shù)據(jù)模塊、消息推送模塊以及IP黑名單模塊等6個模塊,圖3是中間件的工作示意圖.
中間件使用WebService技術向外提供接口,它承擔了當前學校的所有教學軟件的數(shù)據(jù)獲取、存儲、處理和消息推送工作,它同樣面臨相當?shù)牟l(fā)壓力.為了提供安全可靠的服務,中間件實現(xiàn)了4種機制.
(1)令牌機制:令牌機制用于驗證用戶的合法性,令牌在用戶登錄時由系統(tǒng)生成,加密后發(fā)送給客戶端,客戶端獲取,客戶端下線或超時則令牌失效.
(2)任務調(diào)度機制:中間件把任務分成了實時性任務和非實時性任務.非實時性任務指不需要立即執(zhí)行的任務,如:階段知識點掌握程度計算、教學結(jié)果存儲請求等,非實時性任務會利用下課、凌晨等空閑時間執(zhí)行.
實時任務指需要馬上執(zhí)行并反饋結(jié)果的任務,例如獲取試卷信息,做題結(jié)果批改等.實時性任務一般涉及到來自硬件設備(答題器)的數(shù)據(jù),而硬件設備有可能產(chǎn)生錯誤數(shù)據(jù),因此中間件需要對這類數(shù)據(jù)進行清洗.中間件為實時性任務賦予不同優(yōu)先權,進入相應任務隊列等待執(zhí)行.
(3)動態(tài)線程池機制:相比傳統(tǒng)線程池,中間件會根據(jù)服務器壓力動態(tài)設定線程池任務數(shù)量上限,使服務器壓力保持在合理范圍.
(4)IP黑名單:該名單主要用于防止洪水攻擊.
圖3 DEATP中間件工作示意圖
圖4 消息推送模塊
服務器如何與大量移動設備通信,使用戶及時得到最新消息一直是一個廣泛的需求.因為移動設備的位置易變性和電量流量限制,催生了專門針對移動設備推送機制的研究.推送機制一般有Pull和Push兩種方式,Pull方式指客戶端采取輪詢的方式去服務器獲取新消息,Push方式指服務器產(chǎn)生新消息時主動向移動設備推送新消息.因為移動設備的休眠機制和耗電量的需求,Push方式是移動推送方案的首選.目前業(yè)界存在一些消息推送方案,但是各有缺陷和不足.(1)Google公司為Android系統(tǒng)提供了GCM(Google Cloud Messaging)方案,但是因為防火墻原因,國內(nèi)Android用戶基本不能訪問Google服務器,因此該方案在國內(nèi)難以應用;(2)蘋果公司提供的APNS(Apple Push Notification Service),該方案利用了蘋果獨特的硬件進行消息推送,十分省電,但是它不開源并只能應用在IOS系統(tǒng)中.(3)MQTT(Message Queuing Telemetry Transport),即消息隊列遙測傳輸.這個協(xié)議的跨平臺性非常好,但是核心組件RSMB是閉源的.(4)其他一些第三方推送,如百度推送,極光推送等,都有收費要求,也不能滿足信息的保密性[9].本文在分布式中間件中實現(xiàn)了一種適合K12教學環(huán)境的消息推送機制,并在TCP長連接機制上做了優(yōu)化.
3.1中間件消息推送架構
消息推送模塊屬于中間件的一部分,負責接受來自平臺其他軟件的消息推送請求,并使用Push方式把消息及時推送到移動設備.它主要由消息編碼器、消息解碼器、在線用戶列表、離線用戶緩存、待發(fā)消息緩存以及消息計數(shù)器6部分組成(見圖4).
在上述消息推送模塊結(jié)構中,長連接用戶列表用以緩存在線的移動用戶;離線用戶緩存和待發(fā)消息緩存處理有消息未接收的離線用戶;消息計數(shù)器記錄了待發(fā)消息數(shù)量;消息編碼器和解碼器負責按定義的消息格式加解密、加解碼;消息推送模塊結(jié)合K12教育環(huán)境,定義了特定的消息格式,并用加密機制、和確認重發(fā)機制保證推送消息的可靠性和安全性.
3.2動態(tài)心跳頻率策略
在Pull形式的消息推送機制中,服務器如何維持與移動設備的長連接是一個關鍵問題,長連接的目的在于保持移動設備對于服務器的可見性(NAT協(xié)議).不管是使用TCP協(xié)議還是UDP協(xié)議,實現(xiàn)長連接的方法一般都是使用心跳機制,即移動設備每隔一定時間向服務器發(fā)送心跳包,服務器收到心跳包后向移動設備回復一條應答消息[10].
出于盡量減小移動設備耗電量以及流量消耗的要求,心跳間隔時間T理論上應越大越好,但是過大的T是不合適的,在一些特定的網(wǎng)絡中,防火墻會掐斷長時間沒有數(shù)據(jù)來往的TCP連接.因為不同網(wǎng)絡掐斷TCP連接的時間不同,如果使用固定心跳頻率,則只能把時間間隔T設置為較小的值(大多數(shù)應用一般設置為十幾秒到幾分鐘),這樣顯然會消耗較多的電量和流量.
文獻[11]提出了一種自適應消息終端推送策略,它主要是根據(jù)移動設備的網(wǎng)絡狀態(tài),動態(tài)切換Pull和Push兩種方式,并沒有在長連接機制上做優(yōu)化.本文則在Push機制的基礎上對TCP長連接機制進行了優(yōu)化,提出了一種動態(tài)心跳頻率策略DHFS來動態(tài)計算心跳間隔時間T,間隔時間T會根據(jù)移動設備的網(wǎng)絡狀態(tài)動態(tài)調(diào)整.該策略的目的是找出一個合理的心跳時間間隔,在保持TCP長連接的前提下,盡量減少移動設備的電量和流量消耗.為簡化描述,有如下定義:
定義1移動設備無網(wǎng)絡的狀態(tài)稱為狀態(tài)Q,移動設備網(wǎng)絡發(fā)生變化(例如網(wǎng)絡恢復,IP地址變化,GPRS變?yōu)閃IFI等)稱為重建條件C.
定義2移動設備向服務器發(fā)送心跳包,并于規(guī)定時間內(nèi)收到應答消息的過程稱為一次成功心跳,成功心跳次數(shù)設為S.
定義3在連續(xù)n(n>=3)次成功心跳的基礎上,產(chǎn)生一次失敗心跳稱為峰值警告條件,用W表示.
定義4心跳間隔時間T的初始值設為T0,最大值設為Tmax;T0的初始值設置為1 min,Tmax初始值設為120 min.
根據(jù)以上定義,有如下規(guī)則:
(1)滿足條件Q的情況下,移動設備停止發(fā)送心跳包,等待網(wǎng)絡恢復;
(2)滿足重建條件C的情況下,TCP長連接將斷開,移動設備應該立即重建TCP連接,服務器丟棄舊的連接信息;
(3)每產(chǎn)生一次成功心跳則S=S+1;
(4)隨著S增大,T適當延長,如公式1,其中a為可變增量因子,初始值為10;
(5)如滿足峰值警告條件W,則Tmax=a(S+1)+T0;
(6)每產(chǎn)生一次失敗心跳S=S-1;
(7)心跳間隔時間T的計算結(jié)果不能超過Tmax,如超過則a=a/2,重新計算T直到不再大于Tmax;
(8)如果可變增長因子a<0.5,意味著心跳間隔時間已經(jīng)接近當前網(wǎng)絡的最大值,則T和S不再增加.
動態(tài)心跳頻率策略DHFS流程描述如下:
Step1檢查移動設備有無網(wǎng)絡,如有網(wǎng)絡則轉(zhuǎn)步驟3,沒有則等待網(wǎng)絡恢復.
Step2檢查網(wǎng)絡是否滿足重建條件C,如滿足該條件則重建與服務器的TCP連接,并將所有參數(shù)(S,a,Tmax)恢復成初始值.
Step3按特定格式加密向服務器發(fā)送心跳包.
Step4等待服務器響應,如在規(guī)定時間內(nèi)收到響應,則該心跳成功,否則轉(zhuǎn)步驟8.
Step5檢查可變增量因子是否大于0.5,否則轉(zhuǎn)步驟10
Step6成功心跳次數(shù)S=S+1.
Step7計算心跳間隔時間T=aS+T0,如果T大于Tmax,則將a縮小一半,即a=a/2,再次計算T,直到T不再大于Tmax.
Step8如果心跳失敗,并且滿足峰值警告條件W,重新計算Tmax=a(S+1)+T0.
Step9成功心跳次數(shù)S=S-1,重新計算T=aS+T0.
Step10心跳服務睡眠T分鐘后,回到步驟1.
上述DHFS策略中,心跳間隔時間T隨著心跳包的發(fā)送T被調(diào)整成當前網(wǎng)絡環(huán)境中能維持TCP長連接的最大值,因此DHFS策略能最大限度地為移動設備節(jié)省電量和流量.
4.1DATP平臺性能測試
為了測試平臺在多校并發(fā)使用情況下的服務器性能,本次實驗使用壓力測試工具對DATP平臺不斷發(fā)出數(shù)據(jù)獲取和存儲請求.
本次實驗在10臺機器上分別開啟2 000個線程,每個線程每分鐘向服務器發(fā)送10條數(shù)據(jù)請求,共持續(xù)6 h.10臺機器用于模擬10個學校,機器上均部署了一套中間件,2 000個線程用于模擬每個學校2 000學生,每分鐘將產(chǎn)生20萬條數(shù)據(jù)請求.測試結(jié)果見表1.
表1 DATP并發(fā)壓力測試結(jié)果
上述測試結(jié)果說明在大并發(fā)情況下,DATP平臺服務器壓力仍處于合理范圍.
4.1DHFS策略效果測評
為了測試DHFS策略的效果,本實驗開發(fā)了A和B兩種保持TCP長連接的APP,A使用固定時間閾值T(T為2 min),B使用動態(tài)心跳頻率策略DHFS.兩個APP除了推送策略之外,其他軟件部分相同.兩個APP用同一手機在4個不同類型網(wǎng)絡中運行.實驗共進行10次,每次運行24 h.統(tǒng)計其電量和流量消耗平均值,結(jié)果見表2,圖5.
表2 DHFS動態(tài)心跳頻率策略測評結(jié)果
圖5 DHFS動態(tài)心跳頻率策略測評
圖6 A、B兩APP在WIFI網(wǎng)絡中的實驗結(jié)果
計算平均值可以發(fā)現(xiàn),使用DHFS動態(tài)心跳頻率策略的耗電量是固定心跳頻率策略的58.8%,流量消耗是其68.3%.由此可以證明DHFS策略在電量和流量消耗上有明顯提升.圖6是A、B兩APP在WIFI網(wǎng)絡中的實驗結(jié)果.
設計實現(xiàn)的分布式中間件,承擔了數(shù)據(jù)服務和消息推送工作,將服務器訪問壓力分攤到各個學校,解決了K12教育平臺中的高并發(fā)壓力.基于該分布式中間件,課堂互動系統(tǒng)被擴展成了面向開發(fā)互聯(lián)網(wǎng),多校聯(lián)合使用的教育平臺,這是對教育模式的一種新的探索.
此外,在分布式中間件的消息推送機制中,針對TCP長連接機制進行了優(yōu)化,提出了一種動態(tài)心跳頻率策略DHFS,它能根據(jù)不同網(wǎng)絡狀態(tài)動態(tài)調(diào)整時間閾值.實驗表明相比固定心跳頻率策略,DHFS能有效節(jié)省移動設備電量和流量.
[1]鄭燕林,柳海民.美國K-12網(wǎng)絡教育發(fā)展的特征及啟示[J].中國電化教育,2014(3):42-50.
[2]洪建峰.面向開放教育的移動微課堂系統(tǒng)的設計與研究[J].計算機應用與軟件,2015,32(5):175-177.
[3]Kay R H,Lesage A.2009.A strategic assessment of audience response systems used in higher education[J].Australasian Journal of Educational Technology,2009,25(2):235-249.
[4]Caldwell J E.Clickers in the large classroom:current research and best-practice tips[J].CBE-Life Sciences Education,2007,6(1):9-20.
[5]盛津芳,董科,李龍,等.基于Web的學生反饋系統(tǒng)的構建及在高校教學中的實踐分析[J].電化教育研究,2015(1):48-54.
[6]Grzeskowiak L E,Thomas A E,Josephine T,etc.Enhancing Continuing Education Activities Using Audience Response Systems:A Single-Blind Controlled Trial[J].Journal of Continuing Education in the Health Professions,2015,35(1):38-45.
[7]Blasco A L,Buil I,Hernández O B,etc.Using clickers in class.The role of interactivity,active collaborative learning and engagement in learning performance[J].Computers&Education,2013,62(3):102-110.
[8]王斌,丁建,盛津芳.DCAM平臺下的分布式方面構件模型及協(xié)同框架的研究[J].計算機應用研究,2010(8):2959-2961.
[9]姜妮,張宇,趙志軍.基于消息隊列遙測傳輸?shù)耐扑拖到y(tǒng)[J].計算機工程,2015,41(9):1-6.
[10]王浩銘,穆道生,高麗娟.一種面向容災自適應的PULL&PUSH心跳檢測機制[J].計算機科學,2014(S2):212-214.
[11]劉永玲,劉兀,郭克華.一種面向移動終端的自適應消息推送策略[J].計算機工程與科學,2014,35(12):114-119.
Research on Distributed Middleware and its Adaptive Message Push Mechanism which Supports K12 Education
WANG Bin,WANG Qin-wei,HOU Xiang-yu
(School of Information Science and Engineering,Central South University,Changsha 410083,Hunan,China)
In exploring K12 education mode,a system called"classroom interaction system"began to rise.At present this kind of system is faced with pressure problem,thus the system is limited to the local area network environment.In this paper,a distributed middleware is studied to solve the problem of multi-school concurrency in the platform.At the same time,this paper studies message push mechanism of the distributed middleware,and the TCP long connection mechanism is optimized.An adaptive time threshold heartbeat algorithm is proposed in this paper,which can dynamically adjust the heartbeat time threshold based on the mobile network conditions in order to save the power and the flow of mobile devices.In the end,the performance of the distributed middleware and the validity of algorithm are verified by experiments.
K12 education;classroom interaction;assistant teaching;distributed middleware;adaptive message push mechanism
TP393.0
A
1007-5348(2016)06-0085-06
(責任編輯:歐愷)
2016-03-18
國際科技合作與交流專項(2013DFB10070);湖南省科技廳項目(2012GK4106).
王斌(1973-),男,山西大同人,中南大學信息科學與工程學院教授,博士;研究方向:軟件工程,并行計算.