裴 虹, 葉仁春, 陸云龍
(華中科技大學(xué) 現(xiàn)代教育技術(shù)中心, 湖北 武漢 430074)
?
通過云服務(wù)和網(wǎng)絡(luò)中控實現(xiàn)投影燈泡主動更新
裴 虹, 葉仁春, 陸云龍
(華中科技大學(xué) 現(xiàn)代教育技術(shù)中心, 湖北 武漢 430074)
高校多媒體教室用的投影燈泡是使用和更換比較頻繁的昂貴耗費品,需要一個能及時掌握投影燈泡運行時間的方法。文中利用面向云服務(wù)的編程思想,并以網(wǎng)絡(luò)中控升級改造為契機,實現(xiàn)了投影燈泡運行時間累計計時、設(shè)限觸發(fā)、消息推送、采購報送等一系列主動更新的全過程。實踐表明,以此方法實現(xiàn)的投影燈泡主動更新,為多媒體教室設(shè)備管理和維護提供了新穎的方法。
云服務(wù); 網(wǎng)絡(luò)中控; 投影燈泡; 主動更新; 消息推送; 采購報送
目前高校多媒體教室普遍安裝了投影機,經(jīng)10多年的運行,發(fā)現(xiàn)投影燈泡是教學(xué)設(shè)備中,使用和更換比較頻繁的昂貴耗費品。投影燈泡在使用了一段時間后,尤其在超過標稱使用時間后,其亮度會有很大的衰減,這時需要更換投影燈泡,否則將會影響上課效果。由于不能及時掌握投影燈泡的運行時間,等上課教師反映投影效果不好,管理人員再查看投影機時,才知道投影燈泡的運行已經(jīng)超過了標稱使用時間[1]。又因投影燈泡價格昂貴,采購?fù)队盁襞菪枰驅(qū)W校申購,而且更換投影燈泡也不方便,這就影響了正常上課[2]。
為了保證多媒體教室能正常上課,需要建立一個針對多媒體教室投影燈泡的運行時間信息跟蹤系統(tǒng),利用面向云服務(wù)的編程思想[3],并以網(wǎng)絡(luò)中控升級改造契機,實現(xiàn)投影燈泡運行時間累計計時、設(shè)限觸發(fā)、消息推送、采購報送等一系列主動更新的全過程。
圖1為投影燈泡主動更新原理主框圖。從圖中可看出,整個系統(tǒng)中有兩個網(wǎng)絡(luò)系統(tǒng):外網(wǎng)(全域網(wǎng))設(shè)備,即云服務(wù);內(nèi)網(wǎng)(局域網(wǎng))設(shè)備[4],即網(wǎng)絡(luò)中控、智能手機、計算機管理系統(tǒng)等,共同通過網(wǎng)絡(luò)實現(xiàn)投影燈泡主動更新。其中外網(wǎng)設(shè)備的云服務(wù),有DNS域名可以直接訪問。內(nèi)網(wǎng)設(shè)備需要主動與云服務(wù)鏈接,并通過云服務(wù)轉(zhuǎn)發(fā),內(nèi)網(wǎng)設(shè)備之間才能實現(xiàn)數(shù)據(jù)通信[5]。同時內(nèi)網(wǎng)設(shè)備還需要與云服務(wù)保持網(wǎng)絡(luò)長鏈接[6],才能實現(xiàn)一個內(nèi)網(wǎng)設(shè)備發(fā)生的消息事件,通過云服務(wù)以消息推送方式[7],發(fā)到其他內(nèi)網(wǎng)設(shè)備。比如網(wǎng)絡(luò)中控累計投影燈泡運行時間,只要超過設(shè)限時間就生成消息事件,發(fā)送到云服務(wù),并通過云服務(wù)轉(zhuǎn)發(fā),再以消息推送方式,發(fā)到其他內(nèi)網(wǎng)設(shè)備,如智能手機用戶提醒,以及申請采購報送的計算機管理系統(tǒng)[8]處理。
圖1 投影燈泡主動更新原理主框圖
由此可知,如何保持內(nèi)網(wǎng)設(shè)備與云服務(wù)的網(wǎng)絡(luò)長鏈接,網(wǎng)絡(luò)中控累計運行時間,到限觸發(fā)事件,實現(xiàn)云服務(wù)數(shù)據(jù)轉(zhuǎn)發(fā)和消息推送,形成投影燈泡主動更新的關(guān)鍵技術(shù)特性。
2.1 網(wǎng)絡(luò)長鏈接的心跳包機制建立
與投影燈泡主動更新有關(guān)的內(nèi)網(wǎng)設(shè)備,在有些極端情況如掉電、網(wǎng)絡(luò)關(guān)閉、拔網(wǎng)線、WiFi掉線、路由故障等,這時候云服務(wù)端無法快速感知,也就無法轉(zhuǎn)發(fā)投影燈泡消息事件,投影燈泡的主動更新也就無從談起。內(nèi)網(wǎng)設(shè)備需要定時向云服務(wù)端發(fā)送心跳包數(shù)據(jù),到云服務(wù)端的一系列網(wǎng)絡(luò)節(jié)點設(shè)備內(nèi)存,會在某個時間段暫存此鏈路,也就等于向云服務(wù)端報送了各自的網(wǎng)絡(luò)鏈路[9]。在云服務(wù)端的應(yīng)用層,設(shè)置與內(nèi)網(wǎng)設(shè)備對接的心跳檢測。云服務(wù)端接收到心跳數(shù)據(jù)后,可以忽略不做任何處理,也可以回應(yīng)心跳檢測(向內(nèi)網(wǎng)設(shè)備回應(yīng)一段任意數(shù)據(jù))。
網(wǎng)絡(luò)中控在每次開機上線,與云服務(wù)端網(wǎng)絡(luò)鏈接穩(wěn)定后,網(wǎng)絡(luò)中控的網(wǎng)絡(luò)功能模塊每隔一段時間,以定時方式向云服務(wù)端發(fā)送心跳包數(shù)據(jù),保持網(wǎng)絡(luò)中控與云服務(wù)端的網(wǎng)絡(luò)長鏈接。投影燈泡在運行時間累計超過設(shè)限后,就可以及時向云服務(wù)發(fā)送事件消息。
智能手機用戶如需要及時得知自己所關(guān)心的投影燈泡運行時間數(shù)據(jù),一樣也要設(shè)置定時心跳包數(shù)據(jù)發(fā)送云服務(wù),保持與云服務(wù)網(wǎng)絡(luò)長鏈接,這樣就可以及時收到云服務(wù)轉(zhuǎn)發(fā)過來的消息推送,同時用戶智能手機也可以通過云服務(wù)來查詢網(wǎng)絡(luò)中控的投影燈泡運行時間。因要管理全校數(shù)百臺投影機,投影燈泡采購申報的計算機管理系統(tǒng),也需要向云服務(wù)發(fā)送定時心跳包數(shù)據(jù),這樣就能通過云服務(wù)及時得到消息推送,及時更新投影燈泡申請采購的數(shù)量。
2.2 云服務(wù)的投影燈泡消息事件轉(zhuǎn)發(fā)
2.2.1 支持云服務(wù)的Workerman服務(wù)器框架
Workerman是一款純PHP語言的開源的性能比較高的PHP Socket服務(wù)器框架[10]。使用Workerman開發(fā)的云服務(wù)應(yīng)用程序,可以不依賴Apache、Nginx容器獨立運行,適合于智能手機APP、硬件通訊、物聯(lián)網(wǎng)等領(lǐng)域開發(fā)。支持TCP網(wǎng)絡(luò)長連接,支持HTTP協(xié)議、WebSocket協(xié)議、以及簡單的Text文本自定義協(xié)議等。Workerman開啟一個主進程和多個子進程對外提供服務(wù),主進程負責監(jiān)控子進程退出信號,并負責生成新的子進程去處理服務(wù),這樣做不僅提高了應(yīng)用程序的性能,而且使得Workerman更加穩(wěn)定,使開發(fā)者更專注于業(yè)務(wù)邏輯開發(fā)。
2.2.2 以WebSocket協(xié)議為引擎實現(xiàn)投影燈泡消息事件轉(zhuǎn)發(fā)
HTTP協(xié)議僅能實現(xiàn)單向通信,HTTP Request的header頭非常長,有效數(shù)據(jù)很小,占用很多帶寬,效率很低;Comet協(xié)議,使用了Ajax,可以模擬雙向通信,但效率較低,并需要服務(wù)器有較好的支持;而WebSocket協(xié)議[11],內(nèi)網(wǎng)設(shè)備與云服務(wù)端只需通過HTTP先做一個握手動作,創(chuàng)建TCP通道鏈接,然后內(nèi)網(wǎng)設(shè)備和云服務(wù)之間可以直接通信,其Header頭數(shù)據(jù)最小只有2Bytes,這樣就可以實現(xiàn)云服務(wù)數(shù)據(jù)推送到內(nèi)網(wǎng)設(shè)備,節(jié)省帶寬并達到實時通訊。考慮到內(nèi)網(wǎng)設(shè)備會出現(xiàn)各種意外的不可靠,就需要在內(nèi)網(wǎng)設(shè)備的應(yīng)用層設(shè)置定時發(fā)送數(shù)據(jù)的心跳包機制,并在云服務(wù)端設(shè)置對接的心跳包檢測機制。
根據(jù)上述Workerman框架介紹,充分利用Workerman框架支持WebSocket協(xié)議,能更好節(jié)省服務(wù)器資源和帶寬,達到實時通訊,設(shè)計如圖2所示的云服務(wù)轉(zhuǎn)發(fā)投影燈泡消息事件原理框圖。
云服務(wù)應(yīng)用程序采用Workerman的Gateway/Worker進程模型。Gateway是主進程,負責網(wǎng)絡(luò)IO,全異步非阻塞。為簡單敘述,這里設(shè)置網(wǎng)絡(luò)中控進程、智能手機進程、設(shè)備管理系統(tǒng)進程等Gateway進程,每個不同進程可同時接受上萬客戶端的內(nèi)網(wǎng)設(shè)備連接。Workers是子進程,采用的是PHP同步模型,并提供了基本的接口,添加上自己的業(yè)務(wù)邏輯即可。
內(nèi)網(wǎng)設(shè)備和外網(wǎng)設(shè)備云服務(wù)都遵守WebSocket協(xié)議,由內(nèi)網(wǎng)設(shè)備主動發(fā)送HTTP握手鏈接,與云服務(wù)建立TCP相互通信的數(shù)據(jù)通道,并由內(nèi)網(wǎng)設(shè)備發(fā)送定時心跳包數(shù)據(jù)到云服務(wù)端,云服務(wù)設(shè)置對接的心跳包檢測機制,建立內(nèi)網(wǎng)設(shè)備與云服務(wù)的網(wǎng)絡(luò)長鏈接。
圖2 云服務(wù)轉(zhuǎn)發(fā)投影燈泡消息事件原理框圖
當網(wǎng)絡(luò)中控監(jiān)控到投影燈泡累計的運行時間超過設(shè)限,就觸發(fā)消息事件,并送到云服務(wù)的Workerman框架的網(wǎng)絡(luò)中控主進程(即Gateway主進程)。然后由云服務(wù)Workerman框架的Worker子進程,根據(jù)業(yè)務(wù)邏輯MySQL數(shù)據(jù)庫的智能手機字段,轉(zhuǎn)到智能手機進程,對智能手機用戶進行消息推送。智能手機用戶通過跨平臺HTML5的APP界面,就可以知道哪個教室的投影燈泡運行時間已經(jīng)到限,做好更換投影燈泡的準備。同時,根據(jù)業(yè)務(wù)邏輯MySQL數(shù)據(jù)庫的采購報送計算機管理系統(tǒng)字段,轉(zhuǎn)到管理系統(tǒng)進程,對學(xué)校的設(shè)備采購計算機管理系統(tǒng)也進行消息推送,表明某個教室的投影燈泡需要申請采購。云服務(wù)就此實現(xiàn)了投影燈泡的運行時間到限的消息事件轉(zhuǎn)發(fā),實現(xiàn)了投影燈泡的主動更新。
2.3 網(wǎng)絡(luò)中控的投影燈泡主動更新實現(xiàn)
2.3.1 網(wǎng)絡(luò)中控與投影燈泡相關(guān)的硬件和軟件設(shè)計
針對網(wǎng)絡(luò)中控的升級改造,要求對投影機燈泡能實現(xiàn)主動更新。網(wǎng)絡(luò)中控就必須實現(xiàn)投影燈泡運行時間的累計計時、設(shè)限觸發(fā)、消息發(fā)送等功能。另外網(wǎng)絡(luò)中控還需要實現(xiàn)心跳包數(shù)據(jù)到云服務(wù),從而實現(xiàn)與云服務(wù)的網(wǎng)絡(luò)長鏈接。為此,設(shè)計如圖3所示網(wǎng)絡(luò)中控
網(wǎng)絡(luò)中控應(yīng)用程序(STM32F103RET)投影燈泡運行時間數(shù)據(jù)定義(含設(shè)限觸發(fā))運行時間累計計時OLED屏?xí)r間顯示構(gòu)架trWnepO)0267TM(DNS運服務(wù)器域名+嵌入式HTML5網(wǎng)頁WebSocket協(xié)議心跳包數(shù)據(jù)長鏈接投影燈泡消息事件傳輸UDP/IPTCP/IPIP網(wǎng)絡(luò)(IPv4/IPv6)以太網(wǎng)(Ethernet)/無線網(wǎng)(WiFi)生 安理 管量 質(zhì) 務(wù) 服
圖3 網(wǎng)絡(luò)中控投影燈泡運行的硬件和軟件架構(gòu)
投影燈泡運行的硬件和軟件架構(gòu)。由圖可知,控制投影燈泡主動更新的網(wǎng)絡(luò)中控由兩大部分組成:投影燈泡的控制及計時和投影燈泡的消息事件網(wǎng)絡(luò)傳輸。
投影燈泡的控制及時間計時部分,選用意法半導(dǎo)體(ST)公司出品的STM32F103RET增強型系列微控制器[12]為核心,其內(nèi)核是Cortex-M3,有大容量的Flash(512 k),可以儲存常用的漢字字體,保證了足夠大的存儲空間。由STM32F103RET芯片完成投影燈泡的運行時間數(shù)據(jù)定義、運行時間累計計時、設(shè)限觸發(fā)、OLED屏顯示及數(shù)據(jù)發(fā)送。因是由程序員主控設(shè)計,可以設(shè)置網(wǎng)絡(luò)部分的安全、管理及服務(wù)質(zhì)量等。
另外網(wǎng)絡(luò)中控的網(wǎng)絡(luò)部分,選用聯(lián)發(fā)科MT7620A智能路由器SOC主控芯片[13]實現(xiàn),由嵌入式Linux[14]的OpenWrt軟件架構(gòu)組成[15]。實現(xiàn)對云服務(wù)DNS域名尋找、嵌入式Web Server網(wǎng)頁的設(shè)置,為了保持與云服務(wù)的網(wǎng)絡(luò)長鏈接,對云服務(wù)主動發(fā)送定時心跳包數(shù)據(jù),通過嵌入式TCP/IP協(xié)議棧完成網(wǎng)絡(luò)底層的數(shù)據(jù)信息傳送,并以WebSocket協(xié)議引擎分發(fā)接收不同服務(wù)類別的網(wǎng)絡(luò)數(shù)據(jù),實現(xiàn)網(wǎng)絡(luò)中控獨特的心跳包及數(shù)據(jù)傳輸?shù)募夹g(shù)特性。
2.3.2 網(wǎng)絡(luò)中控的監(jiān)控投影燈泡運行主程序流程
網(wǎng)絡(luò)中控要控制的設(shè)備很多,現(xiàn)在只敘述投影燈泡部分。網(wǎng)絡(luò)中控的投影燈泡主動更新的主程序流程如圖4所示。首先,網(wǎng)絡(luò)中控上電后,需獲取內(nèi)網(wǎng)網(wǎng)絡(luò)的IP地址,并獲取權(quán)限訪問云服務(wù)。如果是第一次與云服務(wù)鏈接,就需要激活本地網(wǎng)絡(luò)中控在云服務(wù)的注冊權(quán)限,然后登錄云服務(wù)記錄登錄在線,并啟動心跳包機制與云服務(wù)保持網(wǎng)絡(luò)長鏈接。網(wǎng)絡(luò)中控就此開始累計投影燈泡運行時間,并與設(shè)限時間數(shù)據(jù)比較。當超過設(shè)限時間,就生成投影燈泡到限的消息事件,發(fā)送到云服務(wù),由云服務(wù)處理并轉(zhuǎn)發(fā)?;蛘弋斁W(wǎng)絡(luò)中控收到云服務(wù)發(fā)來的查詢?nèi)蝿?wù)時,就返回投影燈泡當時運行時間數(shù)據(jù)。同時,網(wǎng)絡(luò)中控擁有展示數(shù)據(jù)格式的表征,比如智能手機中可以加載該HTML5嵌入式頁面,并根據(jù)頁面功能支持用戶控制設(shè)備或瀏覽設(shè)備狀態(tài)。另外網(wǎng)絡(luò)中控也設(shè)置設(shè)備采購管理的字段,告知云服務(wù)也要轉(zhuǎn)發(fā)到設(shè)備采購管理系統(tǒng),實現(xiàn)某個多媒體教室投影燈泡的采購報送[16]。
圖4 網(wǎng)絡(luò)中控投影燈泡運行時間主程序流程
當網(wǎng)絡(luò)中控要求離線時,發(fā)送最后要求離線的心跳包數(shù)據(jù),通知云服務(wù)清除網(wǎng)絡(luò)中控在線記錄,并穩(wěn)定下線。
運用物聯(lián)網(wǎng)技術(shù),采用面向云服務(wù)編程思想的Workerman框架,使用WebSocket協(xié)議實現(xiàn)數(shù)據(jù)實時轉(zhuǎn)發(fā)。網(wǎng)絡(luò)中控使用了STM32F103RET主控,以及MT7620網(wǎng)絡(luò)主控的嵌入式Liunx系統(tǒng)OpenWrt框架,定義、封裝不同用戶智能手機以及采購管理系統(tǒng)的權(quán)限及字段,解決投影機燈泡運行時間累計計時、設(shè)限觸發(fā)、消息推送、采購報送,實現(xiàn)投影機燈泡的主動更新,為多媒體教室設(shè)備管理和維護提供了新方法。
[1] 陳其梅.高校投影儀燈泡再生利用調(diào)查與研究[J].現(xiàn)代教育技術(shù),2011,21(7):50-52.
[2] 雷志華.多媒體教學(xué)設(shè)備運行管理研究[J].實驗室研究與探索,2007,26(10):134-136.
[3] 李 清.基于本體的云服務(wù)中心構(gòu)建與運行框架的研究與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.
[4] 光文華.基于局域網(wǎng)的即時通信軟件設(shè)計與實現(xiàn)[D].昆明:昆明理工大學(xué),2014.
[5] Brayan Ford, Pyda Srisuresh, Dan Kegel. Peer-to-Peer communication across network [EB/OL]. Translators. http://www.bford.info/pub/net/p2pnat.
[6] Yutong Lu, Min Wang. A New Heartbeat Mechanism for Large-Scale Cluster[C]. The first International Workshop on Metropolis/Enterprise Grid and Applications(MEGA 2006), Harbin China, January 16-18, 2006:610-619.
[7] 鄭廣成.一種SOA云服務(wù)平臺架構(gòu)研究與應(yīng)用[J].計算機應(yīng)用與軟件,2011,28(12):228-231.
[8] 高洪麗.學(xué)校教學(xué)設(shè)備采購管理系統(tǒng)的設(shè)計與實現(xiàn)(D).天津:天津師范大學(xué),2014.
[9] 周鳳石.基于Windows Socket的網(wǎng)絡(luò)通信中的心跳機制原理及其實現(xiàn)[J]. 沙洲職業(yè)工學(xué)院學(xué)報,2009,12(9):17-21
[10] Workerman,一個高性能的PHP Socket 服務(wù)器框架 [EB/OL]. http://www.workerman.net/.
[11] 李代立,陳 榕.WebSocket在Web實時通信領(lǐng)域的研究[J]. 電腦知識與技術(shù),2010, 28 (6):7923-7925.
[12] 南亦民.基于STM32標準外設(shè)庫STM32F103xxx外圍器件編程[J].長沙航空職業(yè)技術(shù)學(xué)院學(xué)報, 2010,10(12):41-45.
[13] 李 軍.嵌入式Linux設(shè)備驅(qū)動開發(fā)詳解[M].北京:人民郵電出版社,2008.
[14] 陳瑋思.基于MT7620A平臺無線網(wǎng)關(guān)的設(shè)計與應(yīng)用[D].廣州:華南理工大學(xué),2014.
[15] 郭 朋.基于OpenWrt的移動教學(xué)系統(tǒng)設(shè)計與實現(xiàn)[D].長春:吉林大學(xué),2015.
[16] 陸云龍.基于WebService的投影機燈泡主動更新設(shè)計與實現(xiàn)[J].科學(xué)技術(shù)與工程,2008,8(10):5616-5619.
An Active Updating System for Projector Lamps Through Cloud-services and Network Control
PEIHong,YERen-chun,LUYun-long
(Modern educational technology Center, Huazhong University of Science and Technology, Wuhan 430074, China)
Projector lamp is the kind of frequently used and replaced consumable in multimedia classrooms, hence, measures are needed to monitor the running time of lamps which are rested on projector. Through the use of cloud-services oriented programming ideas, this study successfully achieved a series of active updating processes, including actively time accumulation, condition-limited trigger, message push and purchase orders delivery, by the chance of network control system upgrading. The practical trials show that this paper provided a novel method for the management and maintenance of multimedia classroom equipment.
cloud-service; network control; projector lamps; actively updating; message push; purchase orders delivery
2016-03-15
裴 虹(1957-),男,黑龍江,工程師,研究方向:多媒體教室網(wǎng)絡(luò)中控遠程控制及云服務(wù)數(shù)據(jù)安全。
TP 393.05; TN 915.05
A
1006-7167(2016)09-0303-04
Tel.:027-87556846(辦),18971649889;
E-mail:peihong@mail.hust.edu.cn