在官方文档Alink有一个比较明确的定义:Alink协议是针对物联网开发领域设计的一种数据交换规范,数据格式是JSON,用于设备端和物联网平台的双向通信,更便捷地实现和规范了设备端和物联网平台之间的业务数据交互。
关于Alink协议有几个重要的概念和内容需要熟悉。
第一个最最重要的概念就是“三元组”。我们要是在阿里平台上创建一个物模型,并且把数据上传到对应的实例。我们第一步需要创建一个“产品”。产品包含属性、事件和服务。产品有名称,也有一个叫产品秘钥(ProductKey)的自动生成的字符串。基于这个产品,我们就可以创建若干个设备了。设备有名称(DeviceName)和设备秘钥(DeviceSercert)。产品和设备的关系,类似面向对象编程语言的类和类实例的关系。
其中,ProuductKey、DeviceName和DeviceSecre这三者,就是著名的三元组。三元组和实际的一个物理设备一一对应。万一现实中出现几个三元组一样的设备,那么后上网的设备,会让前一设备下线。同时仅有一个这样的设备 在线。
PS:名词解释
第一个就是“一机一密”,顾名思义,就是一个设备一个秘钥。也就是一个设备嵌入唯一的三元组信息。产品秘钥标识产品的类型,设备名称和设备秘钥对应具体的一个云端设备。这样的模式是安全,生个设备对应唯一的秘钥,缺点是,每个设备必须要预先写入这唯一的三元组信息,对设备的量产带来了不方便。
针对量产的设备,为了便于大量设备生出来不需要专门一一写入对应的三元组信息。提出了第二个名词“一型一密”,同理,一弄一密,就是一咱产品型号一种秘钥一。这个时候只要是一种产品就只写入产品秘钥即可。大量的设备写入的信息是一样的,有利于设备的大批量生产。
“一型一密”的设备数据上传的时候要稍微麻烦一些,设备的名称必须是相对唯一的,可以自定义的信息,比如MAC地址或者MACA的ID号之类,把这个设备名称上传到阿里IoT平台,服务端会自动下发设备的秘钥,这个过程称之为“动态注册”,动态注册其实只需要一次,可以把获取的信息进行何在,下次上电就不需要动态注册了。最后设备凑齐三元组信息,然后进行正常的登录即可。
第二个比较重要的概念是“透明传输”。赤来轻量级的设备或者其他异构设备,很难一上来就直接支持Alink协议。透明传输+云端脚本共同构成了一个桥,完成了到Alink协议的嬗变。好处是把硬件层面的问题转换为云端脚本的问题,此外就是透明传输大都是二进制协议,通信的数据量也相对少了,通信比较快捷,省流量。
第三个概念就是“属性、事件和服务”,其实这是三个概念。
属性有上传和下发,设备可以把设备中采集的各种传感器数据上传到云端IoT平台,也可以在IoT平台去操作一些属性,比如一些继电器属性,可以远程控制继电器的闭和开。事件 相对简单,可以自定义各种类型,从设备中根据必要的条件进行上传,比如设备电量不够了,或者其他报警类信息等。
服务,其实对应了一系列方法,有入参(也就是输入的若干参数),也有出参(返回的若干参数),这个服务远程下发到设备后,设备执行对应的方法(可以根据参数进行执行),执行完毕后,可以返回必要的数据。
此外需要了解的一个概念是“同步”和“异步”,配置服务的 时候,可以配置服务的操作模式是“同步”还是“异步”。
网友评论