(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-02
(45)【発行日】2023-05-15
(54)【発明の名称】通信プログラム、通信方法および通信装置
(51)【国際特許分類】
G06F 21/60 20130101AFI20230508BHJP
【FI】
G06F21/60
(21)【出願番号】P 2019204858
(22)【出願日】2019-11-12
【審査請求日】2022-07-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】西間木 哲
【審査官】平井 誠
(56)【参考文献】
【文献】国際公開第2019/138668(WO,A1)
【文献】米国特許出願公開第2021/0080935(US,A1)
【文献】特開2019-049930(JP,A)
【文献】米国特許出願公開第2019/0080422(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
ネットワークに含まれる複数の通信装置に実行させる通信プログラムであって、
データを提供する側の第1の通信装置の第1のコンピュータに、前記データおよび前記データの属性情報を含む第1のメタデータを登録させ、
前記データを利用する側の第2の通信装置の第2のコンピュータに、前記データを加工して利用する際の加工サービスおよび前記加工サービスの属性情報を含む第2のメタデータを登録させ、
前記第1のコンピュータに、前記第1のメタデータと前記第2のメタデータにもとづいて前記加工サービスの承認可否を判定させ、
前記データを加工する側の第3の通信装置の第3のコンピュータに、前記承認可否の判定結果が承認可の場合に、前記第1の通信装置および前記第2の通信装置から前記データおよび前記加工サービスへのアクセスを不可とするデータ加工環境上で前記加工サービスにもとづくデータ加工を実行させる、
通信プログラム。
【請求項2】
前記第1のコンピュータに、前記データを模擬した模擬データを登録させ、
前記第2のコンピュータに、前記模擬データをもとに作成した前記加工サービスにもとづく情報を含む第1のトランザクションを発行させて、前記第1のコンピュータに前記データへのアクセスを要求させ、
前記第1のコンピュータに、前記第1のトランザクションにもとづいて前記加工サービスの承認可否を判定させ、前記承認可否の判定結果を承認可とした場合、前記データを利用した前記加工サービスを許可する情報を含む第2のトランザクションを発行させて、前記第2のコンピュータに対して前記データを前記加工サービスによって加工した加工データへのアクセスを承認させる、
請求項1記載の通信プログラム。
【請求項3】
前記第3のコンピュータに、
前記データの第1のハッシュ値を算出させ、
前記第1のハッシュ値と、前記第1のトランザクションに含まれる前記データの第2のハッシュ値とを比較させて、同一の値の場合に、前記データ加工環境に前記データを登録させる、
請求項2記載の通信プログラム。
【請求項4】
前記第3のコンピュータに、
前記加工サービスの第3のハッシュ値を算出させ、
前記第3のハッシュ値と、前記第2のトランザクションに含まれる前記加工サービスの第4のハッシュ値とを比較させて、同一の値の場合に、前記データ加工環境に前記加工サービスを登録させる、
請求項2記載の通信プログラム。
【請求項5】
前記第3のコンピュータに、
前記データ加工環境に登録した前記データに一時的な第1の情報を付加させ、前記データを削除した場合は前記第1の情報を削除させ、
前記データ加工環境に登録した前記加工サービスに一時的な第2の情報を付加させ、前記加工サービスを削除した場合は前記第2の情報を削除させて、
前記第1のコンピュータおよび前記第2のコンピュータに対して、前記データ加工環境内の前記データおよび前記加工サービスの有無を、前記第1の情報および前記第2の情報にもとづいて検証可能とさせる、
請求項1記載の通信プログラム。
【請求項6】
複数のデータ加工環境を含むデータ加工環境群がある場合、
前記第1のコンピュータおよび前記第2のコンピュータに、
前記第1のメタデータに含まれる前記データの識別子に対応する前記データ加工環境群のうちの複数の第1のデータ加工環境群識別子と、前記第2のメタデータに含まれる前記加工サービスの識別子に対応する前記データ加工環境群の複数の第2のデータ加工環境群識別子とで共通する共通データ加工環境識別子を選択し、選択した前記共通データ加工環境識別子を有する前記データ加工環境を前記データ加工環境群のうちから選択させる、
請求項1記載の通信プログラム。
【請求項7】
前記第1の通信装置は、第1の分散台帳の記憶領域を有する第1の記憶部を備え、
前記第2の通信装置は、第2の分散台帳の記憶領域を有する第2の記憶部を備え、
前記第3の通信装置は、第3の分散台帳の記憶領域を有する第3の記憶部を備え、
前記第1のコンピュータ、前記第2のコンピュータおよび前記第3のコンピュータそれぞれに、前記第1の分散台帳、前記第2の分散台帳および前記第3の分散台帳に登録される情報を共有化させる、
請求項1記載の通信プログラム。
【請求項8】
ネットワークに含まれる複数の通信装置に実行させる通信方法であって、
データを提供する側の第1の通信装置は、前記データおよび前記データの属性情報を含む第1のメタデータを登録し、
前記データを利用する側の第2の通信装置は、前記データを加工して利用する際の加工サービスおよび前記加工サービスの属性情報を含む第2のメタデータを登録し、
前記第1の通信装置は、前記第1のメタデータと前記第2のメタデータにもとづいて前記加工サービスの承認可否を判定し、
前記データを加工する側の第3の通信装置は、前記承認可否の判定結果が承認可の場合に、前記第1の通信装置および前記第2の通信装置から前記データおよび前記加工サービスへのアクセスを不可とするデータ加工環境上で前記加工サービスにもとづくデータ加工を実行する、
処理を実行する通信方法。
【請求項9】
ネットワークに含まれる通信装置であって、
前記ネットワークを介して他装置に接続して通信制御を行う制御部と、
分散台帳の記憶領域を有する記憶部と、
を備え、
前記制御部は、
データを提供する側の第1の通信装置として機能する場合、前記データおよび前記データの属性情報を含む第1のメタデータを登録し、
前記データを利用する側の第2の通信装置として機能する場合、前記データを加工して利用する際の加工サービスおよび前記加工サービスの属性情報を含む第2のメタデータを登録し、
前記第1の通信装置として機能する場合、前記第1のメタデータと前記第2のメタデータにもとづいて前記加工サービスの承認可否を判定し、
前記データを加工する側の第3の通信装置として機能する場合に、前記承認可否の判定結果が承認可の場合、前記第1の通信装置および前記第2の通信装置から前記データおよび前記加工サービスへのアクセスを不可とするデータ加工環境上で前記加工サービスにもとづくデータ加工を実行する、
通信装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信プログラム、通信方法および通信装置に関する。
【背景技術】
【0002】
近年、企業(組織)が保有するデータを互いに出し合い、利活用することで、新規ビジネスを創出する動きが盛んである。このような企業間のデータ利活用を活性化させる場として、データ流通ネットワークが注目されている。
【0003】
データ流通ネットワークに関連する技術としては、例えば、ブロックチェーンによる分散台帳技術を利用してデータを流通させるネットワークが提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2019/004118号
【文献】特開2018-128723号公報
【文献】特開2018-124924号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、データ流通ネットワークでは、データの二次利用(複製、引用等)による他者への漏洩が問題になっている。また、データそのものでなくてもデータの加工サービスにおけるデータの処理方法や分析方法といったノウハウは他者に公開できない場合がある。データ流通ネットワークを円滑に運営するためにも、データの二次利用と加工サービスの漏洩の防止を行うデータ流通ネットワークが要望されている。
【0006】
1つの側面では、本発明は、データの二次利用と加工サービスの漏洩の防止を図った通信プログラム、通信方法および通信装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、ネットワークに含まれる複数の通信装置に実行させる通信プログラムが提供される。通信プログラムは、データを提供する側の第1の通信装置の第1のコンピュータに、データおよびデータの属性情報を含む第1のメタデータを登録させ、データを利用する側の第2の通信装置の第2のコンピュータに、データを加工して利用する際の加工サービスおよび加工サービスの属性情報を含む第2のメタデータを登録させ、第1のコンピュータに、第1のメタデータと第2のメタデータにもとづいて加工サービスの承認可否を判定させ、データを加工する側の第3の通信装置の第3のコンピュータに、承認可否の判定結果が承認可の場合に、第1の通信装置および第2の通信装置からデータおよび加工サービスへのアクセスを不可とするデータ加工環境上で、加工サービスにもとづくデータ加工を実行させる。
【0008】
また、上記課題を解決するために、通信装置が上記通信プログラムの制御を実行する通信方法が提供される。
さらに、上記課題を解決するために、上記通信プログラムの制御を実行する通信装置が提供される。
【発明の効果】
【0009】
1側面によれば、データの二次利用と加工サービスの漏洩を防止することができる。
【図面の簡単な説明】
【0010】
【
図1】第1の実施の形態の通信装置の一例を説明するための図である。
【
図3】第2の実施の形態の通信システムの一例を示す図である。
【
図4】通信システムで行われる動作の一例を示す図である。
【
図5】GWのハードウェア構成の一例を示す図である。
【
図6】通信システムが構築されるBCプラットフォームの一例を示す図である。
【
図7】データ加工環境の内部構成の一例を示す図である。
【
図8】通信システムの全体処理フローの一例を示す図である。
【
図9】通信システムの全体処理フローの一例を示す図である。
【
図11】プロキシ設定テーブルの一例を示す図である。
【
図12】提供データ登録フェーズの一例を示すシーケンス図である。
【
図13】提供データ登録フェーズの一例を示すシーケンス図である。
【
図14】メタ情報テーブルの一例を示す図である(提供データ登録フェーズ)。
【
図15】プロキシ設定テーブルの一例を示す図である(提供データ登録フェーズ)。
【
図16】加工サービス登録フェーズの一例を示すシーケンス図である。
【
図17】加工サービス登録フェーズの一例を示すシーケンス図である。
【
図18】メタ情報テーブルの一例を示す図である(加工サービス登録フェーズ)。
【
図19】プロキシ設定テーブルの一例を示す図である(加工サービス登録フェーズ)。
【
図20】メタ情報更新フェーズの一例を示すシーケンス図である。
【
図21】メタ情報更新フェーズの一例を示すシーケンス図である。
【
図22】メタ情報テーブルの一例を示す図である(メタ情報更新フェーズ)。
【
図23】プロキシ設定テーブルの一例を示す図である(メタ情報更新フェーズ)。
【
図24】メタ情報マッチングフェーズの一例を示すシーケンス図である。
【
図25】メタ情報マッチングフェーズの一例を示すシーケンス図である。
【
図26】メタ情報マッチングフェーズの一例を示すシーケンス図である。
【
図27】メタ情報マッチングフェーズにおけるデータ加工環境内の動作シーケンス示す図である。
【
図28】メタ情報テーブルの一例を示す図である(メタ情報マッチングフェーズ)。
【
図29】プロキシ設定テーブルの一例を示す図である(メタ情報マッチングフェーズ)。
【
図30】メタ情報マッチングフェーズ後のデータ加工環境の構成の一例を示す図である。
【
図31】加工データ取得フェーズの一例を示すシーケンス図である。
【
図32】加工データ取得フェーズの一例を示すシーケンス図である。
【
図33】加工データ取得フェーズの一例を示すシーケンス図である。
【
図34】加工データ取得フェーズにおけるデータ加工環境内の動作シーケンスを示す図である。
【
図35】提供データ登録フェーズの一例を示すシーケンス図である。
【
図36】提供データ登録フェーズの一例を示すシーケンス図である。
【
図37】提供データ登録フェーズの一例を示すシーケンス図である。
【
図38】提供データ登録フェーズの一例を示すシーケンス図である。
【
図39】提供データ登録フェーズにおけるデータ加工環境内の動作シーケンスを示す図である。
【
図40】メタ情報テーブルの一例を示す図である(提供データ登録フェーズ)。
【
図41】プロキシ設定テーブルの一例を示す図である(提供データ登録フェーズ)。
【
図42】プロキシ設定テーブルの一例を示す図である(提供データ登録フェーズ)。
【
図43】提供データ登録フェーズ後のデータ加工環境内の構成の一例を示す図である。
【
図44】加工サービス登録フェーズの一例を示すシーケンス図である。
【
図45】加工サービス登録フェーズの一例を示すシーケンス図である。
【
図46】加工サービス登録フェーズの一例を示すシーケンス図である。
【
図47】加工サービス登録フェーズにおけるデータ加工環境内の動作シーケンスを示す図である。
【
図48】メタ情報テーブルの一例を示す図である(加工サービス登録フェーズ)。
【
図49】プロキシ設定テーブルの一例を示す図である(加工サービス登録フェーズ)。
【
図50】プロキシ設定テーブルの一例を示す図である(加工サービス登録フェーズ)。
【
図51】加工サービス登録フェーズ後のデータ加工環境内の構成の一例を示す図である。
【
図52】メタ情報更新フェーズの一例を示すシーケンス図である。
【
図53】メタ情報更新フェーズの一例を示すシーケンス図である。
【
図54】メタ情報テーブルの一例を示す図である(メタ情報更新フェーズ)。
【
図55】プロキシ設定テーブルの一例を示す図である(メタ情報更新フェーズ)。
【
図56】メタ情報マッチングフェーズの一例を示すシーケンス図である。
【
図57】メタ情報マッチングフェーズの一例を示すシーケンス図である。
【
図58】メタ情報マッチングフェーズの一例を示すシーケンス図である。
【
図59】メタ情報テーブルの一例を示す図である(メタ情報マッチングフェーズ)。
【
図60】プロキシ設定テーブルの一例を示す図である(メタ情報マッチングフェーズ)。
【
図61】第4の実施の形態の通信システムの一例を示す図である。
【
図66】プロキシ設定テーブルの一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態について
図1を用いて説明する。
図1は第1の実施の形態の通信装置の一例を説明するための図である。通信装置10は、ネットワークに含まれ、制御部11と記憶部12を備える。
【0012】
制御部11は、ネットワークを介して他装置に接続して通信制御を行う。記憶部12は、ブロックチェーンによる分散台帳の記憶領域を有し、通信制御に要する各種データを記憶する。制御部11および記憶部12の各処理は、通信装置10が備える図示しないプロセッサが、所定のプログラムを実行することによって実現される。
【0013】
図1に示す例を用いて動作について説明する。ネットワークN0には、通信装置10-1、10-2およびデータ加工環境20が接続され、データ加工環境20には、通信装置10-3が含まれる。また、通信装置10-1、10-2、10-3によってブロックチェーンのプラットフォームが構築されている。
【0014】
通信装置10-1は、制御部11aと記憶部12aを含み、通信装置10-2は、制御部11bと記憶部12bを含み、通信装置10-3は、制御部11cと記憶部12cを含む。記憶部12aは、分散台帳DL1の記憶領域を有し、記憶部12bは、分散台帳DL2の記憶領域を有し、記憶部12cは、分散台帳DL3の記憶領域を有する。なお、分散台帳DL1、DL2、DL3に格納される情報は、ブロックチェーンによる分散台帳管理によって共有化される。
【0015】
通信装置10-1は、データ提供者側に属する装置であり、通信装置10-2は、データ利用者側に属する装置である。通信装置10-3は、データ加工を行う機能を有する装置である。
【0016】
〔ステップS1〕制御部11aは、データ提供者から提供されるデータおよびデータの属性情報を含む第1のメタデータを分散台帳DL1に登録する。
〔ステップS2〕制御部11bは、データ利用者によってデータを加工して利用する際の加工サービスおよび加工サービスの属性情報を含む第2のメタデータを分散台帳DL2に登録する。
【0017】
〔ステップS3〕制御部11aは、第1のメタデータと第2のメタデータにもとづいて加工サービスの承認可否を判定する。
〔ステップS4〕制御部11cは、加工サービスの承認可否の判定結果が承認可の場合、通信装置10-1および通信装置10-2からデータおよび加工サービスへのアクセスを不可とするデータ加工環境20上で、加工サービスにもとづくデータ加工を実行する。
【0018】
このように、通信装置10では、データおよびデータの加工サービスの属性情報であるメタデータにもとづいて、加工サービスの承認可を判定した場合、第三者のデータ加工環境上(通信装置10-1、10-2からデータおよび加工サービスへのアクセスを不可とするデータ加工環境上)で加工サービスにもとづくデータ加工を行う。これにより、データの二次利用と加工サービス(データ加工方法も含まれる)の漏洩を防止することができる。
【0019】
[第2の実施の形態]
次に第2の実施の形態について説明する、最初にデータ流通市場について説明する。
図2はデータ流通市場を説明するための図である。データ流通市場200では、データ提供者(売り手)がデータに価格を設定して売りに出し、データ利用者(買い手)が買い入れるといったデータの売り買いが行われる。
【0020】
データ利用者は、購入したデータを加工したり、分析したりすることで、自分たちのビジネスに役立つ情報を抽出し、利活用を行う。また、購入したデータに対して代金が支払われることで、データ提供者にとって利益が生まれ、より価値のあるデータが流通の場に集まることが期待できる。
【0021】
ただし、データ流通市場200の商品であるデータは、複製可能であるため、データ提供者の出す一次データをいかに保護するかが重要となる。複製可能なことを悪用するユーザが一次データを勝手に他者に漏洩してしまうと、データ提供者は不利益を被る。また、たとえ不正をする気がないデータ利用者でもデータをコピーできてしまうことから、一次データがデータ利用者の元から誤って流出してしまう可能性もある。
【0022】
一方、データだけでなく、データの加工や分析といったデータ利用のノウハウは、例えば、知財であり、他者に公開できない場合がある。このようなデータの加工サービスの中身が他者から見えてしまうデータ流通市場200では、ノウハウが他者に漏れてしまうことをデータ利用者は嫌って、データの利用が進まない状況になる可能性もある。
【0023】
上記のように、データ流通市場200を潤滑に運営するためにも、データの二次利用と加工サービスの漏洩を防止する仕組みが求められる。
図3は第2の実施の形態の通信システムの一例を示す図である。第2の実施の形態の通信システム1-1では、ブロックチェーン(以降、BCと表記)を実現する通信ネットワークN1に、ゲートウェイ(以降、GWと表記)1、GW2、GW3、ブロック生成サーバ4およびデータ加工環境5が接続される。なお、GW1、GW2、GW3は、通信装置10に対応する。
図3の例では、GW1は
図1の通信装置10-1に対応し、GW2は
図1の通信装置10-2に対応する。
【0024】
GW1、GW2、GW3はそれぞれ、分散台帳(以降、BC台帳と表記)と、自動契約を行うプロトコルであるスマートコントラクト(スマート契約)とを有するノードであり、通信ネットワークn1、n2、n3に対してそれぞれ接続されている。なお、通信ネットワークN1は、例えば、インターネットやBCネットワークであり、通信ネットワークn1、n2、n3は、例えば、企業内のローカルネットワークである。
【0025】
通信ネットワークn1には、データ提供者(userA)として、登録者ホスト端末、データストア[/product]およびデータストア[/test]が接続される。データストア[/product]には実データが格納され、データストア[/test]にはテストデータ(テスト(模擬)データ)が格納される。
【0026】
通信ネットワークn2には、データ利用者(userB)として、利用者ホスト端末およびサービスストア[/service]が接続される。サービスストア[/service]には、加工サービスが格納される。また、通信ネットワークn3には、当事者以外の参加者(userC)として参加者ホスト端末が接続される。
【0027】
ここで、ブロック生成サーバ4は、GW1、GW2、GW3で発行されたトランザクション(一連の処理のセット)をブロック化し、各GWに送信する処理を行う。ブロック生成サーバ4は、例えば、コンソーシアム型ブロックチェーンのOSS(Open Source Software)であるHyperledger FabricのOrdering Serviceが適用できる。以降では、コンソーシアム型ブロックチェーンの場合を例として用いるが、パブリック型のブロックチェーンでも同様に実施可能である。パブリック型の場合、ブロック生成サーバ4はマイニング装置に相当する。
【0028】
また、データ加工環境5(以降、データ加工環境[safe-env-X]等と呼ぶ場合がある)は、プラットフォームの管理者(以降、PF管理者と表記)によって管理され、参加者全員が安全と認めるサーバ環境であって、この場所でデータ加工が安全に行われる。
【0029】
図4は通信システムで行われる動作の一例を示す図である。通信システム1-1では、スマートコントラクトの仕組みを活用し、BCの参加者全員で処理内容を検証しながら、データ提供者とデータ利用者が互いに信頼できる環境でデータ加工を実行する。
【0030】
信頼できる環境とは、
図3に示すデータ加工環境[safe-env-X]に相当する。これはユーザが安全と認める第三者の環境であり、データや加工サービスを外部から直接のぞくことができないように保護された空間である。例えば、PF管理者やコンソーシアムオーナが用意したサーバ上に構築されるHTTP(Hypertext Transfer Protocol)/HTTPS(Hypertext Transfer Protocol Secure)のリクエスト(GET、POST)のみを受け付け、BC台帳の情報にもとづいて処理するシステムである。
【0031】
なお、リクエストmethodにはGETおよびPOSTが使用される。GETはサーバからデータを受信する場合に使用し、リクエストURL(Uniform Resource Locator)を指定することで、所望のデータを受け取る。また、POSTはサーバにデータを送信する場合に使用し、リクエストボディにデータを埋め込み、リクエストURLに指定した場所にデータを転送する。
【0032】
データ利用者が加工サービスによるデータ利用を行いたい場合、データ利用者は、データ処理を記述した加工サービスを作成する。そして、データ利用者は、作成した加工サービスおよび加工サービスの属性を含むメタ情報を含むトランザクションをデータ提供者に向けて発行することで、データ利用のリクエストを送る。
【0033】
データ提供者は、加工サービスが不正なデータ利用をしていないことを確認し、データアクセスを承認する。データへのアクセスが承認されると、承認されたデータが加工サービスで処理されるように、データ加工環境内に設定される。
【0034】
データ提供者とデータ利用者のやり取りは、BC上のスマートコントラクトで行われ、提供データおよび加工サービスと共に登録されるメタ情報によって、当事者だけでなく、第三者も加工サービスが正しく動いているかを検証できる。これにより、一次データおよび加工サービスをデータ利用者とデータ提供者間で見せあうことなく、データ提供者・利用者の両者が合意した処理結果のみが流通するプラットフォームを提供することができる。
【0035】
<ハードウェア構成>
図5はGWのハードウェア構成の一例を示す図である。GW(通信装置10)は、プロセッサ(コンピュータ)100によって全体制御されている。プロセッサ100は、制御部11の機能を実現する。
【0036】
プロセッサ100には、バス103を介して、メモリ101、入出力インタフェース102およびネットワークインタフェース104が接続されている。プロセッサ100は、マルチプロセッサであってもよい。プロセッサ100は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ100は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0037】
メモリ101は、記憶部12の機能を含み、GWの主記憶装置として使用される。メモリ101には、プロセッサ100に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ101には、プロセッサ100による処理に要する各種データが格納される。
【0038】
また、メモリ101は、GWの補助記憶装置としても使用され、OSのプログラム、アプリケーションプログラム、および各種データが格納される。メモリ101は、補助記憶装置として、フラッシュメモリやSSD(Solid State Drive)等の半導体記憶装置やHDD(Hard Disk Drive)等の磁気記録媒体を含んでもよい。なお、メモリ101には、BC台帳、ルーティングテーブルおよびスマートコントラクトを実行するプログラムが格納される。
【0039】
バス103に接続されている周辺機器としては、入出力インタフェース102およびネットワークインタフェース104がある。入出力インタフェース102は、プロセッサ100からの命令にしたがってGWの状態を表示する表示装置として機能するモニタ(例えば、LED(Light Emitting Diode)やLCD(Liquid Crystal Display)等)が接続できる。
【0040】
さらに、入出力インタフェース102は、キーボードやマウス等の情報入力装置を接続可能であって、情報入力装置から送られてくる信号をプロセッサ100に送信する。
さらにまた、入出力インタフェース102は、周辺機器を接続するための通信インタフェースとしても機能する。例えば、入出力インタフェース102は、レーザ光等を利用して、光ディスクに記録されたデータの読み取りを行う光学ドライブ装置を接続することができる。光ディスクには、Blu-rayDisc(登録商標)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(Rewritable)等がある。
【0041】
また、入出力インタフェース102は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース102との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
【0042】
ネットワークインタフェース104は、ネットワークに接続してネットワークインタフェース制御を行う。例えば、NIC(Network Interface Card)、無線LAN(Local Area Network)カード等を使用することもできる。ネットワークインタフェース104で受信されたデータは、メモリ101やプロセッサ100に出力される。
【0043】
以上のようなハードウェア構成によって、GWの処理機能を実現することができる。例えば、GWは、プロセッサ100がそれぞれ所定のプログラムを実行することで本発明の処理を行うことができる。
【0044】
GWは、例えば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。GWに実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
【0045】
例えば、GWに実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ100は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。
【0046】
また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ100からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ100が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0047】
なお、上記のGWのハードウェアは、
図7で後述するデータ加工サーバ50に対しても同様なハードウェアが適用することができる。
図6は通信システムが構築されるBCプラットフォームの一例を示す図である。BCでは、BC台帳、BC台帳の同期制御およびスマートコントラクトの制御を行って、データや加工サービス毎のアクセス制御を実現する。
【0048】
データをやり取りする参加者は、それぞれGW1、GW2、GW3a、GW3bを持ち、GW1、GW2、GW3a、GW3bに備えられるBC台帳を通じてアクセスポリシが共有されて互いにアクセス制御が行われる。そして、BC台帳と連動してルーティングテーブルを設定する動的プロキシによって、データ提供者自身がアクセス制御できる環境が提供される。なお、GW1、GW2、GW3a、GW3bにプロキシが動的に設定されることで中継機能を有することになり、例えば、プロキシを有するGWを経由して外部のノードが接続できるようになる。
【0049】
また、データ利用者は、データ提供者によってあらかじめデータA(実データ)を模擬して作成された「テストデータ(模擬データ)」を使うことで、データ加工の処理が意図通りに行われることを確認することができ、データの利活用を円滑に行うことができる。
【0050】
さらに、データ加工サービスを管理することも可能になるため、例えば、加工サービスBを所持するデータ利用者が許可した加工サービスBの一部の範囲だけ、他の利用者に対してアクセス可能とすることができる。
【0051】
図7はデータ加工環境の内部構成の一例を示す図である。データ加工環境[safe-env-X]は、提供者テナント51、利用者テナント52、参加者テナント53、通信ネットワークn10、およびBC台帳5aを有するデータ加工サーバ50(
図1の通信装置10-3に該当)が含まれ、データ加工サーバ50は、
図3に示した通信ネットワークN1に接続されている。
【0052】
提供者テナント51は、ストレージ51a(ストレージ[/userA])を有し、利用者テナント52はストレージ52a(ストレージ[/userB])を有し、参加者テナント53はストレージ53a(ストレージ[/userC])を有する。
【0053】
データ加工環境[safe-env-X]の内部では、このようにユーザ毎のテナントが用意されており、互いのテナント間はアクセスできない。データ加工環境[safe-env-X]は、特定の通信プロトコルとしてHTTP/HTTPSのリクエスト(GET、POST)のみを受け付ける。
【0054】
また、データ加工サーバ50がBC台帳5aの情報にもとづいてデータ加工の処理を行い、提供データと、加工サービスを用いたデータ加工結果のみをユーザに返す。したがって、ユーザが直接、提供データや加工サービスを閲覧したり、編集したりといったことができない環境が構築されている。
【0055】
図8、
図9は通信システムの全体処理フローの一例を示す図である。図中のフローの括弧内は処理の主体を示す。全体処理フローは、提供データ登録フェーズ(ステップ1Aからステップ3A)および加工サービス登録フェーズ(ステップ1Bからステップ5B)の項目を有する。
【0056】
さらに、メタ情報更新フェーズ(ステップ1Cからステップ5C)、メタ情報マッチングフェーズ(ステップ1Dからステップ6D)および加工データ取得フェーズ(ステップ1Eからステップ5E)の項目を有する。
【0057】
〔ステップ1A〕データ提供者(GW)は、提供データのメタ情報を登録する(トランザクション)。
〔ステップ2A〕GWは、データ提供者の署名が正しいか否かを検証する。正しい場合はステップ3Aの処理に進む。
【0058】
〔ステップ3A〕GWは、台帳登録を行う。ステップ1Bの処理に進む。
〔ステップ1B〕GWは、参加者全員がテストデータにアクセスできるようにルーティングテーブルを設定する。
【0059】
〔ステップ2B〕データ利用者(GW)は、テストデータをもとに加工サービスを作成する。
〔ステップ3B〕データ利用者(GW)は、加工サービスのメタ情報を登録する(トランザクション)。
【0060】
〔ステップ4B〕GWは、データ利用者の署名が正しいか否かを検証する。正しい場合はステップ5Bの処理に進む。
〔ステップ5B〕GWは、台帳登録を行う。ステップ1Cの処理に進む。
【0061】
〔ステップ1C〕GWは、データ提供者のみが加工サービスにアクセスできるようにルーティングテーブルを設定する。
〔ステップ2C〕データ提供者(GW)は、加工サービスの内容を確認する。
【0062】
〔ステップ3C〕データ提供者(GW)は、加工サービスを承認し、メタ情報を更新する(トランザクション)。
〔ステップ4C〕GWは、データ提供者の署名が正しいか否かを検証する。正しい場合はステップ5Cの処理に進む。
【0063】
〔ステップ5C〕GWは、台帳登録を行う。ステップ1Dの処理に進む。
〔ステップ1D〕GWは、メタ情報が更新されたことをデータ利用者に通知する。
〔ステップ2D〕データ利用者(GW)は、メタ情報の更新確認を行う(トランザクション)。
【0064】
〔ステップ3D〕GWは、データ利用者の署名は正しいか否か、対象の提供データの公開先に対象の加工サービスのIDがあるか否か、対象の加工サービスの公開先に対象の提供データのIDがあるか否かを検証する。データ利用者の署名は正しく、対象の提供データの公開先に対象の加工サービスのIDがあり、対象の加工サービスの公開先に対象の提供データのIDがある場合はステップ4Dの処理に進む。
【0065】
〔ステップ4D〕データ加工環境は、対象の提供データをハッシュ計算した値がメタ情報のハッシュ値と一致するか否か、対象の加工サービスをハッシュ計算した値がメタ情報のハッシュ値と一致するか否かを検証する。対象の提供データをハッシュ計算した値がメタ情報のハッシュ値と一致し、対象の加工サービスをハッシュ計算した値がメタ情報のハッシュ値と一致する場合、ステップ5Dの処理に進む。
【0066】
〔ステップ5D〕GWは、安全なデータ加工環境に一次データと加工サービスをそれぞれPOSTする。
〔ステップ6D〕GWは、台帳登録を行う。ステップ1Eの処理に進む。
【0067】
〔ステップ1E〕データ利用者(GW)は、加工データを取得する(トランザクション)。
〔ステップ2E〕GWは、データ利用者の署名が正しいか否かを検証する。正しい場合はステップ3Eの処理に進む。
【0068】
〔ステップ3E〕データ加工環境は、データ加工を実行し、加工済みデータのみを利用者のGWに送信する。
〔ステップ4E〕データ加工環境は、データ加工環境内の一次データと加工サービスを削除する。
【0069】
〔ステップ5E〕GWは、台帳登録を行う。
次に第2の実施の形態の各フェーズにおける動作について詳しく説明する。
<事前準備>
PF管理者が安全なデータ加工環境として、
図7に示すデータ加工環境safe-env-Xを用意する。また、各GWには、データ加工環境safe-env-Xの情報を登録しておき、ネットワークが疎通可能な状態にする。
【0070】
図10はメタ情報テーブルの一例を示す図である。メタ情報テーブルT1は、データの利用範囲を公開するためのメタ情報を管理するテーブルである。メタ情報テーブルT1は、ID、所有者、属性、提供データURL/サービスURL、テストデータURL、ハッシュ値、公開先および加工処理フローの項目を有する。初期状態では各項目に登録されているデータはない。メタ情報テーブルはBC台帳に格納される。
【0071】
なお、上記の項目において、属性とは提供データか、加工サービスか、または加工データかを示す。提供データURL/サービスURLは、提供データまたは加工サービスを取得する際のアクセス先のURLである。
【0072】
テストデータURLは、テストデータを取得する際のアクセス先のURLである。ハッシュ値は、データ(または加工サービス)をハッシュ計算した値である。ハッシュ値にもとづいて、送信されたデータ(または加工サービス)と登録されたデータ(または加工サービス)とが一致するか否かの判定が行われる。
【0073】
図11はプロキシ設定テーブルの一例を示す図である。プロキシ設定テーブルT2、T3、T4は、GW1、GW2、GW3毎に、GWで受け付けたリクエストの振り分けに使う情報を管理するテーブルであり、RequestURL、methodおよびSendToの項目を有する。プロキシ設定テーブルは、BC台帳に格納される。
【0074】
GWでは、RequestURLとmethodに適合する項目を検索し、適合するリクエストをSendToに書かれたURLへ転送する。適合しないリクエストが来た場合、Not Foundを返し、リクエストは破棄される。
【0075】
初期状態では、各GWの所有者が発行するトランザクションのリクエストとブロック生成サーバ4より配布されるブロックの情報をスマートコントラクトに転送する設定が入っている。
【0076】
例えば、プロキシ設定テーブルT2では、トランザクションのリクエスト(/transaction)とブロック生成サーバ4より配布されるブロック(/block)の情報をGW1のスマートコントラクトに転送する設定(/GW1/smartContract)が入っている。なお、これら以外のリクエストは破棄されるため、初期状態では、各GWからはどのデータやサービスへもアクセスできない状態になっている。
【0077】
<提供データ登録フェーズ>
図12、
図13は提供データ登録フェーズの一例を示すシーケンス図である。
〔ステップ1a〕データ提供者(userA)は、登録者ホスト端末に提供データの登録を行う。
【0078】
〔ステップ2a〕登録者ホスト端末は、プロキシ(GW1)に提供データの登録を行う。
〔ステップ3a〕プロキシ(GW1)は、スマートコントラクト(GW1)に提供データの登録を行う。
【0079】
〔ステップ4a〕スマートコントラクト(GW1)は、トランザクションの作成および署名付与を行う。
〔ステップ5a〕スマートコントラクト(GW1)は、ブロック生成サーバ4にトランザクションを発行する。
【0080】
〔ステップ6a〕ブロック生成サーバ4は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ7a〕スマートコントラクト(GW1)は、プロキシ(GW1)に登録完了を通知する。
【0081】
〔ステップ8a〕プロキシ(GW1)は、登録者ホスト端末に登録完了を通知する。
〔ステップ9a〕登録者ホスト端末は、データ提供者(userA)に登録完了を通知する。
【0082】
〔ステップ10a〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11a〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
【0083】
〔ステップ12a〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13a〕スマートコントラクト(GW1)は、ブロック検証を行う。
【0084】
〔ステップ14a〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ15a〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
【0085】
〔ステップ16a〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ17a〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
【0086】
〔ステップ18a〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ19a〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
【0087】
〔ステップ20a〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ21a〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
【0088】
〔ステップ22a〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ23a〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
【0089】
〔ステップ24a〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ25a〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
【0090】
〔ステップ26a〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
〔ステップ27a〕スマートコントラクト(GW3)は、ブロック検証を行う。
【0091】
〔ステップ28a〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ29a〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
【0092】
〔ステップ30a〕スマートコントラクト(GW3)は、プロキシ(GW3)にプロキシ設定を行う。
〔ステップ31a〕プロキシ(GW3)は、スマートコントラクト(GW3)に設定完了を通知する。
【0093】
上記のような提供データ登録フェーズにおいて、データ提供者は、自ゲートウェイ(GW1)に対して、提供データの登録トランザクションを発行する。提供データには、例えば、上記に示したメタ情報テーブルで管理される「データID(ID)」、「提供者の署名(所有者)」、「属性」および「提供データにアクセスするためのURL(提供データURL/サービスURL)」が含まれる。
【0094】
さらに「テストデータにアクセスするためのURL(テストデータURL)」、「提供データのハッシュ値(ハッシュ値)」および「提供データの公開先(公開先)」が含まれる。また、各GWでは、データ提供者の署名が正しいことを検証し、問題なければBC台帳に提供データが書き込まれる。
【0095】
BC台帳への書き込みが完了すると、BC台帳上で、データIDと紐づけたメタ情報がGW1、GW2、GW3で共有され、外部からデータアクセスを許可するためのプロキシ設定が動的に生成される。
【0096】
図14はメタ情報テーブルの一例を示す図であり、
図15はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT1aは、提供データ登録フェーズ後のメタ情報を示している(データに関する第1のメタデータが登録されている)。プロキシ設定テーブルT2a、T3a、T4aは、提供データ登録フェーズ後のプロキシ設定情報を示している。なお、“-”はnull値を意味し、公開先にこの値が入っている場合は、提供データは誰にも公開しないことを表す。
【0097】
データ利用者は、データIDをURLで指定してHTTP/HTTPSリクエストを行うことで、データにアクセスすることができる。リクエストされたデータIDによって、プロキシ側で、実際のデータへのURL(SendTo)へ変換し、リクエストを転送する。
【0098】
SendToのURLは「/[GW]/[path]」の形式になっており、例えば、/GW1/testの場合は、GW1の配下にある/testへリクエストが転送され、テストデータが取得できる。
【0099】
上記より、提供データ登録フェーズでは、テストデータは全ユーザへ公開されるが、提供データは誰からもアクセス不可の状態となっている。
<加工サービス登録フェーズ>
図16、
図17は加工サービス登録フェーズの一例を示すシーケンス図である。
【0100】
〔ステップ1b〕データ利用者(userB)は、利用者ホスト端末に加工サービスの登録を行う。
〔ステップ2b〕利用者ホスト端末は、プロキシ(GW2)に加工サービスの登録を行う。
【0101】
〔ステップ3b〕プロキシ(GW2)は、スマートコントラクト(GW2)に加工サービスの登録を行う。
〔ステップ4b〕スマートコントラクト(GW2)は、トランザクションの作成および署名付与を行う。
【0102】
〔ステップ5b〕スマートコントラクト(GW2)は、ブロック生成サーバ4にトランザクションを発行する。
〔ステップ6b〕ブロック生成サーバ4は、スマートコントラクト(GW2)に登録完了を通知する。
【0103】
〔ステップ7b〕スマートコントラクト(GW2)は、プロキシ(GW2)に登録完了を通知する。
〔ステップ8b〕プロキシ(GW2)は、利用者ホスト端末に登録完了を通知する。
【0104】
〔ステップ9b〕利用者ホスト端末は、データ利用者に登録完了を通知する。
〔ステップ10b〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11b〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
【0105】
〔ステップ12b〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13b〕スマートコントラクト(GW1)は、ブロック検証を行う。
【0106】
〔ステップ14b〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ15b〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
【0107】
〔ステップ16b〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ17b〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
【0108】
〔ステップ18b〕スマートコントラクト(GW1)は、プロキシ(GW1)にデータ利用要求通知を送信する。
〔ステップ19b〕プロキシ(GW1)は、登録者ホスト端末にデータ利用要求通知を送信する。
【0109】
〔ステップ20b〕登録者ホスト端末は、データ提供者(userA)にデータ利用要求通知を送信する。
〔ステップ21b〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
【0110】
〔ステップ22b〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
〔ステップ23b〕スマートコントラクト(GW2)は、ブロック検証を行う。
【0111】
〔ステップ24b〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
〔ステップ25b〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
【0112】
〔ステップ26b〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
〔ステップ27b〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
【0113】
〔ステップ28b〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
〔ステップ29b〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
【0114】
〔ステップ30b〕スマートコントラクト(GW3)は、ブロック検証を行う。
〔ステップ31b〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
【0115】
〔ステップ32b〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
上記のような加工サービス登録フェーズにおいて、データ利用者は、提供データ登録フェーズでアクセス可能になったテストデータを用いて、加工サービスを作成する。加工サービスは、例えば、データを処理するプログラムやAPI(Application Programming Interface)等を指す。
【0116】
また、作成した加工サービスを提供データで実際に使う申請をするために、データ利用者が、自ゲートウェイで「サービスID」「利用者の署名」「属性」「加工サービスにアクセスするためのURL」「加工サービスのハッシュ値」「加工サービスの公開先」を含む加工サービスの登録トランザクションを発行する。
【0117】
このとき、「加工サービスの公開先」に、利用したいデータIDを指定することで、メタ情報がBC台帳で共有された際に、データ提供者にデータ利用要求としての通知(データ利用要求通知)が転送される仕組みになっている。
【0118】
各GWでは、データ利用者の署名が正しいことを検証し、問題なければBC台帳に加工サービスが書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、サービスIDと紐づけたメタ情報が共有され、プロキシ設定が動的に生成される。
【0119】
図18はメタ情報テーブルの一例を示す図であり、
図19はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT1bは、加工サービス登録フェーズ後のメタ情報を示している(上述の
図14のテーブルに対して、新たに加工サービスに関する第2のメタデータが登録されている)。プロキシ設定テーブルT2b、T3b、T4bは、加工サービス登録フェーズ後のプロキシ設定情報を示している。
【0120】
加工サービス登録フェーズでは、テストデータは全公開、提供データは誰からもアクセス不可の状態の状態は変わらず、データ提供者のみが加工サービスにPOSTのリクエストができる状態となっている。
【0121】
<メタ情報更新フェーズ>
図20、
図21はメタ情報更新フェーズの一例を示すシーケンス図である。
〔ステップ1c〕データ提供者(userA)は、登録者ホスト端末に対してメタデータの更新を行う。
【0122】
〔ステップ2c〕登録者ホスト端末は、プロキシ(GW1)に対してメタデータの更新を行う。
〔ステップ3c〕プロキシ(GW1)は、スマートコントラクト(GW1)に対してメタデータの更新を行う。
【0123】
〔ステップ4c〕スマートコントラクト(GW1)は、トランザクションの作成および署名付与を行う。
〔ステップ5c〕スマートコントラクト(GW1)は、ブロック生成サーバ4にトランザクションを発行する。
【0124】
〔ステップ6c〕ブロック生成サーバ4は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ7c〕スマートコントラクト(GW1)は、プロキシ(GW1)に登録完了を通知する。
【0125】
〔ステップ8c〕プロキシ(GW1)は、登録者ホスト端末に登録完了を通知する。
〔ステップ9c〕登録者ホスト端末は、データ提供者(userA)に登録完了を通知する。
【0126】
〔ステップ10c〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11c〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
【0127】
〔ステップ12c〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13c〕スマートコントラクト(GW1)は、ブロック検証を行う。
【0128】
〔ステップ14c〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ15c〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
【0129】
〔ステップ16c〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ17c〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
【0130】
〔ステップ18c〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ19c〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
【0131】
〔ステップ20c〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ21c〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
【0132】
〔ステップ22c〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ23c〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
【0133】
〔ステップ24c〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ25c〕スマートコントラクト(GW2)は、プロキシ(GW2)にメタデータ更新通知を行う。
【0134】
〔ステップ26c〕プロキシ(GW2)は、利用者ホスト端末にメタデータ更新通知を行う。
〔ステップ27c〕利用者ホスト端末は、データ利用者(userB)にデータ利用要求通知を送信する。
【0135】
〔ステップ28c〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
〔ステップ29c〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
【0136】
〔ステップ30c〕スマートコントラクト(GW3)は、ブロック検証を行う。
〔ステップ31c〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
【0137】
〔ステップ32c〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
上記のようなメタ情報更新フェーズにおいて、加工サービス登録フェーズでデータ利用要求の通知を受け、データ提供者は登録された加工サービスの内容を検証する。検証の方法は、登録されている加工サービスのメタ情報を参照することや、実際に加工サービスにデータを入力して、結果をみることで動作を確認する等がある。
【0138】
加工サービスの動作を確認する場合、データ提供者は、サービスIDをURLで指定することで、加工サービスの加工内容を確認できる。このとき、許可されるリクエストはPOSTのmethodのみなので、データ提供者は加工サービスの中身を閲覧する(GETする)ことはなく、あくまでデータのinputとoutputの関係を確認することで、内部で不正な処理がされていないことを検証する。そのため、データ利用者が持つデータ加工のノウハウが他者に漏れることはない。
【0139】
ここで、加工サービスの検証方法の安全性について説明する。本フェーズの加工サービス検証方法は、いわゆるブラックボックステストと言われるもので、加工サービスの内部がどのようなロジックで構成されているか確認することができない点において、提供データが漏洩する危険性をはらんでいる。
【0140】
例えば、加工サービス内で、一次データを加工せずに保持し、後からデータ利用者に閲覧されてしまうことが懸念される。しかし、本発明では、一次データの加工を安全な第三者のデータ加工環境で行うことで、加工サービスの所有者であるデータ利用者であっても、提供データを処理する加工サービス自体にアクセスすることはできず、加工した結果だけを受け取る仕組みにより安全性を保っている。そのため、本フェーズで、データ提供者はinputとoutputの情報だけを検証すればよく、内部処理について危惧することはない。
【0141】
加工サービスの内容に問題ないと判断した場合は、提供データの利用を承認するために、データ提供者が、自ゲートウェイに登録済みの提供データのメタ情報の「提供データの公開先」の項目を更新するメタ情報更新トランザクションを発行する。
【0142】
このトランザクションに含まれる情報は、提供データ登録フェーズと同様に「データID」「提供者の署名」「属性」「提供データにアクセスするためのURL」「テストデータにアクセスするためのURL」「提供データのハッシュ値」「提供データの公開先」であり、「提供データの公開先」を加工サービスのサービスIDを指定する。
【0143】
このとき、「提供データの公開先」に、データの公開を許可するサービスIDを指定することで、メタ情報がBC台帳で共有された際に、サービスIDの所有者(このフェーズの場合はデータ利用者)にメタ情報更新の通知が転送される仕組みになっている。
【0144】
各GWでは、署名が正しいことを検証し、問題なければ台帳に書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、データIDと紐づけたメタ情報が共有され、プロキシ設定が動的に生成される。
【0145】
図22はメタ情報テーブルの一例を示す図であり、
図23はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT1cは、メタ情報更新フェーズ後のメタ情報を示し、プロキシ設定テーブルT2c、T3c、T4cは、メタ情報更新フェーズ後のプロキシ設定情報を示している。
【0146】
メタ情報更新フェーズでは、GW1からのみ提供データにGETし、提供者テナントへPOSTできる状態になっている。また、同じくGW2からのみ加工サービスにGETし、利用者テナントにPOSTできる状態になっている。
【0147】
<メタ情報マッチングフェーズ>
図24から
図26はメタ情報マッチングフェーズの一例を示すシーケンス図である。
〔ステップ1d〕データ利用者(userB)は、利用者ホスト端末にメタデータ更新確認を行う。
【0148】
〔ステップ2d〕利用者ホスト端末は、プロキシ(GW2)にメタデータ更新確認を行う。
〔ステップ3d〕プロキシ(GW2)は、スマートコントラクト(GW2)にメタデータ更新確認を行う。
【0149】
〔ステップ4d〕スマートコントラクト(GW2)は、トランザクションの作成および署名付与を行う。
〔ステップ5d〕スマートコントラクト(GW2)は、ブロック生成サーバ4にトランザクションを発行する。
【0150】
〔ステップ6d〕ブロック生成サーバ4は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ7d〕スマートコントラクト(GW2)は、プロキシ(GW2)に登録完了を通知する。
【0151】
〔ステップ8d〕プロキシ(GW2)は、利用者ホスト端末に登録完了を通知する。
〔ステップ9d〕利用者ホスト端末は、データ利用者(userB)に登録完了を通知する。
【0152】
〔ステップ10d〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11d〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
【0153】
〔ステップ12d〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13d〕スマートコントラクト(GW1)は、ブロック検証を行う。
【0154】
〔ステップ14d〕スマートコントラクト(GW1)は、BC台帳(GW1)からメタデータ取得を行う。
〔ステップ15d〕BC台帳(GW1)は、スマートコントラクト(GW1)にメタデータを送信する。
【0155】
〔ステップ16d〕スマートコントラクト(GW1)は、メタデータマッチングを行う。
〔ステップ17d〕スマートコントラクト(GW1)は、プロキシ(GW1)に提供データGETを送信する。
【0156】
〔ステップ18d〕プロキシ(GW1)は、データストア[/product]に提供データGETを送信する。
〔ステップ19d〕データストア[/product]は、プロキシ(GW1)に提供データを送信する。
【0157】
〔ステップ20d〕プロキシ(GW1)は、スマートコントラクト(GW1)に提供データを送信する。
〔ステップ21d〕スマートコントラクト(GW1)は、プロキシ(GW1)に提供データPOSTを送信する。
【0158】
〔ステップ22d〕プロキシ(GW1)は、データ加工環境[safe-env-X]に提供データPOSTを送信する。
〔ステップ23d〕データ加工環境[safe-env-X]は、プロキシ(GW1)に登録完了を通知する。
【0159】
〔ステップ24d〕プロキシ(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ25d〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
【0160】
〔ステップ26d〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ27d〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
【0161】
〔ステップ28d〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
〔ステップ29d〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
【0162】
〔ステップ30d〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
〔ステップ31d〕スマートコントラクト(GW2)は、ブロック検証を行う。
【0163】
〔ステップ32d〕スマートコントラクト(GW2)は、BC台帳(GW2)からメタデータ取得を行う。
〔ステップ33d〕BC台帳(GW2)は、スマートコントラクト(GW2)にメタデータを送信する。
【0164】
〔ステップ34d〕スマートコントラクト(GW2)は、メタデータマッチングを行う。
〔ステップ35d〕スマートコントラクト(GW2)は、プロキシ(GW2)に加工サービスGETを送信する。
【0165】
〔ステップ36d〕プロキシ(GW2)は、サービスストア[/service]に加工サービスGETを送信する。
〔ステップ37d〕サービスストア[/service]は、プロキシ(GW2)に加工サービスを送信する。
【0166】
〔ステップ38d〕プロキシ(GW2)は、スマートコントラクト(GW2)に加工サービスを送信する。
〔ステップ39d〕スマートコントラクト(GW2)は、プロキシ(GW2)に加工サービスPOSTを送信する。
【0167】
〔ステップ40d〕プロキシ(GW2)は、データ加工環境[safe-env-X]に加工サービスPOSTを送信する。
〔ステップ41d〕データ加工環境[safe-env-X]は、プロキシ(GW2)に登録完了を通知する。
【0168】
〔ステップ42d〕プロキシ(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ43d〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
【0169】
〔ステップ44d〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ45d〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
【0170】
〔ステップ46d〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ47d〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
【0171】
〔ステップ48d〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
〔ステップ49d〕スマートコントラクト(GW3)は、ブロック検証を行う。
【0172】
〔ステップ50d〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ51d〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
【0173】
上記のメタ情報マッチングフェーズにおいて、メタ情報更新フェーズでメタ情報更新の通知を受け、データ利用者はデータ提供者からデータの利用が承認されたことを確認する。
【0174】
そして、実際にデータ利用を開始するために、データ利用者が、自ゲートウェイで「利用するデータID」「利用するサービスID」「利用者の署名」を含むメタ情報更新確認トランザクションを発行する。
【0175】
各GWでは、署名が正しいこととメタ情報のマッチングが取れていることを検証する。メタ情報のマッチングとは、例えば、対象Aのデータにおいて、「提供データの公開先」に対象Bの加工サービスのIDがあり、対象Bの「加工サービスの公開先」に対象Aの提供データのIDがあるかの対応付けをとることである。
【0176】
これらの検証に問題なければ、提供データおよび加工サービスをデータ加工環境への転送と、データアクセスするためのルーティングテーブルを動的に生成する。
また、データ加工環境へ提供データを転送する際には、データ加工サーバ50は、メタ情報に登録されているハッシュ値と実際に転送されてきたデータをハッシュ計算した値の比較を行い、同じ値であることを検証してからデータ加工環境内のストレージに登録する。
【0177】
これにより、本来登録したデータと異なるデータが登録されることを防ぐことができる。なお、加工サービスを転送する時も同様にハッシュ値の検証が行われる。
図27はメタ情報マッチングフェーズにおけるデータ加工環境内の動作シーケンス示す図である。なお、
図24のステップ22と
図27のステップ101d、
図24のステップ23と
図27のステップ107d、
図25のステップ40dと
図27のステップ108d、
図25のステップ41dと
図27のステップ114dはそれぞれ同じ処理を表す。
【0178】
〔ステップ101d〕プロキシ(GW1)は、データ加工サーバ50に提供データ登録を行う。
〔ステップ102d〕データ加工サーバ50は、BC台帳から台帳情報取得を行う。
【0179】
〔ステップ103d〕BC台帳は、台帳情報をデータ加工サーバ50に送信する。
〔ステップ104d〕データ加工サーバ50は、提供データのハッシュ値検証を行う。
〔ステップ105d〕データ加工サーバ50は、ストレージ[/userA]に提供データ登録を行う。
【0180】
〔ステップ106d〕ストレージ[/userA]は、データ加工サーバ50に登録完了を通知する。
〔ステップ107d〕データ加工サーバ50は、プロキシ(GW1)に登録完了を通知する。
【0181】
〔ステップ108d〕プロキシ(GW2)は、データ加工サーバ50に加工サービス登録を行う。
〔ステップ109d〕データ加工サーバ50は、BC台帳から台帳情報取得を行う。
【0182】
〔ステップ110d〕BC台帳は、台帳情報をデータ加工サーバ50に送信する。
〔ステップ111d〕データ加工サーバ50は、加工サービスのハッシュ値検証を行う。
【0183】
〔ステップ112d〕データ加工サーバ50は、ストレージ[/userB]に加工サービス登録を行う。
〔ステップ113d〕ストレージ[/userB]は、データ加工サーバ50に登録完了を通知する。
【0184】
〔ステップ114d〕データ加工サーバ50は、プロキシ(GW2)に登録完了を通知する。
図28はメタ情報テーブルの一例を示す図であり、
図29はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT1dは、メタ情報マッチングフェーズ後のメタ情報を示し、プロキシ設定テーブルT2d、T3d、T4dは、メタ情報マッチングフェーズ後のプロキシ設定情報を示している。
【0185】
このフェーズでは、処理結果のデータを受け取るためのURLとして「/processDataId1」が発行され、利用者のみがアクセスできる状態になっている。また、メタ情報更新フェーズで設定した提供データおよび加工サービスをGETおよびPOSTできる設定は、安全のため削除している。
【0186】
なお、基本的にこの設定があっても所有者以外がデータやサービスにアクセスすることはできないので残しておいてもよいが、利用しない設定はセキュリティホールとなるため削除しておき、再度利用する際に設定し直すことが望ましい。
【0187】
図30はメタ情報マッチングフェーズ後のデータ加工環境の構成の一例を示す図である。データ加工環境内の参加者テナントの図示は以降省略する。データ加工環境[safe-env-X]では、提供データ[/dataId1]が提供者テナント51のストレージ[/userA]に配置され、加工サービス[/serviceId1]が利用者テナント52のストレージ[/userB]に配置された状態になる。
【0188】
<加工データ取得フェーズ>
図31から
図33は加工データ取得フェーズの一例を示すシーケンス図である。
〔ステップ1e〕データ利用者(userB)は、利用者ホスト端末に加工データ取得を行う。
【0189】
〔ステップ2e〕利用者ホスト端末は、プロキシ(GW2)に加工データ取得を行う。
〔ステップ3e〕プロキシ(GW2)は、スマートコントラクト(GW2)に加工データ取得を行う。
【0190】
〔ステップ4e〕スマートコントラクト(GW2)は、BC台帳(GW2)から台帳情報取得を行う。
〔ステップ5e〕BC台帳(GW2)は、台帳情報をスマートコントラクト(GW2)に送信する。
【0191】
〔ステップ6e〕スマートコントラクト(GW2)は、アクセス権検証およびアドレス変換を行う。
〔ステップ7e〕スマートコントラクト(GW2)は、プロキシ(GW2)から加工データ取得を行う。
【0192】
〔ステップ8e〕プロキシ(GW2)は、データ加工環境[safe-env-X]から加工データ取得を行う。
〔ステップ9e〕データ加工環境[safe-env-X]は、プロキシ(GW2)に加工データを送信する。
【0193】
〔ステップ10e〕プロキシ(GW2)は、スマートコントラクト(GW2)に加工データを送信する。
〔ステップ10e1〕スマートコントラクト(GW2)は、プロキシ(GW2)に加工データを送信する。
【0194】
〔ステップ11e〕プロキシ(GW2)は、利用者ホスト端末に加工データを送信する。
〔ステップ12e〕利用者ホスト端末は、データ利用者(userB)に加工データを送信する(加工データの確認)。
【0195】
〔ステップ13e〕スマートコントラクト(GW2)は、トランザクションの作成および署名付与を行う。
〔ステップ14e〕スマートコントラクト(GW2)は、ブロック生成サーバ4にトランザクションを発行する。
【0196】
〔ステップ15e〕ブロック生成サーバ4は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ16e〕ブロック生成サーバ4は、ブロックを生成する。
【0197】
〔ステップ17e〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
〔ステップ18e〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
【0198】
〔ステップ19e〕スマートコントラクト(GW1)は、ブロック検証を行う。
〔ステップ20e〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
【0199】
〔ステップ21e〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ22e〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
【0200】
〔ステップ23e〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
〔ステップ24e〕スマートコントラクト(GW2)は、ブロック検証を行う。
【0201】
〔ステップ25e〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
〔ステップ26e〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を行う。
【0202】
〔ステップ27e〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
〔ステップ28e〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
【0203】
〔ステップ29e〕スマートコントラクト(GW3)は、ブロック検証を行う。
〔ステップ30e〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
【0204】
〔ステップ31e〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を行う。
図34は加工データ取得フェーズにおけるデータ加工環境内の動作シーケンスを示す図である。
図32のステップ8eと
図34のステップ101e、
図32のステップ9eと
図34のステップ109eはそれぞれ同じ処理を表す。
【0205】
〔ステップ101e〕プロキシ(GW2)は、データ加工サーバ50に加工データ取得を行う。
〔ステップ102e〕データ加工サーバ50は、データ加工環境[safe-env-X]内のBC台帳[safe-env-X](BC台帳5a)から台帳情報取得を行う。
【0206】
〔ステップ103e〕BC台帳[safe-env-X]は、台帳情報をデータ加工サーバ50に送信する。
〔ステップ104e〕データ加工サーバ50は、アクセス権検証および加工処理パース(プログラムの構造解析やデータ構造の変換処理等)を行う。
【0207】
〔ステップ105e〕データ加工サーバ50は、ストレージ[/userA]に提供データ取得を行う。
〔ステップ106e〕ストレージ[/userA]は、データ加工サーバ50に提供データを送信する。
【0208】
〔ステップ107e〕データ加工サーバ50は、ストレージ[/userB]に加工サービス実行の結果を送信する。
〔ステップ108e〕ストレージ[/userB]は、データ加工サーバ50に加工サービスを送信する。
【0209】
〔ステップ109e〕データ加工サーバ50は、プロキシ(GW2)に加工データを送信する。
〔ステップ110e〕データ加工サーバ50は、ストレージ[/userA]に提供データ削除を行う。
【0210】
〔ステップ111e〕ストレージ[/userA]は、データ加工サーバ50に削除完了を通知する。
〔ステップ112e〕データ加工サーバ50は、ストレージ[/userB]に加工サービス削除を行う。
【0211】
〔ステップ113e〕ストレージ[/userB]は、データ加工サーバ50に削除完了を通知する。
上記のような加工データ取得フェーズにおいて、データ利用者が、「/processDataId1」に対してリクエストを送ると、GWに設定されたルーティングテーブルにもとづいて、まずデータ加工環境にリクエストが転送される。その後、BC台帳に記述された内容の通りにデータ加工サーバ50が提供データを取得し、加工サービスで加工した結果のみをレスポンスとして、データ利用者に返す。
【0212】
加工データがデータ利用者に転送されたら、加工に使用した提供データおよび加工サービスは削除される。この削除処理はデータ加工サーバ50が自動的に実施してもよいし、PF管理者の権限にもとづいて実施してもよい。
【0213】
ここで、データ加工環境上のリソース削除確認について説明する。データ加工環境[safe-env-X]は、HTTP/HTTPSの特定のリクエストだけしか受け付けないことでデータとサービスの安全性を確保している。そのため、一般的なテナントと異なり、所有者が自由に閲覧し、編集も可能にすることができない。そのような特殊な環境でリソースが削除されたことを確認するために、リソースに対するアドレスを活用している。
【0214】
データ加工サーバ50では、データを格納した場合、データの格納アドレス(第1の情報)を一時的に発行し、また、加工サービスを格納した場合は、加工サービスの格納したアドレス(第2の情報)を一時的に発行する。また、データ加工サーバ50は、データを削除した場合、データの格納アドレスも削除し、加工サービスを削除した場合は、加工サービスの格納したアドレスも削除する。
【0215】
GWは、これらアドレスを検出することで、データや加工サービスにアクセスすることなく、データ加工環境においてデータまたは加工サービスの存在有無を検証することができる。
【0216】
また、加工データが正しくデータ利用者の手元に届いたことを証跡として残すために、加工データの取得が完了したタイミングで「加工データ取得結果」「利用者の署名」を含むトランザクションを発行し、各GWでBC台帳に記録する。
【0217】
このような手続きにより、データ利用者は一次データを、データ提供者は加工サービスをそれぞれ閲覧することなく、データ提供者とデータ利用者間で同意した処理を実行し、データを流通することができる。
【0218】
[第3の実施の形態]
次に第3の実施の形態について説明する。第3の実施の形態は、データ加工環境にデータと加工サービスを格納する場合である。第3の実施の形態では、メタ情報の登録と同時に、データ加工サーバ50にデータおよび加工サービスを転送し、データ加工サーバ50上でそれらを管理するものである。
【0219】
<提供データ登録フェーズ>
図35から
図38は提供データ登録フェーズの一例を示すシーケンス図である。
〔ステップ1a1〕データ提供者(userA)は、登録者ホスト端末に提供データ登録を行う。
【0220】
〔ステップ2a1〕登録者ホスト端末は、プロキシ(GW1)に提供データ登録を行う。
〔ステップ3a1〕プロキシ(GW1)は、スマートコントラクト(GW1)に提供データ登録を行う。
【0221】
〔ステップ4a1〕スマートコントラクト(GW1)は、トランザクション作成および署名付与を行う。
〔ステップ5a1〕スマートコントラクト(GW1)は、ブロック生成サーバ4にトランザクションを発行する。
【0222】
〔ステップ6a1〕ブロック生成サーバ4は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ7a1〕スマートコントラクト(GW1)は、プロキシ(GW1)に登録完了を通知する。
【0223】
〔ステップ8a1〕プロキシ(GW1)は、登録者ホスト端末に登録完了を通知する。
〔ステップ9a1〕登録者ホスト端末は、データ提供者(userA)に登録完了を通知する。
【0224】
〔ステップ10a1〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11a1〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
【0225】
〔ステップ12a1〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13a1〕スマートコントラクト(GW1)は、ブロック検証を行う。
【0226】
〔ステップ14a1〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ15a1〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
【0227】
〔ステップ16a1〕スマートコントラクト(GW1)は、プロキシ(GW1)にテストデータGETを送信する。
〔ステップ17a1〕プロキシ(GW1)は、データストア[/test]にテストデータGETを送信する。
【0228】
〔ステップ18a1〕データストア[/test]は、プロキシ(GW1)にテストデータを送信する。
〔ステップ19a1〕プロキシ(GW1)は、スマートコントラクト(GW1)にテストデータを送信する。
【0229】
〔ステップ20a1〕スマートコントラクト(GW1)は、プロキシ(GW1)にテストデータPOSTを送信する。
〔ステップ21a1〕プロキシ(GW1)は、データ加工環境[safe-env-X]にテストデータPOSTを送信する。
【0230】
〔ステップ22a1〕データ加工環境[safe-env-X]は、プロキシ(GW1)に登録完了を通知する。
〔ステップ23a1〕プロキシ(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
【0231】
〔ステップ24a1〕スマートコントラクト(GW1)は、プロキシ(GW1)に提供データGETを送信する。
〔ステップ25a1〕プロキシ(GW1)は、データストア[/product]に提供データGETを送信する。
【0232】
〔ステップ26a1〕データストア[/product]は、プロキシ(GW1)に提供データを送信する。
〔ステップ27a1〕プロキシ(GW1)は、スマートコントラクト(GW1)に提供データを送信する。
【0233】
〔ステップ28a1〕スマートコントラクト(GW1)は、プロキシ(GW1)に提供データPOSTを送信する。
〔ステップ29a1〕プロキシ(GW1)は、データ加工環境[safe-env-X]に提供データPOSTを送信する。
【0234】
〔ステップ30a1〕データ加工環境[safe-env-X]は、プロキシ(GW1)に登録完了を通知する。
〔ステップ31a1〕プロキシ(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
【0235】
〔ステップ32a1〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ33a1〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
【0236】
〔ステップ34a1〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ35a1〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
【0237】
〔ステップ36a1〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ37a1〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
【0238】
〔ステップ38a1〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ39a1〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
【0239】
〔ステップ40a1〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ41a1〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
【0240】
〔ステップ42a1〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ43a1〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
【0241】
〔ステップ44a1〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
〔ステップ45a1〕スマートコントラクト(GW3)は、ブロック検証を行う。
【0242】
〔ステップ46a1〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ47a1〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
【0243】
〔ステップ48a1〕スマートコントラクト(GW3)は、プロキシ(GW3)にプロキシ設定を行う。
〔ステップ49a1〕プロキシ(GW3)は、スマートコントラクト(GW3)に設定完了を通知する。
【0244】
図39は提供データ登録フェーズにおけるデータ加工環境内の動作シーケンスを示す図である。
図36のステップ21a1と
図39のステップ101a、
図36のステップ22a1と
図39のステップ104a、
図36のステップ29a1と
図39のステップ105a、
図36のステップ30a1と
図39のステップ111aはそれぞれ同じ処理を表す。
【0245】
〔ステップ101a〕プロキシ(GW1)は、データ加工サーバ50にテストデータ登録を行う。
〔ステップ102a〕データ加工サーバ50は、ストレージ[/userA]にテストデータ登録を行う。
【0246】
〔ステップ103a〕ストレージ[/userA]は、データ加工サーバ50に登録完了を通知する。
〔ステップ104a〕データ加工サーバ50は、プロキシ(GW1)に登録完了を通知する。
【0247】
〔ステップ105a〕プロキシ(GW1)は、データ加工サーバ50に提供データ登録を行う。
〔ステップ106a〕データ加工サーバ50は、BC台帳から台帳情報取得を行う。
【0248】
〔ステップ107a〕BC台帳は、データ加工サーバ50に台帳情報を送信する。
〔ステップ108a〕データ加工サーバ50は、提供データのハッシュ値検証を行う。
〔ステップ109a〕データ加工サーバ50は、ストレージ[/userA]に提供データ登録を行う。
【0249】
〔ステップ110a〕ストレージ[/userA]は、データ加工サーバ50に登録完了を通知する。
〔ステップ111a〕データ加工サーバ50は、プロキシ(GW1)に登録完了を通知する。
【0250】
上記のような提供データ登録フェーズにおいて、データ提供者が、自ゲートウェイ(GW1)に「データID」「提供者の署名」「属性」「提供データにアクセスするためのURL」「テストデータにアクセスするためのURL」「提供データのハッシュ値」「提供データの公開先」を含む提供データ登録トランザクションを発行する。
【0251】
各GWでは、データ提供者の署名が正しいことを検証し、問題なければ提供データとテストデータをデータ加工環境へ転送し、BC台帳にメタ情報が書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、データIDと紐づけたメタ情報が共有され、外部からデータアクセスを許可するためのプロキシ設定が動的に生成される。
【0252】
図40はメタ情報テーブルの一例を示す図である。メタ情報テーブルT1a1は、提供データ登録フェーズ後のメタ情報を示している。
図41、
図42はプロキシ設定テーブルの一例を示す図である。
【0253】
図41のプロキシ設定テーブルT2a1、T3a1、T4a1は、提供データ登録フェーズにおいて、データ登録前のプロキシ設定情報を示しており(
図36のステップ14a1で設定された後のプロキシ設定テーブル)、
図42のプロキシ設定テーブルT2a11、T3a11、T4a11は、提供データ登録フェーズ後のプロキシ設定情報を示している。
【0254】
図43は提供データ登録フェーズ後のデータ加工環境内の構成の一例を示す図である。データ加工環境[safe-env-X]では、提供データ[/dataId1]およびテストデータ[/dataId1/test]が、提供者テナント51のストレージ[/userA]に配置された状態になる。
【0255】
上記の提供データ登録フェーズにより、テストデータは全ユーザへ公開、提供データは誰からもアクセス不可の状態になっている。
<加工サービス登録フェーズ>
図44から
図46は加工サービス登録フェーズの一例を示すシーケンス図である。
【0256】
〔ステップ1b1〕データ利用者(userB)は、利用者ホスト端末に加工サービス登録を行う。
〔ステップ2b1〕利用者ホスト端末は、プロキシ(GW2)に加工サービス登録を行う。
【0257】
〔ステップ3b1〕プロキシ(GW2)は、スマートコントラクト(GW2)に加工サービス登録を行う。
〔ステップ4b1〕スマートコントラクト(GW2)は、トランザクション作成および署名付与を行う。
【0258】
〔ステップ5b1〕スマートコントラクト(GW2)は、ブロック生成サーバ4にトランザクションを発行する。
〔ステップ6b1〕ブロック生成サーバ4は、スマートコントラクト(GW2)に登録完了を通知する。
【0259】
〔ステップ7b1〕スマートコントラクト(GW2)は、プロキシ(GW2)に登録完了を通知する。
〔ステップ8b1〕プロキシ(GW2)は、利用者ホスト端末に登録完了を通知する。
【0260】
〔ステップ9b1〕利用者ホスト端末は、データ利用者(userB)に登録完了を通知する。
〔ステップ10b1〕ブロック生成サーバ4は、ブロックを生成する。
【0261】
〔ステップ11b1〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
〔ステップ12b1〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
【0262】
〔ステップ13b1〕スマートコントラクト(GW1)は、ブロック検証を行う。
〔ステップ14b1〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
【0263】
〔ステップ15b1〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ16b1〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
【0264】
〔ステップ17b1〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
〔ステップ18b1〕スマートコントラクト(GW1)は、プロキシ(GW1)にデータ利用要求通知を送信する。
【0265】
〔ステップ19b1〕プロキシ(GW1)は、登録者ホスト端末にデータ利用要求通知を送信する。
〔ステップ20b1〕登録者ホスト端末は、データ提供者(userA)にデータ利用要求通知を送信する。
【0266】
〔ステップ21b1〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ22b1〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
【0267】
〔ステップ23b1〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ24b1〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
【0268】
〔ステップ25b1〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ26b1〕スマートコントラクト(GW2)は、プロキシ(GW2)に加工サービスGETを送信する。
【0269】
〔ステップ27b1〕プロキシ(GW2)は、サービスストア[/service]に加工サービスGETを送信する。
〔ステップ28b1〕サービスストア[/service]は、プロキシ(GW2)に加工サービスを送信する。
【0270】
〔ステップ29b1〕プロキシ(GW2)は、スマートコントラクト(GW2)に加工サービスを送信する。
〔ステップ30b1〕スマートコントラクト(GW2)は、プロキシ(GW2)に加工サービスPOSTを送信する。
【0271】
〔ステップ31b1〕プロキシ(GW2)は、データ加工環境[safe-env-X]に加工サービスPOSTを送信する。
〔ステップ32b1〕データ加工環境[safe-env-X]は、プロキシ(GW2)に登録完了を通知する。
【0272】
〔ステップ33b1〕プロキシ(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ34b1〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
【0273】
〔ステップ35b1〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ36b1〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
【0274】
〔ステップ37b1〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ38b1〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
【0275】
〔ステップ39b1〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
〔ステップ40b1〕スマートコントラクト(GW3)は、ブロック検証を行う。
【0276】
〔ステップ41b1〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ42b1〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
【0277】
図47は加工サービス登録フェーズにおけるデータ加工環境内の動作シーケンスを示す図である。
図45のステップ31b1と
図47のステップ101b、
図45のステップ32b1と
図47のステップ107bはそれぞれ同じ処理を表す。
【0278】
〔ステップ101b〕プロキシ(GW2)は、データ加工サーバ50に加工サービス登録を行う。
〔ステップ102b〕データ加工サーバ50は、BC台帳[safe-env-X]から台帳情報取得を行う。
【0279】
〔ステップ103b〕BC台帳[safe-env-X]は、データ加工サーバ50に台帳情報を送信する。
〔ステップ104b〕データ加工サーバ50は、加工サービスのハッシュ値検証を行う。
【0280】
〔ステップ105b〕データ加工サーバ50は、ストレージ[/userB]に加工サービス登録を行う。
〔ステップ106b〕ストレージ[/userB]は、データ加工サーバ50に登録完了を通知する。
【0281】
〔ステップ107b〕データ加工サーバ50は、プロキシ(GW2)に登録完了を通知する。
上記のような加工サービス登録フェーズにおいて、データ利用者は、提供データ登録フェーズでアクセス可能になったテストデータを用いて加工サービスを作成する。作成した加工サービスを提供データで実際に使う申請をするために、データ利用者は、自ゲートウェイで「サービスID」「利用者の署名」「属性」「加工サービスにアクセスするためのURL」「加工サービスのハッシュ値」「加工サービスの公開先」を含む加工サービス登録トランザクションを発行する。
【0282】
各GWでは、データ利用者の署名が正しいことを検証し、問題なければBC台帳に書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、サービスIDと紐づけたメタ情報が共有され、プロキシ設定が動的に生成される。
【0283】
図48はメタ情報テーブルの一例を示す図である。メタ情報テーブルT1b1は、加工サービス登録フェーズ後のメタ情報を示している。
図49、
図50はプロキシ設定テーブルの一例を示す図である。
図49のプロキシ設定テーブルT2b1、T3b1、T4b1は、加工サービス登録フェーズにおいて、データ登録前のプロキシ設定情報を示しており(
図45のステップ24b1で設定された後のプロキシ設定テーブル)、
図50のプロキシ設定テーブルT2b11、T3b11、T4b11は、加工サービス登録フェーズ後のプロキシ設定情報を示している。
【0284】
図51は加工サービス登録フェーズ後のデータ加工環境内の構成の一例を示す図である。データ加工環境[safe-env-X]では、提供データ[/dataId1]およびテストデータ[/dataId1/test]が、提供者テナント51のストレージ[/userA]に配置された状態になる。また、加工サービス[serviceId1]が利用者テナント52のストレージ[/userB]に配置された状態になる。
【0285】
上記の加工サービス登録フェーズでは、テストデータは全公開、提供データは誰からもアクセス不可の状態は変わらず、データ提供者のみが加工サービスにPOSTのリクエストができる状態となっている。
【0286】
<メタ情報更新フェーズ>
図52、
図53はメタ情報更新フェーズの一例を示すシーケンス図である。
〔ステップ1c1〕データ提供者(userA)は、登録者ホスト端末にメタデータ更新を行う。
【0287】
〔ステップ2c1〕登録者ホスト端末は、プロキシ(GW1)に提供データ登録を行う。
〔ステップ3c1〕プロキシ(GW1)は、スマートコントラクト(GW1)にメタデータ更新を行う。
【0288】
〔ステップ4c1〕スマートコントラクト(GW1)は、トランザクション作成および署名付与を行う。
〔ステップ5c1〕スマートコントラクト(GW1)は、ブロック生成サーバ4にトランザクションを発行する。
【0289】
〔ステップ6c1〕ブロック生成サーバ4は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ7c1〕スマートコントラクト(GW1)は、プロキシ(GW1)に登録完了を通知する。
【0290】
〔ステップ8c1〕プロキシ(GW1)は、登録者ホスト端末に登録完了を通知する。
〔ステップ9c1〕登録者ホスト端末は、データ提供者(userA)に登録完了を通知する。
【0291】
〔ステップ10c1〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11c1〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
【0292】
〔ステップ12c1〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13c1〕スマートコントラクト(GW1)は、ブロック検証を行う。
【0293】
〔ステップ14c1〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ15c1〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
【0294】
〔ステップ16c1〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ17c1〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
【0295】
〔ステップ18c1〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ19c1〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
【0296】
〔ステップ20c1〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ21c1〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
【0297】
〔ステップ22c1〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ23c1〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
【0298】
〔ステップ24c1〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ25c1〕スマートコントラクト(GW2)は、プロキシ(GW2)にメタデータ更新通知を行う。
【0299】
〔ステップ26c1〕プロキシ(GW2)は、利用者ホスト端末にメタデータ更新通知を行う。
〔ステップ27c1〕利用者ホスト端末は、データ利用者(userB)にデータ利用要求通知を送信する。
【0300】
〔ステップ28c1〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
〔ステップ29c1〕プロキシ(GW3)は、スマートコントラクト(GW3)にブッロクを配布する。
【0301】
〔ステップ30c1〕スマートコントラクト(GW3)は、ブロック検証を行う。
〔ステップ31c1〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
【0302】
〔ステップ32c1〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
上記のようなメタ情報更新フェーズにおいて、加工サービス登録フェーズでデータ利用要求の通知を受け、データ提供者は登録された加工サービスの内容を検証する。加工サービスの内容に問題ないと判断した場合は、提供データの利用を承認するために、データ提供者が、自ゲートウェイに登録済みの提供データのメタ情報の「提供データの公開先」の項目を更新するメタ情報更新トランザクションを発行する。
【0303】
このトランザクションに含まれる情報は提供データ登録フェーズと同様に「データID」「提供者の署名」「属性」「提供データにアクセスするためのURL」「テストデータにアクセスするためのURL」「提供データのハッシュ値」「提供データの公開先」であり、「提供データの公開先」を加工サービスのサービスIDを指定する。
【0304】
各GWでは、署名が正しいことを検証し、問題なければBC台帳に書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、データIDと紐づけたメタ情報が共有され、プロキシ設定が動的に生成される。
【0305】
図54はメタ情報テーブルの一例を示す図であり、
図55はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT1c1は、メタ情報更新フェーズ後のメタ情報を示し、プロキシ設定テーブルT2c1、T3c1、T4c1は、メタ情報更新フェーズ後のプロキシ設定情報を示している。このフェーズでは、検証の終わった加工サービスへのアクセスの設定が削除されるだけである。
【0306】
<メタ情報マッチングフェーズ>
図56から
図58はメタ情報マッチングフェーズの一例を示すシーケンス図である。
〔ステップ1d1〕データ利用者(userB)は、利用者ホスト端末にメタデータ更新確認を行う。
【0307】
〔ステップ2d1〕利用者ホスト端末は、プロキシ(GW2)にメタデータ更新確認を行う。
〔ステップ3d1〕プロキシ(GW2)は、スマートコントラクト(GW2)にメタデータ更新確認を行う。
【0308】
〔ステップ4d1〕スマートコントラクト(GW2)は、トランザクション作成および署名付与を行う。
〔ステップ5d1〕スマートコントラクト(GW2)は、ブロック生成サーバ4にトランザクションを発行する。
【0309】
〔ステップ6d1〕ブロック生成サーバ4は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ7d1〕スマートコントラクト(GW2)は、プロキシ(GW2)に登録完了を通知する。
【0310】
〔ステップ8d1〕プロキシ(GW2)は、利用者ホスト端末に登録完了を通知する。
〔ステップ9d1〕利用者ホスト端末は、データ利用者(userB)に登録完了を通知する。
【0311】
〔ステップ10d1〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11d1〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
【0312】
〔ステップ12d1〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13d1〕スマートコントラクト(GW1)は、ブロック検証を行う。
【0313】
〔ステップ14d1〕スマートコントラクト(GW1)は、BC台帳(GW1)からメタデータ取得を行う。
〔ステップ15d1〕BC台帳(GW1)は、スマートコントラクト(GW1)にメタデータを送信する。
【0314】
〔ステップ16d1〕スマートコントラクト(GW1)は、メタデータマッチングを行う。
〔ステップ17d1〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
【0315】
〔ステップ18d1〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ19d1〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
【0316】
〔ステップ20d1〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
〔ステップ21d1〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
【0317】
〔ステップ22d1〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
〔ステップ23d1〕スマートコントラクト(GW2)は、ブロック検証を行う。
【0318】
〔ステップ24d1〕スマートコントラクト(GW2)は、BC台帳(GW2)からメタデータ取得を行う。
〔ステップ25d1〕BC台帳(GW2)は、スマートコントラクト(GW2)にメタデータを送信する。
【0319】
〔ステップ26d1〕スマートコントラクト(GW2)は、メタデータマッチングを行う。
〔ステップ27d1〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
【0320】
〔ステップ28d1〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ29d1〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
【0321】
〔ステップ30d1〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ31d1〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
【0322】
〔ステップ32d1〕プロキシ(GW3)は、スマートコントラクト(GW3)にブッロクを配布する。
〔ステップ33d1〕スマートコントラクト(GW3)は、ブロック検証を行う。
【0323】
〔ステップ34d1〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ35d1〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
【0324】
上記のようなメタ情報マッチングフェーズにおいて、メタ情報更新フェーズでメタ情報更新の通知を受け、データ利用者はデータ提供者からデータの利用が承認されたことを確認する。
【0325】
そして、実際にデータ利用を開始するために、データ利用者が、自ゲートウェイで「利用するデータID」「利用するサービスID」「利用者の署名」を含むメタ情報更新確認トランザクションを発行する。
【0326】
各GWでは、署名が正しいこととメタ情報のマッチングが取れていることを検証する。これらの検証に問題なければ、データアクセスするためのルーティングテーブルが動的に生成される。
【0327】
図59はメタ情報テーブルの一例を示す図であり、
図60はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT1d1は、メタ情報マッチングフェーズ後のメタ情報を示し、プロキシ設定テーブルT2d1、T3d1、T4d1は、メタ情報マッチングフェーズ後のプロキシ設定情報を示している。このフェーズでは、処理結果のデータを受け取るためのURLとして「/processDataId1」が発行され、データ利用者のみがアクセスできる状態になっている。
【0328】
<加工データ取得フェーズ>
第3の実施の形態の加工データ取得フェーズのシーケンスは、上述の
図31から
図33に示したシーケンスと同じであり、第3の実施の形態のデータ加工環境内の動作シーケンスは、上述の
図34に示したシーケンスと同じである。
【0329】
データ利用者が、「/processDataId1」に対してリクエストを送ると、GWに設定されたルーティングテーブルにもとづいてリクエストが転送され、データ加工サーバ50が提供データを取得し、加工サービスで加工した結果のみをレスポンスとして、データ利用者に返す。
【0330】
また、加工データが正しく利用者の手元に届いたことを証跡として残すために、加工データの取得が完了したタイミングで「加工データ取得結果」「利用者の署名」を含むトランザクションを発行し、各GWでBC台帳に記録する。第3の実施の形態では、データおよび加工サービスの削除は行わず、BC台帳の記録ですべての処理を完了する。
【0331】
[第4の実施の形態]
次に第4の実施の形態について説明する。第4の実施の形態は、複数のデータ加工環境のうちから実行するデータ加工環境を指定する。第4の実施の形態では、複数のデータ加工環境の中から、データおよび加工サービスの信頼する加工環境を選択し、その環境下でのみ加工処理を実行するものである。
【0332】
図61は第4の実施の形態の通信システムの一例を示す図である。第4の実施の形態の通信システム1a-1では、データ加工環境5-1(データ加工環境[safe-env-X])、データ加工環境5-2(データ加工環境[safe-env-Y])、データ加工環境5-3(データ加工環境[safe-env-Z])が通信ネットワークN1に接続されている。その他の構成は
図3と同様なので説明は省略する。
【0333】
これらの複数のデータ加工環境は、それぞれ別のPF管理者がおり、設置される場所や環境内のセキュリティレベル、利用しているストレージの種類、利用料金等が異なっている。データ提供者とデータ利用者は、複数あるデータ加工環境の中から利用するデータ加工環境を選択することができる。
【0334】
<事前準備>
PF管理者が安全なデータ加工環境として、上述の
図7に示すデータ加工環境を用意する。また、各GWには、データ加工環境[safe-env-X]、データ加工環境[safe-env-Y]およびデータ加工環境[safe-env-Z]の情報を登録しておき、ネットワークが疎通可能な状態にする。
【0335】
図62はメタ情報テーブルの一例を示す図である。メタ情報テーブルT10は、初期状態のテーブル情報である。プロキシ設定テーブルは、上述の
図11のテーブルと同じである。このフェーズでは、各GWの所有者が発行するトランザクションのリクエストとブロック生成サーバ4より配布されるブロックの情報をスマートコントラクトに転送する設定が入っている。その他のリクエストは破棄されるため、各GWからはどのデータやサービスへもアクセスできない状態となっている。
【0336】
<提供データ登録フェーズ>
提供データ登録フェーズのシーケンスは、上述の
図12および
図13に示すシーケンスと同じである。データ提供者が、自ゲートウェイ(GW1)に「データID」「提供者の署名」「属性」「提供データにアクセスするためのURL」「テストデータにアクセスするためのURL」「提供データのハッシュ値」「提供データの公開先」「利用する加工環境」を含む提供データ登録トランザクションを発行する。
【0337】
各GWでは、データ提供者の署名が正しいことを検証し、問題なければBC台帳に書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、データIDと紐づけたメタ情報が共有され、外部からデータアクセスを許可するためのプロキシ設定が動的に生成される。
【0338】
図63はメタ情報テーブルの一例を示す図である。メタ情報テーブルT10aは、提供データ登録フェーズ後のテーブル情報である。プロキシ設定テーブルは、上述の
図15のテーブルと同じである。このフェーズでは、テストデータは全ユーザへ公開、提供データは誰からもアクセス不可の状態となっている。
【0339】
<加工サービス登録フェーズ>
加工サービス登録フェーズのシーケンスは、上述の
図16および
図17に示すシーケンスと同じである。データ利用者は、提供データ登録フェーズでアクセス可能になったテストデータを用いて加工サービスを作成する。
【0340】
作成した加工サービスを提供データで実際に使う申請をするために、データ利用者が、自ゲートウェイで「サービスID」「利用者の署名」「属性」「加工サービスにアクセスするためのURL」「加工サービスのハッシュ値」「加工サービスの公開先」「利用する加工環境」を含む加工サービス登録トランザクションを発行する。各GWでは、データ利用者の署名が正しいことを検証し、問題なければ台帳に書き込まれる。
【0341】
BC台帳への書き込みが完了すると、BC台帳上で、サービスIDと紐づけたメタ情報が共有され、プロキシ設定が動的に生成される。
図64はメタ情報テーブルの一例を示す図である。メタ情報テーブルT10bは、加工サービス登録フェーズ後のテーブル情報である。プロキシ設定テーブルは、上述の
図19のテーブルと同じである。
【0342】
このフェーズでは、テストデータは全公開、提供データは誰からもアクセス不可の状態は変わらず、データ提供者のみが加工サービスにPOSTのリクエストができる状態になっている。
【0343】
<メタ情報更新フェーズ>
メタ情報更新フェーズのシーケンスは、上述の
図20および
図21に示すシーケンスと同じである。加工サービス登録フェーズでデータ利用要求の通知を受け、データ提供者は登録された加工サービスの内容を検証する。
【0344】
加工サービスの内容に問題ないと判断した場合は、提供データの利用を承認するために、データ提供者が、自ゲートウェイに登録済みの提供データのメタ情報の「提供データの公開先」の項目を更新するメタ情報更新トランザクションを発行する。
【0345】
このトランザクションに含まれる情報は提供データ登録フェーズと同様に「データID」「提供者の署名」「属性」「提供データにアクセスするためのURL」「テストデータにアクセスするためのURL」「提供データのハッシュ値」「提供データの公開先」「利用する加工環境」であり、「提供データの公開先」を加工サービスのサービスIDを指定する。
【0346】
各GWでは、署名が正しいことを検証し、問題なければ台帳に書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、データIDと紐づけたメタ情報が共有され、プロキシ設定が動的に生成される。
【0347】
図65はメタ情報テーブルの一例を示す図であり、
図66はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT10cは、メタ情報更新フェーズ後のメタ情報を示し、プロキシ設定テーブルT20c、T30c、T40cは、フェーズ後のプロキシ設定情報を示している。
【0348】
このフェーズでは、GW1からのみ提供データにGETし、提供者テナントへPOSTできる状態になっている。また、同じくGW2からのみ加工サービスにGETし、利用者テナントにPOSTできる状態になっている(本フェーズでは、POST可能なデータ加工環境への設定をすべて登録しておき、実際にどのデータ加工環境へ送信するかは次のメタ情報マッチングフェーズで判断される)。
【0349】
<メタ情報マッチングフェーズ>
メタ情報マッチングフェーズのシーケンスは、上述の
図24から
図26に示すシーケンスと同じであり、データ加工環境内の動作シーケンスは、上述の
図27のシーケンスと同じである。
【0350】
メタ情報更新フェーズでメタ情報更新の通知を受け、データ利用者はデータ提供者からデータの利用が承認されたことを確認する。そして、実際にデータ利用を開始するために、データ利用者が、自ゲートウェイで「利用するデータID」「利用するサービスID」「利用者の署名」を含むメタ情報更新確認トランザクションを発行する。
【0351】
各GWでは、署名が正しいこととメタ情報のマッチングが取れていることを検証する。第4の実施の形態のメタ情報マッチングフェーズでは、データ加工環境のマッチングも行う。データ加工環境のマッチングとは、対象Aのデータにおける「データ加工環境」と対象Bの加工サービスにおける「データ加工環境」の項目で一致する項目を発見することである(項目の一致するデータ加工環境が複数ある場合のデータ加工環境の決定方法については後述する)。
【0352】
例えば、“safe-env-X”の値がdataId1とserviceId1間で一致しているため、この値のデータ加工環境へリソースを転送すると判定される。検証に問題がなければ、提供データおよび加工サービスをデータ加工環境への転送と、データアクセスするためのルーティングテーブルが動的に生成される。
【0353】
データ加工環境へ提供データを転送する場合は、メタ情報に登録されているハッシュ値と実際に転送されてきたデータをハッシュ計算した値の比較を行い、同じ値であることを検証してからストレージに登録する。加工サービスを転送する時も同様にハッシュ値の検証が行われる。
【0354】
図67はメタ情報テーブルの一例を示す図である。メタ情報テーブルT10dは、メタ情報マッチングフェーズ後のテーブル情報を示す。プロキシ設定テーブルは、上述の
図29のテーブルと同じである。
【0355】
このフェーズでは、処理結果のデータを受け取るためのURLとして「/processDataId1」が発行され、データ利用者のみがアクセスできる状態になっている。また、メタ情報更新フェーズで設定した提供データおよび加工サービスをGETおよびPOSTできる設定は、安全のため削除している。
【0356】
なお、メタ情報マッチングフェーズ後のデータ加工環境内の構成は、上述の
図30に示す構成と同じである。提供データおよび加工サービスがそれぞれ所有者のテナントに配置された状態になる。
【0357】
<加工データ取得フェーズ>
加工データ取得フェーズのシーケンスは、上述の
図31から
図33に示すシーケンスと同じであり、データ加工環境内の動作シーケンスは、上述の
図34のシーケンスと同じである。
【0358】
データ利用者が、「/processDataId1」に対してリクエストを送ると、GWに設定されたルーティングテーブルにもとづいて、まずデータ加工環境にリクエストが転送される。その後、BC台帳に記述された内容の通りにデータ加工サーバ50が提供データを取得し、加工サービスで加工した結果のみをレスポンスとして、データ利用者に返し、加工に使用した提供データおよび加工サービスは削除する。
【0359】
また、加工データが正しくデータ利用者の手元に届いたことを証跡として残すために、加工データの取得が完了したタイミングで「加工データ取得結果」「利用者の署名」を含むトランザクションを発行し、各GWでBC台帳に記録し、すべての処理を完了する。
【0360】
ここで、上記のメタ情報マッチングフェーズにおける、項目の一致するデータ加工環境が複数ある場合のデータ加工環境の決定方法について説明する。項目の一致するデータ加工環境が複数あり、データ加工環境のマッチングにおいて、利用するデータ加工環境が一意に決まらない場合は、あらかじめ設定されたアルゴリズムにもとづいて決定する。例えば、アルファベット順や、データ加工環境に設定されるIDの値が小さい順等があり、全GWで同一のルールにもとづいて決定するように事前に設定を行う。
【0361】
図68はメタ情報テーブルの一例を示す図である。メタ情報テーブルT100は
図65に示したメタ情報テーブルT10cに対して、serviceId1のデータ加工環境にsafe-env-Yが追加されているものである。
【0362】
この状況でデータ加工環境のマッチングを行うと、dataId1とserviceId1で共通するデータ加工環境がsafe-env-X, safe-env-Yの2箇所になってしまう。提供データと加工データは同じデータ加工環境に転送するため、各GWで共通のアルゴリズムを用いて、データ加工環境を一意に決定する。データ加工環境を決めるアルゴリズムの例を下記に示す。
【0363】
例1:アルファベット順で決定する場合
データ加工環境はIDやURLのような文字列で管理されている。そのため、「データ加工環境の文字列をアルファベット順にした場合に、昇順(または降順)で1番目にヒットするデータ加工環境に決定する」といったアルゴリズムを各GWで共有する。これにより、GW間で通信をせずとも全GWで同じデータ加工環境を決定することができる。
【0364】
例えば、アルファベット順で決定するアルゴリズムを用いた場合、
図68のメタ情報テーブルT100では、選択できる環境はsafe-env-X、safe-env-Yの2つなので、昇順で1番目にヒットするsafe-env-XをすべてのGWで選択し、提供データおよび加工サービスを転送する。データ加工環境マッチング後のメタ情報テーブルT101は
図69のようになる。
【0365】
例2:乱数プログラムを用いて決定する場合
例1のような決め方だと、決定されるデータ加工環境に偏りが生まれる可能性がある。そこで、選択されるデータ加工環境を平滑化するような方法として、乱数プログラムを用いる。
【0366】
乱数プログラムは疑似乱数と呼ばれ、C言語のrand関数のように、一見、ランダムな値を返すように見えるが、法則性がある(完璧な乱数ではない)。また、同じ乱数プログラムと乱数生成の引数となるseed値を用いると、乱数プログラムは常に同じ順番に乱数を生成する。
【0367】
例えば、seed値を10で設定して、ある乱数プログラムを使うと、「25 46 71 43 93 65 23・・・」と値を出力する。このプログラムを一旦リセットして、あらためて、seed値10でプログラムを動かすと1回目と同じように「25 46 71 43 93 65 23・・・」の出力を得られる。
【0368】
ここでは、この特性を利用し、全GWで同じ乱数プログラムと乱数生成の引数となるseed値を共有することで、選択自体はランダムでありながら、全GWで同じデータ加工環境を選択するようにする。
【0369】
図68のメタ情報テーブルT100では、選択できる環境はsafe-env-X、safe-env-Yの2つなのである。この例では、あらかじめ乱数プログラムrand()およびseed値10を全GWで共有している。この乱数プログラムはseed値10のとき、「25 46 71 43 93 65 23・・・」といった順に乱数を発生させるので、得られた乱数を選択できる環境数(今回は2)で剰余をとり、アルファベットの昇順で剰余の値+1番目の環境で決定するというアルゴリズムを共通で使うとする。
【0370】
乱数プログラムを使った計算は、rand(10)mod2+1=25mod2+1=2となり、すべてのGWで2の値を得るので、アルファベットの昇順で2番目のsafe-env-YをすべてのGWで選択し、提供データおよび加工サービスを転送する。データ加工環境マッチング後のメタ情報テーブルT102は
図70のようになる。
【0371】
以上説明したように、本発明によれば、スマートコントラクトの仕組みとメタ情報を活用し、同意したデータ処理が正しく実行されることを、他のBC参加者を含めて検証する。本発明では、利用者は一次データを閲覧することがなく、利用者が見ることができるのは処理結果のみとなる。処理結果に関しては、データ提供者が承諾済みの二次データであり、権利や責任はデータ利用者のものである。
【0372】
そのため、データ利用者に渡ったデータが仮に漏洩した場合でも、その影響はデータ提供者に波及しないので、データを出す側にとって安心してデータを提供することができる。また、データと同様に加工サービスの内容をデータ提供者に公開しないため、データ利用者側も安心してデータを加工し、利用することができる。
【0373】
したがって、一次データおよび加工サービスを利用者と提供者間で見せあうことなく、データ提供者・データ利用者の両者が合意した処理結果のみが流通するプラットフォームが実現できる。その結果、一次データと加工サービスはそれぞれ流通されないので不正な二次利用を防止し、データ提供者・データ利用者共に安心してデータをやり取りできる。
【0374】
上記で説明した本発明の処理機能は、コンピュータによって実現することができる。この場合、処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0375】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶部、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶部には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等がある。光ディスクには、CD-ROM/RW等がある。光磁気記録媒体には、MO(Magneto Optical disk)等がある。
【0376】
プログラムを流通させる場合、例えば、そのプログラムが記録されたCD-ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶部に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0377】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶部に格納する。そして、コンピュータは、自己の記憶部からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【0378】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLD等の電子回路で実現することもできる。
【0379】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0380】
10、10-1、10-2、10-3 通信装置
11、11a、11b、11c 制御部
12、12a、12b、12c 記憶部
DL1、DL2、DL3 分散台帳
20 データ加工環境
N0 ネットワーク