時間維度增加了軟件開發人員的應用程序開發的復雜性,這些開發人員正在使用需要隨時間更改的條件語句(規則)構建邏輯。“時間是一種觀察到的現象,人類通過它感知和記錄環境和宇宙的變化。時間被稱為幻覺、維度、流暢的連續體,以及發生在同一物理位置的事件之間分離的表達。”想象一下,您在半夜被狗吠聲吵醒。然后你會聽到廚房里的腳步聲。正當你準備報警時,你想起你的朋友湯姆周末在你家睡覺,可能只是他從廚房拿了些東西。當你聽到熟悉的冰箱門和瓶子叮當作響的聲音時,你現在確定是他,立即回去睡覺。
我們可以從這個短篇故事中看到,事件的時間順序加上它們的聯合可能性,是觸發我們采取進一步行動的原因。在上一節中,我們介紹了形式邏輯,如果世界是一個靜態的地方,它將統治世界。不是。如果我們要在計算機語言中尋找一個安全的避難所,以幫助我們在構建邏輯的同時處理時間維度,就像音符為音樂所做的那樣,我們將一無所獲。為了處理代碼中的時間,我們可以使用的只是“CPU 時鐘”。我們經常使用 UML 狀態/流程圖來幫助我們處理時間,但 UML 是一種用于指定、可視化、構建和記錄軟件系統工件的“語言”。UML 幫助我們交流我們想要構建的內容,它不是構建軟件的框架。隨著時間的推移,開發人員不僅需要了解不同的路徑和這些路徑的結果(如這篇關于形式邏輯和歸納推理的博客文章中所述),而且她還必須掌握這些路徑如何隨時間變化。換句話說,時間增加了復雜性。正確的規則引擎將抽象出復雜性,以便您可以構建有時限的邏輯,但為了做到這一點,它應該支持以下內容:
1.處理過去(處理過期或即將過期的信息)
您通常必須使用僅在固定時間段內有效的信息或合并不完全同步的數據流。這在互聯家庭、互聯建筑或工業 4.0 應用中非常重要。以下是物聯網的幾個具體示例:
如果客廳有運動,然后臥室有運動,那么(……)
如果客廳里有動靜,但接下來的 5 分鐘內臥室里沒有動靜,那么(……)
僅當來自兩個不同傳感器的溫度和濕度數據相隔不超過 10 秒時才應用此規則
檢查機器的狀態是否在兩次連續測量之間(以及在一個窗口內)發生了變化
2.處理現在(結合異步和同步信息)
您經常需要在執行規則時將異步數據流(流式 IoT 設備數據)與同步信息(輪詢云服務 API 端點)結合起來。
一個簡單的用戶需求,例如:“當冷凍室溫度高于 4 度時發送 SMS 警報”轉化為這條規則:“當冷凍室溫度高于 4 度時,檢查資產數據庫(通過 API)以找到冰箱所在的倉庫。然后檢查該位置的天氣(以驗證外面是否不太熱)。然后在 CRM 數據庫中創建一張票,然后將 SMS 發送給操作冷凍機所在大樓的人員”。
3.應對未來(預測和異常檢測的預測)
異常檢測通常來自時間序列數據,通常以兩種不同的方式表述:
查找異常值(高于或低于平均值/滾動平均值的值)或查找標準偏差高于與預期值差異太大的預期值數據點的時間窗口——這些數據點主要是統計得出的。在這種情況下,異常檢測和預測依賴于規則引擎為觀察到的測量找到一個好的“擬合算法”的能力。
深圳市圖揚科技有限公司
專注于藍牙音箱、藍牙耳機、車載應用、智能家居、IoT物聯等市場領域方案開發
擁有強大的技術團隊圍繞MCU微控制器、音頻解碼SoC、藍牙音頻數傳BLE及各類微電子傳感器的技術做相應的產品方案設計及研發
電話:+0755-21003695/21003965
網址:www.baolong886.com
郵箱:tome@tome-sz.com/hr@tome-sz.com(簡歷投寄)