(57)【要約】【課題】データベースの利用についての処理を効率的に行う。【解決手段】複数のサーバの各サーバは、他のサーバと共有する情報を格納する共有情報格納領域を含む。複数のサーバは、共有情報格納領域のデータを一致させるように動作する。第１のサーバは、第１のローカル・データベースを管理する。第２のサーバは、第１のローカル・データベースへのアクセスのためのクエリ情報を生成し、クエリ情報を、第２のサーバの共有情報格納領域に格納する。第１のサーバは、第１のサーバの共有情報格納領域からクエリ情報を取得し、クエリ情報に対する結果を第１のサーバの共有情報格納領域に格納する。第２のサーバは、第２のサーバの共有情報格納領域から結果を取得する。【選択図】図１０
2020119207.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバ及び１以上のデータベースを含む、データベース管理サービス提供システムであって、
前記複数のサーバは、
第１のサーバと、
第２のサーバと、を含み、
前記複数のサーバの各サーバは、他のサーバと共有する情報を格納する共有情報格納領域を含み、
前記複数のサーバは、前記共有情報格納領域のデータを一致させるように動作し、
前記第１のサーバは、第１のローカル・データベースを管理し、
前記第２のサーバは、
前記第１のローカル・データベースへのアクセスのためのクエリ情報を生成し、
前記クエリ情報を、前記第２のサーバの前記共有情報格納領域に格納し、
前記第１のサーバは、
前記第１のサーバの前記共有情報格納領域から前記クエリ情報を取得し、
前記クエリ情報に対する結果を前記第１のサーバの前記共有情報格納領域に格納し、
前記第２のサーバは、前記第２のサーバの前記共有情報格納領域から前記結果を取得する、データベース管理サービス提供システム。
【請求項２】
請求項１に記載のデータベース管理サービス提供システムであって、
前記共有情報格納領域は、前記複数のサーバが管理する複数のデータベースについての情報を格納している、データベース管理サービス提供システム。
【請求項３】
請求項１に記載のデータベース管理サービス提供システムであって、
前記複数のサーバの各サーバは、前記複数のサーバにおいて通信を行う他のサーバのリストを保持し、
前記複数のサーバの各サーバは、前記共有情報格納領域における更新を前記リストに示される前記他のサーバに送信する、データベース管理サービス提供システム。
【請求項４】
請求項１に記載のデータベース管理サービス提供システムであって、
前記第２のサーバは、
エンド・ユーザ・デバイスからの指示に応答して前記クエリ情報を生成し、
前記第２のサーバの前記共有情報格納領域から取得した前記結果を前記エンド・ユーザ・デバイスに送信する、データベース管理サービス提供システム。
【請求項５】
請求項１に記載のデータベース管理サービス提供システムであって、
前記第１のサーバは、
前記第１のサーバの前記共有情報格納領域から、前記第１のローカル・データベースに対する第２のクエリ情報を取得し、前記第２のクエリ情報は、クエリ結果の送り先情報を含み、
前記第２のクエリ情報の結果を前記第１のサーバの前記共有情報格納領域に格納することなく、前記送り先情報が示すサーバに前記第２のクエリ情報の結果を送信する、データベース管理サービス提供システム。
【請求項６】
請求項１に記載のデータベース管理サービス提供システムであって、
前記複数のサーバにおける前記第１のサーバと異なる１以上のサーバが、前記第１のローカル・データベースの複製を管理し、
前記第１のサーバは、
前記第１のサーバの前記共有情報格納領域から、前記第１のローカル・データベースに対する第３のクエリ情報を取得し、
前記１以上のサーバの情報を含む前記第３のクエリ情報の結果を、前記第１のサーバの前記共有情報格納領域に格納する、データベース管理サービス提供システム。
【請求項７】
請求項１に記載のデータベース管理サービス提供システムであって、
前記共有情報格納領域は第１の共有情報格納領域であり、
前記第１のサーバは、
第２のデータベース管理サービス提供システムに含まれ、
第２のデータベース管理サービス提供システムの他のサーバと共有する情報を格納する第２の共有情報格納領域を含み、
前記第１のサーバの前記第１の共有情報格納領域から、前記第２のデータベース管理サービス提供システムに含まれる第３のサーバが管理する第３ローカル・データベースに対する第４のクエリ情報を取得し、
前記第１のサーバの前記第２の共有情報格納領域に前記第４のクエリ情報を格納し、
前記第１のサーバの前記第２の共有情報格納領域から前記第４のクエリ情報に対する結果を取得し、
前記第４のクエリ情報に対する結果を前記第１のサーバの前記第１の共有情報格納領域に格納する、データベース管理サービス提供システム。
【請求項８】
複数のサーバ及び１以上のデータベースを含むシステムによる、データベース管理サービス提供方法であって、
前記複数のサーバは、
第１のサーバと、
第２のサーバと、を含み、
前記複数のサーバの各サーバは、他のサーバと共有する情報を格納する共有情報格納領域を含み、
前記複数のサーバは、前記共有情報格納領域のデータを一致させるように動作し、
前記データベース管理サービス提供方法は、
前記第１のサーバが、第１のローカル・データベースを管理し、
前記第２のサーバが、前記第１のローカル・データベースへのアクセスのためにクエリ情報を生成し、
前記第２のサーバが、前記クエリ情報を、前記第２のサーバの前記共有情報格納領域に格納し、
前記第１のサーバが、前記第１のサーバの前記共有情報格納領域から前記クエリ情報を取得し、
前記第１のサーバが、前記クエリ情報に対する結果を前記第１のサーバの前記共有情報格納領域に格納し、
前記第２のサーバが、前記第２のサーバの前記共有情報格納領域から前記結果を取得する、データベース管理サービス提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理サービス提供システムに関する。
【背景技術】
【０００２】
昨今、企業規模に関わらず、グローバル化やビジネス強化のため、迅速かつ柔軟なサプライチェーン構築が重要になってきている。ＩＴインフラによって、サプライチェーン（Ｅｌｅｃｔｒｏｎｉｃ  Ｄａｔａ  Ｉｎｔｅｒｃｈａｎｇｅを含む）に参加するパートナ企業間での迅速な情報共有（それぞれの参加企業が提供する情報の相互関連性の情報も含む）が重要になってきている。このようなサプライチェーンにおいて、パートナ企業（企業連合に参加する企業）の参加や脱退を、データベース管理システム（ＤＢＭＳ）を利用したＩＴシステムで、一元管理している。このサプライチェーンへの参加には、参加承認手続きや、各パートナ企業の保持するＩＴシステムとの接続ためのシステム構築や接続試験に、時間がかかり、ビジネスのアジリティ向上の妨げになってきている。以降の説明では、「パートナ企業」を、「パートナ」と略す。
【０００３】
また、昨今、情報共有のために、一元管理（もしくは、集中管理）を必要としない分散帳票技術（もしくは、ブロックチェーン技術）と呼ばれる技術も、普及し始めている。この技術は、長大なデータを扱うのは得意ではないが、ネットワーク上で疎結合されているＩＴシステムの間で、相互に情報の複製を持ち合うためのデータベース多重化技術の一種である。以降の説明では、この「分散帳票技術」を、「ＢＣ技術」と略す。また、「ブロックチェーン」を、「ＢＣ」と略す。
【０００４】
上記の背景から、今後、パートナのコーポレートガバナンスの強化並びにアジリティ向上のニーズが高まってくると考えている。本発明は、特に、サプライチェーンに属するパートナ間の情報共有（例：情報銀行、情報連携／対応付け）のアジリティを向上させるためのデータベース管理システムのサービス提供システムを対象としている。以下の説明では、サプライチェーンを、例として説明する。なお、サプライチェーンを、情報を共有する複数の企業グループと読み替えても、差し支えない。
【０００５】
特許文献１は、分散保管されている情報（ファイルなどのコンテンツ）の共有において、コンテンツのメタ情報を、一元的管理する仕組みを開示している。特許文献２は、分散する１台以上ファイルサーバに格納されるファイルのメタ情報（ファイル格納場所情報、等）を、ＢＣ技術によって共有することにより、同じファイルの重複保存を防ぐ仕組みを開示している。特許文献３は、ＢＣ技術を利用した商取引を実現するＩＴシステムの例を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第６０４４３７４号
【特許文献２】特開２０１８−１９０２２７号公報
【特許文献３】米国特許第９８７０５６２号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
今後、例えばサプライチェーンにおいて、適用業務拡大に伴うアジリティ向上の要求が高くなってくる。まず、サプライチェーンにおいて、適用業務が定型でなく多種の業務への対応や、パートナ企業の参加や脱退の承認が集中管理され、各パートナ企業の参加／脱退を、前記サプライチェーンの部分的な企業グループの単位で容易に出来ず、手続きに時間がかかる傾向がある。すなわち、ＩＴインフラにおける情報共有ために、まず、多数の企業に散在する多様なアプリケーションから、それぞれのパートナ企業が保持するＤＢＭＳ及びデータベース（ＤＢ）を使用するためのＤＢＭＳ管理情報を、これらのパートナ企業で、迅速かつ柔軟に共有することが望まれる。
【０００８】
更に、複数のパートナで共有される情報（コンテンツ）は、インターネットに接続されるサーバのローカル・データベースに保持していても、昨今の通信性能向上から、インターネットを介して、どこからも滞りないアクセスが可能である一方、そのローカル・データベースを、他のサーバから、アクセスするために必要な管理情報を取得するなどの手続きや、そのアクセスを実現するＩＴシステム構築作業が、アジリティ向上の妨げになってきている。
【課題を解決するための手段】
【０００９】
本発明の一態様は、複数のサーバ及び１以上のデータベースを含む、データベース管理サービス提供システムである。前記複数のサーバは、第１のサーバと、第２のサーバと、を含む。前記複数のサーバの各サーバは、他のサーバと共有する情報を格納する共有情報格納領域を含む。前記複数のサーバは、前記共有情報格納領域のデータを一致させるように動作する。前記第１のサーバは、第１のローカル・データベースを管理する。前記第２のサーバは、前記第１のローカル・データベースへのアクセスのためのクエリ情報を生成し、前記クエリ情報を、前記第２のサーバの前記共有情報格納領域に格納する。前記第１のサーバは、前記第１のサーバの前記共有情報格納領域から前記クエリ情報を取得し、前記クエリ情報に対する結果を前記第１のサーバの前記共有情報格納領域に格納する。前記第２のサーバは、前記第２のサーバの前記共有情報格納領域から前記結果を取得する。
【発明の効果】
【００１０】
本発明の一態様によれば、データベースの利用についての処理を効率的に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】ネットワーク全体構成
【図２】システム構成
【図３】サーバの内部構成
【図４】サーバのメモリ構成
【図５】サーバ構成データの構成
【図６】管理データベースの構成
【図７】ローカル・データベースの構成例
【図８】エンド・ユーザ・デバイスの内部構成
【図９】デバイス構成データの構成
【図１０】ＢＣトランザクションの手順概要
【図１１】クエリ結果収集の構成例
【図１２】Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ例の動作フロー
【図１３】ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍの動作フロー
【図１４】ＤＢＭＳ  Ｐｒｏｇｒａｍの動作フロー
【図１５】エンド・ユーザ・デバイス・アプリケーション・プログラムの動作フロー
【図１６】異種のＢＣトランザクションの手順概要
【図１７】Ｒｅｌａｙ  Ｐｒｏｇｒａｍの動作フロー
【発明を実施するための形態】
【００１２】
本実施形態の概要を説明する。本実施形態は、例えば企業間の情報共有を実現する、ＩＴインフラ及びデータベース管理システムに関する技術を説明する。ほ実施形態のシステム及び方法は、特に、企業連合（例：サプライチェーン）の管理と、当該企業連合に属する企業間の情報共有を実現する分散データベース管理システムに好適である。
【００１３】
パートナ間で共有する情報は、比較的大きな情報も含め、それぞれ、各パートナが有するサーバのＤＢＭＳ（データベース管理システム）プログラムを使用して、データベースに保管する。この際、それぞれのＤＢＭＳプログラムを使用／実行するために必要となる構成情報や管理情報を、ＢＣ（ブロックチェーン）技術によって、パートナ間で共有させる。これにより、パートナは、ブロックチェーン・ネットワーク（ＢＣ技術により情報共有するグループ）に加入することで、他のサーバにある上記ＤＢＭＳプログラムを介して、それぞれのローカル・データベースにアクセスできるようになる。
【００１４】
本発明を実施するための形態を、実施例に基づき、図面を参照し、説明する。以下、各要素の構成並びに、動作フローを用いて詳細を説明する。なお、実施例では、ブロックチェーン（ＢＣ）・ネットワークを実現するＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍの内部動作並びに仕様に関しては、公知のブロックチェーン・プラットフォームを適用できる。
【００１５】
公知のブロックチェーン・プラットフォームは、例えば、特許文献２で開示される例の他、Ｏｐｅｎ  Ｓｏｕｒｃｅ  Ｓｏｆｔｗａｒｅ（ＯＳＳ）として公開されているブロックチェーン・プラットフォームが知られている。これらは、例えば、Ｈｙｐｅｒｌｅｄｇｅｒ  Ｆａｂｒｉｃ、Ｅｔｈｅｒｅｕｍ、Ｑｕｏｒｕｍ、Ｂｉｔｃｏｒｅ、ＬＩＳＫ等である。
【００１６】
これらブロックチェーン・プラットフォームの間において機能を呼び出す関数名などに違いあるものの、本実施例は、どのブロックチェーン・プラットフォームでも提供されている機能を使用することができる。従って、以降、ブロックチェーン・ネットワークを実現するＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍの内部動作の詳細に関する説明は省略する。
【００１７】
上記ブロックチェーン・プラットフォームで採用されるブロックチェーン技術の概要を説明する。一般的に、通信ネットワークに接続される複数のサーバで、データを共有するいくつかの方式が知られている。１つの方式例は集中方式であって、特定のサーバに、共有するデータを保持させ、他のサーバが、その特定のサーバにデータアクセスすることにより、複数のサーバでデータを共有する。しかし、例えば、多数の企業に散在するアプリケーションから共有される長大なデータに関しては、特定のローカル・データベースに保持されると、個々の企業のＩＴインフラ（例えば、サーバ、データストレージ、ネットワーク）の性能に制限される。
【００１８】
他の方式例は、分散方式であって、データを共有する複数のサーバが、共有するデータの複製を相互に保持する。分散方式は、各サーバでのデータ更新を低負荷に行える一方、データ真正性の保証が難しい。
【００１９】
ブロックチェーン技術は、後者の分散方式を採用したデータ共有技術である。ブロックチェーン技術は、共有するデータの真正性を保証するため、更新後のデータだけを共有するのでなく、更新前のデータの履歴とともにデータ更新を行ったサーバ又はユーザの電子署名を付与する。これにより、第三者の改ざんを防止するとともに、改ざん検知を容易化する。ブロックチェーン技術は、集中方式よりも低負荷でデータ共有を提供し、集中方式と同程度の信頼性を提供できる。
【実施例１】
【００２０】
図１と図２を参照して、本実施例を実施するデータベース管理サービス提供システムの構成を説明する。図１は、本システムのネットワーク構成を説明する。サプライチェーン１０１に属する１社以上の企業が保持するサーバ１０４、１０５、１０６、１０７、１０８、１０９と、エンド・ユーザ・デバイス１１０とは、インターネット１０２に接続し、それを介して通信する。
【００２１】
サプライチェーン１０１に属する１社以上の企業が保持するサーバ１０４、１０５、１０６、１０７、１０８、１０９は、さらに、ブロックチェーン・ネットワーク１０３に接続し、それを介して通信する。図１の例において、インターネット１０２は、ブロックチェーン・ネットワーク１０３を含む。サーバ１０４、１０５、１０６、１０７、１０８、１０９は、それぞれＬｏｃａｌ  ＤＢ（データベース）４０７を有する。但し、図１では、処理の説明に必要なサーバ１０４、１０５、１０９のＬｏｃａｌ  ＤＢのみ、記載している。サーバ１０５は、Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１を有する。
【００２２】
複数本の破線１１８は、ブロックチェーン・ネットワーク１０３におけるサーバ間の信頼関係を、模式的に表示している。破線１１８が接続するサーバ間に信頼関係が存在する。ブロックチェーン・プラットフォーム（図２においてＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２により）は、ブロックチェーン・ネットワーク１０３上のＢＣトランザクションの通信を、破線１１８が示す信頼関係を有するサーバ間のデータ交換の連鎖によって、実現する。
【００２３】
以上のネットワーク構成で、例えば、企業Ｘがサプライチェーン１０１に加入し、それに伴い、サーバ１０９が、ブロックチェーン・ネットワーク１０３に参加した後、サーバ１０５のＳｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１は、Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ１１０からの操作を、インターネット１０２を介して受信する。Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１は、処理に必要なデータを、他のサーバ１０４又は１０９が有するそれぞれのＬｏｃａｌ  ＤＢ４０７から取得するために、サーバ１０４又は１０９へ、クエリを、ブロックチェーン・ネットワーク１０３を介して、送信する。
【００２４】
図２では、以降の動作説明で参照される論理的構成を説明する。インターネット１０２は、ブロックチェーン・ネットワーク１０３、２０３を含み、サーバ１０４、１０５、１０９、エンド・ユーザ・デバイス１１０は、インターネット１０２に接続する。サーバ１０４、１０５、１０９は、ブロックチェーン・ネットワーク１０３に接続する。図２に示すいずれのサーバも、ブロックチェーン・ネットワーク２０３に接続していない。
【００２５】
サーバ１０４、１０５、１０９のそれぞれは、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３、Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６、Ｌｏｃａｌ  ＤＢ４０７を有する。更に、サーバ１０５は、１つ以上のＳｅｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１を有する。サーバ１０５は、それぞれ異なるＬｏｃａｌ  ＤＢに対応する複数のＳｅｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍを有してもよい。
【００２６】
エンド・ユーザ・デバイス１１０は、Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ８０６を有する。Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ８０６は、インターネット１０２経由で、Ｓｅｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１へ、操作１１５を指示する。本例において、操作１１５は、指定したデータベースへのアクセスである。
【００２７】
ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、ブロックチェーン・プラットフォームを実現するプログラムモジュールである。このモジュールは、一般的に、ＯＳＳで公開されるソフトウェアで、本実施例では、共通的な機能を使用するので、以降の詳細説明では、内部動作の説明は省略する。本実施例では、主に、ＢＣトランザクションの通信及び複数サーバでのデータ多重化（複製）などの共通的な機能を使用する。
【００２８】
ＢＣトランザクションは、ブロックチェーン・ネットワークを介したトランザクションである。また、ブロックチェーン・プラットフォームは、サーバ間で共有されるデータが多重化される。つまり、サーバは、共有情報格納領域に格納されているデータが一致するように動作する。本実施例においては、後述するＭａｎａｇｅｍｅｎｔ  ＤＢ４０６のデデータが多重化され、サーバは、Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６が一致するように動作（通信）する。Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６（の格納領域）は、共有情報格納領域の例である。
【００２９】
ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３は、一般的なデータベース管理システム（ＤＢＭＳ）を実現するプログラムに、ブロックチェーン・ネットワークとの接続するための機能を追加したプログラムモジュールである。以降の詳細説明では、データベース管理システムが提供するクエリ処理の機能は一般的に既知であり、詳細の説明は省略する。例えば、ＩＳＯ規格が定めるＳＱＬデータベース言語を採用するデータベース管理システムが利用できる。
【００３０】
また、本実施例では、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３として、キー・バリュー・ストレージ（Ｋｅｙ  Ｖａｌｕｅ  Ｓｔｏｒａｇｅ）、オブジェクト・ストレージ（Ｏｂｊｅｃｔ  Ｓｔｏｒａｇｅ）、Ｗｅｂサーバ（Ｗｅｂ  Ｓｅｒｖｅｒ）など、ＳＱＬデータベース言語を採用していないデータストレージを実現するプログラムモジュールを使用してもよい。
【００３１】
Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６は、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３を実行する上で必要となる構成情報及び管理情報を保持するデータベース又は、ストレージである。構成情報はＤＢＭＳ  Ｐｒｏｇｒａｍ４０３の起動に必要な情報であり、管理情報はＤＢＭＳ  Ｐｒｏｇｒａｍ４０３がＬｏｃａｌ  ＤＢ４０７の管理のために参照するデータである。Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６が保持するデータは、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２によって、複数のサーバの各Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６で、多重化される。
【００３２】
Ｌｏｃａｌ  ＤＢ４０７は、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３が管理するデータベースを保持するストレージである。Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ８０６は、Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１を、インターネット１０２経由で操作するめのプログラムモジュールである。
【００３３】
以下、図３から図９を用いて、本システムの構成要素を説明する。上記１台以上のサーバ１０４、１０５、１０６、１０７、１０８、１０９の内部構成は、説明の簡略化のため同じとして説明する。なお、各サーバの動作で使用しない構成要素は有していなくともよい。
【００３４】
図３にて、上記１台以上のサーバのハードウェア内部構成を、図中のサーバ３０１を例として、説明する。サーバ３０１は、ＭＰＵ３０２、Ｍｅｍｏｒｙ３０３、インターネット１０２へ接続するＮＩＣ３０４と、それらを接続するデータバス３０５を有する。ＭＰＵ３０２は、マイクロプロセッサ・ユニットであり、プロセッサの一例である。Ｍｅｍｏｒｙ３０３は、主メモリであり、記憶装置の一例である。ＮＩＣ３０４は、インターネット１０２へ接続するネットワーク・インタフェース・カードである。  図４にて、サーバ３０１のＭｅｍｏｒｙ３０３のデータ構成を説明する。Ｍｅｍｏｒｙ  ３０３は、Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３、Ｓｅｒｖｅｒ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ４０５、Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６、Ｌｏｃａｌ  ＤＢ４０７を有する。
【００３５】
Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１は、エンド・ユーザが利用する業務アプリケーションを実現するプログラムモジュールである。ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、ブロックチェーン・プラットフォームを実現するプログラムモジュールである。
【００３６】
ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３は、ブロックチェーン・ネットワークに参加するデータベース管理システムを実現するプログラムモジュールである。なお、各プログラムモジュール動作は、以降の動作フローで説明する。
【００３７】
Ｓｅｒｖｅｒ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ４０５は、自サーバに固有の構成情報及び管理情報を保持するデータ格納領域である。Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６（管理データベース）は、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３を実行する上で、必要となる構成情報及び管理情報を保持するデータ格納領域である。ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３を使用するために必要な管理情報は、一般的に、採用するＤＢＭＳ  Ｐｒｏｇｒａｍ４０３の仕様により異なるが、共通的な情報も含まれている。
【００３８】
例えば、共通した構成情報としては、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３が管理するＬｏｃａｌ  ＤＢ４０７のデータソース名、データベース名、Ｌｏｃａｌ  ＤＢ４０７が保持するデータベース・テーブル名などがあり、Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６は、これらの一部又は全てが保持することができる。また、共通した管理情報としては、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３を使用できるユーザの在存と、ユーザ権限などを保持するユーザ・アカウント情報などがある。Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６に、これらの一部又は全てを保持することができる。
【００３９】
本実施例の実施のためには、これらの構成情報及び管理情報は、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３を使用する上で必要となる任意の情報であり、これらの情報のＤＢＭＳ  Ｐｒｏｇｒａｍ４０３内部での処理の説明は省略する。
【００４０】
Ｌｏｃａｌ  ＤＢ４０７（ローカル・データベース）は、Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１が、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３を介して、使用するデータベースを保持するデータ格納領域である。なお、Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６並びに、Ｌｏｃａｌ  ＤＢ４０７は、外部接続のストレージ装置に保持させてもよい。
【００４１】
図５にて、Ｓｅｒｖｅｒ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ４０５の内部構成を説明する。Ｓｅｒｖｅｒ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ４０５は、Ｄａｔａｂａｓｅ  ＩＤ５０１、Ｄａｔａ  Ｔａｂｌｅ  “Ｐｅｅｒ  Ｌｉｓｔ”５０２、Ｄａｔａ  Ｔａｂｌｅ  “Ｌｏｃａｌ  Ａｃｃｏｕｎｔ  Ｌｉｓｔ”５０３を有する。
【００４２】
Ｄａｔａｂａｓｅ  ＩＤ５０１は、自サーバのＬｏｃａｌ  ＤＢを区別するための識別情報を保持するデータ格納領域である。図５の例においては、サーバが保持するＬｏｃａｌ  ＤＢは一つであるが、複数のＬｏｃａｌ  ＤＢが保持されてもよい。この識別子は、システム内で重複のない連番の他、各サーバのインターネット・アドレスなど、重複のない情報であればよい。
【００４３】
Ｄａｔａ  Ｔａｂｌｅ  “Ｐｅｅｒ  Ｌｉｓｔ”５０２は、自サーバが信頼関係１１８を有するサーバ（ノード）のリストであり、通信を行う他のサーバのリストである。ブロックチェーン・ネットワークにおいて共有されるべき更新情報は、Ｄａｔａ  Ｔａｂｌｅ  “Ｐｅｅｒ  Ｌｉｓｔ”５０２が示す全てのサーバに送信される。Ｐｅｅｒ  Ｌｉｓｔ５０２により、信頼関係を有するピア・ツー・ピア通信により、ブロックチェーン・ネットワークネットワークの全サーバが情報を共有できる。
【００４４】
Ｄａｔａ  Ｔａｂｌｅ  “Ｐｅｅｒ  Ｌｉｓｔ”５０２は、カラム”ＵＲＩ”と、カラム”Ｐｅｅｒ  ＩＤ”を有するデータ・テーブルである。カラム“ＵＲＩ”は、自サーバのＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２が直接、通信する他サーバ（信頼関係１１８を有するサーバ）のインターネット・アドレスでよい。カラム“Ｐｅｅｒ  ＩＤ”は、ブロックチェーン・ネットワーク上のサーバ識別情報である。このサーバ識別情報には、一般的に、ブロックチェーン・プラットフォームが採用する公開鍵暗号方式に基づいて、サーバ毎に生成される公開キーが使用される。
【００４５】
Ｄａｔａ  Ｔａｂｌｅ  “Ｌｏｃａｌ  Ａｃｃｏｕｎｔ  Ｌｉｓｔ”５０３は、自サーバが管理しているテーブルのリストである。Ｄａｔａ  Ｔａｂｌｅ  “Ｌｏｃａｌ  Ａｃｃｏｕｎｔ  Ｌｉｓｔ”５０３のレコードは、カラム“Ｄａｔａｂａｓｅ  ＩＤ”、カラム“Ｔａｂｌｅ  Ｎａｍｅ”、カラム“ＢＣ  Ａｃｃｏｕｎｔ  ＩＤ”、カラム“Ｓｅｃｒｅｔ  Ｋｅｙ”を有する。カラム”Ｄａｔａｂａｓｅ  ＩＤ”は、ローカル・データベースのデータベース・テーブルが保持されるサーバのＤａｔａｂａｓｅ  ＩＤを保持する。
【００４６】
カラム“Ｔａｂｌｅ  Ｎａｍｅ”は、データベース・テーブルの名称を保持する。カラム”ＢＣ  Ａｃｃｏｕｎｔ  ＩＤ”は、ブロックチェーン・ネットワーク上のサーバ識別情報（公開キー）を保持する。カラム“Ｓｅｃｒｅｔ  Ｋｅｙ”は、ブロックチェーン・ネットワーク上のサーバ識別情報の秘密キーを保持する。
【００４７】
図６にて、Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６のデータ構成を説明する。Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６は、ブロックチェーン・ネットワーク上において、サーバ間で共有される情報である。いずれかのサーバにおけるＭａｎａｇｅｍｅｎｔ  ＤＢ４０６の更新は、ブロックチェーン・ネットワーク上の全てのサーバに反映される。
【００４８】
Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６（管理データベース）は、ＤＢ  Ｔａｂｌｅ  “ＤＢ  Ｔａｂｌｅ  Ｌｉｓｔ”６０１、ＤＢ  Ｔａｂｌｅ  “Ｇｌｏｂａｌ  Ａｃｃｏｕｎｔ  Ｌｉｓｔ”６０２、データ格納領域“ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ”６０３（クエリ格納領域）、データ格納領域“ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ”６０４（クエリレスポンス格納領域）を有する。
【００４９】
ＤＢ  Ｔａｂｌｅ  “ＤＢ  Ｔａｂｌｅ  Ｌｉｓｔ”６０１は、ブロックチェーン・ネットワーク上のサーバが管理するデータベースについての情報であり、本例において、ブロックチェーン・ネットワーク上の全てのテーブルのリストである。これにより、ブロックチェーン・ネットワーク上のサーバが、いずれのサーバに対するクエリ情報も生成できる。ＤＢ  Ｔａｂｌｅ  “ＤＢ  Ｔａｂｌｅ  Ｌｉｓｔ”６０１は、カラム”Ｄａｔａｂａｓｅ  ＩＤ”、カラム”Ｔａｂｌｅ  Ｎａｍｅ”、カラム”ＢＣ  Ａｃｃｏｕｎｔ  ＩＤ”を有する。
【００５０】
ＤＢ  Ｔａｂｌｅ“Ｇｌｏｂａｌ  Ａｃｃｏｕｎｔ  Ｌｉｓｔ”６０２は、ブロックチェーン・ネットワークに接続する全てのエンド・ユーザのリストである。ＤＢ  Ｔａｂｌｅ“Ｇｌｏｂａｌ  Ａｃｃｏｕｎｔ  Ｌｉｓｔ”６０２は、カラム”Ｕｓｅｒ  ＩＤ”、カラム”ＢＣ  Ａｃｃｏｕｎｔ  ＩＤ”を有する。
【００５１】
カラム”Ｕｓｅｒ  ＩＤ”は、エンド・ユーザの識別情報を保持する。この識別情報は、重複のない文字列もしくは、数値でよい。カラム”ＢＣ  Ａｃｃｏｕｎｔ  ＩＤ”は、エンド・ユーザに割り当てあれるブロックチェーン・ネットワーク上の識別情報で、サーバ識別情報と同様に、公開キーを保持する。
【００５２】
データ格納領域“ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ”６０３（クエリ格納領域）は、ブロックチェーン・ネットワーク越しに、他のサーバのＤＢＭＳ  Ｐｒｏｇｒａｍ４０３へ送信するクエリ情報を保持する。クエリ情報は、新たなクエリ情報が生成されると更新される。
【００５３】
データ格納領域“ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ”６０３は、データ・フィールド“Ｄａｔａ  Ｋｉｎｄ”６０５（データ種別情報）、データ・フィールド“ＤＢ  Ｉｎｑｕｉｒｙ”６０６（クエリ情報）、データ・フィールド“Ｒｅｓｐｏｎｓｅ  Ｄｅｓｔｉｎａｔｉｏｎ”６０７（応答先）、データ・フィールド“ＤＢ  Ｉｎｑｕｉｒｙ  ＩＤ”６０８（クエリ識別情報）を保持する。
【００５４】
データ・フィールド“Ｄａｔａ  Ｋｉｎｄ”６０５（データ種別情報）は、ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄのデータ内容の種類を特定する識別情報を保持する。特に、クエリのＢＣトランザクションでは、クエリを意味する識別情報を保持する。
【００５５】
データ・フィールド“ＤＢ  Ｉｎｑｕｉｒｙ”６０６（クエリ情報）は、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３に送るクエリ情報を保持する。例えば、ＳＱＬでの検索では、文字列“ＳＥＬＥＣＴ  Ｃｏｌｕｍｎ＿１  ＦＲＯＭ  ＡＡＡ  ＷＨＥＲＥ  Ｃｏｌｕｍｎ＿２＝‘ｅ’”などを保持する。これは、ＤＢ  Ｔａｂｌｅ“ＡＡＡ”から、カラム”Ｃｏｌｕｍｎ＿２”の値が、“ｅ”と同じレコードのカラム“Ｃｏｌｕｍｎ＿１”の値を求めることを意味する。このように、データ・フィールド“ＤＢ  Ｉｎｑｕｉｒｙ”６０６は、アクセス先のテーブルを指定する。
【００５６】
データ・フィールド“Ｒｅｓｐｏｎｓｅ  Ｄｅｓｔｉｎａｔｉｏｎ”６０７（応答先）は、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３のクエリ実行の応答の返し先を保持する。この応答の返し先は、サーバのＢＣ  Ａｃｃｏｕｎｔ  ＩＤや、ＵＲＩ（インターネット・アドレス）などでよい。後述するように、データ・フィールド“Ｒｅｓｐｏｎｓｅ  Ｄｅｓｔｉｎａｔｉｏｎ”６０７は、クエリ結果の送り先情報である。Ｒｅｓｐｏｎｓｅ  Ｄｅｓｔｉｎａｔｉｏｎ６０７は、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３が、（ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２を介することなく）直接に、クエリ送信元のサーバに応答を変える場合に参照される。
データ・フィールド“ＤＢ  Ｉｎｑｕｉｒｙ  ＩＤ”６０８（クエリ識別情報）は、クエリを識別するための識別情報で、重複のない連番や、ブロックチェーン上のトランザクション識別情報でよい。
【００５７】
データ格納領域“ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ”６０４（クエリレスポンス格納領域）は、他のサーバに送信したクエリ情報に対する応答情報を保持する。この応答情報は、例えば、検索結果の場合、文字列“ｔｈｅ  ｒｅｔｕｒｎ  ｃｏｄｅ、  ｔｈｅ  ｒｅｓｕｌｔ  ‘１’”を保持する。
【００５８】
データ格納領域“ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ”６０４（クエリレスポンス格納領域）は、データ・フィールド“Ｄａｔａ  Ｋｉｎｄ”６０５（データ種別）、データ・フィールド“ＤＢ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ”６１０（クエリレスポンス情報）、データ・フィールド“ＤＢ  Ｉｎｑｕｉｒｙ  ＩＤ”６１１（クエリ識別情報）を有する。
【００５９】
データ・フィールド“Ｄａｔａ  Ｋｉｎｄ”６０５（データ種別）は、クエリ応答を示す識別情報を保持する。データ・フィールド“ＤＢ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ”６１０（クエリレスポンス情報）は、クエリ実行によるＤＢＭＳ  Ｐｒｏｇｒａｍ４０３からの応答情報を保持する。データ・フィールド“ＤＢ  Ｉｎｑｕｉｒｙ  ＩＤ”６１１（クエリ識別情報）は、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３で実行したクエリのＤＢ  Ｉｎｑｕｉｒｙ  ＩＤ（ＤＢ  Ｉｎｑｕｉｒｙ  ＩＤ６０８に格納されている値）を保持して、クエリの送信元が、当該送信元が送信したクエリに対するクエリ応答を特定できるようにする。
【００６０】
なお、ＤＢ  Ｉｎｑｕｉｒｙ  ＩＤ６０８、６１１は、クエリを識別するための連番として説明するが、重複のない識別情報であればよく、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２内部で管理されるＢＣトランザクションの識別情報を使用してもよい。例えば、ブロックチェーン・プラットフォームＥｔｈｅｒｅｕｍが提供するコマンドｇｅｔｈでのＢＣトランザクション送信に際して、識別情報が取得できる。
【００６１】
ＢＣトランザクションの受信側のＤＢＭＳ  Ｐｒｏｇｒａｍでも、その識別情報が取得できるので、その情報を応答に含めることができる。送信側が、既にｇｅｔｈから取得している識別情報と、応答に含まれる識別情報とを比較することで、送信したＢＣトランザクションに対する応答か否かを判定できる。
【００６２】
図７にて、Ｌｏｃａｌ  ＤＢ４０７のデータ構成を説明する。Ｌｏｃａｌ  ＤＢ４０７は、動作説明のための例として、Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍが使用するデータベース・テーブルの一例を示している。Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍの内容は、エンド・ユーザやサプライチェーンに依存するので、それに応じて、異なるデータベース・テーブルを保持してもよい。
【００６３】
Ｌｏｃａｌ  ＤＢ４０７は、例えば、ＤＢ  Ｔａｂｌｅ  “ＡＡＡ”７０１、ＤＢ  Ｔａｂｌｅ  “ＢＢＢ”７０２を有する。ＤＢ  Ｔａｂｌｅ  “ＡＡＡ”７０１のレコードは、カラム“Ｃｏｌｕｍｎ＿１”、カラム“Ｃｏｌｕｍｎ＿２”を有する。ＤＢ  Ｔａｂｌｅ  “ＢＢＢ”７０２のレコードは、カラム“Ｃｏｌｕｍｎ＿１”、カラム”  Ｃｏｌｕｍｎ＿２”を有する。
【００６４】
図８は、エンド・ユーザ・デバイス１１０の内部構成例を示す。エンド・ユーザ・デバイス１１０は、ＭＰＵ８０１、Ｍｅｍｏｒｙ８０２、インターネットに接続するＮＩＣ８０３、エンド・ユーザの操作入力及び情報表示を行うＵｓｅｒ  ＩＦ８０４と、それらを接続するデータバス８０３を有する。ＭＰＵ８０１は、一般的なマイクロプロセッサ・ユニットであり、プロセッサの例である。
【００６５】
Ｍｅｍｏｒｙ８０２は、主メモリであり、記憶装置の例である。また、Ｍｅｍｏｒｙ８０２は、Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ８０６と、Ｄｅｖｉｃｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ８０７を有する。Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ８０６は、Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１を操作するためのプログラムモジュールである。
【００６６】
Ｄｅｖｉｃｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ８０７は、Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ１１０固有の構成情報や管理情報を保持する。ＮＩＣ８０３は、ネットワーク・インタフェース。カードである。Ｕｓｅｒ  ＩＦ８０４は、エンド・ユーザの操作入力並ぶに情報表示を行うモジュールである。
【００６７】
図９は、Ｍｅｍｏｒｙ８０６のデータ格納領域、Ｄｅｖｉｃｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ８０６のデータ構成を示す。Ｄｅｖｉｃｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ８０６は、Ｄａｔａ  Ｔａｂｌｅ  “Ａｐｐｌｉｃａｔｉｏｎ  Ａｃｃｏｕｎｔ  Ｌｉｓｔ”９０１を有する。Ｄａｔａ  Ｔａｂｌｅ  “Ａｐｐｌｉｃａｔｉｏｎ  Ａｃｃｏｕｎｔ  Ｌｉｓｔ”９０１は、エンド・ユーザが使用するＳｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍの一覧である。
【００６８】
Ｄａｔａ  Ｔａｂｌｅ  “Ａｐｐｌｉｃａｔｉｏｎ  Ａｃｃｏｕｎｔ  Ｌｉｓｔ”９０１のレコードは、カラム“Ａｐｐｌｉｃａｔｉｏｎ  ＩＤ”、カラム“ＢＣ  Ａｃｃｏｕｎｔ  ＩＤ”、カラム“Ｓｅｃｒｅｔ  Ｋｅｙ”、カラム“ＵＲＩ”を有する。カラム“ＵＲＩ”は、Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ８０６の使用者が、使用するＳｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍへ接続先ＵＲＬを保持する。
【００６９】
上述のように、サーバ又はエンド・ユーザ・デバイスは計算機構成を有することができる。計算機構成において、プロセッサは、記憶装置に格納されているプログラムを実行することで、様々な機能部として動作することができる。以下において、プログラムを主語とする文章は、プロセッサ又はプロセッサを含む装置を主語とすることができる。また、サーバ及びエンド・ユーザ・デバイスの機能の少なくとも一部は、プロセッサと異なるＬＳＩによって実現されてもよい。さらに、同サーバ及びエンド・ユーザ・デバイスは、クラウドコンピューティングサービスが提供する仮想マシンによって実現してもよい。
【００７０】
以上で、システムの構成を説明した。次に、動作フローの詳細説明の前に、本システムの主要動作の概要を説明する。図１０は、サーバ１０５（第２のサーバ）のＳｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１から、サーバ１０９（第１のサーバ）のローカル・データベース４０７が保持するデータベース・テーブルのデータをアクセスするための主なデータの流れを示している。図１０において、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２及びＤＢＭＳ  Ｐｒｏｇｒａｍ４０３を指示する破線矩形は、それぞれのプログラム４０２及び４０３が有する機能を示す。
【００７１】
エンド・ユーザ・デバイス１１０からの要求に応答して、サーバ１０５のＳｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１は、サーバ１０９のローカル・データベース４０７へのクエリを生成する。Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１は、サーバ１０５のＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２経由で、サーバ１０５のＭａｎａｇｅｍｅｎｔ  ＤＢ  のＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３（クエリ格納領域）に書き込む。
【００７２】
サーバ１０５及び１０９を含む複数のサーバが保持するＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、パケット“ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ”１００１を、信頼関係１１８に基づいて、転送して、サーバ１０５のＭａｎａｇｅｍｅｎｔ  ＤＢ４０６への更新を自サーバのＭａｎａｇｅｍｅｎｔ  ＤＢ４０６に反映する。なお、本例では、クエリについての格納領域６０３、６０４の更新を説明するが、いずれかのサーバにおけるＭａｎａｇｅｍｅｎｔ  ＤＢ４０６に更新は、ブロックチェーン・ネットワーク上の全てのサーバのＭａｎａｇｅｍｅｎｔ  ＤＢ４０６に反映される。
【００７３】
各サーバが保持するＤＢＭＳ  Ｐｒｏｇｒａｍ４０３は、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２を介して、Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６が保持するＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３（クエリ格納領域）の内容更新を判定して、クエリ情報を取得して、クエリを実行する。
【００７４】
ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３は、実行応答を、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２を介して、又は、直接に、Ｒｅｓｐｏｎｓｅ  Ｄｅｓｔｉｎａｔｉｏｎ６０７が示すクエリ送信元に返送する。
【００７５】
例えば、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３は、返送するデータのサイズに基づいて、いずれの方法で返送するか決定する。例えば、データサイズが規定値以下である場合に、実行応答は、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２（ブロックチェーン・ネットワーク／プロトコル）を介して、ブロックチェーン・ネットワークのパケット１００７として、クエリ送信元を含む複数のサーバに転送される。データサイズが規定値より大きい場合に、実行応答は、共有情報格納領域に格納することなく、インターネット１０２上のアウトバンドのパケット１００８として、返送される。
【００７６】
図１１は、例として、サーバ１０９のＤＢＭＳ  Ｐｒｏｇｒａｍ４０３が管理するＬｏｃａｌ  ＤＢ４０７が、他のサーバに複製されている構成を示す。Ｌｏｃａｌ  ＤＢ４０７が、長大なデータを多く保持している場合に、本構成例は好適である。
【００７７】
サーバ１０９のＤＢＭＳ  Ｐｒｏｇｒａｍ４０３は、ブロックチェーン・ネットワークの信頼関係１１０９、１１１０を有するサーバ１０７、１０８が、Ｌｏｃａｌ  ＤＢ４０７の複製を持つように動作する。本例において、サーバ１０７、１０８は、サーバ１０９のＰｅｅｒ  Ｌｉｓｔ５０２に記載の全てのサーバである。サーバ１０７、１０８は、Ｐｅｅｒ  Ｌｉｓｔ５０２内のサーバの一部でもよい。
【００７８】
サーバ１０９のＤＢＭＳ  Ｐｒｏｇｒａｍ４０３が、サーバ１０９のＳｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１へ、クエリの実行結果を返す場合、Ｌｏｃａｌ  ＤＢ４０７の複製を持つサーバの情報をクエリの実行結果に含める。本例において、サーバ１０９は、サーバ１０９のＰｅｅｒ  Ｌｉｓｔ５０２を実行結果としてＰａｙｌｏａｄに含める。Ｌｏｃａｌ  ＤＢ４０７の複製を有するサーバが、Ｐｅｅｒ  Ｌｉｓｔ５０２の一部のサーバである場合、当該一部のサーバのリストが含められる。
【００７９】
これにより、クエリ応答を取得したＳｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１は、クエリ応答が保持するＰｅｅｒ  Ｌｉｓｔ５０２にある、サーバ１０９のＬｏｃａｌ  ＤＢ４０７の複製を有する他サーバからもクエリ結果を得るように動作できる。１台以上の他サーバからも並列にクエリ結果を得られるようになるので、クエリ結果の取得時間を短縮し、ＩＴリソースによる性能の頭打ちを軽減し、性能を向上できる。  以下、各プログラムの動作の詳細を説明する。
【００８０】
図１２は、Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１の動作フロー例である。Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１は、まず、動作ブロック１２０１を実行する。動作ブロック１２０１にて、Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ１１０からのデータベース問合せ要求を受信し、動作ブロック１２０２を実行する。
【００８１】
動作ブロック１２０２にて、Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１は、ＤＢ  Ｔａｂｌｅ  Ｌｉｓｔ６０１を参照して、当該データベース問合せと連番を合わせたレコードを生成し、自サーバのＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２に、当該レコードと共にトランザクション送信を要求する。トランザクション送信は、自サーバのＭａｎａｇｅｍｅｎｔ  ＤＢ４０６のＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３に情報を書き込む要求である。
【００８２】
Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１は、次に、動作ブロック１２０３を実行する。動作ブロック１２０３にて、Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１は、自サーバのＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２に、Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６のＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ６０４からのトランザクション受信を要求する。当該トランザクション受信の要求は、Ｐａｙｌｏａｄ６０４の内容（情報）の取得要求である。
【００８３】
当該Ｐａｙｌｏａｄ６０４が保持する連番が、上記トランザクション送信要求されたＴｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３の連番と異なる場合は、Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１は、トランザクション受信の要求を繰り返し、動作ブロック１２０４を実行する。
【００８４】
動作ブロック１２０４にて、Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１は、上記ＤＢ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ６０４が保持する実行結果を、Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ１１０へ送信し、終了する。以上により、Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ１１０に対して、データベース管理サービスを提供できる。
【００８５】
図１３は、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２の動作フロー例である。ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、まず、動作ブロック１３０１を実行する。動作ブロック１３０１にて、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、受信した要求がＢＣトランザクション送信か否か判定する。ＢＣトランザクション送信であれば、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、動作ブロック１３０２を実行する。そうでなければ、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、動作ブロック１３０４を実行する。
【００８６】
動作ブロック１３０２にて、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、受け取ったデータを、自サーバのＭａｎａｇｅｍｅｎｔ  ＤＢ４０６のＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３のＰａｙｌｏａｄとして書き込み、動作ブロック１３０３を実行する。動作ブロック１３０３にて、自サーバのＭａｎａｇｅｍｅｎｔ  ＤＢ４０６の変更内容を、Ｐｅｅｒ  Ｌｉｓｔ５０２にある全てのサーバのＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２へ送信し、終了する。
【００８７】
動作ブロック１３０４にて、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、他のサーバのＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２から受信したＭａｎａｇｅｍｅｎｔ  ＢＤ４０６の変更内容を、自サーバのＭａｎａｇｅｍｅｎｔ  ＤＢ４０６へ反映する。ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、Ｐｅｅｒ  Ｌｉｓｔ５０２にあるサーバのＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２へ、変更内容を転送し、動作ブロック１３０５を実行する。これにより、Ｐｅｅｒ  Ｌｉｓｔ５０２が示す信頼関係を介して、Ｍａｎａｇｅｍｅｎｔ  ＢＤ４０６の変更内容が、ブロックチェーン・ネットワークの全てのサーバに伝播する。
【００８８】
動作ブロック１３０５にて、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、受信した要求がＢＣトランザクション受信か否かを判定する。ＢＣトランザクション受信であれば、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、動作ブロック１３０６を実行する。そうでなければ、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、フローを終了する。
【００８９】
動作ブロック１３０６にて、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６内の指定されたＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ６０４のＰａｙｌｏａｄ（内容）を、呼び出し元のプログラムに応答し、終了する。なお、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２は、Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６内の指定されたＰａｙｌｏａｄが更新されるのを待ってもよい。
【００９０】
図１４は、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３の動作フロー例である。ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３は、まず、動作ブロック１４０１を実行する。動作ブロック１４０１は、自サーバのＭａｎａｇｅｍｅｎｔ  ＤＢ４０６内のＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３について、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２に、トランザクション受信を要求する。
【００９１】
ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３は、ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３から、データ種別、データベース問合せ、連番を取得する。データ種別が、「ＤＢＭＳ」でなければ、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３は、繰り返しトランザクション受信を要求し、動作ブロック１４０２を実行する。
【００９２】
また、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３は、Ｌｏｃａｌ  Ａｃｃｏｕｎｔ  Ｌｉｓｔ５０３を参照し、アクセス先が自ら管理しているテーブルであるか判定する。自ら管理するテーブルではない場合、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３は、繰り返しトランザクション受信を要求し、動作ブロック１４０２を実行する。
【００９３】
動作ブロック１４０２にて、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３は、上記データベース問合せを、Ｌｏｃａｌ  ＤＢ４０７に対して実行し、結果を得て、動作ブロック１４０３を実行する。動作ブロック１４０３にて、ＤＢＭＳ  Ｐｒｏｇｒａｍ４０３は、当該結果とＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３が保持する連番を合わせて、Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６内のＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ６０４のＰａｙｌｏａｄとして、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２へトランザクション送信を要求し、終了する。
【００９４】
図１５は、Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ８０６の動作フローである。Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ８０６は、まず、動作ブロック１５０１を実行する。動作ブロック１５０１にて、Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ８０６は、Ｕｓｅｒ  ＩＦ経由で入力されたデータベース問合せを、例えば、サーバ１０５のＳｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１（ａｃｃｅｓｓｉｎｇ  ｔｏ  ＤＢ（Ｘ））へ送信し、動作ブロック１５０２を実行する。
【００９５】
動作ブロック１５０２にて、Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ８０６は、サーバ１０５のＳｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１（ａｃｃｅｓｓｉｎｇ  ｔｏ  ＤＢ（Ｘ））からの応答を、Ｕｓｅｒ  ＩＦ経由で表示して、終了する。
【００９６】
以上で、本実施例のシステム構成及び動作を説明した。本実施例により、サプライチェーンに参加する企業のサーバは、ブロックチェーン・ネットワークへの参加することで、ブロックチェーン・ネットワークに参加する他のサーバのデータベースにアクセスできるようになる。これにより、ＤＢＭＳプログラムに、サーバ・アプリケーション・プログラムをサポートするためのプログラム追加も不要なり、サプライチェーンに参加のためのシステム構築が容易になり、ビジネスのアジリティ向上が期待できる。
【００９７】
多数の企業に散在するアプリケーションから共有される長大なデータに関しては、特定のローカル・データベースに保持されると、個々の企業のＩＴインフラ（例えば、サーバ、データストレージ、ネットワーク）の性能に制限される。本実施例の構成は、複数のローカル・データベースに分散してデータを格納することができるので、長大な共有データへのアクセス性能の向上が期待できる。
【００９８】
なお、ローカル・データベース及び管理データベースが保持するデータは、暗号化やデータ圧縮されていてもよく、その場合、データが処理される前に暗号や圧縮が復号される手段が備わっていればよい。
【００９９】
ＤＢＭＳプログラムは、リレーショナル・データベース管理システム（ＲＤＢＭＳ）が、一般的に採用され、その場合のクエリ情報は、ＳＱＬ言語により表現される。Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒインターフェスを採用するＫｅｙ  Ｖａｌｕｅ  Ｓｔｏｒａｇｅ（又は、Ｏｂｊｅｃｔ  Ｓｔｏｒａｇｅ）を、ＤＢＭＳに採用する場合、クエリ情報は、ＲＥＳＴ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅで表記されたものでもよい。
【０１００】
また、ＨＴＴＰプロトコルを採用するＷｅｂサーバをＤＢＭＳプログラムとして採用する場合、クエリ情報として、ＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で表現されたものでもよい。クエリ情報は、それぞれ、採用するデータベース管理システム・プログラムの仕様に合わせたものを、使用すればよい。
【０１０１】
本実施例のデータベースへのアクセスは、サプライチェーンとは異なるシステムに適用することができる。いずれのシステムにおいても、本実施例により、ブロックチェーン・ネットワークへの参加することで、迅速にかつ容易に他のサーバのデータベースにアクセスできるようになる。また、システムは、ブロックチェーン技術とは異なる技術により、データベース管理サービスの提供のための情報を共有してもよい。
【０１０２】
ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３及びＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ６０４に代わり、一般的なオペレーティング・システム・プログラムにおいてプロセスを管理や制御するために採用されるプロセス制御ブロックのデータ形式を採用してもよい。
【０１０３】
Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ４０１からのクエリを実行するプロセスとして、ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２を介して、他のＳｅｒｖｅｒともクエリを共有する。他のサーバは、プロセス制御ブロックの内容に基づき、クエリを実行するためのプロセスを起動する。
【０１０４】
これにより、データベース管理システム以外のプログラムでも、迅速に、複数のサーバで共有し使用することができるようになる。なお、ここで記載の「プロセス」は、「ジョブ」、「タスク」、「スレッド」と読み替えてもよい。また、「プロセス制御ブロック」を、一般的なネットワーク・バランサ・プログラムで採用される「イベント制御ブロック」とも、読み替えてもよい。
【実施例２】
【０１０５】
図１６は、実施例２のシステム構成例を示す。本システム構成例は、実施例１のシステム構成例と異なり、Ｌｏｃａｌ  ＤＢ４０７をＤＢＭＳ  Ｐｒｏｇｒａｍ４０３で管理せず、ブロックチェーン・プラットフォームで管理する。図１６は、本実施例のシステム構成例における主なデータの流れを示している。
【０１０６】
本構成例において、サーバ１０９は、二つのブロックチェーン・ネットワーク１０３及び２０３に接続されている。本構成例において、実施例１におけるＤＢＭＳ  Ｐｒｏｇｒａｍ４０３の代わりに、Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４が動作する。Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、異なるブロックチェーン・ネットワーク間で、ＢＣトランザクションを仲介するプログラムモジュールである。Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４を指示する破線矩形内には、Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４の機能が示されている。
【０１０７】
サーバ１０９は、さらに、実施例１の構成に加えて、ブロックチェーン・ネットワーク２０３でのＢＣトランザクションのためのＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４１２を有する。図１６は示していないが、サーバ１０９は、ブロックチェーン・ネットワーク１０３及び２０３のそれぞれに対して、Ｓｅｒｖｅｒ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｄＡＴＡ４０５及びＭａｎａｇｅｍｅｎｔ  ＤＢ４０６を有する。ブロックチェーン・ネットワーク２０３用のＭａｎａｇｅｍｅｎｔ  ＤＢ４０６は、第２の共有情報格納領域である。ＤＢ  Ｔａｂｌｅ  Ｌｉｓｔ６０１は、ブロックチェーン・ネットワーク１０３及び２０３に共通であり、双方のテーブルを示す。
【０１０８】
図１７は、Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４の動作フロー例である。ここでは、ブロックチェーン・ネットワーク１０３からクエリのアクセス先が、ブロックチェーン・ネットワーク２０３に含まれるサーバ（第３のサーバ）のＬｏｃａｌ  ＤＢであり、ブロックチェーン・ネットワーク２０３に転送される。また、ブロックチェーン・ネットワーク２０３からのクエリ応答が、ブロックチェーン・ネットワーク１０３に転送される。
【０１０９】
Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、まず、動作ブロック１７０１を実行する。動作ブロック１７０１にて、Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、ブロックチェーン・ネットワーク１０３のＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２に、Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６内のＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３について、トランザクション受信を要求する。
【０１１０】
Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、当該ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３から、データ種別、データベース問合せ、連番を取得する。ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３からの情報を得るまで、Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、繰り返しトランザクション受信を要求し、動作ブロック１７０２を実行する。
【０１１１】
動作ブロック１７０２にて、Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、当該ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３が保持するクエリを、他のブロックチェーン・ネットワーク２０３へＢＣトランザクションとして転送し、動作ブロック１７０３を実行する。
【０１１２】
具体的には、Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、ブロックチェーン・ネットワーク２０３のＤＢ  Ｔａｂｌｅ  Ｌｉｓｔ６０１を参照して、アクセス先がブロックチェーン・ネットワーク２０３のＬｏｃａｌ  ＤＢであると判定する。Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、取得したクエリをブロックチェーン・ネットワーク２０３用のＭａｎａｇｅｍｅｎｔ  ＤＢ４０６のＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３に書き込むため、ブロックチェーン・ネットワーク２０３のＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４１２に、トランザクション送信を要求する。
【０１１３】
ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４１２は、ブロックチェーン・ネットワーク２０３のＰｅｅｒ  Ｌｉｓｔ５０２のサーバに、Ｍａｎａｇｅｍｅｎｔ  ＤＢ４０６の更新を送信する。
【０１１４】
動作ブロック１７０３にて、Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、ブロックチェーン・ネットワーク２０３のＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４１２に、ブロックチェーン・ネットワーク２０３用のＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ６０４からの、ＢＣトランザクション受信を要求する。Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、上記クエリに対する応答（上記トランザクション送信の結果）を取得する。
【０１１５】
さらに、Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、上記トランザクション送信の結果と、ブロックチェーン・ネットワーク１０３のＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  Ｉｎｑｕｉｒｙ６０３が保持する連番とを合わせたレコードを生成する。
【０１１６】
Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、当該レコードを、ブロックチェーン・ネットワーク１０３のＭａｎａｇｅｍｅｎｔ  ＤＢ４０６内のＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ  ｆｏｒ  ＤＢ  ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ６０４に書き込む。具体的には、Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、ブロックチェーン・ネットワーク１０３のＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ４０２へ、当該レコードについてトランザクション送信を要求する。その後、Ｒｅｌａｙ  Ｐｒｏｇｒａｍ４０４は、終了する。
【０１１７】
上述のように、本実施例は、異なるブロックチェーン・ネットワーク（異なるブロックチェーン技術による他の情報共有グループ）と情報を共有するため、クエリ情報を、異種のブロックチェーン技術を採用したプログラムモジュールのアプリケーション・プログラミング・インターフェイス（ＡＰＩ）へ変換するＲｅｌａｙ  Ｐｒｏｇｒａｍを備える。
【０１１８】
本実施例により、異なるブロックチェーン・ネットワークのデータベースのアクセスも可能になり、システム構築のアジリティ向上の他、柔軟性向上の期待もできる。具体的には、本実施例により、異種ブロックチェーン技術の混在する環境での情報共有において、サーバ・アプリケーション・プログラムは、違いを考慮することなく動作が可能となり、サーバ・アプリケーション・プログラムの改変も不要であり、多様な業務への対応が容易となる。
【０１１９】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１２０】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１２１】
１０１：サプライチェーンの範囲を模式的に示す境界線
１０２：Ｉｎｔｅｒｎｅｔ
１０３：ブロックチェーン・ネットワーク（Ｂｌｏｃｋｃｈａｉｎ  Ｎｅｔｗｏｒｋ）
１０４、１０５、１０６、１０７、１０８、１０９：サーバ（Ｓｅｒｖｅｒ）
１１０：エンド・ユーザ・デバイス（Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ）
１１５：操作の流れ
１１６、１１７：クエリの流れ
１１８：信頼関係
４０１：サーバ・アプリケーション・プログラム（Ｓｅｒｖｅｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ）
２０３：異種のブロックチェーン・ネットワーク
３０１：サーバ（Ｓｅｒｖｅｒ）
３０２：マイクロプロセッサ・ユニット（ＭＰＵ）
３０３：メモリ（Ｍｅｍｏｒｙ）
３０４：ネットワーク・インタフェース・カード（ＮＩＣ）
３０５：データバス
４０２：ＢＣサービス・プログラム（ＢＣ  Ｓｅｒｖｉｃｅ  Ｐｒｏｇｒａｍ）
４０３：ＤＢＭＳプログラム（ＤＢＭＳ  Ｐｒｏｇｒａｍ）
４０４：リレー・プログラム（Ｒｅｌａｙ  Ｐｒｏｇｒａｍ）
４０５：サーバ構成データ（Ｓｅｒｖｅｒ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ）
４０６：管理データベース（Ｍａｎａｇｅｍｅｎｔ  ＤＢ）
４０７：ローカル・データベース（Ｌｏｃａｌ  ＤＢ）
５０１：データベース識別情報（Ｄａｔａｂａｓｅ  ＩＤ）
５０２：データＴａｂｌｅ「信頼一覧」（Ｐｅｅｒ  Ｌｉｓｔ）
５０３：データＴａｂｌｅ「ローカル・アカウント一覧」
６０１：ＤＢ  Ｔａｂｌｅ「データベース・テーブル一覧」
６０２：ＤＢ  Ｔａｂｌｅ「グローバル・アカウント一覧」
６０３：クエリ情報（Ｉｎｑｕｉｒｙ）
６０４：レスポンス情報（Ｒｅｓｐｏｎｓｅ）
６０５、６０９：データ種別（Ｄａｔａ  Ｋｉｎｄ）
６０６：データベースクエリ情報（ＤＢ  Ｉｎｑｕｉｒｙ）
６０７：応答先情報（Ｒｅｓｐｏｎｓｅ  Ｄｅｓｔｉｎａｔｉｏｎ）
６０８、６１１：クエリ識別情報（ＤＢ  Ｉｎｑｕｉｒｙ  ＩＤ）
６１０：クエリ応答情報（ＤＢ  Ｉｎｑｕｉｒｙ  Ｒｅｓｐｏｎｓｅ）
７０１：ＤＢ  Ｔａｂｌｅ「ＡＡＡ」
７０１：ＤＢ  Ｔａｂｌｅ「ＢＢＢ」
８０１：マイクロプロセッサ・ユニット（ＭＰＵ）
８０２：メモリ（Ｍｅｍｏｒｙ）
８０３：ネットワーク・インタフェース・カード（ＮＩＣ）
８０４：ユーザ・インタフェース（Ｕｓｅｒ  ＩＦ）
８０５：データバス
８０６：エンド・ユーザ・デバイス・アプリケーション・プログラム（Ｅｎｄ  Ｕｓｅｒ  Ｄｅｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ）
８０７：デバイス構成データ（Ｄｅｖｉｃｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ）
９０１：データＴａｂｌｅ「アプリケーション・アカウント一覧」
１００１：クエリのためのＢＣトランザクション・パケット（ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｃｋｅｔ  ｆｏｒ  Ｉｎｑｕｉｒｙ）
１００２：ＢＣトランザクション・パケットのペイロード（ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｙｌｏａｄ）
１００３：データ種別（Ｄａｔａ  Ｋｉｎｄ）
１００４：クエリ（ＤＢ  Ｉｎｑｕｉｒｙ）
１００５：応答先（Ｒｅｓｐｏｎｓｅ  Ｄｅｓｔｉｎａｔｉｏｎ）
１００６：クエリ識別情報（ＤＢ  Ｉｎｑｕｉｒｙ  ＩＤ）
１００７：クエリ応答のためのＢＣトランザクション・パケット（ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｃｋｅｔ  ｆｏｒ  ｉｎｑｕｉｒｙ  ｒｅｓｐｏｎｓｅ）
１００８：アウトバンドによるクエリ結果のパケット（Ｏｕｔｂｏｕｎｄ  Ｐａｃｋｅｔ  ｆｏｒ  Ｉｎｑｕｉｒｙ  Ｒｅｓｕｌｔ）
１１０１：信頼一覧を保持したＢＣトランザクション・パケット（ＢＣ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐａｃｋｅｔ  ｆｏｒ  Ｐｅｅｒ  Ｌｉｓｔ）
１１０２、１１０３、１１０４：クエリ結果の流れ
１１０９、１１１０：信頼関係
１２０１：異種のＢＣトランザクション・パケット
【図１】
2020119207.tif 000003
【図２】
2020119207.tif 000004
【図３】
2020119207.tif 000005
【図４】
2020119207.tif 000006
【図５】
2020119207.tif 000007
【図６】
2020119207.tif 000008
【図７】
2020119207.tif 000009
【図８】
2020119207.tif 000010
【図９】
2020119207.tif 000011
【図１０】
2020119207.tif 000012
【図１１】
2020119207.tif 000013
【図１２】
2020119207.tif 000014
【図１３】
2020119207.tif 000015
【図１４】
2020119207.tif 000016
【図１５】
2020119207.tif 000017
【図１６】
2020119207.tif 000018
【図１７】
2020119207.tif 000019