前言:
目前姐妹们对“apachethread”都比较重视,各位老铁们都需要知道一些“apachethread”的相关知识。那么小编也在网摘上网罗了一些对于“apachethread””的相关知识,希望朋友们能喜欢,你们快快来了解一下吧!数字孪生(Digital Twin)可以被理解为现实中某些事物(也包括过程或服务)在数字虚拟环境中的表现。在本文中,你将了解到数字孪生在各个行业中所处的优势,以及Apache Kafka、物联网架构和机器学习之间的关系。在实际应用中,Kafka通常被用作中央事件流平台,以那些实时流传感器的数据,构建可靠、且可扩展的数字孪生和数字线程。
我们将从如下三个方面来讨论如何构建开放、且可扩展的数字孪生基础架构:
数字孪生与数字线程。事件流、数字孪生与AI(机器学习)之间的关系。使用Apache Kafka和其他物联网平台的数字孪生物联网架构。
建立数字孪生的关键要点
我们首先来了解四个基础性的要点:
事件流是物联网平台和其他后端应用程序/数据库的补充。大多数数字孪生架构都使用机器学习(ML)和统计模型来进行仿真、预测和推荐。“数字孪生”一词通常是指单个资产的副本。在现实世界中,各种数字孪生比比皆是。“数字线程”一词涵盖了一到多个数字孪生的整个生命周期(如下图所示)。
数字孪生可以被运用到许多行业和领域,其中包括:
减少宕机时间库存管理车队管理假设(what-if)模拟运营计划服务化产品开发卫生保健客户体验
实际上,数字孪生不仅为各个行业带来了自动化,而且增加了不同业务的价值和创新。
事件流、数字孪生与AI(机器学习)之间的关系
开发者需要通过机器学习,并运用数字孪生,来进行准确的预测。这两者存在着互补的关系。下图展示了不同的数字孪生如何利用统计方法和分析的模型:
该示例包括了基于物理模型来模拟的各种假设情景,以及基于数据模型来估计剩余使用寿命(Remaining Useful Life,RUL)。可见,数字孪生和机器学习有着以下共同点:
能够持续学习、监控与行动。良好的数据源是成功的关键。数据集越多越好。实时性、可扩展性和可靠性是关键的需求。
使用Apache Kafka来实现数字孪生,机器学习和事件流
Apache Kafka开源生态系统为机器学习提供了基础架构。下图展示了Kafka针对机器学习的架构。该架构为模型的训练、部署、评分和监视,提供了开放、可扩展、以及可靠性的实时处理。
以下是数字孪生在实际应用过程中的五大常见特征:
连接性
各类实物资产、企业软件与客户。通过双向通信,以获取命令和控制。
同态化(Homogenization)
解耦和标准化。信息虚拟化。能与多个代理共享,且不受物理位置或时间的限制。成本更低,且能够轻松地开展测试、开发和预测。
可重新编程与智能化
通过调整和改善特征,以开发出产品的新版本。
数字跟踪
能够实现时光倒流(回溯),并通过分析历史事件,以诊断问题。
模块化
能够对产品和生产模块进行设计和定制。调整不同的模型和机器模块。
为了实现上述特征,我们可以选用不同的物联网平台。根据物联网分析研究(IoT Analytics Research)的统计:截止到2019年,市场上存在着600多个物联网平台(请参见:)。与此同时,它们中的许多工具和解决方案都能够结合在一起,共同发挥作用。
下面,我们来讨论几种典型的物联网平台:
以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,请参见:),部署新的已解耦应用,实施版本控制,A/B测试与发布。数字跟踪:作为分布式提交日志,Kafka会按需将事件永久地追加、存储到您的时间点(永久保留时间可 = -1)。这非常适合为数字孪生构建数字跟踪。模块化:Kafka基础架构本身就是模块化、且可扩展的,其中包括:Kafka brokers、Connect、Schema Registry、REST Proxy等组件、以及使用Java、Scala、Python、Go、.NET、以及C++等不同语言的客户端应用。通过这种模块化,您可以轻松地在边缘、混合或全局场景中,构建合适的数字孪生架构,并能够将Kafka组件与任何其他物联网方案结合起来。
下面是五种适用于数字孪生的物联网架构。您可以根据它们的优缺点,在自己的整体企业架构、项目情况、以及其他方面,做出合理的选择。
方案1:数字孪生Monolith
直接使用物联网平台来集成和构建数字孪生,无需其他数据库或其他组件。
方案2:将数字孪生作为外部数据库
物联网平台与其端点集成,数字孪生的数据被存储在诸如:MongoDB、Elastic、InfluxDB或Cloud Storage之类的外部数据库中。此类数据库仅用于存储,处理,以及仪表板分析等任务。
同时,Tableau、Qlik或Power BI之类的商业智能(BI)工具也可以使用数据库的SQL接口,来实现交互式的查询和报告。
方案3:Kafka作为数字孪生和企业其余部分的主干
物联网平台仍然与其端点集成。Kafka作为中央事件流平台,提供与其他组件之间的解耦。此处中央层是开放、可扩展且可靠的。而此处的数据库同样被用于数字孪生的存储、以及仪表板分析。其他应用也会以实时、批处理、请求-响应通信等方式,使用来自Kafka的部分数据。
方案4:Kafka作为物联网平台
作为中央事件流平台,Kafka可为物联网端点和其他应用提供关键任务的实时架构和集成层。在此方案中,数字孪生并未用到上述方案中提到的数据库,而是使用了Azure IoT Twin Twins之类的云端物联网服务。
场景5:Kafka作为物联网平台
Kafka直接被用于实现数字孪生,而并不涉及到其他组件或数据库。同时,其他消费者会直接使用原始数据和数字孪生的数据。
该方案的主要问题在于Kafka是否可以替换数据库、以及如何查询到数据(请参见:)。在实际应用中,由于Kafka可以被用作数据库,因此它不会替代诸如:Oracle、MongoDB或Elasticsearch等其他数据库。
当然,Kafka的多次部署也可以被运用到数字孪生的架构中,在永久性存储等方面发挥巨大的作用。
原文链接:
推荐阅读:
GitHub上30K+star的MyBatis源码解析文档,可解决95%Mybatis问题
标签: #apachethread