APP下载

基于多种底层承载协议的物联网应用层协议

2021-02-25柏文彦

物联网技术 2021年2期
关键词:应用层接收端底层

韩 丽,杨 宏,卓 兰,柏文彦

(1.中国电子技术标准化研究院,北京 100007;2.普奥云信息科技(北京)有限公司,北京 100012)

0 引 言

物联网的概念雏形可以追溯至1999年的麻省理工学院,相关学者依托射频识别技术提出万物皆可通过网络互联的概念。2005年国际电信联盟ITU在《ITU互联网报告2005:物联网》[1]对物联网概念进行扩展,提出任何时刻、任何地点、任何物体之间的互联,无所不在的网络和无所不在的计算的发展愿景。随着外部周期性驱动力持续作用,物联网进入了基础性、规模化行业需求推动的新阶段[2]。

通信技术是物联网关键核心技术之一,尤其是协议,物联网协议可分为网络协议和通信协议两类,网络协议包括 Ethernet、WiFi、RFID、ZigBee、Bluetooth、NB-IoT、LoRa、3G/4G等,物联网网络应用部署时需要根据实际需求选择所需的网络协议[3]。通信协议主要运行在TCP/IP之上,负责设备间的数据交换和通信,如CoAP[4]、MQTT[5]、XMPP[6-7]、AMQP[8]等,这些协议有各自的设计出发点,也有特定的应用场景和适用范围[9-10]。当前物联网实际应用中并不存在统一的应用层协议,无论基于上述哪种协议,具体物联网应用均需再额外封装开发交互消息。

本文基于物联网现有协议应用和发展现状,提出一种可支持多种底层承载协议的物联网应用层接入协议AAP(Access Application Protocol, AAP),可统一物联网终端设备或物联网网关接入物联网平台的协议,简化物联网相关应用的开发,有助于推动物联网规模化应用的部署。

1 相关工作

CoAP[4]协议旨在适用于资源受限的物联网设备,基于UDP的轻量级协议,设计原则上参考了HTTP协议。但是由于很多物联网设备隐藏在局域网内部,CoAP设备作为服务器无法被外部设备寻址,当前仅适用于局域网内部通信。

MQTT[5]作为一种基于客户端-服务器的消息发布/订阅传输协议,设计目的是为了存储资源和解决网络资源受限环境下的通信问题,比较适合物联网通信。工业应用场景中物联网连接可以采用MQTT和OPC UA结合的方法[11]。有研究[12]表明,MQTT更适用于云平台和智能家居场景中。

XMPP[6-7]作为一种基于标准通用标记语言子集XML的协议,通信业务流程比较适合物联网系统,但协议的安全性以及计算资源消耗的问题尚未解决。

AMQP[8]作为提供统一消息服务的应用层标准高级消息队列协议,常应用于金融系统之间的交易消息传递。

数据分发服务DDS[13]作为OMG定义的分布式实时通信中间件规范,采用发布/订阅方式,其缺点是不适合资源受限的无线网络环境。WebSocket协议作为实现服务器和浏览器之间全双工通信的协议标准,可用于实时数据推送。WebSocket的目的是避免服务器频繁双向通信时打开多个HTTP连接,从而提高工作效率和资源利用率。WebSocket协议本身消息类型数量有限,所以在应用于物联网场景时,需要额外进行消息封装。

2 AAP概述

2.1 适用场景

由于物联网的应用场景多样化,又面临着多种通信技术选择,所以物联网终端设备的网络接入呈现出复杂的态势。根据终端设备接入是否通过物联网网关,可将其划分为不经过物联网网关的直接接入和通过物联网网关的间接接入两类,适用场景的网络拓扑示意图如图1所示。AAP运行的载体可以是直接接入物联网平台的物联网终端、物联网网关和物联网平台。在具体部署时,物联网终端设备可根据其具体信息处理能力和所支持的通信手段灵活选择接入物联网平台的具体实现方式。

图1 AAP的适用场景

2.2 AAP协议栈

AAP属于应用层消息类协议,其协议栈如图2所示,可支持适配以下三类底层协议:

(1)基于消息代理进行发布和订阅的消息协议,如MQTT等;

(2)基于请求/响应的点对点应用层协议,如HTTP等;

(3)点对点的消息包传送协议,如WebSocket等。

图2 AAP协议栈

3 AAP设计与实现

3.1 AAP协议流程

AAP协议流程分为4个阶段。

(1)连接建立阶段:物联网网关或物联网终端与物联网平台建立连接;

(2)平台注册阶段:物联网网关或物联网终端向物联网平台发起注册请求,得到回复后,物联网平台显示物联网网关或物联网终端在线;

(3)消息交互阶段:物联网网关或物联网终端与物联网平台之间进行消息交互,比如物联网平台下发命令、物联网网关或物联网终端上报数据以及两者之间发送连接并保持;

(4)连接断开阶段:物联网网关或物联网终端向物联网平台发送注销请求,物联网平台不再保持物联网网关或物联网终端的状态。

3.2 AAP消息

AAP消息格式由协议行、消息头和消息体三部分构成。协议行包括格式标志和协议版本号等,协议行的第1个字节是消息格式标志,表示消息头和消息体的编码格式,比如由“J”开头代表JSON格式,由“B”开头代表二进制格式;消息头包括消息类型、时间戳、应答标志、压缩相关信息、认证和加密信息等;消息体的具体内容由消息类型确定。

AAP用于物联网终端或物联网网关与物联网平台之间的连接,涉及的消息类型包括物联网网关注册请求消息/物联网网关注册应答消息、物联网终端注册请求消息/物联网终端注册应答消息、连接保持请求消息/连接保持应答消息和注销,消息接收端根据消息头中的消息类型进行消息体的识别、解码、认证和解密。

3.3 AAP消息交互模型

AAP消息交互模型分为通知模型、请求应答模型、选择性应答模型和延迟应答模型。

(1)通知模型中,发送端将消息发送至接收者,接收者无需应答。

(2)请求应答模型中,发送端将消息发送至接收者,接收者将应答消息反馈至发送端。

(3)选择性应答模型中,发送端请求消息的应答标志为0,在发送指定的请求条数或间隔指定时长后发送请求消息,其应答标志为1,要求接收端发回应答消息,以确认接收端已收到该请求之前的全部消息。

(4)延迟应答模型中,发送端将请求消息发送至接收端,其应答标志为1,接收端反馈应答消息确认收到请求消息。接收端处理完请求消息后,向发送端发送请求消息,其应答标志为1,将处理结果报告发送端,发送端发回应答消息,表示收到处理结果。若接收端发送完处理结果后不能接收到应答消息,可以选择通过请求消息重传处理结果。

3.4 AAP适配

AAP采用消息主题实现与底层协议的适配,消息主题包括消息主题标识、接入账号、消息发送或接收设备标识。不同的底层协议传输模式对消息主题采用不同的处理方式,底层协议采用消息代理传输模式时,通过消息主题进行发送和订阅;底层协议采用点对点传输模式时,消息主题封装至底层协议的消息包中。

AAP具体实现时可适配底层协议。与MQTT适配时,AAP消息主题直接映射到MQTT的主题,AAP消息体封装至MQTT消息体中,AAP的接入帐号和接入密码对应MQTT中消息代理的客户端帐号和密码。表1给出底层协议为MQTT时,MQTT的主题设计示例。

表1 MQTT消息主题设计示例

与HTTP适配时,HTTP的头部是在AAP消息主题增加相应的头部字段,从而实现应用平台与物联网网关或智能感知控制设备之间的多种交互模式。与WebSocket协议适配时,AAP的消息主题和消息体直接封装到WebSocket消息中。

3.5 AAP实现示例

以底层协议为MQTT,物联网终端在物联网平台上注册为例,给出AAP协议消息的具体实现。消息交互模型为请求应答模型,采用JSON格式。

AAP中注册请求消息实现格式示例如图3所示,AAP中注册应答消息实现格式示例如图4所示。

图3 AAP中注册请求消息实现格式示例

图4 AAP中注册应答消息实现格式示例

4 结 语

综上所述,针对物联网平台、物联网网关和物联网终端所设计的物联网应用层协议AAP,可以承载多种底层协议,既可以灵活适配发布订阅式消息协议,也可以运行于点对点的请求响应式HTTP协议,及面向消息的点对点连接WebSocket协议之上。AAP解决了物联网应用层协议的不统一问题,简化了具体物联网应用部署的开发流程,有力促进了物联网应用的规模化发展。

猜你喜欢

应用层接收端底层
航天企业提升采购能力的底层逻辑
基于扰动观察法的光通信接收端优化策略
顶管接收端脱壳及混凝土浇筑关键技术
一种设置在密闭结构中的无线电能传输系统
基于多接收线圈的无线电能传输系统优化研究
基于分级保护的OA系统应用层访问控制研究
新一代双向互动电力线通信技术的应用层协议研究
物联网技术在信息机房制冷系统中的应用
回到现实底层与悲悯情怀
中国底层电影研究探略