物联网网关的架构

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

这篇文章出现在 dzone 的物联网指南 - 2015 年版中。


物联网解决方案的典型架构通常比大多数企业系统的架构复杂得多。增加物联网系统复杂性的一个主要因素是驻留在数据中心的后端服务,这是大多数企业系统的核心,实际上只是更大的物联网图景的一部分。使用物联网解决方案,我们必须处理现场工作的无数设备。由于这些设备的性质与 Web、桌面甚至移动客户端截然不同,因此我们需要一个中间架构元素来充当现场设备世界和企业数据中心之间的代理。我们需要的是一个物联网网关。

为什么需要物联网网关

您现在可能想知道:在您的物联网架构中引入网关的关键原因到底是什么?让我通过讨论网关架构如何运作的一些最重要方面来阐明这个问题。

首先,传感器在网络连接方面的能力通常非常有限。您的传感器可能会使用蓝牙低功耗 (ble),就像市场上的大多数信标一样;您的某些传感器也可能使用 zigbee 协议提供连接。在局域网 (lan)、家庭区域网络 (han) 或个人区域网络 (pan) 中还可以找到许多其他协议。所有这些协议都有一个共同点——它们不能直接连接到更大的网络,如广域网 (wan) 或互联网。您需要一个网关,它可以通过使用 wifi、gsm 或其他类型的连接为您的传感器提供与外部网络的单点联系。

请记住,网关不仅仅是将数据从传感器转发到后端服务的转储代理。将传感器收集的所有信息发送到数据中心在性能和网络利用率方面将是非常低效的。在将信息发送到数据中心之前,需要物联网网关在现场对信息进行预处理。这种预处理包括消息过滤和聚合。

该网关还应充当监测作战领域选定区域的单一接入点。您不想使用监控软件连接到每个传感器;只监控网关更容易,而网关又负责从传感器收集所有必要的指标。

架构概览

下面的网关架构图是最常见的架构设计,网关本身没有配备传感器。安装在设备上的网关软件负责从传感器收集数据,预处理数据,并将结果发送到数据中心。

请记住,这种传感器架构可能会有变化,其中一些传感器位于网关设备上,如下图所示。

网关上可能存在的嵌入式传感器可能包括诸如 gps 单元或使用 gpio 接口连接到网关的温度传感器之类的选项。

网关软件

软件应用程序是网关的核心。网关软件负责从传感器收集消息并适当存储它们,直到它们可以被预处理和发送
到数据中心。网关软件决定给定处理阶段的数据是临时的、持久的还是保存在内存中。

网关软件在设计时应考虑到故障和灾难恢复。由于网关设备经常在现场运行,您应该为远非理想的工作条件做好准备。例如,网关软件应该为停电或其他可能导致网关处理中断的操作做好准备。网关软件应该在设备恢复供电后立即自动引导和启动,并且应该从中断点继续工作。

网关软件还应该足够智能以正确处理系统日志记录。它必须在存储在设备上的日志条目数量和发送到数据中心的日志条目数量之间找到适当的平衡点。

软件安装和更新

网关软件如何进入设备?解决这个问题有三种主要方法。

第一种方法是在网关磁盘(或存储卡)上预安装软件。这种方法称为工厂引导程序。正如您可能猜到的那样,如果您的解决方案包含大量网关,则此技术无法很好地扩展。

第二种方法是服务器启动的引导程序。在这种模式下,中央软件管理服务器与网关设备通信,并向其部署适当版本的软件。这种方法的扩展性比工厂引导好得多,但仍然需要在服务器端启动部署操作。

第三种方法是客户端启动的引导程序。此模式假定网关负责连接到中央存储库服务器并下载正确版本的软件。在这种情况下,网关需要安装轻量级引导软件,以便它可以与软件管理服务器进行通信。这种方法是最具可扩展性的方法,因为它不需要对部署操作进行任何集中协调。每个网关设备一上电就下载软件。

物联网网关的一个极其重要的特性是能够通过无线方式下载更新。请记住,在将网关软件安装到设备上并将其交付现场后,您在网关软件维护方面的能力非常有限。从安全角度来看,无线下载软件更新的能力尤为重要,因为它会影响关键安全修复程序的交付时间。

传感器消费者

如果软件应用程序是网关的心脏,那么传感器就是网关的眼睛和耳朵。传感器是可以测量现实世界某些方面的小型硬件设备。传感器收集的常见数据类型有温度、gps 坐标、湿度、气压等。

网关从传感器收集的消息通常很小。例如,传感器测量的温度的当前值只是一个十进制数。 gps 坐标是两位十进制数,分别代表经度和纬度。记住这一点很重要:网关对大量小消息进行操作。

虽然传感器本身可以频繁生成消息,但重要的是要预测我们真正需要从传感器收集多少消息。例如,我们可以每毫秒读取一次传感器的温度,但是在测量温度变化时我们真的需要这种精度吗?在大多数情况下,每秒读取几次传感器值就足够了,因为我们对指标在较长时间内的变化更感兴趣。网关软件通常定期轮询传感器数据。好的网关软件允许您轻松配置每个传感器的轮询间隔。您绝对不想将不必要的传感器数据放入网关,因为过时的消息会消耗您受限网关设备的宝贵处理能力。

网关数据传输

通常网关使用 gps、wifi 或以太网连接到互联网。一些网关还可以在 gps 和 wifi 模式下工作(例如,安装在移动车辆中的网关)。通常,首选非 GPS 连接来发送数据,因为它不需要订阅付费移动计划。一些网关将持续连接到廉价的本地网络,但那些使用 GPS 连接的网关在发送到数据中心的数据方面应该非常保守。网关应对其收集的数据应用业务逻辑,以了解哪些消息应通过昂贵的 gps 网络发送,哪些数据可以缓存在设备上以供延迟离线处理。

概括

网关是每个物联网解决方案的关键组成部分。在您决定购买哪种硬件作为您的网关平台之前,请花一些时间分析您的消息流和有效载荷的数据格式,并在从数据中心的网关。此外,虽然为您的物联网解决方案选择合适的硬件非常重要,但您必须记住,选择正确的网关软件和管理基础设施(如用于管理设备的 lwm2m 服务器)是一个将对物联网解决方案产生重大影响的因素。系统的总维护成本。


有关物联网安全、协议和标准的更多见解,请立即 获取物联网指南的副本 - 2015 年版