第1章 物聯網模式簡介---獨特要求和體系結構原則

物聯網用例的獨特要求

物聯網用例往往在功耗、帶寬、分析等方面具有非常獨特的要求。此外,物聯網實施的固有復雜性(一端的現場設備在計算上受到挑戰,另一端的云容量幾乎無限)迫使架構師做出艱難的架構決策和實施選擇。可用實現技術的多樣性和缺乏完善的標準是額外的挑戰,使體系結構決策變得困難。

本書試圖通過識別可以支持這些用例的架構之間的共性,來緩解與構建物聯網用例相關的一些挑戰。重要的是不要被用例的多樣性所蒙蔽,并認識到多樣性存在于表層和底層。

本書旨在通過展示如何將不同物聯網用例的實現追溯到少數架構模式,彌合當前理解中的這一差距。 在介紹各種物聯網模式之前,值得一提的是,物聯網架構不同于非物聯網架構的獨特期望: 感知事件和驅動命令具有廣泛的延遲預期——從實時到激發和忘記 數據分析結果需要在各種消費設備上報告/可視化/消費——手機、臺式機、平板電腦等。同樣,數據消費者有不同的背景、數據需求和應用程序角色(人物角色)。

人們經常被迫與傳統以及尖端設備和/或外部系統集成——很少有瑣碎的用例具有獨立/獨立的架構。從遺留系統和非遺留系統中提取數據的方式有很大的不同——遺留系統可能會在內部整理數據,然后將其推送到外部端口(文件傳輸),而較新的系統可能會以連續的流(時間序列數據)推送數據。這種可變性是選擇特定物聯網架構模式時的關鍵考慮因素之一。 不同的部署需求—邊緣、內部部署、混合、云等等。 遵守嚴格的監管規定,尤其是在醫療和航空領域。 有人期望立即獲得回報,投資回報率(ROI)、業務成果和新的服務業務模式。 持續創新,產生新的服務或產品(尤其是云供應商),迫使物聯網架構與這些新產品或服務保持持續同步。 缺乏能夠制定端到端物聯網解決方案的熟練架構師——盡管可能有特定技能的人(設備架構師、連接架構師和云架構師);然而,很少有端到端的物聯網架構師。 設備、設備連接、物聯網協議或消息傳輸層沒有通用標準,導致設備管理復雜。 通常,物聯網堆棧不會孤立運行,任何非瑣碎的部署物聯網解決方案都需要與其他外部系統(ERP、AMDB、MES等)集成。即使在這里,也沒有關于如何無縫集成這些系統的標準。外部系統通常比物聯網部署早幾十年,并且在沒有考慮集成需求的情況下進行了大量定制。 從一個角度來看,物聯網實施是一項流程自動化舉措。一般來說,該過程是存在的,但是手動執行的,物聯網有望部分或完全自動化該過程。

這些現有的工作流程沒有記錄在案,并且是流程從業者部落知識的一部分,這給物聯網架構師帶來了挑戰,因為他們對流程和工作流程不清楚。因此,他們面臨著一個兩難的問題,即哪些子流程應該自動化以最大限度地提高ROI——他們必須決定是否滿足于微小的改進(局部優化),并放棄通過考慮全局優化可以積累的好處。

設備生命周期管理在有氧醫療設備等領域是一個挑戰,因為它們無法承受停機時間,但仍需要及時的固件更新(尤其是與安全修復相關的補丁,不能推遲到某個時間點之后)。 需要定期校準現場傳感器是一個挑戰。漂移速率因傳感器而異,也因環境而異。有一種趨勢是通過在邊緣或云中應用AI/ML模型來補償這種漂移,但這些步驟遠非理想,因為它們缺乏準確性,并且可能沒有充分考慮局部或環境條件。 依賴于位置信息的用例往往具有有限的可接受性,因為所有的位置傳感器(室內或室外)具有有限的精度。 大量邊緣處理的歷史數據(幾十年來積累的)遷移到云是另一個關鍵的架構挑戰,在許多機器到機器(M2M)到物聯網的轉型計劃中都看到了這一挑戰。 所需的非功能性需求(NFR)(可擴展性、可用性、安全性、數據駐留/隱私等)值因用例而異,并增加了另一層復雜性。 物聯網數據的消費者有不同的背景(例如,家庭自動化用戶的信息需求與想要監測工廠正常運行時間的工業用戶有很大不同,而工業用戶的信息需要又與使用物聯網進行自動化臨床試驗的輔助醫療人員的需求不同),因此他們有不同的操作和利用物聯網系統的方式。盡管這似乎對設備UI設計有更大的影響,但它也會以微妙的方式影響解決方案架構。 在下一節中,我們將列出有助于您解決實施物聯網解決方案的獨特需求的架構原則或注意事項。

建議的體系結構原則和注意事項

確保體系結構一旦實現,即具有可擴展性、可修改性、魯棒性和容錯性的某些原則與物聯網體系結構尤其相關。讓我們來看看其中的一些: 基于開放通信協議構建,以支持不同的設備通信需求:因為物聯網是真實(硬件)和虛擬(軟件)領域的融合,每一個領域都以自己獨立的速度發展。穩健的物聯網架構應該足夠靈活,以支持這兩個領域當前和未來可能的增強功能——例如,一方面,設備/硬件方面的連接/電源功能不斷進步,而另一方面,中央服務器方面在分析和AI/ML能力方面取得了進步。

????????因此,現實世界和虛擬世界之間存在固有的阻抗失配(涉及這些增強的速率和性質)。物聯網架構師不僅應該意識到這種不匹配,還應該納入所需的考慮因素,以在更長的時間內支持用例需求。這些要求部分是通過遵循分層架構來處理的,通過分層架構,特定層中的組件可以插入或插入,對整體架構的影響最小。

????????專為“端到端”安全設計:安全性是任何軟件系統的重要考慮因素,尤其是在數據或命令通過公共通信信道進行通信的情況下。然而,就物聯網而言,安全需要更深入的考慮,主要有兩個原因:與虛擬/軟件世界中的行動不同,在現實/物理世界中發起的行動是不能取消的:在有人檢測到異常并采取糾正行動之前,一臺灌溉泵被(惡意)指示開始在農田中抽水,它會泵出相當多的水。這與軟件世界中的場景形成了鮮明對比,在軟件世界中,一條簡單的更新指令就足以撤消/滾動回溯數據庫的更改。在醫療保健等領域,物聯網系統通常控制人類生活(例如,由物聯網系統控制的氧氣呼吸機),情況可能更具災難性。 與純軟件系統相比,攻擊向量要廣泛得多:這是因為需要保護完整的數據管道(終端設備>網關>通信通道>中央服務器>應用程序),并且數據管道中的每個實體都有不同的適用安全要求——終端設備(其固有的受限計算/存儲能力)無法支持中央服務器所能支持的嚴格安全性,因此需要獨立分析每個組件的安全漏洞和相關安全防護措施。 同樣,數據在傳輸過程中以及在任何時候都應受到保護。

????????通過“API-first”方法實現的企業集成:任何生產級物聯網系統通常都會與其他外部系統集成,以提供全部價值。物聯網系統整理的真實世界數據被輸入(數據推送)到外部系統,以實現更豐富的用例。類似地,來自外部系統的數據(數據拉取)用于豐富整理后的數據。這種類型的集成是不可能的,除非物聯網系統已經使用API-first作為核心架構租戶之一進行架構設計,企業應用程序可以使用物聯網數據。這些API還支持跨物聯網和非物聯網(即外部系統)的工作流。 滿足不同的數據需求:物聯網系統由不同的用戶使用,每個用戶都有不同的背景和信息需求。因此,重要的是要捕捉所有(當前和未來)利益相關者的原始數據需求,并以一種易于被不同利益相關者(人物角色)同化的方式呈現數據。

????????基于角色的訪問控制(RBAC)是一種向利益相關者顯示所需信息,同時掩蓋非相關信息的機制。此外,一些利益相關者將有實時數據需求(希望緊急警報實時通知的運營商),而其他利益相關者則希望從合并數據中獲得見解(批量處理)。將數據攝取與數據處理解耦是使我們能夠滿足這一需求的一個原則。以下列出了一些其他數據整理/操作要求:來自制造執行系統(MES)和實驗室信息管理系統(LIMS)等源的各種(結構化、半結構化和非結構化)操作數據應整合在邊緣、云或兩者的通用數據存儲(數據湖)中。 出于可擴展性、效率和成本優化考慮,分離流式、批處理和正確的時間數據管道。數據生產者與消費者的解耦確保了強健的體系結構以及技術和實現選擇的靈活性。 提供部署靈活性的技術中立架構:物聯網系統可以部署在不同的配置中,如內部部署、公有云、私有云和/或混合多云配置,這取決于客戶對安全的敏感性以及治理和監管需求。考慮到這一點,體系結構應該足夠通用,可以滿足不同的部署需求,并可以由多個技術堆棧支持。這通常是通過創建物聯網參考體系結構(沒有特定的技術選擇),然后過渡到技術體系結構(其中通用體系結構組件被特定的技術組件取代)來實現的。 高可用性設計:盡管不同的物聯網用例對高可用性的需求差異很大,但一些用例被歸類為任務關鍵型用例,幾乎沒有停機預期,而另一些用例可以適應相當長的停機時間。中央服務器體系結構應該模仿正常運行時間的預期,因為通常情況下,停機時間越少,成本越高。在物聯網的背景下,必須從整體系統的角度考慮高可用性。例如,在可以接受更長的中央服務器停機時間的情況下,終端設備需要具有更高的數據緩沖能力(即更大的存儲空間),以最大限度地減少數據丟失。 支持“無限可擴展性”:物聯網部署從少量終端設備開始,但往往在短時間內擴展到大量。因此,通常,在物聯網解決方案中,水平可擴展性優先于垂直可擴展性 設備通信注意事項:數據通過網關和中央服務器之間的雙向通信信道進行通信。該信道可以由多種通信技術支持(其中一些常見的技術是蜂窩、Wi-Fi、LoRa和SigFox)。范圍(與中央服務器的物理距離)、有效載荷大小、電池壽命和環境噪聲等因素在最終確定特定物聯網實現的理想通信技術方面發揮著作用。設備側的一些其他考慮因素包括在與中央服務器的連接丟失的情況下存儲/緩沖數據的能力、用于節省電池電量的睡眠/喚醒邏輯以及數據聚合/過濾需求。 下圖總結了本節中討論的關鍵體系結構原則/注意事項:

圖1.4-開發物聯網解決方案的體系結構考慮因素

總結

本介紹性章節幫助您了解在開發或部署物聯網解決方案時需要考慮的架構考慮因素。此外,本章提供了上下文知識,將幫助您理解本書中列出的模式。討論了物聯網解決方案與其他傳統軟件系統或IT解決方案不同的特征,以及關于物聯網參考體系結構不同層的信息。在接下來的兩章中,我們將深入探討物聯網架構模式。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35431.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35431.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35431.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【自動調參】年化29.3%,最大回撤18.5%?:lightGBM的參數優化

原創文章第570篇,專注“AI量化投資、世界運行的規律、個人成長與財富自由"。 研報復現繼續:【研報復現】年化27.1%,人工智能多因子大類資產配置策略之benchmark 昨天調了一版參數,主要是lambda_l1, lambda_l2,防…

Vmvare12安裝CentOS7.6

Vmvare12安裝 注意事項 安裝完成以后有這兩個虛擬網卡。 CentOS官網鏡像地址 https://www.centos.org/download/mirrors/Vmvare安裝CentOS7.6 創建虛擬機 安裝CentOS7.6 選擇桌面版 磁盤分區 上述是確認使用自動分區。 設置密碼 設置license information 歡迎頁面 CentOS7…

使用Python實現網頁數據獲取與處理:以財經新聞為例

在現代數據驅動的世界中,獲取并處理豐富的網頁數據是非常重要的技能。本文將介紹如何使用Python編寫一個程序,自動獲取財經新聞數據并進行處理。這不僅可以幫助我們快速獲取最新的財經信息,還可以為后續的數據分析和研究提供支持。 環境準備…

寶蘭德受邀出席華為開發者大會2024,攜手共繪基礎軟件新篇章

6月21日-23日,華為開發者大會(HDC 2024)在東莞松山湖舉行,作為全球開發者的年度盛會,本次大會匯聚了眾多業界精英與前沿技術。華為分享了HarmonyOS、盤古大模型、昇騰AI云服務、GaussDB數據庫、自研倉頡編程語言等最新…

微信小程序錄音

微信小程序的錄音功能通過一組API來實現,主要涉及錄音管理器(RecorderManager)的使用。下面是詳細的實現步驟和代碼示例: 初始化錄音管理器 首先需要獲取錄音管理器的實例,可以通過 wx.getRecorderManager() 方法來獲…

【IM即時通信 功能介紹】客戶端用戶在線狀態訂閱

本文檔旨在介紹客戶端用戶在線狀態訂閱功能,該功能允許開發者通過 SDK 接口實時監控和接收指定用戶的在線或離線狀態變更通知。這一功能對于需要實時交流、狀態同步或用戶活動監控的應用場景至關重要。 功能特點 實時狀態通知 跨平臺通知:訂閱成功后&…

使用 MediaPipe 實現實時手部追蹤和手勢識別 | Rerun展示

點擊下方卡片,關注“小白玩轉Python”公眾號 在本文中,我將展示一個使用 MediaPipe Python 和 Rerun SDK 進行手部追蹤和手勢識別的示例。如果您有興趣深入了解并擴展您的知識,我將指導您如何安裝 MediaPipe Python 和 Rerun SDK 來進行手部追…

深入Scala的變量聲明與類型推斷:語法糖下的智能推導

Scala是一種靜態類型語言,以其強大的類型推斷系統而聞名。變量聲明和類型推斷是Scala編程中的基礎概念,它們共同簡化了代碼的編寫并提高了開發效率。本文將深入探討Scala中變量聲明的語法規則和類型推斷的工作原理。 1. Scala靜態類型的優越性 靜態類型…

深入理解Python中的*和**在函數參數與調用中的奧秘

深入理解Python中的*和**在函數參數與調用中的奧秘 在Python編程中,*和**這兩個操作符在函數參數和函數調用中扮演著特殊的角色。它們分別用于處理位置參數(positional arguments)和關鍵字參數(keyword arguments)&am…

Linux部署SVN

一.下載與安裝 (1)yum安裝 yum install subversion (2)源文件編譯安裝 ①下載svn源文件 subversion-xxx.tar.gz(subversion 源文件) subversion-deps-xxx.tar.gz(subversion依賴文件&…

RAG項目工期

工期 第一期,基于term的檢索,大模型生成 第二期,搭建前端界面,落地 上傳pdf,一鍵解析,上傳多個pdf 提問 第三期,使用向量檢索,向量數據庫選型 第四期,優化排序。 te…

BatchNorm和LayerNorm

參考鏈接 參考鏈接 參考鏈接

項目四 OpenStack身份管理

任務一 理解身份服務 1.1 ?Keystone的基本概念 ? 認證 ( Authentication ) —— 確認用戶身份的過程 ,又稱身份驗證 。 ? 憑證 ( Credentials ) —— 又 稱憑據,是用于 確認用戶身份的數據 。 ? 令牌…

短視頻最佳時長:成都柏煜文化傳媒有限公司

探索時間與內容之間的完美平衡 成都柏煜文化傳媒有限公司 在數字媒體日益繁榮的今天,短視頻已成為人們獲取信息、娛樂休閑的重要形式。然而,關于短視頻的最佳時長,一直是一個備受爭議的話題。本文將探討短視頻時長的各種考量因素&#xff0…

MySQL報錯Duplicate entry ‘0‘ for key ‘PRIMARY‘

報錯現場 現象解釋 因為你在插入時沒有給 Customer.Id 賦值,MySQL 會傾向于賦值為 NULL。但是主鍵不能為 NULL,所以 MySQL 幫了你一個忙,將值轉換為 0。這樣,在第二次插入時就會出現沖突(如果已經有一條記錄為 0&…

微服務——服務治理

目錄 1 什么是服務治理?2 為什么需要服務治理?3 服務治理的關鍵點3.1 服務注冊與發現3.2 負載均衡3.3 容錯與熔斷3.4 服務監控與告警3.5 服務配置管理 4 示例說明5 總結 1 什么是服務治理? 簡單來說,服務治理就是對微服務架構中的…

iptables(11)target(SNAT、DNAT、MASQUERADE、REDIRECT)

簡介 前面我們已經介紹了ACCEPT、DROP、REJECT、LOG,這篇文章我們介紹SNAT、DNAT、MASQUERADE、REDIRECT,這幾個參數的定義我們在上篇文章中都有介紹,我這里再列出回顧一下 DNAT(目標地址轉換)和 SNAT(源地址轉換) 原理:修改數據包的源或目標 IP 地址。通常用于 NAT(…

怎樣利用 MATLAB 進行實時系統的建模與仿真?

要利用MATLAB進行實時系統的建模與仿真,您可以按照以下步驟進行操作: 確定系統的建模方法:根據實際情況,選擇適合的建模方法,如:微分方程、狀態空間模型、傳遞函數模型等。 編寫系統模型的MATLAB代碼&…

小迪安全v2023筆記 1-18

小迪安全v2023筆記 1-18 棱角社區 文章目錄 1. 基礎入門1. 正向shell與反向shell2. web應用3. 抓包,封包,協議,app,小程序,pc應用,web應用 2. 信息打點1. 常見信息獲取2. 文件泄露3. 常見阻礙4. CDN繞過&a…

Java中線程的狀態轉換有什么(生命周期)

在Java中,線程的生命周期由六種主要狀態構成,每種狀態都有其特定的轉換條件。以下是Java線程的生命周期狀態及其轉換條件: 線程狀態 新建(NEW): 線程對象已經創建,但尚未調用start()方法。 Thr…