物联网云平台,集成了物联网平台所需的设备多协议接入、基于 SQL 的轻量级流式物联网数据处理、可扩展的数据持久化等功能,并且向上提供了基本的设备管理 API 和参考 UI 实现,第三方可以基于此平台快速开发出满足定制需求的物联网平台。实现对消息的存储和流式数据的快速处理,并且通过对上层暴露的物联网 SQL 处理引擎来实现对物联网数据的分析与处理。
该平台提供了一些设备管理和应用使能等基础能力,使应用开发者从繁琐的底层连接、数据传输和基本数据处理、存储中解放出来,更加关注于业务本身的开发和创新,缩短应用开发周期,降低开发成本,快速地满足客户的需求。旨在解决物联网平台开发过程中的以下问题:
新业务上线周期长:由于物联网应用开发覆盖了硬件、网络、协议、接入、云计算、数据存储、数据分析和前端应用开发等各个方面,导致研发周期比较长,无法快速响应客户的灵活需求。
网络联接类型复杂:物联网接入的网络连接类型非常多,包括运营商提供的2G/3G/4G、NB-IoT,WIFI,LoRaWAN等。终端、传感器厂家众多,需要保证在终端设备和服务器之间建立稳定的数据通道,减少设备端的开发成本。
安全性:物联网连接的真正实体物理设备,如何保护这些设备的安全访问控制、以及采集上来的数据的安全、可靠性等。
物联网接入的海量设备:物联网应用可能会接入海量的设备,保证在软件的功能性需求满足的情况下,还需保证在海量设备接入的情况下应用的高稳定和高可靠性。
图1 物联网云平台
作为一个物联网平台,需要访问数据、管理设备、存储和分析数据,并向上层提供编程接口,方便开发者开发应用。 由于接入设备多,数据量大,需要具备横向扩展能力,才能满足业务需求。
为了解决前面提到的问题,我们需要一个高可用、分布式、可扩展的消息传递平台。需具备以下条件:
1、是一个高度可用和可扩展的消息传递平台,易于部署和维护;
2、实现了一个分区每秒 180 万条消息的高吞吐量,完全满足了我们对海量数据的需求;
3、是轻量级计算进程,它使用来自一个或多个主题的消息,将用户提供的处理逻辑应用于每条消息,并将计算结果发布到另一个主题。支持三种运行时:线程、进程和 Kubernetes,为编写、运行和部署提供了高度的灵活性。因此,我们只需要关注计算逻辑,而不是处理复杂的配置和管理,这有助于我们轻松构建流媒体平台。
图2 弹性分布式物联网数据采集示意图
本平台是一个面向低功耗IoT网络,为企业提供一站式平台服务的物联网平台。在安全可靠的基础上,为设备提供多种协议接入的通信能力,设备数据与消息流管理功能。
平台提供基础设备管理功能以连接、管理海量设备,实现设备的消息通信与数据采集持久化;集成规则引擎与数据可视化管理,灵活开放多种权限级别的管理、控制 API,通过 API 可快速开发上层应用,实现多端接入、设备远程控制。
IoT Hub:为终端上云建立可靠双向连接通道,进行认证鉴权、协议解析与消息路由;
设备管理:终端注册开通与生命周期管理,提供状态、故障、流量的不间断监控;
数据引擎:对获取的终端消息高速持久化、实时解析、规则事务处理与可视化展示;
应用使能:提供终端SDK、APP SDK,开放丰富的 REST API 接口,集成消息推送接口。
图3 物联网云平台相关生态示意