基于 TCP 协议的 GPS 定位器设备迁移到阿里云 IoT 物联网平台实践——实践类
背景
GPS 定位器是内置了 GPS 模块和移动通信模块的终端,用来将 GPS 模块获得的定位数据通过移动通信模块传至 Internet 上的一台服务器上,从而可以实现在电脑或手机上查询终端位置。
GPS 定位器可用于儿童和老人的行踪掌控,公路巡检,贵重货物跟踪,追踪与勤务派遣,私人侦探工具,个人财物跟踪,宠物跟踪,野生动物追踪,货运业,汽车防盗,自行车防盗,电动车防盗,摩托车防盗,银行运钞车,公务车管理等。
传统定位器方案
定位器设备启动后,基于 TCP/IP 协议和云端的业务服务器建立连接,然后通过校时指令来同步时钟,之后定时发送心跳包来保持 TCP 长连接,GPS 数据变化超过阈值时,自动上报当前坐标的经纬度值,设备电量变化信息也会定时上报到云端,以便优化 GPS 数据采集规则。
云端服务器也可以推送配置信息和控制指令到定位器设备,以改变定位器行为模式。
定位器业务上云
随着云计算厂商布局物联网场景技术产品,基于 MQTT 协议的全托管的 IoT 云服务逐渐成为 70%中小企业做物联网业务的首选方案。从 TCP 协议迁移到 MQTT 协议的方案也逐渐成熟,以实现存量设备低成本的快速迁移上云,减少设备端和业务系统的改造,极大的提升整体安全性,稳定性,大大降低业务时延,借助云上动态无限扩容能力承载海量规模增长。
当我们把设备连接迁移到阿里云 IoT 物联网平台之后,重新梳理业务链路,会发现 IoT 物联网服务承载了繁重的和设备交互的工作,云上的业务服务器压力变得小了很多。
身份认证
定位器设备和 IoT 物联网平台基于 MQTT 协议通信,TCP 报文调整为 MQTT 的 CONNECT/CONNACK 报文,此时业务服务器不需要做身份校验工作,IoT 物联网平台会把设备上线/离线消息通过规则引擎实时推送到业务服务器。
时钟同步
企业基于 TCP 搭建的时钟同步服务也可以下线了,IoT 物联网平台提供了完整的 NTP 服务,解决嵌入式设备资源受限,端上没有精确时间戳的问题。详细文档 https://help.aliyun.com/document_detail/102509.html
心跳
MQTT 协议本身约定了 PINGREQ/PINGRESP 的心跳机制,此时也不需要业务服务器介入,IoT 物联网平台会响应设备心跳行为。
双向消息通信
基于 MQTT 协议通信是需要约定 topic 和 payload,为了减少业务系统改动,我们增加两个 Topic 定义,消息报文结构体保持不变。
设备上报业务数据后,通过规则引擎配置,我们把上行的 Topic:/{pk}/{dn}/user/up 中的 payload 数据实时流转到业务系统,数据格式不变;业务系统推送配置信息或指令时,IoT 物联网平台封装到下行的 Topic:/{pk}/{dn}/user/up 中的 payload 里,设备接收到的业务数据格式不变。
迁移实战
创建产品,定义通信 Topic
创建服务端订阅消费组
配置规则引擎
设备上报数据流转到服务端订阅消费组
选择消费组,并携带 Tag 信息到业务系统
设备启动,上报数据后,在业务服务端收到数据
控制台查看消费组情况
日志服务
【往期回顾】
物联网平台产品介绍详情:https://www.aliyun.com/product/iot/iot_instc_public_cn
阿里云物联网平台客户交流群
评论