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

  数字孪生(Digital Twin)可以被理解为现实中某些事物(也包括过程或服务)在数字虚拟环境中的表现。在本文中,你将了解到数字孪生在各个行业中所处的优势,以及Apache Kafka、物联网架构和机器学习之间的关系。在实际应用中,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等其他数据库。(子午物联ziwuiot.com)

  当然,Kafka的多次部署也可以被运用到数字孪生的架构中,在永久性存储等方面发挥巨大的作用。

声明:凡注明为其它来源的信息均转自其它平台,目的在于传递更多信息,并不代表本站观点及立场和对其真实性负责。若有侵权或异议请联系我们删除。
发表评论

相关文章

切换注册

登录

忘记密码 ?

切换登录

注册