設計IoT應用程序就像蓋房子一樣:組織需要強大的基礎來支持應用程序的變化。對于物聯(lián)網(wǎng),該基礎是流架構(gòu)。
軟件架構(gòu)師必須遵循一個藍圖,以確保他們在考慮沿IoT數(shù)據(jù)路徑的組件時不會失去對整體流程的跟蹤。物聯(lián)網(wǎng)流應用程序?qū)崟r處理數(shù)據(jù),以獲取見解,以用于日志分析,過程控制和物料處理應用程序等用途,其中事件處理對于確保工廠有效運行至關重要。這些應用程序的特征是不受控制的消息流(事件流),這些消息流描述了大多數(shù)IoT。
為了應對IoT流架構(gòu)所帶來的挑戰(zhàn),軟件架構(gòu)師必須首先了解IoT數(shù)據(jù)流是什么:這是事件處理流程,其中一組源會生成事件。來源對處理延遲很敏感,并且在技術(shù)和地理位置上也各不相同。物聯(lián)網(wǎng)流架構(gòu)由五個組件組成。
1.事件接收者
物聯(lián)網(wǎng)流傳輸架構(gòu)始于事件接收器,其中物聯(lián)網(wǎng)傳感器發(fā)送事件。事件接收器以流的形式獲取各種數(shù)據(jù)格式,并將其轉(zhuǎn)換為單層組件可以處理的標準結(jié)構(gòu)。如果事件不包含其自己的時間戳,則事件接收器將標記該事件。
事件接收器是一個層,而不是單個組件。它可以容納新設備和具有陳舊數(shù)據(jù)結(jié)構(gòu)的舊設備,而這些數(shù)據(jù)結(jié)構(gòu)需要廣泛使用的支持。IoT流體系結(jié)構(gòu)通常為每個來源集合都配備事件接收器,并且對其進行了自定義以支持所服務的來源社區(qū)的事件格式。
2.本地控制器
有時,軟件架構(gòu)師會將事件控制器與本地控制器結(jié)合在一起。許多流式IoT事件需要事件源和控制現(xiàn)實世界過程的IoT設備之間的閉合控制回路,例如打開燈或打開大門。本地控制器可以在流處理的后期放寬對實時操作的延遲限制。
3.事件分類器和序列化器
事件分類器和序列化器根據(jù)需要對事件進行盡可能詳細的分類,以為事件分配處理優(yōu)先級并沿著正確的處理路徑移動它們。基于標準化事件數(shù)據(jù)模型添加到每個事件的數(shù)據(jù)結(jié)構(gòu)中的分類將在整個流程的其余部分跟蹤該事件。
序列化片段將多個事件流的集合處理到單個上下文流中以進行處理。當事件來自多個本地域時,序列化是必不可少的,但必須跨域關聯(lián)才能進行正確處理。如果應用程序不需要跨域處理,則可能不需要序列化。例如,如果每個本地域僅創(chuàng)建事務記錄以進行歷史分析,則應用程序不使用序列化。
一些物聯(lián)網(wǎng)部署將記錄或排隊此步驟的結(jié)果,以供以后的步驟使用。當數(shù)據(jù)需要進一步的實時處理時,此步驟將基于分類啟動流程工作流程,然后繼續(xù)進行IoT流架構(gòu)中的下一步。
4.事件關聯(lián)和交易
事件關聯(lián)和事務處理步驟將事件信號轉(zhuǎn)換為可操作的消息,稱為提取,轉(zhuǎn)換和加載過程。消息具有三個目的地:
他們以流的形式轉(zhuǎn)到另一個流程工作流。
可以將它們格式化為事務,并輸入到組織已使用的事務處理舊版應用程序中。
它們可以存儲在數(shù)據(jù)庫中,以便以后進行分析和處理。
單個相關事件可以到達任何或所有目的地。組織可能需要實時性能分析,重點是性能,例如
NoSQL。
5.事件后處理和分析
事件后處理和分析步驟支持不需要實時處理和分析的所有應用程序。某些物聯(lián)網(wǎng)應用程序不涉及控制環(huán)路的任何擴展,除了對本地事件進行本地響應(例如打開門)外。其他應用程序至少需要事件記錄。有些要求對事件及其相關動作進行后處理。這些步驟和分析工具擴展了傳統(tǒng)的IT應用程序和數(shù)據(jù)庫,而不是事件處理。
-
物聯(lián)網(wǎng)
+關注
關注
2900文章
44062瀏覽量
370245 -
IOT
+關注
關注
186文章
4161瀏覽量
195976
發(fā)布評論請先 登錄
相關推薦
評論