摘要:本文將從設備聯動的觸發條件和執行動做,以及數據轉發的觸發事件和轉發目標兩大部分,具體闡述規則引擎的原理。
規則引擎就是指用戶在華爲雲平臺對接入的設備設定相應的規則,而後在條件知足響應的規則後,平臺便會觸發的動做來知足用戶需求。規則引擎包含了設備聯動和數據轉發兩個部分。html
設備聯動是經過條件觸發,基於預設的規則,引起多設備的協同反應,實現設備聯動、智能控制。例如,當執行動做爲「發送通知」時,物聯網平臺對接華爲雲的消息通知服務SMN,進行主題消息的設置和下發。segmentfault
要想觸發一個規則動做,就必須首先要有個觸發條件,在華爲雲設備聯動的規則有匹配設備觸發、指定設備觸發、定時觸發三個部分。緩存
指定設備觸發:對使用相同產品模型的設備進行條件設置。服務器
指定設備出發:對指定設備進行條件設置。運維
定時觸發:能夠設置規則觸發的時間點。值得注意的是當指定的觸發條件選擇「定時觸發」,則執行動做中不能設置爲「發送通知」、「上報告警」、「恢復告警」的動做。spa
當擁有一個觸發條件的時候,一定會有一個與之對應的執行動做,執行動做可分爲下發命令、發送通知、上報告警、恢復告警。指針
下發命令:下發命令時需指定要執行的設備,對服務的執行命令參數進行從新配置下發給設備。htm
發送通知:發送通知須要您受權當前設備接入服務(IoTDA) 訪問全部區域的消息通知服務(SMN) 的權限。即對接華爲雲的消息通知服務SMN,進行主題消息的設置和下發。blog
上報告警:定義告警級別、告警名稱、告警內容等。當知足觸發設置的條件後,產生的告警將統一上報到應用運維管理服務(AOM)管理界面。隊列
恢復告警:定義告警級別、告警名稱、告警內容等,當知足觸發設置的條件後,產生的告警將統一上報到應用運維管理服務(AOM)管理界面。
設備接入IOTDA能與華爲雲上的其餘服務實現無縫對接,就是藉助於規則引擎中的數據轉發來實現的。當知足數據轉發的觸發條件時,iotDA便能根據所設定的觸發事件將數據轉發到其餘服務或是推送給應用。例如DIS、OBS等。
在設備接入IOTDA與其餘服務對接,首先須要確認須要轉發的事件,觸發事件主要有設備的添加更新或刪除、設備屬性的上報、設備消息狀態的變動、設備狀態變動、批量任務變動。
設備添加更新與刪除:是指新增一個設備、刪除、更新一個設備時觸發規則引擎,而後將數據轉發到所設定的轉發目標服務。值得注意的是設備更新指的是設備的一些基本信息,如設備名稱、描述、版本信息等,而是否是所屬服務的屬性。
設備屬性上報:是指當設備上報其屬性時觸發規則經過設定的轉發目標將其轉發到其餘的華爲雲服務或是推送給應用。
設備消息上報:是指當設備上報其消息時觸發規則經過設定的轉發目標將其轉發到其餘的華爲雲服務或是推送給應用。
設備消息狀態變動:是指當設備消息狀態發生變動時觸發規則經過設定的轉發目標將其轉發到其餘的華爲雲服務或是推送給應用。消息的狀態分爲如下四種:PENDING,DELIVERED,FAILED和TIMEOUT,PENDING指設備不在線,消息被緩存起來,等設備上線以後下發: DELIVERED指消息發送成功;FAILED消息發送失敗;TIMEOUT指消息在平臺默認時間內(1天)尚未下發送給設備,則平臺會將消息設置爲超時,狀態爲TIMEOUT。
設備狀態變動:是指當設備的狀態發生變動時觸發規則經過設定的轉發目標將其轉發到其餘的華爲雲服務或是推送給應用。設備的狀態分爲如下四種:未激活,在線、離線、異常。
設備批量任務變動:是指針對任務類型爲固件升級或是軟件升級的任務狀態發生變動時觸發規則經過設定的轉發目標將其轉發到其餘的華爲雲服務或是推送給應用。設備的批量任務狀態分爲如下六種:任務正在等待被執行、任務正在被執行、任務成功、任務部分紅功、任務失敗、任務被中止。
在咱們對觸發事件設置完成以後,就會設置其轉發的目標。轉發目標能夠是華爲雲上的其餘服務,也能夠直接是經過http推送的方式推送給第三方應用又或者是AMQP消息隊列.
規則引擎的黑名單是指:當觸發規則引擎時,根據觸發事件將數據推送給應用,可是因爲應用服務器問題推送失敗,而且連續推送十次失敗,這時這個應用地址便會被平臺加入到黑名單,再也不進行推送,當三十秒事後,這時平臺將會放開黑名單名單一次,此時當條件知足時再去推送,若是成功則成功,若是即又連續十次失敗,便又會加入黑名單。如此反覆。
根據上述,其實規則引擎的黑名單是針對那些條件觸發頻繁、推送頻繁的狀況。
本文分享自華爲雲社區《規則引擎》,原文做者: 華爲IoT雲服務 。