前面提到如果直接将IoT网关对接业务系统,由于网关边缘计算能力有限不能达到业务系统要求和未来扩展的需要,特别是对于有大量前端设备需要跨区域管理等场景,就需要IoT平台层,如图1-6所示。
图1-6 IoT平台层
IoT平台层根据项目需要可以采用本地化部署模式,也可以采用私有云部署模式,或者直接使用成熟的云端平台。如果项目有较高的实时控制要求和传感器信息获取要求,或者有复杂的场景联动以及算法联动要求(如工业物联网、智能楼宇等),需选择本地化部署模式;如果存在多个项目扩展或者物理空间扩展的需求,则可以采用私有云部署模式,让不同项目的数据和控制都汇聚到私有云端进行统一处理。如果面对消费者端的物联网项目(如智能家居、智能健康等),可以考虑采用公有云的各大厂商提供的IoT平台,大大降低开发和部署难度,只关注数据的采集和基本控制。总之,无论采用哪种方式或者哪种产品,IoT平台层都提供基础的传感器数据采集和控制的能力。当然,在高并发和高安全的前提下,优秀的IoT平台还应该具备以下功能。
· MQTT服务端:MQTT是物联网首选协议,无论对数据采集还是控制指令下发都具备无可比拟的优势,包括巨量数据通信、极低开销、通配符动态订阅等。但是,MQTT服务端需要单独搭建,放入IoT平台层最为合适。同时,前端IoT网关无论对接的是什么协议的设备,最终汇聚到IoT平台都可以通过MQTT协议来通信。
· 时序数据库:持续采集的数据需要通过时序数据库进行存储,再通过后续特定查询语句的快速时间切片进行获取,以方便进行分析,满足物联网系统时间维度的数据提供需求。
· 位置服务:物联网系统在空间维度需要通过位置服务进行管理。成千上万个传感器控制器分别在什么空间位置需要和真实世界一一对应。通常,简单的实现需要了解区域、楼宇、楼层、房间等信息,然后维护每个具体设备的位置坐标,还需要提供实施工程的工具,以便安装设备的时候进行定位。有的IoT网关提供了更为高级的位置服务功能,甚至加入了数字孪生的建模功能,实现物理世界和数字世界的连接。
· API服务:为业务系统提供丰富的API,通常采用RESTful接口方式,可以对接由各种技术开发的业务系统。API提供获取指定时间片段的传感器数据、获取指定物理空间的传感器数据、获取同一种类型的传感器数据、发送控制指令、获取设备状态信息、为不同设备进行分组、为不同设备赋权限等服务。
· 数据展板:数据展板可以直接由IoT平台提供,因为大屏数据展示可以不和业务强相关。用户可自定义展示内容和样式。
当然,不同IoT平台的产品有不同的特性和功能。但是,Node-RED都可以作为基础引擎内置其中,发挥强大的扩展能力和流程化的低代码能力,这也为自主开发IoT平台提供了很好的基础。