隨筆-188  評論-968  文章-0 

【阿里云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

posted on 2019-06-17 11:50 葉帆 閱讀(...) 評論(...) 編輯 收藏

四川金7乐历史开奖号码查询