APP下载

基于MQTT协议的天基网络监视服务设计与实现

2018-06-13刘晓锋崔宗星米乔马隆郑婷

现代计算机 2018年14期
关键词:数据格式监视系统天基

刘晓锋,崔宗星,米乔,马隆,郑婷

(中国电子科技集团公司第20研究所,西安 710068)

0 引言

随着天基信息技术的迅猛发展,天基网络复杂度呈快速增长趋势,迫切需要提升天基网络监视能力,能够对超大规模网络节点和信息要素的全状态综合监视,为用户快速做出干预决策提供信息支持。天基网络监视是集信息获取、存储与处理等功能为一体,在其内部有大容量网络信息实时交互,因此需设计高效、轻量化的传输协议。MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种轻量级基于代理的发布/订阅的消息传输协议,其设计思想是开放、简单、易于实现、适合在计算和处理能力受限的环境下工作[1]。本文在研究分析MQTT协议的基础上,结合天基网络监视系统的部署需求,完成天基网络监视服务系统的设计与工程研制,总结并提出完整的设计方案,具有一定的学习参考意义。

1 天基网络监视系统结构

天基网络监视系统结构示意图如图1所示。系统采用C/S技术架构,实现应用与数据服务的分类,提高系统的维护性和安全性,同时具备兼容多种通信协议的能力。全网数据服务中心服务器是搜集、汇总、分析存储整个天基网络数据的中枢,可以保证数据的安全可靠运行。天基网络监视服务设备实现数据的订阅/发布、协议转换、数据处理及服务质量控制等功能,能够为天基网络监视席位提供应用支撑服务。天基网络监视席位或应用实现网络状态、链路状态、拓扑关系等信息可视化展示。天基网络监视服务与数据中心服务器采用发布/订阅的MQTT(遥测远程)协议。利用UDP协议实现天基网络监视席位与服务之间通信。天基网络服务与本地监视应用构成服务监视系统,具备本地化监视的能力,两者信息交互依靠线程任务通信的方式。本文主要介绍天基网络监视服务系统设计与实现。

图1 天基网络监视系统结构框图

2 MQTT传输协议机制

MQTT是基于TCP上的应用层协议,采用发布/订阅模式对消息进行传输,本节将从MQTT消息格式、消息订阅及具体实现三方面展开设计。

2.1 MQTT消息格式

MQTT消息体主要由消息报头和消息内容两部分组成,固定报头是每个命令消息都必须包含的部分,其中长度为两个字节,固定格式如表1所述。其中Mes⁃sage Type为报文类型,共计14种。QoS Level服务质量等级分为三个等级,等级越高,需要的系统开销越多,通信效率受影响越大[2]。Remaining Length剩余长度指可变头部和有效信息的总长度,最大能够扩展到4字节,可表示长度为256MB。

表1 MQTT消息固定头格式

2.2 MQTT消息订阅机制

在本文所设计的天基网络监视系统中,天基网络监视服务从全网数据中心服务器订阅消息的主要过程包括以下三个步骤:

(1)天基网络监视服务与数据中心建立TCP连接,并向数据中心发送CONNECT消息;

(2)天基网络监视服务接收到数据中心发送的CONNACK消息后,发送订阅有关Topic主题;

(3)天基网络监视服务接收到数据中心向其发送SUBACK消息,表明订阅成功。

结合MQTT消息订阅主要步骤中,总结出MQTT消息订阅处理流程,见图2所示。

2.3 实现步骤

以天基网络监视服务MQTT消息订阅机制设计实现为例程,介绍基于Vxworks的具体开发过程。首先,将IBM提供的MQTT-3.1.1开源代码封装成lib库,从而可以提供MQTT发布/订阅的API接口函数。其次,创建接收MQTT订阅消息的应用线程,开发应用功能程序,具体实现步骤如下:

(1)订阅主题初始化

MQTT连接参数MQTTPacket_connectData中心跳包间隔设置为500,重新连接清除标志置为1;订阅主题为“SATNET”;可根据不同的Topic主题,设置差异化的服务质量[3]。

最多一次:消息可能丢失或重复;

至少一次:确保消息可达,但消息可能会重复;

仅一次:消息到达一次,消息重复或丢失导致不正确的结果。

图2 MQTT消息订阅流程

(2)建立连接

首先初始化网络配置调用transport_open()函数,然后调用接口函数MQTTSerialize_Connect()及发送函数transport_sendPackBuff()。

(3)接收连接应答消息并发送订阅主题

执行MQTTPacket_read()函数,查看返回值是否等于2(CONACK),若返回值为2表示建立连接成功,调用函数transport_sendPackBuff()发送订阅主题“SAT⁃NET”。

(4)接收订阅主题应答消息

当函数 MQTTPacket_read()返回值等于 9(SUB⁃ACK)时,表明订阅成功;否则表示订阅不成功。

(5)订阅主题消息

运行MQTT消息接收线程,若消息读取函数MQTT⁃Packet_read()返回值为 3(PUBLISH)时,表明为消息类型为主题消息,接着调用MQTT订阅消息获取函数MQTTDeserialize_publish(),完成消息内容的读取。

3 数据解析

天基网络监视服务与数据中心交换的数据格式采用 JSON(JavaScript Object Notation)格式。JSON作为一种轻量级的数据传输格式,可以在多种语言之间进行数据交换[4]。采用这种数据格式有利于提高封装传输效率,减少通信带宽,有利于多个监控席位接入访问。

3.1 Json数据格式

在Json数据格式中,一个对象用JSON数据格式表示如下:

{属性名1:属性值,属性名2:属性值2...}

作者简介:冯荣惠,男,汉族,福建省南靖县山城镇文技校,一级教师,南靖县优秀教师,专科学历,研究方向:小学语文教育。

说明:属性名必须有引号(单引号,或者双引号)引起来。属性值如果是字符串,则必须使用引号引起来。属性值的类型可以是string,number,Boolean等类型。

例如在天基网络监视某个网络状态数据用Json格式表示如下:

{"PlatformID":1000,"SubnetID",1,"NetStatues",1,"CommMode",2,"CurTime","2018-1-1 10:10:40"}。上述数据内容表示在2018年1月1日10点10分40秒时,编识号为1000的成员为在网状态(用1表示),其所在的子网号为1,物理通信体制为TDMA的方式。

3.2 实现过程

采用JSON数据解析的第三库完成服务器推送的数据内容解析,即将JSON格式数据内容转换为结构体。数据类型主要包括整型和字符型。主要实现步骤如下:

(1)JSON数据格式解析

运行函数 cJSON_Parse(strData),strData为字符指针,指向MQTT订阅的主题消息存储区,返回值为cJson类型的指针pJsonData。

(2)数据格式转换为结构体

依据网络状态的信息内容定义数据结构体NetSat⁃usInfo,具体内容见表2。

表2 网络状态数据结构体格式

调用 GetObjectItem(strData,"PlatformID")函数,返回cJson数据类型的指针pJsonPlatformID,接着依据结构体中的数据类型调用转换函数valueint可得到Net⁃SatusInfo中编识号数据项值,其他数据内容转换方式如上所述。

4 统一接口设计

考虑本地和远端服务一体化设计,需对监视服务与应用之间进行统一数据格式接口设计。具体接口协议见表3。

表3 网络监视服务与应用之间接口

在表3中,消息内容是指网络状态信息编码后的字节,采用大端编码方式。

5 本地监视应用设计

在Qt软件开发环境下对本地天基网络监视应用功能开发,并利用WindRiver交叉编译环境生成可执行程序,加载在信息处理板上。系统运行时调用网络监视应用进程,把它作为整个监视服务的一个任务。界面设计原则是基于图标方式显示网络监视信息。

本地天基网络监视应用与服务运行在同一块信息处理板卡上,两者之间采用基于消息队列的任务通信的方式。通过调用msgQReceive函数实现任务间数据的接收;执行msgQSend函数能够完成任务间消息的发送。

6 结语

本文所提出的系统架构及设计方法已应用在某型系统中,解决了分布式网络监视系统通信机制的问题,采用发布/订阅MQTT协议、基于消息队列的任务通信等技术手段,按照服务接口统一的设计原则,完成天基网络监视服务的设计,能够为天基网络监视席位提供应用服务,满足多维度信息监视的需求。此外,天基网络监视服务的系统架构具有稳定性和可扩展性等特点,有利于加装推广应用。

[1]IBM.MQTelemetryTransport[2013-06-05].http://msqq.org.

[2]关庆余,李鸿彬,于波.MQTT协议在Android平台上的研究与应用[J].计算机系统应用,2014,23(4):197-200.

[3]任亨.基于 MQTT 协议的消息推送服务器[J].计算机系统应用,2014,23(3):77-82.

[4]高静,段会川.JSON 数据传输效率研究[J].计算机工程与设计,2011,32(7):2267-2270.

猜你喜欢

数据格式监视系统天基
国外天基大气甲烷监测任务最新发展
天基物联网关键技术及应用前景
基于改进QFD方法的天基海洋侦察监视体系能力需求重要度排序算法研究
美国天基空间监视系统概述与分析
基于 PLC—MCGS 技术的电梯监控系统
MIT—BIH心率失常数据库的识读
基于RFID的户外广告监管系统的设计与实现
本特利3500系统仪在化工生产中的应用
一种融合多业务的信息化系统框架研究
创新的摄像监视系统取代车外和车内后视镜