
規則引擎是華為雲物聯網平台提供的一種能力,用戶對接入平台的設備設定相應的規則,在條件滿足所設定的規則后,平台會觸發相應的動作來滿足用戶需求。規則引擎包含數據轉發和設備聯動兩種類型。
-
數據轉發規則:物聯網平台支持將設備上報的數據(和設備信息)轉發至其他雲服務,包括數據接入服務DIS、對象存儲服務OBS、企業集成平台ROMA等,並支持對轉發的數據進行過濾。
-
設備聯動規則:設備聯動規則是指當設備行為(即設備上報的數據中的某個值)或者系統時間滿足了規則設定的條件時,就會觸發規則設定的動作,如觸發告警、發送消息和下發命令給設備。
面對規則引擎的這么多能力,我們該如何使用它們?接下來就讓本文教你8招,帶你玩轉規則引擎。
第一招 數據轉發至OBS長期存儲
對於設備上報的數據,設備接入服務只保存最新的數據,設備管理服務(創建應用時開啟了存儲數據能力)保存7天的歷史數據。如果用戶希望長期保存設備歷史數據,就需要將設備上報的數據及時轉發至其他地方保存。
此時,就輪到規則引擎出場了。數據轉發規則支持將設備上報的數據轉發至對象存儲服務OBS,實現設備數據持久存儲。OBS是一個基於對象的海量存儲服務,為客戶提供海量、安全、高可靠、低成本的數據存儲能力,適用於對設備上報數據進行歸檔和備份存儲。
在OBS中,基本的概念是桶和對象:桶是OBS中存儲對象的容器,每個桶都有自己的存儲類別、訪問權限、所屬區域等屬性,用戶在互聯網上通過桶的訪問域名來定位桶。對象是OBS中數據存儲的基本單位,一個對象實際是一個文件的數據與其相關屬性信息的集合體,包括Key(文件名稱)、Metadata(元數據,由OBS自動生成)、Data(文件數據)三部分。
規則引擎轉發設備上報數據到OBS時,每條數據都會作為一個對象被保存到用戶創建的桶中。若需要用桶中讀取數據,OBS也提供了控制台、SDK、API、客戶端工具等多種方法,是不是很方便?
第二招 數據經由DIS轉發至第三方應用
很多物聯網企業都會自己開發物聯網應用管理設備,那么,物聯網應用如何從物聯網平台實時獲取設備上報的數據?華為物聯網平台提供了兩種方案。
方案一是使用設備管理服務的訂閱推送功能。這個方案是由第三方應用調用物聯網平台的接口進行訂閱,然后設備上報數據后物聯網平台主動推送至第三方應用。這個方案方便快捷,且支持推送的數據不止設備上報的數據,還包括設備注冊通知、設備狀態變化通知等;但這個方案也有一些局限性:第三方應用所在服務器必須綁定一個公網IP用於接收推送,物聯網平台默認只提供較弱(10TPS)的推送能力,且不支持過濾數據。
方案二則是使用規則引擎,將設備上報數據轉發到數據接入服務DIS,再由第三方應用從DIS獲取數據。DIS為處理或分析流數據的第三方應用構建數據流管道,實現數據高效采集、傳輸、分發。
在DIS中,數據流管道被稱為通道,是用戶創建的邏輯單位,用以區分不同用戶實時數據的集合。和使用OBS服務時同樣,我們需要先創建一個通道,然后在物聯網平台創建數據轉發規則時指定該通道,設備上報的數據就會被物聯網平台轉發至該通道內。然后,第三方應用通過集成DIS的SDK或直接調用DIS的API,主動獲取數據。創建規則時,我們還可以指定過濾條件,例如指定某個屬性的值必須大於0才轉發該條數據,提前過濾無效數據。
該方案雖然僅支持轉發設備上報的數據(和設備信息),但無需公網IP,支持數據過濾,並可以根據數據流速創建不同規格的數據通道,整體靈活性更高。
第三招 數據實時分析后轉發至第三方應用
有些時候,第三方應用因為性能或業務邏輯等問題,期望獲取的是已經分析處理過的設備上報數據,而不是原始數據。對於這種訴求,我們僅需在第二招上稍微做些改動即可實現。
實時流計算服務CS,是運行在公有雲上的實時流式大數據分析服務,全托管的方式用戶無需感知計算集群,只需聚焦於Stream SQL業務,即時執行作業。CS支持DIS流式數據作為數據源和數據輸出,所以我們需要建立兩個DIS通道,一個通道作為CS的數據源,物聯網平台將數據轉發至該通道后就會被CS取出並處理;另一個通道作為CS的輸出通道,CS會把分析處理完的數據輸出到這個通道中,第三方應用再從該通道中獲取分析后的數據即可。
第四招 數據轉發至大數據平台分析
物聯網解決方案中,作為數據主體的“物”可能數量會非常大,產生的數據已經無法通過傳統的數據處理服務進行處理,如何分析與利用這龐大的物聯網設備數據對物聯網企業來說又是一個新的挑戰。為此,華為雲提供了大數據分析服務(MapReduce服務 MRS)。MRS是一個在華為雲上部署和管理Hadoop系統的服務,一鍵即可部署Hadoop集群。MRS提供租戶完全可控的企業級大數據集群雲服務,輕松運行Hadoop、Spark、HBase、Kafka、Storm等大數據組件,並具備在后續根據業務需要進行定制開發的能力。因此,我們僅需將數據轉發至MRS,然后就可以看MRS大展身手了。於是,又輪到規則引擎出場了。數據轉發規則雖然不支持將數據直接轉發至MRS,但支持將數據轉發至DIS,DIS再將數據轉發至MRS。
在上一招中,我們將數據轉發到DIS后,由第三方應用直接取出。而在這一招中,我們利用了DIS的另一個能力,轉儲任務。DIS支持將通道內的數據通過定時任務的方式轉儲至其他服務,其中就包括MRS。通過規則引擎和DIS,我們就可以將設備上報的數據全自動轉發至MRS,由MRS進行大數據分析。
第五招 數據轉發至ROMA進行集成
對一些企業來說,物聯網設備上報的數據僅僅是他們業務數據的一部分,單純的設備上報數據沒有意義,他們需要將多種數據集成起來,才能發揮數據的真正價值。為了這樣的企業,華為雲提供了應用與數據集成平台 ROMA。ROMA是一個全棧式的應用與數據集成平台,源自華為數字化轉型集成實踐,聚焦應用和數據連接,適配多種企業常見的使用場景。ROMA提供輕量化消息、數據、API、設備等集成能力,簡化企業上雲,支持雲上雲下、跨區域集成,幫助企業實現數字化轉型。物聯網平台規則引擎支持將數據轉發至ROMA的消息集成(Message Queue Service,簡稱MQS)組件,為企業提供安全、標准化的消息通道。
ROMA的MQS組件是基於kafka的消息中間件,所以物聯網平台轉發數據至ROMA,本質上來說也是講數據轉發到一個數據通道中,但ROMA作為集成平台,提供了多種應用和數據集成組件,完成數據的統一化和標准化,方便用戶統一獲取后進一步利用。
第六招 根據上報數據自動控制設備行為
現在的很多設備都能做到自動化管理,例如照明燈根據環境光強自動開關,高發熱量的設備根據自身溫度自動關機等。這些自動化邏輯可以直接燒錄到設備中,也可以通過雲端設置和執行。若將邏輯直接燒錄到設備中,優點是設備反應快,但缺點是需要每個設備單獨燒錄,而且如果邏輯有變化必須一個個設備重新燒錄,非常難以管理。若將邏輯設置到雲端,雖然設備的反應速度會有所降低,但邏輯只需雲端維護,修改起來也非常方便,因此,我們建議對反應速度要求不是特別高的自動化邏輯都設置到雲端。規則引擎中的設備聯動服務提供圖形化的操作界面,通過簡單的操作即可實現設備的自動化邏輯,廠商無需再自行開發第三方應用。
以上文中的照明燈根據環境光強自動開關為例,我們可以設置兩條規則,一條是當設備上報數據中的環境光強小於一個閾值(如50)時,物聯網平台自動給設備下發開燈命令。另一條則是當設備上報數據中的環境光強大於一個閾值(如500)時,物聯網平台自動給設備下發關燈命令。
通過這兩條規則,我們可以實現當設備檢測到的環境光強小於50時自動開燈,環境光強大於500時自動關燈,達到智能照明的目的。
第七招 根據上報數據觸發告警
物聯網平台支持告警能力,設備觸發告警條件后會在物聯網平台上顯示一條告警,用戶查看告警可以得知告警級別,告警來源(指是哪個設備產生的告警),告警內容等,方便用戶更快定位問題設備,及時解決問題。
而這個告警,也是通過設備聯動規則產生的。設備聯動規則支持設備上報的數據滿足條件時,在物聯網平台上顯示一條告警,告警的信息(類型、級別、名稱、內容)均可自定義。
通過這種方式,用戶可以自定義業務所需的告警,實現設備異常及時定位,業務管理更高效。
第八招 根據上報數據發送短信和郵件
很多物聯網設備24小時運行,設備管理者並不需要知道設備每一刻的狀態,只需要設備在上報某些特定狀態時能通知到管理者。例如,當設備電量低時,自動發送郵件和短信通知管理員。這個功能我們同樣可以使用設備聯動規則實現,因為華為雲物聯網平台規則引擎對接了消息通知服務SMN。
消息通知服務SMN是可靠的、可擴展的、海量的消息處理服務。它可以依據用戶的需求主動推送通知消息,最終用戶可以通過短信、電子郵件、應用等方式接收。SMN的主題訂閱模型,旨在提供一對多的消息訂閱以及通知功能,能夠實現一站式集成多種推送通知方式。在SMN中有兩種類型的客戶端,即發布者和訂閱者。發布者通過主題發布消息,由SMN將消息推送給主題訂閱者,訂閱者可以為郵件地址、手機號碼、消息隊列、函數、函數工作流及URL地址。
因此通過我們僅需先在SMN上創建好主題,並使用手機號和郵箱訂閱這個主題,物聯網平台規則被觸發后就會自動發布消息至主題,通過SMN服務給訂閱的郵箱和手機發送郵件和短信了,實現無需值守,特殊情況直接通知到人。
學會以上8招,您就掌握了物聯網平台規則引擎的使用方法。若您希望進一步了解規則引擎,請訪問華為雲設備管理幫助中心,我們提供了詳盡的操作指導文檔。
關於華為物聯網可參加學習免費課程視>>>>>《IoT七天開發訓練營》或聯系華為IoT小助手(微信號:huawei-iot)獲取更多課程。