データマネジメント データマネジメント記事一覧へ

[データ駆動型社会を支える「データスペース」の実像─ハンズオンで理解するその価値と可能性]

Eclipse Dataspace Components(EDC)を使ってデータスペースを体験しよう(3):第10回

2024年11月6日(水)角井 健太郎、土橋 昌、八木 拓馬、渡邊 凜太郎(NTTデータグループ 技術革新統括本部)

ビジネスの高度化はもちろん、社会運営にとってもデータ活用の重要性は論を俟たない。一方で、データがサイロ化しシステムや組織内で留まっていては、その真価は発揮されない。データを十全に生かすには、信頼性を担保しながら組織や国境を越えて共有・連携するためのプラットフォーム、すなわち「データスペース」が必要となる。第8回から第11回にかけては、欧州で開発されたデータスペース構築用フレームワーク「Eclipse Dataspace Components(EDC)」を実際に動かすことで、データスペースに対する理解を深めることを目指す。本稿では、データ提供者・利用者間の契約をベースにしたデータ転送の手順を紹介する。

 第9回では、データスペース構築フレームワークの1つ「Eclipse Dataspace Components(EDC)」のサンプルプロジェクト「EDC Samples」を用いて契約締結を行いました。本稿では、第9回までに準備した環境を用い、EDCを用いたデータ転送をハンズオン形式で紹介します。

 データ転送は以下の3つの手順で行います(図1)。

  1. データ転送プロセスの開始
  2. データ転送状況の確認
  3. データの取得
図1:データ転送のイメージ
拡大画像表示

 以降の作業では、第8回で構築した環境および第9回で実行した作業を前提に説明します。なお、ここで扱うサンプルは簡易的なものであり、内部で扱うデータを永続化しません。そのため、もしコネクタを停止した場合は、再度アセットの登録や契約の締結が必要となります。

 本稿で紹介する手順を実行するために、まず第8回の流れに沿ってProvider側とConsumer側の2つのWSL2ウィンドウ(ターミナル)上にそれぞれのコネクタを起動し、さらにProvider側とConsumer側のそれぞれで、コマンド実行用のWSL2ウィンドウ(ターミナル)も起動してください。続いて、第9回の内容を実施し、「契約合意ID」を確認できるところまで作業してください。

データ転送プロセスの開始

 ここでは、ConsumerからProvider宛にコネクタ経由でデータ転送開始リクエストを送信する手順を解説します(図2)。

 具体的には、(1)ユーザー(データ利用者)からConsumerコネクタに、契約合意IDとともにデータ転送開始リクエストを送信します。(2)リクエストがProviderのコネクタに転送されます。(3)Providerのコネクタで契約合意IDを確認し、適切であれば転送プロセスが開始されます。(4)転送プロセスが開始された場合、Consumerに「データ転送プロセスID」が返されます。

図2:データ転送プロセスの開始のイメージ
拡大画像表示

 上述のプロセスを実行するためのに、まずはリクエストボディを作成します。第9回までの手順で取得した契約合意IDの値を、transfer/transfer-02-consumer-pull/resources/start-transfer.jsoncontractIdの値に入力します。なお、本稿に記載している値は筆者が実行した際の例なので、以下の手順を実行する際は、読者ご自身の値を用いるようにしてください。なお、プロジェクトをクローンした最初の状態では{{contract-agreement-id}}と記載されています。


cat transfer/transfer-02-consumer-pull/resources/start-transfer.json -s | jq

Consumerコネクタのコマンド例


{
  "@context": {
    "@vocab": "https://w3id.org/edc/v0.0.1/ns/"
  },
  "@type": "TransferRequestDto",
  "connectorId": "provider",
  "counterPartyAddress": "http://localhost:19194/protocol",
  "contractId": "97f2f6a7-8a03-4fc7-93d9-0b4146db3c9d",
  "assetId": "assetId",
  "protocol": "dataspace-protocol-http",
  "transferType": "HttpData-PULL"
}

実行結果例(太字部分は契約合意ID)

 上記のリクエストボディとともに、Consumerコネクタの/management/v3/transferprocessesパスのエンドポイントにリクエストを送信します。その結果、コネクタ経由でProvider宛にデータ転送プロセスの開始リクエストが送信されます。

 契約合意IDの値が適切であることがProvider側で確認された場合、以下のようにデータ転送プロセスID(Transfer process id)が記載された実行結果が得られます。 データ転送プロセスIDの値は、データ転送状況の確認の際に使いますので、お手元に控えておいてください。


curl -X POST "http://localhost:29193/management/v3/transferprocesses"   -H "Content-Type: application/json"   -d @transfer/transfer-02-consumer-pull/resources/start-transfer.json   -s | jq

Consumerコネクタのコマンド例


{
  "@type": "IdResponse",
  "@id": "5dbf2e81-f3d0-46c5-ba6e-6ed7955ae2ff",
  "createdAt": 1723531454719,
  "@context": {
    "@vocab": "https://w3id.org/edc/v0.0.1/ns/",
    "edc": "https://w3id.org/edc/v0.0.1/ns/",
    "odrl": "http://www.w3.org/ns/odrl/2/"
  }

実行結果例(太字部分はデータ転送プロセスID)

データ転送状況の確認

 次に、データ転送プロセスの状況(ステータス)を確認します(図3)。まず、(1)ユーザー(データ利用者)がConsumerコネクタにデータ転送プロセスのステータス確認依頼を送信。(2)ステータス確認依頼がProviderに転送され、(3)ステータスが返されます。

図3:データ転送状況の確認のイメージ
拡大画像表示

 ここでは、/management/v3/transferprocesses/{{transfer process id}}のパスのエンドポイントにステータス確認依頼を送信します。なお、上記の{{transfer process id}}の部分は、先の作業で得られたデータ転送プロセスIDに置き換えてください。

 適切にプロセスが開始されている場合、実行結果内のstate欄の値がSTARTEDとなります。


curl http://localhost:29193/management/v3/transferprocesses/{{transfer processed}} -s | jq

Consumerコネクタのコマンド例


{
"@id":"5dbf2e81-f3d0-46c5-ba6e-6ed7955ae2ff",
"@type":"TransferProcess",
"state":"STARTED",
"stateTimestamp":1723531456163,
"type":"CONSUMER",
"callbackAddresses":[],
  "correlationId": "cb1adb8f-df91-41fe-80c0-c95aaf02c809",
  "assetId": "assetId",
  "contractId": "69bc1fd5-f421-436d-aeda-04cc18cc2f4b",
  "transferType": "HttpData-PULL",
  "@context": {
    "@vocab": "https://w3id.org/edc/v0.0.1/ns/",
    "edc": "https://w3id.org/edc/v0.0.1/ns/",
    "odrl": "http://www.w3.org/ns/odrl/2/"
  }
}

実行結果例(太字部分はデータ転送プロセスのステータス)

●Next:鍵の受け渡しを通じた安全なデータ取得の流れ

この記事の続きをお読みいただくには、
会員登録(無料)が必要です
  • 1
  • 2
バックナンバー
データ駆動型社会を支える「データスペース」の実像─ハンズオンで理解するその価値と可能性一覧へ
関連記事

トピックス

[Sponsored]

Eclipse Dataspace Components(EDC)を使ってデータスペースを体験しよう(3):第10回ビジネスの高度化はもちろん、社会運営にとってもデータ活用の重要性は論を俟たない。一方で、データがサイロ化しシステムや組織内で留まっていては、その真価は発揮されない。データを十全に生かすには、信頼性を担保しながら組織や国境を越えて共有・連携するためのプラットフォーム、すなわち「データスペース」が必要となる。第8回から第11回にかけては、欧州で開発されたデータスペース構築用フレームワーク「Eclipse Dataspace Components(EDC)」を実際に動かすことで、データスペースに対する理解を深めることを目指す。本稿では、データ提供者・利用者間の契約をベースにしたデータ転送の手順を紹介する。

PAGE TOP