阿里云物联网平台入门训练营:课时2:IoT物模型接入价值与实践(一)
课时2:IoT物模型接入价值与实践(一)
内容介绍
一、内容简要
二、物模型概述
三、简单设备接入实践
四、设备运行和数据应用
五、接入实践
六、资料附件
一、内容简要
今天讲的主题是设备物模型的接入价值和接入实践,我是设备管理平台的技术翱翔。首先会讲一下物模型的概述,大概讲两部分,一个是物模型的定义,包括物模型的发展的演进过程,希望大家对物模型有一个大概了解。后边会针对物模型不同的功能,再进行细致化的接入步骤的介绍,整体的数据大概就是这样。
二、物模型概述
所以首先在讲物模型之前,还是需要介绍一下什么是物模型,物模型的价值是什么。在开始成立物联网平台的时候,只是负责当时做的初级功能,还只是负责设备的一些接入。
主要是面向设备端,面向的一些用客户群体或用户群体,一些硬件的开发者。硬件开发者在接入的过程中,他需要定义不同的数据格式。因为它要适配不同的数据协议,设备不同,有可能数据格式或数据协议都不同,所以主要是面向这种硬件开发者。但随着这种物联网发展了之后,物联网平台上使用的客户越来越多。在北向,以物联网平台为中界线,南边设备的南向,上边叫设备的物联网平台的北向。有一些软件的开发者慢慢接入进来,软件的开发者需要基于硬件开发者提供的一些数据格式,包括接口来进行开发。所以这样开发的过程中,大家在物联网平台初期,物模型没有出来的时候,这种硬件开发跟软件开发的耦合度就非常高。这时候物模型就应运而生,主要解决的是在设备端对相同的设备提供一种标准的数据格式,统一这种数据规范。
在SDK里边有包装这种统一标准的数据协议,来简化对硬件开发者的一些上云的步骤。然后在南线端会提供一些通用的API,基于模型通用的API来实现北向应用的一些开发。所以物模型主要的目的还是标准化这种数据规范,为设备上云和应用的开发提高效率。所以物模型的定义是物理实体在云端的数字化的一个模型,而现在为了让它更加抽象,从属性、事件、服务三个维度来描述物理实体的一个功能,这是物模型的定义,这是讲物模型的演进过程和趋势。实际想说一下,这也是物模型研发的主要目标,希望增加物模型的描述能力,来提升建模的效率,从而覆盖更广的行业场景。
首先在物模型初期,主要是接入的设备,主要是这种生活智能家居的设备。它的设备比较简单,它的接入的方式主要是希望能更快的接入到云。然后接入云了之后,在北向提供一些应用来对设备进行控制。所以在对于这种简单的设备,在2017年左右,提出了物模型概念,并形成了这种标准化的品类。为这种简单的设备也定义了a link协议,包括SDK的封装,支持简单设备的快速上云。所以物模型的初期限制相对会比较多一点。
比方功能定义的数量只支持256个。上云的数据必须要强按照物模型的定义,才会把数据存储下来。随着这种数字化的推进,越覆盖到更多的行业之后,有一些大型的设备希望进入到物联网平台里面来。把这种大型的设备,称之为这种的复杂的设备,复杂的设备它有一个特征,就是它需要上报的属性或者是功能就特别复杂,有可能有的设备有属性达到1000多个。对于简单设备设计的物模型的规范,可能就不符合大型的一些设备了。所以这个阶段就提出了一些功能模块功能,可以通过扩展功能模块来更好的去描述大型的设备。实际提供功能模块了之后,更符合实际对物理世界的描述设备的能力。比如一个大型的机械,它有可能实际过程中分成不同的模块,通过模块来扩展它的功能定义的个数。
同时为了简化大型设备接入的过程,有AIT的设备认证中心可以把一些通用的上云配置沉淀到设备中心之中,只要通过他的信code拷贝一下,就可以把上云的配置都拷贝过来。同时提供这种还有一个能力,就是针对这种大型设备,它需要有提升上云的效率。昨天大家有听过子凡宣讲的话就会知道在上云通道会有一些控制,上云通道它有可能只支持256K的通道容量带宽,为了支持这种复杂设备的上云,在通道侧支持了这种数据的聚合压缩,可以支持到这种万级属性的并发写入上云。刚刚也讲到,可以通过扩展模块来扩展这种表达大型设备的能力,所以可以支持到这种万级属性的一个定义。到了最近两年,物模型数字化覆盖的场景更加广泛。有些客户提出来希望用模型来描述复杂的业务场景,这也是当前正在做的功能,它计划八月份要上线的,这就是数字孪生的能力。这个地方主要是基于在大型设物理设备之上,是希望在复杂场景里边来描述这种设备的关系结构。不同设备节点之间的属性的计算规则,通过配置不同的规则,出现数据的聚合计算。所以是在描述完这种复杂设备之后,再提供北向的批量控制设备的能力,这是现在正在做的一个产品。计划现在在压测阶段,等上线了之后,每个孪生的实例可以支持到万级的设备节点,同时每个实例之内可以配置多种计算的规则,多种的内置函数来支撑这种配置不同规则的能力,可以支持节点数据的递归运算。等上线了之后大家可以试用一下。有什么问题都可以及时反馈到,我们再根据大家的反馈对现有的能力进行迭代升级,这是物模型的演进趋势。
本次PPT 的主要包括三部分,一个是简单的设备接入跟复杂设备接入。关于数字孪生的部分在后边在开二期的时候,再给大家进行一些推荐介绍。还有刚刚讲到的一些资料的附录。
三、简单设备接入实践
首先来讲一下简单设备的接入实践。无论是简单设备还是复杂的设备,它的物模型整体研发流程主要是分成下面这几个部分。希望通过配置的方式来简化在物流联网开发的一些编码,然后提升研发的效率,所以整个的研发流程大概分成上边的四个部分。
一个是这种云端的配置,第二阶段云端的配置大家看过物联网平台介绍文档的话,应该对云端的配置都会比较熟悉,云端配置主要包括创建产品、配置物模型跟创建设备。然后在第二阶段,会提供设备开发的调试能力。这也是平台现有的一个能力,主要是提供了不同语言的一个SDK,大家可以集成SDK 之后,SDK内部会封装一些设备上下行的topic。这些方法更方便大家的使用。第三部分是介绍平台在处理数据上来之后的运行规则。第四部分介绍一下现在平台的数据应用方面的一些应用。
首先来看一下这种云端的配置。
第一部分讲到要创建一个云端的配置就是要创建一个产品,这是当前用的比较多的标准的一个流程。创建产品的时候输入的参数也非常简单。只要输入这个产品的名称,这里想特别说明的是,这里有一个品类就是IC的标准数据平台定义的一个标准数据品类。这个品类是物联网平台联合一些合作伙伴,主导成立了一个组织。这个主要是对大家日常用的比较多的标准的物模型进行沉淀,只要选中品类之后,选中对应的品类就会把品类下已定义的物模型直接进入到产品里边来,直接拷贝到你的产品里边来,所以你还可以基于这个品类对你的物模型进行修改。
所以当前这个品类已经覆盖了十个领域,包括智慧城市、智慧生活,还有工业,品类的总数也达到了七百多个。还有一个注意的点,就是数据格式,有一个ICA标准的数据格式,这个也是为了简化物模型开发的过程。所以定义了一些标准的数据格式,这个数据格式主要是接上的数据格式,如果使用不同的协议的话,也可以自定义这种格式。主要配置这种脚本,把数据格式转化成标准的这种a link 数据之后就可以上云进行后边的一些数据处理。
大家有没有注意到这个创建产品后边新增了一个数据校验级别选项。这个选项也是前段时间新增的一个功能,这个选项是针对于一些智慧生活的简单设备,当时是一种强健的逻辑,强键的逻辑是你定义的物模型数据,包括定义一个int 类型,你定义的值必须在它最大最小值之内。有一些客户反馈这些是用户不需要的。所以又提供了一些弱化这种数据校验能力,并且提供了其他的数据增值服务。
所以我们又提供了一些弱件跟免建的能力,弱件是只校验一些功能定义跟数据类型,免建是解决用户无需提前定义物模型直接上云的情况。
云端配置还有一个创建产品的应用方式,也是想跟大家极力推广的。我们又新建了一个产品,这个产品叫做设备认证中心。设备认证中心的主要目的是联合硬件厂商跟解决方案提供商,包括各方面的一些合作伙伴来构建ALT的生态,主要是由合作伙伴来提交它的设备,提交的设备包括了上云的配置信息,包括物模型的定义,数据的脚本、topic定义跟设备的驱动。提交之后内部会进行一个审核,审核之后会发布到ALT设备中心的一个平台里边去。
目前已认证的这个截图数据相对比较晚,应该已认证的设备超过1000家,现在的一些硬件伙伴有一百多个,行业有四个,主要是发布到这里之后,其他对这种硬件设备感兴趣的用户就可以看得到,可以从界面上搜索到,就可以来进行购买。购买的设备如果认证通过,会给它生成一个阿里since code。只要拿到阿里since code之后,就会把它上传的信息拷贝到产品里边去,后边购买的用户只要拿到设备之后,或者类似的设备,只要接入进来就可以达到即插即用的目的。所以这种设备的一些后面的介绍都是基于ALT设备应用中心创建的一个物模型来进行介绍的。
所以这里举的例子是在AIP数据中心搜到的烟感监控器。拿到code输入到这里,就会把产品都创建出来。定义的产品名字是烟感报警器,所以这个报警器就会把无模型,包括topic的信息,还有一些脚本都会拷贝到当前的新的产品里边来。
可以看得到它已经把原来的物模型里边的事件服务都已经拷进来了,大家如果当前的物模型不符合大家要求的话,可以点击上面编辑草稿,进入到编辑台。
编辑了之后就可以对现在导入的物模型进行编辑、新增、修改或删除,都是支持的。
这里想说对于这种弱教育类型,我们只会对数据、标识符,只会确认这种标识符是不是存在,这种数据的类型是不是合法,是不是符合物模型的定义。然后向下边还会创建一些取值范围,取值范围并不是这个调研范围之中。这里还有一个要特别说明的一个点,这也是日常答疑的过程中大家问的比较多的一个问题,就是物模型为了方便区分开发跟运营平台,我们把开发的跟运营平台进行了隔离。所以会在控制台上会看到有一个编辑草稿的功能,实际是编辑草稿了之后,进入编辑草稿修改了物模型定义,它并不会立即生效。它实际是有一个发布的按钮。在它编辑完了整体在提交的时候,它的左下角会有发布的按钮。只有等你发布了,这个物模型才会变形为运行态,才能被线上的已发布的接口进行查询的到。所以物模型实际它区分编辑态和运营态之后,也提供了两套完备的一些接口来支持这种物模型的查询,所以这两套接口是一一对应的。有很多人问的问题是他用type c的接口去发布的结果,就是运行态的接口来查草稿态的物模型的时候,肯定是查不到的。这两个状态是进行隔离的,这个是大家后面需要特别注意的一个点。
云端配置进入第三个阶段,就是创建设备。实际是想提升通过这种配置的方式来简化大家的一些操作,来提升大家的研发效率。所以在创建设备的过程中输入的信息也尽量少一点。所以如果创建单个设备,只选择对应的一个产品,输入设备的名称。如果想对设备进行单独备注的话,可以添加一个备注名,点击创建就可以创建一个设备出来。