物模型技术对于物联网企业来说是一项非常重要的技术,因为要实现万物互联,必须要有物模型体系沉淀,才能够让各种硬件实现智能化连接。
今天,阿里云AIoT物模型技术专家熊益群,为大家带来了一份物模型技术全攻略,解析物模型技术为什么这么重要?
物模型三个关键问题:
1、为什么需要物模型?
海量的物联网数据、设备、业务,异构的设备和数据描述方式,难以理解,互通困难,首先,产业链内部自成体系,模组、芯片、平台、方案商角色多样,跨角色协作时,数据标准各异,协作困难;其次,采集数据解析困难,难以结构化,数据利用效率低,数据价值难挖掘;最后,随着行业应用和设备量增长,新增应用需要针对不同的设备协议重复开发,难以规模化。
2、物模型能解决那些行业问题?
目前物联网行业普遍存在着设备孤岛、软硬开发强耦合的问题,需要构建模型统一描述语言、面向物理实体的统一建模,物模型作为物的抽象层屏蔽了底层终端差异,标准化了设备的能力表达和交互方式,极大降低了物联网应用开发和快速复制的成本。
3、物模型带来什么价值?
低门槛接入:提供设备建模和交互协议基础能力。这是最基础的价值,所有设备上云都需要建模和交互协议。物模型和协议设计是否足够专业,这其实是绝大多数中小企业的门槛,他们刚开始意识不到,随意设计,随着规模和业务变化弊端就会体现出来。
标准化:物模型作为物联网的抽象层,类似操作系统屏蔽硬件、JVM屏蔽OS的差异性一样,通过标准化设备的能力表达和交互方式,解决了物联网严重碎片化情况下协议差异、软硬开发耦合、全链路验证流程长、设备孤岛、数据孤岛等问题。
生态化:软、硬件一旦基于物模型标准化开发和交互,围绕物联网的多角色,包括ISV,SI,IHV等在设备开发、生产、运维、售卖、集成、运行等环节相互之间能够解耦,提升了设备的流通性,促进生态化。
物模型面临哪些技术挑战?
以一个灯泡为例
我们先来看一看一盏普通的智能灯会有哪些能力或特性,比如开关、色调、亮度、过温告警、恢复出厂设置等能力,其中包含有传感器采集的状态、有危险告警、也有控制器可执行的指令。那么不同行业场景设备复杂度、差异性都不一样,简单到消费类设备"灯"、复杂到工业类设备"锅炉"都需要可表达,定义一套足够抽象通用面向万物的物模型还是非常有挑战的,因此需要遵循一定的设计原则,比如简单、普适、可扩展、模块化、易用性。
延展开来说,物模型的技术挑战具体有这几项
物模型由于描述所有异构设备完整能力,而且在设备全生命周期都发挥着作用,因此物模型设计过程中存在以下需要解决的难题:
普适性:物模型的定义和设计能够适应所有设备,需要可覆盖工业、生活、农业、交通多个不同行业。因此在设计上需要找到设备最本质的共性、抽象出一套模型。
超大点位和超复杂结构:尤其工业场景,通常需要对包含大量传感器(万级别)的传统自动化系统进行数字化,对物模型提出了非常大的挑战,物模型复杂度变成了和物理实体和环境复杂度成正相关,我们需要从中找到最本质的破解方法,避免物模型复杂度变得不可控。
国际化:设备可以在任何阶段售往全球各地,物模型能够让设备在各地具备多语言的能力。
可插拔:工业文明发展快很重要的一点在于标准化,大量复杂设备都可以标准化组装而成,比如汽车、轮船、家居等,模块可以根据产品特性进行动态插拔,因此物模型同样需要能够适应物理设备模块可插拔特性。
安全开发:物模型在设备开发阶段定义,在设备运行阶段被引用,需要保障开发阶段定义或调试的物模型不影响生产阶段正在运行的设备。
快速调试:传统硬件开发和软件开发需要全链路一起配合调试,周期长成本高。有了物模型,调试阶段需要确保软硬解耦,不相互依赖。
高可靠:线下化是物联网与互联网很大的差异点,大量线下的物理设备,地理位置和应用场景及其广泛,设备出现问题现场运维成本非常高,而且对社会影响大,因此物模型在设备运行阶段的可靠性要求非常高。
可回滚:为了保障高可靠,物模型在开发到运行过程中,一旦出现异常需要确保可快速回滚。
可适配:由于行业里面已经有不少设备模型和交互协议,比如工业场景的Modbus,opc等,生活场景的ble,zigbee等,当然还有大量三方平台私有协议,为了帮助这些存量设备能够使用物模型,物模型需要具备模型和协议适配能力。
统一交互协议:设备除了需要可表达之外,还需要可访问,物模型不仅需要定义设备能力描述规范,还需要定义设备被访问方式,所有设备都能够使用同一套交互协议进行访问,设计上也存在着不小挑战,比如资源受限设备、弱网环境设备、工业边缘设备对协议要求都会不一样,有些追求低功耗、有些追求少带宽、有些追求大点位高频、也有追求网络多级级联等等。
孪生代理:物模型核心价值在于物理实体数字化,物理实体在云上数字化后会构建数字孪生体,数字孪生体的数据模型、访问方式均基于物模型,数字孪生体代理物理设备与行业应用进行交互,从而达到软件与硬件的解耦。然而孪生代理应该具备哪些特性以确保硬件能力都可以高效可靠地访问是非常有挑战的,比如设备断网或异常情况孪生代理如何与应用交互,是确保指令必达还是快速失败,可能不同场景诉求不一样。当然具备海量数据的孪生体如何基于数据智能化,反向指导物理设备生产运维,达到和物理设备共智的目标这是更大的挑战。
我们应该如何设计物模型呢?
早期大多数物联网平台比如Azure、AWS都只做连接和基础管理能力,并没有围绕数字化的设备建模和数字孪生能力,不过这两年几乎所有物联网平台都开始重视物模型和数字孪生的建设。
大多数对于设备建模都采用的是面向对象语言的思路,比如WoT、OPC、OMA、OCF、CWMP、AllJoin等,面向对象语言的抽象能力在计算机编程发展的几十年已经被证明,我们物模型定义也充分借鉴,却又因物联网而有所不同。
我们以面向对象语言java里面的class做类比,class用属性和方法描述对象的状态和行为;物模型也可以用属性和方法来描述物的状态和行为。同时结合设备特性,我们将物模型schema进行了一定的扩展,定义为属性、服务(方法)和事件三要素,事件是一类特殊的属性,比如空调的故障告警,这类属性严重性高,实时性强,一般需要监控并及时响应。为了对设备更精确的描述,物模型针对每种数据类型还定义了非常严谨的数据规范,比如在数据类型之外,还需要定义数据范围、精度、步长等规范。
【图为物模型基础schema(没有包括模块化、多语言、多版本等一系列高阶特性)】
解决了这些挑战后,物模型的技术架构就呈现出来了
阿里云AIoT物模型除了通过属性、事件、服务三要素描述了物理实体能力之外,物模型还支持千级大点位、多语言、多版本、多模块、多级级联、协议适配、云边端一体化等能力,达到可以应对生活、城市、工业等不同场景定义诉求。当然为了应对上文提到的一系列技术挑战,我们还通过构建Alink协议、数字孪生搭建了一整套面向物理实体的数字化能力。
还有一点要注意,物模型和数据标准是不一样的
物模型能够以同一套schema描述设备的能力,但由于物联网碎片化,大家对于设备能力的定义差异性非常大,同样一款空调,不同厂商定义的能力会不一样。相当于面向对象语言里面接口标准化了,但实现没有标准化。数据标准核心在于降低差异化。
数据标准是一批可用于组装物模型的标准化素材,物模型构建过程可以方便地从数据标准库中选择素材进行积木式搭建。
在传统领域碎片化严重的情况下,定义数据标准非常有挑战,通常只有深耕传统行业才能定义出来,因此我们更多的是引入这些行业领先者贡献数据标准,而不是自己制定。阿里云IoT数据标准的沉淀主要来自ICA标准联盟,ICA标准库包括基本资源、功能模块、物模板三类素材:
资源:标准库中最原子的能力,有属性、事件、服务三种类型(三要素);
功能模块:一组资源的集合。集合中的资源可以是标准库中已有资源的组装,也可以是在当前功能模块新增的资源;
物模板:一组功能模块和一组资源的集合。集合中的模块和资源可以是标准库中已有模块和资源的组装,也可以是在当前物模板新增的资源;
下图描述了物模型、数据标准之间的关系
最终我们看下灯泡物模型示意图
数据标准的核心价值是什么呢?
阿里牵头的ICA标准联盟,已经沉淀了海量标准化的数据模型,核心价值一是为了建模过程可以快速组装、积木式搭建、提高建模效率;另一方面标准物模板可以促进软硬件标准化,从而实现软件商、集成商对购买的硬件即插即用。
往期推荐
1、39张传感器工作原理GIF图汇总
2、智能手持测温枪开发实践
3、IoT+TSDB+Quick BI 搭建楼宇环境监控
4、JS全栈开发,构建智能家居小程序