本文以物联网四层架构为基础,从物联网产品设计的角度来解读每层架构的功能以及主要内容,旨在为物联网产品设计以及实现思路感兴趣的物联网产品或研发人员有些帮助。
通过互联网,人和人之间可以传递和交流信息。物联网,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个组成部分:业务处理,数据库和客户端。
物联网业务处理较为复杂,因为其会涉及到海量数据的整合,这对不同行业终端应用者来说具有很大的挑战,所以目前市场上有专门提供的中间件比如云计算、数据挖掘、人工智能、信息融合等可以供行业者使用,这也在一定程度上激发了物联网应用行业的繁荣。
数据库主要用来存储设备、用户、业务以及其他相关的数据。应用层会接触到终端用户,所以会涉及到客户端的开发,在此就不赘述。
物联网涉及到的关键技术主要有云计算、数据挖掘、人工智能,在此作简要介绍:
云计算具有强大的存储能力、处理能力、带宽和极高的性价比,它可以为不同的物联网应用提供统一的服务。不同的技术服务商会开发一套完整的云计算资源,其就像水电一样,客户可以按需付费,你需要多少,就购买多少;
数据挖掘是从大量的、不完全的、有噪声的、模糊的及随机的实际应用数据中,挖掘出隐含的、未知的、对决策有潜在价值的数据的过程。数据挖掘主要基于人工智能、机器学习、模式识别、统计学等,高度自动化地对数据进行统计、分析、综合、归纳和推理,揭示事物间的相互关系,预测未来的发展趋势,为决策者提供决策依据;
人工智能是探索研究使各种机器模拟人的某些思维过程和智能行为(如学习、推理、思考等)。该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。在物联网中,人工智能技术主要负责分析物品所承载的信息内容,从而实现计算机自动处理。