用Kafka实现数字孪生的物联网架构

直播:近二十载从业老兵谈金融科技赋能的探索与实践

我们将从如下三个方面来讨论如何构建开放、且可扩展的数字孪生基础架构:

  • 数字孪生与数字线程。
  • 事件流、数字孪生与AI(机器学习)之间的关系。
  • 使用Apache Kafka和其他物联网平台的数字孪生物联网架构。

建立数字孪生的关键要点

我们首先来了解四个基础性的要点:

  • 事件流是物联网平台和其他后端应用程序/数据库的补充。
  • 大多数数字孪生架构都使用机器学习(ML)和统计模型来进行仿真、预测和推荐。
  • “数字孪生”一词通常是指单个资产的副本。在现实世界中,各种数字孪生比比皆是。
  • “数字线程”一词涵盖了一到多个数字孪生的整个生命周期(如下图所示)。

用Kafka实现数字孪生的物联网架构

数字孪生可以被运用到许多行业和领域,其中包括:

  • 减少宕机时间
  • 库存管理
  • 车队管理
  • 假设(what-if)模拟
  • 运营计划
  • 服务化
  • 产品开发
  • 卫生保健
  • 客户体验

实际上,数字孪生不仅为各个行业带来了自动化,而且增加了不同业务的价值和创新。

事件流、数字孪生与AI(机器学习)之间的关系

开发者需要通过机器学习,并运用数字孪生,来进行准确的预测。这两者存在着互补的关系。下图展示了不同的数字孪生如何利用统计方法和分析的模型:

用Kafka实现数字孪生的物联网架构

该示例包括了基于物理模型来模拟的各种假设情景,以及基于数据模型来估计剩余使用寿命(Remaining Useful Life,RUL)。可见,数字孪生和机器学习有着以下共同点:

  • 能够持续学习、监控与行动。
  • 良好的数据源是成功的关键。
  • 数据集越多越好。
  • 实时性、可扩展性和可靠性是关键的需求。

使用Apache Kafka来实现数字孪生,机器学习和事件流

Apache Kafka开源生态系统为机器学习提供了基础架构。下图展示了Kafka针对机器学习的架构。该架构为模型的训练、部署、评分和监视,提供了开放、可扩展、以及可靠性的实时处理。

用Kafka实现数字孪生的物联网架构

以下是数字孪生在实际应用过程中的五大常见特征:

连接性

  • 各类实物资产、企业软件与客户。
  • 通过双向通信,以获取命令和控制。

同态化(Homogenization)

  • 解耦和标准化。
  • 信息虚拟化。
  • 能与多个代理共享,且不受物理位置或时间的限制。
  • 成本更低,且能够轻松地开展测试、开发和预测。

可重新编程与智能化

  • 通过调整和改善特征,以开发出产品的新版本。

数字跟踪

  • 能够实现时光倒流(回溯),并通过分析历史事件,以诊断问题。

模块化

  • 能够对产品和生产模块进行设计和定制。
  • 调整不同的模型和机器模块。

为了实现上述特征,我们可以选用不同的物联网平台。根据物联网分析研究(IoT Analytics Research)的统计:截止到2019年,市场上存在着600多个物联网平台(请参见:https://iot-analytics.com/iot-platform-companies-landscape-2020/)。与此同时,它们中的许多工具和解决方案都能够结合在一起,共同发挥作用。

下面,我们来讨论几种典型的物联网平台:

  • 以Siemens S7和Modbus为首的工业物联网(IIoT)相关协议,以及与诸如OPC-UA之类标准的深度集成:它们往往并非某个单一的产品(通常是各种OEM的不同代码库)。虽然价格不菲,但是它们开放特定的接口,而且其可扩展性也十分有限。此类平台的典型代表包括:西门子MindSphere、思科Kinetic、GE Digital和Predix。
  • 云提供商的物联网产品:它们提供了完备的物联网管理工具,能够与其他云服务(如:存储、分析等)实现良好的集成。不过,它们往往被云提供商的平台所绑定,且无法支持混合与边缘计算。另外,它们不但扩展性有限,而且售价也不菲。此类平台的典型代表包括:AWS、GCP、Azure和Alibaba等。
  • 基于开放标准(如:MQTT)、且开源的物联网平台:它们能够开放核心的业务模型,且与基础架构无关。不过,它们在针对旧协议和专有协议的连接方面,可能不太成熟。此类平台的典型代表包括:Eclipse IoT、Apache PLC4X、Node-RED等开源框架、以及符合MQTT等标准的HiveMQ相关产品。

使用Apache Kafka和其他物联网平台的数字孪生架构

下面,我们根据数字孪生的上述五大特征,来讨论Kafka针对实时消息传递、集成与处理关键任务事件流等方面的作用:

  • 连接性:Kafka Connect可以针对IoT接口、大数据解决方案、以及云服务,提供免费且实时的大规模连接。
  • 同态化:Kafka实现了生产者和消费者之间真正的解耦。模式(schema)管理和实施可利用JSON Schema、Avro、Profobuf等不同技术,来实现数据的感知和标准化。
  • 可重新编程与智能化:作为微服务架构的实际标准,Kafka支持:关注点分离(Separation of concerns),域驱动设计(domain-driven design,DDD,请参见:https://www.confluent.io/blog/microservices-apache-kafka-domain-driven-design/),部署新的已解耦应用,实施版本控制,A/B测试与发布。
  • 数字跟踪:作为分布式提交日志,Kafka会按需将事件永久地追加、存储到您的时间点(永久保留时间可 = -1)。这非常适合为数字孪生构建数字跟踪。
  • 模块化:Kafka基础架构本身就是模块化、且可扩展的,其中包括:Kafka brokers、Connect、Schema Registry、REST Proxy等组件、以及使用Java、Scala、Python、Go、.NET、以及C++等不同语言的客户端应用。通过这种模块化,您可以轻松地在边缘、混合或全局场景中,构建合适的数字孪生架构,并能够将Kafka组件与任何其他物联网方案结合起来。

下面是五种适用于数字孪生的物联网架构。您可以根据它们的优缺点,在自己的整体企业架构、项目情况、以及其他方面,做出合理的选择。

方案1:数字孪生Monolith

直接使用物联网平台来集成和构建数字孪生,无需其他数据库或其他组件。

用Kafka实现数字孪生的物联网架构

方案2:将数字孪生作为外部数据库

物联网平台与其端点集成,数字孪生的数据被存储在诸如:MongoDB、Elastic、InfluxDB或Cloud Storage之类的外部数据库中。此类数据库仅用于存储,处理,以及仪表板分析等任务。

用Kafka实现数字孪生的物联网架构

同时,Tableau、Qlik或Power BI之类的商业智能(BI)工具也可以使用数据库的SQL接口,来实现交互式的查询和报告。

方案3:Kafka作为数字孪生和企业其余部分的主干

物联网平台仍然与其端点集成。Kafka作为中央事件流平台,提供与其他组件之间的解耦。此处中央层是开放、可扩展且可靠的。而此处的数据库同样被用于数字孪生的存储、以及仪表板分析。其他应用也会以实时、批处理、请求-响应通信等方式,使用来自Kafka的部分数据。

用Kafka实现数字孪生的物联网架构

方案4:Kafka作为物联网平台

作为中央事件流平台,Kafka可为物联网端点和其他应用提供关键任务的实时架构和集成层。在此方案中,数字孪生并未用到上述方案中提到的数据库,而是使用了Azure IoT Twin Twins之类的云端物联网服务。

用Kafka实现数字孪生的物联网架构

场景5:Kafka作为物联网平台

Kafka直接被用于实现数字孪生,而并不涉及到其他组件或数据库。同时,其他消费者会直接使用原始数据和数字孪生的数据。

用Kafka实现数字孪生的物联网架构

该方案的主要问题在于Kafka是否可以替换数据库、以及如何查询到数据(请参见:https://www.kai-waehner.de/blog/2020/03/12/can-apache-kafka-replace-database-acid-storage-transactions-sql-nosql-data-lake/)。在实际应用中,由于Kafka可以被用作数据库,因此它不会替代诸如:Oracle、MongoDB或Elasticsearch等其他数据库。

相关推荐