天天看點

【阿裡雲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協定的人了解,我這裡還是簡要做一些說明。

【阿裡雲IoT+YF3300】2.阿裡雲IoT雲端通信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協定介紹

繼續閱讀