【阿里云IoT+YF3300】2.阿里云IoT云端通信Alink协议介绍

简介: 如果单单只有MQTT协议,也许很难支撑起阿里这个IoT大厦。Alink协议的出现,不仅仅是数据从传感端搬到云端,它就如基因图谱,它勾画了一个大厦的骨架,有了它,才有了IoT Studio,才有了大数据分析,才有了后续的一切可能。

如果单单只有MQTT协议,也许很难支撑起阿里这个IoT大厦。Alink协议的出现,不仅仅是数据从传感端搬到云端,它就如基因图谱,它勾画了一个大厦的骨架,有了它,才有了IoT Studio,才有了大数据分析,才有了后续的一切可能。
MQTT从我的角度来说,相当于以前编程思想中的面向过程,而Alink 的出现,则把编程思想由原来的面向过程带到了面向对象的时代。
最早了解Alink协议是在2017年年底,那个时候Alink协议才0.6版,仅有比较核心的功能,并且有些协议描述的,当时平台上还没有支持完善。不过不到一年多的时间,Alink协议越来越完善了,功能也越来越强大了。
最新的Alink协议,在阿里云物联网平台上的帮助页面,有比较详细的描述:https://help.aliyun.com/document_detail/90459.html?spm=a2c4g.11186623.6.660.4b969bb89pkGOd
为了便于初次接触Alink协议的人理解,我这里还是简要做一些说明。
图片1.png

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

欢迎大家扫码进群领取物联网最新资料以及获取一手直播资讯。

image.png

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
5月前
|
消息中间件 弹性计算 物联网
【阿里云弹性计算】阿里云ECS在IoT领域的应用:支撑大规模设备连接与数据处理
【5月更文挑战第26天】阿里云ECS是弹性计算服务,支持IoT设备的连接与数据处理。通过MQTT协议实现设备快速接入,配合消息队列处理异构实时数据。ECS可用于部署数据处理工具、应用服务,如智能家居控制系统,通过弹性伸缩适应负载变化。结合阿里云其他服务,ECS为IoT提供完整解决方案,助力企业数字化转型。
72 0
|
传感器 监控 物联网
阿里云IoT HaaS 510:快速实现物联网数据传输的利器
众所周知,物联网(IoT)是近年来日益热门的技术领域之一,它的广泛应用为人们的生活和工作带来了无限可能。在物联网应用中,数据的采集和传输是至关重要的一环。DTU是一种应用于物联网数据传输的终端设备,它可以将各类传感器、数据采集单元等通过串口RS232/485传输到DTU,再由DTU转发到4G网络上传至云端。阿里云IoT HaaS 510是一款开板式DTU产品,能够帮助企业快速搭建物联网平台,并实现数据的采集和传输,那么本文就来简单分享一下。
486 1
阿里云IoT HaaS 510:快速实现物联网数据传输的利器
|
编解码 小程序 JavaScript
阿里云IoT小程序应用开发和组件实践
通过实验,了解阿里云IoT小程序的应用开发的方法,了解其内置的基础组件使用,以及基于Vue.js实现可复用的自定义组件的方法。
429 1
|
运维 安全 物联网
使用阿里云 IoT 安全中心保护智慧遥控器
在物联网领域中,我们的 TO B 智慧设备,在发货之后,出现了不少困扰我们的安全问题,比如会被恶意安装应用,访问非法网站等,增加厂家的运维成本。 同时设备上的一些技术机密也容易被好事之人破解,对厂商构成商业损失,直到我们发现了阿里云物联网的一款安全防护产品 -- IoT 安全中心。它主打的 ID² 和安全运营有效的解决了我们的痛点。
480 3
|
存储 自然语言处理 算法
阿里云推全新IoT解决方案 可帮消费电子应用开发效率提升70%
低算力也可以富应用,阿里云全新云端一体IoT解决方案助消费电子智能升级!
560 0
阿里云推全新IoT解决方案 可帮消费电子应用开发效率提升70%
|
数据采集 机器学习/深度学习 人工智能
|
消息中间件 缓存 运维
阿里云IoT物联网实例视频讲解、场景案例汇总
阿里云IoT物联网实例视频讲解、场景案例汇总
1587 3
|
自然语言处理 算法 物联网
阿里云正式发布「IoT消费电子应用引擎解决方案」,应用开发提效70%
阿里云正式发布「IoT消费电子应用引擎解决方案」,应用开发提效70%
290 0
|
物联网
《阿里云产品手册2022-2023 版》——阿里云IoT
《阿里云产品手册2022-2023 版》——阿里云IoT
338 0