AWS Architecture Blog

本系列博客分为三部分,指导您在 AWS 上实施 Eclipse Dataspace Components (EDC),从基础概念到生产部署。第 1 部分通过 IDSA 标准、Dataspace Protocol (DSP) 和 EDC 核心架构建立理论基础。第 2 部分提供使用 Amazon Elastic Container Service (Amazon ECS)、Amazon AuroraAmazon API Gateway 等服务的生产就绪 AWS 部署模式。第 3 部分通过成本优化策略和在 AWS 上运行高效、可扩展数据空间基础设施的实用指导完成整个旅程。

International Data Spaces Association (IDSA) 是一个非营利组织,致力于建立和推广数据空间标准。数据空间被定义为“促进不同实体之间可互操作数据集共享的一组技术服务”。在技术层面,数据空间有参与者:数据消费者和数据提供者。中央有一个 Dataspace Governance Authority (DSGA)。DSGA 管理数据空间,执行规则和策略,并向参与者颁发成员凭证。

IDSA 规则和规范在 Dataspace Protocol (DSP) 中实现。DSP 已成为 Eclipse Specification 项目,可在 Dataspace Protocol GitHub 仓库中找到。标准化正在开发中,目前处于批准阶段,作为 ISO/IEC DIS 20151Eclipse Dataspace Components (EDC) 提供根据 IDSA 要求实现数据空间的技术组件。

这些组件包括联邦目录 (FC)、连接器和身份中心。FC 包含从数据空间中多个参与者收集的目录聚合存储库。这些目录通过定期爬取参与者的数据资产并将其存储在本地缓存中获得,以消除按需单独查询每个参与者的需要。连接器是支持参与者之间共享数据的软件,身份中心管理参与者在数据空间中的凭证。Amazon Web Services (AWS) 提供全面的云基础设施,支持部署和运行 EDC 连接器等数据空间组件。AWS 提供可扩展的计算、存储和网络服务,帮助您构建符合 IDSA 标准和 ISO/IEC DIS 20151 规范的安全、合规且可互操作的数据空间。

为了以去中心化方式验证数据空间中的身份,使用 Decentralized Claims Protocol (DCP)。DCP 代表 DSP 之上的覆盖层,用于在网络参与者之间建立信任。当发行者需要向验证者证明其身份时,他们首先生成 Decentralized Identifier (DID),其中包含有关其身份的信息。发行者将 Verifiable Credential (VC) 存储在其身份中心中。可验证凭证类似于证书:证书颁发机构验证公钥,而凭证发行者使用特定属性验证 DID。验证者查找发行者的 DID,并使用从 DID 文档中获得的信息验证 VC。

High-level diagram showing how DCP establishes trust between an issuer and verifier using DIDs and Verifiable Credentials

Figure 1: High-level diagram of the Decentralized Claims Protocol (DCP)

Simplified overview showing how a verifier resolves a DID document to verify credentials

Figure 2: Simplified overview of DID document processing

EDC 的最后一个元素是不同类型的策略,包括成员资格、访问、合同和使用策略。

连接器的作用

EDC 连接器分为两部分:控制平面和数据平面。控制平面处理合同谈判,并向数据平面发送消息以启动数据传输。数据平面负责将数据从提供者的 EDC 连接器传输到消费者的 EDC 连接器,跨越不同的法律实体。

Diagram showing the EDC connector architecture with separate control plane and data plane

Figure 3: Overview of the connector control and data plane

EDC 连接器开源项目的结构

Connector 仓库作为 EDC 项目的一部分,定义了连接器控制平面和数据平面的实现方式。我们提供仓库结构的概述:

  • /spi – Service Provider Interface (SPI) 是定义 EDC 连接器内模块如何通信的架构基础。它包含每个组件必须实现的基础接口和契约,建立标准化的集成模式。此层还充当开发人员的蓝图,在保持关注点清晰分离并确保核心组件和自定义组件之间兼容性的同时扩展 EDC 连接器功能。
  • /core – Core 模块代表核心 SPI 实现。它包含连接器基本操作的实际工作代码,包括关键服务的默认实现和数据共享的业务逻辑。
  • /extensions – Extensions 层通过真实世界的集成展示了连接器的模块化插件架构,包括与 AWS 等主要云提供商的连接。这些扩展既作为参考实现,又作为常见企业集成场景的即用型组件。

SPI 定义契约,Core 实现基础,Extensions 添加专门功能。这三层协同工作,创建一个灵活、可扩展的数据空间连接器系统。“原版”Eclipse EDC 连接器默认不捆绑 AWS 扩展。要添加特定于 AWS 服务的功能,例如与 Amazon Simple Storage Service (Amazon S3)、AWS Secrets ManagerAmazon DynamoDB 的集成,您需要将相应的 AWS 扩展包含到自定义 EDC 控制平面和数据平面构建中。

高级 EDC 自定义指南

为原生 AWS 服务集成自定义 EDC 连接器,创建一个可使用 AWS 托管服务进行存储、安全性和可扩展性的专用解决方案。以下步骤帮助您的连接器原生集成 Amazon S3 等服务用于数据存储(例如用作 Asset Administration Shell “Submodel Server”)和 AWS Secrets Manager 用于凭证管理,而不是依赖自管组件的操作。

EDC 使用基于 Gradle 的模块化插件架构构建。原版连接器仅提供核心功能。要与特定云服务或持久性后端集成,您需要组装一个自定义构建,将 EDC 的核心模块与所需的扩展组合在一起。自定义围绕三个概念展开:版本目录、启动器模块和项目设置文件。

第 1 步:版本目录

版本目录 (gradle/libs.versions.toml) 是所有依赖项及其版本的集中注册表。在这里,您声明连接器需要使用的 EDC 模块、云提供商扩展和第三方库。EDC 在 org.eclipse.edc.aws Maven 组下发布其 AWS 扩展。您将这些与核心 EDC 工件 (org.eclipse.edc) 一起引用,版本号兼容。此单个文件确保项目中的所有模块共享一致的依赖版本。

第 2 步:启动器模块

启动器模块是实际的可部署单元:一个用于控制平面,一个用于数据平面。每个启动器都是一个小型 Gradle 子项目,其 build.gradle.kts 列出运行时要捆绑的扩展。典型的控制平面启动器可能包括核心控制平面模块、元数据持久性扩展(如 PostgreSQL 或 DynamoDB)、保险库扩展(如 HashiCorp Vault 或 AWS Secrets Manager)以及目标存储系统的任何配置扩展。数据平面启动器遵循相同模式,包含特定于数据平面的模块。两个启动器通常使用 Gradle 插件生成单个可执行 JAR。您只包含实际使用的内容,使连接器保持轻量级并根据您的独特需求进行定制。

第 3 步:项目设置

项目设置文件 (settings.gradle.kts) 向 Gradle 注册所有模块:您的启动器子项目和您可能在本地开发的任何自定义扩展。如果您编写自己的扩展,例如 DynamoDB 支持的资产存储,您将其放在 extensions/ 目录中并在此处注册,以便您的启动器可以将其作为项目依赖项引用。

结果项目结构通常如下所示:

my-connector/
├── control-plane/
│   └── build.gradle.kts       # Control plane launcher
├── data-plane/
│   └── build.gradle.kts       # Data plane launcher
├── extensions/                # Optional: Custom extension code
├── gradle/libs.versions.toml  # All dependency versions
├── build.gradle.kts           # Root build config
└── settings.gradle.kts        # Subproject registrations

作为 Dataspace Connector on AWS 项目的一部分,提供了 EDC 在 AWS 上自定义的开源参考实现。在本文中,您了解了使用新兴数据空间架构进行安全、跨组织数据共享的基础知识。我们涵盖了 ISO/IEC DIS 20151 数据空间标准化中包含的两个协议 DSP 和 DCP,并讨论了 EDC 连接器(数据空间参与者所需的主要软件)及其自定义方式。

第 2 部分,我们将探索 AWS 上 EDC 连接器的生产就绪部署模式,研究支持数据空间基础设施安全性、可靠性和运营效率的架构最佳实践。要开始使用,请探索 Dataspace Connector on AWS 项目,了解其 Gradle 构建设置如何配置为支持 Amazon DynamoDB 进行无服务器、低成本元数据持久性。

参考资料

关于作者