IOT物联网概述及应用层架构入门篇_iot物模型 如何对接-程序员宅基地

技术标签: 架构  网络  项目管理  物联网  

IOT物联网概述及应用层架构入门篇

本文是本着了解物联网原理及如何架构软件到具体案例的应用而梳理的一篇文章,学习了多位前辈的成果,有不足的地方请及时指正。

一、IOT是什么?

IOT即物联网,英文全称为Internet of Things。是指通过射频识别、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现对物品的智能化识别、定位、跟踪、监控和管理的网络。

该概念最早于1999年提出,曾被称为继计算机、互联网之后,世界信息产业发展的第三次浪潮,到现在已发展20余年。如今,在日常生活中,我们已经可以接触到非常多的物联网产品,如智能家电、智能门锁等,这些都是物联网技术比较成熟的应用。

二、IOT是如何实现的?

举一个例子:我们从某宝买了一枚智能灯泡,到货后我们需要做如下操作步骤:

**第一步:【通电】**将灯泡拧到了灯口;
**第二步:【应用】**扫描说明书的二维码下载APP;
**第三步:【配网】**按照说明通过APP和灯进行交互使设备联网;
**第四步:【鉴权】**设备连网后设备请求接入服务,应用层会根据鉴权规则确认设备是否可以接入,允许接入后设备即可成功使用服务。(如果成功,用户无法感知)
**第五步:【使用】**这时我们就可以在APP上控制灯的颜色、灯的亮度、灯的开关,充分享受物联网带来的便捷了。
*概念解释:

**配网:**指的是将设备连接到互联网上,有的设备通过家用Wi-Fi入网,比如家里的摄像头;有的通过蓝牙入网,比如手环;有的通过zigbee网关入网,比如智能路灯,具体的入网方式和设备所要处理的业务、位置有关,整体从耗电量、通信范围、数据上传下载量等多个维度平衡选择。
**鉴权:**指设备接入应用层的时候需要确认是不是拥有应用层发给你的标识,举个例子:你拿着身份证在国内可以畅行无阻;但在国外就是行不通的,因为国外不承认“身份证即为合法居民”这个规则,只有“护照”别人才会承认。
以上操作步骤的具体实现架构原理如下图:

https://pic1.zhimg.com/80/v2-66a9d68f86fd9208420f4623811884f0_720w.jpg

IOT基础构成层

三、IOT三个基础层展开说明

3.1 感知层

**感知层定义:**感知层即我们的智能设备层,可以类比为我们的视觉、味觉、嗅觉、听觉等。感知层帮我们度量、定义事和物,比如温度、湿度、雾霾指数、是否移动、光照度、气味等;主要的技术有传感器技术、射频识别技术、二维码技术等。

感知层包含的设备类型:目前接触的智能设备有两种

第一种:简单的单一感知能力的设备,如烟雾探测器、安装GPS的防丢水杯等;

第二种:传感器、摄像头等混合并实现联动的复杂设备。

现目前第一种设备的厂商较多;第二种设备是第一种设备的组合创新,这不仅考验厂家的设备硬件能力,也需要有相当的软件实力。

*概念解释:

射频识别技术:即radio frequency identification,简称RFID,是一种简单的无线系统,包含阅读器、标签、应用程序三部分。主要是标签,标签由耦合元件和芯片组成,每个标签都有唯一识别码,然后附着在物体上,然后通过天线与阅读器通信,阅读器通过收集到的信息传到应用程序上面进行计算,从而赋予物体“开口说话”的功能。
传感器:对于传统的定义为,能感受到被测量并按照一定的规则转换成可用输出信号的器件或装置。对于广义上的传感器,在此基础上还会加入微处理器、模数转换、通信模组、电路设计、嵌入式程序等能力,极大程度地提升传感器的智能化。

3.2 网络层

网络层定义:实现数据传输,把数据从感知层传输至应用层(平台层)。

网络层包含内容:网络层分为物接入互联网、互联网传输两部分。

1. 物接入互联网部分

在这里插入图片描述

物接入互联网方式明细表

2. 互联网传输部分

互联网传输目前有两种比较主流的通讯协议:MQTT和CoAP

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输):是一个基于客户端-服务器的消息发布/订阅传输协议,可保持长连接,实现多对多异步通信;
CoAP(The Constrained Application Protocol,受限应用协议):是一种客户端-服务器单对单的协议,具备轻量低功耗的特点。

3.3 应用层

应用层定义:应用层就像我们的大脑,我们会对接收到的信息进行归类、判断并作出相应的动作或决定。

应用层的实现方式:目前实现方式大致可以分为两种

烟囱式的实现,即一套软件解决一类设备,优点是成本低、工期短,缺点是可扩展性差;
搭建SaaS、PaaS、IaaS架构,优点是可扩展性好,工期长,适应性较高,缺点是成本高。
烟囱式的实现:只沉淀单一类型的设备数据,不能做大数据化,主要以行业应用、闭环应用为主,一定程度上属于内联网、专用网。这种模式物体/信息共享难、应用系统间互联互通难,既难以适应规模化、协同化的发展要求,也难以引导和催生物联网更大的、潜在的发展。

云计算架构:SaaS、PaaS、IaaS实现

SaaS、PaaS、IaaS是云计算提出的架构,而云计算是实现物联网的技术之一,再延伸的说:人工智能依赖于大数据,大数据依赖于人联网、物联网,而这些都依赖于云计算。

所以从云计算的这个架构去看物联网是这样的:

SaaS(Software as a Service)强调应用即服务,我们用来控制灯、窗帘、音响的软件都属于SaaS层。即终端使用层。

PaaS(Platform as a Service)强调平台即服务,平台层不关心这个物是灯还是窗帘,只知道这类型的【物】有12个不同类型的属性,且这个类型的【物】连接了1324个具体的设备。哪个类型的【物】有XX个不同类型的属性,连接了XX个设备;物模型、物影子、规则引擎、物接入等这类抽象概念都在这一层实现。即平台方控制层。

IaaS(Infrastructure as a Service)强调基础设施即服务,灯的色温值是什么,电饭煲的煮饭方式是什么,窗帘是开是关,这些数据都是要存储在数据库中;PaaS层在几秒内要找到目标设备等这类动作是需要计算能力的;而承载这些数据库、计算能力的都是真实的硬件资源。IaaS层就是要调度、计算哪些工作需要多少资源,什么弹性伸缩、扩缩容都是这一层做的事情。即基础能量给予层。
在这里插入图片描述

云计算架构:SaaS、PaaS、IaaS实现

四、应用层所需的功能模块

在这里插入图片描述

物联网平台层整体产品架构参考
在这里插入图片描述
设备接入平台层的数据信息流转图

1. 产品管理

产品是设备的集合,通常是一组具有相同功能定义的设备集合。该模块以一种硬件产品为粒度,创建产品及配置产品相关信息。

产品信息管理:硬件产品的功能描述、性能参数、发布状态等信息管理;
组网拓扑管理:对于传感器、采集仪、网关,由于通讯方式不同,产品的组网拓扑便不同。此处描述各类产品入网的拓扑关系;
版本&固件管理:对产品的版本信息及固件进行管理;
物模型管理:物模型,即一类物理世界的实物(如传感器)在平台的数字化模型。物模型对该产品的上行数据、下行指令,上下行动作进行描述。简单来说,物模型就是该实体能对外提供什么信息以及能对它做什么,因此物模型是设备与平台之间的关键枢纽。

2. 设备管理

设备是硬件产品的最小单位,每个设备都对应一个唯一编码,从设备入库开始便记录相关信息,并且可以对设备进行资产分配、安全认证、配置操作等行为,最后对设备从入库到报废的全生命周期管理。

设备全生命周期管理:对设备的物理状态、健康状态、资产归属、调试日志进行记录,记录设备从入库到报废的全生命周期,便于问题追溯分析。
设备资产管理:对设备资产进行划分,便于控制用户设备权限。
虚拟设备:根据物模型构建虚拟设备,用于用户体验、真实设备受限时的模拟调试验证、批量压测验证平台性能等场景。
设备影子:每个设备有且只有一个设备影子,设备可以通过MQTT获取和设置设备影子来同步状态,用于存储设备上报状态、应用程序期望下发的配置,解耦应用于终端设备。一般用于网络不稳定、设备无法实时通信、一个设备在同一时间被反复请求等场景。

3. IoT设备接入

物联网平台支持海量多元异构数据的设备接入,通过简易的配置,便可建立设备与云平台之间的联系,实现稳定可靠的双向通信。

协议接入:使用MQTT协议接入数据,并根据场景定义不同topic进行消息发布订阅。
设备鉴权认证:以网关为单位,对接入数据topic做发布订阅鉴权认证,实现topic级别的权限隔离,提高接入安全性。
数据转换解析:对接入的异构数据进行格式统一,根据物模型对接入数据进行解析。
设备接入配置:此处的目的是把接入到平台的数据与具体的实体对象进行握手,以便于在应用中能够区分不同实体对象的数据。此处依赖于产品物模型与产品组网拓扑。需要注意的是,在应用层中,根据不同业务属性,可能会把实体对象做某些关系映射。
消息通信:当完成设备接入配置后,用户便能实现对设备的交互,包括数据上报、命令下发等。

4. 数据展示

该模块对物联网收集的数据,运用相应的可视化图表进行展示,以便于物联网监测数据能直观展示。此处功能与企业业务方向会紧密相关。

基础监测数据:对结构化数据进行基础图形表格数据展示。
系统集成数据:对视频监控、车流量等系统集成类进行数据展示。
数据可视化:安全监测领域主流的可视化系统,如BIM、GIS、视频融合、人员定位、可视化大屏等。
数据管理:对原始数据的数据维护、数据下载、文档管理等服务。

5. 数据分析

该模块对展示的数据加以分析,把物联网海量数据变成有价值的数据。此处功能与企业业务方向会紧密相关。

基础数据分析:包括同步分析、关联分析、同步分析、频谱分析、风玫瑰图分析;
高级数据分析:针对特定传感器的高级算法分析,包括索力算法分析、动态称重分析、深度测斜分析、柱体分析、索承结构分析;
报告报表分析:专业结构人员使用的分析工具,制作专业分析报告。

6. 规则引擎

规则引擎是指用户可以在物联网平台上可以配置某些规则,在判断条件满足规则后,平台会执行相应的动作来满足用户需求,灵活构建场景联动、报警等定制化业务场景。规则引擎所需要的元素如下:

1)触发条件

触发对象:可以是某个设备,某个测点,也可以是某个时刻,或某个事件;
触发条件:可以是简单的上下限判断,也可以是一个复杂的函数/算法判断;
触发时间:即时效性,可以是一直有效,或者规定时间内有效;
沉淀机制:避免设备上传相同数据导致重复触发规则。
2)执行动作

指令下发:即对制定设备发送指令;
发送通知:如短信、邮件、小程序、APP推送等;
产生报警:在运维报警监控界面产生一条报警记录;
执行时间:立即、或延时;
执行规则:执行某条规则;
规则状态开关:开启或关闭某条规则。
3)日志

每条状态为开启的规则,每次执行都要留有日志,存储触发时间、判断依据、执行动作记录等。

7. 运维服务

此模块为专业运维团队提供运维服务,是业务正常运作的关键。

运维监控:对项目运维情况进行监控,包括设备拓扑网络、运维报警监控、无效数据、设备报表分析;
设备调试:对设备进行远程在线调试;
OTA升级:上传新的升级包,并将OTA升级消息推送给设备,设备即可在线升级;
日志服务:包括设备全生命周期日志、用户操作日志等;
业务工单:支持业务运作的跨部门协作工单,此工单内容根据企业业务不同会有较大差异,此处不做具体展开说明。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_37892471/article/details/126004700

智能推荐

while循环&CPU占用率高问题深入分析与解决方案_main函数使用while(1)循环cpu占用99-程序员宅基地

文章浏览阅读3.8k次,点赞9次,收藏28次。直接上一个工作中碰到的问题,另外一个系统开启多线程调用我这边的接口,然后我这边会开启多线程批量查询第三方接口并且返回给调用方。使用的是两三年前别人遗留下来的方法,放到线上后发现确实是可以正常取到结果,但是一旦调用,CPU占用就直接100%(部署环境是win server服务器)。因此查看了下相关的老代码并使用JProfiler查看发现是在某个while循环的时候有问题。具体项目代码就不贴了,类似于下面这段代码。​​​​​​while(flag) {//your code;}这里的flag._main函数使用while(1)循环cpu占用99

【无标题】jetbrains idea shift f6不生效_idea shift +f6快捷键不生效-程序员宅基地

文章浏览阅读347次。idea shift f6 快捷键无效_idea shift +f6快捷键不生效

node.js学习笔记之Node中的核心模块_node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是-程序员宅基地

文章浏览阅读135次。Ecmacript 中没有DOM 和 BOM核心模块Node为JavaScript提供了很多服务器级别,这些API绝大多数都被包装到了一个具名和核心模块中了,例如文件操作的 fs 核心模块 ,http服务构建的http 模块 path 路径操作模块 os 操作系统信息模块// 用来获取机器信息的var os = require('os')// 用来操作路径的var path = require('path')// 获取当前机器的 CPU 信息console.log(os.cpus._node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是

数学建模【SPSS 下载-安装、方差分析与回归分析的SPSS实现(软件概述、方差分析、回归分析)】_化工数学模型数据回归软件-程序员宅基地

文章浏览阅读10w+次,点赞435次,收藏3.4k次。SPSS 22 下载安装过程7.6 方差分析与回归分析的SPSS实现7.6.1 SPSS软件概述1 SPSS版本与安装2 SPSS界面3 SPSS特点4 SPSS数据7.6.2 SPSS与方差分析1 单因素方差分析2 双因素方差分析7.6.3 SPSS与回归分析SPSS回归分析过程牙膏价格问题的回归分析_化工数学模型数据回归软件

利用hutool实现邮件发送功能_hutool发送邮件-程序员宅基地

文章浏览阅读7.5k次。如何利用hutool工具包实现邮件发送功能呢?1、首先引入hutool依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.19</version></dependency>2、编写邮件发送工具类package com.pc.c..._hutool发送邮件

docker安装elasticsearch,elasticsearch-head,kibana,ik分词器_docker安装kibana连接elasticsearch并且elasticsearch有密码-程序员宅基地

文章浏览阅读867次,点赞2次,收藏2次。docker安装elasticsearch,elasticsearch-head,kibana,ik分词器安装方式基本有两种,一种是pull的方式,一种是Dockerfile的方式,由于pull的方式pull下来后还需配置许多东西且不便于复用,个人比较喜欢使用Dockerfile的方式所有docker支持的镜像基本都在https://hub.docker.com/docker的官网上能找到合..._docker安装kibana连接elasticsearch并且elasticsearch有密码

随便推点

Python 攻克移动开发失败!_beeware-程序员宅基地

文章浏览阅读1.3w次,点赞57次,收藏92次。整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)近年来,随着机器学习的兴起,有一门编程语言逐渐变得火热——Python。得益于其针对机器学习提供了大量开源框架和第三方模块,内置..._beeware

Swift4.0_Timer 的基本使用_swift timer 暂停-程序员宅基地

文章浏览阅读7.9k次。//// ViewController.swift// Day_10_Timer//// Created by dongqiangfei on 2018/10/15.// Copyright 2018年 飞飞. All rights reserved.//import UIKitclass ViewController: UIViewController { ..._swift timer 暂停

元素三大等待-程序员宅基地

文章浏览阅读986次,点赞2次,收藏2次。1.硬性等待让当前线程暂停执行,应用场景:代码执行速度太快了,但是UI元素没有立马加载出来,造成两者不同步,这时候就可以让代码等待一下,再去执行找元素的动作线程休眠,强制等待 Thread.sleep(long mills)package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.firefox.Firefox.._元素三大等待

Java软件工程师职位分析_java岗位分析-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏14次。Java软件工程师职位分析_java岗位分析

Java:Unreachable code的解决方法_java unreachable code-程序员宅基地

文章浏览阅读2k次。Java:Unreachable code的解决方法_java unreachable code

标签data-*自定义属性值和根据data属性值查找对应标签_如何根据data-*属性获取对应的标签对象-程序员宅基地

文章浏览阅读1w次。1、html中设置标签data-*的值 标题 11111 222222、点击获取当前标签的data-url的值$('dd').on('click', function() { var urlVal = $(this).data('ur_如何根据data-*属性获取对应的标签对象

推荐文章

热门文章

相关标签