物模型
1. 什么是物模型
物模型是物理空间中的实体(如传感器、车载装置、楼宇、工厂等)在云端的数字化表示,从属性、服务和事件三个维度,分别描述了该实体是什么、能做什么、可以对外提供哪些信息。定义了物模型的这三个维度,即完成了产品功能的定义。
物模型将产品功能类型分为三类:属性、服务和事件。
功能类型 | 说明 |
---|---|
属性(Property) | 设备可读取和设置的能力。一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等。属性支持GET和SET请求方式。应用系统可发起对属性的读取和设置请求。 |
服务(Service) n.方法 | 设备可被外部调用的能力或方法,可设置输入参数和输出参数。产品提供了什么功能供云端调用。相比于属性,服务可通过一条指令实现更复杂的业务逻辑,如执行某项特定的任务。 |
事件(Event) | 设备运行时,主动上报给云端的事件。事件一般包含需要被外部感知和处理的通知信息,可包含多个输出参数。例如,某项任务完成的信息,或者设备发生故障或告警时的温度等,事件可以被订阅和推送。 |
2. 不同平台物模型规范区别
不同的平台有自己的物模型规范,各平台之间在抽象归纳的层级上有所差异,但实际使用时差别不大,都能实现统一物模型的目的。
2.1 阿里
阿里的ICA联盟发布的物模型和上面介绍的很相似,分为属性、方法、事件。只是在支持的数据类型、单位上有所不同。
2.2 小米
小米的物模型称作spec定义,由服务、属性、方法、事件组成,服务由若干属性、方法、事件组成,产品由若干服务组成,这样的架构更加灵活,它将具有某些功能组合的部件抽象成服务,例如空调就是由风扇服务、空气调节服务、指示灯服务组成,增加“服务”层级的意义在于,只要定义了少量的服务,就可以通过不同组合描述不同产品的功能。
2.3 京东
京东的模型定义比较简单,只有属性,属性变化时会上报,但由于没有“方法”参数,设备无法实现一些需要多个输入参数的复杂功能。