基本概念
物联网体系结构
物联网的架构一般分为三层或四层。三层之架构由底层至上层依序为感知层、网络层与应用层;
四层之架构由底层至上层依序为感知设备层(或称感测层)、网络连接层(或称网络层)、平台工具层与应用服务层。三层与四层架构之差异,在于四层将三层之“应用层”拆分成“平台工具层”与“应用服务层”,对于软件应用做更细致的区分。
IOT-Hub-Node的定位就是实现平台层功能,主要实现设备接入,设备管理,设备数据收集,为了可能还会针对收集的数据开发AI侧的功能。
物联网平台
物联网平台可以分为下面四种:
- DMP(数据管理平台):
- 定义:数据管理平台是用于收集、存储、管理和分析大量数据的系统,目的是提供数据的整合、清洗和分析,以便进行更深入的见解和决策。
- 作用:DMP 主要用于整合来自不同来源的数据,包括设备生成的数据、传感器数据等,帮助企业更好地理解数据并进行数据驱动的决策。
- CMP(连接管理平台):
- 定义:连接管理平台是用于管理和监控连接设备之间通信的平台,确保设备之间的互联和通信顺畅。
- 作用:CMP 主要负责管理设备之间的通信协议、数据传输、设备注册和身份验证等,以确保物联网设备之间可以有效地通信。
- AEP(应用程序增强平台):
- 定义:应用程序增强平台是为物联网应用程序提供支持和增强功能的平台,帮助开发人员更轻松地构建和部署物联网应用程序。
- 作用:AEP 提供了一系列工具和服务,包括设备管理、数据分析、安全性、用户体验等方面的支持,帮助开发人员快速开发和部署物联网应用程序。
- BAP(商业分析平台):
- 定义:商业分析平台是用于分析和展示物联网数据,帮助企业从数据中获得商业价值和见解的平台。
- 作用:BAP 提供了数据分析、可视化、报告和预测分析等功能,帮助企业了解他们的物联网数据,发现趋势、模式,并做出基于数据的决策。
IOT-Hub-Node主要侧重于几种物联网平台的前三者,如下图:
物联网通讯协议
物联网通信协议是物联网设备之间进行通信和数据交换所采用的规范和约定。以下是一些常见的物联网通信协议:
MQTT(Message Queuing Telemetry Transport):一种基于发布/订阅模式的轻量级、灵活、简单的消息协议。适用于低带宽、不稳定网络环境下的物联网通信。
CoAP(Constrained Application Protocol):专为受限环境和低功耗设备设计的应用层协议。采用RESTful风格,适用于资源受限的设备和网络。
HTTP(Hypertext Transfer Protocol):虽然通常用于传输网页和超媒体文档,但也可以用于物联网设备之间的通信,特别是在较大型的应用中。
AMQP(Advanced Message Queuing Protocol):一种面向消息的中间件协议,提供了可靠的消息传递和强大的消息路由功能。
物联网设备的异构
在业务高速发展的同时,伴随着物联网技术的大规模应用,海量的物联网数据、设备、业务、服务各自采用不同的数据描述方式,导致数据异构化、设备异构化、应用异构化等碎片化问题,阻碍了产业发展。主要体现在:
一、数据价值低:物联网数据具有多源异构、规模巨大等特性,使得数据解析与数据共享困难。与此同时,海量数据之间缺少业务关联 性,导致数据利用效率低下,数据价值无法充分利用。 二、业务复制成本高:不同设备的标准各异,设备接入开发成本高、时间长。随着行业应用和设备量增长,新增应用需要针对不同的标 准多次定制开发,造成业务的复制成本增高。 三、产业链合作难:不同厂家之间的接入协议、数据模型数量众多且各自封闭,产业链内部自成体系,使得产业链各主体间协作困难, 设备联动及维护难度大,服务兼容性差,严重影响用户体验。
为了解决这些物联网业务痛点,行业内各IoT运营平台尝试用物模型来结构化、统一化、标准化地粘合数据碎片,减少业务复制成本, 打破服务壁垒。
物模型
物模型是将实体设备抽象化建模以后,对设备进行标准的数字化描述。形象来说,物模型为设备间互动提供了“普通话”,这样可以对 设备产生的数据进行统一、标准的描述,实现海量数据的识别、解析与共享,深度挖掘数据价值。 引入物模型,将对物联网业务带来巨大的价值。一方面,物模型将实体设备在云端数字化为服务或资源,为垂直行业IoT应用开发提供 统一的访问接口、开发工具、增值服务,实现业务应用的高效复制。另一方面,物模型统一化、数字化地描述了实体设备是什么、能做什么, 将设备和应用解耦,实现信息在设备和平台间的横向流动,消除产业链间的服务壁垒
通俗来讲,物模型是对现实中的设备(如传感器、触控开关等)的数字化抽象。其从属性、方法和事件三个维度来描述设备是什么、能够做什么,以及能对外提供什么信息。
项目 | 说明 |
---|---|
属性 | 用于描述设备运行时的状态,分为可读写和只读属性,比如温度传感器所读取的环境温度或者是插座的开关状态 |
方法 | 设备可被用户调用并执行的方法,包含输入参数和返回参数,前者用于方法执行时的参数,后者用于上报方法执行后的结果。方法分为异步和同步执行两种类型 |
事件 | 用于定义设备运行过程中所产生的消息,包括“信息”、“告警”和“错误”三种类型 |
物联网平台支持为产品定义多组功能(属性、服务和事件)。一组功能定义的集合,就是一个物模型模块。多个物模型模块,彼此互不影响。 物模型模块功能,解决了工业场景中复杂的设备建模,便于在同一产品下,开发不同功能的设备。
物模型TSL
物联网平台通过定义一种物的描述语言来描述物模型模块和功能,称为TSL。
下面的示例展示了本平台的基本物模型格式:
{
"productKey": "设备的产品标识符",
"modelName": "物模型名称",
"attributes": [
{
"identifier": "属性标识符",
"name": "属性名称",
"accessMode": "属性读写类型:只读(r)或读写(rw)",
"description": "属性描述",
"dataType": "数据类型"
}
],
"functions": [
{
"identifier": "功能标识符",
"name": "功能名称",
"inputData": [
{
"identifier": "输入参数标识符",
"dataType": "数据类型",
"name": "参数名称",
"description": "参数描述"
}
],
"outputData": [
{
"identifier": "输出参数标识符",
"dataType": "数据类型",
"name": "参数名称",
"description": "参数描述"
}
],
"description": "功能描述"
}
],
"events": [
{
"identifier": "事件标识符",
"name": "事件名称",
"outputData": [
{
"identifier": "输出参数标识符",
"dataType": "数据类型",
"name": "参数名称",
"description": "参数描述"
}
],
"description": "事件描述"
}
]
}
下面是本平台支持的数据类型:
数据类型 | 符号 | 说明 |
---|---|---|
整数 | integer | 表示整数值,如 -10, 0, 42 |
浮点数 | float | 表示小数值,如 3.14, -0.001 |
字符串 | string | 表示文本字符串,如 "hello", "123" |
布尔值 | boolean | 表示逻辑值,可以是 true 或 false |
时间戳 | 表示日期和时间的值,通常是从特定时间点开始计算的秒数或毫秒数 |