如果单单只有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

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

  1. 怎么通过MQTT查看数据是否上云端_干货 | 设备快速上云,轻松搞定设备与云端通信...

    本文主要讲解如何使用京东云物联网引擎产品,快速创建产品及设备,并通过SDK将设备安全地连接至云端,实现设备的数据上报与订阅,让刚接触该产品的用户能够对京东云物联网平台有个初步的认识. 目前京东云 Io ...

  2. 云辅助隐私集合求交(Server-Aided PSI)协议介绍

    背景 隐私集合求交(Private Set Intersection,PSI)是安全多方计算的一个特定问题,允许参与方输入私有集合,共同计算私有集合交集且不泄露除交集以外的任何信息. 隐私集合求交基数 ...

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

    2013年8月,"轻应用"概念提出,但是仅仅活跃四年随后淡出 ,直到2017年1月9号借助微信小程序成功续命.一时间,以微信小程序和支付宝小程序为代表的轻应用解决方案迅速贯穿多个环 ...

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

    "你好天猫精灵","主人有什么吩咐","打开灯","好的,灯已打开".对于这样的对话应该大多数人都很熟悉,这就是智能家居 ...

  5. 【阿里云IoT+YF3300】14.阿里IoT Studio打造手机端APP

    在上一篇<13.阿里云IoT Studio WEB监控界面构建>中,我们介绍了用阿里云IoT Studio(原Link Develop)可视化构建WEB界面程序.本篇文章将介绍用阿里云Io ...

  6. 【云周刊】第139期:阿里年会黑科技全揭秘:IoT手环、人脸识别验票、大屏弹幕互动等“十八般武艺”轮番上阵...

    摘要: 阿里年会黑科技全揭秘:IoT手环.人脸识别验票.大屏弹幕互动等"十八般武艺"轮番上阵,2017上半年无监督特征学习研究成果汇总,CDN最全学习教程,量子计算会带来什么样的革 ...

  7. 阿里云应用实战-IoT工业数据上云优化实践

    前言 工业互联网技术,是物联网技术.云边协同.数据库.实时计算等领域的综合应用场景.本文会从工程实践角度,讲述智能制造数字化赋能转型的角度,并结合智能制造转型应用案例,端到端地讲述阿里云IoT对工业上 ...

  8. 【2020年中总结】一篇文章汇集国内各大IoT云平台生态,阿里物联网/小米平台/腾讯平台/京东小京鱼平台,总有一个适合你;

    文章目录 前言 阿里云IoT生态思维导图: 腾讯硬件生态思维导图: 一 .阿里云IoT生态 1.1 阿里云物联网平台: 1.2 阿里物联网生活平台: 两者的区别: 阿里生活平台产品优势 1.3 天猫精 ...

  9. 微信小程序连接阿里云物联网平台操控设备(IOT)一

    文章导航: 微信小程序连接阿里云物联网平台操控设备(IOT)一 设备上云 微信小程序连接阿里云物联网平台操控设备(IOT)二 微信小程序开发(一) 微信小程序连接阿里云物联网平台操控设备(IOT)三 ...

最新文章

  1. 部署exchange邮件系统的边缘服务器
  2. node-OSDomainNetPath
  3. app inventer与java不同,App Inventor内置块
  4. 在页面中给flash加链接
  5. 如何防止用户重复提交数据
  6. C#_串口通信_SerialPort_一个最基础的串口程序
  7. DynamipsGUI小凡模拟器VPCS的DHCP功能
  8. JAVA博客和书籍推荐
  9. java iplimage 头文件_在javacv中将IplImage转换为Mat
  10. Laravel 下使用 FFmpeg 处理多媒体文件
  11. Switch函数的使用
  12. 数字人正走进现实!AI大脑+高颜值
  13. [CTF]Dino安全小组第三次内部赛“remix_欧皇的游戏2.0”Writeup
  14. python剪刀石头布_python练习案例--剪刀石头布
  15. 陆源:阿贝尔对椭圆函数论的贡献[附椭圆函数、模形式(g_2,g_3)、模函数的C++程序计算]
  16. Unity 如何写一个足球运动员AI(一)
  17. CAS操作实际上包含了哪两个步骤?
  18. FIR 线性相位系统 最小相位系统 滤波器延迟
  19. (1)网站搭建BT面板的安装步骤
  20. java ActionListener 接口如何判断触发事件来源。getSource()和 getActionCommand()

热门文章

  1. z-blog建立博客网站SEO优化细节教程
  2. 【java毕业设计】基于javaEE+SSM+MySql的个人博客系统设计与实现(毕业论文+程序源码)——个人博客系统
  3. 软件下载传送门(个人习惯自用记录)
  4. Cesium 拾取 API 完全总结
  5. 微信爬取过程中参数分析
  6. Unity --- 导航网格 与 导航的使用
  7. android 日志打印内容完全相同,Log的chatty机制,identical 391 lines
  8. 三菱je-a系列伺服支持modbusrtu 协议吗_你了解吗?全新正品英飞凌模块全新现货...
  9. mysql 并发 链接失败_瞬发大量并发连接 造成MySQL连接不响应的分析
  10. 前端页面局部(全局)刷新方法