物联网技术系列之物模型设计
引言
伴随着物联网技术的发展,大量物联网终端、应用的接入,也带来了数据异构化、应用异构化等碎片问题。由于物联网感知数据有多源异构的特点,导致数据识别、解析、挖掘难度大;不同物联网应用间数据共享难度大,协同合作困难。由于不同厂商的设备生产标准不同,导致设备接入物联网服务平台的开发难度大,周期长。物模型作为物联网领域一项非常重要的技术,将多源异构数据结构化、统一化、标准化,降低数据分析和设备接入的成本,消除协同合作困难。
物模型设计
物联网服务平台引入物模型来统一不同场景物联网终端的数据标准,实现对设备数据的统一管理。简化设备接入和应用操作流程,降低开发难度,同时以物模型为基础,解耦设备接入和应用开发;设计统一通用的数据描述方式,降低数据识别、解析、挖掘的难度,解决设备间和应用间数据共享困难的问题。物模型设计从设计原则、抽象定义、描述语言三个层面阐述。
1
设计原则
物模型设计应遵循如下原则:
简单:模型设计独立于网络技术、承载协议,关注设备本身的虚拟化描述,简化设备厂家的理解过程。
普适:尽可能兼容更多厂家的需求,将模型分为公共属性和特定属性,设备可以具有公共的属性,也可以包含设备自定义的特性。并提供分行业的行业模型模板。
可扩展:支持用户自定义的服务,提供数据透传机制,将模型基础能力和行业模板分开定义。
模块化:减少重复资源,将公共的服务抽取出来进行复用,提高利用效率。
易用性:提供更易用的接口,包括可供集成的DSL语言模型描述。
2
抽象定义
按照以上原则,抽象物模型设计物模型由设备、组件和功能组成。其中设备用设备的基础档案信息来描述设备是什么;组件用于描述设备的一项能力,一个设备可以由一个或多个组件(Component)组成,每个组件可以由多个功能组成,组件为可选层次结构;功能分为三类:属性、行为和事件。属性、行为、事件三个维度包含了设备运行时的动态特征、能做什么,以及可以对外提供哪些信息。其中,属性是指设备支持的可读或可设置的参数功能,一般用于描述设备运行时的状态,用户也可通过设置的请求方式来更改设备的运行状态;行为是指设备可被外部调用的能力或方法,可设置输入参数和输出参数;事件是指设备运行时发生的某种需要被外部感知和处理的状态,可包含一个或多个输出参数,设备通过事件上报周期信息或者告警消息。
图1 物模型示例
基于此概念,物模型的抽象模型设计如下:
图2 物模型的抽象模型
tmInfo:设备的描述信息,比如生产厂家、品牌、出厂日期等。
tmComponent:一个设备可以由一个或多个组件(Component)组成,每个组件描述设备的一项能力。每个组件可以由多个功能组成,功能可以细分为行为(Action)、属性(Property)和事件(Event)三种类型。每一个功能都有预定义的标准化结构和描述方式。组件(Component)为可选层次结构。
tmProperty:对应功能类型中的属性类型。
tmAction:对应功能类型中的行为类型。输入和输出参数是属性类型。
tmEvent:对应功能类型中事件类型。输出参数是属性类型。
tmData:用于描述设备数据类型。包括数据的类型、长度、默认值、最大最小值、步长等信息。
以智能灯为例,它的生产厂家、品牌和出厂日期等设备信息由tmInfo定义。智能灯的属性包括灯的颜色、亮度、位置、开关等,行为包括设定时长等,事件包括告警、信息和故障等。灯的“开关”属性构成“开关功能”,“设定时长”行为构成“定时功能”。物模型将“开关功能”和“定时功能”封装成“定时开关组件”,用户可直接调用“定时开关组件”来实现灯的定时关闭或定时开启。利用IoT提供的不同组件,用户可直接拼合出完整的设备能力,降低了操作复杂度。
图3 智能灯的定时开关组件示意
3
描述语言
物模型属于应用协议之上的语法语义层。其中语法层定义了物模型描述语言的种类,如XML、JSON等;语义层定义了使用描述语言对物模型进行具体描述时需要包含的基本关键字。在物联网服务平台中,由物模型完成对终端设备业务数据的标准格式定义。
图4 物模型在物联网连接框架中的位置
对于物模型描述而言,一般采用更接近自然语言的DSL语言来进行描述。DSL(Domain Specific Language)领域特定语言,是为了解决某一类任务而专门设计的计算机语言,比如业界常用的JSON或XML语言。物模型采用JSON语言作为物模型的描述语言,需要定义抽象模型中各要素命名规范等。
对功能关键字采用单词首字母大写的命名法,且不带任何标点:如“TimerSwitch”。其中属性关键字要使用英文名词或者断言,如“Time”(时间)、“IsOpen”(是否是开启的状态);动作关键词要以英文动词开头,如“GetTemperature”;事件的关键字要使用可以描述代表事件含义的英文单词,如“Error”。命名时应采用描述性的单词作为关键字,以便于理解参数的具体含义。
总结
物模型是将实体设备抽象化建模以后,对设备进行标准的数字化描述。形象来说,物模型为设备间互动提供了“普通话”,这样可以对设备产生的数据进行统一、标准的描述,实现海量数据的识别、解析与共享,深度挖掘数据价值。引入物模型,将对物联网业务带来巨大的价值。一方面,物模型将实体设备在云端数字化为服务或资源,为垂直行业物联网应用开发提供统一的访问接口、开发工具、增值服务,实现业务应用的高效复制。另一方面,物模型统一化、数字化地描述了实体设备是什么、能做什么,将设备和应用解耦,实现信息在设备和平台间的横向流动,消除产业链间的服务壁垒。
作者 | 张淑文
视觉 | 王朋玉
统筹 | 祖德光