APP下载

中间件及消息推送技术在K12教育中的应用和改进

2016-09-08王勤为侯祥宇中南大学信息科学与工程学院湖南长沙410083

韶关学院学报 2016年6期
关键词:中间件消息分布式

王 斌,王勤为,侯祥宇(中南大学信息科学与工程学院,湖南长沙410083)

中间件及消息推送技术在K12教育中的应用和改进

王 斌,王勤为,侯祥宇
(中南大学信息科学与工程学院,湖南长沙410083)

K12教育环境中课堂教育几乎在同一时刻进行,大多数课堂互动系统难以承受瞬时并发压力,同时受限于有限的硬件资源,该类系统通常局限于局域网环境.针对这个问题,设计了一种分布式的数据采集、消息推送中间件,该中间件能有效降低服务器压力,具备良好的扩展性.同时,对消息推送中TCP长连接机制进行了优化,提出了一种动态心跳频率策略DHFS,该策略能根据移动设备网络状态动态调整心跳频率.相比固定心跳频率策略,它能有效节省移动设备的电量和流量.通过实验验证了中间件和DHFS的有效性.

K12教育;课堂互动;辅助教学;分布式中间件;自适应消息推送机制

K12是国际上对基础教育的统称,K12代表从小学一年级到高中三年级的中小学教育.随着IT技术的发展,教育界对传统教育模式提出了新的需求.一些新的教学模式开始萌芽,包括网上课堂、在线作业、在线考试等形式[1-3],但这些形式有一些缺陷.线上教育要求学生主动完成学习任务,脱离了传统教育模式中教师的监督,年龄较小和自控力差的学生往往难以主动完成学习任务.

针对K12教育环境的独特特点,一类名为“课堂互动”的教育支撑平台开始兴起,它并没有完全改变传统教育模式,而是作为传统教育模式的一种辅助手段,它结合了传统教育和远程教育两者的优点,既能利用传统教育模式监督学生自主完成学习任务,也能减少教师的手工劳动.课堂互动系统一般由无线答题器,信号接收基站和支撑软件平台3部分组成.答题器和信号接收基站用于发送和接收反馈信息,配套软件用于控制教学活动、呈现评测内容以及进行相关数据统计.学生通过无线答题器实时答题,配套软件快速收集信息并通过教室内的投影设备显示结果.

课堂互动系统有一些应用案例,例如西弗吉尼亚大学的考德威尔把一种名为ARS(Audience Response Systems,ARS)教学系统应用在课堂中[4],国内广州市某小学应用了一种名为“齐齐乐”的课堂互动系统,文献[5]介绍了一种基于Web的教学反馈系统WSRS-I,实践表明这种系统能显著提升学生课堂注意力和学习兴趣[6-7].

目前,课堂互动系统由于难以承受K12教育环境的并发压力,各个学校甚至各个班级独自使用一套系统,彼此处于孤立的网络环境中,不能利用开放互联网进行数据共享.其次,虽然有一些课堂互动系统为家长提供了信息渠道,但不具备消息推送功能,家长角色难以真正融入到教学环节中.

为解决K12教学环境中的高并发性能难题,研发了一种分布式中间件用以承受数据获取、采集、存储和消息推送带来的压力.在中间件的消息推送模块中,对TCP长连接机制进行了优化,提出了一种动态心跳频率策略(Dynamic Heartbeat Frequency Strategy,DHFS),相比固定心跳频率策略,该策略能根据不同网络状态动态调节心跳频率,有效节省移动设备的电量和通信流量.

根据分布式中间件设计方案,完成了名为DATP(Distributed Assistant Teaching Platform)的课堂互动平台,文章最后通过实验对分布式中间件性能进行了评价,同时验证了DHFS策略在节省电量和流量上的优势.

1 DATP平台架构

K12教育环境中,多个学校多个班级基本在同一时刻开始使用系统,而且随着加入平台的学校增多,“课堂互动系统”服务器的压力几乎呈指数级增长.传统的服务器集群技术在硬件成本和人力维护成本上消耗十分巨大.

本文设计一种分布式中间件来解决并发压力难题,使得“课堂互动系统”能够面向开放互联网、满足多校联合使用需求.图1是本文基于分布式中间件的辅助教学平台DATP的架构图.

DATP平台包含一整套教育支撑系统,教学软件包括课堂使用的C/S模式软件、校外使用的B/S端,以及供家长教师手机使用的移动应用,提供了课堂考勤、测试、作业批改、学生知识掌握缺陷分析、家长教师聊天等一系列功能.

每所学校都部署了一套教学软件和中间件,不同学校由不同的中间件提供数据服务和消息推送服务(见图1).服务器集群上的中间件调度软件负责控制所有中间件的数据同步问题,并向中间件获取各校的教学软件监控信息.这种基于分布式中间件的平台架构将服务器的一部分压力分摊到了各个学校,降低了服务端的硬件成本.同时,这种分布式架构十分易于扩展,如有新学校加入,只需在新学校中部署一套中间件和教学软件即可.

图1 基于分布式中间件的平台架构 

图2 DEATP中间件功能模块

2 分布式中间件设计

中间件是一种工作在系统软件和应用软件之间的软件层,它能屏蔽底层和上层的细节差异,给开发者提供统一的、功能强大的接口.中间件技术使开发者能专注于业务逻辑,有利于实现架构上的解耦,而分布式中间件技术进一步了提升服务器性能,拥有更好的架构可扩展能力[8].DATP教学平台中的中间件属于数据访问中间件和消息推送中间件的混合体,它负责屏蔽DATP后台的复杂性,对包括Web端、客户端、Android、IOS等移动端上的教学软件提供统一的数据访问储存接口和消息推送功能.图2是中间件的功能模块图,中间主要包含令牌生成验证模块、任务调度模块、同步控制模块、数据模块、消息推送模块以及IP黑名单模块等6个模块,图3是中间件的工作示意图.

中间件使用WebService技术向外提供接口,它承担了当前学校的所有教学软件的数据获取、存储、处理和消息推送工作,它同样面临相当的并发压力.为了提供安全可靠的服务,中间件实现了4种机制.

(1)令牌机制:令牌机制用于验证用户的合法性,令牌在用户登录时由系统生成,加密后发送给客户端,客户端获取,客户端下线或超时则令牌失效.

(2)任务调度机制:中间件把任务分成了实时性任务和非实时性任务.非实时性任务指不需要立即执行的任务,如:阶段知识点掌握程度计算、教学结果存储请求等,非实时性任务会利用下课、凌晨等空闲时间执行.

实时任务指需要马上执行并反馈结果的任务,例如获取试卷信息,做题结果批改等.实时性任务一般涉及到来自硬件设备(答题器)的数据,而硬件设备有可能产生错误数据,因此中间件需要对这类数据进行清洗.中间件为实时性任务赋予不同优先权,进入相应任务队列等待执行.

(3)动态线程池机制:相比传统线程池,中间件会根据服务器压力动态设定线程池任务数量上限,使服务器压力保持在合理范围.

(4)IP黑名单:该名单主要用于防止洪水攻击.

图3 DEATP中间件工作示意图 

图4 消息推送模块

3 中间件的消息推送机制

服务器如何与大量移动设备通信,使用户及时得到最新消息一直是一个广泛的需求.因为移动设备的位置易变性和电量流量限制,催生了专门针对移动设备推送机制的研究.推送机制一般有Pull和Push两种方式,Pull方式指客户端采取轮询的方式去服务器获取新消息,Push方式指服务器产生新消息时主动向移动设备推送新消息.因为移动设备的休眠机制和耗电量的需求,Push方式是移动推送方案的首选.目前业界存在一些消息推送方案,但是各有缺陷和不足.(1)Google公司为Android系统提供了GCM(Google Cloud Messaging)方案,但是因为防火墙原因,国内Android用户基本不能访问Google服务器,因此该方案在国内难以应用;(2)苹果公司提供的APNS(Apple Push Notification Service),该方案利用了苹果独特的硬件进行消息推送,十分省电,但是它不开源并只能应用在IOS系统中.(3)MQTT(Message Queuing Telemetry Transport),即消息队列遥测传输.这个协议的跨平台性非常好,但是核心组件RSMB是闭源的.(4)其他一些第三方推送,如百度推送,极光推送等,都有收费要求,也不能满足信息的保密性[9].本文在分布式中间件中实现了一种适合K12教学环境的消息推送机制,并在TCP长连接机制上做了优化.

3.1中间件消息推送架构

消息推送模块属于中间件的一部分,负责接受来自平台其他软件的消息推送请求,并使用Push方式把消息及时推送到移动设备.它主要由消息编码器、消息解码器、在线用户列表、离线用户缓存、待发消息缓存以及消息计数器6部分组成(见图4).

在上述消息推送模块结构中,长连接用户列表用以缓存在线的移动用户;离线用户缓存和待发消息缓存处理有消息未接收的离线用户;消息计数器记录了待发消息数量;消息编码器和解码器负责按定义的消息格式加解密、加解码;消息推送模块结合K12教育环境,定义了特定的消息格式,并用加密机制、和确认重发机制保证推送消息的可靠性和安全性.

3.2动态心跳频率策略

在Pull形式的消息推送机制中,服务器如何维持与移动设备的长连接是一个关键问题,长连接的目的在于保持移动设备对于服务器的可见性(NAT协议).不管是使用TCP协议还是UDP协议,实现长连接的方法一般都是使用心跳机制,即移动设备每隔一定时间向服务器发送心跳包,服务器收到心跳包后向移动设备回复一条应答消息[10].

出于尽量减小移动设备耗电量以及流量消耗的要求,心跳间隔时间T理论上应越大越好,但是过大的T是不合适的,在一些特定的网络中,防火墙会掐断长时间没有数据来往的TCP连接.因为不同网络掐断TCP连接的时间不同,如果使用固定心跳频率,则只能把时间间隔T设置为较小的值(大多数应用一般设置为十几秒到几分钟),这样显然会消耗较多的电量和流量.

文献[11]提出了一种自适应消息终端推送策略,它主要是根据移动设备的网络状态,动态切换Pull和Push两种方式,并没有在长连接机制上做优化.本文则在Push机制的基础上对TCP长连接机制进行了优化,提出了一种动态心跳频率策略DHFS来动态计算心跳间隔时间T,间隔时间T会根据移动设备的网络状态动态调整.该策略的目的是找出一个合理的心跳时间间隔,在保持TCP长连接的前提下,尽量减少移动设备的电量和流量消耗.为简化描述,有如下定义:

定义1移动设备无网络的状态称为状态Q,移动设备网络发生变化(例如网络恢复,IP地址变化,GPRS变为WIFI等)称为重建条件C.

定义2移动设备向服务器发送心跳包,并于规定时间内收到应答消息的过程称为一次成功心跳,成功心跳次数设为S.

定义3在连续n(n>=3)次成功心跳的基础上,产生一次失败心跳称为峰值警告条件,用W表示.

定义4心跳间隔时间T的初始值设为T0,最大值设为Tmax;T0的初始值设置为1 min,Tmax初始值设为120 min.

根据以上定义,有如下规则:

(1)满足条件Q的情况下,移动设备停止发送心跳包,等待网络恢复;

(2)满足重建条件C的情况下,TCP长连接将断开,移动设备应该立即重建TCP连接,服务器丢弃旧的连接信息;

(3)每产生一次成功心跳则S=S+1;

(4)随着S增大,T适当延长,如公式1,其中a为可变增量因子,初始值为10;

(5)如满足峰值警告条件W,则Tmax=a(S+1)+T0;

(6)每产生一次失败心跳S=S-1;

(7)心跳间隔时间T的计算结果不能超过Tmax,如超过则a=a/2,重新计算T直到不再大于Tmax;

(8)如果可变增长因子a<0.5,意味着心跳间隔时间已经接近当前网络的最大值,则T和S不再增加.

动态心跳频率策略DHFS流程描述如下:

Step1检查移动设备有无网络,如有网络则转步骤3,没有则等待网络恢复.

Step2检查网络是否满足重建条件C,如满足该条件则重建与服务器的TCP连接,并将所有参数(S,a,Tmax)恢复成初始值.

Step3按特定格式加密向服务器发送心跳包.

Step4等待服务器响应,如在规定时间内收到响应,则该心跳成功,否则转步骤8.

Step5检查可变增量因子是否大于0.5,否则转步骤10

Step6成功心跳次数S=S+1.

Step7计算心跳间隔时间T=aS+T0,如果T大于Tmax,则将a缩小一半,即a=a/2,再次计算T,直到T不再大于Tmax.

Step8如果心跳失败,并且满足峰值警告条件W,重新计算Tmax=a(S+1)+T0.

Step9成功心跳次数S=S-1,重新计算T=aS+T0.

Step10心跳服务睡眠T分钟后,回到步骤1.

上述DHFS策略中,心跳间隔时间T随着心跳包的发送T被调整成当前网络环境中能维持TCP长连接的最大值,因此DHFS策略能最大限度地为移动设备节省电量和流量.

4 实验

4.1DATP平台性能测试

为了测试平台在多校并发使用情况下的服务器性能,本次实验使用压力测试工具对DATP平台不断发出数据获取和存储请求.

本次实验在10台机器上分别开启2 000个线程,每个线程每分钟向服务器发送10条数据请求,共持续6 h.10台机器用于模拟10个学校,机器上均部署了一套中间件,2 000个线程用于模拟每个学校2 000学生,每分钟将产生20万条数据请求.测试结果见表1.

表1 DATP并发压力测试结果

上述测试结果说明在大并发情况下,DATP平台服务器压力仍处于合理范围.

4.1DHFS策略效果测评

为了测试DHFS策略的效果,本实验开发了A和B两种保持TCP长连接的APP,A使用固定时间阈值T(T为2 min),B使用动态心跳频率策略DHFS.两个APP除了推送策略之外,其他软件部分相同.两个APP用同一手机在4个不同类型网络中运行.实验共进行10次,每次运行24 h.统计其电量和流量消耗平均值,结果见表2,图5.

表2 DHFS动态心跳频率策略测评结果

图5 DHFS动态心跳频率策略测评 

图6 A、B两APP在WIFI网络中的实验结果

计算平均值可以发现,使用DHFS动态心跳频率策略的耗电量是固定心跳频率策略的58.8%,流量消耗是其68.3%.由此可以证明DHFS策略在电量和流量消耗上有明显提升.图6是A、B两APP在WIFI网络中的实验结果.

5 结 语

设计实现的分布式中间件,承担了数据服务和消息推送工作,将服务器访问压力分摊到各个学校,解决了K12教育平台中的高并发压力.基于该分布式中间件,课堂互动系统被扩展成了面向开发互联网,多校联合使用的教育平台,这是对教育模式的一种新的探索.

此外,在分布式中间件的消息推送机制中,针对TCP长连接机制进行了优化,提出了一种动态心跳频率策略DHFS,它能根据不同网络状态动态调整时间阈值.实验表明相比固定心跳频率策略,DHFS能有效节省移动设备电量和流量.

[1]郑燕林,柳海民.美国K-12网络教育发展的特征及启示[J].中国电化教育,2014(3):42-50.

[2]洪建峰.面向开放教育的移动微课堂系统的设计与研究[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的学生反馈系统的构建及在高校教学中的实践分析[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平台下的分布式方面构件模型及协同框架的研究[J].计算机应用研究,2010(8):2959-2961.

[9]姜妮,张宇,赵志军.基于消息队列遥测传输的推送系统[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-),男,山西大同人,中南大学信息科学与工程学院教授,博士;研究方向:软件工程,并行计算.

猜你喜欢

中间件消息分布式
一张图看5G消息
RFID中间件技术及其应用研究
分布式光伏热钱汹涌
基于Android 平台的OSGi 架构中间件的研究与应用
分布式光伏:爆发还是徘徊
基于DDS的分布式三维协同仿真研究
消息
消息
消息
中间件在高速公路领域的应用