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

如果单单只有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协议的人理解,我这里还是简要做一些说明。

在官方文档,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

原文地址:https://www.cnblogs.com/yefanqiu/p/11038935.html

时间: 2024-10-10 21:14:19

【阿里云IoT+YF3300】2.阿里云IoT云端通信Alink协议介绍的相关文章

【阿里云IoT+YF3300】3. Alink物模型之属性上传和下发

[名词解释]属性:设备的功能模型之一,一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等.属性支持 GET 和 SET 请求方式.应用系统可发起对属性的读取和设置请求. 在上一篇文章<阿里云IoT云端通信Alink协议介绍>中,我们已经简单介绍了Alink属性相关的知识内容.本篇文章将以实际的设备为例,对该部分内容进行实操.以便于网友对这部分内容有一个更深的认知. 首先我们需要做如下几方面的工作: 1. 需要有一个YF3300硬件设备,YF3300自带1路RS485,1路RS2

【阿里云IoT+YF3300】15.阿里云物联网小程序构建

2013年8月,“轻应用”概念提出,但是仅仅活跃四年随后淡出 ,直到2017年1月9号借助微信小程序成功续命.一时间,以微信小程序和支付宝小程序为代表的轻应用解决方案迅速贯穿多个环节,成为“万物互联”的雏形载体.随着物联网的发展,对数据的获取便捷度要求越来越高,硬件和场景都逐步迈入物联网时代,传统的App已经无法满足发展的需要,毕竟不可能一个场景安装一个App.YF3300,见证物联网+小程序的火花. 一.  云端配置 (1) 登陆阿里云物联网平台. (2) 在设备管理选项中创建产品 示例: (

【阿里云IoT+YF3300】16.云端一体化,天猫精灵操控YF3300

“你好天猫精灵”,“主人有什么吩咐”,“打开灯”,“好的,灯已打开”.对于这样的对话应该大多数人都很熟悉,这就是智能家居的缩影.对于现在市面上层出不穷的智能家居系统,功能越来越繁杂,可是因为开发难度高,大部分人停留在机械式操作的层面.没有自己参与的任何事情对于自身而言都是没有灵魂的.你可曾想过有一天能让自己开发的程序融入到智能家居体系中为你服务呢?YF3300,带你迈出属于自己的智能家居改造第一步. 一.云端配置 (1)在搜索框中输入https://living.aliyun.com/#/,进入

【阿里云IoT+YF3300】4.Alink物模型之事件触发

名词解释:设备的功能模型之一,设备运行时的事件,事件一般包含需要被外部感知和处理的通知信息,可包含多个输出参数.如,某项任务完成的信息,或者设备发生故障或告警时的温度等,事件可以被订阅和推送. 在工控领域,通信的实时性非常重要,所以有所谓的工业以太网(时间敏感网络TSN).5G之所以成为未来物联网的基石,也是因为时延非常低(毫秒级),才能使无人驾驶落地成为可能. 不过在一些典型的物联网领域,其上传数据的频率却没有那么快,比如环境的温湿度,一般都是分钟级别上传.这就带来一个问题,如果上传的间隔比较

广州云栖大会:阿里云携手虎牙,首次落地直播行业边缘节点及云企业网服务

摘要: 阿里云和虎牙直播在直播领域进行了长期的技术合作,特别是在边缘计算节点取得了良好效果,共同建设了边缘节点服务(ENS),落地直播行业"高带宽.高并发.计算密集"的边缘计算节点服务标准. 2018年11月22日,由阿里巴巴集团主办的广东省大数据开发者大会暨2018广东云栖大会在广州正式召开,其中以助力游戏企业畅游全球为主题的游戏云专场也在上午如期举办. 在游戏云专场中,阿里云高级商务专家李知明首先发言:边缘计算节点目前已经是直播行业基础资源供给的重要形态,极大地促进了行业的发展,同

【物联网云端对接-2】通过MQTT协议与阿里云物联网套件进行云端通信

 在<程序员>杂志2017.4刊上,曾写过一篇<微软百度阿里三大物联网平台探析>,上面曾介绍了阿里云物联网套件的一些内容,在写该篇文章的时候,凌霄物联网网关还无法对接到此平台(TLS必须1.1版本以上).但是随着阿里云物联网套件的不断发展,目前设备除了支持HTTPS认证外,也支持MQTT客户端域名直连认证(可以是TCP直连模式,也可以是TLS直联模式). 最近有幸参与了阿里的飞凤物联网平台计划,可以更为深入的去研究阿里云物联网套件,除了用直接编写代码连接云外,也尝试用组态的方式去对

直戳阿里云痛处?大共享云服务平台

如果说从云计算行业角度来看阿里云,那么阿里云目前在国内的根基是无法被轻易震撼.在过去的几年当中,阿里云一直都以地毯式轰炸整个广告行业,可谓 是无所 不用其极.阿里云在最近一年多的时间里表现非凡,后起之秀IaaS项目,大共享以一个无需付费的云平台解决用户问题,并得到了各个商家的高度关注.那么大 共享又有什么能力实现这一目标? 从软件定义上讲,大共享云服务器并不像是只打免费旗号而卖云产品的商家,而是从严格意义上以无成本创业解决用户实际问题.从阿里云提供"0元拥抱云 服务器"再看大共享提供的

【阿里云产品公测】云引擎ACE新手实战基于Wordpress

[阿里云产品公测]云引擎ACE新手实战基于Wordpress 作者:阿里云用户imnpc ACE(Aliyun Cloud Engine) 是一款弹性.分布式的应用托管环境,支持Java.php多种语言环境.帮助开发者快速开发和部署服务端应用程序,并且简化了系统维护工作.搭载了丰富的分布式扩展服务,为应用程序提供强大助力. ACE(Aliyun Cloud Engine)目前最大的优点就是免费,预计以后也会照着SAE JAE等同类服务提供低廉的收费政策. 一般来说我们用于云平台的很多人都是简单安

【阿里云产品公测】云引擎ACE初体验

作者:阿里云用户蓝色之鹰 :RYYjmG5;  来投票支持我把=i2]qj\  序号2. [阿里云产品公测]云引擎ACE初体验:作者:蓝色之鹰 e(OKE7  序号10.[阿里云产品公测]结构化数据服务OTS之JavaSDK初体验:作者:蓝色之鹰 -- IewW  http://bbs.aliyun.com/read/178799.html 分享下我,公测体验! 来投票支持我把 序号2. [阿里云产品公测]云引擎ACE初体验:作者:蓝色之鹰  序号10.[阿里云产品公测]结构化数据服务OTS之J