IoT -- 解读物联网四层架构

本文以物联网四层架构为基础,从物联网产品设计的角度来解读每层架构的功能以及主要内容,旨在为物联网产品设计以及实现思路感兴趣的物联网产品或研发人员有些帮助。

通过互联网,人和人之间可以传递和交流信息。物联网,IoT,Internet of Things,顾名思义就是物和物之间也可以传递和交流信息,人人互联和物物互联两者最大的区别体现在人与物的差别上。

人有五官和皮肤接收和采集数据,经过大脑加工处理,然后形成想法,最后通过网络传递出去,达到跟别人交流的目的。与人相比,物缺少需要交流的信息,即物缺少采集数据的抓手,以及将信息进行整合形成具有交流价值的大脑。

那信息采集技术和嵌入式程序在物联网领域就显得尤为重要,信息采集技术代替了人的五官和皮肤,进行数据收集。

嵌入式程序主要代替了大脑的整个决策最后输出信息,物联网很早就在市场上出现但是一直没有产生可观的影响力,所以大众对它的关注度不是很高。

但是近十年来,物联网发展迅速,这不仅得益于国家政策的支持-在2010年将其列为国家发展战略,还得益于物联网配套技术,比如数据采集技术、微处理器、通讯模组、通讯网络、大数据、云计算等迅猛发展 。

物联网再次进入大众视野,并成功取得了大众的瞩目和追逐,且有望掀起下一波浪潮。物联网技术体系可以分成四层:感知层、网络层、平台层和应用层。每一层都担任了不同的职责,这种类似于专人专责的分工,可以提高工作质量和工作效率。

 图1:物联网四层架构

一、感知层

感知层的主要功能就是采集物理世界的数据,其是人类世界跟物理世界进行交流的关键桥梁。

感知层的数据来源主要有两种:

一种就是主动采集生成信息,比如传感器、多媒体信息采集、GPS等,这种方式都需要主动去记录或跟目标物体进行交互才能拿到数据,存在一个采集数据的过程,且信息实时性高。

比如在智能喝水领域会采用一种流量传感器,只要用户喝水,流量传感器就会立即采集到本次的喝水量是多少,这就存在一个长期交互采集数据的过程。

另一种是接受外部指令被动保存信息,比如射频识别(RFID)、IC卡识别技术、条形码、二维码技术等,这种方式一般都是通过事先将信息保存起来,等待被直接读取。

比如现在有的小区用的门禁卡就是用了IC卡识别技术,先将用户信息录入中央处理系统,然后用户每次进门的时候直接刷卡就行。

二、网络层

网络层主要功能就是传输信息,将感知层获得的数据传送至指定目的地。

在物联网领域,嵌入式程序相当于人的大脑,在信息采集完成之后,大脑就会给通讯模块发布指令说把这个信息传给某某某,网络层会涉及到你选用什么样的通讯网络以及采用什么样的通讯机制来传送你的信息。

物联网中的“网”字其实包含了2个部分:接入网络、互联网。

以前的互联网只是打通了人与人之间的信息交互,但是没有打通人与物或物与物之间的交互,因为物本身不具有联网能力。

后来发展出将物连接入网的技术,我们称其为设备接入网,通过这一网络可以将物与互联网打通,实现人与物和物与物之间的信息交互,大大增加了信息互通的边界,更有利于通过大数据、云计算、AI智能等先进技术的应用来增加物理和人类世界的丰富度。

那目前主要有两种方式的接入网,一种是有线网络接入,一种是无线网络接入。

图2:物联网网络结构

有线主要包括以太网、串行通信(RS-232、RS485等)和USB等。

无线又分为近距离无线、短距离无线和长距离无线通讯。近距离无线通讯主要包括NFC、RFID 、IC等,短距离无线通讯主要包括Wifi、ZigBee、蓝牙等,长距离无线通讯主要包括GSM(2G、3G、4G、5G等)、eMTS、Lora、NB-IoT等。

面对众多的入网方式,我们需要考虑应用场景以及设备本身的特征来选择合适的接入方式,各种接入网的特征详见下表。

选好了适合使用的网络,相当于数据传输的物理承载道路打通了,现在就需要确定以什么样的机制来传递信息,这就涉及到通讯协议。

从本质上来说,通讯协议就是一套数据传输规范,就跟我们接触的英语、德语、中文等类似的语言一样,是通过一定规则组成的,易于物与物之间进行交流沟通。

物联网设备端资源受限,比如处理能力差、存储能力小、网络传输量小、网络不稳定等,很明显物联网和互联网在设备端提供的资源环境存在很大的差别。

所以为了更好地为物联网服务,对互联网的通讯协议进行了优化,发展出了目前被广泛使用的MQTT(Message Queuing Telemetry Transport)和CoAP(Constrained Application Protocal )两种物联网通讯协议。

MQTT协议是基于TCP协议的,可以确定接收方一定会受到设备端发出的信息。MQTT协议可以保持长连接,这可以使得设备端和云端进行实时通讯,所以其更适合实时控制交互的场景。

由于是基于TCP协议的,其通讯协议比较复杂,设备端要运行复杂机制的话,对性能就需要有一定的要求,比如存储、计算、网络质量等。

CoAP协议是基于UDP协议的,有两种数据传输机制:一种是接收方一定会收到设备端发送的数据,另一种是不管接收方有没有收到,设备只发送1次数据就结束了。

设备端在完成数据发送之后就进入休眠状态,所以低功耗是CoAP协议最大的特点,其也更适合数据采集的场合,比如抄送电表、水表的数据。

由于是基于UDP协议的,其通讯协议复杂性想对简单一些,自然对设备端的性能要求会低一些。

三、平台层

物联网平台可为设备提供安全可靠的连接通信能力,向下连接海量设备,支撑数据上报至云端,向上提供云端API,服务端通过调用云端API将指令下发至设备端,实现远程控制。

物联网平台主要包含设备接入、设备管理、安全管理、消息通信、监控运维以及数据应用等。

图3:物联网管理平台基本架构

设备接入主要是指设备端如何跟物联网平台进行连接通信,主要表现在:

设备端开发:提供MQTT、CoAP、HTTP、HTTPS等多种协议的设备端SDK开发等,帮助不同设备轻松接入

设备网络接入管理:提供基于蜂窝(2G、3G、4G、5G)、NB-IoT、LoRaWAN、WI-FI等不同网络接入方案。

1. 设备管理

主要包含设备创建、维护、数据转换、数据同步、设备分布等内容,具体表现在:

1)物模型管理

物联网中的物是物理世界的实体,如果我们想开发一套数字化系统,那这个实体肯定不能缺席,这个时候就会涉及到一个问题:如何把线下的实体变成线上的呢?

而这正是物模型的价值。物模型通俗的解释就是用数字世界的方式将物理世界的物体表征出来,用数字世界的规则来描述这个物体是什么、它有什么作用,这也就是我们经常听到的产品的功能。

物联网平台都会提供多种物模型的建立方式,我们可以根据不同的需求来选择合适的模型。

2)设备生命周期管理

主要涉及创建设备、设备上下线、禁用/启用、删除设备等。物模型建立好之后,相当于定义好了产品的母版,这时候我们可以在该产品下面创建设备,该设备也会具有该产品的功能。

3)数据解析

对于低配置且资源受限或者对网络流量有要求的设备,不适合构造JSON格式与物联网平台通信,这时候可以将原数据透传到物联网平台,物联网平台再根据原数据转化的脚本规则,将其转换为JSON格式。

4)设备影子

物联网中联网是一个很重要的环节,如果设备不联网的话,则设备端和服务端处于通讯中断的状态,双方无法交互信息。为了解决这种常态的困境,给每个设备在物联网平台都建立1个影子,其有2个主要作用:

1.可以将在设备离线期间保存在设备影子中的服务端的指令在设备上线时立即下发给设备执行;

2.在设备在线时,如果设备端数据发生变化则及时同步给设备影子,这可以解决当设备离线时服务端请求不到设备数据的情况。

换句话说在某种程度上设备影子可以使得设备端和服务端保持相对及时的交互通信,最起码服务端从设备端可以拿到相对来说最新的数据以及服务端可以相对及时的告诉设备端需要执行哪些指令。

5)设备拓扑

物联网平台支持设备直连,也支持设备挂载在网关上,作为网关的子设备,由网关直连。

网关直连的场景主要有子设备不能直连或者需要拓扑关系管理的场景,比如WI-FI 网关、ZigBee 网关、以及蓝牙网关等。设备拓扑管理可以帮助管理子设备、子设备与网关的拓扑关系、对子设备进行监控运维等,同时服务端可以直接面向子设备收发消息。

2. 安全管理

主要是从设备安全认证和通信安全两个方面来保证物联网数据传输的安全性。

1)设备安全认证

设备接入物联网平台之前,需要通过身份认证,来保证设备的安全性。

目前,物联网平台支持使用设备密钥、ID²和X.509证书等方式进行身份认证,在此仅以设备密钥为例来简要说明设备身份认证的实现方式(生成、获取、使用)。

在物联网平台创建设备的时候会给设备颁发密钥,密钥的种类有多样,比如一机一密、一型一密等,密钥生成之后,有2种方式可以将密钥放到设备端:

一种是事先将密钥烧录在设备端程序里面,另一种是当设备首次联网时向物联网平台请求设备密钥,这时如果该设备有注册过则会把相应的密钥传给设备。在设备都有密钥之后就相当于拿到了通行证,可以和物联网平台进行正常的通信。

2)通信安全

主要是指数据传输层面的的安全管理,支持MQTT、HTTPS、CoAP数据传输通道,保证数据的机密和完整性,支持设备权限管理机制,保障设备与云端安全通信;支持设备级别的通信资源(Topic等)隔离,防止设备越权等问题。

3. 消息通信

主要包括设备端发送数据到物联网平台,物联网平台将数据流转到服务端/其他云产品,服务端远程控制设备这3种消息传送方式。

设备管理主要定义了设备是什么,那消息通信主要解决的就是信息传输机制:怎样将物联网平台配置的设备信息与设备端、服务端、其他云产品进行传递。这机制里面涉及的一个很重要的概念就是Topic,通过对Topic的定义和使用来进行信息传输。

1)基于Topic的上下行通信可以将设备端数据发送至物联网平台或实现服务端远程控制设备

设备端跟物联网平台通信是用的MQTT协议,该协议是基于主题的发布和订阅机制,其所有的信息传递都是通过主题这一中介来完成。

设备可以发布某一主题也可以订阅某一主题,设备发布的话其实就是设备发送数据的消息模式,设备订阅的话其实就是设备接收数据的消息模式,对于物联网设备来说上报和接收是两个基本且重要的消息交互模式,那怎样来定义主题呢?

主题的定义有两种方式:一种是自定义数据模式,一种是利用物模型建立的标准化的数据模式。

主题的定义是基于产品功能的,当产品功能确定好之后,那怎样将这些功能跟设备通信进行关联是一个很重要的问题。

这个时候就需要对产品进行主题的设置。选定产品功能之后,可以根据需要来设置不同的主题比如上报、接收、更新、删除等。在产品层面定义好主题类之后,该产品下的所有设备都会具备该主题的特性,设备就可以利用主题来进行上下行通信。

2)基于服务端订阅、云产品流转的将物联网平台数据传输至服务端/其他云产品的传输模式

服务端可以直接订阅产品下多种类型的消息:设备上报消息、设备状态变化通知、设备生命周期变更、设备拓扑关系变更等。

配置服务端订阅之后,物联网平台就会将产品下所有设备的已订阅的消息转发至服务器。使用物联网平台的数据流转功能,可将Topic中的数据消息转发至其他云产品中进行存储或处理,这就是所谓的云产品流转。

4. 监控运维

主要涉及到设备监控和运维两个部分。

监控诊断:物联网平台提供在线设备数量、上下行消息数量、规则引擎流转消息次数、设备网络状态等指标数据的实时监控功能;

OTA升级:设备投放出去后如果发生应用程序升级,则可以通过OTA升级与管理服务,实现远程升级程序的工作;

在线调试:在线调试主要用于程序开发阶段,一是设备端开发完成后,可以使用物联网平台的在线调试功能,从控制台下发至指令到设备端进行功能测试;二是物联网提供虚拟设备功能,供云端应用开发测试使用;

日志服务:可以将云端或设备端的运行日志保存下来供故障查询等使用,并且可以将日志数据导出存放起来进行长期存储。开通日志转储后,支持在物联网控制台查询分析日志,并提供日志报表、报表订阅、告警通知等功能。

5. 数据应用

主要涉及数据的存储、分析和应用。

数据备份:可为海量数据提供分发和备份服务;

数据分析:为开发者提供了设备智能分析,全链路覆盖了对设备数据生成、管理(存储)、清洗、分析及可视化等环节;

数据应用:可以跟第三方或者其他云产品进行结合解决不同的问题比如将温湿度计上报数据到钉钉群机器人或者通过大数据平台搭建设备监控大屏等。

四、应用层

应用层是物联网的最终目的,其主要是将设备端收集来的数据进行处理,从而给不同的行业提供智能服务。

目前物联网涉及的行业众多,比如电力、物流、环保、农业、工业、城市管理、家居生活等,但本质上采用的物联网服务类型主要有4类:

监控型,比如物流监控、污染监控等;

控制型,比如智能交通、智能家居等;

扫描型,比如手机钱包、高速公路不停车收费等;

查询型,比如远程抄表、智能检索等。

图4:物联网应用层结构

应用层架构主要有3个组成部分:业务处理,数据库和客户端

物联网业务处理较为复杂,因为其会涉及到海量数据的整合,这对不同行业终端应用者来说具有很大的挑战,所以目前市场上有专门提供的中间件比如云计算、数据挖掘、人工智能、信息融合等可以供行业者使用,这也在一定程度上激发了物联网应用行业的繁荣。

数据库主要用来存储设备、用户、业务以及其他相关的数据。应用层会接触到终端用户,所以会涉及到客户端的开发,在此就不赘述。

物联网涉及到的关键技术主要有云计算、数据挖掘、人工智能,在此作简要介绍:

云计算具有强大的存储能力、处理能力、带宽和极高的性价比,它可以为不同的物联网应用提供统一的服务。不同的技术服务商会开发一套完整的云计算资源,其就像水电一样,客户可以按需付费,你需要多少,就购买多少;

数据挖掘是从大量的、不完全的、有噪声的、模糊的及随机的实际应用数据中,挖掘出隐含的、未知的、对决策有潜在价值的数据的过程。数据挖掘主要基于人工智能、机器学习、模式识别、统计学等,高度自动化地对数据进行统计、分析、综合、归纳和推理,揭示事物间的相互关系,预测未来的发展趋势,为决策者提供决策依据;

人工智能是探索研究使各种机器模拟人的某些思维过程和智能行为(如学习、推理、思考等)。该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。在物联网中,人工智能技术主要负责分析物品所承载的信息内容,从而实现计算机自动处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/20147.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络安全:Hydra 端口爆破工具.(九头蛇)

网络安全:Hydra 端口爆破工具.(九头蛇) Hydra 也叫九头蛇,是一款开源的暴力PJ工具,集成在kali当中。可以对多种服务的账号和密码进行爆破,包括 Web 登录、数据库、SSH、FTP 等服务. 目录: 网络…

调用api实现ChatGPT接口余额查询

在ChatGPT官网可以查询接口使用额度,但是官方并没有提供相应的API给开发者调用。我们可以通过破解的方式找到它的API。方法如下: 1. 使用Chrome浏览器打开https://platform.openai.com/account/usage 2. 打开开发者工具,然后刷新网页&#xf…

我让gpt写了一段正则表达式代码,可是运行报错,可以帮忙看看哪里出了问题?...

点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 忽闻海上有仙山,山在虚无缥缈间。 大家好,我是皮皮。 一、前言 前几天在Python最强王者群【HZL】问了一个Python正则表达式的问…

ES6知识点

目录 1、let、cons、var的区别 2、const对象的属性可以修改吗 3、如果new一个箭头函数会怎么样 4、箭头函数和普通函数的区别: 5、扩展运算符的作用及使用场景 1、let、cons、var的区别 1️⃣:块级作用域:块作用域由{}包括,le…

ERM LABS 与 The Sandbox 战略合作,将真人密室逃脱游戏引进元宇宙

将现实生活中的体验带入一个全新的维度!ERM LABS 专注于将现实生活中的娱乐及冒险体验以游戏独特架构设计扩展到元宇宙裡。与 The Sandbox 合作,该项目旨在为全球合作的真人密室逃脱场所提供无限开放形的线上虚拟世界,让玩家尽情享受考验智商…

09——svg中path的使用

一、path 是 svg 中最强大的图形 用于定义一个 路径所有命令均允许小写字母。大写 表示绝对定位,小写 表示 相对定位 (相对于上一个结束的坐标)d 属性中包含所有路径的点,可根据命令缩写 自由组合 命令 名称 …

最全的分布式事务详情,它来啰~

我们首先得理解什么是分布式事务呢?分布式事务是指在分布式系统中,涉及多个计算机或服务器的操作序列,这些操作需要满足一致性和可靠性的要求。每个操作要么全部成功执行,要么全部回滚,以保持数据的一致性和完整性。 …

假期出行小程序+chatgpt旅游攻略

马上五一了,如果想出去旅游,需要提取规划好路线图,我们可以借助chatgpt的路线规划功能帮我们生成一份攻略,按照攻略我们就可以愉快的出去玩耍了。 本文结合chatgpt,利用低代码工具帮我们制作一份旅行导览小程序,可以按照行程方便的出行。 1 制定攻略 我们在聊天窗口输…

从小白到黑客高手:一份全面详细的学习路线指南

前言 黑客从入门到精通需要经过深入的学习和实践,这是一个需要长时间投入和大量精力的过程。在这份学习路线中,我将为你介绍黑客学习的基本知识和技能,帮助你逐步掌握黑客技能。 黑客 一、入门阶段 1.了解计算机基础知识 学习计算机基础知…

thinkPhP6.0安装教程图解--PHP框架安装

ThinkPhP 6.0 安装 1.环境检查 首先,thinkphp6.0,要求php的环境是7.2.5及以上的,所以先检查自己的php环境是否符合要求。 在cmd命令窗口中输入php -v 或者没有配置环境变量的话,可以在php编辑器中输出php_info()或则PHP_VERSIO…

【鲁棒优化、无功优化】两阶段鲁棒优化的主动配电网动态无功优化【IEEE33节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

A股市场上股票行情数据接口有那几种?

L2行情数据接口相比Level-1接口相比,L2行情市场具有数据更完整、推送速度更及时的优势,帮助投资者及时把握盘中主要资金流,做出更准确的投资决策。简而言之,Level-2最大的作用就是提前看到主力的大单,对于追逐日线跌停…

Linux高并发服务器开发01:Linux系统编程入门

GCC 什么是GCC GCC工作流程 GCC常用的参数选项 GCC和G的区别 静态库 什么是库 静态库的制作 先编译生成对应的.o文件 gcc -c add.c sub.c mult.c div.c -I …/include/ 再将.o文件打包成静态库 ar rcs libcalc.a add.o sub.o mult.o div.o 使用的时候-l指定库名称 gcc main.c…

【论文简述】Multi-View Stereo Representation Revisit: Region-Aware MVSNet(CVPR 2023)

一、论文简述 1. 第一作者:Yisu Zhang 2. 发表年份:2023 3. 发表期刊:CVPR 4. 关键词:MVS、3D重建、符号距离场 5. 探索动机:像素深度估计仍存在两个棘手的缺陷。一是无纹理区域的估计置信度较低。二是物体边界附…

RTSP/RTP on TCP 协议抓包记录

仅做记录,无他。 RTSP OPTIONS 客户端发送: 服务端响应 RTSP DESCRIBE 客户端发送 服务端响应 RTSP SETTUP 客户端发送请求 服务端响应 RTSP PLAY 客户端发送请求 服务端响应 RTP包 这个比较复杂,得好好解析&#xff0…

消息队列中间件 - RabbitMQ消息的持久化、确认机制、死信队列

持久化和应答机制Ack 消息队列中间件系列的最后一篇了,RabbitMQ消息的持久化、确认机制、死信队列、负载均衡等一系列进行说明。 消息持久化 当RabbitMq重启以后,未消费的消息,可以在服务重启后继续消费,不会丢失。 应答机制A…

DS215KLDCG1AZZ03A如何编写温度比例的代码?

DS215KLDCG1AZZ03A如何编写温度比例的代码&#xff1f; 可编程逻辑控制&#xff0c;简称PLC&#xff0c;由美国机械工程师迪克莫利于1年1968月<>日首次设计。PLC最初是为了减少汽车行业员工的工作量而开发的&#xff0c;从那时起&#xff0c;它们已被用于所有其他恶劣环境…

MySQL --- 多表查询

多表查询、事物、以及提升查询效率最有手段的索引 一. 多表查询 1.1 多表查询 --- 概述 1.1.1 数据准备 将资料中准备好的多表查询数据准备的SQL脚本导入数据库中。 部门表&#xff1a; 员工表&#xff1a; 1.1.2 介绍 多表查询&#xff1a;指从多张表中查询数据&#…

尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】

视频地址&#xff1a;尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】尚硅谷大数据技术Spark教程-笔记02【SparkCore(核心编程、案例实操)】尚硅谷大数据技术Spark教程-笔记03【SparkSQL…

云原生背景下如何配置 JVM 内存

image.png 背景 前段时间业务研发反馈说是他的应用内存使用率很高&#xff0c;导致频繁的重启&#xff0c;让我排查下是怎么回事&#xff1b; 在这之前我也没怎么在意过这个问题&#xff0c;正好这次排查分析的过程做一个记录。 首先我查看了监控面板里的 Pod 监控&#xff1a;…