[物联网文章之其三] 剖析物联网解决方案

日常前言

  • 四月份花了一大部分时间去深入代码,把我们的双摄虚化流程解析了一遍。然后为了给组内分享,又花了相当一部分时间去做总结,画思维导图、作流程图等等,这其中学到了挺多东西的,尤其是对高通 Camera HAL 层的数据流部分,Camera Post Process 的前后节点都有了一个比较大概的了解,在跟踪数据流的时候没那么头晕了。
  • 还有,总结、分享知识的时候,作图真的非常重要,一份填满大量文字的 PPT,可能讲 3 个小时都讲不完,最后听众也很难有所收获。然而如果有 70% ~ 90% 的篇幅用图片来直观表述,剩下的文字用于精炼、简洁地描述,这样可能 1~2 个小时就能搞定,并且听众至少也能留下一个比较整体的印象。
  • 好吧,扯远了,回归这次的活动,这一期是物联网的主题,又是我不熟悉的领域,只能找一些介绍性的文章来翻译了。以及……上期又送来一个抱枕……这期要是再送公仔,那就把这些东西送给女盆友一宿舍当毕业礼物吧hh
  • 这期采纳了四篇:

版权相关

翻译人: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.

尽管如此,很明显,各种各样的终端、网络技术、协议、物联网软件以及应用程序开发服务,这些对于计划采用物联网来转变业务运营的企业来说都是一个挑战。那么问题来了:如何使得物联网解决方案开发是易于管理的?其答案就在于采用一个平台方案。

猜你喜欢

转载自blog.csdn.net/qq_16775897/article/details/80304310