大约一年前,我开始发表有关物联网解决方案架构的系列文章。 (链接到第一篇文章
habr.com/en/post/420173 )。 最后,本系列的第二篇文章提交您了。

物联网项目看起来很相似,并且确实共享相同的组件。 但与此同时,物联网项目具有根本性差异,从市场需求和要解决的任务类别开始。
显然,“从头开始”开发每种解决方案效率极低。 根据编程模式的原理,可以重用许多组件。
在本文中,我们将分析各种类型的物联网解决方案及其各自的实现。 因此,将提出有关实施物联网架构的步骤的建议,我们将尝试强调物联网解决方案的总体趋势。
我们还将尝试制定主要问题领域,从这些问题的考虑出发,值得为特定的IoT解决方案以及可能的架构问题领域构建架构。
物联网应用
如今,物联网解决方案的应用已划分为三个主要地理区域:
欧洲
欧洲的物联网市场正在考虑与自然资源保护相关的项目。 一个典型的例子是日/夜照明,供暖自动化,水管理,火警。
远东地区
在这个市场中,物联网解决方案的首要任务是安全性。 典型的应用是检测道路,交通和家庭中异常情况的摄像机。 第二个主要领域是安全和防灾解决方案,例如地震活动,飓风,台风,海啸。
北美市场
旨在优化业务流程(例如优化交通运输,货物的高效交付)以及智能家居和城市元素的物联网项目主要体现在该市场上。
当然,物联网解决方案可以从一个市场渗透到另一个市场,而不是专有的特权。 在每个地区,我们都能找到所有类别的物联网解决方案。 对我们来说,对当今全球市场上存在的这些IoT产品进行分类非常重要。 以下是此类IoT解决方案的列表:
- 智慧城市。 主要任务是管理和管制汽车交通,夜间/白天的街道照明,对行人的危险警告以及确定城市中的非标准和危险情况。
- 智能家居。 主要任务是安全,智能门铃,电视和厨房控制,自动灌溉和照明系统,火灾,煤气,漏水和房屋温度警报。
- 天气和自然灾害。 气象信息,地震活动,消防。 天气预报。
- 优化家庭,城市,国家的资源使用。 照明,电力,供暖,发电厂中燃料使用的优化和预测。
- 优化运输,交付,存储和分类。 DHL,FedEx等公司使用该解决方案来构建最佳的运输路线。 主要机场的存储和分类终端。
- 工厂监控,输送线管理。 控制机器人。 货物,原材料的分类和成品检验。
- 精密的机械装置,高科技设备,例如现代汽车,飞机等。自动控制系统,防盗保护,系统单元的控制。 识别驾驶员的面部和身体,以防止睡眠,注意力不集中。 预测系统组件的维护和更换。
物联网架构
物联网解决方案的一般拓扑
下图显示了物联网解决方案的分层架构。 IoT拓扑不同于传统的层模型(例如OSI)。 这不是线性或更复杂的流程图。 某些组件是可选的,在特定类别的解决方案中可能不可用。 可以提供两种类型的逻辑-M2M(从汽车到汽车)和M2P(从汽车到人),以及更具体的情况,例如C2C(从汽车到汽车,通常在一个LTE移动通信小区中)。
物联网解决方案有两个物理位置-第一个是终端(外围)设备,第二个在服务器或云中的后端数据中心中。 同时,这不是经典的客户端-服务器应用程序体系结构,我们将在后面看到。

下面,我们将分别分析每个级别,并将其功能与物联网解决方案的实际类别进行比较。
物理层-物理层
此级别代表两种类型的操作-收集信息(传感器)和执行机械工作(执行机构)。
传感器可分为以下几类:
- 传感器:
- 灯:光电二极管/晶体管/电阻器,PIR检测器
- 声音:麦克风,超声波传感器
- 开关,特别是限位开关,记录了机械运动的极限点。 测量旋转角度或旋转速度。
- 电磁传感器测量物理特性的变化,例如电容,电感,电阻。
- 复杂或复合传感器。 这些包括专用传感器(例如气体,光谱等),以及正在获得越来越多应用的单独类型的信息收集设备-摄像机。
在物联网解决方案中,物理元素具有某些共同要求:
- 由于物联网解决方案的数量大,价格越低越好。
- 电池供电,这又需要低功耗。 当今的市场需求是外围设备的运行需要1到10年无需维护。
- 通常位于人迹罕至的偏远地区,以最小的安装和维护成本。
- 在使用摄像机的情况下,基于人工智能进行决策的主要图像处理
物联网解决方案的执行器可打开入口门的锁,启动引擎,selsyn,打开/关闭灯,暖气,水,煤气等。执行器的实现没有重大变化。 因此,本文将不涉及物联网解决方案的这一部分。
下表是各种IoT解决方案类别中的物理层的表:
我们可以针对物理层的需求总结两个问题:
- 低功耗。 与顶层的高度集成是必需的。
- 使用摄像机。 它还需要与更高级别的高度集成以及在外围设备中实现的内置AI / ML功能。
边缘层-外围计算级别
此级别通常连接到单个传感器或执行器。 它提供了将模拟信息转换为数字或反之亦然的最小功能。 对于连接传感器,价格和功耗有相同的要求。 许多生产此类设备的制造商都没有针对数据模型,配置和操作的统一标准,这会产生单独的集成问题。
为了降低功耗,外围设备通常具有四种工作模式:
- 睡眠模式
- 测量和收集传感器信息
- 通讯方式,信息的传输和接收
- 安装和连接方式
以下是外围设备的框图。

外围设备通常结合三个级别:物理,外围计算和通信。 外围计算层的主要功能是本地ETL(提取,转换和加载)-接收,转换和保存来自传感器的信息。 该级别不仅负责从传感器收集信息,而且还负责将其转换为标准形式,过滤干扰,初步分析和本地存储。
下表显示了不同类别的IoT解决方案中的外围计算级别:
因此,对外围计算水平的主要要求是:
低功耗。 这可以通过低功耗硬件和睡眠/唤醒算法来实现。 通常存在人工智能的本地元素。
局域网层-外围通信层
数据传输是外围设备中最耗能的部分,因为 大多数外围设备未连接到电源和有线通信。 此外,外围设备可以位于距网关相当远的地方(几公里之内)。 另一方面,传输的信息量通常很小。 在外围通信级别使用以下协议:
如今,Ad Hoc和Mesh在此级别已被广泛使用,以增加距离和可靠性。
出于配置目的,也可以使用NFC协议。 在首次安装和/或维护期间,具有移动应用程序的服务工程师可以通过外围通信层连接到外围设备。 有时,打印在外围设备上的Q码也用于身份验证。
下表显示了各种类别的IoT解决方案中的外围通信级别:
网关层-网关级别
在物联网解决方案中具有网关层的原因有很多:
- 如果后端接收到原始信息,它将增加其功能,并且成本将非常高。
- 后端不能保证大量外设的实时响应。
- 由于安全性限制,某些信息无法发送到后端,也无法被人连续监视。 这些信息包括来自街道监控摄像头的数据,医疗信息等。
网关应提供以下基本功能:
- 从外围设备实施第二级ETL。
- 解决紧急情况并给出本地反应,即使没有与BackEnd通信也是如此。 可以将其与没有大脑参与的人的心跳或肺呼吸的信号进行比较。
- 与BackÅnd通信。 将已处理的信息从外围设备发送到服务器,并接收外围设备的配置数据。
- 保存有关外围设备状态以及它们收集的数据的信息。
在某些情况下,必须在网关级别提供AI / ML(人工智能/机器学习)功能。 网关设备主要由市电供电或内置大型电池,但某些解决方案还要求低功耗。 在这种情况下,会出现另一个问题-与外围设备通信的同步协议。 其中一个(网关或外围设备)应比另一个设备准备通信的发送消息的频率更高。 该选择将取决于每个设备的总功耗以及无需维护的所需时间。
如今,我们以摄像机的形式提供信息源,从而增加了应用程序的数量。 在这些特定的解决方案中,可以将Gateway和Edge集成在一起。 在此类应用程序中,AI / ML功能变得非常流行。 借助用于嵌入式系统的新型机器智能加速器,该解决方案已成为现实。
另外,应该说关于智能家居解决方案的网关。 此类解决方案中的网关通常与STB设备-电视适配器或家庭安全控制单元结合在一起。 一个开放的RDK-V平台已经存在,可以进行第一次集成。 在不久的将来,我们应该期望将网关+ STB +安全这三个组件进一步集成到一个设备中。 它还可能具有NAS(本地文件存储)和AI / ML服务,用于机器视频/音频识别。 音频识别设备(例如Alexa)基于Cloud基础架构,但是主要识别可能会带到外围设备级别。
下表显示了各种IoT解决方案类别中的网关级别:
广域网层-外部链路层
该层将整个解决方案的外围和后端部分分开。 网关主要使用移动无线(例如4G / 5G)连接到后端,但有时会使用有线Internet访问。 外部通信的逻辑层具有用于IoT解决方案的标准化协议,称为LvM2M。 LvM2M协议旨在访问每个外围设备,但是由于许多外围设备供应商不支持LvM2M接口,因此网关设备可以解决此问题并创建用于与外围设备通信的包装器。
外部通信层内部还包含通信服务和ISO模型。 它包括基于DNS的平衡和位置服务,COAP传输协议,DTLS加密以及许多本文不讨论的其他组件。
我们必须在这里提一个重要的评论。 LvM2M协议使用DTLS加密协议。 DTLS协议是具有安全密钥和握手会话的协议。 它点对点地工作。 要解密DTLS数据包,我们必须使用与连接会话期间相同的后端实例。 这给负载均衡器带来了问题,负载均衡器是我们电路中安全层的一部分。 反过来,负载平衡器对于在高系统负载时自动缩放是必需的。 为避免此限制,DNS被用作负载平衡器。 每个N DNS查询都会收到安全级别实例的新IP地址。
下表是各种物联网解决方案中的外部通信级别的表:
Security Layer —
该层提供AAA(身份验证,授权和计费)和加密/解密功能以及其他与Internet相关的服务。所有云都有自己的安全性实现,但从功能上讲,它们都是基于角色和权限的原则构建的。如上一段所述,该层还用作DTLS加密连接的终止符。后端到后端的连接还具有安全层组件。下表显示了各种类别的IoT解决方案的安全级别:Middleware Layer —
该层提供内部云功能,包括负载平衡,消息队列和流传输。该层的组件应重复并自动缩放。该级别主要基于云提供商的微服务或PaaS实施。此要求源于数据量的跃迁和下降范式。自动缩放可降低后端实施的成本。该服务的实际实现可能有所不同,但是一般原则仍然是一种-提供具有缓冲和负载平衡功能的异步消息传输。这样,各种后端组件就可以独立完成工作,并根据负载水平扩展。
该图显示了服务器内通信模式的示意性框图。负载均衡器旨在在不同服务之间分配负载。队列-队列为异步串行服务提供中间缓冲。订阅者-接收者订阅与其逻辑相对应的队列,以便在处理以前的消息后顺序接收消息。下表显示了各种IoT解决方案中的服务器内通信级别:ETL层-数据收集,处理和存储级别
内部ETL级别(提取,转换和加载)是第三次ETL操作。第一个在外围设备中,第二个在网关中。后端ETL从所有外围设备和网关收集数据,并负责以下操作:
图中显示了实现此层的一般方案。数据收集(提取)操作涉及从相关队列中读取信息。转换操作可以通过Lambda等专用的云服务执行,也可以通过容器内部以及虚拟机内部的计算手段来执行。上述每种方法都有其正面和负面的性质。例如,Lambda服务对于几乎完全自动化来说很方便,但是创建时间很长,因此如果您需要对已发生的事件做出快速反应,则该服务不适用。 Lambda也不太适合连续处理,因为它是根据使用时间收费的。最常用的服务是容器化计算。它们可方便地扩展,并且可以轻松移植到各种后端。此操作的主要目的是使数据以方便的形式存储,分类和搜索。为此,通常将来自不同消息甚至队列的数据进行组合。存储操作(负载)用于存储,分类和随后的信息检索。根据信息类型和使用选项,可以使用各种工具。如果数据没有严格的方案(表列),则将其存储在NoSQL数据库中。但是,如果可以通过固定模式将数据系统化,则使用SQL数据库类型。后者又有两种类型-OLTP(在线事务处理)和OLAP(在线分析处理)。顾名思义,第一种类型更适合ETL流程本身-将新值写入数据库,而第二种类型更便于搜索和分析数据。因此,通常在下载到OLTP数据库之后,在后台将数据复制到OLAP。在某些情况下,数据不方便或无法存储在数据库中,例如,作为记录,此数据记录在存储桶中,记录的元数据存储在数据库中。为了降低存储成本,过时的数据将被存档或删除。此级别的最后一个组成部分是内部通知,告知新存储的数据是否可用,以呈现给客户和分析服务。下表是各种物联网解决方案类别中的收集,处理和存储级别的表:大数据和分析层-分析层
取决于特定的物联网应用程序。大数据和分析级别将从整个外围设备集中提取情境信息。这部分的标准化程度较低,因为由于解决问题的方式不同,它在一个应用程序与另一个应用程序之间非常不同。AI / ML算法也广泛用于这一层。单独的类别是对未来事件的预测,例如仓库中的必要部件,未来资源的消耗,天气等。下表显示了各种物联网解决方案中的分析级别:Notification layer —
在这个级别上可能有几个组件,但是它们都有订阅通知算法。客户端应用程序订阅必要的事件,并在发生这种情况时收到信息信号-通知。这些主要是电子邮件应用程序和移动客户端,较少的电话(用于紧急警报)。移动应用程序被迫进入睡眠模式以降低功耗,但是iOS和Android具有通知机制,该机制指示新数据的到来。下表显示了各种类别的IoT解决方案中的通知级别:Presentation Layer —
物联网应用程序可以具有两个流:M2M(从机器到机器)和M2P(从机器到人)。与M2M流关联的表示层,后端在此处理信息并将其提供给客户或支持工程师。今天,此级别没有标准化的UI / UX表示形式,但我希望它会在不久的将来出现。表示层还负责维护,配置和更改系统的状态,包括外围设备和网关。它还包括用于控制外围设备的执行器的命令。下表显示了各种物联网解决方案的表示级别:配置层-配置级别
此级别适用于M2M和M2P这两个流,并用作外围设备三种状态的存储:外围设备甚至网关只能与后端建立很短的连接时间。我们前面已经讨论过了。来自客户端或系统的任何状态更改都存储在此级别,并在通信时间内发送到网关或外围设备。为了使该逻辑起作用,通常执行以下通信过程:
如果信息传输方案中存在网关,则来自外围设备的大多数信息将以从几个外围设备收集的数据包的形式发送到服务器部分。下表显示了各种类别的IoT解决方案的配置级别:结果以及如何构建物联网解决方案的架构。
总结以上。在物联网解决方案中观察到以下发展趋势:- 传感器分为2组:
- 简单,便宜,能耗最低。低速和高范围信息传输。这些实际上是一次性设备,无法维修。
- 基于便携式摄像机。该设备与外围计算机集成在一起。它具有用于模式识别和基本决策的内置机制。
- ETL — , backend. , , — .
- , . . — LvM2M.
- Backend Cloud. AWS.
- , WEB . . .
从哪里开始构建物联网架构解决方案?没有单一的方法可以回答这个问题。在这里,我将发表我的个人看法:- 定义我们可以从网关获取的数据模型,即 转移到后端。
- 检查哪些外围设备可以收集数据以及如何处理该数据以将其带入网关传输的模型。
- 检查外围设备的要求-距离,信息量,功耗等。
- 选择适当的外围计算设备,其相对于传感器的位置,其工作协议。
- 解决云部分的架构,包括:
- 安全性
- 负载分担
- 云异步数据传输
- 元素存储,表单和数据生命周期
- 建立系统信息传输图
- 建立分析模型,AI / ML组件
- 开发通知的类型和内容
- 设置服务的冗余和自动可伸缩性
- 估算成本并优化
- 移动客户端的UI / UX设计
- 建立外围数据反馈
我希望本文至少对物联网项目的首次介绍有用。将来,我将尝试给出物联网解决方案的特定实现。