Eclipse Ditto 1.0:数字孪生构建者的框架
托马斯·雅克尔
Thomas Jäckle 是一名软件开发人员,自 2010 年以来一直在博世工作。自 2015 年起,他担任博世 IoT Things 云服务的首席软件开发人员,并自 2017 年起担任 Eclipse Ditto 项目的提交者和项目负责人。他对软件工艺充满热情;不断的学习是他的动力。 Thomas 拥有德国富特旺根大学计算机科学学士学位和应用架构硕士学位。
数字孪生是真实世界实体或系统的数字表示。它实现了代表物理对象的数据模型和过程,使数字世界中的物理对象更容易交互。例如,风车可能有一个数字孪生表示,用于控制风车和预测维护计划。 Gartner Group 预测,三分之二实施物联网的公司将在生产中部署数字孪生。
数字孪生的一个关键驱动因素是降低物联网部署的复杂性。物理资产的一致数字表示可以更轻松地开发数据分析、模拟、增强现实、产品维护等服务。
当我们第一次启动 Eclipse Ditto 项目时,我们的目标是让创建数字孪生变得更容易。我们想创建一个框架来提供一致的互操作格式,允许主题专家开发数字孪生。我们的想法是,如果我们开发了一个灵活的框架来处理物理世界和虚拟世界之间的基本数据交互,这将使数字孪生构建者能够专注于数字孪生领域。
Eclipse Ditto:用于在设备与其数字孪生之间架起桥梁的框架。
经过大量的需求发现、编码、测试和社区输入之后,我们很高兴推出 Eclipse Ditto 项目的 1.0 版本。我们确实将 Ditto 视为为数字孪生构建者提供设备即服务。
Eclipse Ditto – 设备即服务
同样适用于需要跨各种设备获得一致视图的数字孪生构建者。 Ditto 的核心是一个数据模型,称为“事物”,它提供物理设备的表示。 Ditto Thing 可通过 API 访问,该 API 允许数字孪生领域专家与设备进行交互。这个 API 本质上创建了一个设备即服务,用于与数字孪生进行交互。 Ditto 服务通过以下功能支持与数据模型的交互:
- 设备信息更改的持久性和通知
- 在不同的 Ditto Things 中搜索
- 有效载荷转换
- 限制访问 Ditto Things 某些部分的授权政策
- 直播频道与连接的设备建立直接互动
设备持久化和通知
Eclipse Ditto 会将设备的最新值保存在数据库中。这允许数字孪生查询设备的最后报告值。数字孪生还可以确定当值发生变化时需要通知它。如果应用程序想要更改设备中的某些内容,也可以根据更改通知设备。
搜索
Eclipse Ditto 提供了跨大量设备的广泛搜索功能。搜索查询可能包括生成所有当前双胞胎的列表或搜索高于特定数据阈值的双胞胎,例如。温度超过 20 度的设备。支持对报告的数据进行搜索。还支持搜索以查询设备元信息,例如。列出所有代表温度传感器的双胞胎。
例如,想要创建仪表板以显示一组设备的实时数据的应用程序可以使用 Ditto 搜索服务。
有效载荷转换
Eclipse Ditto 与设备和域无关。它可以支持已经部署的现有设备和新设计的设备。这些不同的设备格式化和传输数据的方式通常会有所不同。因此,Ditto 允许将不同的设备数据映射到一致的轻量级 JSON 模型。这允许 Eclipse Ditto 为一组异构设备提供一致的接口。
授权
Ditto 可以根据预定义的授权策略限制对 API 的访问。同上授权服务保护设备数据的隐私和完整性。只有预定义的授权客户端被授予对 Ditto Thing 的各个元素的读/写访问权限。客户端在 Ditto 中使用 OAuth 2.0 和 OpenID Connect 标准进行身份验证。
同样作为 IoT 平台的一部分
Eclipse Ditto 服务通常与某种类型的 IoT 平台一起部署。 Ditto 在云端运行并依赖于通过不同类型的连接服务(例如 Eclipse Hono、MQTT 代理、MS Azure IoT 等)与设备的连接。
直播频道
除了持久模式外,Ditto 还具有一个“实时”通道,可让应用程序直接与设备通信。使用实时通道,Ditto 充当路由器,通过设备连接层将请求转发到实际设备。此通道还可用于调用设备上的操作(例如“现在打开灯”)并接受来自设备的响应。同上直播频道确实会检查设备的授权策略,以确保只有经过授权的客户端才能访问设备信息。
Eclipse Ditto 不直接集成设备。它的重点在于为 Web 应用程序、移动应用程序或其他后端服务提供 API。同上 1.0:准备生产
正如我所提到的,Ditto 的 1.0 版本现已推出。这对我们的项目来说是一项重大成就。在 Eclipse Foundation 社区中,1.0 版本意味着很多事情:1) 我们的 API 是稳定的,2) 代码库已经成熟,3) 我们将在未来的版本中应用语义版本控制,4) 我们所有的 IP 问题都已解决由 Eclipse 基金会提供。
我们还在 Ditto 1.0 的水平可扩展性方面做了大量工作。在集群环境中运行,Ditto 现在可以扩展以支持数百万个事物(孪生)。此时,Ditto 已准备好用于生产。
同上社区和生态系统
我们希望 Ditto 成为创建数字孪生的行业标准。因此,Ditto 是 Eclipse 基金会 Eclipse IoT 工作组内的一个开源项目。我们相信开源社区是创建供应商中立社区的最佳方式。
Ditto 已经在建立一个健康的采用者社区。我的公司 Bosch.IO(前身为 Bosch Software Innovations)在 Bosch IoT Suite 中提供 Ditto 作为服务。 Aloxy、Othermo 和 Kiwigrid 等公司正在采用 Ditto 作为其物联网平台的一部分。例如,Aloxy 是一家工业物联网初创公司,专门监控工业价值。他们使用 Eclipse Ditto 创建一个通用 API,他们的客户可以使用这些 API 来查询、报告 Aloxy 值并与之交互。
加入我们
Eclipse Ditto 是一项社区努力,我想邀请所有人参与。有一个 Ditto 沙箱和一个示例存储库,供想要开始学习 Ditto 的开发人员使用。我们的项目托管在 github 上,因此欢迎 PR 和 Issues。如果您开始在解决方案中使用 Ditto,请告诉我们。我们真的很想围绕 Ditto 建立一个数字孪生社区。P>
工业技术