裴 虹, 叶仁春, 陆云龙
(华中科技大学 现代教育技术中心, 湖北 武汉 430074)
通过云服务和网络中控实现投影灯泡主动更新
裴 虹, 叶仁春, 陆云龙
(华中科技大学 现代教育技术中心, 湖北 武汉 430074)
高校多媒体教室用的投影灯泡是使用和更换比较频繁的昂贵耗费品,需要一个能及时掌握投影灯泡运行时间的方法。文中利用面向云服务的编程思想,并以网络中控升级改造为契机,实现了投影灯泡运行时间累计计时、设限触发、消息推送、采购报送等一系列主动更新的全过程。实践表明,以此方法实现的投影灯泡主动更新,为多媒体教室设备管理和维护提供了新颖的方法。
云服务; 网络中控; 投影灯泡; 主动更新; 消息推送; 采购报送
目前高校多媒体教室普遍安装了投影机,经10多年的运行,发现投影灯泡是教学设备中,使用和更换比较频繁的昂贵耗费品。投影灯泡在使用了一段时间后,尤其在超过标称使用时间后,其亮度会有很大的衰减,这时需要更换投影灯泡,否则将会影响上课效果。由于不能及时掌握投影灯泡的运行时间,等上课教师反映投影效果不好,管理人员再查看投影机时,才知道投影灯泡的运行已经超过了标称使用时间[1]。又因投影灯泡价格昂贵,采购投影灯泡需要向学校申购,而且更换投影灯泡也不方便,这就影响了正常上课[2]。
为了保证多媒体教室能正常上课,需要建立一个针对多媒体教室投影灯泡的运行时间信息跟踪系统,利用面向云服务的编程思想[3],并以网络中控升级改造契机,实现投影灯泡运行时间累计计时、设限触发、消息推送、采购报送等一系列主动更新的全过程。
图1为投影灯泡主动更新原理主框图。从图中可看出,整个系统中有两个网络系统:外网(全域网)设备,即云服务;内网(局域网)设备[4],即网络中控、智能手机、计算机管理系统等,共同通过网络实现投影灯泡主动更新。其中外网设备的云服务,有DNS域名可以直接访问。内网设备需要主动与云服务链接,并通过云服务转发,内网设备之间才能实现数据通信[5]。同时内网设备还需要与云服务保持网络长链接[6],才能实现一个内网设备发生的消息事件,通过云服务以消息推送方式[7],发到其他内网设备。比如网络中控累计投影灯泡运行时间,只要超过设限时间就生成消息事件,发送到云服务,并通过云服务转发,再以消息推送方式,发到其他内网设备,如智能手机用户提醒,以及申请采购报送的计算机管理系统[8]处理。
图1 投影灯泡主动更新原理主框图
由此可知,如何保持内网设备与云服务的网络长链接,网络中控累计运行时间,到限触发事件,实现云服务数据转发和消息推送,形成投影灯泡主动更新的关键技术特性。
2.1 网络长链接的心跳包机制建立
与投影灯泡主动更新有关的内网设备,在有些极端情况如掉电、网络关闭、拔网线、WiFi掉线、路由故障等,这时候云服务端无法快速感知,也就无法转发投影灯泡消息事件,投影灯泡的主动更新也就无从谈起。内网设备需要定时向云服务端发送心跳包数据,到云服务端的一系列网络节点设备内存,会在某个时间段暂存此链路,也就等于向云服务端报送了各自的网络链路[9]。在云服务端的应用层,设置与内网设备对接的心跳检测。云服务端接收到心跳数据后,可以忽略不做任何处理,也可以回应心跳检测(向内网设备回应一段任意数据)。
网络中控在每次开机上线,与云服务端网络链接稳定后,网络中控的网络功能模块每隔一段时间,以定时方式向云服务端发送心跳包数据,保持网络中控与云服务端的网络长链接。投影灯泡在运行时间累计超过设限后,就可以及时向云服务发送事件消息。
智能手机用户如需要及时得知自己所关心的投影灯泡运行时间数据,一样也要设置定时心跳包数据发送云服务,保持与云服务网络长链接,这样就可以及时收到云服务转发过来的消息推送,同时用户智能手机也可以通过云服务来查询网络中控的投影灯泡运行时间。因要管理全校数百台投影机,投影灯泡采购申报的计算机管理系统,也需要向云服务发送定时心跳包数据,这样就能通过云服务及时得到消息推送,及时更新投影灯泡申请采购的数量。
2.2 云服务的投影灯泡消息事件转发
2.2.1 支持云服务的Workerman服务器框架
Workerman是一款纯PHP语言的开源的性能比较高的PHP Socket服务器框架[10]。使用Workerman开发的云服务应用程序,可以不依赖Apache、Nginx容器独立运行,适合于智能手机APP、硬件通讯、物联网等领域开发。支持TCP网络长连接,支持HTTP协议、WebSocket协议、以及简单的Text文本自定义协议等。Workerman开启一个主进程和多个子进程对外提供服务,主进程负责监控子进程退出信号,并负责生成新的子进程去处理服务,这样做不仅提高了应用程序的性能,而且使得Workerman更加稳定,使开发者更专注于业务逻辑开发。
2.2.2 以WebSocket协议为引擎实现投影灯泡消息事件转发
HTTP协议仅能实现单向通信,HTTP Request的header头非常长,有效数据很小,占用很多带宽,效率很低;Comet协议,使用了Ajax,可以模拟双向通信,但效率较低,并需要服务器有较好的支持;而WebSocket协议[11],内网设备与云服务端只需通过HTTP先做一个握手动作,创建TCP通道链接,然后内网设备和云服务之间可以直接通信,其Header头数据最小只有2Bytes,这样就可以实现云服务数据推送到内网设备,节省带宽并达到实时通讯。考虑到内网设备会出现各种意外的不可靠,就需要在内网设备的应用层设置定时发送数据的心跳包机制,并在云服务端设置对接的心跳包检测机制。
根据上述Workerman框架介绍,充分利用Workerman框架支持WebSocket协议,能更好节省服务器资源和带宽,达到实时通讯,设计如图2所示的云服务转发投影灯泡消息事件原理框图。
云服务应用程序采用Workerman的Gateway/Worker进程模型。Gateway是主进程,负责网络IO,全异步非阻塞。为简单叙述,这里设置网络中控进程、智能手机进程、设备管理系统进程等Gateway进程,每个不同进程可同时接受上万客户端的内网设备连接。Workers是子进程,采用的是PHP同步模型,并提供了基本的接口,添加上自己的业务逻辑即可。
内网设备和外网设备云服务都遵守WebSocket协议,由内网设备主动发送HTTP握手链接,与云服务建立TCP相互通信的数据通道,并由内网设备发送定时心跳包数据到云服务端,云服务设置对接的心跳包检测机制,建立内网设备与云服务的网络长链接。
图2 云服务转发投影灯泡消息事件原理框图
当网络中控监控到投影灯泡累计的运行时间超过设限,就触发消息事件,并送到云服务的Workerman框架的网络中控主进程(即Gateway主进程)。然后由云服务Workerman框架的Worker子进程,根据业务逻辑MySQL数据库的智能手机字段,转到智能手机进程,对智能手机用户进行消息推送。智能手机用户通过跨平台HTML5的APP界面,就可以知道哪个教室的投影灯泡运行时间已经到限,做好更换投影灯泡的准备。同时,根据业务逻辑MySQL数据库的采购报送计算机管理系统字段,转到管理系统进程,对学校的设备采购计算机管理系统也进行消息推送,表明某个教室的投影灯泡需要申请采购。云服务就此实现了投影灯泡的运行时间到限的消息事件转发,实现了投影灯泡的主动更新。
2.3 网络中控的投影灯泡主动更新实现
2.3.1 网络中控与投影灯泡相关的硬件和软件设计
针对网络中控的升级改造,要求对投影机灯泡能实现主动更新。网络中控就必须实现投影灯泡运行时间的累计计时、设限触发、消息发送等功能。另外网络中控还需要实现心跳包数据到云服务,从而实现与云服务的网络长链接。为此,设计如图3所示网络中控
网络中控应用程序(STM32F103RET)投影灯泡运行时间数据定义(含设限触发)运行时间累计计时OLED屏时间显示构架trWnepO)0267TM(DNS运服务器域名+嵌入式HTML5网页WebSocket协议心跳包数据长链接投影灯泡消息事件传输UDP/IPTCP/IPIP网络(IPv4/IPv6)以太网(Ethernet)/无线网(WiFi)生 安理 管量 质 务 服
图3 网络中控投影灯泡运行的硬件和软件架构
投影灯泡运行的硬件和软件架构。由图可知,控制投影灯泡主动更新的网络中控由两大部分组成:投影灯泡的控制及计时和投影灯泡的消息事件网络传输。
投影灯泡的控制及时间计时部分,选用意法半导体(ST)公司出品的STM32F103RET增强型系列微控制器[12]为核心,其内核是Cortex-M3,有大容量的Flash(512 k),可以储存常用的汉字字体,保证了足够大的存储空间。由STM32F103RET芯片完成投影灯泡的运行时间数据定义、运行时间累计计时、设限触发、OLED屏显示及数据发送。因是由程序员主控设计,可以设置网络部分的安全、管理及服务质量等。
另外网络中控的网络部分,选用联发科MT7620A智能路由器SOC主控芯片[13]实现,由嵌入式Linux[14]的OpenWrt软件架构组成[15]。实现对云服务DNS域名寻找、嵌入式Web Server网页的设置,为了保持与云服务的网络长链接,对云服务主动发送定时心跳包数据,通过嵌入式TCP/IP协议栈完成网络底层的数据信息传送,并以WebSocket协议引擎分发接收不同服务类别的网络数据,实现网络中控独特的心跳包及数据传输的技术特性。
2.3.2 网络中控的监控投影灯泡运行主程序流程
网络中控要控制的设备很多,现在只叙述投影灯泡部分。网络中控的投影灯泡主动更新的主程序流程如图4所示。首先,网络中控上电后,需获取内网网络的IP地址,并获取权限访问云服务。如果是第一次与云服务链接,就需要激活本地网络中控在云服务的注册权限,然后登录云服务记录登录在线,并启动心跳包机制与云服务保持网络长链接。网络中控就此开始累计投影灯泡运行时间,并与设限时间数据比较。当超过设限时间,就生成投影灯泡到限的消息事件,发送到云服务,由云服务处理并转发。或者当网络中控收到云服务发来的查询任务时,就返回投影灯泡当时运行时间数据。同时,网络中控拥有展示数据格式的表征,比如智能手机中可以加载该HTML5嵌入式页面,并根据页面功能支持用户控制设备或浏览设备状态。另外网络中控也设置设备采购管理的字段,告知云服务也要转发到设备采购管理系统,实现某个多媒体教室投影灯泡的采购报送[16]。
图4 网络中控投影灯泡运行时间主程序流程
当网络中控要求离线时,发送最后要求离线的心跳包数据,通知云服务清除网络中控在线记录,并稳定下线。
运用物联网技术,采用面向云服务编程思想的Workerman框架,使用WebSocket协议实现数据实时转发。网络中控使用了STM32F103RET主控,以及MT7620网络主控的嵌入式Liunx系统OpenWrt框架,定义、封装不同用户智能手机以及采购管理系统的权限及字段,解决投影机灯泡运行时间累计计时、设限触发、消息推送、采购报送,实现投影机灯泡的主动更新,为多媒体教室设备管理和维护提供了新方法。
[1] 陈其梅.高校投影仪灯泡再生利用调查与研究[J].现代教育技术,2011,21(7):50-52.
[2] 雷志华.多媒体教学设备运行管理研究[J].实验室研究与探索,2007,26(10):134-136.
[3] 李 清.基于本体的云服务中心构建与运行框架的研究与实现[D].哈尔滨:哈尔滨工业大学,2013.
[4] 光文华.基于局域网的即时通信软件设计与实现[D].昆明:昆明理工大学,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云服务平台架构研究与应用[J].计算机应用与软件,2011,28(12):228-231.
[8] 高洪丽.学校教学设备采购管理系统的设计与实现(D).天津:天津师范大学,2014.
[9] 周凤石.基于Windows Socket的网络通信中的心跳机制原理及其实现[J]. 沙洲职业工学院学报,2009,12(9):17-21
[10] Workerman,一个高性能的PHP Socket 服务器框架 [EB/OL]. http://www.workerman.net/.
[11] 李代立,陈 榕.WebSocket在Web实时通信领域的研究[J]. 电脑知识与技术,2010, 28 (6):7923-7925.
[12] 南亦民.基于STM32标准外设库STM32F103xxx外围器件编程[J].长沙航空职业技术学院学报, 2010,10(12):41-45.
[13] 李 军.嵌入式Linux设备驱动开发详解[M].北京:人民邮电出版社,2008.
[14] 陈玮思.基于MT7620A平台无线网关的设计与应用[D].广州:华南理工大学,2014.
[15] 郭 朋.基于OpenWrt的移动教学系统设计与实现[D].长春:吉林大学,2015.
[16] 陆云龙.基于WebService的投影机灯泡主动更新设计与实现[J].科学技术与工程,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-),男,黑龙江,工程师,研究方向:多媒体教室网络中控远程控制及云服务数据安全。
TP 393.05; TN 915.05
A
1006-7167(2016)09-0303-04
Tel.:027-87556846(办),18971649889;
E-mail:peihong@mail.hust.edu.cn