【摘要】 華為雲物聯網平台提供的規則引擎包括資料轉發和裝置關聯等多種能力,這些能力都要怎麼使用?本文教您8招最常用的用法,帶您玩轉規則引擎。
規則引擎是華為雲物聯網平台提供的一種能力,使用者對接入平台的裝置設定相應的規則,在條件滿足所設定的規則後,平台會觸發相應的動作來滿足使用者需求。規則引擎包含資料轉發和裝置關聯兩種類型。
- 資料轉發規則:物聯網平台支援将裝置上報的資料(和裝置資訊)轉發至其他雲服務,包括資料接入服務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)擷取更多課程。