Labs 导读
随着社会发展,智能化给人们生活带来了很大的便捷性,智能家居的应用越来越广泛,人们往往只需要一部手机就可以远程管理家里的各种智能家居设备,那么这些智能设备与平台间是如何进行数据交互的呢?本文以家庭网关为例,介绍设备与平台间相关交互控制技术。
1传统交互控制技术
在介绍设备平台交互控制技术之前,我们先看下人们较为熟悉的传统对光猫、路由器设备进行管理的交互方式。配置过路由器的都知道,我们可以通过连接路由器WiFi或插网线的方式,打开路由器的局域网管理页面(例如:http://192.168.1.1),直接对路由器进行各种参数设置及管理。该方式主要是在路由器上起了一个内网服务,用户可以通过连上路由器内网,访问该服务。其缺点是只能在局域网内使用,不便于远程操作(虽然可以开启远程web管理,但增加了路由器暴露到公网的风险),同样数据基本都在本地处理完成,在功能方面有很多局限性。因此,通常会考虑设备访问平台,由平台对设备进行管理的方式。下面以家庭网关为例,主要介绍基于网关的设备平台交互控制技术。
2基于网关的设备平台交互控制技术
要想实现平台对设备管理,需要在设备上安装访问平台的服务(其表现形式为网关设备操作系统上的一个进程),由设备单向访问平台的方式进行数据上传、获取指令数据。设备访问平台常用协议主要有UDP、TCP两种方式。其中,UDP是无连接传输协议,提供简单非可靠信息传送服务,适合应用于数据上报场景。而要想实现对设备的管理需要平台向设备返回相应的控制指令,往往采用TCP协议来进行控制指令交互。基于TCP协议的交互方式又分为长连接、短连接两种方式。
2.1 基于TCP长连接的交互
TCP长连接模式下,设备与平台几乎一直保持连接(连接断开时会重连),平台可随时向设备推送指令消息。下面以MQTT为例介绍其数据交互原理。MQTT是一个轻量级的发布/订阅消息传输协议,基于TCP长连接进行通信。MQTT最初由Andy Stanford-Clark博士和 Arlen Nipper博士于1999年创建,它最初的用途是将石油管道上的传感器与卫星相连接,实现数千英里长的石油和天然气管道的无人值守监控,现已成为国内外各大物联网平台最主流的传输协议之一[1,2]。
基于网关的设备平台交互示意图如图1。在通讯过程中,MQTT协议中有三种身份:发布者(Publisher)、代理服务器(Broker)和订阅者(Subscriber)。本案例中,业务平台为消息发布者,MQTT服务是代理服务器,网关是订阅者。其交互流程如下:平台部署MQTT服务,网关基于MQTT协议与平台保持通信同时向平台订阅消息;用户通过手机上的APP、小程序、WEB服务等载体向业务平台发起对网关的远程管理;业务平台向MQTT服务发起发布消息请求;MQTT服务推送消息到网关,网关收到消息后执行相关指令。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。
图1
2.2 基于TCP短连接的交互
TCP短连接模式下,设备通过心跳轮询机制与平台保持通信,每次请求都会重新建立连接。在该模式下,设备平台交互示意图如图2。交互流程如下:网关通过轮询的方式(每隔一段时间发起请求)发起TCP心跳与设备平台保持通信;当用户通过客户端向业务平台发起远程管理请求时,业务平台向设备平台发起指令通知;设备平台记录本次指令请求,待网关下一次发起心跳时,返回指令标识;网关根据收到的指令标识发起相应的业务请求或执行指令。
图2
上述方式中,MQTT具有简单、稳定、开放、轻量级的特点,但所有设备都需要与平台维持连接。TCP短连接心跳轮询机制下,设备与平台交互有一个轮询周期,周期太短,平台压力很大;周期过长,可以降低平台压力,但业务处理不及时,体验很差。当设备量达到亿级以上时,无论是基于TCP长连接的MQTT通信还是基于TCP短连接的心跳轮询机制,都存在平台中心化的问题(所有设备都需要直接与平台保持通信),导致平台存在巨大的通信压力。下面介绍一种改进方案“分层模式”。其示意图如图3。将对接网关的平台改造成拆分成一级平台、二级平台模式,业务平台对接一级平台,一级平台对接各二级平台,每个二级平台与一部分网关维持通信。这样可以实现分散平台压力,但建立过多平台也导致增加了平台维护成本。
图3
3边缘计算
随着5G的发展,催生了边缘计算的发展,同样上述交互方式可以通过边缘计算方式实现,其交互示意图如图4。主要改造点如下:赋能边缘节点,原部署在网关上的业务管理服务上移到边缘节点,由边缘节点保持与平台的通信,同时通过边缘节点对其连接的网关进行管理。通过边缘计算改造方式,可以大幅缓解云平台通信压力,同时能保障消息交互及时性,但需要对边缘节点进行升级改造。
图4