【阿里雲IoT+YF3300】2.阿里雲IoT雲端通訊Alink協議介紹

若是單單隻有MQTT協議,也許很難支撐起阿里這個IoT大廈。Alink協議的出現,不只僅是數據從傳感端搬到雲端,它就如基因圖譜,它勾畫了一個大廈的骨架,有了它,纔有了IoT Studio,纔有了大數據分析,纔有了後續的一切可能。html

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這三者,就是著名的三元組。三元組和實際的一個物理設備一一對應。 萬一現實中出現幾個三元組同樣的設備,那麼後上網的設備,會讓前一個設備下線。同時僅有一個這樣的設備在線。htm

咱們知道了三元組的概念,那麼接下來咱們有兩個名詞須要解釋一下了。對象

第一個就是「一機一密」,顧名思義,就是一個設備(機器)一個祕鑰。也就是一個設備嵌入惟一的三元組信息。產品祕鑰標識產品的類型,設備名稱和設備祕鑰對應具體的一個雲端設備。這樣的模式是安全,每一個設備對應惟一的祕鑰,缺點是,每一個設備必需要預先寫入這惟一的三元組信息,對設備的量產帶來了不方便。

針對量產的設備,爲了便於大量設備生產出來不須要專門一一寫入對應的三元組信息。提出了第二個名詞「一型一密」,同理,顧名思義,一型一密,就是一種產品型號一種祕鑰。這個時候只要是一種產品就只寫入產品祕鑰便可。大量的設備寫入的信息是同樣的,有利於設備的大批量生產。

「一型一密」的設備數據上傳的時候要稍微麻煩一些,設備的名稱必須是相對惟一的,能夠自定義的信息,好比MAC地址或者MCU的ID號之類,把這個設備名稱上傳到阿里雲IoT平臺,服務端會自動下發設備的祕鑰,這個過程稱之爲「動態註冊」,動態註冊其實值須要一次,能夠把獲取的信息進行保存,下次上電就不須要動態註冊了。最後設備湊齊三元組信息,而後進行正常的登陸便可。

第二個比較重要的概念是「透明傳輸」。爲何把「透明傳輸」做爲第二個比較重要的概念呢,其實將來輕量級的設備或者其餘異構設備,很難說一上來就直接支持Alink協議的。透明傳輸+雲端腳本共同構成了一個橋,完成了到Alink協議的嬗變。好處是把硬件層面的問題轉換爲雲端腳本的問題,此外就是透明傳輸大都是二進制協議,通訊的數據量也相對少了,通訊比較快捷,也省流量了。

第三個概念就是「屬性、事件和服務」,其實這是三個概念,不過咱們這裏一塊兒說了,後續的文章會分別進行詳細的闡述。屬性、事件和服務,徹底對應了「類」的屬性、事件和方法的概念。

屬性有上傳和下發,設備能夠把設備中採集的各類傳感器數據上傳到雲端IoT平臺,也能夠在IoT平臺去操做一些屬性,好比一些繼電器屬性,能夠遠程控制繼電器的閉和開。

事件相對簡單,能夠自定義各類類型,從設備中根據必要的條件進行上傳,好比設備電量不夠了,或者其餘報警類信息等等。

服務,其實對應了一系列方法,有入參(也就是輸入的若干參數),也有出參(返回的若干參數),這個服務遠程下發到設備後,設備執行對應的方法(能夠根據參數進行執行),執行完畢後,能夠返回必要的數據。

此外須要瞭解的一個概念是「同步」和「異步」,配置服務的時候,能夠配置服務的操做模式是「同步」仍是「異步」。

想體驗阿里雲IoT平臺的網友,能夠單擊以下連接:

https://dev.iot.aliyun.com/sale?source=deveco_partner_yefan

相關文章
相關標籤/搜索