(57)【要約】【課題】複数の組織で取り扱われるデータの加工内容を検証する仕組みを効率よく実現してデータの信頼性を向上する。【解決手段】情報処理システムは、複数の組織の夫々に設けられ、トランザクションの内容を互いに検証し、トランザクションの履歴を夫々が有する分散台帳に保持する複数の分散台帳ノードと、分散台帳ノードにトランザクションを送信するクライアントノードと、複数の組織の夫々に設けられ、検証対象処理を仮想化基盤において実行する処理ノードと、を含む。クライアントノードは、検証を行う複数の分散台帳ノードを選択し、選択した分散台帳ノードの夫々に、検証対象処理の実行要求を含むトランザクションを送信し、分散台帳ノードの夫々は、夫々が属する組織の処理ノードにおいて、検証対象処理を仮想化基盤で実行して検証対象処理の検証を行い、検証の結果を分散台帳に記録する。【選択図】図１
2020197873.tif 000002
【特許請求の範囲】
【請求項１】
複数の組織の夫々に設けられ、トランザクションの内容を互いに検証し、前記トランザクションの履歴を夫々が有する分散台帳に保持する複数の分散台帳ノードと、
前記分散台帳ノードにトランザクションを送信するクライアントノードと、
前記複数の組織の夫々に設けられ、検証の対象となる処理である検証対象処理を仮想化基盤において実行する処理ノードと、
を含み、
前記クライアントノードは、前記検証を行う複数の前記分散台帳ノードを選択し、選択した前記分散台帳ノードの夫々に、前記検証対象処理の実行要求を含むトランザクションを送信し、
前記分散台帳ノードの夫々は、前記トランザクションを受信すると、夫々が属する前記組織の前記処理ノードにおいて、前記検証対象処理を前記仮想化基盤で実行して前記検証対象処理の検証を行い、前記検証の結果を前記分散台帳に記録する、
情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記検証対象処理は、複数の前記組織の間でデータフローに従って行われるデータの加工処理である、
情報処理システム。
【請求項３】
請求項２に記載の情報処理システムであって、
前記加工処理に用いるデータを提供するデータ格納ノードを更に含み、
前記分散台帳ノードは、前記データ格納ノードから提供される前記データを前記検証対象処理に入力する、
情報処理システム。
【請求項４】
請求項３に記載の情報処理システムであって、
前記データ格納ノードは、提供する前記データについて前記組織ごとにアクセス制限を行い、
前記クライアントノードは、前記検証対象処理の実行要求を含むトランザクションの送信先として、前記検証対象処理に入力する前記データにアクセス可能な前記組織の前記分散台帳ノードを選択する、
情報処理システム。
【請求項５】
請求項３に記載の情報処理システムであって、
前記クライアントノードは、前記検証対象処理の実行要求を含むトランザクションの送信先として、前記検証対象処理のデプロイを行う第１の前記分散台帳ノードを選択するとともに、前記データ格納ノードから提供される前記データの前記検証対象処理への入力を行う第２の前記分散台帳ノードを選択する、
情報処理システム。
【請求項６】
請求項２に記載の情報処理システムであって、
前記クライアントノードは、前記検証対象処理の実行要求を含むトランザクションの送信先として、前記データフローにおいて前記検証対象処理の加工後のデータを利用している他の前記組織の分散台帳ノードを選択する、
情報処理システム。
【請求項７】
請求項５に記載の情報処理システムであって、
前記データ格納ノードは、提供する前記データについて前記組織ごとにアクセス制限を
行い、
前記クライアントノードは、前記第２の前記分散台帳ノードとして、前記検証対象処理に入力する前記データにアクセス可能な前記組織の前記分散台帳ノードを選択する、
情報処理システム。
【請求項８】
請求項１に記載の情報処理システムであって、
前記クライアントノードは、前記検証対象処理の実行要求を含むトランザクションの送信先として選択した送信先の数を、検証の質を表す評価指標である検証実施レベルとして前記トランザクションに設定し、
前記分散台帳ノードは、前記検証により前記検証対象処理が正しいと判定した場合、前記検証実施レベルを分散台帳に記録する、
情報処理システム。
【請求項９】
請求項１に記載の情報処理システムであって、
前記分散台帳は、前記組織の夫々が保有しているポイント値の記録を含み、
前記分散台帳ノードは、自身が属する前記組織の前記処理ノードに前記検証対象処理がデプロイされた際、前記分散台帳における当該組織の前記ポイント値を増加させる、
情報処理システム。
【請求項１０】
請求項９に記載の情報処理システムであって、
前記クライアントノードは、
前記組織ごとの検証実行のために必要なポイント値を記憶し、
前記検証対象処理の実行要求を含むトランザクションの送信先として、前記必要なポイント値が少ない前記組織の前記分散台帳ノードを優先して選択する、
情報処理システム。
【請求項１１】
請求項１に記載の情報処理システムであって、
前記処理ノードは、前記仮想化基盤における前記検証対象処理の再現手順が記録されたイメージに基づきデプロイされた前記検証対象処理を実行する、
情報処理システム。
【請求項１２】
複数の組織の夫々に設けられ、トランザクションの内容を互いに検証し、前記トランザクションの履歴を夫々が有する分散台帳に保持する複数の分散台帳ノードと、
前記分散台帳ノードにトランザクションを送信するクライアントノードと、
前記複数の組織の夫々に設けられ、検証の対象となる処理である検証対象処理を仮想化基盤において実行する処理ノードと、
を含んで構成される情報処理システムの制御方法であって、
前記クライアントノードが、前記検証を行う複数の前記分散台帳ノードを選択し、選択した前記分散台帳ノードの夫々に、前記検証対象処理の実行要求を含むトランザクションを送信するステップと、
前記分散台帳ノードの夫々が、前記トランザクションを受信すると、夫々が属する前記組織の前記処理ノードにおいて、前記検証対象処理を前記仮想化基盤で実行して前記検証対象処理の検証を行い、前記検証の結果を前記分散台帳に記録するステップと、
を含む、情報処理システムの制御方法。
【請求項１３】
請求項１２に記載の情報処理システムの制御方法であって、
前記検証対象処理は、複数の前記組織の間でデータフローに従って行われるデータの加工処理であり、
前記処理ノードが、前記仮想化基盤における前記検証対象処理の再現手順が記録されたイメージに基づきデプロイされた前記検証対象処理を実行するステップを更に含む、
情報処理システムの制御方法。
【請求項１４】
請求項１３に記載の情報処理システムの制御方法であって、
前記情報処理システムは、前記加工処理に用いるデータを提供するデータ格納ノードを更に含み、
前記分散台帳ノードが、前記データ格納ノードから提供される前記データを前記検証対象処理に入力するステップを更に含む、
情報処理システムの制御方法。
【請求項１５】
請求項１４に記載の情報処理システムの制御方法であって、
前記データ格納ノードが、提供する前記データについて前記組織ごとにアクセス制限を行うステップと、
前記クライアントノードが、前記検証対象処理の実行要求を含むトランザクションの送信先として、前記検証対象処理に入力する前記データにアクセス可能な前記組織の前記分散台帳ノードを選択するステップと、
を更に含む、情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、及び情報処理システムの制御方法に関する。
【背景技術】
【０００２】
近年、センサ等から収集されるＩｏＴデータの活用が加速している。とくに産業分野においては、工場の設備やセンサ等から収集したＩｏＴデータについての組織や企業を跨いだ利活用が進んでいる。
【０００３】
一般に工場の設備やセンサ等から収集したＩｏＴデータは、設備やセンサ等から収集した生のデータがそのまま利用されることは少なく、利用目的に応じて加工した上で用いられる。またある組織で加工されたデータを他の組織で利用する場合、他の組織において更なる加工が行われる。
【０００４】
昨今、製造現場におけるデータの改ざんが発生しており、データ自体が改ざんされていないことを保証することが課題となっている。こうした課題に関し、特許文献１には、電子ファイルの変更処理（加工）イベントをブロックチェーンに格納して共有することによりリアルタイムに処理ステータスを共有し、変更履歴の信頼性を確保することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２０１７／０２９５２３２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、特許文献１の技術では、データを加工する組織がブロックチェーンに加工履歴の登録を行うため、ブロックチェーンに登録する前に加工履歴を改ざんすることは可能であり、加工履歴の信頼性を必ずしも保証することはできない。
【０００７】
また例えば、コンソーシアム型ブロックチェーンの考え方に基づき、加工履歴をコンソーシアム内の組織で互いに検証しあうようにした場合、検証のために消費するコンピューティングリソースが多いことが課題となる。単純にコンソーシアム内で互いに検証する構成とした場合、全ての組織で同じ加工処理を実施して処理結果を検証することとなり、膨大なＩｏＴデータを処理するために多大なコンピューティングリソースが必要になる。またブロックチェーンのスマートコントラクトで実行できる処理は限られている上、既存の様々な加工ツールで行っている加工処理をスマートコントラクトとして改めて実装し直すことは必ずしも現実的でない。
【０００８】
本発明はこのような背景に基づきなされたものであり、複数の組織で取り扱われるデータの加工内容を検証する仕組みを効率よく実現してデータの信頼性を向上することが可能な、情報処理システム、及び情報処理システムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するための本発明の一つは、情報処理システムであって、複数の組織の夫々に設けられ、トランザクションの内容を互いに検証し、前記トランザクションの履歴を夫々が有する分散台帳に保持する複数の分散台帳ノードと、前記分散台帳ノードにトランザクションを送信するクライアントノードと、前記複数の組織の夫々に設けられ、検
証の対象となる処理である検証対象処理を仮想化基盤において実行する処理ノードと、を含み、前記クライアントノードは、前記検証を行う複数の前記分散台帳ノードを選択し、選択した前記分散台帳ノードの夫々に、前記検証対象処理の実行要求を含むトランザクションを送信し、前記分散台帳ノードの夫々は、前記トランザクションを受信すると、夫々が属する前記組織の前記処理ノードにおいて、前記検証対象処理を前記仮想化基盤で実行して前記検証対象処理の検証を行い、前記検証の結果を前記分散台帳に記録する。
【００１０】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
【発明の効果】
【００１１】
本発明によれば、複数の組織で取り扱われるデータの加工内容を検証する仕組みを効率よく実現してデータの信頼性を向上することができる。
【図面の簡単な説明】
【００１２】
【図１】データ加工履歴管理システムの仕組みを説明する図である。
【図２】データ加工履歴管理システムの概略的な構成を説明するブロック図である。
【図３】データ加工履歴管理システムを構成する情報処理装置の一例を示すブロック図である。
【図４】データフロー管理ノードが備える機能を説明するブロック図である。
【図５】管理ノードが備える機能を説明するブロック図である。
【図６】処理ノードの構成を説明するブロック図である。
【図７】データ格納ノードの構成を説明するブロック図である。
【図８】クライアントノードの構成を説明するブロック図である。
【図９】分散台帳ノードの構成を説明するブロック図である。
【図１０】コンテナレジストリの構成を説明するブロック図である。
【図１１】データフロー情報の一例である。
【図１２】デプロイログの一例である。
【図１３】コンテナ情報の一例である。
【図１４】コンテナログの一例である。
【図１５】データセットの一例である。
【図１６】データセットアクセス権の一例である。
【図１７】検証先決定用処理ノード情報の一例である。
【図１８】検証先決定用パラメータ情報の一例である。
【図１９】組織情報の一例である。
【図２０】サブデータセット検証結果の一例である。
【図２１】組織保持ポイント情報の一例である。
【図２２】コンテナログの一例である。
【図２３Ａ】ブロックチェーンの一例である。
【図２３Ｂ】ブロックチェーンの一例（図２３Ａの続き）である。
【図２４】スマートコントラクト情報の一例である。
【図２５】出力データの一例である。
【図２６】コンテナイメージの一例である。
【図２７】ユーザがデータフローを追加する際にデータ加工履歴管理システムにおいて行われる処理を説明するシーケンス図である。
【図２８】データフローに従ってある組織でデータの加工処理が行われた際にデータ加工履歴管理システムにおいて行われる加工内容の検証処理に関する準備処理を説明するシーケンス図である。
【図２９】検証先ノード選択処理の詳細を説明するフローチャートである。
【図３０】ある組織でデータの加工処理が行われた際にデータ加工履歴管理システムにおいて行われる、上記のある組織におけるデータの加工内容の検証処理を説明するシーケンス図である。
【発明を実施するための形態】
【００１３】
以下、実施形態について図面を参照しつつ説明する。以下の説明において、同一のまたは類似する構成に同一の符号を付して重複した説明を省略することがある。また以下の説明において、同種の構成を区別する必要がある場合、構成を総称する符号の後に括弧書きで識別子（数字、アルファベット等）を表記することがある。また以下の説明において、「ブロックチェーン」のことを「ＢＣ」と略記することがある。
【００１４】
図１は、実施形態として示す情報処理システムであるデータ加工履歴管理システム１の仕組みを説明する図である。データ加工履歴管理システム１は、複数の組織の間でデータフローに従ってデータの提供や加工が行われる場合に、各組織において用いられる上記データの検証をコンソーシアム型のブロックチェーンの仕組みを用いて行い、上記データフローで用いられるデータに対して行われる不正や改ざんを防ぐ。
【００１５】
同図には、上記データを利用する３つの組織（以下、「組織Ａ」、「組織Ｂ」、「組織Ｃ」とする。）においてデータフローに従ってデータの提供や加工が行われる場合を例示している。同図において、点線で区切った各段のうち上段にはデータフローを、中段にはデータフローを実行する仮想化基盤であるコンテナ基盤を、下段にはデータの加工履歴を管理するブロックチェーンの構成を、夫々示している。
【００１６】
上段に示すように、例示するデータフローでは、組織Ａにおいてデータ源５０から取得されたデータＤ１が組織Ｂに提供され、組織ＢにおいてデータＤ１について第１加工処理が行われてデータＤ２が生成され、生成されたデータＤ２が組織Ｃに提供され、組織ＣにおいてデータＤ２について第２加工処理が行われてデータＤ３が生成される。
【００１７】
中段に示すように、第１加工処理は組織Ｂのコンテナ基盤にデプロイされたコンテナ（以下、「第１加工コンテナ」と称する）で実行され、第２加工処理は組織Ｃのコンテナ基盤にデプロイされたコンテナ（以下、「第２加工コンテナ」と称する。）で実行される（Ｓ５１）。
【００１８】
ここで組織Ｂにおいて実行される第１加工処理に着目すると、第１加工コンテナは、データＤ１を加工した際、当該第１加工コンテナのデプロイログと当該第１加工コンテナを実行することにより生成されるコンテナログを組織ＢのクライアントノードＢに送信する（Ｓ５２）。
【００１９】
組織Ｂのクライアントノードは、第１加工コンテナからデプロイログとコンテナログを受信すると、他の組織である組織Ａ及び組織Ｃの夫々の分散台帳ノードに第１加工処理の検証依頼を送信する（Ｓ５３）。
【００２０】
組織Ａ及び組織Ｃの夫々の分散台帳ノードは、上記検証依頼を受信すると、夫々のスマートコントラクトにより夫々が属する組織のコンテナ基盤に検証用の第１加工コンテナをデプロイし（Ｓ５４）、デプロイした第１加工コンテナの夫々にデータＤ１を入力し、夫々の第１加工コンテナがデータＤ１について行った処理（再現処理）の結果に基づき、データＤ１の加工内容を検証する（Ｓ５５）。
【００２１】
上記検証に成功すると、組織Ａ及び組織Ｃの夫々の分散台帳ノードは、夫々の分散台帳のサブデータセット検証結果に検証結果を書き込む（Ｓ５６）。
【００２２】
図２は、データ加工履歴管理システム１の概略的な構成を説明するブロック図である。同図に示すように、データ加工履歴管理システム１は、ユーザ端末３０、データフロー管理ノード４０、データ源５０、コンテナレジストリ６０、及び複数の組織の夫々に存在するノード群（管理ノード１１、処理ノード１２、データ格納ノード１３、クライアントノード２１、分散台帳ノード２２）を含む。これらはいずれも情報処理装置（コンピュータ）を用いて構成され、またこれらは通信ネットワーク５を介して通信可能に接続されている。尚、通信ネットワーク５は、複数のネットワークで構成されていてもよい。例えば、コンテナ基盤１０とデータ源５０を接続する通信ネットワークとクライアントノード２１と分散台帳ノード２２を接続する通信ネットワークは別であってもよい。
【００２３】
コンテナ基盤１０は、管理ノード１１、処理ノード１２、及びデータ格納ノード１３を実現する。コンテナ基盤１０は、例えば、Ｄｏｃｋｅｒ（登録商標）やＫｕｂｅｒｎｅｔｅｓ（登録商標）等により構成される。尚、コンテナ基盤はノードの実現基盤（処理の実行環境）の一例に過ぎず、例えば、コンテナ基盤１０に代えて仮想マシン（Virtual Machine）等を実行する基盤をノードの実現基盤として用いてもよい。尚、その場合、コンテ
ナレジストリ６０は、仮想マシンのイメージのレジストリとなる。
【００２４】
尚、コンテナ基盤１０をＫｕｂｅｒｎｅｔｅｓ（登録商標）により構成した場合には、加工処理の内容をコンテナイメージとして固定することができる。またコンテナイメージのハッシュ値をブロックチェーンの分散台帳に管理した場合、加工内容が改ざんされているか否かの検証が可能になる。またＫｕｂｅｒｎｅｔｅｓ（登録商標）はポータビリティ性に優れるため、例えば、検証用のコンテナ（以下、「検証用コンテナ」と称する。）を各組織のコンテナ基盤１０にデプロイする際、加工処理の実行環境を各組織に容易に構築することができる。
【００２５】
ユーザ端末３０は、ユーザがデータフローを管理するためのユーザインタフェースを提供する。ユーザ端末３０は、ユーザからデータフローに関する要求を受け付け、その要求をデータフロー管理ノード４０に送信する。データフロー管理ノード４０は、ユーザ端末３０から要求されたデータフローの管理（新規作成、変更（編集）、削除等）を管理ノード１１に要求する。尚、データフロー管理ノード４０は、ユーザ端末３０と共通としても（同じ情報処理装置により構成しても）よい。
【００２６】
データ源５０は、組織が取り扱うデータの生成源（各種製造装置、各種機械、各種センサ等）であり、センサデータ（ＩｏＴデータ）を生成する。
【００２７】
コンテナレジストリ６０は、コンテナイメージを管理し、処理ノード１２からコンテナイメージの取得要求を受信すると、要求元にコンテナイメージを提供（配信）する。
【００２８】
管理ノード１１は、コンテナ基盤１０の管理に関する処理を行う。上記処理は、例えば、処理ノード１２へのコンテナのデプロイに関する処理や、デプロイログの生成に関する処理等である。
【００２９】
処理ノード１２は、コンテナを実行し、コンテナとの間でデータの入出力に関する処理を行う。また処理ノード１２は、コンテナの実行ログの生成や管理に関する処理を行う。尚、処理ノード１２は同じ組織に複数存在していてもよい。
【００３０】
データ格納ノード１３は、データ源５０から収集したデータや加工コンテナによって加工されたデータを管理（記憶）する。データ格納ノード１３は、他のノードに自身が格納しているデータに関する情報を提供する。
【００３１】
クライアントノード２１は、ブロックチェーンに関する各種の処理を行う。クライアントノード２１は、検証先の分散台帳ノード２２を選択する。
【００３２】
分散台帳ノード２２は、ブロックチェーンの分散台帳を管理し、データの加工内容の検証に関する処理を行う。分散台帳ノード２２は、同じ組織に複数存在していてもよい。
【００３３】
図３は、ユーザ端末３０、データフロー管理ノード４０、コンテナレジストリ６０、及びコンテナ基盤１０を構成する情報処理装置（以下、「情報処理装置１００」と称する。）の一例を示すブロック図である。
【００３４】
同図に示すように、例示する情報処理装置１００は、プロセッサ１０１、主記憶装置１０２、補助記憶装置１０３、入力装置１０４、出力装置１０５、及び通信装置１０６を備える。尚、情報処理装置１００は、クラウドにおけるクラウドサーバ等の仮想的な情報処理資源を用いて構成されるものであってもよい。
【００３５】
プロセッサ１０１は、例えば、演算処理を行う装置であり、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＡＩ（Artificial Intelligence）チップ等である。主記憶装置１０２は、プログラムや
データを記憶する装置であり、例えば、ＲＯＭ（Read Only Memory）（ＳＲＡＭ（Static
Random Access Memory）、ＮＶＲＡＭ（Non Volatile RAM）、マスクＲＯＭ（Mask Read
Only Memory）、ＰＲＯＭ（Programmable ROM）等）、ＲＡＭ（Random Access Memory）（ＤＲＡＭ（Dynamic Random Access Memory）等）等である。補助記憶装置１０３は、ハードディスクドライブ（Hard Disk Drive）、フラッシュメモリ（Flash Memory）、ＳＳ
Ｄ（Solid State Drive）、光学式記憶装置（ＣＤ（Compact Disc）、ＤＶＤ(Digital Versatile Disc)等）等である。補助記憶装置１０３に格納されているプログラムやデータ
は、主記憶装置１０２に随時読み込まれる。
【００３６】
入力装置１０４は、ユーザから情報を受付けるユーザインタフェースであり、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。出力装置１０５は、各種の情報を出力（表示出力、音声出力、印字出力等）するユーザインタフェースであり、例えば、各種情報を可視化する表示装置（ＬＣＤ（Liquid Crystal Display）、グラフィックカード等）や音声出力装置（スピーカ）、印字装置等である。
【００３７】
通信装置１０６は、通信ネットワーク５を介して他の装置と通信する通信インタフェースであり、例えば、ＮＩＣ（Network Interface Card）、無線通信モジュール、ＵＳＢ（Universal Serial Interface）モジュール、シリアル通信モジュール等である。通信装置１０６は、通信可能に接続する他の装置から情報を受信する入力装置として機能することもできる。また通信装置１０６は、通信可能に接続する他の装置に情報を送信する出力装置として機能することもできる。
【００３８】
ユーザ端末３０、データフロー管理ノード４０、コンテナレジストリ６０、及びコンテナ基盤１０により実現される各ノード（管理ノード１１、処理ノード１２、データ格納ノード１３、クライアントノード２１、分散台帳ノード２２）が備える機能は、プロセッサ１０１が、主記憶装置１０２に格納されているプログラムを読み出して実行することにより、もしくは、情報処理装置１００を構成しているハードウェア（ＦＰＧＡ、ＡＳＩＣ、ＡＩチップ等）により実現される。情報処理装置１００は、基本的な機能として、例えば、オペレーティングシステム、デバイスドライバ、ファイルシステム、ＤＢＭＳ（DataBase Management System）等の機能を備えていてもよい。
【００３９】
図４は、データフロー管理ノード４０が備える機能を説明するブロック図である。デー
タフロー管理ノード４０は、記憶部４１１及びデータフロー管理部４１２の各機能を有する。
【００４０】
上記機能のうち、記憶部４０２は、データフロー情報４５１を記憶する。データフロー管理部４１２は、データフローの管理や編集（追加、変更、削除等）に関する処理要求を管理ノード１１に要求する。データフロー情報４５１は、データフローに関する各種の情報を含む。
【００４１】
図５は、管理ノード１１が備える機能を説明するブロック図である。管理ノード１１は、記憶部１１１、及びコンテナデプロイ部１１２を備える。記憶部１１１は、デプロイログ１５１を記憶する。デプロイログ１５１は、コンテナのデプロイに関するログ情報を保持する。コンテナデプロイ部１１２は、処理ノード１２へのコンテナのデプロイに関する処理を行う。尚、管理ノード１１の全部又は一部の機能を処理ノード１２により実現してもよい。
【００４２】
図６は、処理ノード１２の構成を説明するブロック図である。処理ノード１２は、記憶部１２１、コンテナ実行部１２２、及びコンテナログ管理部１２３を備える。
【００４３】
記憶部１２１は、コンテナ情報１２５及びコンテナログ１２６を記憶する。コンテナ情報１２５は、処理ノード１２にデプロイされているコンテナに関する情報を含む。コンテナログ１２６は、例えば、コンテナの標準出力の内容やデータの加工処理の実行履歴を含む。
【００４４】
コンテナ実行部１２２はコンテナの実行に関する処理を行う。またコンテナ実行部１２２は、コンテナへのデータの入出力の制御に関する処理を行う。
【００４５】
コンテナログ管理部１２３は、コンテナから出力される実行履歴をコンテナログ１２６として管理（記憶）する。
【００４６】
図７は、データ格納ノード１３の構成を説明するブロック図である。データ格納ノード１３は、記憶部１３１を備える。記憶部１３１は、データセット１３５、データセットアクセス権１３６、及びデータ１３７を記憶する。
【００４７】
データセット１３５は、データ源５０から取得したデータや、加工処理により加工されたデータにより構成される。データセットアクセス権１３６は、組織のデータセットに対するアクセス権に関する情報を含む。データ１３７は、データ源５０から収集したデータや加工処理により加工されたデータである。データの信頼性を高めるために、データ自体やデータのハッシュ値を分散台帳に記録してもよい。
【００４８】
図８はクライアントノード２１の構成を説明するブロック図である。クライアントノード２１は、記憶部２１１、トランザクション発行部２１２、ノード選択部２１３、及び業務アプリ２１４を備える。
【００４９】
記憶部２１１は、検証先決定用処理ノード情報２１５、検証先決定用パラメータ情報２１６、及び組織情報２１７を記憶する。検証先決定用処理ノード情報２１５は、検証先の決定に際して用いられる情報であり、処理ノード１２に関する情報を含む。検証先決定用パラメータ情報２１６は、検証先の決定に際して用いられる情報であり、各種のパラメータに関する情報を含む。組織情報２１７は、組織と分散台帳ノード２２の対応を示す情報を含む。
【００５０】
トランザクション発行部２１２は、ブロックチェーンの分散台帳ノード２２にトランザクションを発行（送信）する。後述するように、トランザクション発行部２１２は、データの加工内容（加工処理の内容）の検証要求を含むトランザクションを分散台帳ノード２２に発行する。
【００５１】
ノード選択部２１３は、加工処理の検証に際して用いる分散台帳ノード２２の選択に関する処理を行う。
【００５２】
業務アプリ２１４は、処理ノード１２等から加工内容に関する情報を含んだコンテナログを取得し、その内容を検証するようにトランザクション発行部２１２にトランザクションの発行を要求する。
【００５３】
図９は分散台帳ノード２２の構成を説明するブロック図である。分散台帳ノード２２は、記憶部２２１、スマートコントラクト実行/管理部２２２、検証用コンテナデプロイ部
２２３、データ入力部２２４、及び検証実行部２２５を備える。
【００５４】
記憶部２２１は、現在（最新）のステート（サブデータセット検証結果２５１、組織保持ポイント情報２５２、コンテナログ２５３）、ブロックチェーン２２７、スマートコントラクト情報２２８、及び出力データ２２９を記憶する。
【００５５】
サブデータセット検証結果２５１は、サブデータセットごとの加工処理の検証結果を含む。サブデータセットは、データセットの構成要素であり、例えば、データセットをデータの所定の取得期間で分割したものである。
【００５６】
組織保持ポイント情報２５２は、各組織が保持しているポイントを保持する。尚、ポイントは、データの加工内容の検証のためにコンピューティングリソース（処理ノード１２のリソース等）を提供した組織に付与される特典である。またポイントは受益者負担を促し、データセットを利用した組織は利用に必要なポイントを消費する。
【００５７】
コンテナログ２５３は、例えば、コンテナの標準出力の内容やデータの加工処理の実行履歴を含む。
【００５８】
ブロックチェーン２２７は、トランザクションの実行履歴等の情報を含む。
【００５９】
スマートコントラクト情報２２８は、分散台帳ノード２２に登録されているスマートコントラクトに関する情報を含む。
【００６０】
出力データ２２９は、検証用コンテナがデータの加工処理を行った際の加工後のデータを含む。
【００６１】
スマートコントラクト実行/管理部２２２は、スマートコントラクトの実行に関する処
理（管理）を行う。
【００６２】
検証用コンテナデプロイ部２２３は、スマートコントラクトから呼び出され、トランザクションに指定されている処理ノード１２への検証用コンテナのデプロイに関する処理を行う。
【００６３】
データ入力部２２４は、スマートコントラクトから呼び出され、トランザクションに含まれている、加工処理による加工前の入力データを取得し、取得した入力データを検証用コンテナに入力する。
【００６４】
検証実行部２２５は、スマートコントラクトから呼び出され、検証用コンテナの出力データに基づき、データの加工処理が正しいか否かを検証する処理を行う。検証実行部２２５は、例えば、処理ノード１２のコンテナログ１２６に含まれている値や出力データに含まれている値に基づき上記検証を行う。尚、上記検証の方法は必ずしも限定されない。
【００６５】
図１０は、コンテナレジストリ６０の構成を説明するブロック図である。コンテナレジストリ６０は、記憶部６０１及びコンテナイメージ管理部６１１を備える。
【００６６】
記憶部６０１は、コンテナイメージ６５１を記憶する。コンテナイメージ管理部６１１は、コンテナイメージ６５１の登録や提供（配布、配信）に関する処理を行う。
【００６７】
図１１は、図４に示したデータフロー情報４５１の一例である。データフロー情報４５１は、データフローＩＤ４５１１、作成組織４５１２、作成日時４５１３、削除日時４５１４、入力データセットＩＤ４５１５、加工コンテナＩＤ４５１６、出力データセットＩＤ４５１７、及び状態４５１８の各項目を有する一つ以上のレコードで構成される。各レコードは一つのデータフローに対応している。
【００６８】
上記項目のうち、データフローＩＤ４５１１には、データフローの識別子（以下、「データフローＩＤ」と称する。）が設定される。作成組織４５１２には、当該データフローの作成を要求した組織の識別子（以下、「組織ＩＤ」と称する。）が設定される。作成日時４５１３には、当該データフローが作成された日時が設定される。削除日時１５１４には、当該データフローが削除された場合に当該が行われた日時が設定される。削除されていない場合は「Ｎ／Ａ」が設定される。
【００６９】
入力データセットＩＤ４５１５には、当該データフローに入力されるデータセットの識別子（以下、「データセットＩＤ」と称する。）が設定される。同じデータフローに複数のデータセットが入力されることもあり、その場合、入力データセットＩＤ４５１５には、各データセットのデータセットＩＤが設定される。
【００７０】
加工コンテナＩＤ４５１６には、当該データフローの実行に際して利用するコンテナの識別子（以下、「コンテナＩＤ」と称する。）が設定される。出力データセットＩＤ４５１７には、当該データフローを実行することにより生成（出力）されるデータセットのデータセットＩＤが設定される。状態４５１８には、当該データフローの現在の実行状態を示す情報が設定される。
【００７１】
図１２は、図５に示したデプロイログ１５１の一例である。デプロイログ１５１は、デプロイログＩＤ１５１１、作成日時１５１２、作成コンテナＩＤ１５１３、及びイメージＩＤ１５１４の各項目を有する一つ以上のレコードで構成される。各レコードは一つのデプロイログに対応している。
【００７２】
上記項目のうち、デプロイログＩＤ１５１１には、デプロイログの識別子（以下、「デプロイログＩＤ」と称する。）が設定される。作成日時１５１２には、当該デプロイログが生成された日時が設定される。
【００７３】
作成コンテナＩＤ１５１３には、当該デプロイログに対応するコンテナをデプロイしたコンテナのコンテナＩＤが設定される。イメージＩＤ１５１４には、当該デプロイログに対応するコンテナイメージの識別子（以下、「イメージＩＤ」と称する。）が設定される。
【００７４】
図１３は、図６に示したコンテナ情報１２５の一例である。コンテナ情報１２５は、コンテナＩＤ１２５１、イメージＩＤ１２５２、及び状態１２５３の各項目を有する一つ以上のレコードで構成される。各レコードは一つのコンテナに対応している。
【００７５】
上記項目のうち、コンテナＩＤ１２５１にはコンテナＩＤが設定される。イメージＩＤ１２５２には当該コンテナのコンテナイメージのイメージＩＤが設定される。状態１２５３には、当該コンテナの現在の実行状態を示す情報が設定される。
【００７６】
図１４は、図６に示したコンテナログ１２６の一例である。コンテナログ１２６は、コンテナログＩＤ１２６１、コンテナＩＤ１２６２、及びログ情報１２６３の各項目を有する一つ以上のレコードで構成される。各レコードは一つのコンテナログに対応している。
【００７７】
上記項目のうち、コンテナログＩＤ１２６１には、コンテナログの識別子（以下、「コンテナログＩＤ」と称する。）が設定される。コンテナＩＤ１２５１には、当該コンテナログを生成（出力）したコンテナのコンテナＩＤが設定される。
【００７８】
ログ情報１２６３には、コンテナから出力されたログの内容が設定される。例示するログ情報１２６３は、入力データの値、出力データの値、出力先のサブデータセットの情報等を含む。
【００７９】
図１５は、図７に示したデータセット１３５の一例である。データセット１３５は、データセットＩＤ１３５１、サブデータセットＩＤ１３５２、及び取得期間１３５３の各項目を有する一つ以上のレコードで構成される。各レコードは一つのデータセットに対応している。
【００８０】
上記項目のうち、データセットＩＤ１３５１には、データセットの識別子（以下、「データセットＩＤ」と称する。）が設定される。サブデータセットＩＤ１３５２には、サブデータセットの識別子（以下、「サブデータセットＩＤ」と称する。）が設定される。取得期間１３５３には、当該サブデータセットの取得期間が設定される。
【００８１】
図１６は、図７に示したデータセットアクセス権１３６の一例である。データセットアクセス権１３６は、データセットＩＤ１３６１及びアクセス権１３６２の各項目を有する一つ以上のレコードで構成される。各レコードは一つのデータセットに対応している。
【００８２】
上記項目のうち、データセットＩＤ１３６１には、データセットのデータセットＩＤが設定される。アクセス権１３６２には、当該データセットについてアクセス権を有するユーザ（本例では組織）とアクセス権の内容が設定される。尚、同図における「Ｒ」は読み込み権限であり、「Ｗ」は書き込み権限である。
【００８３】
図１７は、図８に示した検証先決定用処理ノード情報２１５の一例である。検証先決定用処理ノード情報２１５は、処理ノード情報ＩＤ２１５１、組織ＩＤ２１５２、アクセス可能データセット２１５３、現在利用中データセット２１５４、及び検証実施必要ポイント２１５５の各項目を有する一つ以上のレコードで構成される。各レコードは一つの検証先決定用の処理ノードの情報に対応している。
【００８４】
検証先決定用処理ノード情報２１５は、クライアントノード２１が検証先の分散台帳ノード２２を選択する際に用いられる情報である。
【００８５】
上記項目のうち、処理ノード情報ＩＤ２１５１には、検証先決定用の処理ノードの情報の識別子（以下、「処理ノード情報ＩＤ」と称する。）が設定される。組織ＩＤ２１５２
には、組織ＩＤが設定される。
【００８６】
アクセス可能データセット２１５３には、当該組織がアクセス可能な全てのデータセットのデータセットＩＤが設定される。現在利用中データセット２１５４には、当該組織が現在利用している全てのデータセットのデータセットＩＤが設定される。
【００８７】
検証実施必要ポイント２１５５には、当該組織が検証用コンテナを提供するために必要なポイント値が設定される。
【００８８】
図１８は、図８に示した検証先決定用パラメータ情報２１６の一例である。検証先決定用パラメータ情報２１６は、パラメータ情報ＩＤ２１６１、パラメータ２１６２、及びパラメータ値２１６３の各項目を有する一つ以上のレコードで構成される。各レコードは一つの検証先決定用のパラメータの情報に対応している。
【００８９】
上記項目のうち、パラメータ情報ＩＤ２１６１には、検証先決定用のパラメータ情報の識別子（以下、「パラメータ情報ＩＤ」と称する。）が設定される。パラメータ２１６２には、パラメータを示す情報が設定される。例えば、「検証ノード（デプロイ）最大数」や「検証ノード（データ入力）最大数」が設定される。パラメータ値２１６３には、当該パラメータの値が設定される。
【００９０】
図１９は、図８に示した組織情報２１７の一例である。組織情報２１７は、組織ＩＤ２１７１、組織名２１７２、及び分散台帳ノードＩＤ２１７３の各項目を有する一つ以上のレコードで構成される。各レコードは一つの組織に対応している。
【００９１】
上記項目のうち、組織ＩＤ２１７１には、組織ＩＤが設定される。組織名２１７２には、当該組織の名称が設定される。分散台帳ノードＩＤ２１７３には、当該組織の分散台帳ノード２２の識別子（以下、「分散台帳ノードＩＤ」と称する。）が設定される。一つの組織が複数の分散台帳ノード２２を有している場合もあり、その場合、分散台帳ノードＩＤ２１７３には複数の分散台帳ノードＩＤが設定される。
【００９２】
図２０は、図９に示したサブデータセット検証結果２５１の一例である。サブデータセット検証結果２５１は、サブデータセットＩＤ２５１１、検証実施レベル２１１２、及び更新日時２１１３の各項目を有する一つ以上のレコードで構成される。各レコードは一つのサブデータセットに対応している。
【００９３】
上記項目のうち、サブデータセットＩＤ２５１１には、サブデータセットＩＤが設定される。検証実施レベル２１１２には、検証の質（信頼性）を表す評価指標である検証実施レベルが設定される。本例では検証実施レベルの値が大きい程、検証の質は高くなる。分散台帳に書き込まれている検証実施レベルから行われた検証の質を知ることができる。データ源５０から加工することなしにデータセットに格納された場合は検証実施レベル２１１２には「Ｎ／Ａ」が設定される。更新日時２５１３には、検証実施レベル２１１２の内容が更新された日時が設定される。
【００９４】
図２１は、図９に示した組織保持ポイント情報２５２の一例である。組織保持ポイント情報２５２は、組織ＩＤ２５２１、組織名２５２２、残ポイント２５２３、及び更新日時２５２４の各項目を有する一つ以上のレコードで構成される。各レコードは一つの組織に対応している。
【００９５】
上記項目のうち、組織ＩＤ２５２１には組織ＩＤが設定される。組織名２５２２には当該組織の名称が設定される。残ポイント２５２３には、当該組織が現在保持しているポイ
ント値が設定される。更新日時２５２４には、残ポイント２５２３の直近の更新日時（最終更新日時）が設定される。
【００９６】
図２２は、図９に示したコンテナログ２５３の一例である。コンテナログ２５３は、コンテナログＩＤ２５３１及びログ情報２５３２の各項目を有する一つ以上のレコードで構成される。各レコードは一つのコンテナログに対応している。
【００９７】
上記項目のうち、コンテナログＩＤ２５３１には、コンテナログＩＤが設定される。ログ情報２５３２には、コンテナから出力されたログの内容が設定される。例示するログ情報２５３２は、入力データの値、出力データの値、出力先のサブデータセットの情報等を含む。
【００９８】
図２３Ａ及び図２３Ｂは、図９に示したブロックチェーン２２７の一例である。ブロックチェーン２２７は、ブロックＩＤ２２７１、トランザクション情報（タイムスタンプ２２７２、ＳＣＩＤ２２７３、呼び出し関数２２７４、ＴＸ発行者２２７５、ＴＸ承認者２２７６、ＲＷセット２２７７）、及び前ブロックハッシュ値２２７８の各項目を有する複数のレコードで構成される。各レコードは一つのブロックに対応している。例示するブロックチェーン２２７では、１つのブロックに１つのトランザクション（ＴＸ）を格納しているが、１つのブロックに複数のトランザクション（ＴＸ）が格納されていてもよい。
【００９９】
ブロックＩＤ２２７１には、ブロックチェーンを構成するブロックの識別子（以下、「ブロックＩＤ」と称する。）が設定される。トランザクション情報のうち、タイムスタンプ２２７２には、ＴＸを実行した日時（タイムスタンプ）が設定される。
【０１００】
ＳＣＩＤ２２７３には、実行したスマートコントラクト（ＳＣ）の識別子（以下、「スマートコントラクトＩＤ」と称する。）が設定される。呼び出し関数２２７４には、呼び出したＳＣ内の関数が設定される（後述する図２４の関数２２８３）。ＴＸ発行者２２７５には、トランザクション（ＴＸ）を発行した組織の名称が設定される。ＴＸ承認者２２７６には、トランザクション（ＴＸ）を承認した組織の名称が設定される。
【０１０１】
ＲＷセット２２７７には、Ｒｅａｄ／Ｗｒｉｔｅセット（ステート（図２０のサブデータセット検証結果２５１、図２１の組織保持ポイント情報２５２、図２２のコンテナログ２５３）に対する読み込みや書き込みの内容が設定される。本例の場合、例えば、ブロックＩＤ２２７１が「１」のレコードのＲＷセット２２７７は、データ源５０からデータを加工なしにデータセットに格納している場合であり、ｋｅｙである「検証実施レベル」についてＶａｌｕｅとして「０」が書き込まれている。またブロックＩＤ２２７１が「２」のＲＷセット２２７７は、検証用コンテナをデプロイするトランザクション（ＴＸ）に関するものであり、デプロイの結果、ポイントが付与されるため、ｋｅｙである「組織Ａポイント」、「組織Ｂポイント」に夫々、Ｖａｌｕｅとして「１００」、「４００」が書き込まれている。またブロックＩＤが「５」のレコードのＲＷセット２２７７は、コンテナログに関するものであり、ｋｅｙである「コンテナログ１」にＶａｌｕｅとしてコンテナログ２５３のコンテナログＩＤが「１」のログ情報２３０２の内容が設定されている。尚、ステートの情報に加えて、検証用コンテナから出力されたデータの値等の検証結果をＲＷセットに含めてもよい。
【０１０２】
前ブロックハッシュ値２２７８には、前ブロックのハッシュ値が格納される。前ブロックのハッシュ値を持つことによりブロックチェーン内のデータの改ざんの困難性が確保される。
【０１０３】
図２４は、図９に示したスマートコントラクト情報２２８の一例である。スマートコン
トラクト情報２２８は、スマートコントラクトＩＤ２２８１、種類２２８２、及び関数２２８３の各項目を有する一つ以上のレコードで構成される。各レコードは一つのスマートコントラクトに対応している。
【０１０４】
スマートコントラクト情報２２８には、スマートコントラクトＩＤが設定される。種類２２８２には、スマートコントラクトの種類（処理内容）を示す情報が設定され、例えば、「検証（検証用コンテナデプロイ、ポイント更新）」、「検証（データ入力）」、「検証（出力データ検証）」等が設定される。関数２２８３には、各スマートコントラクトの関数が設定される。
【０１０５】
図２５は、図９に示した出力データ２２９の一例である。出力データ２２９は、コンテナＩＤ２２９１、入力サブデータセットＩＤ２２９２、及び出力データ２２９３の各項目を有する一つ以上のレコードで構成される。各レコードは一つの出力データに対応している。出力データ２２９は、分散台帳ノード２２がデータの加工内容の検証に用いる情報を含む。
【０１０６】
上記項目のうち、コンテナＩＤ２２９１には、出力データの識別子（本例ではコンテナＩＤ）が設定される。入力サブデータセットＩＤ２２９２は、コンテナに入力するデータを含むサブデータセットのサブデータセットＩＤが設定される。出力データ２２９３には、出力されたデータの内容が設定される。
【０１０７】
図２６は、図１０に示したコンテナイメージ６５１の一例である。コンテナイメージ６５１は、コンテナＩＤ６０５１及び内容６０５２の各項目を含む一つ以上のレコードで構成されている。各レコードは一つのコンテナに対応している。
【０１０８】
上記項目のうち、コンテナＩＤ６０５１には、コンテナイメージＩＤが設定される。内容６０５２には、コンテナイメージの内容（実体）が設定される。
【０１０９】
＜処理説明＞
図２７は、ユーザがデータフローを追加する際にデータ加工履歴管理システム１において行われる処理を説明するシーケンス図である。
【０１１０】
まずユーザ端末３０が、データフロー管理ノード４０に対してデータフローの追加要求を送信する（Ｓ２７１１）。データフロー管理ノード４０は、上記追加要求を受信すると、データフローの追加先の組織の管理ノード１１にデータフローの追加要求を送信する（Ｓ２７１２）。
【０１１１】
管理ノード１１（処理ノード１２でもよい）は、上記追加要求を受信すると、自身が属する組織の処理ノード１２にコンテナのデプロイ要求を送信する（Ｓ２７１３）。処理ノード１２は、上記デプロイ要求を受信すると、コンテナレジストリ６０から追加するデータフローのコンテナイメージを取得し（Ｓ２７１４，Ｓ２７１５）、取得したコンテナイメージを用いて、データの加工処理を行うコンテナをデプロイする（Ｓ２７１６）。
【０１１２】
図２８は、データフローに従ってある組織でデータの加工処理が行われた際にデータ加工履歴管理システム１において行われる加工内容の検証処理に関する準備処理を説明するシーケンス図である。尚、以下の説明におけるデータは、例えば、時系列データであり、サブデータセットは一定期間ごとに生成されるものとする。
【０１１３】
まず加工処理の対象となるデータ又はデータセットが、データ源５０又はデータ格納ノード１３から処理ノード１２に送られる（Ｓ２８１１，Ｓ２８１２）。
【０１１４】
処理ノード１２のコンテナは、送られてくるデータを受信し、受信したデータについて加工処理を行い（Ｓ２８１３）、加工後のデータをデータ格納ノード１３のデータセットに格納していく（Ｓ２８１４）。
【０１１５】
処理ノード１２のコンテナは、サブデータセットの生成が完了すると、自身が属する組織のクライアントノード２１に加工内容の検証を要求する（Ｓ２８１５）。上記要求には、サブデータセットの作成完了の通知と、データを加工した際に生成されたコンテナログとが含まれる。尚、本例では、このように処理ノード１２のコンテナが加工内容の検証要求を、サブデータセットの生成が完了したタイミングで送信するが、検証要求を送信するタイミングは必ずしも限定されない。例えば、ユーザが指定したタイミングで検証要求を送信してもよい。また加工したデータの数等に応じて検証要求を送信してもよい。
【０１１６】
クライアントノード２１は、検証要求を受信すると、検証先とする他の組織の分散台帳ノード２２を選択する（Ｓ２８１６）。尚、この処理（以下、「検証先ノード選択処理Ｓ２８１６」と称する。）の詳細については後述する。
【０１１７】
続いて、クライアントノード２１は、選択した他の組織の複数の分散台帳ノード２２の夫々に検証用コンテナのデプロイ要求を送信する（ＳＳ２８１７）。上記デプロイ要求はコンテナイメージのイメージＩＤを含む。尚、リソースの節約のため、検証用コンテナに入力されるサブデータセットの検証実施レベル２５１２に「０」が設定されている場合、クライアントノード２１は上記デプロイ要求の送信を行わない。
【０１１８】
各組織の分散台帳ノード２２は、上記デプロイ要求を受信すると、自組織の管理ノード１１に検証用コンテナのデプロイ要求を送信する（Ｓ２８１８）。
【０１１９】
管理ノード１１は、上記デプロイ要求を受信すると、当該デプロイ要求に指定されているコンテナのデプロイを自組織の処理ノード１２に要求する（Ｓ２８１９）。尚、管理ノード１１は、当該コンテナを検証用としてデプロイする。
【０１２０】
処理ノード１２は、上記デプロイ要求を受信すると、当該デプロイ要求に指定されているコンテナイメージをコンテナレジストリ６０から取得し（Ｓ２８２０、Ｓ２８２１）、取得したコンテナイメージを用いて検証用コンテナをデプロイし（Ｓ２８２２）、管理ノード１１にデプロイの完了通知を送信する（Ｓ２８２３）。尚、上記完了通知は、デプロイした検証用コンテナの所在を特定する情報（ＵＲＬ（Uniform Resource Locator）、ＩＰアドレス等）を含む。
【０１２１】
管理ノード１１は、上記完了通知を受信すると、検証用コンテナのデプロイの完了通知を自組織の分散台帳ノード２２に通知する（Ｓ２８２４）。
【０１２２】
分散台帳ノード２２は、上記完了通知を受信すると、自組織のポイントに検証用コンテナをデプロイした分に相当するポイントを反映（図２１に示した組織ポイント情報２２６の残ポイント２５２３を更新）する（Ｓ２８２５）。尚、ポイントの更新履歴は、図２３Ａに例示したＲＷセット２２７７としてブロックチェーン２２７に記録される。
【０１２３】
続いて、分散台帳ノード２２は、Ｓ２８１７で検証用コンテナのデプロイ要求を送信してきたクライアントノード２１にデプロイの完了通知を送信する（Ｓ２８２６）。
【０１２４】
図２９は、図２８に示した検証先ノード選択処理Ｓ２８１６の詳細を説明するフローチャートである。同図に示すように、検証先ノード選択処理Ｓ２８１６は、検証用コンテナ
のデプロイ先の分散台帳ノード２２を選択する処理（Ｓ２９１１〜Ｓ２９１４）と、検証用コンテナにデータを入力する分散台帳ノード２２を選択する処理（Ｓ２９１５〜Ｓ２９１７）とを含む。
【０１２５】
まずクライアントノード２１は、図２０に示した検証先決定用処理ノード情報２１５を参照し、自組織以外の他の組織のうち、加工後のデータセットを現在利用している組織があるか否かを判定する（Ｓ２９１１）。加工後のデータセットを現在利用している組織がなければ（Ｓ２９１１：ＮＯ）、クライアントノード２１は、加工後のデータセット（サブデータセット）の図２０に示したサブデータセット検証結果２５１の検証実施レベル２５１２に「０」を設定し、処理を終了する（Ｓ２９１２）。このように加工後のデータセットが他の組織で利用されない場合、分散台帳ノード２２は選択されず、検証は行われないので、リソースが無駄に消費されてしまうのを防ぐことができる。
【０１２６】
一方、加工後のデータセットを現在利用している組織がある場合（Ｓ２９１１：ＹＥＳ）、クライアントノード２１は、加工後のデータセットを現在利用している組織の分散台帳ノード２２を検証用コンテナのデプロイ先のノード（第１の分散台帳ノード）として選択する（Ｓ２９１３）。このように加工後のデータセットを現在利用している組織の分散台帳ノード２２を検証用コンテナのデプロイ先として指定することで、検証により生じる負荷を負担する意義を有する組織を選択することができる。デプロイ先として選択可能な分散台帳ノード２２の数が、図１８に示した検証先決定用パラメータ情報２１６の検証ノード（デプロイ）最大数２１６２のパラメータ値２１６３を超える場合、クライアントノード２１は、例えば、必要なポイントが少ない（安い）組織の分散台帳ノード２２を優先して最大数分の分散台帳ノード２２を選択する。
【０１２７】
続いて、クライアントノード２１は、加工後のデータセットの図２０に示したサブデータセット検証結果２５１の検証実施レベル２５１２に、選択した分散台帳ノード２２の数を設定する（Ｓ２９１４）。従って、選択した分散台帳ノード２２の数が高い程、検証実施レベル（検証の質）は高くなる。これは多くの分散台帳ノード２２で検証が行われる程、検証の質が向上するという前提に基づく。
【０１２８】
続いて、クライアントノード２１は、図１６に示したデータセットアクセス権１３６を参照し、加工処理を行った組織以外の他の組織のうち、加工後のデータセットにアクセス可能な組織があるか否かを判定する（Ｓ２９１５）。加工後のデータセットにアクセス可能な組織がない場合（Ｓ２９１５：ＮＯ）、クライアントノード２１は、加工後のデータセットの図２０に示したサブデータセット検証結果２５１の検証実施レベル２５１２に「０」を設定し、処理を終了する（Ｓ２９１２）。このように加工後のデータセットにアクセス可能な組織がない場合、分散台帳ノード２２は選択されず、検証は行われないので、リソースが無駄に消費されてしまうのを防ぐことができる。
【０１２９】
一方、加工後のデータセットにアクセス可能な組織がある場合（Ｓ２９１５：ＹＥＳ）、クライアントノード２１は、加工後データセットにアクセス可能な組織の分散台帳ノード２２を検証用コンテナにデータを入力するノード（第２の分散台帳ノード）として選択する（Ｓ２９１６）。デプロイ先の分散台帳ノード２２の数が、図１８に示した検証先決定用パラメータ情報２１６の検証ノード（データ入力）最大数２１６２のパラメータ値２１６３を超える場合、クライアントノード２１は、例えば、必要ポイントが少ない（安い）組織の分散台帳ノード２２を優先して最大数分の分散台帳ノード２２を選択する。このように、クライアントノード２１は、分散台帳ノード２２の選択に際し、組織のデータセットへのアクセス権を考慮するので、データのセキュリティを確保しつつ、検証処理を行う分散台帳ノード２２を選択することができる。
【０１３０】
続いて、クライアントノード２１は、加工後のデータセット（サブデータセット）の図２０に示したサブデータセット検証結果２５１の検証実施レベル２５１２に、選択した分散台帳ノード２２の数を加算する（Ｓ２９１７）。
【０１３１】
続いて、クライアントノード２１は、Ｓ２９１３で選択した検証用コンテナのデプロイ先の分散台帳ノード２２と、Ｓ２９１６で選択した検証用コンテナにデータを入力する分散台帳ノード２２との一つ以上の組み合わせを生成する（Ｓ２９１８）。この組み合わせの方法は必ずしも限定されない。尚、例えば、選出した検証用コンテナにデータを入力する分散台帳ノード２２の数が、選出した検証用コンテナのデプロイ先の分散台帳ノード２２の数よりも少ない場合、一つの検証用コンテナにデータを入力する分散台帳ノード２２が複数の検証用コンテナのデプロイ先の分散台帳ノード２２と組み合わされる。
【０１３２】
図３０は、ある組織でデータの加工処理が行われた際にデータ加工履歴管理システム１において行われる、上記のある組織におけるデータの加工内容の検証処理を説明するシーケンス図である。
【０１３３】
まずクライアントノード２１は、検証先ノード選択処理Ｓ２８１６で選択したデータの入力を担当する分散台帳ノード２２に、Ｓ２９１８において当該分散台帳ノード２２と組み合わされた検証用コンテナのデプロイ先の分散台帳ノード２２が属する組織の処理ノード１２の検証用コンテナにデータ（加工処理における入力データ）を入力するように要求する（Ｓ３０１１）。尚、上記要求には、入力データセットや入力先のコンテナの所在を示す情報（ＵＲＬ、ＩＰアドレス等）が含まれる。
【０１３４】
分散台帳ノード２２は、上記要求を受信すると、当該要求で指定されているデータ（データセット）を保持しているデータ格納ノード１３に、上記検証用コンテナへのデータの入力要求を送信する（Ｓ３０１２）。
【０１３５】
データ格納ノード１３は、上記要求で指定されているデータ（データセット）を上記処理ノード１２の検証用コンテナに入力する（Ｓ３０１３）。
【０１３６】
検証用コンテナは、入力されたデータに対して、コンテナに定義されている加工処理を実行し（Ｓ３０１４）、加工後のデータを、検証用コンテナのデプロイ要求を送信してきた分散台帳ノード２２に送信する（Ｓ３０１５）。尚、このとき、検証用コンテナが加工内容に関する情報を含むコンテナログを上記分散台帳ノード２２に送信してもよい。
【０１３７】
分散台帳ノード２２は、加工後のデータを受信すると、Ｓ３０１１でデータの入力を要求してきたクライアントノード２１に完了通知を送信する（Ｓ３０１６）。
【０１３８】
クライアントノード２１は、上記完了通知を受信すると、分散台帳ノード２２に加工後のデータ（出力データ）の検証を要求する（Ｓ３０１７）。この要求には、図２８の加工処理Ｓ２８１３における加工後のデータが含まれる。
【０１３９】
分散台帳ノード２２は、上記要求に含まれている上記加工後のデータと、Ｓ３０１５で受信した（検証環境からの）加工後のデータとを比較することにより、ある組織におけるデータの加工内容が正しいか否かを検証し（Ｓ３０１８）、検証結果をクライアントノード２１に通知する（Ｓ３０１９）。
【０１４０】
クライアントノード２１は、全ての検証先の分散台帳ノード２２から上記検証結果を受信し、その結果を確認する（Ｓ３０２０）。上記確認の結果、例えば、検証を依頼した分散台帳ノード２２のうち、既定数以上の分散台帳ノード２２からの結果が同一であった場
合、クライアントノード２１は、加工内容（検証対象の加工処理の内容）は正しいと判定し、全ての分散台帳ノード２２に対して、分散台帳（図２０に示したサブデータセット検証結果２５１）の更新要求を送信する（Ｓ３０２１）。尚、加工内容が正しいか否かの判定方法は必ずしも限定されない。
【０１４１】
上記要求を受信した分散台帳ノード２２は、分散台帳をステートの内容（サブデータセット検証結果２５１、組織保持ポイント情報２５２、コンテナログ２５３）に基づき更新し（Ｓ３０２２）、管理ノード１１に検証用コンテナの削除を要求する（Ｓ３０２３）。
【０１４２】
管理ノード１１は、上記要求を受信すると、処理ノード１２に検証用コンテナの削除要求を送信する（Ｓ３０２４）。
【０１４３】
処理ノード１２は、指定された検証用コンテナを削除し（Ｓ３０２５）、管理ノード１１に削除完了を通知する（Ｓ３０２６）。
【０１４４】
管理ノード１１は、上記通知を受信すると、分散台帳ノード２２に処理完了を通知する（Ｓ３０２７）。
【０１４５】
以上、詳細に説明したように、本実施形態のデータ加工履歴管理システム１によれば、ブロックチェーンの仕組みを利用して他の組織で行われたデータの加工処理を検証することができる。また検証対象となる加工処理はブロックチェーンの外部のリソースであるコンテナ基盤のリソースを用いて行われるため、既存のツール等を活用して加工内容の検証を効率よく行うことができる。このように、本実施形態のデータ加工履歴管理システム１によれば、複数の組織で取り扱われるデータの加工内容を検証する仕組みを効率よく実現してデータの信頼性を向上することができる。
【０１４６】
以上、本発明の一実施形態について詳細に説明したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、説明した全ての構成を備えるものに必ずしも限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加や削除、置換をすることが可能である。
【０１４７】
例えば、検証先の分散台帳ノード２２の決定を、各組織が過去に利用していたデータセットの情報を利用して行ってもよい。
【０１４８】
また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、ＩＣ
カード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１４９】
また上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【０１５０】
また以上に説明した各情報処理装置の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、これらの装置が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点か
ら最適な配置形態に変更し得る。
【０１５１】
また前述した各種のデータを格納するデータベースの構成（スキーマ（Schema）等）は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
【符号の説明】
【０１５２】
１  データ加工履歴管理システム、５  通信ネットワーク、１０  コンテナ基盤、１１  管理ノード、１１１  記憶部、１１２  コンテナデプロイ部、１５１  デプロイログ、１２  処理ノード、１２１  記憶部、１２２  コンテナ実行部、１２３  コンテナログ管理部、１２５  コンテナ情報、１２６  コンテナログ、１３  データ格納ノード、１３１  記憶部、１３５  データセット、１３６  データセットアクセス権、１３７  データ、２１  クライアントノード、２１１  記憶部、２１２  トランザクション発行部、２１３  ノード選択部、２１４  業務アプリ、２１５  検証先決定用処理ノード情報、２１６  検証先決定用パラメータ情報、２１７  組織情報、２２  分散台帳ノード、２２１  記憶部、２２２  スマートコントラクト実行／管理部、２２３  検証用コンテナデプロイ部、２２４  データ入力部、２２５  検証実行部、２２７  ブロックチェーン、２２８  スマートコントラクト情報、２２９  出力データ、２５１  サブデータセット検証結果、２５２
組織保持ポイント情報、２５３  コンテナログ、３０  ユーザ端末、４０  データフロー管理ノード、４１１  記憶部、４１２  データフロー管理部、４５１  データフロー情報、５０  データ源、６０  コンテナレジストリ、６０１  記憶部、６１１  コンテナイメージ管理部、６５１  コンテナイメージ
【図１】
2020197873.tif 000003
【図２】
2020197873.tif 000004
【図３】
2020197873.tif 000005
【図４】
2020197873.tif 000006
【図５】
2020197873.tif 000007
【図６】
2020197873.tif 000008
【図７】
2020197873.tif 000009
【図８】
2020197873.tif 000010
【図９】
2020197873.tif 000011
【図１０】
2020197873.tif 000012
【図１１】
2020197873.tif 000013
【図１２】
2020197873.tif 000014
【図１３】
2020197873.tif 000015
【図１４】
2020197873.tif 000016
【図１５】
2020197873.tif 000017
【図１６】
2020197873.tif 000018
【図１７】
2020197873.tif 000019
【図１８】
2020197873.tif 000020
【図１９】
2020197873.tif 000021
【図２０】
2020197873.tif 000022
【図２１】
2020197873.tif 000023
【図２２】
2020197873.tif 000024
【図２３Ａ】
2020197873.tif 000025
【図２３Ｂ】
2020197873.tif 000026
【図２４】
2020197873.tif 000027
【図２５】
2020197873.tif 000028
【図２６】
2020197873.tif 000029
【図２７】
2020197873.tif 000030
【図２８】
2020197873.tif 000031
【図２９】
2020197873.tif 000032
【図３０】
2020197873.tif 000033