JP2021077223A - 通信プログラム、通信方法および通信装置 - Google Patents

通信プログラム、通信方法および通信装置 Download PDF

Info

Publication number
JP2021077223A
JP2021077223A JP2019204858A JP2019204858A JP2021077223A JP 2021077223 A JP2021077223 A JP 2021077223A JP 2019204858 A JP2019204858 A JP 2019204858A JP 2019204858 A JP2019204858 A JP 2019204858A JP 2021077223 A JP2021077223 A JP 2021077223A
Authority
JP
Japan
Prior art keywords
data
processing
proxy
smart contract
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019204858A
Other languages
English (en)
Other versions
JP7273312B2 (ja
Inventor
哲 西間木
Satoru Nishimaki
哲 西間木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019204858A priority Critical patent/JP7273312B2/ja
Priority to US17/074,685 priority patent/US11693824B2/en
Publication of JP2021077223A publication Critical patent/JP2021077223A/ja
Application granted granted Critical
Publication of JP7273312B2 publication Critical patent/JP7273312B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Library & Information Science (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データの二次利用と加工サービスの漏洩を防止する。【解決手段】ネットワークN0には、通信装置10−1、10−2およびデータ加工環境20が接続され、データ加工環境20には、通信装置10−3が含まれる。制御部11aは、データ提供者から提供されるデータおよびデータの属性情報を含む第1のメタデータを分散台帳DL1に登録する。制御部11bは、データ利用者によってデータを加工して利用する際の加工サービスおよび加工サービスの属性情報を含む第2のメタデータを分散台帳DL2に登録する。制御部11aは、第1、第2のメタデータにもとづいて加工サービスの承認可否を判定する。制御部11cは、承認可否の判定結果が承認可の場合、通信装置10−1および通信装置10−2からデータおよび加工サービスへのアクセスを不可とするデータ加工環境20上で、加工サービスにもとづくデータ加工を実行する。【選択図】図1

Description

本発明は、通信プログラム、通信方法および通信装置に関する。
近年、企業(組織)が保有するデータを互いに出し合い、利活用することで、新規ビジネスを創出する動きが盛んである。このような企業間のデータ利活用を活性化させる場として、データ流通ネットワークが注目されている。
データ流通ネットワークに関連する技術としては、例えば、ブロックチェーンによる分散台帳技術を利用してデータを流通させるネットワークが提案されている。
国際公開第2019/004118号 特開2018−128723号公報 特開2018−124924号公報
しかし、データ流通ネットワークでは、データの二次利用(複製、引用等)による他者への漏洩が問題になっている。また、データそのものでなくてもデータの加工サービスにおけるデータの処理方法や分析方法といったノウハウは他者に公開できない場合がある。データ流通ネットワークを円滑に運営するためにも、データの二次利用と加工サービスの漏洩の防止を行うデータ流通ネットワークが要望されている。
1つの側面では、本発明は、データの二次利用と加工サービスの漏洩の防止を図った通信プログラム、通信方法および通信装置を提供することを目的とする。
上記課題を解決するために、ネットワークに含まれる複数の通信装置に実行させる通信プログラムが提供される。通信プログラムは、データを提供する側の第1の通信装置の第1のコンピュータに、データおよびデータの属性情報を含む第1のメタデータを登録させ、データを利用する側の第2の通信装置の第2のコンピュータに、データを加工して利用する際の加工サービスおよび加工サービスの属性情報を含む第2のメタデータを登録させ、第1のコンピュータに、第1のメタデータと第2のメタデータにもとづいて加工サービスの承認可否を判定させ、データを加工する側の第3の通信装置の第3のコンピュータに、承認可否の判定結果が承認可の場合に、第1の通信装置および第2の通信装置からデータおよび加工サービスへのアクセスを不可とするデータ加工環境上で、加工サービスにもとづくデータ加工を実行させる。
また、上記課題を解決するために、通信装置が上記通信プログラムの制御を実行する通信方法が提供される。
さらに、上記課題を解決するために、上記通信プログラムの制御を実行する通信装置が提供される。
1側面によれば、データの二次利用と加工サービスの漏洩を防止することができる。
第1の実施の形態の通信装置の一例を説明するための図である。 データ流通市場を説明するための図である。 第2の実施の形態の通信システムの一例を示す図である。 通信システムで行われる動作の一例を示す図である。 GWのハードウェア構成の一例を示す図である。 通信システムが構築されるBCプラットフォームの一例を示す図である。 データ加工環境の内部構成の一例を示す図である。 通信システムの全体処理フローの一例を示す図である。 通信システムの全体処理フローの一例を示す図である。 メタ情報テーブルの一例を示す図である。 プロキシ設定テーブルの一例を示す図である。 提供データ登録フェーズの一例を示すシーケンス図である。 提供データ登録フェーズの一例を示すシーケンス図である。 メタ情報テーブルの一例を示す図である(提供データ登録フェーズ)。 プロキシ設定テーブルの一例を示す図である(提供データ登録フェーズ)。 加工サービス登録フェーズの一例を示すシーケンス図である。 加工サービス登録フェーズの一例を示すシーケンス図である。 メタ情報テーブルの一例を示す図である(加工サービス登録フェーズ)。 プロキシ設定テーブルの一例を示す図である(加工サービス登録フェーズ)。 メタ情報更新フェーズの一例を示すシーケンス図である。 メタ情報更新フェーズの一例を示すシーケンス図である。 メタ情報テーブルの一例を示す図である(メタ情報更新フェーズ)。 プロキシ設定テーブルの一例を示す図である(メタ情報更新フェーズ)。 メタ情報マッチングフェーズの一例を示すシーケンス図である。 メタ情報マッチングフェーズの一例を示すシーケンス図である。 メタ情報マッチングフェーズの一例を示すシーケンス図である。 メタ情報マッチングフェーズにおけるデータ加工環境内の動作シーケンス示す図である。 メタ情報テーブルの一例を示す図である(メタ情報マッチングフェーズ)。 プロキシ設定テーブルの一例を示す図である(メタ情報マッチングフェーズ)。 メタ情報マッチングフェーズ後のデータ加工環境の構成の一例を示す図である。 加工データ取得フェーズの一例を示すシーケンス図である。 加工データ取得フェーズの一例を示すシーケンス図である。 加工データ取得フェーズの一例を示すシーケンス図である。 加工データ取得フェーズにおけるデータ加工環境内の動作シーケンスを示す図である。 提供データ登録フェーズの一例を示すシーケンス図である。 提供データ登録フェーズの一例を示すシーケンス図である。 提供データ登録フェーズの一例を示すシーケンス図である。 提供データ登録フェーズの一例を示すシーケンス図である。 提供データ登録フェーズにおけるデータ加工環境内の動作シーケンスを示す図である。 メタ情報テーブルの一例を示す図である(提供データ登録フェーズ)。 プロキシ設定テーブルの一例を示す図である(提供データ登録フェーズ)。 プロキシ設定テーブルの一例を示す図である(提供データ登録フェーズ)。 提供データ登録フェーズ後のデータ加工環境内の構成の一例を示す図である。 加工サービス登録フェーズの一例を示すシーケンス図である。 加工サービス登録フェーズの一例を示すシーケンス図である。 加工サービス登録フェーズの一例を示すシーケンス図である。 加工サービス登録フェーズにおけるデータ加工環境内の動作シーケンスを示す図である。 メタ情報テーブルの一例を示す図である(加工サービス登録フェーズ)。 プロキシ設定テーブルの一例を示す図である(加工サービス登録フェーズ)。 プロキシ設定テーブルの一例を示す図である(加工サービス登録フェーズ)。 加工サービス登録フェーズ後のデータ加工環境内の構成の一例を示す図である。 メタ情報更新フェーズの一例を示すシーケンス図である。 メタ情報更新フェーズの一例を示すシーケンス図である。 メタ情報テーブルの一例を示す図である(メタ情報更新フェーズ)。 プロキシ設定テーブルの一例を示す図である(メタ情報更新フェーズ)。 メタ情報マッチングフェーズの一例を示すシーケンス図である。 メタ情報マッチングフェーズの一例を示すシーケンス図である。 メタ情報マッチングフェーズの一例を示すシーケンス図である。 メタ情報テーブルの一例を示す図である(メタ情報マッチングフェーズ)。 プロキシ設定テーブルの一例を示す図である(メタ情報マッチングフェーズ)。 第4の実施の形態の通信システムの一例を示す図である。 メタ情報テーブルの一例を示す図である。 メタ情報テーブルの一例を示す図である。 メタ情報テーブルの一例を示す図である。 メタ情報テーブルの一例を示す図である。 プロキシ設定テーブルの一例を示す図である。 メタ情報テーブルの一例を示す図である。 メタ情報テーブルの一例を示す図である。 メタ情報テーブルの一例を示す図である。 メタ情報テーブルの一例を示す図である。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態について図1を用いて説明する。図1は第1の実施の形態の通信装置の一例を説明するための図である。通信装置10は、ネットワークに含まれ、制御部11と記憶部12を備える。
制御部11は、ネットワークを介して他装置に接続して通信制御を行う。記憶部12は、ブロックチェーンによる分散台帳の記憶領域を有し、通信制御に要する各種データを記憶する。制御部11および記憶部12の各処理は、通信装置10が備える図示しないプロセッサが、所定のプログラムを実行することによって実現される。
図1に示す例を用いて動作について説明する。ネットワークN0には、通信装置10−1、10−2およびデータ加工環境20が接続され、データ加工環境20には、通信装置10−3が含まれる。また、通信装置10−1、10−2、10−3によってブロックチェーンのプラットフォームが構築されている。
通信装置10−1は、制御部11aと記憶部12aを含み、通信装置10−2は、制御部11bと記憶部12bを含み、通信装置10−3は、制御部11cと記憶部12cを含む。記憶部12aは、分散台帳DL1の記憶領域を有し、記憶部12bは、分散台帳DL2の記憶領域を有し、記憶部12cは、分散台帳DL3の記憶領域を有する。なお、分散台帳DL1、DL2、DL3に格納される情報は、ブロックチェーンによる分散台帳管理によって共有化される。
通信装置10−1は、データ提供者側に属する装置であり、通信装置10−2は、データ利用者側に属する装置である。通信装置10−3は、データ加工を行う機能を有する装置である。
〔ステップS1〕制御部11aは、データ提供者から提供されるデータおよびデータの属性情報を含む第1のメタデータを分散台帳DL1に登録する。
〔ステップS2〕制御部11bは、データ利用者によってデータを加工して利用する際の加工サービスおよび加工サービスの属性情報を含む第2のメタデータを分散台帳DL2に登録する。
〔ステップS3〕制御部11aは、第1のメタデータと第2のメタデータにもとづいて加工サービスの承認可否を判定する。
〔ステップS4〕制御部11cは、加工サービスの承認可否の判定結果が承認可の場合、通信装置10−1および通信装置10−2からデータおよび加工サービスへのアクセスを不可とするデータ加工環境20上で、加工サービスにもとづくデータ加工を実行する。
このように、通信装置10では、データおよびデータの加工サービスの属性情報であるメタデータにもとづいて、加工サービスの承認可を判定した場合、第三者のデータ加工環境上(通信装置10−1、10−2からデータおよび加工サービスへのアクセスを不可とするデータ加工環境上)で加工サービスにもとづくデータ加工を行う。これにより、データの二次利用と加工サービス(データ加工方法も含まれる)の漏洩を防止することができる。
[第2の実施の形態]
次に第2の実施の形態について説明する、最初にデータ流通市場について説明する。図2はデータ流通市場を説明するための図である。データ流通市場200では、データ提供者(売り手)がデータに価格を設定して売りに出し、データ利用者(買い手)が買い入れるといったデータの売り買いが行われる。
データ利用者は、購入したデータを加工したり、分析したりすることで、自分たちのビジネスに役立つ情報を抽出し、利活用を行う。また、購入したデータに対して代金が支払われることで、データ提供者にとって利益が生まれ、より価値のあるデータが流通の場に集まることが期待できる。
ただし、データ流通市場200の商品であるデータは、複製可能であるため、データ提供者の出す一次データをいかに保護するかが重要となる。複製可能なことを悪用するユーザが一次データを勝手に他者に漏洩してしまうと、データ提供者は不利益を被る。また、たとえ不正をする気がないデータ利用者でもデータをコピーできてしまうことから、一次データがデータ利用者の元から誤って流出してしまう可能性もある。
一方、データだけでなく、データの加工や分析といったデータ利用のノウハウは、例えば、知財であり、他者に公開できない場合がある。このようなデータの加工サービスの中身が他者から見えてしまうデータ流通市場200では、ノウハウが他者に漏れてしまうことをデータ利用者は嫌って、データの利用が進まない状況になる可能性もある。
上記のように、データ流通市場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に対応する。
GW1、GW2、GW3はそれぞれ、分散台帳(以降、BC台帳と表記)と、自動契約を行うプロトコルであるスマートコントラクト(スマート契約)とを有するノードであり、通信ネットワークn1、n2、n3に対してそれぞれ接続されている。なお、通信ネットワークN1は、例えば、インターネットやBCネットワークであり、通信ネットワークn1、n2、n3は、例えば、企業内のローカルネットワークである。
通信ネットワークn1には、データ提供者(userA)として、登録者ホスト端末、データストア[/product]およびデータストア[/test]が接続される。データストア[/product]には実データが格納され、データストア[/test]にはテストデータ(テスト(模擬)データ)が格納される。
通信ネットワークn2には、データ利用者(userB)として、利用者ホスト端末およびサービスストア[/service]が接続される。サービスストア[/service]には、加工サービスが格納される。また、通信ネットワークn3には、当事者以外の参加者(userC)として参加者ホスト端末が接続される。
ここで、ブロック生成サーバ4は、GW1、GW2、GW3で発行されたトランザクション(一連の処理のセット)をブロック化し、各GWに送信する処理を行う。ブロック生成サーバ4は、例えば、コンソーシアム型ブロックチェーンのOSS(Open Source Software)であるHyperledger FabricのOrdering Serviceが適用できる。以降では、コンソーシアム型ブロックチェーンの場合を例として用いるが、パブリック型のブロックチェーンでも同様に実施可能である。パブリック型の場合、ブロック生成サーバ4はマイニング装置に相当する。
また、データ加工環境5(以降、データ加工環境[safe-env-X]等と呼ぶ場合がある)は、プラットフォームの管理者(以降、PF管理者と表記)によって管理され、参加者全員が安全と認めるサーバ環境であって、この場所でデータ加工が安全に行われる。
図4は通信システムで行われる動作の一例を示す図である。通信システム1−1では、スマートコントラクトの仕組みを活用し、BCの参加者全員で処理内容を検証しながら、データ提供者とデータ利用者が互いに信頼できる環境でデータ加工を実行する。
信頼できる環境とは、図3に示すデータ加工環境[safe-env-X]に相当する。これはユーザが安全と認める第三者の環境であり、データや加工サービスを外部から直接のぞくことができないように保護された空間である。例えば、PF管理者やコンソーシアムオーナが用意したサーバ上に構築されるHTTP(Hypertext Transfer Protocol)/HTTPS(Hypertext Transfer Protocol Secure)のリクエスト(GET、POST)のみを受け付け、BC台帳の情報にもとづいて処理するシステムである。
なお、リクエストmethodにはGETおよびPOSTが使用される。GETはサーバからデータを受信する場合に使用し、リクエストURL(Uniform Resource Locator)を指定することで、所望のデータを受け取る。また、POSTはサーバにデータを送信する場合に使用し、リクエストボディにデータを埋め込み、リクエストURLに指定した場所にデータを転送する。
データ利用者が加工サービスによるデータ利用を行いたい場合、データ利用者は、データ処理を記述した加工サービスを作成する。そして、データ利用者は、作成した加工サービスおよび加工サービスの属性を含むメタ情報を含むトランザクションをデータ提供者に向けて発行することで、データ利用のリクエストを送る。
データ提供者は、加工サービスが不正なデータ利用をしていないことを確認し、データアクセスを承認する。データへのアクセスが承認されると、承認されたデータが加工サービスで処理されるように、データ加工環境内に設定される。
データ提供者とデータ利用者のやり取りは、BC上のスマートコントラクトで行われ、提供データおよび加工サービスと共に登録されるメタ情報によって、当事者だけでなく、第三者も加工サービスが正しく動いているかを検証できる。これにより、一次データおよび加工サービスをデータ利用者とデータ提供者間で見せあうことなく、データ提供者・利用者の両者が合意した処理結果のみが流通するプラットフォームを提供することができる。
<ハードウェア構成>
図5はGWのハードウェア構成の一例を示す図である。GW(通信装置10)は、プロセッサ(コンピュータ)100によって全体制御されている。プロセッサ100は、制御部11の機能を実現する。
プロセッサ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以上の要素の組み合わせであってもよい。
メモリ101は、記憶部12の機能を含み、GWの主記憶装置として使用される。メモリ101には、プロセッサ100に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ101には、プロセッサ100による処理に要する各種データが格納される。
また、メモリ101は、GWの補助記憶装置としても使用され、OSのプログラム、アプリケーションプログラム、および各種データが格納される。メモリ101は、補助記憶装置として、フラッシュメモリやSSD(Solid State Drive)等の半導体記憶装置やHDD(Hard Disk Drive)等の磁気記録媒体を含んでもよい。なお、メモリ101には、BC台帳、ルーティングテーブルおよびスマートコントラクトを実行するプログラムが格納される。
バス103に接続されている周辺機器としては、入出力インタフェース102およびネットワークインタフェース104がある。入出力インタフェース102は、プロセッサ100からの命令にしたがってGWの状態を表示する表示装置として機能するモニタ(例えば、LED(Light Emitting Diode)やLCD(Liquid Crystal Display)等)が接続できる。
さらに、入出力インタフェース102は、キーボードやマウス等の情報入力装置を接続可能であって、情報入力装置から送られてくる信号をプロセッサ100に送信する。
さらにまた、入出力インタフェース102は、周辺機器を接続するための通信インタフェースとしても機能する。例えば、入出力インタフェース102は、レーザ光等を利用して、光ディスクに記録されたデータの読み取りを行う光学ドライブ装置を接続することができる。光ディスクには、Blu−rayDisc(登録商標)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(Rewritable)等がある。
また、入出力インタフェース102は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース102との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
ネットワークインタフェース104は、ネットワークに接続してネットワークインタフェース制御を行う。例えば、NIC(Network Interface Card)、無線LAN(Local Area Network)カード等を使用することもできる。ネットワークインタフェース104で受信されたデータは、メモリ101やプロセッサ100に出力される。
以上のようなハードウェア構成によって、GWの処理機能を実現することができる。例えば、GWは、プロセッサ100がそれぞれ所定のプログラムを実行することで本発明の処理を行うことができる。
GWは、例えば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。GWに実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
例えば、GWに実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ100は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。
また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ100からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ100が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
なお、上記のGWのハードウェアは、図7で後述するデータ加工サーバ50に対しても同様なハードウェアが適用することができる。
図6は通信システムが構築されるBCプラットフォームの一例を示す図である。BCでは、BC台帳、BC台帳の同期制御およびスマートコントラクトの制御を行って、データや加工サービス毎のアクセス制御を実現する。
データをやり取りする参加者は、それぞれGW1、GW2、GW3a、GW3bを持ち、GW1、GW2、GW3a、GW3bに備えられるBC台帳を通じてアクセスポリシが共有されて互いにアクセス制御が行われる。そして、BC台帳と連動してルーティングテーブルを設定する動的プロキシによって、データ提供者自身がアクセス制御できる環境が提供される。なお、GW1、GW2、GW3a、GW3bにプロキシが動的に設定されることで中継機能を有することになり、例えば、プロキシを有するGWを経由して外部のノードが接続できるようになる。
また、データ利用者は、データ提供者によってあらかじめデータA(実データ)を模擬して作成された「テストデータ(模擬データ)」を使うことで、データ加工の処理が意図通りに行われることを確認することができ、データの利活用を円滑に行うことができる。
さらに、データ加工サービスを管理することも可能になるため、例えば、加工サービスBを所持するデータ利用者が許可した加工サービスBの一部の範囲だけ、他の利用者に対してアクセス可能とすることができる。
図7はデータ加工環境の内部構成の一例を示す図である。データ加工環境[safe-env-X]は、提供者テナント51、利用者テナント52、参加者テナント53、通信ネットワークn10、およびBC台帳5aを有するデータ加工サーバ50(図1の通信装置10−3に該当)が含まれ、データ加工サーバ50は、図3に示した通信ネットワークN1に接続されている。
提供者テナント51は、ストレージ51a(ストレージ[/userA])を有し、利用者テナント52はストレージ52a(ストレージ[/userB])を有し、参加者テナント53はストレージ53a(ストレージ[/userC])を有する。
データ加工環境[safe-env-X]の内部では、このようにユーザ毎のテナントが用意されており、互いのテナント間はアクセスできない。データ加工環境[safe-env-X]は、特定の通信プロトコルとしてHTTP/HTTPSのリクエスト(GET、POST)のみを受け付ける。
また、データ加工サーバ50がBC台帳5aの情報にもとづいてデータ加工の処理を行い、提供データと、加工サービスを用いたデータ加工結果のみをユーザに返す。したがって、ユーザが直接、提供データや加工サービスを閲覧したり、編集したりといったことができない環境が構築されている。
図8、図9は通信システムの全体処理フローの一例を示す図である。図中のフローの括弧内は処理の主体を示す。全体処理フローは、提供データ登録フェーズ(ステップ1Aからステップ3A)および加工サービス登録フェーズ(ステップ1Bからステップ5B)の項目を有する。
さらに、メタ情報更新フェーズ(ステップ1Cからステップ5C)、メタ情報マッチングフェーズ(ステップ1Dからステップ6D)および加工データ取得フェーズ(ステップ1Eからステップ5E)の項目を有する。
〔ステップ1A〕データ提供者(GW)は、提供データのメタ情報を登録する(トランザクション)。
〔ステップ2A〕GWは、データ提供者の署名が正しいか否かを検証する。正しい場合はステップ3Aの処理に進む。
〔ステップ3A〕GWは、台帳登録を行う。ステップ1Bの処理に進む。
〔ステップ1B〕GWは、参加者全員がテストデータにアクセスできるようにルーティングテーブルを設定する。
〔ステップ2B〕データ利用者(GW)は、テストデータをもとに加工サービスを作成する。
〔ステップ3B〕データ利用者(GW)は、加工サービスのメタ情報を登録する(トランザクション)。
〔ステップ4B〕GWは、データ利用者の署名が正しいか否かを検証する。正しい場合はステップ5Bの処理に進む。
〔ステップ5B〕GWは、台帳登録を行う。ステップ1Cの処理に進む。
〔ステップ1C〕GWは、データ提供者のみが加工サービスにアクセスできるようにルーティングテーブルを設定する。
〔ステップ2C〕データ提供者(GW)は、加工サービスの内容を確認する。
〔ステップ3C〕データ提供者(GW)は、加工サービスを承認し、メタ情報を更新する(トランザクション)。
〔ステップ4C〕GWは、データ提供者の署名が正しいか否かを検証する。正しい場合はステップ5Cの処理に進む。
〔ステップ5C〕GWは、台帳登録を行う。ステップ1Dの処理に進む。
〔ステップ1D〕GWは、メタ情報が更新されたことをデータ利用者に通知する。
〔ステップ2D〕データ利用者(GW)は、メタ情報の更新確認を行う(トランザクション)。
〔ステップ3D〕GWは、データ利用者の署名は正しいか否か、対象の提供データの公開先に対象の加工サービスのIDがあるか否か、対象の加工サービスの公開先に対象の提供データのIDがあるか否かを検証する。データ利用者の署名は正しく、対象の提供データの公開先に対象の加工サービスのIDがあり、対象の加工サービスの公開先に対象の提供データのIDがある場合はステップ4Dの処理に進む。
〔ステップ4D〕データ加工環境は、対象の提供データをハッシュ計算した値がメタ情報のハッシュ値と一致するか否か、対象の加工サービスをハッシュ計算した値がメタ情報のハッシュ値と一致するか否かを検証する。対象の提供データをハッシュ計算した値がメタ情報のハッシュ値と一致し、対象の加工サービスをハッシュ計算した値がメタ情報のハッシュ値と一致する場合、ステップ5Dの処理に進む。
〔ステップ5D〕GWは、安全なデータ加工環境に一次データと加工サービスをそれぞれPOSTする。
〔ステップ6D〕GWは、台帳登録を行う。ステップ1Eの処理に進む。
〔ステップ1E〕データ利用者(GW)は、加工データを取得する(トランザクション)。
〔ステップ2E〕GWは、データ利用者の署名が正しいか否かを検証する。正しい場合はステップ3Eの処理に進む。
〔ステップ3E〕データ加工環境は、データ加工を実行し、加工済みデータのみを利用者のGWに送信する。
〔ステップ4E〕データ加工環境は、データ加工環境内の一次データと加工サービスを削除する。
〔ステップ5E〕GWは、台帳登録を行う。
次に第2の実施の形態の各フェーズにおける動作について詳しく説明する。
<事前準備>
PF管理者が安全なデータ加工環境として、図7に示すデータ加工環境safe-env-Xを用意する。また、各GWには、データ加工環境safe-env-Xの情報を登録しておき、ネットワークが疎通可能な状態にする。
図10はメタ情報テーブルの一例を示す図である。メタ情報テーブルT1は、データの利用範囲を公開するためのメタ情報を管理するテーブルである。メタ情報テーブルT1は、ID、所有者、属性、提供データURL/サービスURL、テストデータURL、ハッシュ値、公開先および加工処理フローの項目を有する。初期状態では各項目に登録されているデータはない。メタ情報テーブルはBC台帳に格納される。
なお、上記の項目において、属性とは提供データか、加工サービスか、または加工データかを示す。提供データURL/サービスURLは、提供データまたは加工サービスを取得する際のアクセス先のURLである。
テストデータURLは、テストデータを取得する際のアクセス先のURLである。ハッシュ値は、データ(または加工サービス)をハッシュ計算した値である。ハッシュ値にもとづいて、送信されたデータ(または加工サービス)と登録されたデータ(または加工サービス)とが一致するか否かの判定が行われる。
図11はプロキシ設定テーブルの一例を示す図である。プロキシ設定テーブルT2、T3、T4は、GW1、GW2、GW3毎に、GWで受け付けたリクエストの振り分けに使う情報を管理するテーブルであり、RequestURL、methodおよびSendToの項目を有する。プロキシ設定テーブルは、BC台帳に格納される。
GWでは、RequestURLとmethodに適合する項目を検索し、適合するリクエストをSendToに書かれたURLへ転送する。適合しないリクエストが来た場合、Not Foundを返し、リクエストは破棄される。
初期状態では、各GWの所有者が発行するトランザクションのリクエストとブロック生成サーバ4より配布されるブロックの情報をスマートコントラクトに転送する設定が入っている。
例えば、プロキシ設定テーブルT2では、トランザクションのリクエスト(/transaction)とブロック生成サーバ4より配布されるブロック(/block)の情報をGW1のスマートコントラクトに転送する設定(/GW1/smartContract)が入っている。なお、これら以外のリクエストは破棄されるため、初期状態では、各GWからはどのデータやサービスへもアクセスできない状態になっている。
<提供データ登録フェーズ>
図12、図13は提供データ登録フェーズの一例を示すシーケンス図である。
〔ステップ1a〕データ提供者(userA)は、登録者ホスト端末に提供データの登録を行う。
〔ステップ2a〕登録者ホスト端末は、プロキシ(GW1)に提供データの登録を行う。
〔ステップ3a〕プロキシ(GW1)は、スマートコントラクト(GW1)に提供データの登録を行う。
〔ステップ4a〕スマートコントラクト(GW1)は、トランザクションの作成および署名付与を行う。
〔ステップ5a〕スマートコントラクト(GW1)は、ブロック生成サーバ4にトランザクションを発行する。
〔ステップ6a〕ブロック生成サーバ4は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ7a〕スマートコントラクト(GW1)は、プロキシ(GW1)に登録完了を通知する。
〔ステップ8a〕プロキシ(GW1)は、登録者ホスト端末に登録完了を通知する。
〔ステップ9a〕登録者ホスト端末は、データ提供者(userA)に登録完了を通知する。
〔ステップ10a〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11a〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
〔ステップ12a〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13a〕スマートコントラクト(GW1)は、ブロック検証を行う。
〔ステップ14a〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ15a〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ16a〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ17a〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
〔ステップ18a〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ19a〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
〔ステップ20a〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ21a〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
〔ステップ22a〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ23a〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
〔ステップ24a〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ25a〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
〔ステップ26a〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
〔ステップ27a〕スマートコントラクト(GW3)は、ブロック検証を行う。
〔ステップ28a〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ29a〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
〔ステップ30a〕スマートコントラクト(GW3)は、プロキシ(GW3)にプロキシ設定を行う。
〔ステップ31a〕プロキシ(GW3)は、スマートコントラクト(GW3)に設定完了を通知する。
上記のような提供データ登録フェーズにおいて、データ提供者は、自ゲートウェイ(GW1)に対して、提供データの登録トランザクションを発行する。提供データには、例えば、上記に示したメタ情報テーブルで管理される「データID(ID)」、「提供者の署名(所有者)」、「属性」および「提供データにアクセスするためのURL(提供データURL/サービスURL)」が含まれる。
さらに「テストデータにアクセスするためのURL(テストデータURL)」、「提供データのハッシュ値(ハッシュ値)」および「提供データの公開先(公開先)」が含まれる。また、各GWでは、データ提供者の署名が正しいことを検証し、問題なければBC台帳に提供データが書き込まれる。
BC台帳への書き込みが完了すると、BC台帳上で、データIDと紐づけたメタ情報がGW1、GW2、GW3で共有され、外部からデータアクセスを許可するためのプロキシ設定が動的に生成される。
図14はメタ情報テーブルの一例を示す図であり、図15はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT1aは、提供データ登録フェーズ後のメタ情報を示している(データに関する第1のメタデータが登録されている)。プロキシ設定テーブルT2a、T3a、T4aは、提供データ登録フェーズ後のプロキシ設定情報を示している。なお、“−”はnull値を意味し、公開先にこの値が入っている場合は、提供データは誰にも公開しないことを表す。
データ利用者は、データIDをURLで指定してHTTP/HTTPSリクエストを行うことで、データにアクセスすることができる。リクエストされたデータIDによって、プロキシ側で、実際のデータへのURL(SendTo)へ変換し、リクエストを転送する。
SendToのURLは「/[GW]/[path]」の形式になっており、例えば、/GW1/testの場合は、GW1の配下にある/testへリクエストが転送され、テストデータが取得できる。
上記より、提供データ登録フェーズでは、テストデータは全ユーザへ公開されるが、提供データは誰からもアクセス不可の状態となっている。
<加工サービス登録フェーズ>
図16、図17は加工サービス登録フェーズの一例を示すシーケンス図である。
〔ステップ1b〕データ利用者(userB)は、利用者ホスト端末に加工サービスの登録を行う。
〔ステップ2b〕利用者ホスト端末は、プロキシ(GW2)に加工サービスの登録を行う。
〔ステップ3b〕プロキシ(GW2)は、スマートコントラクト(GW2)に加工サービスの登録を行う。
〔ステップ4b〕スマートコントラクト(GW2)は、トランザクションの作成および署名付与を行う。
〔ステップ5b〕スマートコントラクト(GW2)は、ブロック生成サーバ4にトランザクションを発行する。
〔ステップ6b〕ブロック生成サーバ4は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ7b〕スマートコントラクト(GW2)は、プロキシ(GW2)に登録完了を通知する。
〔ステップ8b〕プロキシ(GW2)は、利用者ホスト端末に登録完了を通知する。
〔ステップ9b〕利用者ホスト端末は、データ利用者に登録完了を通知する。
〔ステップ10b〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11b〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
〔ステップ12b〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13b〕スマートコントラクト(GW1)は、ブロック検証を行う。
〔ステップ14b〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ15b〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ16b〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ17b〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
〔ステップ18b〕スマートコントラクト(GW1)は、プロキシ(GW1)にデータ利用要求通知を送信する。
〔ステップ19b〕プロキシ(GW1)は、登録者ホスト端末にデータ利用要求通知を送信する。
〔ステップ20b〕登録者ホスト端末は、データ提供者(userA)にデータ利用要求通知を送信する。
〔ステップ21b〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ22b〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
〔ステップ23b〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ24b〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
〔ステップ25b〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ26b〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
〔ステップ27b〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ28b〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
〔ステップ29b〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
〔ステップ30b〕スマートコントラクト(GW3)は、ブロック検証を行う。
〔ステップ31b〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ32b〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
上記のような加工サービス登録フェーズにおいて、データ利用者は、提供データ登録フェーズでアクセス可能になったテストデータを用いて、加工サービスを作成する。加工サービスは、例えば、データを処理するプログラムやAPI(Application Programming Interface)等を指す。
また、作成した加工サービスを提供データで実際に使う申請をするために、データ利用者が、自ゲートウェイで「サービスID」「利用者の署名」「属性」「加工サービスにアクセスするためのURL」「加工サービスのハッシュ値」「加工サービスの公開先」を含む加工サービスの登録トランザクションを発行する。
このとき、「加工サービスの公開先」に、利用したいデータIDを指定することで、メタ情報がBC台帳で共有された際に、データ提供者にデータ利用要求としての通知(データ利用要求通知)が転送される仕組みになっている。
各GWでは、データ利用者の署名が正しいことを検証し、問題なければBC台帳に加工サービスが書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、サービスIDと紐づけたメタ情報が共有され、プロキシ設定が動的に生成される。
図18はメタ情報テーブルの一例を示す図であり、図19はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT1bは、加工サービス登録フェーズ後のメタ情報を示している(上述の図14のテーブルに対して、新たに加工サービスに関する第2のメタデータが登録されている)。プロキシ設定テーブルT2b、T3b、T4bは、加工サービス登録フェーズ後のプロキシ設定情報を示している。
加工サービス登録フェーズでは、テストデータは全公開、提供データは誰からもアクセス不可の状態の状態は変わらず、データ提供者のみが加工サービスにPOSTのリクエストができる状態となっている。
<メタ情報更新フェーズ>
図20、図21はメタ情報更新フェーズの一例を示すシーケンス図である。
〔ステップ1c〕データ提供者(userA)は、登録者ホスト端末に対してメタデータの更新を行う。
〔ステップ2c〕登録者ホスト端末は、プロキシ(GW1)に対してメタデータの更新を行う。
〔ステップ3c〕プロキシ(GW1)は、スマートコントラクト(GW1)に対してメタデータの更新を行う。
〔ステップ4c〕スマートコントラクト(GW1)は、トランザクションの作成および署名付与を行う。
〔ステップ5c〕スマートコントラクト(GW1)は、ブロック生成サーバ4にトランザクションを発行する。
〔ステップ6c〕ブロック生成サーバ4は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ7c〕スマートコントラクト(GW1)は、プロキシ(GW1)に登録完了を通知する。
〔ステップ8c〕プロキシ(GW1)は、登録者ホスト端末に登録完了を通知する。
〔ステップ9c〕登録者ホスト端末は、データ提供者(userA)に登録完了を通知する。
〔ステップ10c〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11c〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
〔ステップ12c〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13c〕スマートコントラクト(GW1)は、ブロック検証を行う。
〔ステップ14c〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ15c〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ16c〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ17c〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
〔ステップ18c〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ19c〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
〔ステップ20c〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ21c〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
〔ステップ22c〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ23c〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
〔ステップ24c〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ25c〕スマートコントラクト(GW2)は、プロキシ(GW2)にメタデータ更新通知を行う。
〔ステップ26c〕プロキシ(GW2)は、利用者ホスト端末にメタデータ更新通知を行う。
〔ステップ27c〕利用者ホスト端末は、データ利用者(userB)にデータ利用要求通知を送信する。
〔ステップ28c〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
〔ステップ29c〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
〔ステップ30c〕スマートコントラクト(GW3)は、ブロック検証を行う。
〔ステップ31c〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ32c〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
上記のようなメタ情報更新フェーズにおいて、加工サービス登録フェーズでデータ利用要求の通知を受け、データ提供者は登録された加工サービスの内容を検証する。検証の方法は、登録されている加工サービスのメタ情報を参照することや、実際に加工サービスにデータを入力して、結果をみることで動作を確認する等がある。
加工サービスの動作を確認する場合、データ提供者は、サービスIDをURLで指定することで、加工サービスの加工内容を確認できる。このとき、許可されるリクエストはPOSTのmethodのみなので、データ提供者は加工サービスの中身を閲覧する(GETする)ことはなく、あくまでデータのinputとoutputの関係を確認することで、内部で不正な処理がされていないことを検証する。そのため、データ利用者が持つデータ加工のノウハウが他者に漏れることはない。
ここで、加工サービスの検証方法の安全性について説明する。本フェーズの加工サービス検証方法は、いわゆるブラックボックステストと言われるもので、加工サービスの内部がどのようなロジックで構成されているか確認することができない点において、提供データが漏洩する危険性をはらんでいる。
例えば、加工サービス内で、一次データを加工せずに保持し、後からデータ利用者に閲覧されてしまうことが懸念される。しかし、本発明では、一次データの加工を安全な第三者のデータ加工環境で行うことで、加工サービスの所有者であるデータ利用者であっても、提供データを処理する加工サービス自体にアクセスすることはできず、加工した結果だけを受け取る仕組みにより安全性を保っている。そのため、本フェーズで、データ提供者はinputとoutputの情報だけを検証すればよく、内部処理について危惧することはない。
加工サービスの内容に問題ないと判断した場合は、提供データの利用を承認するために、データ提供者が、自ゲートウェイに登録済みの提供データのメタ情報の「提供データの公開先」の項目を更新するメタ情報更新トランザクションを発行する。
このトランザクションに含まれる情報は、提供データ登録フェーズと同様に「データID」「提供者の署名」「属性」「提供データにアクセスするためのURL」「テストデータにアクセスするためのURL」「提供データのハッシュ値」「提供データの公開先」であり、「提供データの公開先」を加工サービスのサービスIDを指定する。
このとき、「提供データの公開先」に、データの公開を許可するサービスIDを指定することで、メタ情報がBC台帳で共有された際に、サービスIDの所有者(このフェーズの場合はデータ利用者)にメタ情報更新の通知が転送される仕組みになっている。
各GWでは、署名が正しいことを検証し、問題なければ台帳に書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、データIDと紐づけたメタ情報が共有され、プロキシ設定が動的に生成される。
図22はメタ情報テーブルの一例を示す図であり、図23はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT1cは、メタ情報更新フェーズ後のメタ情報を示し、プロキシ設定テーブルT2c、T3c、T4cは、メタ情報更新フェーズ後のプロキシ設定情報を示している。
メタ情報更新フェーズでは、GW1からのみ提供データにGETし、提供者テナントへPOSTできる状態になっている。また、同じくGW2からのみ加工サービスにGETし、利用者テナントにPOSTできる状態になっている。
<メタ情報マッチングフェーズ>
図24から図26はメタ情報マッチングフェーズの一例を示すシーケンス図である。
〔ステップ1d〕データ利用者(userB)は、利用者ホスト端末にメタデータ更新確認を行う。
〔ステップ2d〕利用者ホスト端末は、プロキシ(GW2)にメタデータ更新確認を行う。
〔ステップ3d〕プロキシ(GW2)は、スマートコントラクト(GW2)にメタデータ更新確認を行う。
〔ステップ4d〕スマートコントラクト(GW2)は、トランザクションの作成および署名付与を行う。
〔ステップ5d〕スマートコントラクト(GW2)は、ブロック生成サーバ4にトランザクションを発行する。
〔ステップ6d〕ブロック生成サーバ4は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ7d〕スマートコントラクト(GW2)は、プロキシ(GW2)に登録完了を通知する。
〔ステップ8d〕プロキシ(GW2)は、利用者ホスト端末に登録完了を通知する。
〔ステップ9d〕利用者ホスト端末は、データ利用者(userB)に登録完了を通知する。
〔ステップ10d〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11d〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
〔ステップ12d〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13d〕スマートコントラクト(GW1)は、ブロック検証を行う。
〔ステップ14d〕スマートコントラクト(GW1)は、BC台帳(GW1)からメタデータ取得を行う。
〔ステップ15d〕BC台帳(GW1)は、スマートコントラクト(GW1)にメタデータを送信する。
〔ステップ16d〕スマートコントラクト(GW1)は、メタデータマッチングを行う。
〔ステップ17d〕スマートコントラクト(GW1)は、プロキシ(GW1)に提供データGETを送信する。
〔ステップ18d〕プロキシ(GW1)は、データストア[/product]に提供データGETを送信する。
〔ステップ19d〕データストア[/product]は、プロキシ(GW1)に提供データを送信する。
〔ステップ20d〕プロキシ(GW1)は、スマートコントラクト(GW1)に提供データを送信する。
〔ステップ21d〕スマートコントラクト(GW1)は、プロキシ(GW1)に提供データPOSTを送信する。
〔ステップ22d〕プロキシ(GW1)は、データ加工環境[safe-env-X]に提供データPOSTを送信する。
〔ステップ23d〕データ加工環境[safe-env-X]は、プロキシ(GW1)に登録完了を通知する。
〔ステップ24d〕プロキシ(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ25d〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ26d〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ27d〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ28d〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
〔ステップ29d〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ30d〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
〔ステップ31d〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ32d〕スマートコントラクト(GW2)は、BC台帳(GW2)からメタデータ取得を行う。
〔ステップ33d〕BC台帳(GW2)は、スマートコントラクト(GW2)にメタデータを送信する。
〔ステップ34d〕スマートコントラクト(GW2)は、メタデータマッチングを行う。
〔ステップ35d〕スマートコントラクト(GW2)は、プロキシ(GW2)に加工サービスGETを送信する。
〔ステップ36d〕プロキシ(GW2)は、サービスストア[/service]に加工サービスGETを送信する。
〔ステップ37d〕サービスストア[/service]は、プロキシ(GW2)に加工サービスを送信する。
〔ステップ38d〕プロキシ(GW2)は、スマートコントラクト(GW2)に加工サービスを送信する。
〔ステップ39d〕スマートコントラクト(GW2)は、プロキシ(GW2)に加工サービスPOSTを送信する。
〔ステップ40d〕プロキシ(GW2)は、データ加工環境[safe-env-X]に加工サービスPOSTを送信する。
〔ステップ41d〕データ加工環境[safe-env-X]は、プロキシ(GW2)に登録完了を通知する。
〔ステップ42d〕プロキシ(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ43d〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
〔ステップ44d〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ45d〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
〔ステップ46d〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ47d〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
〔ステップ48d〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
〔ステップ49d〕スマートコントラクト(GW3)は、ブロック検証を行う。
〔ステップ50d〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ51d〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
上記のメタ情報マッチングフェーズにおいて、メタ情報更新フェーズでメタ情報更新の通知を受け、データ利用者はデータ提供者からデータの利用が承認されたことを確認する。
そして、実際にデータ利用を開始するために、データ利用者が、自ゲートウェイで「利用するデータID」「利用するサービスID」「利用者の署名」を含むメタ情報更新確認トランザクションを発行する。
各GWでは、署名が正しいこととメタ情報のマッチングが取れていることを検証する。メタ情報のマッチングとは、例えば、対象Aのデータにおいて、「提供データの公開先」に対象Bの加工サービスのIDがあり、対象Bの「加工サービスの公開先」に対象Aの提供データのIDがあるかの対応付けをとることである。
これらの検証に問題なければ、提供データおよび加工サービスをデータ加工環境への転送と、データアクセスするためのルーティングテーブルを動的に生成する。
また、データ加工環境へ提供データを転送する際には、データ加工サーバ50は、メタ情報に登録されているハッシュ値と実際に転送されてきたデータをハッシュ計算した値の比較を行い、同じ値であることを検証してからデータ加工環境内のストレージに登録する。
これにより、本来登録したデータと異なるデータが登録されることを防ぐことができる。なお、加工サービスを転送する時も同様にハッシュ値の検証が行われる。
図27はメタ情報マッチングフェーズにおけるデータ加工環境内の動作シーケンス示す図である。なお、図24のステップ22と図27のステップ101d、図24のステップ23と図27のステップ107d、図25のステップ40dと図27のステップ108d、図25のステップ41dと図27のステップ114dはそれぞれ同じ処理を表す。
〔ステップ101d〕プロキシ(GW1)は、データ加工サーバ50に提供データ登録を行う。
〔ステップ102d〕データ加工サーバ50は、BC台帳から台帳情報取得を行う。
〔ステップ103d〕BC台帳は、台帳情報をデータ加工サーバ50に送信する。
〔ステップ104d〕データ加工サーバ50は、提供データのハッシュ値検証を行う。
〔ステップ105d〕データ加工サーバ50は、ストレージ[/userA]に提供データ登録を行う。
〔ステップ106d〕ストレージ[/userA]は、データ加工サーバ50に登録完了を通知する。
〔ステップ107d〕データ加工サーバ50は、プロキシ(GW1)に登録完了を通知する。
〔ステップ108d〕プロキシ(GW2)は、データ加工サーバ50に加工サービス登録を行う。
〔ステップ109d〕データ加工サーバ50は、BC台帳から台帳情報取得を行う。
〔ステップ110d〕BC台帳は、台帳情報をデータ加工サーバ50に送信する。
〔ステップ111d〕データ加工サーバ50は、加工サービスのハッシュ値検証を行う。
〔ステップ112d〕データ加工サーバ50は、ストレージ[/userB]に加工サービス登録を行う。
〔ステップ113d〕ストレージ[/userB]は、データ加工サーバ50に登録完了を通知する。
〔ステップ114d〕データ加工サーバ50は、プロキシ(GW2)に登録完了を通知する。
図28はメタ情報テーブルの一例を示す図であり、図29はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT1dは、メタ情報マッチングフェーズ後のメタ情報を示し、プロキシ設定テーブルT2d、T3d、T4dは、メタ情報マッチングフェーズ後のプロキシ設定情報を示している。
このフェーズでは、処理結果のデータを受け取るためのURLとして「/processDataId1」が発行され、利用者のみがアクセスできる状態になっている。また、メタ情報更新フェーズで設定した提供データおよび加工サービスをGETおよびPOSTできる設定は、安全のため削除している。
なお、基本的にこの設定があっても所有者以外がデータやサービスにアクセスすることはできないので残しておいてもよいが、利用しない設定はセキュリティホールとなるため削除しておき、再度利用する際に設定し直すことが望ましい。
図30はメタ情報マッチングフェーズ後のデータ加工環境の構成の一例を示す図である。データ加工環境内の参加者テナントの図示は以降省略する。データ加工環境[safe-env-X]では、提供データ[/dataId1]が提供者テナント51のストレージ[/userA]に配置され、加工サービス[/serviceId1]が利用者テナント52のストレージ[/userB]に配置された状態になる。
<加工データ取得フェーズ>
図31から図33は加工データ取得フェーズの一例を示すシーケンス図である。
〔ステップ1e〕データ利用者(userB)は、利用者ホスト端末に加工データ取得を行う。
〔ステップ2e〕利用者ホスト端末は、プロキシ(GW2)に加工データ取得を行う。
〔ステップ3e〕プロキシ(GW2)は、スマートコントラクト(GW2)に加工データ取得を行う。
〔ステップ4e〕スマートコントラクト(GW2)は、BC台帳(GW2)から台帳情報取得を行う。
〔ステップ5e〕BC台帳(GW2)は、台帳情報をスマートコントラクト(GW2)に送信する。
〔ステップ6e〕スマートコントラクト(GW2)は、アクセス権検証およびアドレス変換を行う。
〔ステップ7e〕スマートコントラクト(GW2)は、プロキシ(GW2)から加工データ取得を行う。
〔ステップ8e〕プロキシ(GW2)は、データ加工環境[safe-env-X]から加工データ取得を行う。
〔ステップ9e〕データ加工環境[safe-env-X]は、プロキシ(GW2)に加工データを送信する。
〔ステップ10e〕プロキシ(GW2)は、スマートコントラクト(GW2)に加工データを送信する。
〔ステップ10e1〕スマートコントラクト(GW2)は、プロキシ(GW2)に加工データを送信する。
〔ステップ11e〕プロキシ(GW2)は、利用者ホスト端末に加工データを送信する。
〔ステップ12e〕利用者ホスト端末は、データ利用者(userB)に加工データを送信する(加工データの確認)。
〔ステップ13e〕スマートコントラクト(GW2)は、トランザクションの作成および署名付与を行う。
〔ステップ14e〕スマートコントラクト(GW2)は、ブロック生成サーバ4にトランザクションを発行する。
〔ステップ15e〕ブロック生成サーバ4は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ16e〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ17e〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
〔ステップ18e〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ19e〕スマートコントラクト(GW1)は、ブロック検証を行う。
〔ステップ20e〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ21e〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ22e〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ23e〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
〔ステップ24e〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ25e〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
〔ステップ26e〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を行う。
〔ステップ27e〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
〔ステップ28e〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
〔ステップ29e〕スマートコントラクト(GW3)は、ブロック検証を行う。
〔ステップ30e〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ31e〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を行う。
図34は加工データ取得フェーズにおけるデータ加工環境内の動作シーケンスを示す図である。図32のステップ8eと図34のステップ101e、図32のステップ9eと図34のステップ109eはそれぞれ同じ処理を表す。
〔ステップ101e〕プロキシ(GW2)は、データ加工サーバ50に加工データ取得を行う。
〔ステップ102e〕データ加工サーバ50は、データ加工環境[safe-env-X]内のBC台帳[safe-env-X](BC台帳5a)から台帳情報取得を行う。
〔ステップ103e〕BC台帳[safe-env-X]は、台帳情報をデータ加工サーバ50に送信する。
〔ステップ104e〕データ加工サーバ50は、アクセス権検証および加工処理パース(プログラムの構造解析やデータ構造の変換処理等)を行う。
〔ステップ105e〕データ加工サーバ50は、ストレージ[/userA]に提供データ取得を行う。
〔ステップ106e〕ストレージ[/userA]は、データ加工サーバ50に提供データを送信する。
〔ステップ107e〕データ加工サーバ50は、ストレージ[/userB]に加工サービス実行の結果を送信する。
〔ステップ108e〕ストレージ[/userB]は、データ加工サーバ50に加工サービスを送信する。
〔ステップ109e〕データ加工サーバ50は、プロキシ(GW2)に加工データを送信する。
〔ステップ110e〕データ加工サーバ50は、ストレージ[/userA]に提供データ削除を行う。
〔ステップ111e〕ストレージ[/userA]は、データ加工サーバ50に削除完了を通知する。
〔ステップ112e〕データ加工サーバ50は、ストレージ[/userB]に加工サービス削除を行う。
〔ステップ113e〕ストレージ[/userB]は、データ加工サーバ50に削除完了を通知する。
上記のような加工データ取得フェーズにおいて、データ利用者が、「/processDataId1」に対してリクエストを送ると、GWに設定されたルーティングテーブルにもとづいて、まずデータ加工環境にリクエストが転送される。その後、BC台帳に記述された内容の通りにデータ加工サーバ50が提供データを取得し、加工サービスで加工した結果のみをレスポンスとして、データ利用者に返す。
加工データがデータ利用者に転送されたら、加工に使用した提供データおよび加工サービスは削除される。この削除処理はデータ加工サーバ50が自動的に実施してもよいし、PF管理者の権限にもとづいて実施してもよい。
ここで、データ加工環境上のリソース削除確認について説明する。データ加工環境[safe-env-X]は、HTTP/HTTPSの特定のリクエストだけしか受け付けないことでデータとサービスの安全性を確保している。そのため、一般的なテナントと異なり、所有者が自由に閲覧し、編集も可能にすることができない。そのような特殊な環境でリソースが削除されたことを確認するために、リソースに対するアドレスを活用している。
データ加工サーバ50では、データを格納した場合、データの格納アドレス(第1の情報)を一時的に発行し、また、加工サービスを格納した場合は、加工サービスの格納したアドレス(第2の情報)を一時的に発行する。また、データ加工サーバ50は、データを削除した場合、データの格納アドレスも削除し、加工サービスを削除した場合は、加工サービスの格納したアドレスも削除する。
GWは、これらアドレスを検出することで、データや加工サービスにアクセスすることなく、データ加工環境においてデータまたは加工サービスの存在有無を検証することができる。
また、加工データが正しくデータ利用者の手元に届いたことを証跡として残すために、加工データの取得が完了したタイミングで「加工データ取得結果」「利用者の署名」を含むトランザクションを発行し、各GWでBC台帳に記録する。
このような手続きにより、データ利用者は一次データを、データ提供者は加工サービスをそれぞれ閲覧することなく、データ提供者とデータ利用者間で同意した処理を実行し、データを流通することができる。
[第3の実施の形態]
次に第3の実施の形態について説明する。第3の実施の形態は、データ加工環境にデータと加工サービスを格納する場合である。第3の実施の形態では、メタ情報の登録と同時に、データ加工サーバ50にデータおよび加工サービスを転送し、データ加工サーバ50上でそれらを管理するものである。
<提供データ登録フェーズ>
図35から図38は提供データ登録フェーズの一例を示すシーケンス図である。
〔ステップ1a1〕データ提供者(userA)は、登録者ホスト端末に提供データ登録を行う。
〔ステップ2a1〕登録者ホスト端末は、プロキシ(GW1)に提供データ登録を行う。
〔ステップ3a1〕プロキシ(GW1)は、スマートコントラクト(GW1)に提供データ登録を行う。
〔ステップ4a1〕スマートコントラクト(GW1)は、トランザクション作成および署名付与を行う。
〔ステップ5a1〕スマートコントラクト(GW1)は、ブロック生成サーバ4にトランザクションを発行する。
〔ステップ6a1〕ブロック生成サーバ4は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ7a1〕スマートコントラクト(GW1)は、プロキシ(GW1)に登録完了を通知する。
〔ステップ8a1〕プロキシ(GW1)は、登録者ホスト端末に登録完了を通知する。
〔ステップ9a1〕登録者ホスト端末は、データ提供者(userA)に登録完了を通知する。
〔ステップ10a1〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11a1〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
〔ステップ12a1〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13a1〕スマートコントラクト(GW1)は、ブロック検証を行う。
〔ステップ14a1〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ15a1〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
〔ステップ16a1〕スマートコントラクト(GW1)は、プロキシ(GW1)にテストデータGETを送信する。
〔ステップ17a1〕プロキシ(GW1)は、データストア[/test]にテストデータGETを送信する。
〔ステップ18a1〕データストア[/test]は、プロキシ(GW1)にテストデータを送信する。
〔ステップ19a1〕プロキシ(GW1)は、スマートコントラクト(GW1)にテストデータを送信する。
〔ステップ20a1〕スマートコントラクト(GW1)は、プロキシ(GW1)にテストデータPOSTを送信する。
〔ステップ21a1〕プロキシ(GW1)は、データ加工環境[safe-env-X]にテストデータPOSTを送信する。
〔ステップ22a1〕データ加工環境[safe-env-X]は、プロキシ(GW1)に登録完了を通知する。
〔ステップ23a1〕プロキシ(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ24a1〕スマートコントラクト(GW1)は、プロキシ(GW1)に提供データGETを送信する。
〔ステップ25a1〕プロキシ(GW1)は、データストア[/product]に提供データGETを送信する。
〔ステップ26a1〕データストア[/product]は、プロキシ(GW1)に提供データを送信する。
〔ステップ27a1〕プロキシ(GW1)は、スマートコントラクト(GW1)に提供データを送信する。
〔ステップ28a1〕スマートコントラクト(GW1)は、プロキシ(GW1)に提供データPOSTを送信する。
〔ステップ29a1〕プロキシ(GW1)は、データ加工環境[safe-env-X]に提供データPOSTを送信する。
〔ステップ30a1〕データ加工環境[safe-env-X]は、プロキシ(GW1)に登録完了を通知する。
〔ステップ31a1〕プロキシ(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ32a1〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ33a1〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ34a1〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ35a1〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
〔ステップ36a1〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ37a1〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
〔ステップ38a1〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ39a1〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
〔ステップ40a1〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ41a1〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
〔ステップ42a1〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ43a1〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
〔ステップ44a1〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
〔ステップ45a1〕スマートコントラクト(GW3)は、ブロック検証を行う。
〔ステップ46a1〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ47a1〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
〔ステップ48a1〕スマートコントラクト(GW3)は、プロキシ(GW3)にプロキシ設定を行う。
〔ステップ49a1〕プロキシ(GW3)は、スマートコントラクト(GW3)に設定完了を通知する。
図39は提供データ登録フェーズにおけるデータ加工環境内の動作シーケンスを示す図である。図36のステップ21a1と図39のステップ101a、図36のステップ22a1と図39のステップ104a、図36のステップ29a1と図39のステップ105a、図36のステップ30a1と図39のステップ111aはそれぞれ同じ処理を表す。
〔ステップ101a〕プロキシ(GW1)は、データ加工サーバ50にテストデータ登録を行う。
〔ステップ102a〕データ加工サーバ50は、ストレージ[/userA]にテストデータ登録を行う。
〔ステップ103a〕ストレージ[/userA]は、データ加工サーバ50に登録完了を通知する。
〔ステップ104a〕データ加工サーバ50は、プロキシ(GW1)に登録完了を通知する。
〔ステップ105a〕プロキシ(GW1)は、データ加工サーバ50に提供データ登録を行う。
〔ステップ106a〕データ加工サーバ50は、BC台帳から台帳情報取得を行う。
〔ステップ107a〕BC台帳は、データ加工サーバ50に台帳情報を送信する。
〔ステップ108a〕データ加工サーバ50は、提供データのハッシュ値検証を行う。
〔ステップ109a〕データ加工サーバ50は、ストレージ[/userA]に提供データ登録を行う。
〔ステップ110a〕ストレージ[/userA]は、データ加工サーバ50に登録完了を通知する。
〔ステップ111a〕データ加工サーバ50は、プロキシ(GW1)に登録完了を通知する。
上記のような提供データ登録フェーズにおいて、データ提供者が、自ゲートウェイ(GW1)に「データID」「提供者の署名」「属性」「提供データにアクセスするためのURL」「テストデータにアクセスするためのURL」「提供データのハッシュ値」「提供データの公開先」を含む提供データ登録トランザクションを発行する。
各GWでは、データ提供者の署名が正しいことを検証し、問題なければ提供データとテストデータをデータ加工環境へ転送し、BC台帳にメタ情報が書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、データIDと紐づけたメタ情報が共有され、外部からデータアクセスを許可するためのプロキシ設定が動的に生成される。
図40はメタ情報テーブルの一例を示す図である。メタ情報テーブルT1a1は、提供データ登録フェーズ後のメタ情報を示している。図41、図42はプロキシ設定テーブルの一例を示す図である。
図41のプロキシ設定テーブルT2a1、T3a1、T4a1は、提供データ登録フェーズにおいて、データ登録前のプロキシ設定情報を示しており(図36のステップ14a1で設定された後のプロキシ設定テーブル)、図42のプロキシ設定テーブルT2a11、T3a11、T4a11は、提供データ登録フェーズ後のプロキシ設定情報を示している。
図43は提供データ登録フェーズ後のデータ加工環境内の構成の一例を示す図である。データ加工環境[safe-env-X]では、提供データ[/dataId1]およびテストデータ[/dataId1/test]が、提供者テナント51のストレージ[/userA]に配置された状態になる。
上記の提供データ登録フェーズにより、テストデータは全ユーザへ公開、提供データは誰からもアクセス不可の状態になっている。
<加工サービス登録フェーズ>
図44から図46は加工サービス登録フェーズの一例を示すシーケンス図である。
〔ステップ1b1〕データ利用者(userB)は、利用者ホスト端末に加工サービス登録を行う。
〔ステップ2b1〕利用者ホスト端末は、プロキシ(GW2)に加工サービス登録を行う。
〔ステップ3b1〕プロキシ(GW2)は、スマートコントラクト(GW2)に加工サービス登録を行う。
〔ステップ4b1〕スマートコントラクト(GW2)は、トランザクション作成および署名付与を行う。
〔ステップ5b1〕スマートコントラクト(GW2)は、ブロック生成サーバ4にトランザクションを発行する。
〔ステップ6b1〕ブロック生成サーバ4は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ7b1〕スマートコントラクト(GW2)は、プロキシ(GW2)に登録完了を通知する。
〔ステップ8b1〕プロキシ(GW2)は、利用者ホスト端末に登録完了を通知する。
〔ステップ9b1〕利用者ホスト端末は、データ利用者(userB)に登録完了を通知する。
〔ステップ10b1〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11b1〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
〔ステップ12b1〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13b1〕スマートコントラクト(GW1)は、ブロック検証を行う。
〔ステップ14b1〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ15b1〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ16b1〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ17b1〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
〔ステップ18b1〕スマートコントラクト(GW1)は、プロキシ(GW1)にデータ利用要求通知を送信する。
〔ステップ19b1〕プロキシ(GW1)は、登録者ホスト端末にデータ利用要求通知を送信する。
〔ステップ20b1〕登録者ホスト端末は、データ提供者(userA)にデータ利用要求通知を送信する。
〔ステップ21b1〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ22b1〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
〔ステップ23b1〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ24b1〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
〔ステップ25b1〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ26b1〕スマートコントラクト(GW2)は、プロキシ(GW2)に加工サービスGETを送信する。
〔ステップ27b1〕プロキシ(GW2)は、サービスストア[/service]に加工サービスGETを送信する。
〔ステップ28b1〕サービスストア[/service]は、プロキシ(GW2)に加工サービスを送信する。
〔ステップ29b1〕プロキシ(GW2)は、スマートコントラクト(GW2)に加工サービスを送信する。
〔ステップ30b1〕スマートコントラクト(GW2)は、プロキシ(GW2)に加工サービスPOSTを送信する。
〔ステップ31b1〕プロキシ(GW2)は、データ加工環境[safe-env-X]に加工サービスPOSTを送信する。
〔ステップ32b1〕データ加工環境[safe-env-X]は、プロキシ(GW2)に登録完了を通知する。
〔ステップ33b1〕プロキシ(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ34b1〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
〔ステップ35b1〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ36b1〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
〔ステップ37b1〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ38b1〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
〔ステップ39b1〕プロキシ(GW3)は、スマートコントラクト(GW3)にブロックを配布する。
〔ステップ40b1〕スマートコントラクト(GW3)は、ブロック検証を行う。
〔ステップ41b1〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ42b1〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
図47は加工サービス登録フェーズにおけるデータ加工環境内の動作シーケンスを示す図である。図45のステップ31b1と図47のステップ101b、図45のステップ32b1と図47のステップ107bはそれぞれ同じ処理を表す。
〔ステップ101b〕プロキシ(GW2)は、データ加工サーバ50に加工サービス登録を行う。
〔ステップ102b〕データ加工サーバ50は、BC台帳[safe-env-X]から台帳情報取得を行う。
〔ステップ103b〕BC台帳[safe-env-X]は、データ加工サーバ50に台帳情報を送信する。
〔ステップ104b〕データ加工サーバ50は、加工サービスのハッシュ値検証を行う。
〔ステップ105b〕データ加工サーバ50は、ストレージ[/userB]に加工サービス登録を行う。
〔ステップ106b〕ストレージ[/userB]は、データ加工サーバ50に登録完了を通知する。
〔ステップ107b〕データ加工サーバ50は、プロキシ(GW2)に登録完了を通知する。
上記のような加工サービス登録フェーズにおいて、データ利用者は、提供データ登録フェーズでアクセス可能になったテストデータを用いて加工サービスを作成する。作成した加工サービスを提供データで実際に使う申請をするために、データ利用者は、自ゲートウェイで「サービスID」「利用者の署名」「属性」「加工サービスにアクセスするためのURL」「加工サービスのハッシュ値」「加工サービスの公開先」を含む加工サービス登録トランザクションを発行する。
各GWでは、データ利用者の署名が正しいことを検証し、問題なければBC台帳に書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、サービスIDと紐づけたメタ情報が共有され、プロキシ設定が動的に生成される。
図48はメタ情報テーブルの一例を示す図である。メタ情報テーブルT1b1は、加工サービス登録フェーズ後のメタ情報を示している。図49、図50はプロキシ設定テーブルの一例を示す図である。図49のプロキシ設定テーブルT2b1、T3b1、T4b1は、加工サービス登録フェーズにおいて、データ登録前のプロキシ設定情報を示しており(図45のステップ24b1で設定された後のプロキシ設定テーブル)、図50のプロキシ設定テーブルT2b11、T3b11、T4b11は、加工サービス登録フェーズ後のプロキシ設定情報を示している。
図51は加工サービス登録フェーズ後のデータ加工環境内の構成の一例を示す図である。データ加工環境[safe-env-X]では、提供データ[/dataId1]およびテストデータ[/dataId1/test]が、提供者テナント51のストレージ[/userA]に配置された状態になる。また、加工サービス[serviceId1]が利用者テナント52のストレージ[/userB]に配置された状態になる。
上記の加工サービス登録フェーズでは、テストデータは全公開、提供データは誰からもアクセス不可の状態は変わらず、データ提供者のみが加工サービスにPOSTのリクエストができる状態となっている。
<メタ情報更新フェーズ>
図52、図53はメタ情報更新フェーズの一例を示すシーケンス図である。
〔ステップ1c1〕データ提供者(userA)は、登録者ホスト端末にメタデータ更新を行う。
〔ステップ2c1〕登録者ホスト端末は、プロキシ(GW1)に提供データ登録を行う。
〔ステップ3c1〕プロキシ(GW1)は、スマートコントラクト(GW1)にメタデータ更新を行う。
〔ステップ4c1〕スマートコントラクト(GW1)は、トランザクション作成および署名付与を行う。
〔ステップ5c1〕スマートコントラクト(GW1)は、ブロック生成サーバ4にトランザクションを発行する。
〔ステップ6c1〕ブロック生成サーバ4は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ7c1〕スマートコントラクト(GW1)は、プロキシ(GW1)に登録完了を通知する。
〔ステップ8c1〕プロキシ(GW1)は、登録者ホスト端末に登録完了を通知する。
〔ステップ9c1〕登録者ホスト端末は、データ提供者(userA)に登録完了を通知する。
〔ステップ10c1〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11c1〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
〔ステップ12c1〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13c1〕スマートコントラクト(GW1)は、ブロック検証を行う。
〔ステップ14c1〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ15c1〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ16c1〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ17c1〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
〔ステップ18c1〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ19c1〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
〔ステップ20c1〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ21c1〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
〔ステップ22c1〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ23c1〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
〔ステップ24c1〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ25c1〕スマートコントラクト(GW2)は、プロキシ(GW2)にメタデータ更新通知を行う。
〔ステップ26c1〕プロキシ(GW2)は、利用者ホスト端末にメタデータ更新通知を行う。
〔ステップ27c1〕利用者ホスト端末は、データ利用者(userB)にデータ利用要求通知を送信する。
〔ステップ28c1〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
〔ステップ29c1〕プロキシ(GW3)は、スマートコントラクト(GW3)にブッロクを配布する。
〔ステップ30c1〕スマートコントラクト(GW3)は、ブロック検証を行う。
〔ステップ31c1〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ32c1〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
上記のようなメタ情報更新フェーズにおいて、加工サービス登録フェーズでデータ利用要求の通知を受け、データ提供者は登録された加工サービスの内容を検証する。加工サービスの内容に問題ないと判断した場合は、提供データの利用を承認するために、データ提供者が、自ゲートウェイに登録済みの提供データのメタ情報の「提供データの公開先」の項目を更新するメタ情報更新トランザクションを発行する。
このトランザクションに含まれる情報は提供データ登録フェーズと同様に「データID」「提供者の署名」「属性」「提供データにアクセスするためのURL」「テストデータにアクセスするためのURL」「提供データのハッシュ値」「提供データの公開先」であり、「提供データの公開先」を加工サービスのサービスIDを指定する。
各GWでは、署名が正しいことを検証し、問題なければBC台帳に書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、データIDと紐づけたメタ情報が共有され、プロキシ設定が動的に生成される。
図54はメタ情報テーブルの一例を示す図であり、図55はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT1c1は、メタ情報更新フェーズ後のメタ情報を示し、プロキシ設定テーブルT2c1、T3c1、T4c1は、メタ情報更新フェーズ後のプロキシ設定情報を示している。このフェーズでは、検証の終わった加工サービスへのアクセスの設定が削除されるだけである。
<メタ情報マッチングフェーズ>
図56から図58はメタ情報マッチングフェーズの一例を示すシーケンス図である。
〔ステップ1d1〕データ利用者(userB)は、利用者ホスト端末にメタデータ更新確認を行う。
〔ステップ2d1〕利用者ホスト端末は、プロキシ(GW2)にメタデータ更新確認を行う。
〔ステップ3d1〕プロキシ(GW2)は、スマートコントラクト(GW2)にメタデータ更新確認を行う。
〔ステップ4d1〕スマートコントラクト(GW2)は、トランザクション作成および署名付与を行う。
〔ステップ5d1〕スマートコントラクト(GW2)は、ブロック生成サーバ4にトランザクションを発行する。
〔ステップ6d1〕ブロック生成サーバ4は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ7d1〕スマートコントラクト(GW2)は、プロキシ(GW2)に登録完了を通知する。
〔ステップ8d1〕プロキシ(GW2)は、利用者ホスト端末に登録完了を通知する。
〔ステップ9d1〕利用者ホスト端末は、データ利用者(userB)に登録完了を通知する。
〔ステップ10d1〕ブロック生成サーバ4は、ブロックを生成する。
〔ステップ11d1〕ブロック生成サーバ4は、プロキシ(GW1)にブロックを配布する。
〔ステップ12d1〕プロキシ(GW1)は、スマートコントラクト(GW1)にブロックを配布する。
〔ステップ13d1〕スマートコントラクト(GW1)は、ブロック検証を行う。
〔ステップ14d1〕スマートコントラクト(GW1)は、BC台帳(GW1)からメタデータ取得を行う。
〔ステップ15d1〕BC台帳(GW1)は、スマートコントラクト(GW1)にメタデータを送信する。
〔ステップ16d1〕スマートコントラクト(GW1)は、メタデータマッチングを行う。
〔ステップ17d1〕スマートコントラクト(GW1)は、BC台帳(GW1)に台帳記入を行う。
〔ステップ18d1〕BC台帳(GW1)は、スマートコントラクト(GW1)に登録完了を通知する。
〔ステップ19d1〕スマートコントラクト(GW1)は、プロキシ(GW1)にプロキシ設定を行う。
〔ステップ20d1〕プロキシ(GW1)は、スマートコントラクト(GW1)に設定完了を通知する。
〔ステップ21d1〕ブロック生成サーバ4は、プロキシ(GW2)にブロックを配布する。
〔ステップ22d1〕プロキシ(GW2)は、スマートコントラクト(GW2)にブロックを配布する。
〔ステップ23d1〕スマートコントラクト(GW2)は、ブロック検証を行う。
〔ステップ24d1〕スマートコントラクト(GW2)は、BC台帳(GW2)からメタデータ取得を行う。
〔ステップ25d1〕BC台帳(GW2)は、スマートコントラクト(GW2)にメタデータを送信する。
〔ステップ26d1〕スマートコントラクト(GW2)は、メタデータマッチングを行う。
〔ステップ27d1〕スマートコントラクト(GW2)は、BC台帳(GW2)に台帳記入を行う。
〔ステップ28d1〕BC台帳(GW2)は、スマートコントラクト(GW2)に登録完了を通知する。
〔ステップ29d1〕スマートコントラクト(GW2)は、プロキシ(GW2)にプロキシ設定を行う。
〔ステップ30d1〕プロキシ(GW2)は、スマートコントラクト(GW2)に設定完了を通知する。
〔ステップ31d1〕ブロック生成サーバ4は、プロキシ(GW3)にブロックを配布する。
〔ステップ32d1〕プロキシ(GW3)は、スマートコントラクト(GW3)にブッロクを配布する。
〔ステップ33d1〕スマートコントラクト(GW3)は、ブロック検証を行う。
〔ステップ34d1〕スマートコントラクト(GW3)は、BC台帳(GW3)に台帳記入を行う。
〔ステップ35d1〕BC台帳(GW3)は、スマートコントラクト(GW3)に登録完了を通知する。
上記のようなメタ情報マッチングフェーズにおいて、メタ情報更新フェーズでメタ情報更新の通知を受け、データ利用者はデータ提供者からデータの利用が承認されたことを確認する。
そして、実際にデータ利用を開始するために、データ利用者が、自ゲートウェイで「利用するデータID」「利用するサービスID」「利用者の署名」を含むメタ情報更新確認トランザクションを発行する。
各GWでは、署名が正しいこととメタ情報のマッチングが取れていることを検証する。これらの検証に問題なければ、データアクセスするためのルーティングテーブルが動的に生成される。
図59はメタ情報テーブルの一例を示す図であり、図60はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT1d1は、メタ情報マッチングフェーズ後のメタ情報を示し、プロキシ設定テーブルT2d1、T3d1、T4d1は、メタ情報マッチングフェーズ後のプロキシ設定情報を示している。このフェーズでは、処理結果のデータを受け取るためのURLとして「/processDataId1」が発行され、データ利用者のみがアクセスできる状態になっている。
<加工データ取得フェーズ>
第3の実施の形態の加工データ取得フェーズのシーケンスは、上述の図31から図33に示したシーケンスと同じであり、第3の実施の形態のデータ加工環境内の動作シーケンスは、上述の図34に示したシーケンスと同じである。
データ利用者が、「/processDataId1」に対してリクエストを送ると、GWに設定されたルーティングテーブルにもとづいてリクエストが転送され、データ加工サーバ50が提供データを取得し、加工サービスで加工した結果のみをレスポンスとして、データ利用者に返す。
また、加工データが正しく利用者の手元に届いたことを証跡として残すために、加工データの取得が完了したタイミングで「加工データ取得結果」「利用者の署名」を含むトランザクションを発行し、各GWでBC台帳に記録する。第3の実施の形態では、データおよび加工サービスの削除は行わず、BC台帳の記録ですべての処理を完了する。
[第4の実施の形態]
次に第4の実施の形態について説明する。第4の実施の形態は、複数のデータ加工環境のうちから実行するデータ加工環境を指定する。第4の実施の形態では、複数のデータ加工環境の中から、データおよび加工サービスの信頼する加工環境を選択し、その環境下でのみ加工処理を実行するものである。
図61は第4の実施の形態の通信システムの一例を示す図である。第4の実施の形態の通信システム1a−1では、データ加工環境5−1(データ加工環境[safe-env-X])、データ加工環境5−2(データ加工環境[safe-env-Y])、データ加工環境5−3(データ加工環境[safe-env-Z])が通信ネットワークN1に接続されている。その他の構成は図3と同様なので説明は省略する。
これらの複数のデータ加工環境は、それぞれ別のPF管理者がおり、設置される場所や環境内のセキュリティレベル、利用しているストレージの種類、利用料金等が異なっている。データ提供者とデータ利用者は、複数あるデータ加工環境の中から利用するデータ加工環境を選択することができる。
<事前準備>
PF管理者が安全なデータ加工環境として、上述の図7に示すデータ加工環境を用意する。また、各GWには、データ加工環境[safe-env-X]、データ加工環境[safe-env-Y]およびデータ加工環境[safe-env-Z]の情報を登録しておき、ネットワークが疎通可能な状態にする。
図62はメタ情報テーブルの一例を示す図である。メタ情報テーブルT10は、初期状態のテーブル情報である。プロキシ設定テーブルは、上述の図11のテーブルと同じである。このフェーズでは、各GWの所有者が発行するトランザクションのリクエストとブロック生成サーバ4より配布されるブロックの情報をスマートコントラクトに転送する設定が入っている。その他のリクエストは破棄されるため、各GWからはどのデータやサービスへもアクセスできない状態となっている。
<提供データ登録フェーズ>
提供データ登録フェーズのシーケンスは、上述の図12および図13に示すシーケンスと同じである。データ提供者が、自ゲートウェイ(GW1)に「データID」「提供者の署名」「属性」「提供データにアクセスするためのURL」「テストデータにアクセスするためのURL」「提供データのハッシュ値」「提供データの公開先」「利用する加工環境」を含む提供データ登録トランザクションを発行する。
各GWでは、データ提供者の署名が正しいことを検証し、問題なければBC台帳に書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、データIDと紐づけたメタ情報が共有され、外部からデータアクセスを許可するためのプロキシ設定が動的に生成される。
図63はメタ情報テーブルの一例を示す図である。メタ情報テーブルT10aは、提供データ登録フェーズ後のテーブル情報である。プロキシ設定テーブルは、上述の図15のテーブルと同じである。このフェーズでは、テストデータは全ユーザへ公開、提供データは誰からもアクセス不可の状態となっている。
<加工サービス登録フェーズ>
加工サービス登録フェーズのシーケンスは、上述の図16および図17に示すシーケンスと同じである。データ利用者は、提供データ登録フェーズでアクセス可能になったテストデータを用いて加工サービスを作成する。
作成した加工サービスを提供データで実際に使う申請をするために、データ利用者が、自ゲートウェイで「サービスID」「利用者の署名」「属性」「加工サービスにアクセスするためのURL」「加工サービスのハッシュ値」「加工サービスの公開先」「利用する加工環境」を含む加工サービス登録トランザクションを発行する。各GWでは、データ利用者の署名が正しいことを検証し、問題なければ台帳に書き込まれる。
BC台帳への書き込みが完了すると、BC台帳上で、サービスIDと紐づけたメタ情報が共有され、プロキシ設定が動的に生成される。
図64はメタ情報テーブルの一例を示す図である。メタ情報テーブルT10bは、加工サービス登録フェーズ後のテーブル情報である。プロキシ設定テーブルは、上述の図19のテーブルと同じである。
このフェーズでは、テストデータは全公開、提供データは誰からもアクセス不可の状態は変わらず、データ提供者のみが加工サービスにPOSTのリクエストができる状態になっている。
<メタ情報更新フェーズ>
メタ情報更新フェーズのシーケンスは、上述の図20および図21に示すシーケンスと同じである。加工サービス登録フェーズでデータ利用要求の通知を受け、データ提供者は登録された加工サービスの内容を検証する。
加工サービスの内容に問題ないと判断した場合は、提供データの利用を承認するために、データ提供者が、自ゲートウェイに登録済みの提供データのメタ情報の「提供データの公開先」の項目を更新するメタ情報更新トランザクションを発行する。
このトランザクションに含まれる情報は提供データ登録フェーズと同様に「データID」「提供者の署名」「属性」「提供データにアクセスするためのURL」「テストデータにアクセスするためのURL」「提供データのハッシュ値」「提供データの公開先」「利用する加工環境」であり、「提供データの公開先」を加工サービスのサービスIDを指定する。
各GWでは、署名が正しいことを検証し、問題なければ台帳に書き込まれる。BC台帳への書き込みが完了すると、BC台帳上で、データIDと紐づけたメタ情報が共有され、プロキシ設定が動的に生成される。
図65はメタ情報テーブルの一例を示す図であり、図66はプロキシ設定テーブルの一例を示す図である。メタ情報テーブルT10cは、メタ情報更新フェーズ後のメタ情報を示し、プロキシ設定テーブルT20c、T30c、T40cは、フェーズ後のプロキシ設定情報を示している。
このフェーズでは、GW1からのみ提供データにGETし、提供者テナントへPOSTできる状態になっている。また、同じくGW2からのみ加工サービスにGETし、利用者テナントにPOSTできる状態になっている(本フェーズでは、POST可能なデータ加工環境への設定をすべて登録しておき、実際にどのデータ加工環境へ送信するかは次のメタ情報マッチングフェーズで判断される)。
<メタ情報マッチングフェーズ>
メタ情報マッチングフェーズのシーケンスは、上述の図24から図26に示すシーケンスと同じであり、データ加工環境内の動作シーケンスは、上述の図27のシーケンスと同じである。
メタ情報更新フェーズでメタ情報更新の通知を受け、データ利用者はデータ提供者からデータの利用が承認されたことを確認する。そして、実際にデータ利用を開始するために、データ利用者が、自ゲートウェイで「利用するデータID」「利用するサービスID」「利用者の署名」を含むメタ情報更新確認トランザクションを発行する。
各GWでは、署名が正しいこととメタ情報のマッチングが取れていることを検証する。第4の実施の形態のメタ情報マッチングフェーズでは、データ加工環境のマッチングも行う。データ加工環境のマッチングとは、対象Aのデータにおける「データ加工環境」と対象Bの加工サービスにおける「データ加工環境」の項目で一致する項目を発見することである(項目の一致するデータ加工環境が複数ある場合のデータ加工環境の決定方法については後述する)。
例えば、“safe-env-X”の値がdataId1とserviceId1間で一致しているため、この値のデータ加工環境へリソースを転送すると判定される。検証に問題がなければ、提供データおよび加工サービスをデータ加工環境への転送と、データアクセスするためのルーティングテーブルが動的に生成される。
データ加工環境へ提供データを転送する場合は、メタ情報に登録されているハッシュ値と実際に転送されてきたデータをハッシュ計算した値の比較を行い、同じ値であることを検証してからストレージに登録する。加工サービスを転送する時も同様にハッシュ値の検証が行われる。
図67はメタ情報テーブルの一例を示す図である。メタ情報テーブルT10dは、メタ情報マッチングフェーズ後のテーブル情報を示す。プロキシ設定テーブルは、上述の図29のテーブルと同じである。
このフェーズでは、処理結果のデータを受け取るためのURLとして「/processDataId1」が発行され、データ利用者のみがアクセスできる状態になっている。また、メタ情報更新フェーズで設定した提供データおよび加工サービスをGETおよびPOSTできる設定は、安全のため削除している。
なお、メタ情報マッチングフェーズ後のデータ加工環境内の構成は、上述の図30に示す構成と同じである。提供データおよび加工サービスがそれぞれ所有者のテナントに配置された状態になる。
<加工データ取得フェーズ>
加工データ取得フェーズのシーケンスは、上述の図31から図33に示すシーケンスと同じであり、データ加工環境内の動作シーケンスは、上述の図34のシーケンスと同じである。
データ利用者が、「/processDataId1」に対してリクエストを送ると、GWに設定されたルーティングテーブルにもとづいて、まずデータ加工環境にリクエストが転送される。その後、BC台帳に記述された内容の通りにデータ加工サーバ50が提供データを取得し、加工サービスで加工した結果のみをレスポンスとして、データ利用者に返し、加工に使用した提供データおよび加工サービスは削除する。
また、加工データが正しくデータ利用者の手元に届いたことを証跡として残すために、加工データの取得が完了したタイミングで「加工データ取得結果」「利用者の署名」を含むトランザクションを発行し、各GWでBC台帳に記録し、すべての処理を完了する。
ここで、上記のメタ情報マッチングフェーズにおける、項目の一致するデータ加工環境が複数ある場合のデータ加工環境の決定方法について説明する。項目の一致するデータ加工環境が複数あり、データ加工環境のマッチングにおいて、利用するデータ加工環境が一意に決まらない場合は、あらかじめ設定されたアルゴリズムにもとづいて決定する。例えば、アルファベット順や、データ加工環境に設定されるIDの値が小さい順等があり、全GWで同一のルールにもとづいて決定するように事前に設定を行う。
図68はメタ情報テーブルの一例を示す図である。メタ情報テーブルT100は図65に示したメタ情報テーブルT10cに対して、serviceId1のデータ加工環境にsafe-env-Yが追加されているものである。
この状況でデータ加工環境のマッチングを行うと、dataId1とserviceId1で共通するデータ加工環境がsafe-env-X, safe-env-Yの2箇所になってしまう。提供データと加工データは同じデータ加工環境に転送するため、各GWで共通のアルゴリズムを用いて、データ加工環境を一意に決定する。データ加工環境を決めるアルゴリズムの例を下記に示す。
例1:アルファベット順で決定する場合
データ加工環境はIDやURLのような文字列で管理されている。そのため、「データ加工環境の文字列をアルファベット順にした場合に、昇順(または降順)で1番目にヒットするデータ加工環境に決定する」といったアルゴリズムを各GWで共有する。これにより、GW間で通信をせずとも全GWで同じデータ加工環境を決定することができる。
例えば、アルファベット順で決定するアルゴリズムを用いた場合、図68のメタ情報テーブルT100では、選択できる環境はsafe-env-X、safe-env-Yの2つなので、昇順で1番目にヒットするsafe-env-XをすべてのGWで選択し、提供データおよび加工サービスを転送する。データ加工環境マッチング後のメタ情報テーブルT101は図69のようになる。
例2:乱数プログラムを用いて決定する場合
例1のような決め方だと、決定されるデータ加工環境に偏りが生まれる可能性がある。そこで、選択されるデータ加工環境を平滑化するような方法として、乱数プログラムを用いる。
乱数プログラムは疑似乱数と呼ばれ、C言語のrand関数のように、一見、ランダムな値を返すように見えるが、法則性がある(完璧な乱数ではない)。また、同じ乱数プログラムと乱数生成の引数となるseed値を用いると、乱数プログラムは常に同じ順番に乱数を生成する。
例えば、seed値を10で設定して、ある乱数プログラムを使うと、「25 46 71 43 93 65 23・・・」と値を出力する。このプログラムを一旦リセットして、あらためて、seed値10でプログラムを動かすと1回目と同じように「25 46 71 43 93 65 23・・・」の出力を得られる。
ここでは、この特性を利用し、全GWで同じ乱数プログラムと乱数生成の引数となるseed値を共有することで、選択自体はランダムでありながら、全GWで同じデータ加工環境を選択するようにする。
図68のメタ情報テーブルT100では、選択できる環境はsafe-env-X、safe-env-Yの2つなのである。この例では、あらかじめ乱数プログラムrand()およびseed値10を全GWで共有している。この乱数プログラムはseed値10のとき、「25 46 71 43 93 65 23・・・」といった順に乱数を発生させるので、得られた乱数を選択できる環境数(今回は2)で剰余をとり、アルファベットの昇順で剰余の値+1番目の環境で決定するというアルゴリズムを共通で使うとする。
乱数プログラムを使った計算は、rand(10)mod2+1=25mod2+1=2となり、すべてのGWで2の値を得るので、アルファベットの昇順で2番目のsafe-env-YをすべてのGWで選択し、提供データおよび加工サービスを転送する。データ加工環境マッチング後のメタ情報テーブルT102は図70のようになる。
以上説明したように、本発明によれば、スマートコントラクトの仕組みとメタ情報を活用し、同意したデータ処理が正しく実行されることを、他のBC参加者を含めて検証する。本発明では、利用者は一次データを閲覧することがなく、利用者が見ることができるのは処理結果のみとなる。処理結果に関しては、データ提供者が承諾済みの二次データであり、権利や責任はデータ利用者のものである。
そのため、データ利用者に渡ったデータが仮に漏洩した場合でも、その影響はデータ提供者に波及しないので、データを出す側にとって安心してデータを提供することができる。また、データと同様に加工サービスの内容をデータ提供者に公開しないため、データ利用者側も安心してデータを加工し、利用することができる。
したがって、一次データおよび加工サービスを利用者と提供者間で見せあうことなく、データ提供者・データ利用者の両者が合意した処理結果のみが流通するプラットフォームが実現できる。その結果、一次データと加工サービスはそれぞれ流通されないので不正な二次利用を防止し、データ提供者・データ利用者共に安心してデータをやり取りできる。
上記で説明した本発明の処理機能は、コンピュータによって実現することができる。この場合、処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶部、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶部には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等がある。光ディスクには、CD−ROM/RW等がある。光磁気記録媒体には、MO(Magneto Optical disk)等がある。
プログラムを流通させる場合、例えば、そのプログラムが記録されたCD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶部に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶部に格納する。そして、コンピュータは、自己の記憶部からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLD等の電子回路で実現することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
10、10−1、10−2、10−3 通信装置
11、11a、11b、11c 制御部
12、12a、12b、12c 記憶部
DL1、DL2、DL3 分散台帳
20 データ加工環境
N0 ネットワーク

Claims (9)

  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の通信装置から前記データおよび前記加工サービスへのアクセスを不可とするデータ加工環境上で前記加工サービスにもとづくデータ加工を実行する、
    通信装置。
JP2019204858A 2019-11-12 2019-11-12 通信プログラム、通信方法および通信装置 Active JP7273312B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019204858A JP7273312B2 (ja) 2019-11-12 2019-11-12 通信プログラム、通信方法および通信装置
US17/074,685 US11693824B2 (en) 2019-11-12 2020-10-20 Computer-readable recording medium recording communication program, communication method, and communication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019204858A JP7273312B2 (ja) 2019-11-12 2019-11-12 通信プログラム、通信方法および通信装置

Publications (2)

Publication Number Publication Date
JP2021077223A true JP2021077223A (ja) 2021-05-20
JP7273312B2 JP7273312B2 (ja) 2023-05-15

Family

ID=75846782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019204858A Active JP7273312B2 (ja) 2019-11-12 2019-11-12 通信プログラム、通信方法および通信装置

Country Status (2)

Country Link
US (1) US11693824B2 (ja)
JP (1) JP7273312B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023243158A1 (ja) * 2022-06-15 2023-12-21 株式会社日立製作所 データ流通仲介システムおよびデータ流通仲介方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022035494A (ja) * 2020-08-21 2022-03-04 富士通株式会社 通信プログラム、通信方法、及び通信装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190080422A1 (en) * 2017-09-12 2019-03-14 Hitachi, Ltd. Revenue allocation system and revenue allocation method
WO2019138668A1 (ja) * 2018-01-15 2019-07-18 三菱日立パワーシステムズ株式会社 遠隔サービスシステム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454406B2 (en) * 2005-04-29 2008-11-18 Adaptec, Inc. System and method of handling file metadata
US8086585B1 (en) * 2008-09-30 2011-12-27 Emc Corporation Access control to block storage devices for a shared disk based file system
JP2018124924A (ja) 2017-02-03 2018-08-09 Kddi株式会社 取引管理装置、取引管理方法及び取引管理プログラム
JP6931999B2 (ja) 2017-02-06 2021-09-08 株式会社日立製作所 信用度管理システムおよび信用度管理方法
JP6570768B2 (ja) 2017-06-28 2019-09-04 特定非営利活動法人サイバー・キャンパス・コンソーシアムTies コンテンツ流通プログラムならびにそれを用いるコンテンツの管理システムおよびコンテンツの提供方法
US11764950B2 (en) * 2019-05-22 2023-09-19 Salesforce, Inc. System or method to implement right to be forgotten on metadata driven blockchain using shared secrets and consensus on read

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190080422A1 (en) * 2017-09-12 2019-03-14 Hitachi, Ltd. Revenue allocation system and revenue allocation method
JP2019049930A (ja) * 2017-09-12 2019-03-28 株式会社日立製作所 収益配分システム、収益配分方法、および、収益配分プログラム
WO2019138668A1 (ja) * 2018-01-15 2019-07-18 三菱日立パワーシステムズ株式会社 遠隔サービスシステム
US20210080935A1 (en) * 2018-01-15 2021-03-18 Mitsubishi Hitachi Power Systems, Ltd. Remote service system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023243158A1 (ja) * 2022-06-15 2023-12-21 株式会社日立製作所 データ流通仲介システムおよびデータ流通仲介方法

Also Published As

Publication number Publication date
US20210141765A1 (en) 2021-05-13
US11693824B2 (en) 2023-07-04
JP7273312B2 (ja) 2023-05-15

Similar Documents

Publication Publication Date Title
JP7361165B2 (ja) 分散型台帳を用いて公共のソフトウェアコンポーネント・エコシステムを管理するためのシステムおよび方法
JP4826270B2 (ja) 電子チケット発行管理システム、発行側システム、プログラム
Halpert Auditing cloud computing: a security and privacy guide
CN111052120A (zh) 使用分布式账本的数字资产可追溯性和保证
JP7273312B2 (ja) 通信プログラム、通信方法および通信装置
Alamri et al. Blockchain-based identity management systems in health IoT: A systematic review
Menges et al. DEALER: decentralized incentives for threat intelligence reporting and exchange
JP2023027775A (ja) プライバシーを維持した監査可能アカウントのためのコンピュータ実装方法、コンピュータシステム及びコンピュータプログラム(プライバシーを維持した監査可能アカウント)
US20160210592A1 (en) Systems and Methods for Crowdsourcing Technology Projects
KR102202121B1 (ko) 피투피 클라우드 컴퓨팅 시스템 및 그 시스템에서 소스코드를 실행환경과 연결하고 실행하는 방법
Worley et al. Opportunities, challenges, and future extensions for smart-contract design patterns
Ferraris et al. A model-driven approach to ensure trust in the IoT
JP2020064460A (ja) クラウドデザイン管理方法、クラウドデザインデータベース及びクラウドデザイン管理プログラム
JP2024501401A (ja) 非集中型のブロードキャスト暗号化および鍵生成ファシリティ
Altamimi et al. DADS: Decentralized (mobile) applications deployment system using blockchain: Secured decentralized applications store
JP2023538497A (ja) 編集可能なブロックチェーン
Varun et al. Decentralized authorization in web services using public blockchain
Rose GDPR challenges for blockchain technology
JP2022153237A (ja) セキュリティテストシステム
JP7303653B2 (ja) 管理方法、管理装置、及び、プログラム
Paduraru et al. Enhancing the security of gaming transactions using blockchain technology
JP2004030617A (ja) インターネットを利用したトランザクションサービスシステムおよびその方法
Smith Information technology for librarians and information professionals
JP7402445B1 (ja) 処理装置、処理プログラム及び処理方法
JPWO2019065831A1 (ja) 取引管理方法、利用権管理方法、通信端末、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230315

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230410

R150 Certificate of patent or registration of utility model

Ref document number: 7273312

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150