華為云IoT設備接入服務都有哪些功能?看完給你整的明明白白
設備接入
設備接入服務(IoTDeviceAccess)是華為云的物聯網平臺,提供海量設備連接上云、設備和云端雙向消息通信、批量設備管理、遠程控制和監控、OTA升級、設備聯動規則等能力,并可將設備數據靈活流轉到華為云其他服務,幫助物聯網行業用戶快速完成設備聯網及行業應用集成。基于華為云物聯網平臺的物聯網系統如圖9-6所示,其主要分為幾個部分:終端設備、設備連接、消息通信、設備管理、數據流轉、物聯網應用,以及與華為云的其他服務進行的數據互通和協同。
基于華為云物聯網平臺的物聯網系統
物聯網常用協議
HTTP
HTTP(HyperTextTransferProtocol,超文本傳輸協議)是用于從WWW服務器傳輸超文本到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,使網絡傳輸減少。它不僅保證計算機正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內容首先顯示(如文本先于圖形)等。
HTTP是一個應用層協議,由請求和響應構成,是一個標準的客戶端服務器模型。
同時HTTP是一個無狀態的協議。同一個客戶端的這次請求和上次請求是沒有對應關系,對http服務器來說,它并不知道這兩個請求來自同一個客戶端。為了解決這個問題,Web程序引入了Cookie機制來維護狀態。
并且HTTP是一種同步協議。客戶端需要等待服務器響應。Web瀏覽器具有這樣的要求,但它的代價是犧牲了可伸縮性。在IoT領域,大量設備以及很可能不可靠或高延遲的網絡使得同步通信成為問題。異步消息協議更適合IoT應用程序。傳感器發送讀數,讓網絡確定將其傳送到目標設備和服務的最佳路線和時間。
HTTP是一種有許多標頭和規則的重量級協議。它不適合受限的網絡。
建立過程中三次握手:
HTTP三次握手流程
注解:SYN:同步,Seq:序號,ACK:確認,ack:確認序號。
第一次握手:
當客戶端想與服務器建立連接的時候,會發送一個請求連接的報文,此報文首部中的SYN=1(TCP規定,SYN=1的報文段不能攜帶數據,并且需要消耗一個序號),同時隨機生成初始序列號Seq=X,客戶端進入了SYN-SENT(同步以發送狀態)。
第二次握手:
服務器接收到客戶端發送的連接請求報文后,如果同意連接,則發出確認報文,其中確認報文段中SYN=1,ACK=1,同時隨機初始化一個序列號Seq=Y,確認號ack=X+1,而且服務器也進入
SYN_RCVD(同步接收狀態)。
第三次握手:
客戶端接收到確認報文后,還需要向服務器發出確認報文。確認報文的ACK=1,ack=Y+1,此時,TCP連接建立成功,客戶端進入ESTABLISHED(已建立連接)狀態。
三次握手的重要性:
當客戶端發送第一個請求連接的報文的時候,由于網絡阻塞原因,導致服務端不能及時收到,直到某個時刻才收到請求連接的報文,此時此刻服務器收到的已經是一個失效的報文了,服務器給客戶端發送確認報文,等待客戶端的連接,假設采用的是兩次握手,客戶端不理睬服務器發送的確認報文,而服務器一直等待接收客戶端的請求,這樣導致服務器很多資源浪費,而如果采用三次握手,服務器接收不到客戶端的確認報文,就會斷開與客戶端的連接,因此采用三次握手更為合適。
MQTT
MQTT(MessageQueuingTelemetryTransport,消息隊列遙測傳輸),是IBM開發的一個即時通訊協議。MQTT協議采用訂閱/發布的工作模式,客戶端向服務器訂閱感興趣的信息,服務器把信息推送給訂閱了這類信息的客戶端。
MQTT交互流程
MQTT的特點:
協議簡單,輕量級(消息可以短至兩個字節,對終端的硬件配置要求低,適用于CPU等硬件資源有限的場合,有助于降低終端成本,推動產業發展)。
基于TCP/IP,消息傳遞可靠。
使用長連接,有心跳保活機制,減少重新建鏈開銷。
支持消息實時通知、有豐富的推送內容。
心跳機制不利于設備進入休眠模式,設備比較耗電。
MQTT的特點非常符合無線傳感網、物聯網等領域的要求,目前智慧家庭解決方案主要就是用的MQTT協議。
客戶端(Client):
包括發布者或訂閱者,兩者都是MQTT客戶端,分別負責發布或訂閱。
可以是從微控制器到一個完全成熟的服務器,在設備上運行著MQTT庫并且可以通過任何網絡連接到MQTT代理服務器。
代理服務器(Broker):
是任何發布/訂閱協議的核心,可以處理多達成千上萬的MQTT客戶端的并發連接。
代理服務器主要負責接收所有消息,將消息發送給所有訂閱的客戶端。
一個職責是保持所有持續連接的客戶端的會話,包括訂閱和丟失的消息。
另一個職責是對客戶端的認證和授權。
CoAP
CoAP(ConstrainedApplicationProtocol,受限制的應用協議),專門為資源受限設備(如傳感器節點)和網絡(如NB-IoT,LoRa)而設計。CoAP從HTTP協議發展而來,CoAP協議也是采用請求/響應工作模式,客戶端發起請求,服務器做出響應。為了克服HTTP對于受限環境的劣勢,CoAP既考慮到數據報長度的最優化,又考慮到提供可靠通信。
CoAP交互流程
CoAP特點:
報頭壓縮,報文格式簡單,消息可以很短,最小的CoAP消息只有4個字節。
傳輸層使用UDP協議,減少網絡開銷和支持組播功能。
為了彌補UDP傳輸的不可靠性,CoAP有消息重傳機制。
不支持長連接,沒有心跳,沒有業務時設備不用跟外部發消息。
做業務時,設備可能需要先喚醒,消息實時性不太好。
跟MQTT相比,CoAP不需要保持長連接,不用不停發送心跳消息,更加適合物聯網場景中需要休眠/喚醒機制的設備,設備可以長時間處于休眠模式,節省電量,一塊電池使可以用10年甚至更久,目前智能水表、智能電表、智慧農業、智能停車場等解決方案主要就是用的CoAP協議。
設備管理
設備注冊&接入鑒權
為了保證接入物聯網平臺的設備是安全可信的,需要進行設備注冊和設備接入鑒權操作。設備注冊,指用戶通過控制臺或調用注冊設備API在IoT平臺中注冊設備信息,平臺中存在設備信息后,再接入真實的實體設備,這樣平臺與終端實體設備可以實現連接和通信。
設備接入鑒權,是指IoT平臺對接入平臺的設備進行鑒權認證,用于保障設備接入信息的完整性和安全性、設備與平臺消息傳輸完整性和安全性。
設備注冊&設備接入鑒權
命令下發
設備的產品模型中定義了IoT平臺可向設備下發的命令,平臺向設備下發命令,修改設備的服務屬性,實現對設備的控制。
平臺向設備下發命令包括立即下發和緩存下發兩種情況,如下表所示。
命令下發機制
定義
適用場景
NB-IoT設備
集成Agent LiteSDK設備/原生MQTT設備
立即下發
不管設備是否在線,平臺收到命令后立即下發給設備。如果設備不在線或者設備沒收到命令則下發失敗。支持給本應用的設備和被授予權限的其他應用的設備下發命令。
立即下發適合對命令實時性有要求的場景,如路燈開關燈,燃氣表開關閥。使用立即下發時,命令下發的時機需要由應用服務器來確定。
適用,需將省電模式設置為DRX或eDRX模式,且需要在物聯網平臺與EPC網絡之間建立IPSEC隧道。
適用
緩存下發
物聯網平臺在收到命令后先緩存,等設備上線或者設備上報數據時再下發給設備,如果單個設備存在多條緩存命令,則進行排隊串行下發。支持給本應用的設備和被授予權限的其他應用的設備下發命令。
緩存下發適合對命令實時性要求不高的場景,如配置水表參數,
適用,需將省電模式設置為PSM模式。
不適用
對于立即下發模式,下發的命令直接全部下發給設備;對于緩存下發模式,需等待設備上線或設備上報數據到平臺后,按照串行的方式下發命令給設備,即緩存的命令需要按照緩存的時間逐一向設備進行下發。設備命令整個生命周期的狀態轉換如下圖所示。
設備命令的狀態轉換
設備命令狀態的詳細說明如下表所示。
狀態
說明
等待(PENDING)
NB-IoT設備采用緩存下發命令時,如果設備未上報數據,物聯網平臺會將命令進行緩存,此時任務狀態為“等待”狀態;
NB-IoT設備采用立即下發模式下發命令時,無此狀態;MQTT設備下發命令時,無此狀態。
超期(EXPIRED)
NB-IoT設備采用緩存下發模式下發命令時,如果在設置的超期時間內,物聯網平臺未將命令下發給設備,則狀態變更為“超期”。超期時間會以北向接口中攜帶的expireTime為準,如果未攜帶,默認為48h;
NB-IoT設備采用立即下發模式下發命令時,無此狀態;MQTT設備下發命令時,無此狀態。
取消(CANCELED)
如果在命令下發狀態為“等待”時,用戶人工取消了命令下發任務,則任務狀態變更為“取消”。
已發送(SENT)
NB-IoT設備采用緩存下發模式下發命令時,設備上報數據,物聯網平臺會將緩存的命令發送給設備,此時狀態會由“等待”變更為“已發送”;
NB-IoT設備采用立即下發模式下發命令時,如果設備在線,狀態變更為“已發送”;
MQTT設備下發命令時,如果設備在線,狀態變更為“已發送”。
超時(TIMEOUT)
NB-IoT設備受到命令時,物聯網平臺在180s內未收到設備反饋的收到命令響應,此時狀態會變更為“超時”;
MQTT無此狀態。
已送達(DELIVERED)
物聯網平臺收到設備反饋的已收到下發命令響應后,狀態變更為“已送達”。
執行成功(SUCCESSFUL)
設備在執行完命令后,向物聯網平臺反饋命令執行成功的結果,將狀態變更為“執行成功”。
執行失敗(FAIL)
設備在執行完命令后,向物聯網平臺反饋命令執行失敗的結果,將任務狀態變更為“執行失敗”;
NB-IoT設備采用立即下發模式下發命令時,如果設備離線,狀態變更為“執行失敗”;
MQTT設備下發命令時,如果設備離線,狀態變更為“執行失敗”。
通過命令下發特性,平臺能夠為終端用戶提供遠程控制設備的服務,實現設備連接,也可以實現對設備的批量命令下發等,操作簡單快捷。當用戶需要對設備進行某一操作,而設備并不在可操作范圍內,或者需要操作大批量設備時,可以使用命令下發。
設備聯動規則
規則引擎的使用對象是終端用戶,系統已經預置支持的規則場景,終端用戶通過方便、易理解的友好界面在自有設備下制定自動化規則。
規則可以和設備、應用、告警綁定,當綁定的信息滿足條件時,規則可以自動化執行響應動作。規則引擎定位處理各種事件,利用規則引擎可以完成異常事件的及時通知和快速處理,幫助終端用戶維護設備、監控設備,保證系統業務的及時恢復。閾值超限、范圍超限、位置跟蹤等事件,也可定義為規則引擎輸入條件,并關聯對應的處理動作。
設備聯動的觸發條件及響應動作如下圖所示。
設備聯動規則
設備升級管理
物聯網平臺支持通過OTA(OverTheAir)的方式對終端設備的固件和軟件進行升級。
設備固件升級:固件升級又稱為FOTA(FirmwareOverTheAir),是指用戶可以通過OTA的方式對支持LwM2M協議和CoAP的設備進行固件升級,升級包下載LwM2M協議。
設備軟件升級:軟件升級又稱為SOTA(SoftwareOverTheAir),是指用戶可以通過OTA的方式對支持LwM2M協議和CoAP的設備進行軟件升級,升級包下載協議為PCP。
設備固件&軟件升級
設備批操作
華為云物聯網平臺支持對設備的批量操作,包括批量注冊設備、批量命令下發、批量位置上傳、批量設備配置和批量軟固件升級。
批量位置上傳:當物聯網平臺需要對設備的位置進行批量上傳時,可采用批量位置上傳操作。這里的設備主要指安裝位置相對固定的終端設備,如水表。
批量設備配置:當物聯網平臺需要對設備進行批量配置時,可采用批量設備配置操作。
批量軟固件升級:當物聯網平臺需要對設備的固件或者軟件進行批量升級時,可采用批量軟固件升級操作。
設備批操作向物聯網平臺提供對終端設備統一管理的通道,能提升對終端設備的管理效率,很好地滿足用戶批量管理設備的需求。當用戶接入的設備數量過多,或者需要對全部或某一個群組的設備進行相同的操作時,可以采用設備批操作。批量注冊設備和批量位置上傳時設備數量的上限是30000個,批量命令下發、批量設備配置和批量軟固件升級的設備上限是10000個。
更多學習內容,請關注IoT物聯網社區
添加華為云IoT小助手微信號(hwc-iot),回復“閱讀”獲取更多資訊
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。