基于消息队列的多角色多媒体信息交互应用

2020-02-02 03:58李俊林湛辉来
中国信息技术教育 2020年2期
关键词:队列命令节点

李俊林 湛辉来

● 引言

近年来,智慧教室的建设如火如荼,在学校的教学活动中,以信息技术为基础的互动教学不断展开,但在多人互动教学的场景中,智慧教室存在着较为突出的问题。

一是自动成组功能弱。在很多应用场景中,往往需要各种智能终端或其他多媒体设备依据自身的角色进行分组,以便更好地进行讨论和信息分享。而现有方案要么不支持成组功能,要么只能事先将设备固定分到某一个组上,无法实现自动基于设备角色成组的功能。

二是组网灵活性差。在很多应用场景中,往往需要一些多媒体设备能够动态地加入或退出某个分享群组或子网。而现有方案基本上都是在网络拓扑结构固定的情况下实现多媒体信息分享的。

针对上述问题,本文提出了一种基于消息队列的多角色多媒体信息交互技术,即通过消息队列,将各种异构智能设备解耦,达到灵活组网的目的,并通过角色定位,实现自动成组的功能。

● 系统构成

基于消息队列的多角色的多媒体信息交互系统,利用无线网络(WiFi/4G/5G等)和IP有线网络,以消息队列、多媒体技术和网络技术为基础,实现了系统内各多媒体设备基于角色的自动成组功能和快速的多媒体信息交互功能,具有分组灵活、智能,以及信息交互实时性强的特点,非常适用于教育领域中的智慧型互动教室场景和其他需要实时的多媒体信息交互功能的场景。

该系统由一个服务器、多个业务节点和多个智能终端构成,业务节点可以部署在服务器的同网段中,也可以分布在多个不同的子网中。一个业务节点和多个智能终端组成一个独立的应用子网。同一应用子网内的成员之间可进行各种音视频、文件等多媒體信息的分享。多个应用子网之间则需通过服务器来实现多媒体信息的交互。各业务节点和智能终端均具有音视频编解码功能,应用子网内成员和应用子网之间均通过消息队列实现交互。

消息队列采用发布(Publisher)/订阅(Subscriber) 模型,消息的发布者或订阅者为客户端。服务器上部署消息服务器(Broker),业务节点既为消息队列的客户端,以实现和服务器的通信,同时又运行消息服务器(Broker),为应用子网内成员提供消息传递服务。而各智能终端上均为消息队列客户端。

基于角色的多媒体信息交互技术,使多媒体信息分享者并不需要关心有哪些接收者,只需要专注于信息分享功能。同时,多媒体信息接收者也不需要关心多媒体信息的发送者,只需要专注于信息接收功能。这样,多媒体信息的分享和接收就能在系统内各设备之间依据角色自由地转换,从而更好地实现多媒体信息交互的功能。

应用本技术的多媒体信息交互系统的拓扑结构如下页图1所示,整个系统由组间互联的广域网和多个智能设备构成的应用子网组成。服务器和所有的业务节点通过IP网络联接。在每一个应用子网中,均有一个业务节点和多个智能终端。智能终端主要用来发起多媒体信息共享或接收系统中别的设备共享的多媒体信息,向业务节点订阅自身感兴趣的角色并接受业务节点的控制指令。业务节点是一个应用子网中的中心控制节点,它维护本应用子网中的所有智能终端的订阅信息,控制各智能终端加入或退出某个分享群组,同时,根据本业务节点的需要,向服务器订阅其感兴趣的角色并接受服务器的控制指令。服务器维护各业务节点的订阅信息,控制各业务节点加入或退出某个分享群组,接收并转发相关的多媒体信息。

● 自动成组过程

1.局部成组

在一个应用子网中,智能终端设备首先通过CONNECT命令请求和业务节点建立消息队列连接,当连接建立成功后,再通过SUBSCRIBE命令订阅自身感兴趣的角色。业务节点维护本网络内所有智能终端的订阅信息,并根据这些订阅信息依据角色将智能终端自动分组。如图2所示,针对角色为“学习小组2”的分享,智能终端1_1、智能终端1_2和智能终端1_4将被分到同一组;而针对角色为“学习小组1”的分享,则智能终端1_3和智能终端1_4将被分到同一组。

2.全局成组

局部成组完成后,业务节点可通过IP网络向服务器发送CONNECT命令请求和服务器建立消息队列连接,当连接建立成功后,再通过SUBSCRIBE命令向服务器订阅本业务子网感兴趣的角色。服务器维护所有业务子网的订阅信息,再结合业务子网自身维护的订阅信息,就在整个系统依据角色将智能终端自动分组。如图3所示,针对角色为“学习小组2”的分享,智能终端1_1、智能终端1_2、智能终端1_4和智能终端3_1将被分到同一组;而针对角色为“学习小组1”的分享,则智能终端1_3、智能终端1_4、智能终端3_1和智能终端4_1将被分到同一组。

● 信息分享

根据业务需求,多媒体信息的分享可以分为局部分享和全局分享。局部分享为在同一小组内各设备之间的分享。全局分享为整个系统中各小组间的设备分享。

1.局部分享

在同一应用子网中,有一个业务节点和多个智能终端,业务节点为该网络里的主设备,运行消息服务器(Broker)程序,而智能终端为该网络里的从设备,运行消息队列客户端程序。当智能终端接入本应用子网后,立即向业务节点发送CONNECT命令用以向业务节点请求建立消息队列连接。当连接建立成功后,智能终端可通过发送SUBSCRIBE命令向业务节点订阅自己对哪些角色分享的多媒体信息感兴趣。当智能终端已经对这些角色分享的多媒体信息不感兴趣时,可通过发送UNSUBSCRIBE命令向业务节点取消先前的订阅。当然,也可以再次通过发送SUBSCRIBE命令向业务节点订阅自己对哪些新的角色分享的多媒体信息感兴趣。

当在该网络中有智能设备需要分享多媒体信息时,通过发送PUBLISH命令向业务节点请求分享多媒体信息到目标设备。该PUBLISH命令中的Topic Name字段为本次分享多媒体信息的角色。同时,该PUBLISH命令中还包括本次分享的多媒体信息的类型、该多媒体信息将发送到的组播地址及端口号和一些其他信息如分享的优先级等。业务节点收到智能设备发送的PUBLISH命令后,将提取该命令中的Topic Name字段,得到本次分享的角色信息,查找当前有哪些设备对本次分享感兴趣,依次向这些设备发送PUBLISH命令,将本次分享的多媒体信息的类型、该多媒体信息将发送到的组播地址及端口号和一些其他信息如分享的优先级等发送到需要接收本次分享的智能设备上。接收设备根据收到的这些信息,决定是否接受本次分享,如需要接受,启动相应的多媒体接收程序,到指定的组播地址及端口上接收分享的多媒体信息。

2.全局分享

当业务节点接入系统后,立即向服务器发送CONNECT命令用以向服务器请求建立消息队列连接。当连接建立成功后,业务节点可通过发送SUBSCRIBE命令向服务器订阅本节点对其他业务节点的哪些角色分享的多媒体信息感兴趣。当业务节点已经对这些角色分享的多媒体信息不感兴趣时,可通过发送UNSUBSCRIBE命令向服务器取消先前的订阅。当然,也可以再次通过发送SUBSCRIBE命令向服务器订阅自己对哪些新的角色分享的多媒体信息感兴趣。

当某个小组内的某个智能终端需要分享多媒体信息时,其在本应用子网中的分享过程如上文局部分享方案所述。如果业务节点确认需要做全局分享,則启动如下过程:

①在应用子网内接收智能终端发送到指定组播地址和端口号的多媒体信息,将收到的多媒体信息单播至服务器。

②发送PUBLISH命令向服务器请求分享多媒体信息到目标设备。该PUBLISH命令包含本次分享设备的角色、多媒体信息的类型、发向服务器的端口号及分享的优先级等信息。

③服务器收到该业务节点发送的PUBLISH命令后,将提取命令中的Topic Name字段,得到本次分享的角色信息,查找当前有哪些业务节点对本次分享感兴趣。同时启动接收程序,接收分享业务节点所转发的多媒体信息,并将收到的信息分别单播至对本次分享感兴趣的业务节点。然后,依次向这些业务节点发送PUBLISH命令,该命令将包含本次分享设备的角色、多媒体信息的类型、发向该业务节点的端口号等信息。

业务节点接收到服务器发送的PUBLISH命令后,将启动接收程序,接收服务器所转发的多媒体信息,并在其应用子网中完成局部分享。

● 结束语

利用消息队列实现多媒体信息交互的控制协议,将多媒体信息分享源的角色作为信息分享的依据,控制协议简单、可靠并且开销小,同时系统内各设备能够根据自身的角色定位,自动成组,系统内各设备可以很容易地加入或退出某个分享群组。当有设备从一个应用子网迁移到另一个应用子网时,也可以很容易地加入到当前应用子网的分享群组中。同时,网络负载更小,实时性较好。并且在同一子网中的多媒体信息流均通过组播方式进行传输,减小了网络负载。

参考文献:

[1]李志飞.智慧教室下的可视化教学设计及应用研究[D].武汉:华中师范大学,2018.

[2]李康康,赵鑫硕,陈琳.我国智慧教室的现状及发展[J].现代教育技术,2016(07).

[3]徐显龙,王雪花,顾小清.智慧教室小组合作学习设计及成效[J].开放教育研究,2017(04).

[4]程敏.信息化环境中智慧教室的构建[J].现代教育技术,2016(02).

猜你喜欢
队列命令节点
管理Windows10的PowerShell命令行使用记录
队列队形体育教案
基于移动汇聚节点和分簇的改进节能路由算法
CAE软件操作小百科(48)
基于点权的混合K-shell关键节点识别方法
命令操作Windows 10回退的秘密
缓存淘汰算法研究
青春的头屑
解析Windows10的内部命令
宝箱4