你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

汽车消息传送,数据与分析参考体系结构

此参考体系结构旨在支持汽车 OEM 和移动服务提供商开发高级互联汽车应用程序和数字服务。 目标是提供可靠且高效的消息传送、数据与分析基础结构。 该体系结构包括消息处理、命令处理和状态存储功能,从而通过托管 API 实现各种服务的集成。 它还介绍了一项数据与分析解决方案,该解决方案可确保以可缩放且安全的方式存储和访问数据,从而与更广泛的移动生态系统进行数字工程和数据共享。

体系结构

高级体系结构的关系图。

高级体系结构图展示了汽车消息传送、数据和分析解决方案的主要逻辑块和服务。 可以在以下部分找到更多详细信息。

  • 汽车包含一组设备。 其中一些设备由软件定义,可以执行从云托管的软件工作负载。 汽车收集并处理各种数据,从机电设备(例如电池管理系统)到软件日志文件的传感器信息。
  • 车辆消息传送服务管理与车辆之间的通信。 它负责处理消息、使用工作流执行命令以及调解车辆、用户和设备管理后端。 它还跟踪车辆、设备和证书的注册和预配。
  • 车辆和设备管理后端是 OEM 系统,用于跟踪从工厂到维修和维护的车辆配置。
  • 操作员可以使用“IT 和操作”,从而确保车辆和后端的可用性和性能。
  • 数据和分析服务提供数据存储,并为所有数据用户启用处理和分析。 它将数据转化为见解,推动更好的业务决策。
  • 从配套应用到维修和维护应用程序,车辆制造商提供数字服务,为最终客户增值。
  • 多项数字服务需要将业务集成到后端系统,例如经销商管理 (DMS)、客户关系管理 (CRM) 或企业资源规划 (ERP) 系统。
  • 同意管理后端是客户管理的一部分,根据地理国家/地区法规跟踪用户对数据收集的授权。
  • 从车辆收集的数据是数字工程过程的输入,目标是使用分析和机器学习持续改进产品。
  • 智能移动生态系统可以订阅并使用实时遥测数据以及聚合见解,从而提供更多产品和服务。

Microsoft 是Eclipse Software Defined Vehicle工作组的成员,该工作组是使用车辆软件平台的开放源代码进行开放式协作的论坛。

数据流

该体系结构使用发布者/订阅者消息传送模式将车辆与服务分离。

车辆到云的消息

车辆到云数据流用于处理来自车辆的遥测数据。 遥测数据可以定期(车辆状态、来自车辆传感器的收集信息)或基于事件(错误条件的触发、对用户操作的反应)发送。

消息传送数据流的关系图。

  1. 使用管理 API根据选定选项为客户配置车辆。 配置包含:
    1. 车辆和设备的预配信息。
    2. 根据市场和业务注意事项配置初始车辆数据收集
    3. 根据车辆选项和用户接受情况存储初始用户同意设置。
  2. 车辆通过消息队列遥测传输 (MQTT) 客户端(具有定义的主题)将遥测和事件消息发布到车辆消息传送服务中的 Azure 事件网格 MQTT 中转站服务
  3. 事件网格根据主题和消息属性将消息路由到不同的订阅者。
    1. 使用事件中心实例将不需要立即处理的低优先级消息(例如,分析消息)直接路由到存储以进行缓冲。
    2. 使用事件中心实例将需要立即处理的高优先级消息(例如,必须在面向用户的应用程序中可视化的状态更改)路由到 Azure 函数以进行缓冲。
  4. 使用事件捕获将低优先级消息直接存储在数据湖中。 这些消息可以使用批量解码和处理来获得最佳成本。
  5. 使用Azure 函数处理高优先级消息。 函数从设备注册表中读取车辆、设备和用户同意设置,并执行以下步骤:
    1. 验证车辆和设备是否已注册并处于活动状态。
    2. 验证用户是否已同意消息主题。
    3. 解码并扩充有效负载。
    4. 添加更多路由信息。
  6. 数据和分析解决方案中的实时遥测事件中心接收解码的消息。 Azure 数据资源管理器使用流式引入在收到消息时处理并存储消息。
  7. 数字服务层接收解码的消息。 服务总线向应用程序提供有关车辆状态的重要更改/事件的通知。 Azure 数据资源管理器提供车辆的最后已知状态和短期历史记录。

云到车辆的消息

云到车辆数据流通常用于从数字服务在车辆中执行远程命令。 这些命令包括锁定/解锁门、气候控制(设置首选机舱温度)或配置更改等用例。 成功执行取决于车辆状态,可能需要一些时间才能完成。

根据车辆功能和操作类型,有多种可能的命令执行方法。 我们将介绍两种变体:

  • 直接云到设备消息(A)不需要用户同意检查且响应时间可预测。 这包括向单个和多个辆车发送的消息。 示例包括天气通知。
  • 车辆命令(B)使用车辆状态来确定成功且需要用户同意。 消息传送解决方案必须具有命令工作流逻辑,用于检查用户同意、跟踪命令执行状态并在完成后通知数字服务。

以下数据流用户命令从配套应用数字服务发出,作为示例。

命令和控制数据流的关系图。

直接消息以最少的跃点数执行,从而获得最佳性能(A)

  1. 配套应用是经过身份验证的服务,可将消息发布到事件网格
  2. 事件网格检查配套应用服务的授权,从而确定它能否向提供的主题发送消息。
  3. 配套应用订阅来自特定车辆/命令组合的响应。

当依赖于车辆状态的命令需要用户同意时 (B)

  1. 车主/用户同意对数字服务执行命令和控制功能(在此示例中为配套应用)。 它通常在用户下载/激活应用且 OEM 激活其帐户时完成。 它会在车辆上触发配置更改,从而订阅 MQTT 服务器中的关联命令主题。
  2. 配套应用使用命令和控制托管 API 来请求执行远程命令。
    1. 命令执行可能具有更多参数来配置超时、存储和转发等选项。
    2. 命令逻辑根据主题和其他属性决定如何处理命令。
    3. 工作流逻辑创建状态以跟踪执行状态
  3. 命令工作流逻辑根据用户同意信息进行检查,从而确定能否执行消息。
  4. 命令工作流逻辑使用命令和参数值将消息发布到事件网格
  5. 车辆中的消息传送模块订阅命令主题并接收通知。 它将命令路由到正确的工作负载。
  6. 消息传送模块监视工作负载是否完成(或存在错误)。 工作负载负责(物理)执行命令。
  7. 消息传送模块将命令状态报告发布到事件网格
  8. 工作流模块订阅命令状态更新,并更新命令执行的内部状态。
  9. 命令执行完成后,服务应用通过命令和控制 API 接收执行结果。

车辆和设备预配

此数据流涵盖注册车辆和设备并将其预配到车辆消息传送服务的过程。 该过程通常作为汽车制造的一部分启动。

预配数据流的关系图。

  1. 工厂系统将车辆设备委托到所需的施工状态。 它可能包括固件和软件的初始安装和配置。 在此过程中,工厂系统将获取并写入从公钥基础结构提供程序创建的设备证书
  2. “工厂系统”使用“车辆和设备预配 API”注册车辆和设备。
  3. 工厂系统触发设备预配客户端连接到设备注册并预配设备。 设备检索与 MQTT 中转站的连接信息。
  4. 设备注册应用程序通过 MQTT 中转站创建设备标识。
  5. 出厂系统触发设备首次与 MQTT 中转站建立连接。
    1. MQTT 服务器使用CA 根证书对设备进行身份验证,并提取客户端信息。
  6. MQTT 中转站使用本地注册表管理允许的主题的授权。
  7. 在更换部件的情况下,OEM 经销商系统可以触发注册新设备。

注意

工厂系统通常位于本地,与云没有直接连接。

数据分析

此数据流涵盖对车辆数据的分析。 可以使用其他数据源(例如工厂或车间操作员)来扩充并提供车辆数据的上下文。

数据分析的关系图。

  1. 车辆消息服务层提供从双向通信到车辆的遥测、事件、命令和配置消息。
  2. “IT 和操作”层提供有关在车辆上运行的软件和相关云服务的信息。
  3. 多个管道使数据处理进入更精细的状态
    • 处理从原始数据到扩充和去重的车辆数据。
    • 车辆数据聚合、关键绩效指标和见解。
    • 生成机器学习的训练数据。
  4. 不同的应用程序使用经过优化的聚合数据。
    • 使用 Power BI 进行可视化。
    • 使用与 Dataverse 集成的逻辑应用的业务集成工作流。
  5. ML Studio 等工具使用生成的训练数据来生成 ML 模型。

可伸缩性

互联车辆和数据解决方案可以扩展到数百万台车辆和数千项服务。 建议使用部署戳模式实现可伸缩性和弹性。

可伸缩性概念的关系图。

每个车辆消息传送缩放单元都支持定义的车辆保有量(例如,按模型年份划分的特定地理区域中的车辆)。 应用程序缩放单元用于缩放需要向车辆发送或接收消息的服务。 可从任何缩放单元访问公共服务,并为应用程序和设备提供设备管理和订阅服务。

  1. 应用程序缩放单元将应用程序订阅到感兴趣的消息。 公共服务处理对车辆消息传送缩放单元组件的订阅。
  2. 车辆使用设备管理服务来发现其对车辆消息缩放单元的分配。
  3. 如有必要,使用车辆和设备预配工作流预配车辆。
  4. 车辆将消息发布到 MQTT 中转站
  5. 事件网格使用订阅信息路由消息。
    1. 对于不需要处理的消息和认领凭证,它会路由到相应应用程序缩放单元上的入口中心。
    2. 需要处理的消息会路由到D2C 处理逻辑,从而进行解码和授权(用户同意)。
  6. 应用程序使用其应用入口事件中心实例中的事件。
  7. 应用程序发布车辆的消息。
    1. 不需要进一步处理的消息会发布到 MQTT 中转站
    2. 需要进一步处理、工作流控制和授权的消息通过事件中心实例路由到相关的C2D 处理逻辑

组件

此参考体系结构引用以下 Azure 组件。

连接

  • Azure 事件网格允许通过 MQTT v5 加入设备、AuthN/Z 和发布订阅。
  • Azure Functions处理车辆消息。 它还可用于实现需要短期执行的管理 API。
  • 当托管 API 背后的功能包含部署为容器化应用程序的复杂工作负载时,Azure Kubernetes 服务 (AKS)是一种替代方法。
  • Azure Cosmos DB存储车辆、设备和用户同意设置。
  • Azure API 管理为现有的后端服务(例如车辆生命周期管理(包括 OTA)和用户同意管理)提供托管 API 网关。
  • Azure Batch高效运行大型计算密集型任务,例如车辆通信跟踪引入。

数据和分析

  • Azure 事件中心支持处理和引入大量遥测数据。
  • Azure 数据资源管理器提供对基于时序的车辆遥测数据的探索、管护和分析。
  • Azure Blob 存储存储视频等大型文档,并且可以跟踪和管护车辆数据。
  • Azure Databricks提供一套工具用于大规模维护企业级数据解决方案。 需要对大量汽车数据长时间运行操作。

后端集成

备选方法

选择正确的计算类型以实现消息处理和托管 API 取决于多种因素。 使用选择 Azure 计算服务指南以选择正确的服务。

示例:

  • Azure Functions适用于事件驱动的短期过程,例如遥测引入。
  • Azure Batch适用于高性能计算任务(例如解码大型 CAN 跟踪/视频文件)
  • Azure Kubernetes 服务,适用于复杂逻辑(例如命令和控制工作流管理)的托管、成熟的业务流程。

作为基于事件的数据共享的替代方法,如果目标是在数据湖级别执行批量同步,也可以使用Azure Data Share

方案详细信息

高级视图的关系图。

汽车 OEM 正在经历重大转型,从生产固定产品转向提供互联的软件定义汽车。 汽车提供一系列功能,例如无线更新、远程诊断和个性化用户体验。 这种转换使 OEM 能够根据实时数据和见解不断改进其产品,同时扩展其业务模型以包含新的服务和收入来源。

此参考体系结构允许汽车制造商和移动提供商:

  • 将反馈数据用作数字工程过程的一部分,从而推动产品持续改进、主动解决问题的根本原因并创造新的客户价值。
  • 通过与企业资源规划 (ERP) 和客户关系管理 (CRM) 等后端系统的业务集成,提供新的数字产品和服务,并将运营数字化。
  • 通过更广泛的智能移动生态系统安全地共享数据并满足特定于国家/地区的用户同意要求。
  • 与用于车辆生命周期管理和同意管理的后端系统集成,使用软件定义的车辆开发运营工具链简化并加速互联车辆解决方案的部署和管理。
  • 车辆和分析大规模存储并提供计算。
  • 以经济高效的方式管理与数百万台设备的车辆连接

可能的用例

OEM 汽车用例与提高车辆性能、安全性和用户体验有关。

  • 持续改进产品:分析实时数据并远程应用更新,从而提高车辆性能。
  • 工程测试车队验证:收集并分析来自测试车队的数据,从而确保车辆的安全性和可靠性。
  • 配套应用和用户门户:通过个性化应用和 Web 门户实现远程车辆访问和控制。
  • 主动修复和维护:根据数据驱动的见解预测并计划车辆维护。

更广泛的生态系统用例扩展了互联汽车应用,从而改进了整个交通格局中的车队运营、保险、营销和道路救援。

  • 互联商业车队运营:通过实时监视和数据驱动型决策优化了车队管理。
  • 数字车辆保险:根据驾驶行为自定义保险费并提供即时事故报告。
  • 基于位置的营销:根据司机的位置和偏好,向司机提供有针对性的营销活动。
  • 道路救援:使用车辆位置和诊断数据,为有需要的司机提供实时支持和帮助。

注意事项

这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负载质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架

可靠性

可靠性可确保应用程序符合你对客户的承诺。 有关详细信息,请参阅可靠性支柱概述

  • 考虑水平缩放以增加可靠性。
  • 使用缩放单元隔离法规不同的地理区域。
  • 自动缩放和预留实例:按需动态缩放并使用预分配实例优化成本,从而管理计算资源。
  • 异地冗余:跨多个地理位置复制数据,从而实现容错和灾难恢复。

安全

安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅安全性支柱概述

  • 保护车辆连接:请参阅有关证书管理的部分,了解如何使用 X.509 证书建立安全的车辆通信。

成本优化

成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅成本优化支柱概述

  • 每辆车的成本注意事项:通信成本应取决于提供的数字服务数。 根据运营成本计算数字服务的 RoI。
  • 根据消息流量建立成本分析做法。 随着更多服务的添加,互联车辆流量往往会随着时间的推移而增加。
  • 考虑网络和移动成本
    • 使用 MQTT 主题别名减少流量。
    • 使用高效的方法对有效负载消息进行编码和压缩。
  • 流量处理
    • 消息优先级:车辆往往具有重复的使用模式,会产生每日/每周需求高峰。 使用消息属性延迟处理非关键性消息或分析消息,从而平滑加载并优化资源使用。
    • 按需自动缩放。
  • 考虑数据应热/暖/冷存储多长时间。
  • 考虑使用预留实例来优化成本。

卓越运营

卓越运营涵盖了部署应用程序并使其在生产环境中保持运行的运营流程。 有关详细信息,请参阅卓越运营支柱概述

  • 考虑在统一 IT 操作过程中监视车辆软件(日志/指标/跟踪)、消息传送服务、数据和分析服务以及相关的后端服务。

性能效率

性能效率是指工作负载能够以高效的方式扩展以满足用户对它的需求。 有关详细信息,请参阅性能效率要素概述

  • 考虑对扩展 50,000 多台设备的解决方案使用缩放概念,尤其是需要多个地理区域时。
  • 仔细考虑引入数据(消息传送、流式处理或批处理)的最佳方式。
  • 考虑根据用例分析数据的最佳方式。

后续步骤

以下文章介绍了该体系结构中使用的一些概念:

  • 认领凭证模式用于支持处理大型消息,例如文件上传。
  • 部署戳涵盖了将解决方案扩展到数百万辆汽车所需的一般概念。
  • 节流描述了处理来自车辆的异常消息数所需的概念。

以下文章介绍了该体系结构中组件之间的交互: