[物联网文章之其三] 剖析物联网解决方案
日常前言
- 四月份花了一大部分時間去深入代碼,把我們的雙攝虛化流程解析了一遍。然后為了給組內分享,又花了相當一部分時間去做總結,畫思維導圖、作流程圖等等,這其中學到了挺多東西的,尤其是對高通 Camera HAL 層的數據流部分,Camera Post Process 的前后節點都有了一個比較大概的了解,在跟蹤數據流的時候沒那么頭暈了。
- 還有,總結、分享知識的時候,作圖真的非常重要,一份填滿大量文字的 PPT,可能講 3 個小時都講不完,最后聽眾也很難有所收獲。然而如果有 70% ~ 90% 的篇幅用圖片來直觀表述,剩下的文字用于精煉、簡潔地描述,這樣可能 1~2 個小時就能搞定,并且聽眾至少也能留下一個比較整體的印象。
- 好吧,扯遠了,回歸這次的活動,這一期是物聯網的主題,又是我不熟悉的領域,只能找一些介紹性的文章來翻譯了。以及……上期又送來一個抱枕……這期要是再送公仔,那就把這些東西送給女盆友一宿舍當畢業禮物吧hh
- 這期采納了四篇:
- 十大業務步驟——確保物聯網生態系統的安全
- 物聯網中的認知科學與網絡監督
- 剖析物聯網解決方案
- 在物聯網中應用機器學習:使用 Android Things 與 TensorFlow
版權相關
翻譯人:StoneDemo,該成員來自云+社區翻譯社
原文鏈接:The Anatomy of an IoT Solution
原文作者:Hans De Visser
The Anatomy of an IoT Solution
題目:(剖析物聯網解決方案)
The Internet of Things (IoT) is a powerful, transformative force and the cornerstone for digital businesses taking advantage of the convergence of the physical and digital worlds.
物聯網(IoT,Internet of Things)是一個強大的變革力量,它是數字商業利用來融合物理與數字世界的基石。
McKinsey estimates that IoT could generate $11.1 trillion a year in economic value by 2025. Understandably, IT leaders face growing pressure from the business to deliver new IoT solutions that improve operational efficiency and grow revenue via connected products and services.
麥肯錫公司(McKinsey)估計,到 2025 年,物聯網每年可創造 11.1 萬億美元的經濟價值。可以理解的是,為交付新的物聯網解決方案,通過將產品與服務進行連接來提高運營效率并增加營收,IT 領導者隨之面臨著越來越多業務上的壓力。
I’ve been involved in quite a few discussions with customers lately on what it takes to develop IoT solutions and how to establish the right architecture. When diving into the subject, I hardly found materials online that would give me an end-to-end overview of IoT solutions architecture, or best practices for getting started with IoT application development.
最近,我與客戶進行了相當多的討論 —— 討論如何開發物聯網解決方案,以及如何建立正確的架構。當我們深入研究這個主題時,我發現,幾乎沒有任何在線材料能給我提供一個物聯網解決方案架構的,端到端的概覽,或者關于物聯網應用程序開發的最佳入門范例。
So, I’ve started to paint the picture, relate it to projects that Mendix customers are doing in this domain, and distil some best practices.
所以,我開始描繪這幅藍圖,將其與客戶(Mendix)在該領域所做的項目聯系起來,并提煉出一些最佳范例。
I’ll cover the story in three blog posts, starting with describing the anatomy of IoT Solutions, followed by one about the role of platforms in simplifying IoT Solution Development. The last post will cover recommendations on architecture and best practices for defining an incremental IoT strategy.
我將用三篇博文講述這個故事,先從描述對物聯網解決方案的解剖開始,然后就是關于平臺在簡化物聯網解決方案開發中的作用。最后一篇文章將會介紹一些關于架構的建議,以及定義增量物聯網戰略的最佳范例。
What does it take to develop IoT solutions, and how do you establish the right architecture? IoT solution design is quite different from typical IT solutions in that it bridges the physical world of Operations Technology (OT) with sensors, actuators and communication devices, and the digital world of Information Technology (IT) with data, analytics, workflows, and applications.
開發物聯網解決方案需要什么?如何建立起正確的架構?物聯網解決方案的設計與典型的 IT 解決方案大相徑庭,因為它將運營技術(OT,Operations Technology)的物理世界(傳感器、執行器和通信設備),與信息技術(IT,Information Technology)的數字世界(數據,分析,工作流,以及應用程序)連接了起來。
The diversity of use cases and operational requirements creates an array of IoT Endpoints, communication protocols, data management, and analytics technologies, as well as corresponding deployment topologies.
用例和運營需求的多樣性創造了一系列物聯網終端,通信協議,數據管理和分析技術,以及相應的部署拓撲(Deployment topologies)。
And that’s just for establishing the foundation. The real value of IoT comes from turning data into insight, and making it actionable to drive smarter operations or launch new products and services. This fuels the need for IoT apps that empower users to act upon insight, by combining sensor data, data residing in enterprise systems such as ERP, CRM, and PLM, and even third-party services such as weather and traffic data.
而這些僅僅是為了打下基礎。物聯網的真正價值源自將數據轉化為洞察力(Insight),并使其能夠付諸實施,以推動更智能的運營或推出新產品和服務。通過結合傳感器數據、保存在企業系統(如 ERP,CRM 和 PLM)中的數據,甚至是第三方服務(如天氣和交通)數據,使得用戶可以根據自己的想法行事,這就激發了用戶對物聯網應用程序的需求。
What an IoT Solution Looks Like
(物聯網解決方案看上去是何種模樣?)
Despite the diversity, there is a level of commonality across use cases that can illustrate the anatomy of IoT solutions. Taking a layered approach in describing the anatomy helps identify relevant services and technologies from the things-level all the way up to IoT apps.
盡管多樣化,但還是有一些跨用例的共性,可以用于圖解說明物聯網解決方案的剖析結構。采用分層方法描述剖析結構有助于從事物層面直到物聯網應用,即從各個層面識別相關的服務和技術。
IoT Endpoints
(物聯網終端)
This layer covers the physical world and operational technology required to connect things and communicate:
- Things: The real endpoint for IoT is obviously the thing that should be connected, whether physical products like cars, jet engines, and lighting systems, or other ‘things’ like livestock, crops, human beings, or spatial areas like rooms or outdoor space.
- Sensors: collect and report data on the actual status of things to which they’re connected. Sensors could be mounted on, or embedded in, things to monitor temperature, pressure, light, motion, location, etc.
- Actuators: control the physical or logical state of a product through signals they get from IoT apps or other systems, like opening a valve, or turning a camera, motor or light on/off. This includes commands sent to embedded software e.g. to reboot or update configurations.
- Agents: components that mediate between a set of IoT devices and act as a bridge between the sensors/actuators and the cloud, deciding what data to send and when. In reverse, they also process commands and updates coming from the cloud.
- Edge computing device: a distributed architecture in which IoT data is processed at the edge of the network. Transmitting massive amounts of raw data over a network puts tremendous load on network resources. In some cases, it is much more efficient to process data near its source and send only the data that has value over the network to the cloud.
- Communication: For IoT device communication, the physical layer and communication protocols are distinguished. As far as the physical layer is concerned, gateways, mobile devices, mesh networks, and direct- or broadcast device communication are alternatives that may or may not be suitable depending on the use case. The choice for the physical layer will determine which communication protocols are most suitable (e.g. MQTT, COAP, HPPT(S), AMQP, ZigBee, Z-Wave, etc.)
這一層涵蓋了連接事物和進行通信所需的物理世界和操作技術:
- 事物:真正的物聯網終端顯然是那些應該連接的東西,無論是汽車,噴氣發動機和照明系統這樣的物質產品,還是其他諸如家畜,農作物,人類或空間區域(如房間或室外空間)此類 ”事物“。
- 傳感器:收集并報告他們所連接的事物的實際狀態數據。傳感器可以進行安裝,或嵌入到物體中,從而監測溫度,壓力,光線,運動,位置等數據。
- 執行器:通過從物聯網應用程序或其他系統所獲得的信號(如打開閥門,打開/關閉相機、電機或燈)來控制產品的物理或邏輯狀態。這包括發送到嵌入式軟件的命令,例如重啟或更新配置。
- 代理:在一組物聯網設備之間進行調解的組件,它們同時還作為傳感器/執行器和云端之間的橋梁,決定發送什么數據以及何時發送。反過來,它們也處理來自云端的命令和更新。
- 邊緣計算設備:在網絡邊緣處理物聯網數據的分布式體系結構。通過網絡傳輸大量的原始數據會給網絡資源帶來巨大的負擔。在某些情況下,在數據源附近處理數據,并僅通過網絡將有價值的數據發送到云端會更高效。
- 通信:對于物聯網設備之間的通信,物理層與通信協議之間是有區別的。就物理層而言,網關,移動設備,網狀網絡(Mesh network)以及直接設備或廣播設備的通信是可選方案,根據實際用例可能適用或不適用。物理層的選擇將決定哪種通信協議最為合適(例如 MQTT,COAP,HPPT(S),AMQP,ZigBee,Z-Wave 等)。
IoT Software
(物聯網軟件)
The next layer is the (cloud) platform that brings essential IoT software services together to manage the IoT endpoints securely, represent the ‘digital twin’ of connected things, process and analyze data, and provide APIs to consume and expose services:
- Device management: simplifies the process of configuring, provisioning, and operating the endpoint devices. It supports monitoring, testing, updating software, and troubleshooting connected devices.
- Digital twin management: For many IoT use cases, particularly in industrial IoT, it’s valuable to define a digital twin of the connected thing. This could be as simple as a 1:1 mapping of the physical things to logical identifiers in the IoT Platform, or as sophisticated as mapping an engineering view of an asset with a hierarchical structure of components/systems to the physical devices representing that asset on an instance and class level.
- Event and data processing: Event Processing deals with event streams coming from connected devices, filtering, and monitoring. In addition, services for data aggregation, data storage, and management are required.
- Analytics/machine learning: Analytics services perform statistical analysis and apply machine learning to detect patterns on a device instance or class level for predictive maintenance, making recommendations, triggering engineering changes, etc.
- API management: provides openness on all layers in the IoT platform for device communication, data-, service-, and backend integration, and application development.
- Security management: ensures that IoT endpoints do not expose security threats due to the increased attack surface IoT creates. IoT devices generate sensitive information about operations transmitted over the internet. Also, devices themselves are vulnerable to hacks that could cause serious business damage. Security services should include (certificate-based) device attestation, network connectivity, software upgrades, authentication, identity and access management, and data loss prevention.
往下一層就是(云端)平臺,它們將基本的物聯網軟件服務整合到一起,從而安全地管理物聯網終端、表示連接物的 “數字雙胞胎”、處理和分析數據,以及提供消費和公開服務的 API:
- 設備管理:簡化配置、服務開通(Provisioning)和操作終端設備的步驟。它支持監視、測試、更新軟件,以及對連接設備進行故障排除。
- 數字雙胞胎(Digital twin)管理:對許多物聯網用例來說(尤其是在工業物聯網中),定義連接物的數字雙胞胎是很有價值的。這可能與物聯網平臺中,從物理事物到邏輯標識符的一一映射那樣簡單,或者像將具有組件/系統分層結構的資產工程視圖映射到一個實例以及類級別(Class level)的,代表該資產的物理設備一樣復雜。
- 事件與數據處理:事件處理涉及到來自連接設備的事件流,過濾以及監視。另外,還需要用于數據聚合(Data aggregation),數據存儲和管理的服務。
- 分析/機器學習:分析服務(Analytics services)執行統計分析,并應用機器學習來檢測一個設備實例(或類級別)上的模式,從而進行預見性維護(Predictive maintenance)、提出建議,和觸發工程變更等等。
- API(Application Programming Interface,應用編程接口) 管理:在物聯網平臺的所有層面上,為設備通信,數據,服務和后端集成以及應用程序開發提供開放性。
- 安全管理:確保物聯網終端不會因物聯網創造的攻擊面的增加而暴露在安全威脅之下。物聯網設備會生成有關操作的敏感信息,并通過互聯網進行傳輸。并且設備本身易受黑客攻擊,這可能會導致嚴重的商業損失。安全服務應包括(基于證書的)設備認證、網絡連接、軟件升級、身份認證、身份與訪問權限管理,以及數據丟失防護。
IoT Apps
(物聯網應用程序)
The Apps layer is where IoT solutions are brought to life, turning data into actionable insight, putting it in the hands of business users, customers and partners. This is the layer where integrations with existing back-ends and 3rd party services are established and workflows are defined to act upon insight. Core services in the apps layer include:
- Integrated development environment (IDE): A design time environment is required to develop IoT apps. This could be a traditional IDE for coding in a specific language or a model-driven environment for collaborative, visual development of IoT apps. In addition, core services for software configuration management and branching & merging are needed for development teams to commit their work, and create builds and application packages. Finally, the IDE should guide developers to apply the right patterns and best practices for IoT app development.
- Multi-channel apps: In today’s world of web and mobile apps, the IDE ideally supports development of cross-platform, responsive and multi-channel apps, optimized for specific form factors, using device features and supporting gestures with minimal overhead.
- Integration: The lifeblood of IoT apps. Apps should have access to IoT endpoints (via the digital twin) for reading the full history of a ‘thing’ after receiving an alert, or triggering an actuator. They should be able to leverage various IoT software services (e.g. time series data and machine learning algorithms) and weave these services into IoT apps. Last but not least, integration with enterprise back-ends and 3rd party services is needed for managing workflows and making IoT apps contextual e.g. by creating a dashboard for a service engineer, enhanced with engineering and customer support data.
- Testing: Testing & quality assurance are essential disciplines in IoT app development projects. Test automation on various levels (unit test, integration, functional test) helps minimize the test burden relative to (iterative) development cycles.
- Deployment: Staged deployment to target environments and automated provisioning of application resources (web server, OS, database, file storage) helps DevOps engineers to efficiently manage IoT apps. Ideally, there’s flexibility to deploy on a cloud of choice—for instance, close to where core IoT services that the application uses are running.
- Management: User management, application management, monitoring, and self-service options for horizontal/vertical scaling and configuring high-availability are important to manage IoT apps. Specifically, support for elasticity backed by a stateless application architecture is essential to deal with variable load and volume.
- Security: Like for the IoT platform layer, security on an app level is vital. This concerns both the application runtime environment and the security settings for the apps themselves (e.g. access and authentication).
應用層是物聯網解決方案得以實現的地方,在這一層,數據轉化為可操作的洞察力,并將其交付給企業用戶、客戶與合作伙伴。該層集成了現有的那些后端,建立了第三方服務,并定義了工作流以根據洞察力行事。應用層的核心服務包括:
- 集成開發環境(IDE):開發物聯網應用程序需要有一個設計期環境(Design-time environment)。這個環境可以是一個傳統的 IDE,它能夠用于以特定語言進行編程,或者是用于協作、可視化開發物聯網應用程序的模型驅動環境(Model-driven environment)。另外,開發團隊需要軟件配置管理(Software configuration management)以及分支與合并(Branching & Merging)的核心服務,以便提交他們的工作、創建構建和應用程序包。最后,IDE 應引導開發人員應用物聯網應用程序開發的正確模式和最佳范例。
- 多通道應用程序:當今世界上的 Web 與移動應用程序中,IDE 理想地支持跨平臺、響應式和多通道應用程序的開發,針對特定外形因素進行優化,并且以最小的開銷使用設備特性與其所支持的姿態。
- 集成:這是物聯網應用的命根子(Lifeblood)。應用程序應該能夠(通過數字雙胞胎)訪問物聯網終端,以便在收到警報或觸發執行器后能夠讀出 “事物” 的完整歷史信息。它們應該能夠利用各種物聯網軟件服務(例如時間序列數據和機器學習算法)并將這些服務編排到物聯網應用程序中。最后一點(但并非最不重要的一點)是,集成企業后端與第三方服務,以管理工作流并使物聯網應用程序具有上下文(例如,通過為維護工程師創建一個儀表盤,增強了工程和客戶支持數據)。
- 測試:測試(Testing)與品質保證(Quality assurance)是物聯網應用程序開發項目中的重要科目。不同級別上的測試自動化(單元測試,集成,功能測試)有助于最大限度地減少相對于(迭代)開發周期的測試負擔。
- 部署:分階段部署到目標環境,以及自動化配置應用程序資源(Web 服務器,操作系統,數據庫,文件存儲)可幫助開發運維工程師(DevOps)有效地管理物聯網應用程序。理想情況下,在所選擇的云端上可以靈活地部署 —— 比如說,接近應用程序使用的核心物聯網服務的運行狀態。
- 管理:水平/垂直擴展與配置高可用性的用戶管理、應用程序管理、監控和自助服務選項,這對于管理物聯網應用程序來說非常重要。具體說來,通過無狀態應用架構(Stateless application architecture)提供的彈性支持對于處理可變負載與可變容積來說是很有必要的。
- 安全:就像物聯網平臺層一樣,安全性對一個應用來說至關重要。這同時涉及到應用程序的運行時環境,及其本身的安全設置(例如訪問和認證)。
The elements that define the anatomy of an IoT solution may come across as overwhelming. As mentioned before, the type and level of sophistication of the IoT solution will determine how many of the elements and services described are needed to create an end-to-end solution.
定義一份物聯網解決方案解析的元素可能會遇到巨大的挑戰。如上所述,物聯網解決方案的復雜性類型與級別將決定需要多少基礎和服務來創建端到端解決方案。
Nevertheless, it’s clear that the diverse set of endpoints, network technologies, protocols, IoT software, and application development services pose a challenge for enterprises planning to adopt IoT to transform their business operations. The question is: How do you make IoT solution development manageable? The answer lies in adopting a platform approach.
盡管如此,很明顯,各種各樣的終端、網絡技術、協議、物聯網軟件以及應用程序開發服務,這些對于計劃采用物聯網來轉變業務運營的企業來說都是一個挑戰。那么問題來了:如何使得物聯網解決方案開發是易于管理的?其答案就在于采用一個平臺方案。
總結
以上是生活随笔為你收集整理的[物联网文章之其三] 剖析物联网解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡诈骗
- 下一篇: 用c语言编写rfid读卡系统,USB免驱