(57)【要約】      （修正有）【課題】情報処理タスクの有効性の管理方法及び管理装置を提供する。【解決手段】ユーザ端末が、順序情報処理タスク・リストにおける情報処理タスクの要求を定められた順序で複数の実行エンティティに送信し、要求される情報処理タスクを、順序情報処理タスク・リストを一体としてタスク・バッファ・キューにバッファリングし、タスク・バッファ・キューにおける各情報処理タスクが所定の衝突条件を満たすか否かを判断し、情報処理タスクが所定の衝突条件を満たした場合、該情報処理タスクを衝突タスク・キューに移動させ、所定の衝突条件が満たさなくなる場合、該情報処理タスクを衝突タスク・キューから削除してタスク・バッファ・キューにバッファリングする。【選択図】図１
2020013544.tif 000002
【特許請求の範囲】
【請求項１】
脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法であって、前記脱中心化のデータ管理システムは、ユーザ端末と、ユーザ端末により開始された情報処理タスクを実行する複数の実行エンティティとを含み、前記ユーザ端末と前記複数の実行エンティティは同一のデータベースのコピーをそれぞれ持っており、前記情報処理タスクの実行結果のうち、前記ユーザ端末及び前記複数の実行エンティティにより共に承認された結果に基づいて、各データベースのコピーを更新する、方法であって、
ユーザ端末が前記複数の実行エンティティに複数の情報処理タスクの要求を送信するステップであって、順序で並び替えられた少なくとも２つの情報処理タスクを含む順序情報処理タスク・リストにおける情報処理タスクは前記順序で前記複数の実行エンティティに送信され、前記順序情報処理タスク・リストは、要求される前記複数の情報処理タスクに対して同時実行リスクの検出を行うことによって生成される、ステップと、
要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするステップであって、前記順序情報処理タスク・リストは一体として前記タスク・バッファ・キューにバッファリングされる、ステップと、
前記タスク・バッファ・キューにおける各情報処理タスクが所定の衝突条件を満たすか否かを判断するステップと、
前記タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが前記所定の衝突条件を満たすと判断された場合、該情報処理タスクを衝突タスク・キューに移動させ、前記所定の衝突条件が満たさなくなる場合、後続処理を継続するように、該情報処理タスクを前記衝突タスク・キューから削除して前記タスク・バッファ・キューにバッファリングするステップと、を含む、方法。
【請求項２】
要求される前記複数の情報処理タスクに対して同時実行リスクの検出を行い、前記順序情報処理タスク・リストを生成するステップは、
脱中心化のデータ管理システムにおける、情報処理タスクに関連する関数に対する静的コード解析により、要求される前記複数の情報処理タスクの各情報処理タスクを実行した実行結果を取得するステップと、
要求される前記複数の情報処理タスクのうち任意の情報処理タスク・ペアについて、前記実行結果に基づいて同時実行リスクを決定するステップと、
決定された各情報処理タスク・ペアの同時実行リスクに基づいて、情報処理タスクを並び替え、前記順序情報処理タスク・リストを生成するステップと、を含む、請求項１に記載の方法。
【請求項３】
任意の情報処理タスク・ペアについて、前記実行結果に基づいて同時実行リスクを決定するステップは、
情報処理タスク・ペアにおける各情報処理タスクの実行結果における書き込みデータの特性及び書き込みデータのタイプに基づいて、同時実行リスクのスコアを算出するステップ、を含む、請求項２に記載の方法。
【請求項４】
要求される前記複数の情報処理タスクの各情報処理タスクの実行結果を取得するステップは、
脱中心化のデータ管理システムにおける、情報処理タスクに関連する関数に対して静的コード解析を行うことで、前記情報処理タスクに関連する関数を実行するための構文木を取得するステップと、
前記構文木に基づいて、要求される前記複数の各情報処理タスクを実行した実行結果を取得するステップと、を含む、請求項２に記載の方法。
【請求項５】
前記タスク・バッファ・キューにおける情報処理タスクが所定の衝突条件を満たすか否かを判断するステップは、
前記情報処理タスクが確認待ちの情報処理タスクの集合に含まれる全ての情報処理タスクと衝突しない場合、前記情報処理タスクが前記所定の衝突条件を満たさないと判断するステップと、
前記情報処理タスクが前記確認待ちの情報処理タスクの集合に含まれる任意の情報処理タスクと衝突する場合、前記情報処理タスクが前記所定の衝突条件を満たすと判断するステップと、を含む、請求項１に記載の方法。
【請求項６】
前記順序情報処理タスク・リストにおける情報処理タスクについて後続処理を継続する際に、前記順序情報処理タスク・リストにおける前記情報処理タスクの後に位置する全ての情報処理タスクは、後続処理を継続せずに待機し、
前記情報処理タスクが確認された後に、前記情報処理タスクの直後の情報処理タスクについて後続処理を継続する、請求項１に記載の方法。
【請求項７】
要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするステップは、
同時実行リスクを有しない同時実行の情報処理タスクを前記タスク・バッファ・キューに順次バッファリングするステップ、を含む、請求項１に記載の方法。
【請求項８】
要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするステップは、
同時実行リスクを有しない同時実行の情報処理タスクの各情報処理タスクについて、前記脱中心化のデータ管理システムにおける処理ルールに従って各情報処理タスクを実行して得られた読み出し集合及び書き込み集合を、該情報処理タスクと対応付けて前記タスク・バッファ・キューにバッファリングするステップと、
前記順序情報処理タスク・リストについて、前記処理ルールに従って前記順序情報処理タスク・リストにおける１番目の情報処理タスクを実行して得られた読み出し集合及び書き込み集合のみを、該順序情報処理タスク・リストと対応付けて前記タスク・バッファ・キューにバッファリングするステップと、を含む、請求項１に記載の方法。
【請求項９】
脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する装置であって、前記脱中心化のデータ管理システムは、ユーザ端末と、ユーザ端末により開始された情報処理タスクを実行する複数の実行エンティティとを含み、前記ユーザ端末と前記複数の実行エンティティは同一のデータベースのコピーをそれぞれ持っており、前記情報処理タスクの実行結果のうち、前記ユーザ端末及び前記複数の実行エンティティにより共に承認された結果に基づいて、各データベースのコピーを更新する、装置であって、
ユーザ端末において前記複数の実行エンティティに複数の情報処理タスクの要求を送信する同時実行リスク検出手段であって、順序で並び替えられた少なくとも２つの情報処理タスクを含む順序情報処理タスク・リストにおける情報処理タスクは前記順序で前記複数の実行エンティティに送信され、前記順序情報処理タスク・リストは、要求される前記複数の情報処理タスクに対して同時実行リスクの検出を行うことによって生成される、同時実行リスク検出手段と、
要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするバッファリング手段であって、前記順序情報処理タスク・リストは一体として前記タスク・バッファ・キューにバッファリングされる、バッファリング手段と、
前記タスク・バッファ・キューにおける各情報処理タスクが所定の衝突条件を満たすか否かを判断する判断手段と、
前記タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが前記所定の衝突条件を満たすと判断された場合、該情報処理タスクを衝突タスク・キューに移動させ、前記所定の衝突条件が満たさなくなる場合、後続処理を継続するように、該情報処理タスクを前記衝突タスク・キューから削除して前記タスク・バッファ・キューにバッファリングする衝突処理手段と、を含む、装置。
【請求項１０】
コンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムが実行される際に、脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法を実現し、前記脱中心化のデータ管理システムは、ユーザ端末と、ユーザ端末により開始された情報処理タスクを実行する複数の実行エンティティとを含み、前記ユーザ端末と前記複数の実行エンティティは同一のデータベースのコピーをそれぞれ持っており、前記情報処理タスクの実行結果のうち、前記ユーザ端末及び前記複数の実行エンティティにより共に承認された結果に基づいて、各データベースのコピーを更新し、
前記方法は、
ユーザ端末が前記複数の実行エンティティに複数の情報処理タスクの要求を送信するステップであって、順序で並び替えられた少なくとも２つの情報処理タスクを含む順序情報処理タスク・リストにおける情報処理タスクは前記順序で前記複数の実行エンティティに送信され、前記順序情報処理タスク・リストは、要求される前記複数の情報処理タスクに対して同時実行リスクの検出を行うことによって生成される、ステップと、
要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするステップであって、前記順序情報処理タスク・リストは一体として前記タスク・バッファ・キューにバッファリングされる、ステップと、
前記タスク・バッファ・キューにおける各情報処理タスクが所定の衝突条件を満たすか否かを判断するステップと、
前記タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが前記所定の衝突条件を満たすと判断された場合、該情報処理タスクを衝突タスク・キューに移動させ、前記所定の衝突条件が満たさなくなる場合、後続処理を継続するように、該情報処理タスクを前記衝突タスク・キューから削除して前記タスク・バッファ・キューにバッファリングするステップと、を含む、記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理の分野に関し、具体的には、脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法及び装置に関する。
【背景技術】
【０００２】
脱中心化のデータ管理システムは、ユーザ端末と、ユーザ端末により開始された情報処理タスクを実行する複数の実行エンティティとを含み、ユーザ端末及び複数の実行エンティティは同一のデータベースのコピーをそれぞれ持っている。従来の脱中心化のデータ管理システムでは、情報処理タスクを実行する前に、情報処理タスクの同時実行リスク（ｃｏｎｃｕｒｒｅｎｃｙ  ｒｉｓｋ）を検出することはできない。よって、複数の情報処理タスクについて同一のデータを処理する場合、従来の脱中心化のデータ管理システムは警告情報がない。また、情報処理タスクの有効性について、従来の脱中心化のデータ管理システムは、ユーザ端末及び複数の実行エンティティにより共に承認された結果及び実行エンティティの状態データベースにおいて読み取りデータのバージョンが一致するか否かのみを検証する。従来の脱中心化のデータ管理システムは、読み取りデータのバージョン衝突の問題に対する解決策を提供していない。このため、情報処理タスクの検証の成功率は低い。
【０００３】
より具体的には、ブロックチェーン技術は、上述した脱中心化のデータ管理システムの一例である。近年、ビットコインの成功のため、ブロックチェーン技術は急速に発展している。ブロックチェーンは、分散型台帳とも称され、複数の互いに信頼していないノードによりデータを保存する構造である。ブロックチェーンにおける全てのノードがブロックの順序に同意し、各ブロックに幾つかのトランザクション情報が含まれているため、ブロックチェーンは複数の順序付けられたトランザクションとして見なされてもよい。現在、複数種類のブロックチェーン、例えばパブリック（ｐｕｂｌｉｃ）チェーン、プライベート（ｐｒｉｖａｔｅ）チェーン、及びコンソーシアム（ｃｏｎｓｏｒｔｉｕｍ）チェーンが存在する。
【０００４】
従来のコンソーシアムチェーンでは、異なるエンティティとの間で分散型台帳情報を保存することができる。しかし、従来のコンソーシアムチェーンは、上述した欠点がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以下は、本発明の態様を基本的に理解させるために、本発明の簡単な概要を説明する。なお、この簡単な概要は、本発明を網羅的な概要ではなく、本発明のポイント又は重要な部分を意図的に特定するものではなく、本発明の範囲を意図的に限定するものではなく、後述するより詳細的な説明の前文として、単なる概念を簡単な形で説明することを目的とする。
【０００６】
本発明は、上記の問題点を鑑み、従来技術の１つ又は複数の欠点を解決できる脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の１つの態様では、脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法であって、前記脱中心化のデータ管理システムは、ユーザ端末と、ユーザ端末により開始された情報処理タスクを実行する複数の実行エンティティとを含み、前記ユーザ端末と前記複数の実行エンティティは同一のデータベースのコピーをそれぞれ持っており、前記情報処理タスクの実行結果のうち、前記ユーザ端末及び前記複数の実行エンティティにより共に承認された結果に基づいて、各データベースのコピーを更新する、方法であって、ユーザ端末が前記複数の実行エンティティに複数の情報処理タスクの要求を送信するステップであって、順序で並び替えられた少なくとも２つの情報処理タスクを含む順序情報処理タスク・リストにおける情報処理タスクは前記順序で前記複数の実行エンティティに送信され、前記順序情報処理タスク・リストは、要求される前記複数の情報処理タスクに対して同時実行リスクの検出を行うことによって生成される、ステップと、要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするステップであって、前記順序情報処理タスク・リストは一体として前記タスク・バッファ・キューにバッファリングされる、ステップと、前記タスク・バッファ・キューにおける各情報処理タスクが所定の衝突条件を満たすか否かを判断するステップと、前記タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが前記所定の衝突条件を満たすと判断された場合、該情報処理タスクを衝突タスク・キューに移動させ、前記所定の衝突条件が満たさなくなる場合、後続処理を継続するように、該情報処理タスクを前記衝突タスク・キューから削除して前記タスク・バッファ・キューにバッファリングするステップと、を含む、方法を提供する。
【０００８】
本発明のもう１つの態様では、脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する装置であって、前記脱中心化のデータ管理システムは、ユーザ端末と、ユーザ端末により開始された情報処理タスクを実行する複数の実行エンティティとを含み、前記ユーザ端末と前記複数の実行エンティティは同一のデータベースのコピーをそれぞれ持っており、前記情報処理タスクの実行結果のうち、前記ユーザ端末及び前記複数の実行エンティティにより共に承認された結果に基づいて、各データベースのコピーを更新する、装置であって、ユーザ端末において前記複数の実行エンティティに複数の情報処理タスクの要求を送信する同時実行リスク検出手段であって、順序で並び替えられた少なくとも２つの情報処理タスクを含む順序情報処理タスク・リストにおける情報処理タスクは前記順序で前記複数の実行エンティティに送信され、前記順序情報処理タスク・リストは、要求される前記複数の情報処理タスクに対して同時実行リスクの検出を行うことによって生成される、同時実行リスク検出手段と、要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするバッファリング手段であって、前記順序情報処理タスク・リストは一体として前記タスク・バッファ・キューにバッファリングされる、バッファリング手段と、前記タスク・バッファ・キューにおける各情報処理タスクが所定の衝突条件を満たすか否かを判断する判断手段と、前記タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが前記所定の衝突条件を満たすと判断された場合、該情報処理タスクを衝突タスク・キューに移動させ、前記所定の衝突条件が満たさなくなる場合、後続処理を継続するように、該情報処理タスクを前記衝突タスク・キューから削除して前記タスク・バッファ・キューにバッファリングする衝突処理手段と、を含む、装置を提供する。
【０００９】
本発明のもう１つの態様では、コンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムが実行される際に、脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法を実現し、前記脱中心化のデータ管理システムは、ユーザ端末と、ユーザ端末により開始された情報処理タスクを実行する複数の実行エンティティとを含み、前記ユーザ端末と前記複数の実行エンティティは同一のデータベースのコピーをそれぞれ持っており、前記情報処理タスクの実行結果のうち、前記ユーザ端末及び前記複数の実行エンティティにより共に承認された結果に基づいて、各データベースのコピーを更新し、前記方法は、ユーザ端末が前記複数の実行エンティティに複数の情報処理タスクの要求を送信するステップであって、順序で並び替えられた少なくとも２つの情報処理タスクを含む順序情報処理タスク・リストにおける情報処理タスクは前記順序で前記複数の実行エンティティに送信され、前記順序情報処理タスク・リストは、要求される前記複数の情報処理タスクに対して同時実行リスクの検出を行うことによって生成される、ステップと、要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするステップであって、前記順序情報処理タスク・リストは一体として前記タスク・バッファ・キューにバッファリングされる、ステップと、前記タスク・バッファ・キューにおける各情報処理タスクが所定の衝突条件を満たすか否かを判断するステップと、前記タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが前記所定の衝突条件を満たすと判断された場合、該情報処理タスクを衝突タスク・キューに移動させ、前記所定の衝突条件が満たさなくなる場合、後続処理を継続するように、該情報処理タスクを前記衝突タスク・キューから削除して前記タスク・バッファ・キューにバッファリングするステップと、を含む、記憶媒体を提供する。
【００１０】
本発明の他の態様では、上記本発明の方法を実現するためのコンピュータプログラムコード及びコンピュータプログラムプロダクトをさらに提供する。
【００１１】
以下は、本発明の実施例の他の態様を説明し、特に本発明の好ましい実施例を詳細に説明するが、本発明はこれらの実施例に限定されない。
【図面の簡単な説明】
【００１２】
本発明の原理及び利点を理解させるために、図面を参照しながら本発明の各実施例を説明する。全ての図面において、同一又は類似の符号で同一又は類似の構成部を示している。ここで説明される図面は、好ましい実施例を例示するためのものであり、全ての可能な実施例ではなく、本発明の範囲を限定するものではない。
【図１】本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法の流れの一例を示すフローチャートである。
【図２】ユーザ端末ＡＰＰのソースコードの一例を示す図である。
【図３】本発明の実施例に係る静的コード解析の一例を示す図である。
【図４】本発明の実施例に係る同時実行リスクの検出処理の一例を示すフローチャートである。
【図５】本発明の実施例に係る情報処理タスクの有効性の管理処理の一例を示す図である。
【図６】本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する装置の機能的構成の一例を示すブロック図である。
【図７】本発明の実施例に適用可能なパーソナルコンピュータの例示的な構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら本発明の例示的な実施例を詳細に説明する。説明の便宜上、明細書には実際の実施形態の全ての特徴が示されていない。なお、実際に実施する際に、開発者の具体的な目標を実現するために、特定の実施形態を変更してもよい、例えばシステム及び業務に関する制限条件に応じて実施形態を変更してもよい。また、開発作業が非常に複雑であり、且つ時間がかかるが、本公開の当業者にとって、この開発作業は単なる例の作業である。
【００１４】
なお、本発明を明確にするために、図面には本発明に密に関連する装置の構成要件又は処理のステップのみが示され、本発明と関係のない細部が省略されている。
【００１５】
以下は、図面を参照しながら、本発明の実施例を詳細に説明する。
【００１６】
まず、図１を参照しながら、本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法１００の流れの一例を説明する。図１は本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法の流れの一例を示すフローチャートである。図１に示すように、本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法１００は、同時実行リスク検出ステップＳ１０２、バッファリングステップＳ１０４、判断ステップＳ１０６及び衝突処理ステップＳ１０８を含む。
【００１７】
脱中心化のデータ管理システムは、ユーザ端末と、ユーザ端末により開始された情報処理タスクを実行する複数の実行エンティティとを含み、ユーザ端末と複数の実行エンティティは同一のデータベースのコピーをそれぞれ持っており、情報処理タスクの実行結果のうち、ユーザ端末及び複数の実行エンティティにより共に承認された結果に基づいて各データベースのコピーを更新する。なお、該ユーザ端末は、上記の情報処理タスクを実行可能な実行エンティティであってもよいし、上記の複数の実行エンティティと同一のデータベースのコピーを持っており、且つ情報処理タスクを実行することができないエンティティであってもよい。
【００１８】
本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法１００はＳ１０１から始まる。
【００１９】
同時実行リスク検出ステップＳ１０２において、ユーザ端末が複数の実行エンティティに複数の情報処理タスクの要求を送信し、ここで、順序で並び替えられた少なくとも２つの情報処理タスクを含む順序情報処理タスク・リストにおける情報処理タスクを、該順序で複数の実行エンティティに送信し、順序情報処理タスク・リストは、要求される複数の情報処理タスクに対して同時実行リスクの検出を行うことによって生成される。
【００２０】
一例として、ユーザ端末及び複数の実行エンティティは、互いに信頼していない実行エンティティであってもよい。複数の情報処理タスクは、少なくとも２つの情報処理タスクを含む。
【００２１】
従来の脱中心化のデータ管理システムでは、ユーザ端末により送信された各情報処理タスクは、要求される実行エンティティにデフォルトで同時に送信される。上述した同時実行が発生した場合、情報処理タスクの実行順序が不確定であるため、情報処理タスクの実行結果は不確定であり、即ち同時実行リスクが存在する可能性はある。このため、所望の情報処理タスクの実行結果が得られない。
【００２２】
本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法１００では、複数の情報処理タスクを複数の実行エンティティに送信する前に、ユーザ端末において要求される複数の情報処理タスクに対して同時実行リスクの検出を行い、同時実行リスクを有する情報処理タスクを並び替えることで、順序で並び替えられた少なくとも２つの情報処理タスクを含む順序情報処理タスク・リストを生成する。一例として、情報処理タスクの重要度に基づいて情報処理タスクを並び替えてもよいが、当業者が他の方式で情報処理タスクを並び替えてもよい。そして、ユーザ端末において、順序情報処理タスク・リストにおける各情報処理タスクを、その順序情報処理タスク・リストにおける順序で複数の実行エンティティに送信することで、順序情報処理タスク・リストにおける同時実行リスクを有する情報処理タスクを該順序で順次送信することができるため、情報処理タスクを同時に送信することによる同時実行リスクを防止することができる。
【００２３】
バッファリングステップＳ１０４において、要求される複数の情報処理タスクをタスク・バッファ・キューにバッファリングし、ここで、順序情報処理タスク・リストを一体（全体）として該タスク・バッファ・キューにバッファリングする。
【００２４】
一例として、タスク・バッファ・キューは、先入れ先出し（ＦＩＦＯ）キューである。
【００２５】
バッファリングステップＳ１０４において、複数の情報処理タスクについて後続処理を継続する前に、ユーザ端末において複数の情報処理タスクをタスク・バッファ・キューにバッファリングする。タスクのバッファリングを行う際に、順序情報処理タスク・リストを一体としてタスク・バッファ・キューにバッファリングすることで、順序情報処理タスク・リストにおける情報処理タスクを複数の実行エンティティにより順次検証、確認することができ、即ち、順序情報処理タスク・リストにおける情報処理タスクが複数の実行エンティティにより同時に検証、確認され、所望の情報処理タスクの結果が得られないことを防止することができる。
【００２６】
判断ステップＳ１０６において、タスク・バッファ・キューにおける各情報処理タスクが所定の衝突条件を満たすか否かを判断する。
【００２７】
一例として、所定の衝突条件は、当業者により経験に基づいて予め設定された衝突条件であってもよい。以下は、情報処理タスクの読み出しデータと書き込みデータを参照しながら衝突条件を説明する。
【００２８】
衝突処理ステップＳ１０８において、タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが該所定の衝突条件を満たすと判断された場合、該情報処理タスクを衝突タスク・キューに移動させ、所定の衝突条件が満たさなくなる場合、後続処理を継続するように、該情報処理タスクを該衝突タスク・キューから削除して該タスク・バッファ・キューにバッファリングする。
【００２９】
一例として、衝突処理ステップＳ１０８において、所定の衝突条件を満たす情報処理タスクについて、衝突を回避するために以下の対策が用いられる。該情報処理タスクを衝突タスク・キューに移動させ、所定の衝突条件が満たさなくなる場合、該情報処理タスクを衝突タスク・キューから削除してタスク・バッファ・キューにバッファリングする。
【００３０】
本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法１００はＳ１０９において終了する。
【００３１】
コンソーシアムチェーンでは、上記の脱中心化のデータ管理システムの一例である。コンソーシアムチェーンに本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法１００が適用される場合は、上記の実行エンティティはコンソーシアムチェーンにおける実行ノードであり、上記の情報処理タスクはコンソーシアムチェーンにおけるトランザクションであり、上記のユーザ端末は実行ノードであってもよいし、上記の複数の実行ノードと同一のコードを持っており、且つトランザクションを実行することができないノードであってもよく、上記のユーザ端末及び複数の実行エンティティにより共に承認された結果はトランザクションを実行して得られた裏書き結果（ｅｎｄｏｒｓｅｍｅｎｔ  ｒｅｓｕｌｔ）であり、情報処理タスクが複数の実行エンティティにより検証、確認されることは、複数の実行ノードでトランザクションを検証、確認することを意味し、上記の後続処理はコンソーシアムチェーンにおける順序付けサービスであってもよいが、ここでコンソーシアムチェーンに適用される方法１００の説明を省略する。
【００３２】
上述したように、本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法１００は、脱中心化のデータ管理システムにおける情報処理タスクの同時実行リスクを検出することができ、順序情報処理タスク・リストにおける同時実行リスクを有する情報処理タスクをその順序で順次送信することで、情報処理タスクを同時に送信することによる同時実行リスクを防止することができる。タスクのバッファリングを行う際に、生成された順序情報処理タスク・リストを一体としてタスク・バッファ・キューにバッファリングすることで、順序情報処理タスク・リストにおける情報処理タスク同時に検証、確認されることを防止することができる。所定の衝突条件を満たす情報処理タスクについて、衝突を回避できる対策を採用することで、脱中心化のデータ管理システムにおける情報処理タスクの有効性を向上させることができる。
【００３３】
好ましくは、同時実行リスク検出ステップＳ１０２において、要求される複数の情報処理タスクに対して同時実行リスクの検出を行い、順序情報処理タスク・リストを生成するステップは、脱中心化のデータ管理システムにおける、情報処理タスクに関連する関数に対する静的コード解析により、要求される複数の情報処理タスクの各情報処理タスクを実行した実行結果を取得するステップと、要求される複数の情報処理タスクのうち任意の情報処理タスク・ペアについて、実行結果に基づいて同時実行リスクを決定するステップと、決定された各情報処理タスク・ペアの同時実行リスクに基づいて、情報処理タスクを並び替え、順序情報処理タスク・リストを生成するステップと、を含む。
【００３４】
一例として、脱中心化のデータ管理システムにおいて情報処理タスクを実行することは、関数の呼び出しを行うことを意味する。ユーザ（クライアント）端末ＡＰＰのソースコードには、情報処理タスクに関連する関数が含まれる。各情報処理タスクが関数をトリガする際に、関数のパラメータを提供する。ユーザ端末ＡＰＰのソースコードを解析することで、関数呼び出しの結果を取得することができる。関数呼び出しの結果は、読み出しデータ（リード・データ）及び書き込みデータ（ライト・データ）を含む。一例として、読み出しデータは読み出し集合（Ｒｅａｄ  ｓｅｔ）を含み、書き込みデータは書き込み集合（Ｗｒｉｔｅ  ｓｅｔ）を含む。例えば、情報処理タスクの実行結果（即ち関数呼び出しの結果）はＲｅａｄ  ｓｅｔ＝［（ｋｅｙ，ｖａｌｕｅ）］、Ｗｒｉｔｅ  ｓｅｔ＝［（ｋｅｙ，ｖａｌｕｅ）］のように表すことができ、ここで、ｋｅｙはキーを表し、ｖａｌｕｅはキー値を表す。即ち、読み出し集合及び書き込み集合は複数のペアをそれぞれ含んでもよく、各ペアは１つのキー及び１つのキー値を含む。また、ユーザ端末ＡＰＰのソースコードから書き込み集合におけるキー値ｖａｌｕｅのタイプｗｒｉｔｅＴｙｐｅをさらに取得してもよく、例えばｗｒｉｔｅＴｙｐｅは、「Ｂａｔｔｅｒｙ」、「Ｃａｒ」等であってもよい。以下は、説明の便宜上、Ｗｒｉｔｅ  ｓｅｔにおけるｋｅｙをライト・キー（ｗｒｉｔｅＫｅｙ）と表し、Ｒｅａｄ  ｓｅｔにおけるｋｅｙをリード・キー（ｒｅａｄＫｅｙ）と表す場合がある。
【００３５】
ユーザ端末及び複数の実行エンティティが同一のデータベースのコピーをそれぞれ持っている（即ち、ユーザ端末及び複数の実行エンティティが同一のソースコードを有する）ため、ユーザ端末が複数の情報処理タスクを複数の実行エンティティに送信する前に、ユーザ端末ＡＰＰのソースコードに基づいて、情報処理タスクに関連する関数に対して静的コード解析を行うことで、各情報処理タスクが実行される実行結果を取得してもよい（即ち、複数の実行エンティティで情報処理タスクを実行する前に、各情報処理タスクが実行される実行結果を予め取得してもよい）。なお、複数の実行エンティティで各情報処理タスクを実行する前に、静的コード解析により、各情報処理タスクが実行される実行結果を予め取得することの目的は、静的コード解析により得られた情報処理タスクの実行結果により、複数の情報処理タスクに対して上記の同時実行リスクの検出を行うことができるからである。
【００３６】
図２はユーザ端末ＡＰＰのソースコードの一例を示す図である。
【００３７】
図２の左部分は、ユーザ端末ＡＰＰのソースコードを示す。図２の中央部は、該ソースコードから抽出された情報処理タスクに関連する関数、例えばＦｕｎｃ１（ａｒｇｓ）、Ｆｕｎｃ２（ａｒｇｓ）を示し、ここで、Ｆｕｎｃ１及びＦｕｎｃ２は関数名であり、ａｒｇｓは関数のパラメータである。一例として、Ｆｕｎｃ１はソースコードにおける「ｒｅｍｏｖｅＢａｔｔｅｒｙ」であってもよく、Ｆｕｎｃ２はソースコードにおける「ｃｈａｎｇｅＢａｔｔｅｒｙ」であってもよい。図２の右部分は、ユーザ端末ＡＰＰのソースコードを解析して得られた情報処理タスクの実行結果、即ち関数呼び出しの結果を示し、例えば、結果は読み出し集合（Ｒｅａｄ  ｓｅｔ）及び書き込み集合（Ｗｒｉｔｅ  ｓｅｔ）を含む。また、図２に示すユーザ端末ＡＰＰのソースコードに基づいてｗｒｉｔｅＴｙｐｅを決定してもよく、例えば決定されたｗｒｉｔｅＴｙｐｅは「Ｂａｔｔｅｒｙ」である。
【００３８】
好ましくは、要求される複数の情報処理タスクの各情報処理タスクの実行結果を取得するステップは、脱中心化のデータ管理システムにおける、情報処理タスクに関連する関数に対して静的コード解析を行うことで、情報処理タスクに関連する関数を実行するための構文木を取得するステップと、構文木に基づいて、要求される複数の各情報処理タスクを実行した実行結果を取得するステップと、を含む。
【００３９】
図３は本発明の実施例に係る静的コード解析の一例を示す図である。図３において、関数ｃｈａｎｇｅＢａｔｔｅｒｙ（ａｒｇ１，ａｒｇ２）（ここで、ａｒｇ１及びａｒｇ２は関数のパラメータである）に対して静的コード解析を行うことで、該関数のために抽象構文木を生成する。生成された抽象構文木では、関数を実行するためのパス、パスの制約条件、及び全ての可能な実行結果が記録されている。図３に示すように、全ての可能な実行パスは、ｐａｔｈ１、ｐａｔｈ２及びｐａｔｈ３を含む。
【００４０】
ｐａｔｈ１の例では、図３に示すように、ｐａｔｈ１を実行するための条件（即ち、パス制約条件）は、ｃｏｎｄｉｔｉｏｎ（ｐａｔｈ１）：｛（ａｒｇ１＜１００）＆（ａｒｇ２＜５０）｝であり、即ち、ａｒｇ１＜１００且つａｒｇ２＜５０の条件で、パスｐａｔｈ１を実行する。
【００４１】
以下は、図３における各パスの可能な実行結果を説明する。
【００４２】
図３に示すように、ｐａｔｈ１の実行結果はＷｒｉｔｅ  ｓｅｔ［（ｋ１，ｖ１），…］である。上記のＷｒｉｔｅ  ｓｅｔがｗｒｉｔｅＫｅｙ及びｗｒｉｔｅＴｙｐｅと具体的に表される場合は、ｗｒｉｔｅＫｅｙ  ｓｅｔ＝｛ｋ１，…｝、ｗｒｉｔｅＴｙｐｅ  ｓｅｔ＝｛Ｂａｔｔｅｒｙ，…｝と表されてもよく、ここで、ｗｒｉｔｅＫｅｙ  ｓｅｔはｗｒｉｔｅＫｅｙの集合を表し、ｗｒｉｔｅＴｙｐｅ  ｓｅｔはｗｒｉｔｅＴｙｐｅの集合を表す。具体的には、ｐａｔｈ１の実行結果の書き込み集合は複数のペアを含み、各ペアは１つのキーと１つのキー値とを含む。一例として、図３では、ｐａｔｈ１の実行結果の書き込み集合に１つのペア（ｋ１，ｖ１）が含まれることのみを示し、該ペアにおいて、キーがｋ１であり、キー値がｖ１である。構文木によると、Ｂａｔｔｅｒｙをｖ１の型として取得できる。ｐａｔｈ１の実行結果の書き込み集合に含まれる他のペアについても、構文木に従ってキー値のタイプを取得することができる。従って、書き込み集合における全てのペアについて、ｗｒｉｔｅＫｅｙの集合とｗｒｉｔｅＴｙｐｅの集合は、ｗｒｉｔｅＫｅｙ  ｓｅｔ＝｛ｋ１，…｝、ｗｒｉｔｅＴｙｐｅ  ｓｅｔ＝｛Ｂａｔｔｅｒｙ，…}と表されてもよい。
【００４３】
図３に示すように、ｐａｔｈ２の実行結果はＷｒｉｔｅ  ｓｅｔ［（ｋ２，ｖ２），…］であり、ここで、ｋ２はキーであり、ｖ２はキー値である。上記のＷｒｉｔｅ  ｓｅｔがｗｒｉｔｅＫｅｙ及びｗｒｉｔｅＴｙｐｅと具体的に表される場合は、ｗｒｉｔｅＫｅｙ  ｓｅｔ＝｛ｋ２，…｝、ｗｒｉｔｅＴｙｐｅ  ｓｅｔ＝｛Ｃａｒ，…｝と表されてもよい。Ｃａｒはキー値ｖ２のタイプを表す。
【００４４】
ｐａｔｈ３には外部ＡＰＩ呼び出しが含まれているため、ｐａｔｈ３における破線枠で示すように、その２つの分岐（実行結果がＷｒｉｔｅ  ｓｅｔ［（ｋ３，ｖ３），…］及びＷｒｉｔｅ  ｓｅｔ［（ｋ４，ｖ４），…］という２つの分岐）は１つのパスとされる。即ち、ｐａｔｈ３の実行結果は、Ｗｒｉｔｅ  ｓｅｔ［（ｋ３，ｖ３），…］及びＷｒｉｔｅ  ｓｅｔ［（ｋ４，ｖ４），…］である。ここで、ｋ３はキーであり、ｖ３は対応するキー値であり、ｋ４はキーであり、ｖ４が対応するキー値である。
【００４５】
好ましくは、構文木に基づいて、要求される複数の各情報処理タスクを実行した実行結果を取得するステップは、構文木に基づいて、情報処理タスクに関連する関数の実行パス、実行パスの条件、及び全てのパスの実行結果を収集するステップと、要求される各情報処理タスクと実行パス及び実行パスの条件とのマッピングを行うことで、各情報処理タスクを実行した実行結果を取得するステップと、を含む。
【００４６】
上述したように、ＡＰＰソースコードに対して静的コード解析を行って得られた構文木は、情報処理タスクに関連する関数の実行パス、実行パスの条件、及び全てのパスの実行結果を含む。パラメータを持っている実行パスの条件（即ち、パス制約条件）とのマッピングを行うことで、候補の実行パスから該情報処理タスクの実行パスを決定することができる。これによって、構文木における決定された実行パスの実行結果を該情報処理タスク要求の実行結果とすることができる。
【００４７】
好ましくは、任意の情報処理タスク・ペアについて、実行結果に基づいて同時実行リスクを決定するステップは、情報処理タスク・ペアにおける各情報処理タスクの実行結果における書き込みデータの特性及び書き込みデータのタイプに基づいて、同時実行リスクのスコアを算出するステップ、を含む。
【００４８】
一例として、情報処理タスクの実行結果における書き込みデータの特性は書き込み集合におけるｗｒｉｔｅＫｅｙであってもよく、書き込み集合のタイプはｗｒｉｔｅＴｙｐｅであってもよい。
【００４９】
要求された複数の情報処理タスクがｔｘ１、ｔｘ２、…であると仮定する。
【００５０】
以下のように、２つの情報処理タスクｔｘ１とｔｘ２の間の同時実行リスクのスコア（ｃｏｎｃｕｒｒｅｎｃｙＲｉｓｋＳｃｏｒｅ）を算出する。
【数１】
2020013544.tif 000003
【００５１】
式（１）において、ｗｒｉｔｅＫｅｙ  ｓｅｔ（ｔｘ１）は、ｔｘ１のｗｒｉｔｅＫｅｙ  ｓｅｔを表し、ｗｒｉｔｅＴｙｐｅ  ｓｅｔ（ｔｘ１）は、ｔｘ１のｗｒｉｔｅＴｙｐｅ  ｓｅｔを表し、ｗｒｉｔｅＫｅｙ  ｓｅｔ（ｔｘ２）は、ｔｘ２のｗｒｉｔｅＫｅｙ  ｓｅｔを表し、ｗｒｉｔｅＴｙｐｅ  ｓｅｔ（ｔｘ２）は、Ｔｘ２のｗｒｉｔｅＴｙｐｅ  ｓｅｔを表す。また、ｔｙｐｅＣｏｎｆｉｌｃｔＳｃｏｒｅは、下記の式（２）で示されるタイプ衝突のスコアであり、ｗｅｉｇｈｔは重みを表す。
【００５２】
式（１）から分かるように、２つの情報処理タスクｔｘ１とｔｘ２のｗｒｉｔｅＫｅｙ  ｓｅｔの共通部分が存在する場合、即ち２つの情報処理タスクが同一のｗｒｉｔｅＫｅｙを有する場合、同時実行が発生する際に、情報処理タスクｔｘ１とｔｘ２の実行順序が不確定であるため、異なる値を同一のｗｒｉｔｅＫｅｙに書き込むことになり、必然的に同時実行のリスクがある。このように、２つの情報処理タスクｔｘ１とｔｘ２のｗｒｉｔｅＫｅｙ  ｓｅｔの共通部分が存在する場合、同時実行リスクのスコアは最高スコアである１００点である。
【００５３】
一例として、構文木によるｔｘ１の実行結果がＷｒｉｔｅ  ｓｅｔ  ［（ｋ１，ｖ１），（ｋ３，ｖ３），…］であり、即ちｗｒｉｔｅＫｅｙ  ｓｅｔ＝｛ｋ１，ｋ３｝であり、ｗｒｉｔｅＴｙｐｅ  ｓｅｔ＝｛Ｂａｔｔｅｒｙ，Ｃａｒ｝が得られ、構文木によるｔｘ２の実行結果がＷｒｉｔｅ  ｓｅｔ［（ｋ１，ｖ１’），（ｋ４，ｖ４），…］であり、即ちｗｒｉｔｅＫｅｙ  ｓｅｔ＝｛ｋ１，ｋ４｝であり、ｗｒｉｔｅＴｙｐｅ  ｓｅｔ＝｛Ｂａｔｔｅｒｙ，Ｂｕｓ｝が得られると仮定する。この例では、２つの情報処理タスクｔｘ１とｔｘ２のｗｒｉｔｅＫｅｙ  ｓｅｔの共通部分が存在し、即ち２つの情報処理タスクは同一のｗｒｉｔｅＫｅｙ＝ｋ１を有し、同時実行が発生した際に、情報処理タスクｔｘ１とｔｘ２の実行順序は不確定であるため、ｋ１をｖ１またはｖ１’と書き込むので、情報処理タスクｔｘ１とｔｘ２には必然的に同時実行リスクがある。
【００５４】
また、式（１）から分かるように、２つの情報処理タスクｔｘ１とｔｘ２のｗｒｉｔｅＫｅｙ  ｓｅｔの共通部分がなく、且つｗｒｉｔｅＴｙｐｅ  ｓｅｔの共通部分がない場合、即ち２つの情報処理タスクが同一のｗｒｉｔｅＫｅｙ及びｗｒｉｔｅＴｙｐｅを有しない場合、情報処理タスクｔｘ１及びｔｘ２は同一のｗｒｉｔｅＫｅｙ及びｗｒｉｔｅＴｙｐｅに対して書き込みを行わないため、同時実行が発生しても、同時実行のリスクがない。このように、２つの情報処理タスクｔｘ１とｔｘ２が同一のｗｒｉｔｅＫｅｙ及びｗｒｉｔｅＴｙｐｅを有しない場合、同時実行リスクのスコアは０点である。
【００５５】
また、式（１）から分かるように、２つの情報処理タスクｔｘ１とｔｘ２のｗｒｉｔｅＫｅｙ  ｓｅｔの共通部分がなく、且つｗｒｉｔｅＴｙｐｅ  ｓｅｔの共通部分がある場合、即ち２つの情報処理タスクが同一のｗｒｉｔｅＫｅｙを有せず、且つ同一のｗｒｉｔｅＴｙｐｅを有する場合、情報処理タスクｔｘ１及びｔｘ２はある程度の同時実行のリスクがある。一例として、２つの情報処理タスクが同一のｗｒｉｔｅＴｐｙｅ＝Ｂａｔｔｅｒｙを有する場合、２つの情報処理タスクは、キー値タイプがＢａｔｔｅｒｙの同一のｗｒｉｔｅＫｅｙに異なる値を書き込む可能性があるため、ある程度の同時実行のリスクがある。この場合の同時実行リスクのスコアは、タイプ衝突スコアｔｙｐｅＣｏｎｆｉｌｃｔＳｃｏｒｅと重みｗｅｉｇｈｔとの積で表してもよい。ここで、重みｗｅｉｇｈｔは、当業者が経験に基づいて予め設定されてもよい。また、タイプ衝突スコアｔｙｐｅＣｏｎｆｉｌｃｔＳｃｏｒｅは、式（２）に示す通りである。
【数２】
2020013544.tif 000004
【００５６】
式（２）において、ｃｏｕｎｔ（ｗｒｉｔｅＴｙｐｅ  ｓｅｔ（ｔｘ１）∩ｗｒｉｔｅＴｙｐｅ  ｓｅｔ（ｔｘ２））は、情報処理タスクｔｘ１のｗｒｉｔｅＴｙｐｅ  ｓｅｔとｔｘ２のｗｒｉｔｅＴｙｐｅ  ｓｅｔにおける同一のｗｒｉｔｅＴｙｐｅの数を表し、ｃｏｕｎｔ（ｗｒｉｔｅＴｙｐｅ  ｓｅｔ（ｔｘ１）∪ｗｒｉｔｅＴｙｐｅ  ｓｅｔ（ｔｘ２））は、情報処理タスクｔｘ１のｗｒｉｔｅＴｙｐｅ  ｓｅｔとｔｘ２のｗｒｉｔｅＴｙｐｅ  ｓｅｔにおけるｗｒｉｔｅＴｙｐｅの総数を表す。式（２）から分かるように、情報処理タスクｔｘ１及びｔｘ２における同一のｗｒｉｔｅＴｙｐｅの数が大きいほど、タイプ衝突スコアｔｙｐｅＣｏｎｆｉｌｃｔＳｃｏｒｅが高くなる。
【００５７】
上述したように、本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法１００は、複数実行エンティティにおいて情報処理タスクを動的に実行する前に、静的コード解析により情報処理タスクの同時実行リスクを検出することができる。
【００５８】
本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法１００における同時実行リスクの検出処理をより明確に説明するために、図４を参照しながら本発明の実施例に係る同時実行リスクの検出処理の一例を説明する。
【００５９】
図４に示すように、ステップＳ４０１において、ユーザ端末ＡＰＰにおいて、情報処理タスクに関連する関数に対して静的コード解析を行い、構文木を生成する。ステップＳ４０２において、構文木に基づいて、要求された各情報処理タスクのペアに対して同時実行リスクの検出を行う。ステップＳ４０３において、要求された各情報処理タスクのペアについて決定された同時実行リスクに基づいて情報処理タスクのペアを並び替えることで、順序情報処理タスク・リストを生成し、順序での送信により生成された順序情報処理タスク・リストにおける情報処理タスクを開発者に推奨する。開発者は、ユーザ端末のＡＰＰのコードを調整して順序情報処理タスク・リストを設定してもよく、これによって、ユーザ端末のＡＰＰでは、脱中心化のデータ管理システムにおける実行エンティティに順序情報処理タスク・リストにおける情報処理タスクをその順序で送信することで、情報処理タスクの同時実行リスクを回避することができる。同時実行リスクを有しない情報処理タスクについては、実行エンティティにこれらの同時実行リスクを有しない情報処理タスクを同時並行で送信してもよい。
【００６０】
コンソーシアムチェーンに本発明の実施例の方法１００を適用して情報処理タスクの同時実行リスクを検出する場合は、上記の情報処理タスクの実行結果はコンソーシアムチェーンにおける裏書き結果であり、ここでコンソーシアムチェーンにおける情報処理タスクの同時実行リスクの検出方法の重複説明を省略する。
【００６１】
以下は、図５を参照しながら方法１００におけるバッファリングステップＳ１０４乃至衝突処理ステップＳ１０８における処理を説明する。図５は本発明の実施例に係る情報処理タスクの有効性の管理処理の一例を示す図である。
【００６２】
図５における（１）に示すように、ユーザ端末ＡＰＰは脱中心化のデータ管理システムにおける複数の実行エンティティに情報処理タスクを送信する。
【００６３】
一例として、図５では、ｔｘ１、ｔｘ２、ｔｘ３、ｔｘ４、ｔｘ５及びｔｘ６の６つの情報処理タスクがあり、ここで、ｔｘ５及びｔｘ６が同時実行リスクを有する情報処理タスクのペアであると仮定する。同時実行リスク検出ステップＳ１０２において、静的コード解析により同時実行リスクを有する情報処理タスクのペアを検出し、ｔｘ５及びｔｘ６を並び替え、その順序で並び替えられた２つの情報処理タスクｔｘ５及びｔｘ６を含む順序情報処理タスク・リストを生成する。ユーザ端末は、ｔｘ５及びｔｘ６をその順序で複数の実行エンティティに送信し、同時実行リスクを有しないｔｘ１、ｔｘ２、ｔｘ３及びｔｘ４を複数の実行エンティティに同時に送信する。
【００６４】
図５の（２）に示すように、情報処理タスクを受信した複数の実行エンティティは、複数の情報処理タスクを受信した後に、情報処理タスクを動的に実行して情報処理タスクの実行結果を生成する。ユーザ端末は、複数の実行エンティティから返送された実行結果を受信する。具体的には、情報処理タスクの実行結果は、読み出し集合及び書き込み集合（Ｒｅａｄ  ｓｅｔとＷｒｉｔｅ  ｓｅｔ）を含む。
【００６５】
好ましくは、バッファリングステップＳ１０４において、要求された複数の情報処理タスクをタスク・バッファ・キューにバッファリングし、具体的には、同時実行リスクを有しない情報処理タスクをタスク・バッファ・キューに順次バッファリングする。
【００６６】
図５に示すように、同時実行リスクを有しない同時実行の情報処理タスクｔｘ１、ｔｘ２、ｔｘ３及びｔｘ４をタスク・バッファ・キューに順次バッファリングする。
【００６７】
また、上述したバッファリングステップＳ１０４において、順序情報処理タスク・リスト（ｔｘ５とｔｘ６）を一体としてタスク・バッファ・キューにバッファリングする。
【００６８】
図５に示すように、タスク・バッファ・キューには、情報処理タスクｔｘ１、ｔｘ２、ｔｘ３、ｔｘ４、（ｔｘ５とｔｘ６）が順次バッファリングされている。
【００６９】
好ましくは、バッファリングステップＳ１０４において、要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするステップは、同時実行リスクを有しない同時実行の情報処理タスクの各情報処理タスクについて、脱中心化のデータ管理システムにおける処理ルールに従って各情報処理タスクを実行して得られた読み出し集合及び書き込み集合を、該情報処理タスクと対応付けてタスク・バッファ・キューにバッファリングするステップと、順序情報処理タスク・リストについて、処理ルールに従って順序情報処理タスク・リストにおける１番目の情報処理タスクを実行して得られた読み出し集合及び書き込み集合のみを、該順序情報処理タスク・リストと対応付けてタスク・バッファ・キューにバッファリングするステップと、を含む。即ち、図５の（３）に示すように、要求される情報処理タスクを読み出し集合及び書き込み集合と共にタスク・バッファ・キューにバッファリングする。
【００７０】
一例として、同時実行リスクを有しない同時実行の情報処理タスクｔｘ１、ｔｘ２、ｔｘ３及びｔｘ４について、各タスクを実行して得られた読み出し集合及び書き込み集合を、該情報処理タスクと対応付けてタスク・バッファ・キューにバッファリングする。図５における「リード・キー／ライト・キーのリスト」に示すように、ｔｘ１について読み取り操作がないため、ｔｘ１のｒｅａｄＫｅｙは空であり、また、ｔｘ１のｗｒｉｔｅＫｅｙはＫ１であり、ｔｘ２について読み取り操作がないため、ｔｘ２のｒｅａｄＫｅｙは空であり、また、ｔｘ２のｗｒｉｔｅＫｅｙはＫ２であり、ｔｘ３のｒｅａｄＫｅｙはＫ１であり、ｗｒｉｔｅＫｅｙはＫ３であり、ｔｘ４のｒｅａｄＫｅｙはＫ２であり、ｗｒｉｔｅＫｅｙはＫ４である。
【００７１】
一例として、ｔｘ５とｔｘ６を含む順序情報処理タスク・リストについて、該順序情報処理タスク・リストを一体としてタスク・バッファ・キューにバッファリングするため、該順序情報処理タスク・リストにおける１番目の情報処理タスクｔｘ５を実行して得られた読み出し集合及び書き込み集合のみを、該順序情報処理タスク・リストと対応付けてタスク・バッファ・キューにバッファリングする。図５における「リード・キー／ライト・キーのリスト」に示すように、ｔｘ５のｒｅａｄＫｅｙはＫ２であり、ｗｒｉｔｅＫｅｙはＫ５である。
【００７２】
確認待ちの情報処理タスクの集合を設定する。確認待ちの情報処理タスクの集合は、最初で空集合である。
【００７３】
好ましくは、判断ステップＳ１０６において、タスク・バッファ・キューにおける情報処理タスクが所定の衝突条件を満たすか否かを判断するステップは、情報処理タスクが確認待ちの情報処理タスクの集合に含まれる全ての情報処理タスクと衝突しない場合、情報処理タスクが所定の衝突条件を満たさないと判断するステップと、情報処理タスクが確認待ちの情報処理タスクの集合に含まれる任意の情報処理タスクと衝突する場合、情報処理タスクが所定の衝突条件を満たすと判断するステップと、を含む。
【００７４】
好ましくは、タスク・バッファ・キューにおける情報処理タスクが所定の衝突条件を満たすか否かを判断するステップは、脱中心化のデータ管理システムにおける処理ルールに従って情報処理タスクを実行して得られた読み出しデータと、処理ルールに従って確認待ちの情報処理タスクの集合に含まれる情報処理タスクを実行して得られた書き込みデータの全てと異なる場合、情報処理タスクが所定の衝突条件を満たさないと判断するステップと、処理ルールに従って情報処理タスクを実行して得られた読み出しデータと、処理ルールに従って確認待ちの情報処理タスクの集合に含まれる情報処理タスクを実行して得られた書き込みデータの何れかと同一である場合、情報処理タスクが所定の衝突条件を満たすと判断するステップと、をさらに含む。
【００７５】
上述したように、図５に示すタスク・バッファ・キューには、情報処理タスクｔｘ１、ｔｘ２、ｔｘ３、ｔｘ４、（ｔｘ５とｔｘ６）が順次バッファリングされている。確認待ちの情報処理タスクの集合が最初で空集合であり、タスク・バッファ・キューにおける１番目及び２番目の情報処理タスクｔｘ１及びｔｘ２が何れもリード・キーを有しないため、バッファリングされている情報処理タスクｔｘ１及びｔｘ２は上記の読み出しと書き込みの衝突条件を満たさない。
【００７６】
一例として、脱中心化のデータ管理システムがコンソーシアムチェーンである場合は、情報処理タスクを実行して得られた実行結果は裏書き結果であり、確認待ちの情報処理タスクの集合は、トランザクション検証段階においてノードにより検証、確認されるべきトランザクションの集合であり、脱中心化のデータ管理システムにおける処理ルールに従って情報処理タスクを実行することは、情報処理タスクに対してチェーンコードを実行することに相当する。情報処理タスクに対してチェーンコードを実行して得られたリード・キーと確認待ちの情報処理タスクの集合に含まれる情報処理タスクに対してチェーンコードを実行して得られたライト・キーの全てと異なる場合、情報処理タスクが所定の衝突条件を満たさないと判断する。情報処理タスクに対してチェーンコードを実行して得られたリード・キーと確認待ちの情報処理タスクの集合に含まれる情報処理タスクに対してチェーンコードを実行して得られたライト・キーの何れかと同一である場合、情報処理タスクが所定の衝突条件を満たすと判断する。
【００７７】
上述したように、情報処理タスクを実行して得られた読み出しデータと、確認待ちの情報処理タスクの集合に含まれる情報処理タスクを実行して得られた書き込みデータとを比較することで、情報処理タスクが所定の衝突条件を満たすと判断することができる。また、衝突処理ステップＳ１０８における処理によれば、上記の読み出しと書き込みの衝突を有する情報処理タスクを衝突タスク・キューに移動させることで、衝突を回避することができる。
【００７８】
好ましくは、衝突処理ステップＳ１０８において、タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが所定の衝突条件を満たさないと判断された場合、該情報処理タスクについて後続処理を継続する。
【００７９】
一例として、図５の（４）−１に示すように、情報処理タスクｔｘ１及びｔｘ２について後続処理を継続する。
【００８０】
脱中心化のデータ管理システムがコンソーシアムチェーンである場合は、上記の後続処理は順序付けサービスであってもよい。即ち、衝突処理ステップＳ１０８において、該情報処理タスクが所定の衝突条件を満たさないと判断された場合、該情報処理タスクを順序付けサービスに送信する。
【００８１】
好ましくは、衝突処理ステップＳ１０８において、タスク・バッファ・キューにおける情報処理タスクについて後続処理を継続すると共に、送信された情報処理タスクを確認待ちの情報処理タスクの集合に追加し、確認待ちの情報処理タスクの集合を更新する。
【００８２】
一例として、図５の（４）−２に示すように、情報処理タスクｔｘ１及びｔｘ２を確認待ちの情報処理タスクの集合に追加し、確認待ちの情報処理タスクの集合を更新する。即ち、更新された確認待ちの情報処理タスクの集合はｔｘ１及びｔｘ２を含み、ｔｘ１のライト・キーはＫ１であり、ｔｘ２のライト・キーはＫ２である。
【００８３】
タスク・バッファ・キューに残っている情報処理タスクｔｘ３、ｔｘ４、及び（ｔｘ５とｔｘ６）について、ｔｘ３のリード・キーＫ１が更新された確認待ちの情報処理タスクの集合におけるｔｘ１のライト・キーＫ１と同一であるため、ｔｘ３が上記の所定衝突条件を満たすと判断され、上記の衝突処理ステップＳ１０８において、ｔｘ３を衝突タスク・キューに移動させる。ｔｘ４のリード・キーＫ２が更新された確認待ちの情報処理タスクの集合におけるｔｘ２のライト・キーＫ２と同一であるため、ｔｘ４が上記の所定衝突条件を満たすと判断され、ｔｘ４を衝突タスク・キューに移動させる。ｔｘ５のリード・キーＫ２が更新された確認待ちの情報処理タスクの集合におけるｔｘ２のライト・キーＫ２と同一であるため、ｔｘ５が上記の所定衝突条件を満たすと判断され、順序情報処理タスク・リスト（ｔｘ５とｔｘ６）を衝突タスク・キューに移動させる。即ち、図５の（５）に示すように、ｔｘ３、ｔｘ４及び（ｔｘ５とｔｘ６）の全てを衝突タスク・キューに移動させる。
【００８４】
好ましくは、衝突処理ステップＳ１０８において、後続処理が継続された情報処理タスクが複数の実行エンティティにより検証、確認された後に、確認待ちの情報処理タスクの集合から確認された情報処理タスクを削除して確認待ちの情報処理タスクの集合を更新し、衝突タスク・キューから、確認された情報処理タスクと衝突する情報処理タスクを削除して該削除された情報処理タスクをタスク・バッファ・キューにバッファリングする。
【００８５】
一例として、図５の（６）に示すように、ユーザ端末及び複数の実行エンティティにおいて、後続処理が継続された情報処理タスクｔｘ１及びｔｘ２を検証、確認する。一例として、ユーザ端末及び複数の実行エンティティは、まずｔｘ１を検証、確認し、ｔｘ１の実行結果をローカルデータ状態データベースに保存し、即ちユーザ端末及び複数の実行エンティティにより共に承認されたｔｘ１の実行結果に基づいて、ユーザ端末及び複数の実行エンティティによって保持されているデータベースのコピーを更新する。
【００８６】
ユーザ端末及び複数の実行エンティティが情報処理タスクｔｘ１を検証、確認した後に、図５の（７）に示すように、複数の実行エンティティはタスク検証成功メッセージを送信し、例えばｔｘ１に関するタスク検証成功メッセージを送信する。ユーザ端末は、該タスク検証成功メッセージを受信した後に、確認待ちの情報処理タスクの集合から確認された情報処理タスクｔｘ１を削除することにより、確認待ちの情報処理タスクの集合はｔｘ２のみを含み、衝突タスク・キューにおける情報処理タスクの衝突が解消された。例えば、衝突タスク・キューにおけるｔｘ３が確認待ちの情報処理タスクの集合における情報処理タスクと衝突しなくなる。このため、図５の（８）に示すように、衝突タスク・キューから、確認された情報処理タスクｔｘ１と衝突する情報処理タスクｔｘ３を削除して該削除された情報処理タスクｔｘ３をタスク・バッファ・キューにバッファリングする。
【００８７】
一例として、衝突したタスク（例えばｔｘ３）をタスク・バッファ・キューに再びバッファリングした後に、複数の実行エンティティにおいて該再びバッファリングされたタスク（例えばｔｘ３）を再び実行し、実行結果を取得し、実行結果に基づいて、該再びバッファリングされたタスクについて後続処理を直接実行できるか否かを再び判断する。即ち、該再びバッファリングされたタスク（例えばｔｘ３）について、図５における（２）〜（８）の方法を繰り返し使用する。
【００８８】
好ましくは、衝突処理ステップＳ１０８において、順序情報処理タスク・リストにおける情報処理タスクについて後続処理を継続する際に、順序情報処理タスク・リストにおける情報処理タスクの後に位置する全ての情報処理タスクは、後続処理を継続せずに待機し、情報処理タスクが確認された後に、情報処理タスクの直後の情報処理タスクについて後続処理を継続する。
【００８９】
一例として、図５における順序情報処理タスク・リスト（ｔｘ５とｔｘ６）における情報処理タスクｔｘ５について後続処理を継続する際に、情報処理タスクｔｘ５の後に位置する情報処理タスクは、後続処理を継続せずに待機し、情報処理タスクｔｘが確認された後に、情報処理タスクｔｘ５の直後の情報処理タスクｔｘ６について後続処理を継続する。
【００９０】
これによって、順序情報処理タスク・リストにおける情報処理タスクを同時に検証、確認することではなく、順次検証、確認することができるため、脱中心化のデータ管理システムにおける情報処理タスクの有効性を向上させることができる。
【００９１】
一例として、本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法１００は、医療ブロックチェーンに適用されてもよい。ブロックチェーンの参加エンティティは、病院、保険会社、及び個人を含む。即ち、病院、保険会社、及び個人に配置されているコンピュータは、ブロックチェーンにおける実行ノードであってもよい。複数の病院が存在してもよく、各病院は自分の病院の患者の診断データを保持している。個人は自分の全ての病院における診断データを保持している。病院の診断データと個人の診断データのハッシュ値（ハッシュ値を保存すると、データ量を減らすことができる）は共にブロックチェーンに保存されている。病院及び個人によって保存されている過去の医療記録は、改ざん不可、且つ脱中心化のものである。病院間でデータを共有したい場合は、相手方の同意を得るためにトランザクションを開始する必要がある。病院が個人のデータを取得したい場合、相手方の同意を得るためにトランザクションも開始する必要がある。全てのデータの使用履歴は、ブロックチェーンに記録されている。保険会社は、トランザクションを開始し、病院又は個人から過去の医療記録を入手して、医療保険の優遇計画を立てることができる。例えば、病院、保険会社及び個人は、図４のユーザ端末を含んでもよい。
【００９２】
また、本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法１００は、サプライチェーンに適用されてもよい。例えば、輸入牛肉の食品由来の追跡システムを一例にして説明する。ブロックチェーンの参加エンティティは、牛の牧場、牛肉生産会社、運輸会社、販売会社等を含む。各企業は独自のノードを維持し、牛肉の全ての状態を保存する。牛肉生産の全てのステップは、ブロックチェーンに保持されている。ブロックチェーン上のデータは、脱中心化、且つ改ざん不可のものである。牛肉に食品の安全性の問題が発生した場合は、ブロックチェーンにより由来を追跡することで、問題の原因となる会社を発見することができる。
【００９３】
脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法と同様に、本発明は、脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する装置６００をさらに提供する。
【００９４】
図６は本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する装置６００の機能的構成の一例を示すブロック図である。
【００９５】
図６に示すように、本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する装置６００は、同時実行リスク検出部６０２、バッファリング部６０４、判断部６０６及び衝突処理部６０８を含む。以下は、同時実行リスク検出部６０２、バッファリング部６０４、判断部６０６及び衝突処理部６０８の機能的構成の例を説明する。
【００９６】
脱中心化のデータ管理システムは、ユーザ端末と、ユーザ端末により開始された情報処理タスクを実行する複数の実行エンティティとを含み、ユーザ端末と複数の実行エンティティは同一のデータベースのコピーをそれぞれ持っており、情報処理タスクの実行結果のうち、ユーザ端末及び複数の実行エンティティにより共に承認された結果に基づいて各データベースのコピーを更新する。
【００９７】
同時実行リスク検出部６０２は、ユーザ端末で複数の実行エンティティに複数の情報処理タスクの要求を送信し、ここで、順序で並び替えられた少なくとも２つの情報処理タスクを含む順序情報処理タスク・リストにおける情報処理タスクを、該順序で複数の実行エンティティに送信し、順序情報処理タスク・リストは、要求される複数の情報処理タスクに対して同時実行リスクの検出を行うことによって生成される。
【００９８】
一例として、ユーザ端末及び複数の実行エンティティは、互いに信頼していない実行エンティティであってもよい。複数の情報処理タスクは、少なくとも２つの情報処理タスクを含む。
【００９９】
従来の脱中心化のデータ管理システムでは、ユーザ端末により送信された各情報処理タスクは、要求される実行エンティティにデフォルトで同時に送信される。上述した同時実行が発生した場合、情報処理タスクの実行順序が不確定であるため、情報処理タスクの実行結果は不確定であり、即ち同時実行リスクが存在する可能性はある。このため、所望の情報処理タスクの実行結果が得られない。
【０１００】
本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する装置６００では、複数の情報処理タスクを複数の実行エンティティに送信する前に、ユーザ端末において要求される複数の情報処理タスクに対して同時実行リスクの検出を行い、同時実行リスクを有する情報処理タスクを並び替えることで、順序で並び替えられた少なくとも２つの情報処理タスクを含む順序情報処理タスク・リストを生成する。一例として、情報処理タスクの重要度に基づいて情報処理タスクを並び替えてもよいが、当業者が他の方式で情報処理タスクを並び替えてもよい。そして、ユーザ端末において、順序情報処理タスク・リストにおける各情報処理タスクを、その順序情報処理タスク・リストにおける順序で複数の実行エンティティに送信することで、順序情報処理タスク・リストにおける同時実行リスクを有する情報処理タスクを該順序で順次送信することができるため、情報処理タスクを同時に送信することによる同時実行リスクを防止することができる。
【０１０１】
バッファリング部６０４は、要求される複数の情報処理タスクをタスク・バッファ・キューにバッファリングし、ここで、順序情報処理タスク・リストを一体（全体）として該タスク・バッファ・キューにバッファリングしてもよい。
【０１０２】
一例として、タスク・バッファ・キューは、先入れ先出し（ＦＩＦＯ）キューである。
【０１０３】
バッファリング部６０４は、複数の情報処理タスクについて後続処理を継続する前に、ユーザ端末において複数の情報処理タスクをタスク・バッファ・キューにバッファリングする。タスクのバッファリングを行う際に、順序情報処理タスク・リストを一体としてタスク・バッファ・キューにバッファリングすることで、順序情報処理タスク・リストにおける情報処理タスクを複数の実行エンティティにより順次検証、確認することができ、即ち、順序情報処理タスク・リストにおける情報処理タスクが複数の実行エンティティにより同時に検証、確認され、所望の情報処理タスクの結果が得られないことを防止することができる。
【０１０４】
判断部６０６は、タスク・バッファ・キューにおける各情報処理タスクが所定の衝突条件を満たすか否かを判断する。
【０１０５】
一例として、所定の衝突条件は、当業者により経験に基づいて予め設定された衝突条件であってもよい。
【０１０６】
衝突処理部６０８は、タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが該所定の衝突条件を満たすと判断された場合、該情報処理タスクを衝突タスク・キューに移動させ、所定の衝突条件が満たさなくなる場合、後続処理を継続するように、該情報処理タスクを該衝突タスク・キューから削除して該タスク・バッファ・キューにバッファリングする。
【０１０７】
一例として、衝突処理部６０８は、所定の衝突条件を満たす情報処理タスクについて、衝突を回避するために以下の対策が用いられる。該情報処理タスクを衝突タスク・キューに移動させ、所定の衝突条件が満たさなくなる場合、該情報処理タスクを衝突タスク・キューから削除してタスク・バッファ・キューにバッファリングする。
【０１０８】
上述したように、本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する装置６００は、脱中心化のデータ管理システムにおける情報処理タスクの同時実行リスクを検出することができ、順序情報処理タスク・リストにおける同時実行リスクを有する情報処理タスクをその順序で順次送信することで、情報処理タスクを同時に送信することによる同時実行リスクを防止することができる。タスクのバッファリングを行う際に、生成された順序情報処理タスク・リストを一体としてタスク・バッファ・キューにバッファリングすることで、順序情報処理タスク・リストにおける情報処理タスク同時に検証、確認されることを防止することができる。所定の衝突条件を満たす情報処理タスクについて、衝突を回避できる対策を採用することで、脱中心化のデータ管理システムにおける情報処理タスクの有効性を向上させることができる。
【０１０９】
好ましくは、同時実行リスク検出部６０２は、脱中心化のデータ管理システムにおける、情報処理タスクに関連する関数に対する静的コード解析により、要求される複数の情報処理タスクの各情報処理タスクを実行した実行結果を取得し、要求される複数の情報処理タスクのうち任意の情報処理タスク・ペアについて、実行結果に基づいて同時実行リスクを決定するステップと、決定された各情報処理タスク・ペアの同時実行リスクに基づいて、情報処理タスクを並び替え、順序情報処理タスク・リストを生成する。
【０１１０】
好ましくは、同時実行リスク検出部６０２は、脱中心化のデータ管理システムにおける、情報処理タスクに関連する関数に対して静的コード解析を行うことで、情報処理タスクに関連する関数を実行するための構文木を取得し、構文木に基づいて、要求される複数の各情報処理タスクを実行した実行結果を取得する。
【０１１１】
好ましくは、同時実行リスク検出部６０２は、構文木に基づいて、情報処理タスクに関連する関数の実行パス、実行パスの条件、及び全てのパスの実行結果を収集し、要求される各情報処理タスクと実行パス及び実行パスの条件とのマッピングを行うことで、各情報処理タスクを実行した実行結果を取得する。
【０１１２】
好ましくは、同時実行リスク検出部６０２は、情報処理タスク・ペアにおける各情報処理タスクの実行結果における書き込みデータの特性及び書き込みデータのタイプに基づいて、同時実行リスクのスコアを算出する。
【０１１３】
上述したように、本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する装置６００は、複数実行エンティティにおいて情報処理タスクを動的に実行する前に、静的コード解析により情報処理タスクの同時実行リスクを検出することができる。
【０１１４】
同時実行リスク検出部６０２における上記処理の具体例は、上記方法の実施例の対応部分、例えば同時実行リスク検出ステップＳ１０２及び図４の説明を参照してもよく、ここで重複の説明を省略する。
【０１１５】
好ましくは、バッファリング部６０４は、同時実行リスクを有しない情報処理タスクをタスク・バッファ・キューに順次バッファリングする。
【０１１６】
好ましくは、バッファリング部６０４は、同時実行リスクを有しない同時実行の情報処理タスクの各情報処理タスクについて、脱中心化のデータ管理システムにおける処理ルールに従って各情報処理タスクを実行して得られた読み出し集合及び書き込み集合を、該情報処理タスクと対応付けてタスク・バッファ・キューにバッファリングし、順序情報処理タスク・リストについて、処理ルールに従って順序情報処理タスク・リストにおける１番目の情報処理タスクを実行して得られた読み出し集合及び書き込み集合のみを、該順序情報処理タスク・リストと対応付けてタスク・バッファ・キューにバッファリングする。
【０１１７】
バッファリング部６０４における上記処理の具体例は、上記方法の実施例の対応部分、例えばバッファリングステップＳ１０４及び図５の説明を参照してもよく、ここで重複の説明を省略する。
【０１１８】
好ましくは、判断部６０６は、情報処理タスクが確認待ちの情報処理タスクの集合に含まれる全ての情報処理タスクと衝突しない場合、情報処理タスクが所定の衝突条件を満たさないと判断し、情報処理タスクが確認待ちの情報処理タスクの集合に含まれる任意の情報処理タスクと衝突する場合、情報処理タスクが所定の衝突条件を満たすと判断する。
【０１１９】
好ましくは、判断部６０６は、脱中心化のデータ管理システムにおける処理ルールに従って情報処理タスクを実行して得られた読み出しデータと、処理ルールに従って確認待ちの情報処理タスクの集合に含まれる情報処理タスクを実行して得られた書き込みデータの全てと異なる場合、情報処理タスクが所定の衝突条件を満たさないと判断し、処理ルールに従って情報処理タスクを実行して得られた読み出しデータと、処理ルールに従って確認待ちの情報処理タスクの集合に含まれる情報処理タスクを実行して得られた書き込みデータの何れかと同一である場合、情報処理タスクが所定の衝突条件を満たすと判断する。
【０１２０】
上述したように、情報処理タスクを実行して得られた読み出しデータと、確認待ちの情報処理タスクの集合に含まれる情報処理タスクを実行して得られた書き込みデータとを比較することで、情報処理タスクが所定の衝突条件を満たすと判断することができる。
【０１２１】
判断部６０６における上記処理の具体例は、上記方法の実施例の対応部分、例えば判断ステップＳ１０６及び図５の説明を参照してもよく、ここで重複の説明を省略する。
【０１２２】
好ましくは、衝突処理部６０８は、タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが所定の衝突条件を満たさないと判断された場合、該情報処理タスクについて後続処理を継続する。
【０１２３】
好ましくは、衝突処理部６０８は、タスク・バッファ・キューにおける情報処理タスクについて後続処理を継続すると共に、送信された情報処理タスクを確認待ちの情報処理タスクの集合に追加し、確認待ちの情報処理タスクの集合を更新する。
【０１２４】
好ましくは、衝突処理部６０８は、後続処理が継続された情報処理タスクが複数の実行エンティティにより検証、確認された後に、確認待ちの情報処理タスクの集合から確認された情報処理タスクを削除して確認待ちの情報処理タスクの集合を更新し、衝突タスク・キューから、確認された情報処理タスクと衝突する情報処理タスクを削除して該削除された情報処理タスクをタスク・バッファ・キューにバッファリングする。
【０１２５】
好ましくは、衝突処理部６０８は、順序情報処理タスク・リストにおける情報処理タスクについて後続処理を継続する際に、順序情報処理タスク・リストにおける情報処理タスクの後に位置する全ての情報処理タスクは、後続処理を継続せずに待機し、情報処理タスクが確認された後に、情報処理タスクの直後の情報処理タスクについて後続処理を継続する。
【０１２６】
これによって、順序情報処理タスク・リストにおける情報処理タスクを同時に検証、確認することではなく、順次検証、確認することができるため、脱中心化のデータ管理システムにおける情報処理タスクの有効性を向上させることができる。
【０１２７】
衝突処理部６０８における上記処理の具体例は、上記方法の実施例の対応部分、例えば衝突処理ステップＳ１０８及び図５の説明を参照してもよく、ここで重複の説明を省略する。
【０１２８】
なお、以上は本発明の実施例に係る脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する装置の機能的構成を説明しているが、該機能的構成は単なる例示的なものであり、本発明を限定するものではない。当業者は、本発明の原理に従って上記実施例を修正してもよく、例えば各実施例における機能的モジュールを追加、削除又は組み合わせてもよく、これらの修正は本発明の範囲に含まれるものである。
【０１２９】
また、ここの装置の実施例は上記方法の実施例に対応するため、装置の実施例に詳細に説明されていない内容は、上記方法実施例の対応説明を参照してもよく、ここでその説明を省略する。
【０１３０】
また、本発明は記憶媒体及びプログラムプロダクトをさらに提供する。本発明の実施例に係る記憶媒体及びプログラムプロダクトにおける機器が実行可能な命令は上記脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法を実行してもよく、ここで詳細に説明されていない内容は、上記方法実施例の対応説明を参照してもよく、ここでその説明を省略する。
【０１３１】
それに応じて、本発明は、機器が実行可能な命令を含むプログラムプロダクトが記録されている記憶媒体をさらに含む。該記憶媒体は、フロッピーディスク、光ディスク、光磁気ディスク、メモリカード、メモリスティック等を含むが、これらに限定されない。
【０１３２】
なお、上記処理及び装置はソフトウェア及び／又はファームウェアにより実現されてもよい。ソフトウェア及び／又はファームウェアにより実施されている場合、記憶媒体又はネットワークから専用のハードウェア構成を有するコンピュータ、例えば図７示されている汎用パーソナルコンピュータ７００に上記方法を実施するためのソフトウェアを構成するプログラムをインストールしてもよく、該コンピュータは各種のプログラムがインストールされている場合は各種の機能などを実行できる。
【０１３３】
図７において、中央処理部（ＣＰＵ）７０１は、読み出し専用メモリ（ＲＯＭ）７０２に記憶されているプログラム、又は記憶部７０８からランダムアクセスメモリ（ＲＡＭ）７０３にロードされたプログラムにより各種の処理を実行する。ＲＡＭ７０３には、必要に応じて、ＣＰＵ７０１が各種の処理を実行するに必要なデータが記憶されている。
【０１３４】
ＣＰＵ７０１、ＲＯＭ７０２、及びＲＡＭ７０３は、バス７０４を介して互いに接続されている。入力／出力インターフェース７０５もバス７０４に接続されている。
【０１３５】
入力部７０６（キーボード、マウスなどを含む）、出力部７０７（ディスプレイ、例えばブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）など、及びスピーカなどを含む）、記憶部７０８（例えばハードディスクなどを含む）、通信部７０９（例えばネットワークのインタフェースカード、例えばＬＡＮカード、モデムなどを含む）は、入力／出力インターフェース７０５に接続されている。通信部７０９は、ネットワーク、例えばインターネットを介して通信処理を実行する。
【０１３６】
必要に応じて、ドライブ部７１０は、入力／出力インターフェース７０５に接続されてもよい。取り外し可能な媒体７１１は、例えば磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどであり、必要に応じてドライブ部７１０にセットアップされて、その中から読みだされたコンピュータプログラムは必要に応じて記憶部７０８にインストールされている。
【０１３７】
ソフトウェアにより上記処理を実施する場合、ネットワーク、例えばインターネット、又は記憶媒体、例えば取り外し可能な媒体７１１を介してソフトウェアを構成するプログラムをインストールする。
【０１３８】
なお、これらの記憶媒体は、図７に示されている、プログラムを記憶し、機器と分離してユーザへプログラムを提供する取り外し可能な媒体７１１に限定されない。取り外し可能な媒体７１１は、例えば磁気ディスク（フロッピーディスク（登録商標）を含む）、光ディスク（光ディスク−読み出し専用メモリ（ＣＤ−ＲＯＭ）、及びデジタル多目的ディスク（ＤＶＤ）を含む）、光磁気ディスク（ミニディスク（ＭＤ）（登録商標））及び半導体メモリを含む。或いは、記憶媒体は、ＲＯＭ７０２、記憶部７０８に含まれるハードディスクなどであってもよく、プログラムを記憶し、それらを含む機器と共にユーザへ提供される。
【０１３９】
以上は図面を参照しながら本発明の好ましい実施例を説明しているが、上記実施例及び例は例示的なものであり、制限的なものではない。当業者は、特許請求の範囲の主旨及び範囲内で本発明に対して各種の修正、改良、均等的なものに変更してもよい。これらの修正、改良又は均等的なものに変更することは本発明の保護範囲に含まれるものである。
【０１４０】
例えば、上記実施例の１つのユニットに含まれる機能は別々の装置により実現されてもよい。また、上記実施例の複数のユニットにより実現される複数の機能は別々の装置によりそれぞれ実現されてもよい。さらに、以上の機能の１つは複数のユニットにより実現されてもよい。なお、これらの構成は本発明の範囲内のものである。
【０１４１】
また、本発明の方法は、明細書に説明された時間的順序で実行するものに限定されず、他の時間的順序で順次、並行、又は独立して実行されてもよい。このため、本明細書に説明された方法の実行順序は、本発明の技術的な範囲を限定するものではない。
【０１４２】
また、上述の各実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法であって、前記脱中心化のデータ管理システムは、ユーザ端末と、ユーザ端末により開始された情報処理タスクを実行する複数の実行エンティティとを含み、前記ユーザ端末と前記複数の実行エンティティは同一のデータベースのコピーをそれぞれ持っており、前記情報処理タスクの実行結果のうち、前記ユーザ端末及び前記複数の実行エンティティにより共に承認された結果に基づいて、各データベースのコピーを更新する、方法であって、
ユーザ端末が前記複数の実行エンティティに複数の情報処理タスクの要求を送信するステップであって、順序で並び替えられた少なくとも２つの情報処理タスクを含む順序情報処理タスク・リストにおける情報処理タスクは前記順序で前記複数の実行エンティティに送信され、前記順序情報処理タスク・リストは、要求される前記複数の情報処理タスクに対して同時実行リスクの検出を行うことによって生成される、ステップと、
要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするステップであって、前記順序情報処理タスク・リストは一体として前記タスク・バッファ・キューにバッファリングされる、ステップと、
前記タスク・バッファ・キューにおける各情報処理タスクが所定の衝突条件を満たすか否かを判断するステップと、
前記タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが前記所定の衝突条件を満たすと判断された場合、該情報処理タスクを衝突タスク・キューに移動させ、前記所定の衝突条件が満たさなくなる場合、後続処理を継続するように、該情報処理タスクを前記衝突タスク・キューから削除して前記タスク・バッファ・キューにバッファリングするステップと、を含む、方法。
（付記２）
要求される前記複数の情報処理タスクに対して同時実行リスクの検出を行い、前記順序情報処理タスク・リストを生成するステップは、
脱中心化のデータ管理システムにおける、情報処理タスクに関連する関数に対する静的コード解析により、要求される前記複数の情報処理タスクの各情報処理タスクを実行した実行結果を取得するステップと、
要求される前記複数の情報処理タスクのうち任意の情報処理タスク・ペアについて、前記実行結果に基づいて同時実行リスクを決定するステップと、
決定された各情報処理タスク・ペアの同時実行リスクに基づいて、情報処理タスクを並び替え、前記順序情報処理タスク・リストを生成するステップと、を含む、付記１に記載の方法。
（付記３）
任意の情報処理タスク・ペアについて、前記実行結果に基づいて同時実行リスクを決定するステップは、
情報処理タスク・ペアにおける各情報処理タスクの実行結果における書き込みデータの特性及び書き込みデータのタイプに基づいて、同時実行リスクのスコアを算出するステップ、を含む、付記２に記載の方法。
（付記４）
要求される前記複数の情報処理タスクの各情報処理タスクの実行結果を取得するステップは、
脱中心化のデータ管理システムにおける、情報処理タスクに関連する関数に対して静的コード解析を行うことで、前記情報処理タスクに関連する関数を実行するための構文木を取得するステップと、
前記構文木に基づいて、要求される前記複数の各情報処理タスクを実行した実行結果を取得するステップと、を含む、付記２に記載の方法。
（付記５）
前記構文木に基づいて、要求される前記複数の各情報処理タスクを実行した実行結果を取得するステップは、
前記構文木に基づいて、前記情報処理タスクに関連する関数の実行パス、実行パスの条件、及び全てのパスの実行結果を収集するステップと、
要求される各情報処理タスクと前記実行パス及び実行パスの条件とのマッピングを行うことで、各情報処理タスクを実行した実行結果を取得するステップと、を含む、付記４に記載の方法。
（付記６）
前記タスク・バッファ・キューにおける情報処理タスクが所定の衝突条件を満たすか否かを判断するステップは、
前記情報処理タスクが確認待ちの情報処理タスクの集合に含まれる全ての情報処理タスクと衝突しない場合、前記情報処理タスクが前記所定の衝突条件を満たさないと判断するステップと、
前記情報処理タスクが前記確認待ちの情報処理タスクの集合に含まれる任意の情報処理タスクと衝突する場合、前記情報処理タスクが前記所定の衝突条件を満たすと判断するステップと、を含む、付記１に記載の方法。
（付記７）
前記タスク・バッファ・キューにおける情報処理タスクが所定の衝突条件を満たすか否かを判断するステップは、
前記脱中心化のデータ管理システムにおける処理ルールに従って前記情報処理タスクを実行して得られた読み出しデータと、前記処理ルールに従って前記提出待ちの情報処理タスクの集合に含まれる情報処理タスクを実行して得られた書き込みデータの全てと異なる場合、前記情報処理タスクが前記所定の衝突条件を満たさないと判断するステップと、
前記処理ルールに従って前記情報処理タスクを実行して得られた読み出しデータと、前記処理ルールに従って前記提出待ちの情報処理タスクの集合に含まれる情報処理タスクを実行して得られた書き込みデータの何れかと同一である場合、前記情報処理タスクが前記所定の衝突条件を満たすと判断するステップと、をさらに含む、付記６に記載の方法。
（付記８）
前記順序情報処理タスク・リストにおける情報処理タスクについて後続処理を継続する際に、前記順序情報処理タスク・リストにおける前記情報処理タスクの後に位置する全ての情報処理タスクは、後続処理を継続せずに待機し、
前記情報処理タスクが確認された後に、前記情報処理タスクの直後の情報処理タスクについて後続処理を継続する、付記１に記載の方法。
（付記９）
要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするステップは、
同時実行リスクを有しない同時実行の情報処理タスクを前記タスク・バッファ・キューに順次バッファリングするステップ、を含む、付記１に記載の方法。
（付記１０）
要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするステップは、
同時実行リスクを有しない同時実行の情報処理タスクの各情報処理タスクについて、前記脱中心化のデータ管理システムにおける処理ルールに従って各情報処理タスクを実行して得られた読み出し集合及び書き込み集合を、該情報処理タスクと対応付けて前記タスク・バッファ・キューにバッファリングするステップと、
前記順序情報処理タスク・リストについて、前記処理ルールに従って前記順序情報処理タスク・リストにおける１番目の情報処理タスクを実行して得られた読み出し集合及び書き込み集合のみを、該順序情報処理タスク・リストと対応付けて前記タスク・バッファ・キューにバッファリングするステップと、を含む、付記１に記載の方法。
（付記１１）
前記タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが前記所定の衝突条件を満たさないと判断された場合、該情報処理タスクについて後続処理を継続する、付記１に記載の方法。
（付記１２）
前記タスク・バッファ・キューにおける情報処理タスクについて後続処理を継続すると共に、送信された情報処理タスクを前記提出待ちの情報処理タスクの集合に追加し、前記提出待ちの情報処理タスクの集合を更新する、付記６に記載の方法。
（付記１３）
後続処理が継続された情報処理タスクが前記複数の実行エンティティにより検証され、提出された後に、前記提出待ちの情報処理タスクの集合から提出された情報処理タスクを削除して前記提出待ちの情報処理タスクの集合を更新し、前記衝突タスク・キューから、提出された情報処理タスクと衝突する情報処理タスクを削除して該削除された情報処理タスクを前記タスク・バッファ・キューにバッファリングする、付記１２に記載の方法。
（付記１４）
脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する装置であって、前記脱中心化のデータ管理システムは、ユーザ端末と、ユーザ端末により開始された情報処理タスクを実行する複数の実行エンティティとを含み、前記ユーザ端末と前記複数の実行エンティティは同一のデータベースのコピーをそれぞれ持っており、前記情報処理タスクの実行結果のうち、前記ユーザ端末及び前記複数の実行エンティティにより共に承認された結果に基づいて、各データベースのコピーを更新する、装置であって、
ユーザ端末において前記複数の実行エンティティに複数の情報処理タスクの要求を送信する同時実行リスク検出手段であって、順序で並び替えられた少なくとも２つの情報処理タスクを含む順序情報処理タスク・リストにおける情報処理タスクは前記順序で前記複数の実行エンティティに送信され、前記順序情報処理タスク・リストは、要求される前記複数の情報処理タスクに対して同時実行リスクの検出を行うことによって生成される、同時実行リスク検出手段と、
要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするバッファリング手段であって、前記順序情報処理タスク・リストは一体として前記タスク・バッファ・キューにバッファリングされる、バッファリング手段と、
前記タスク・バッファ・キューにおける各情報処理タスクが所定の衝突条件を満たすか否かを判断する判断手段と、
前記タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが前記所定の衝突条件を満たすと判断された場合、該情報処理タスクを衝突タスク・キューに移動させ、前記所定の衝突条件が満たさなくなる場合、後続処理を継続するように、該情報処理タスクを前記衝突タスク・キューから削除して前記タスク・バッファ・キューにバッファリングする衝突処理手段と、を含む、装置。
（付記１５）
前記同時実行リスク検出手段は、
脱中心化のデータ管理システムにおける、情報処理タスクに関連する関数に対する静的コード解析により、要求される前記複数の情報処理タスクの各情報処理タスクを実行した実行結果を取得し、
要求される前記複数の情報処理タスクのうち任意の情報処理タスク・ペアについて、前記実行結果に基づいて同時実行リスクを決定し、
決定された各情報処理タスク・ペアの同時実行リスクに基づいて、情報処理タスクを並び替え、前記順序情報処理タスク・リストを生成する、付記１４に記載の装置。
（付記１６）
前記同時実行リスク検出手段は、情報処理タスク・ペアにおける各情報処理タスクの実行結果における書き込みデータの特性及び書き込みデータのタイプに基づいて、同時実行リスクのスコアを算出する、付記１５に記載の装置。
（付記１７）
前記同時実行リスク検出手段は、
脱中心化のデータ管理システムにおける、情報処理タスクに関連する関数に対して静的コード解析を行うことで、前記情報処理タスクに関連する関数を実行するための構文木を取得し、
前記構文木に基づいて、要求される前記複数の各情報処理タスクを実行した実行結果を取得する、付記１５に記載の装置。
（付記１８）
前記判断手段は、
前記情報処理タスクが確認待ちの情報処理タスクの集合に含まれる全ての情報処理タスクと衝突しない場合、前記情報処理タスクが前記所定の衝突条件を満たさないと判断し、
前記情報処理タスクが前記確認待ちの情報処理タスクの集合に含まれる任意の情報処理タスクと衝突する場合、前記情報処理タスクが前記所定の衝突条件を満たすと判断する、付記１４に記載の装置。
（付記１９）
前記順序情報処理タスク・リストにおける情報処理タスクについて後続処理を継続する際に、前記順序情報処理タスク・リストにおける前記情報処理タスクの後に位置する全ての情報処理タスクは、後続処理を継続せずに待機し、
前記情報処理タスクが確認された後に、前記情報処理タスクの直後の情報処理タスクについて後続処理を継続する、付記１４に記載の装置。
（付記２０）
コンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムが実行される際に、脱中心化のデータ管理システムにおいて情報処理タスクの有効性を管理する方法を実現し、前記脱中心化のデータ管理システムは、ユーザ端末と、ユーザ端末により開始された情報処理タスクを実行する複数の実行エンティティとを含み、前記ユーザ端末と前記複数の実行エンティティは同一のデータベースのコピーをそれぞれ持っており、前記情報処理タスクの実行結果のうち、前記ユーザ端末及び前記複数の実行エンティティにより共に承認された結果に基づいて、各データベースのコピーを更新し、
前記方法は、
ユーザ端末が前記複数の実行エンティティに複数の情報処理タスクの要求を送信するステップであって、順序で並び替えられた少なくとも２つの情報処理タスクを含む順序情報処理タスク・リストにおける情報処理タスクは前記順序で前記複数の実行エンティティに送信され、前記順序情報処理タスク・リストは、要求される前記複数の情報処理タスクに対して同時実行リスクの検出を行うことによって生成される、ステップと、
要求される前記複数の情報処理タスクをタスク・バッファ・キューにバッファリングするステップであって、前記順序情報処理タスク・リストは一体として前記タスク・バッファ・キューにバッファリングされる、ステップと、
前記タスク・バッファ・キューにおける各情報処理タスクが所定の衝突条件を満たすか否かを判断するステップと、
前記タスク・バッファ・キューにおける各情報処理タスクについて、該情報処理タスクが前記所定の衝突条件を満たすと判断された場合、該情報処理タスクを衝突タスク・キューに移動させ、前記所定の衝突条件が満たさなくなる場合、後続処理を継続するように、該情報処理タスクを前記衝突タスク・キューから削除して前記タスク・バッファ・キューにバッファリングするステップと、を含む、記憶媒体。
【図１】
2020013544.tif 000005
【図２】
2020013544.tif 000006
【図３】
2020013544.tif 000007
【図４】
2020013544.tif 000008
【図５】
2020013544.tif 000009
【図６】
2020013544.tif 000010
【図７】
2020013544.tif 000011