宝马汽车共享应用程序依赖强大的MQTT Broker实现可靠连接

前言

        BMW Mobility Services(宝马出行服务) 是 BMW 集团旗下的一个业务集团,致力于开发创新的解决方案,以满足城市人口不断变化的出行需求。到 2030 年,预计超过 60% 的世界人口将于城市居住,因此,BMW Mobility Services 正在致力于打造推出如汽车共享等融入城市生活方式的出行服务及其他出行概念。

背景简介

        BMW Mobility Services 针对车队运营商开发了一项提供此类服务的汽车共享产品。该服务使车队运营商能够实现车队远程管理、单个车辆命令远程发出(例如锁定/解锁)以及每辆车数据的远程收集。BMW 集团的汽车共享服务“DriveNow”(自 2019 年 2 月 22 日起成为 SHARE NOW 的一部分)使用的即是该汽车共享产品,当时已在欧洲 12 个城市完成推广。

技术难点

        普遍可用性是汽车共享服务的关键标准之一,客户都希望汽车能够及时可靠使用,然而,由于覆盖范围、地区气候以及其他不确定因素等,许多城市的网络无法保证可靠连接。解决网络延迟和网络可靠性问题是移动行业的一个关键挑战。

        此处引入传统汽车行业模式与车辆远程通信基于的“触发拉动概念”,车辆通信通过 SMS 消息启动,该消息会唤醒车载客户端系统,然后启动 HTTP 会话以连接后端云服务。

这个概念的挑战在于:

① SMS 是不可预测的;

② 考虑到消息大小以及建立 HTTP 会话所需的消息数量,HTTP 速度很慢且网络成本很高。

        为了成功实现汽车共享应用程序,就需要一个更为可靠的替代方案完成消息传递。MQTT 作为一种稳定可靠的物联网协议,常用于建立 IP 连接并实现远程设备数据移动,其轻量级设计、发布/订阅方法和服务质量级别十分吻合汽车共享应用程序的可靠性及效率要求。

        将 MQTT 用于汽车共享服务是宝马移动服务乃至汽车行业的一大创新。BMW Mobility Services 在寻找能够支持此项目的行业合作伙伴过程中,基于对 IoT 和 MQTT 的广泛调查,最终选择 HiveMQ 作为搭建此项目的 MQTT 平台。

应用成效

        自2014 年起,BMW Mobility Services 便开始使用 HiveMQ 完成其汽车共享服务的消息传递。BMW Mobility Services 汽车共享服务目前正在使用的 HiveMQ 架构由数百个Java编写的停靠微服务组成,这些微服务运行在 Amazon Web Services(亚马逊网络服务)托管的Kubernetes集群上。

        HiveMQ 每分钟可处理来自高达 80,000 个同时连接的客户端、超过 90,000 个事务的生产负载,最重要的是,BMW Mobility Services 可在网络服务不可靠的领域中为客户提供可靠服务。

        考虑到 HiveMQ 带来的巨大效益,BMW Mobility Services 又采用了 HiveMQ 扩展方案,以充当在后端微服务之间移动数据的内部消息传递总线。

        BMW Mobility Services 使用 HiveMQ 扩展作为其后端系统内部数据共享平台,使用 MQTT 发布/订阅模式,后端服务可以轻松订阅经由 HiveMQ 代理传递的车辆数据。例如,分析服务开发了一个 MQTT 客户端,可将其对应的消息馈送到 Kafka 中进行进一步分析,车辆数据可立即被后端服务转换,由此,数据集成过程变得更加直接、可扩展。

HiveMQ 简介

        HiveMQ 是一个基于 MQTT 数据传输的通信平台,旨在将数据快速、高效、可靠地传递给连接的物联网设备,HiveMQ 使用 MQTT 协议在设备和企业平台之间进行实时、双向的数据推送。

        HiveMQ 的建立是为了解决企业在构建新的物联网应用时面临的一些关键技术挑战,包括:

  • 构建可靠、可扩展的关键业务物联网应用

  • 快速的数据交付,以满足终端用户对响应式物联网产品的期望

  • 通过有效利用硬件、网络和云资源降低运营成本

  • 将物联网数据整合到现有的企业系统中

        HiveMQ 提供免费版专业版企业版 MQTT Broker 产品,并提供 Kafka、企业安全及 MQTT Broker 桥接三种企业级扩展套件,HiveMQ 还提供高效的 MQTT 客户端及云平台,多方位满足用户需求。