技術革新統括本部)リストビジネスの高度化はもちろん、社会運営にとってもデータ活用の重要性は論を俟たない。一方で、データがサイロ化しシステムや組織内で留まっていては、その真価は発揮されない。データを十全に生かすには、信頼性を担保しながら組織や国境を越えて共有・連携するためのプラットフォーム、すなわち「データスペース」が必要となる。Components(EDC)」を実際に動かすことで、データスペースに対する理解を深めることを目指す。本稿では、データスペースを通じたデータ交換の前提となるデータ提供者・利用者間の契約締結の仕組みを解説する。Samples」を用いて、データ交換を行うための環境構築を行いました。第9回となる本稿以降では、「契約締結」と「データ転送」の2つに分けて、EDCを用いたデータ転送のための契約交渉の一連の流れをハンズオン形式で解説します。手順の解説にあたり、第8回と同様、データ提供側を「Provider」、データ利用側を「Consumer」と呼ぶこととします。本稿では契約締結について解説します(図1)。今回扱う契約締結は、大まかに「データ交換を行うためのデータ利用者・提供者の合意形成」を指し、以下の6つの手順で行います。作業では、第8回と同様にProvider側とConsumer側のそれぞれのコマンド実行用WSL2ウィンドウ(ターミナル)も起動していることを前提に進めます。第8回の手順後に実行環境を終了した場合は、再度、解説に従ってProvider側とConsumer側のWSL2ウィンドウ(ターミナル)上にそれぞれのコネクタを起動させるようにしてください。図2のようにウィンドウを配置すると、コネクタのログと実行結果をそれぞれProvider側とConsumer側で見比べながら進められます。Sampleプロジェクトのトップディレクトリに移動してください。以降のコマンド実行時には当該ディレクトリに移動してあることを前提にパスを記載しています。データの場所を示す「アセット」の作成ProviderとConsumerとの間でやり取りされるのはデータの実体ではなく、「アセット」と呼ばれるオブジェクトです(※1)。アセットにはデータの場所が登録されており、参照することでそのデータにアクセスできるようになります。ここでは、Providerのコネクタでアセットを作成する方法を解説します(図3)。Provider側のコマンド実行用WSL2ウィンドウ(ターミナル)で作業します。HTTPを用いてアクセスできるデータのURLをアセットに指定します。プロジェクトに含まれている以下のJSONファイルは、今回登録するassetIdというIDのアセットの情報を示しています。dataAddress内にはデータの場所が記載されています。baseUrlにはデータのURL、typeはデータのアクセス方法を指しています。HttpDataはSHTTPリクエストを通じてデータを取得することを示しています。JSONファイルを、Provider側コネクタの/management/v3/assetsというパスのエンドポイントに送信します。これにより、新しいアセットがProvider上に作成されます。実行結果からassetIdというIDのアセットが作成されたことを確認できます。次に、作成したアセットに対応するポリシーを作成します。ポリシーとは、本稿において契約を締結するConsumerのように、何らかのアクションを行うもの(EDCの開発者ドキュメントでは“subject”)が満たさなくてはいけない必要条件です(※2)。ポリシーにはさまざまな条件を定義できます。EDCの開発者ドキュメントでは、「契約を結ぶ際にはその組織のヘッドクォーターがある地域になくてはならない」というような例を挙げています。図4:ポリシー作成のイメージ拡大画像表示ここでは、aPolicyというIDのポリシーを作成します。引き続きProvider側のコマンド実行用WS2ウィンドウ(ターミナル)で作業してください。プロジェクトに含まれている以下のJSONファイルを用います。permission列に許可、prohibition列に禁止事項、obligation列に義務が記載されます。今回は例のため、いずれも空にします。そのためaPolicyは、だれに対しても特別な条件なくすべてアクセスを許可するポリシーになります。以下の例ではpermission列は空になっているため何も許可していないように見えますが、permission列が空の場合はすべて許可する実装になっています(後述のポイント1を参照)。次に、Providerコネクタの/management/v3/policydefinitionsのパスのエンドポイントに上記のJSONを送信します。これでポリシーの作成は完了です。Connectorの実装では、ポリシーを評価するためにorg.eclipse.edc.policy.evaluator.PolicyEvaluatorのvisitPolicyメソッドを呼び出します。その実装は以下のとおりですが、もしpermissionなどに与えた値が空の場合は、ruleProblems.isEmpty()の戻り値が真になります。結果として、本稿のケースではConsumerがどのアセットでも利用可能となります(※3)。ruleProblems.isEmpty();アセットとポリシーを紐づける「コントラクト定義」ここでは「コントラクト定義」を作成します(図5)。コントラクト定義とは、大まかには、先の手順で作成したアセットとポリシーとを紐づけたものを指します。どのポリシーがどのアセットに対して有効かを定義するものともいえます(※4)。図5:コントラクト定義作成のイメージ拡大画像表示コントラクト定義には、以下の3つの要素が含まれます。アセット提供を許可するかを規定します。地理的な制約を設けて、特定の地域内のConsumerだけがアセットにアクセスできるようにし、地域外のConsumerのカタログに表示されないようにする、といった条件を設定できます。●コントラクトポリシー:”どのような条件で”契約交渉を開始できるかを規定します。データにアクセスする場合はその使用ログを提出する必要がある、といった条件を設定できます。●アセットセレクタ:クエリ表現(※5)を使って定義され、対象とするアセットを選択できます。これにより、特定の条件を満たすアセットに対し、アクセスポリシー及びコントラクトポリシーの下で条件判定できるようになります(後述のポイント2を参照)。本稿で作成するコントラクト定義は、以下のJSONに記載されている内容です。今回の例では、assetSelectorで特にフィルタ条件を指定せず、accessPolicyとcontractPolicyではに先の手順で作成したaPolicyというIDのアセットを指定しています。}実行結果例Providerコネクタの/management/v3/contractdefinitionsというパスのエンドポイントに上記のJSONを送信します。これにより、aPolicyに記載されたアクセス許可をすべてのアセットに付与したコントラクト定義を作成できます。コントラクト定義の作成は完了です。これで、Consumer側から契約交渉を申し込むための準備が整いました。ポイント2:assetSelectorについてEDCの開発者ドキュメントには、以下のような例が載っています。edc:assetsSelectorに値が含まれていますが、ここではfoo=barというプロパティをもつアセットが対象になる、ということを表しています。このようなクライテリアを用いた選択はやや複雑ですが便利です。詳しくは上述のドキュメントを参照ください。目指すべきID起点のゼロトラストとは?未知の脅威をほぼ100%検出/排除。最新「ソフトウェアサプライチェーン攻撃」の手口とその防ぎ方とは?ワークプレイスでの生成AI活用の“現実解”あるべきクライアント環境、求められる要件とは生成AIがビジネスコンテキストを理解し、プロセス改善を提案。10の寿命は残り1年半。人材不足解消の鍵はノーコード活用、データ連携とAI/IoTで真のハイパーオートメーションの実現をDX支援のための先進技術は自社を“実験場”に─データ仮想化や生成AIの意義と効果とは?ハイブリッドワークで浮上した会議の不平等性。Leadersの会員限定公開記事を読むことができます。Libraryもご利用いただけます。目指すべきID起点のゼロトラストとは?未知の脅威をほぼ100%検出/排除。最新「ソフトウェアサプライチェーン攻撃」の手口とその防ぎ方とは?ワークプレイスでの生成AI活用の“現実解”あるべきクライアント環境、求められる要件とは生成AIがビジネスコンテキストを理解し、プロセス改善を提案。10の寿命は残り1年半。人材不足解消の鍵はノーコード活用、データ連携とAI/IoTで真のハイパーオートメーションの実現をDX支援のための先進技術は自社を“実験場”に─データ仮想化や生成AIの意義と効果とは?ハイブリッドワークで浮上した会議の不平等性。脱却し、プロセス変革を遂げるために何をなすべきか。最新動向を中心にプロセスマイニングの実践のさまをお届けする。ご所属のお客様でも、ご所属企業(または団体)におけるIT化を推進されるお立場の方にもお読みいただけます。Components(EDC)を使ってデータスペースを体験しよう(2):第9回ビジネスの高度化はもちろん、社会運営にとってもデータ活用の重要性は論を俟たない。一方で、データがサイロ化しシステムや組織内で留まっていては、その真価は発揮されない。データを十全に生かすには、信頼性を担保しながら組織や国境を越えて共有・連携するためのプラットフォーム、すなわち「データスペース」が必要となる。Components(EDC)」を実際に動かすことで、データスペースに対する理解を深めることを目指す。本稿では、データスペースを通じたデータ交換の前提となるデータ提供者・利用者間の契約締結の仕組みを解説する。