首先,物联网工程和其他信息化项目有很大的不同,不能直接套用信息化项目的系统架构,需要了解其本质差异后进行调整。二者的重要区别表现在以下几方面。
· 打通异构协议的硬件设备。
· 数据采集方式。
· 低延迟的控制能力。
· 基于BIM模型的3D界面呈现方式。
· 打通人、设备、空间的权限管理方式。
· 重新组建的开发团队和开发技术栈。
· 高可用架构。
· 快速搭建场景化功能的能力。
· 面向AI的集成能力。
Node-RED面向物联网工程只能提供部分能力,嵌入整体系统还要考虑很多因素。这里用一个通用的物联网技术架构拓扑图来展示Node-RED在项目中的定位,以及商用物联网工程的基础系统理念,如图1-1所示。
图1-1 物联网技术架构拓扑
图1-1展示的是一个通用商用物联网系统架构。按照传统系统架构的分层理念来看,物联网系统也分为4层,分别为设备层、网关层、平台层、业务层。
■ 设备层:设备层是物联网系统的基础,包括各种传感器、执行器、控制器等物理设备。这些设备通过各种通信协议(如MQTT、CoAP、ZigBee等)与网关层进行通信。在设备层中,Node-RED可以用于实现设备的数据采集、控制指令下发等功能。
■ 网关层:网关层是物联网系统的中间层,也常被叫作边缘层,使用的设备叫边缘网关。网关层主要负责将设备层的数据传输到平台层,并将平台层的控制指令下发到设备层。网关层通常配有嵌入式设备或服务器,具有数据转换、协议转换、数据缓存等功能。在网关层中,Node-RED可以用于实现数据的清洗、转换、过滤等功能,以及将数据发送到平台层或从平台层接收控制指令。
■ 平台层:平台层是物联网系统的核心层,主要负责对设备层和网关层的数据进行存储、分析、展示等。平台层通常由云平台、数据库、数据分析模块等组成。在平台层中,Node-RED可以用于实现数据的存储、查询、分析等功能,以及将分析结果展示给用户。
■ 业务层:业务层是物联网系统的外部扩展,主要负责根据用户需求提供各种业务功能。业务层通常由用户界面、业务流程、业务逻辑等组成。在业务层中,Node-RED可以用于实现业务流程的编排、业务逻辑的处理等功能。
Node-RED可以部署在物联网网关或者物联网平台中。为什么不可以将物联网网关和物联网平台合并在一起呢?这种观点经常被提出,特别是来自IT行业的厂商、工程师。在IT世界,大部分服务是可以集中放置在一层的,通过强大的服务器能力来组合完成。但是,物联网系统有一个重要特点,就是存在物理位置的考虑维度,当你真实完成一个商用物联网项目的时候就会发现,各种需要用铜缆线连接的设备在接入的时候会受限于工程布线和现场环境。比如对接一个传统电表进行数据采集和控制,此时强电箱中是无法塞入一台1U的服务器的,温湿度环境不支持服务器运行,并且现场环境条件也不支持先布网线到机房再进行接入,因此需要在强电箱附近部署IoT网关。从拓扑图中可以看出,大部分IoT网关产品是非常小的嵌入式设备,就像树莓派这样的硬件一样,可以在大部分普通环境中工作,近端采集设备的数据和发送控制指令,此时IoT网关中的Node-RED就发挥了重要作用。它负责连接设备、处理数据、转化格式,甚至完成一些较为复杂的逻辑处理,最后将输出数据转化为IP网络可以传输的内容,再通过MQTT、UDP、TCP等协议发送给物联网平台。因此,一个优秀的物联网引擎一定要能够在低功耗工业级设备上运行。Node-RED最低可以在CPU频率1.2GHz、内存512MB的嵌入式低功耗芯片和低内存环境中运行,为IoT网关产品提供了最优秀的引擎。因此,从通用角度看,4层架构是一个普遍设计原则。当然,我们也可根据实际项目情况进行调整。比如,如果在一个小的物理空间(如会议室)实现物联网场景,那么由于设备端都集中在一个可以方便连线和对接的空间,因此可以将IoT网关和IoT平台合二为一部署在一台硬件设备上。像极企科技公司研发的BXRoom产品就是在此场景使用的物联网产品。总之,物联网系统涉及硬件、软件、工程、设计等,4层架构可以变化后适用于各种场景,但是缺一不可,无非是在选型过程中拆分或者合并一些设备,但是均可以使用Node-RED作为核心引擎。下面介绍IoT设备层、IoT网关层、IoT平台层。