(57)【要約】  ピアツーピアブロックチェーンネットワークにおいてデータを管理するマルチテナントサーバのための方法について記載する。当該方法は、スマートコントラクトの１つ以上の条件がいつ履行されたかを判定するために、ピアツーピアブロックチェーンネットワーク内の第１のテナントの第１の物理オブジェクトの１つ以上のフィールドを監視するステップと、スマートコントラクトの１つ以上の条件が第１のテナントの第１の物理オブジェクトにより満たされたと判定するステップと、スマートコントラクトの１つ以上の条件が第１のテナントの第１の物理オブジェクトにより満たされたという判定に応答して、１つ以上の条件に関連づけられた、スマートコントラクトの１つ以上の動作を実行するステップと、を含み、１つ以上の動作は、ピアツーピアブロックチェーンネットワーク内の第２のテナントの第２の物理オブジェクトに関連して実行される。
2022501714.tif 000002
【特許請求の範囲】
【請求項１】
ピアツーピアブロックチェーンネットワークにおいてデータを管理するマルチテナントサーバのための方法であって、
前記マルチテナントサーバにより、スマートコントラクトの１つ以上の条件がいつ履行されたかを判定するために、前記ピアツーピアブロックチェーンネットワーク内の第１のテナントの第１の物理オブジェクトの１つ以上のフィールドを監視するステップと、
前記マルチテナントサーバにより、前記スマートコントラクトの１つ以上の条件が前記第１のテナントの前記第１の物理オブジェクトにより満たされたと判定するステップと、
前記マルチテナントサーバにより、前記スマートコントラクトの前記１つ以上の条件が前記第１のテナントの前記第１の物理オブジェクトにより満たされたという判定に応答して、前記１つ以上の条件に関連づけられた、前記スマートコントラクトの１つ以上の動作を実行するステップと、
を含み、
前記１つ以上の動作は、前記ピアツーピアブロックチェーンネットワーク内の第２のテナントの第２の物理オブジェクトに関連して実行される、方法。
【請求項２】
前記１つ以上の動作は、
前記ピアツーピアブロックチェーンネットワーク内の前記第２のテナントのために前記マルチテナントサーバにより、トランザクションオブジェクトを生成することと、
前記第２のテナントのために前記マルチテナントサーバにより、前記トランザクションオブジェクトを前記ピアツーピアブロックチェーンネットワーク内の第３のテナントに利用可能にして、前記第２のテナントの前記第２の物理オブジェクト内のデータに基づいて前記第３のテナントに対応する第３の物理オブジェクトを改変するための合意を得るよう試みることと、
を含む、請求項１に記載の方法。
【請求項３】
前記マルチテナントサーバにより、前記ピアツーピアブロックチェーンネットワークのための交換オブジェクトを生成するステップであり、前記交換オブジェクトは、交換フィールドのセット、及び、前記交換フィールドのセット内の各交換フィールドと前記第１の物理オブジェクト、前記第２の物理オブジェクト、及び前記第３の物理オブジェクトのフィールドと間のマッピングを含む、ステップ、
をさらに含む請求項２に記載の方法。
【請求項４】
前記トランザクションオブジェクトは、前記交換フィールドのセットと、前記マッピングに対応する交換フィールド内の前記第２の物理オブジェクトからのデータ値とを含む、請求項３に記載の方法。
【請求項５】
前記マルチテナントサーバにより、前記ピアツーピアブロックチェーンネットワークに前記スマートコントラクトを追加するための合意を判定するステップ、
をさらに含む請求項１に記載の方法。
【請求項６】
前記マルチテナントサーバにより、前記ピアツーピアブロックチェーンネットワークにおける前記スマートコントラクトのための合意の判定に応答して、前記ピアツーピアブロックチェーンネットワークに対して前記スマートコントラクトをコミットするステップ、
をさらに含み、
前記ピアツーピアブロックチェーンネットワークに対して前記スマートコントラクトをコミットするステップは、前記第１のテナント、前記第２のテナント、及び前記第３のテナントを含む前記ピアツーピアブロックチェーンネットワーク内の全てのテナントの台帳に、第１のブロックセットを追加することを含む、請求項５に記載の方法。
【請求項７】
前記マルチテナントサーバにより、前記ピアツーピアブロックチェーンネットワークにおける前記スマートコントラクトへの修正のための合意を判定するステップと、
前記マルチテナントサーバにより、前記ピアツーピアブロックチェーンネットワークにおける前記修正のための合意の判定に応答して、前記ピアツーピアブロックチェーンネットワークに対して前記スマートコントラクトへの前記修正をコミットするステップと、
をさらに含み、
前記ピアツーピアブロックチェーンネットワークに対して前記修正をコミットするステップは、前記第１のテナント、前記第２のテナント、及び前記第３のテナントを含む前記ピアツーピアブロックチェーンネットワーク内の全ての前記テナントの前記台帳に、第２のブロックセットを追加することを含む、請求項６に記載の方法。
【請求項８】
命令を含む非一時的マシン読取可能記憶媒体であって、前記命令は、マルチテナントサーバのプロセッサにより実行されたときに前記プロセッサに、
スマートコントラクトの１つ以上の条件がいつ履行されたかを判定するために、前記ピアツーピアブロックチェーンネットワーク内の第１のテナントの第１の物理オブジェクトの１つ以上のフィールドを監視することと、
前記スマートコントラクトの１つ以上の条件が前記第１のテナントの前記第１の物理オブジェクトにより満たされたと判定することと、
前記スマートコントラクトの前記１つ以上の条件が前記第１のテナントの前記第１の物理オブジェクトにより満たされたという判定に応答して、前記１つ以上の条件に関連づけられた、前記スマートコントラクトの１つ以上の動作を実行することと、
をさせ、
前記１つ以上の動作は、前記ピアツーピアブロックチェーンネットワーク内の第２のテナントの第２の物理オブジェクトに関連して実行される、非一時的マシン読取可能記憶媒体。
【請求項９】
前記１つ以上の動作は、
前記ピアツーピアブロックチェーンネットワーク内の前記第２のテナントのために前記マルチテナントサーバにより、トランザクションオブジェクトを生成することと、
前記第２のテナントのために前記マルチテナントサーバにより、前記トランザクションオブジェクトを前記ピアツーピアブロックチェーンネットワーク内の第３のテナントに利用可能にして、前記第２のテナントの前記第２の物理オブジェクト内のデータに基づいて前記第３のテナントに対応する第３の物理オブジェクトを改変するための合意を得るよう試みることと、
を含む、請求項８に記載の非一時的マシン読取可能記憶媒体。
【請求項１０】
前記命令はさらに、前記プロセッサに、
前記ピアツーピアブロックチェーンネットワークのための交換オブジェクトを生成することであり、前記交換オブジェクトは、交換フィールドのセット、及び、前記交換フィールドのセット内の各交換フィールドと前記第１の物理オブジェクト、前記第２の物理オブジェクト、及び前記第３の物理オブジェクトのフィールドと間のマッピングを含む、こと、
をさせ、
前記トランザクションオブジェクトは、前記交換フィールドのセットと、前記マッピングに対応する交換フィールド内の前記第２の物理オブジェクトからのデータ値とを含む、請求項９に記載の非一時的マシン読取可能記憶媒体。
【請求項１１】
前記命令はさらに、前記プロセッサに、
前記ピアツーピアブロックチェーンネットワークに前記スマートコントラクトを追加するための合意を判定することと、
前記ピアツーピアブロックチェーンネットワークにおける前記スマートコントラクトのための合意の判定に応答して、前記ピアツーピアブロックチェーンネットワークに対して前記スマートコントラクトをコミットすることであり、前記ピアツーピアブロックチェーンネットワークに対して前記スマートコントラクトをコミットすることは、前記第１のテナント、前記第２のテナント、及び前記第３のテナントを含む前記ピアツーピアブロックチェーンネットワーク内の全てのテナントの台帳に、第１のブロックセットを追加することを含む、ことと、
前記ピアツーピアブロックチェーンネットワークにおける前記スマートコントラクトへの修正のための合意を判定することと、
前記ピアツーピアブロックチェーンネットワークにおける前記修正のための合意の判定に応答して、前記ピアツーピアブロックチェーンネットワークに対して前記スマートコントラクトへの前記修正をコミットすることと、
をさせ、
前記ピアツーピアブロックチェーンネットワークに対して前記修正をコミットすることは、前記第１のテナント、前記第２のテナント、及び前記第３のテナントを含む前記ピアツーピアブロックチェーンネットワーク内の全ての前記テナントの前記台帳に、第２のブロックセットを追加することを含む、請求項８に記載の非一時的マシン読取可能記憶媒体。
【請求項１２】
ピアツーピアブロックチェーンネットワークにおいてデータを管理するマルチテナントサーバであって、
プロセッサと、
命令を記憶するメモリと、を備え、
前記命令は、前記プロセッサにより実行されたときに前記プロセッサに、
スマートコントラクトの１つ以上の条件がいつ履行されたかを判定するために、前記ピアツーピアブロックチェーンネットワーク内の第１のテナントの第１の物理オブジェクトの１つ以上のフィールドを監視することと、
前記スマートコントラクトの１つ以上の条件が前記第１のテナントの前記第１の物理オブジェクトにより満たされたと判定することと、
前記スマートコントラクトの前記１つ以上の条件が前記第１のテナントの前記第１の物理オブジェクトにより満たされたという判定に応答して、前記１つ以上の条件に関連づけられた、前記スマートコントラクトの１つ以上の動作を実行することと、
をさせ、
前記１つ以上の動作は、前記ピアツーピアブロックチェーンネットワーク内の第２のテナントの第２の物理オブジェクトに関連して実行される、マルチテナントサーバ。
【請求項１３】
前記１つ以上の動作は、
前記ピアツーピアブロックチェーンネットワーク内の前記第２のテナントのために当該マルチテナントサーバにより、トランザクションオブジェクトを生成することと、
前記第２のテナントのために当該マルチテナントサーバにより、前記トランザクションオブジェクトを前記ピアツーピアブロックチェーンネットワーク内の第３のテナントに利用可能にして、前記第２のテナントの前記第２の物理オブジェクト内のデータに基づいて前記第３のテナントに対応する第３の物理オブジェクトを改変するための合意を得るよう試みることと、
を含む、請求項１２に記載のマルチテナントサーバ。
【請求項１４】
前記命令はさらに、前記プロセッサに、
前記ピアツーピアブロックチェーンネットワークのための交換オブジェクトを生成することであり、前記交換オブジェクトは、交換フィールドのセット、及び、前記交換フィールドのセット内の各交換フィールドと前記第１の物理オブジェクト、前記第２の物理オブジェクト、及び前記第３の物理オブジェクトのフィールドと間のマッピングを含む、こと、
をさせ、
前記トランザクションオブジェクトは、前記交換フィールドのセットと、前記マッピングに対応する交換フィールド内の前記第２の物理オブジェクトからのデータ値とを含む、請求項１３に記載のマルチテナントサーバ。
【請求項１５】
前記命令はさらに、前記プロセッサに、
前記ピアツーピアブロックチェーンネットワークに前記スマートコントラクトを追加するための合意を判定することと、
前記ピアツーピアブロックチェーンネットワークにおける前記スマートコントラクトのための合意の判定に応答して、前記ピアツーピアブロックチェーンネットワークに対して前記スマートコントラクトをコミットすることであり、前記ピアツーピアブロックチェーンネットワークに対して前記スマートコントラクトをコミットすることは、前記第１のテナント、前記第２のテナント、及び前記第３のテナントを含む前記ピアツーピアブロックチェーンネットワーク内の全てのテナントの台帳に、第１のブロックセットを追加することを含む、ことと、
前記ピアツーピアブロックチェーンネットワークにおける前記スマートコントラクトへの修正のための合意を判定することと、
前記ピアツーピアブロックチェーンネットワークにおける前記修正のための合意の判定に応答して、前記ピアツーピアブロックチェーンネットワークに対して前記スマートコントラクトへの前記修正をコミットすることと、
をさせ、
前記ピアツーピアブロックチェーンネットワークに対して前記修正をコミットすることは、前記第１のテナント、前記第２のテナント、及び前記第３のテナントを含む前記ピアツーピアブロックチェーンネットワーク内の全ての前記テナントの前記台帳に、第２のブロックセットを追加することを含む、請求項１２に記載のマルチテナントサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、2018年12月20日に出願された米国特許出願第16/228,528号及び2018年9月19日に出願された米国仮出願第62/733,531号の利益を主張し、これらは参照により本明細書に組み込まれる。
【０００２】
［技術分野］
１つ以上の実装がデータ管理の分野に関し、より具体的には、マルチテナントブロックチェーンネットワークにおけるスマートコントラクトの管理に関する。
【背景技術】
【０００３】
ブロックチェーンは、暗号法を用いてリンク及び安全化されるレコード／ブロックの、継続的に拡張するリストである。詳細には、ブロックチェーン内のあらゆるブロックは、直前のブロックの暗号ハッシュ、現在のブロックのタイムスタンプ、及びトランザクションデータ（例えば、ブロックチェーンネットワーク内のピアに関連づけられた情報の追加／修正）を含むことができる。さらに、ブロックチェーンは、チェーンに追加される新しいブロックを立証／検証するシステムを介してピアツーピアネットワークを通じて共有及び管理することができ、それにより、ブロックチェーン内のブロックは、全ての後続ブロックの改変なしに改変することができず、これは、ネットワークの合意を必要とする。このアーキテクチャは、暗号法の使用を通じてブロック内に記憶された情報のセキュリティ、ピアツーピアネットワークの使用を通じた情報の共有／分散、ブロック追加のコンセンサスの使用を通じた信頼性、並びに暗号法の使用、ブロックのチェーン化／リンク、及びピア分散を通じてブロック内に記憶された情報の不変性（immutability）を可能にする（例えば、ブロックチェーンネットワークの各ピアは、ネットワーク内の全ての立証／検証されたトランザクションの台帳を維持することができる）。
【０００４】
いくつかのブロックチェーンネットワークは、スマートコントラクトで動作することがある。スマートコントラクトは、信頼された第三者なしに実施される、暗号法的に立証可能な契約である。詳細には、スマートコントラクトは、条件のセットと、条件のセット内の１つ以上の条件を満たすことに応答して選択的に実行される動作のセットとを記述するコードを含む。例えば、スマートコントラクトは、第一当事者がタスクを達成したとき、第二当事者からのデジタル通貨が第一当事者のアカウントに転送されることを規定することができる。これらのスマートコントラクトは、ブロックチェーンネットワークに記憶され、それらがブロックチェーンネットワークに含まれることに基づき不変的である。
【０００５】
ブロックチェーンアーキテクチャと対照的に、マルチテナントクラウドアーキテクチャは、共通のデータベース又は他のデータ構造における情報の集中化に依存している。クラウドベースのアーキテクチャは、ブロックチェーンアーキテクチャと比較して、テナントから多くの管理機能を除去して代わりにこれらの機能を集中化システムに集める能力を含む多くの利点を提供するが、これらのアーキテクチャは、データのテナント間通信の間、同じレベルの情報のセキュリティ、信頼性、及び不変性を提供しない。
【図面の簡単な説明】
【０００６】
以下の図は、同様の要素を参照するために同様の参照番号を使用している。以下の図は様々な例示的な実装を示すが、代替的な実装が別記の特許請求の範囲の主旨及び範囲内である。
【図１】一例示的な実装による、マルチテナントサーバを含むコンピューティング環境を示すブロック図を示す。
【図２Ａ】一例示的な実装による、スマートコントラクトの管理を含む、ピアツーピアブロックチェーンネットワークにおいてマルチテナントサーバがデータを管理する方法を示す。
【図２Ｂ】一例示的な実装による、スマートコントラクトの管理を含む、ピアツーピアブロックチェーンネットワークにおいてマルチテナントサーバがデータを管理する方法を示す。
【図３Ａ】一例示的な実装による、テナントシステムごとの別個のブロックチェーンサービスのセットを含むコンピューティング環境を示す。
【図３Ｂ】別の例示的な実装による、共有ブロックチェーンサービスのセットを含むコンピューティング環境を示す。
【図４】一例示的な実装による、テナントシステムのセットに対応する物理オブジェクトを示す。
【図５】一例示的な実装による、交換フィールドと物理オブジェクトのフィールドとの間のマッピングのセットを含む交換オブジェクトを示す。
【図６】一例示的な実装による、テナントシステムに対応するシャドウオブジェクトの一例を示す。
【図７】一例示的な実装による、トランザクションオブジェクトの一例を示す。
【図８】一例示的な実装による、エントリ／ブロックのセットを含むブロックチェーンの一例を示す。
【図９Ａ】一例示的な実装による電子デバイスを示す。
【図９Ｂ】一例示的な実装による、コンピューティング環境及びサーバが実装され得る環境のブロック図を示す。
【発明を実施するための形態】
【０００７】
図１は、一例示的な実装による、コンピューティング環境１００を示すブロック図である。コンピューティング環境１００は、テナントシステム１０２１〜１０２３、マルチテナントサーバ１０４、及び通信ネットワークのセット１０６を含む。この例示的なコンピューティング環境１００において、テナントシステム１０２１〜１０２３は、ピアツーピアブロックチェーンネットワーク１０８の一部であり得、マルチテナントサーバ１０４は、トランザクションキュー１０４Ａ、テナントレベルオブジェクト１０４Ｂ、ネットワークレベルオブジェクト１０４Ｃ、及びブロックチェーンサービス１０４Ｄを介して、ピアツーピアブロックチェーンネットワーク１０８内のテナントシステム１０２１〜１０２３のデータ及び様々なトランザクションを管理するためのクラウド環境を提供する。詳細には、マルチテナントサーバ１０４は、ブロックチェーンサービス１０４Ｄの一部であるスマートコントラクトマネージャ１１２を通じてスマートコントラクトの管理を提供する。
【０００８】
本明細書に記載されるように、テナントシステム１０２１〜１０２３は、マルチテナントサーバ１０４により管理されるマルチテナント環境／システムの一部である。例えば、マルチテナントサーバ１０４は、テナントシステム１０２１〜１０２３に関連づけられたユーザ／テナントがデータを記憶し及び／又は取り出すことができるマルチテナントデータベース管理システム（ＤＢＭＳ）を管理することができる。マルチテナントＤＢＭＳは、ＤＢＭＳのハードウェア及びソフトウェアの様々な要素が１つ以上のテナント（例えば、テナントシステム１０２１〜１０２３）により共有され得るシステムを指す。例えば、所与のサーバ（例えば、マルチテナントサーバ１０４）は、多数のテナントに対する要求（例えば、テナントシステム１０２１〜１０２３により表される）を同時に処理することができ、所与のデータベーステーブルは、潜在的に一層多数のテナントに対するレコードを記憶することができる。テナントシステム１０２１〜１０２３のためのマルチテナント環境／システムを管理することに追加で、上述のように、マルチテナントサーバ１０４は、テナントシステム１０２１〜１０２３のためにピアツーピアブロックチェーンネットワーク１０８を管理することもできる。いくつかの実装において、ピアツーピアブロックチェーンネットワーク１０８は、テナントシステム１０２１〜１０２３からの入力／要求を用いてマルチテナントサーバ１０４により制御される分散ネットワークとして見なされてもよい。
【０００９】
３つのテナント／ピア（例えば、テナントシステム１０２１〜１０２３）で示されているが、他の実装において、ピアツーピアブロックチェーンネットワーク１０８は、より多くの又はより少ないテナント／ピアを含んでもよい。例えば、ピアツーピアブロックチェーンネットワーク１０８は、２つ、４つ、５つ、又はそれ以上のテナント／ピアを、対応するテナントシステム１０２と共に含んでもよい。したがって、３つのテナント／ピアの使用は、説明目的のものである。
【００１０】
いくつかの実装において、テナントシステム１０２のトランザクション生成器１１０は、（１）テナントシステム１０２に関連づけられた物理オブジェクトに新しいレコードを追加するか、又は（２）テナントシステム１０２に関連づけられた物理オブジェクトの既存のレコードを修正する要求を生成することができる。物理オブジェクトは、レコードごとのフィールドのセットを含むことができ、対応するテナントシステム１０２に関連づけられたマルチテナントサーバ１０４のテナントレベルオブジェクト１０４Ｂの部分／パーティションに記憶され、それにより、物理オブジェクトは、テナントシステム１０２のみがアクセス可能である（例えば、テナントシステム１０２２及び１０２３は、テナントシステム１０２１の物理オブジェクトに対して読み取り又は書き込みを許可されない）。要求は、テナントシステム１０２に関連づけられたテナントレベルオブジェクト１０４Ｂの部分／パーティション内のシャドウオブジェクトにおけるレコードの追加をもたらし得る。シャドウオブジェクトは、物理オブジェクトに対してコミットされていないデータ（すなわち、ピアツーピアブロックチェーンネットワーク１０８内のピア間における合意がまだ達成されていないデータ）を表す。シャドウオブジェクトは、トランザクションオブジェクトを生成するためにトランザクションキュー１０４Ａにより使用されてもよく、該トランザクションオブジェクトは、テナントシステム１０２の物理オブジェクトへの提案された追加／修正のための合意を受け取るために、他のテナントシステム１０２に分散され／利用可能にされる。
【００１１】
一実装において、トランザクションオブジェクトのフィールドのセットは、物理オブジェクトのフィールドのサブセットであり、トランザクションオブジェクトのフィールドのセットは、ネットワークレベルオブジェクト１０４Ｃに含まれる交換オブジェクト（exchange  object）により定義される。この実装において、交換オブジェクトは、交換フィールドのセットを含むことができ、これは、トランザクションオブジェクトに含まれることになり、交換オブジェクトの各交換フィールドは、テナントシステム１０２１〜１０２３の物理オブジェクト内のフィールドにマッピングされる。例えば、テナントシステム１０２１の物理オブジェクトは、フィールドＡ〜Ｄを含んでもよく、テナントシステム１０２２の物理オブジェクトは、フィールドＥ〜Ｈを含んでもよく、テナントシステム１０２３の物理オブジェクトは、フィールドＩ〜Ｋを含んでもよい。この例において、ピアツーピアブロックチェーンネットワーク１０８の交換オブジェクトの第１の交換フィールドは、テナントシステム１０２１のフィールドＢ、テナントシステム１０２２のフィールドＦ、及びテナントシステム１０２３のフィールドＩにマッピングされてもよい。同様に、ピアツーピアブロックチェーンネットワーク１０８の交換オブジェクトの第２の交換フィールドは、テナントシステム１０２１のフィールドＣ、テナントシステム１０２２のフィールドＥ、及びテナントシステム１０２３のフィールドＪにマッピングされてもよい。したがって、テナントシステム１０２１の物理オブジェクトのためのレコードを追加／修正する提案を受信したとき、対応するトランザクションオブジェクトは、提案された物理／シャドウオブジェクトのフィールドＢからの値を有する第１の交換フィールドと、提案された物理／シャドウオブジェクトのフィールドＣからの値を有する第２の交換フィールドとを含む。交換オブジェクトは、ピアツーピアブロックチェーンネットワーク１０８において立証（verification）／検証（validation）目的でマッピングメタデータを介して一様なトランザクションオブジェクトを提供する一方で、テナントシステム１０２１がピアツーピアブロックチェーンネットワーク１０８内の他のテナント／ピアに対して情報の特定部分のみを見せることを可能にする（例えば、物理オブジェクト内の機密情報／フィールドは、トランザクションオブジェクトに含まれなくてもよく、該トランザクションオブジェクトは、ピアツーピアブロックチェーンネットワーク１０８内のテナントシステム１０２１〜１０２３間で分散され、後に分散台帳に含まれる）。
【００１２】
本明細書に記載されるように、マルチテナントサーバ１０４は、テナントシステム１０２１〜１０２３のためにピアツーピアブロックチェーンネットワーク１０８の機能の多くを実行することができる。詳細には、マルチテナントサーバ１０４は、テナントシステム１０２１〜１０２３の各々のための仮想空間／組織（organization）を含むことができる。各仮想空間／組織は、対応するテナントシステム１０２１〜１０２３のためのデータ及びアプリケーション／サービスを含むことができ、他のテナントシステム１０２１〜１０２３の全ての他の仮想空間／組織から論理的に別個である。例えば、各仮想空間／組織は、それぞれのテナント／テナントシステム１０２１〜１０２３に対応するテナントレベルオブジェクト１０４Ｂと、ブロックチェーンサービス１０４Ｄの別個のインスタンス化又はブロックチェーンサービス１０４Ｄへの別個のアクセスを含んでもよい。この構成／アーキテクチャにおいて、各テナントシステム１０２１〜１０２３のための仮想空間／組織は、対応するテナントシステム１０２１〜１０２３のために１つ以上のブロックチェーン機能／動作を実行することができる。例えば、テナントシステム１０２１からの、テナントシステム１０２１の物理オブジェクトに新しいレコードを追加／挿入するか又は該物理オブジェクトの既存のレコードを修正／更新する要求の受信に応答して、マルチテナントサーバ１０４は、マルチテナントサーバ１０４内のテナントシステム１０２１の仮想空間／組織にシャドウオブジェクトレコードを生成することができる。応答して、トランザクションキュー１０４Ａは、シャドウオブジェクト内のレコードに対応するトランザクションオブジェクトを、ピアツーピアブロックチェーンネットワーク１０８の交換オブジェクトと、トランザクションオブジェクトが他のテナントシステム１０２２及び１０２３の仮想空間／組織に分散され又はその他の方法で利用可能にされ得るようにする、テナントシステム１０２１の暗号鍵のセットとを使用して、生成することができる。他のテナントシステム１０２２及び１０２３の仮想空間／組織は、その後、トランザクションオブジェクトを分析して、検証／立証が適切であるかどうかを判定してもよい。
【００１３】
トランザクションキュー１０４Ａは、テナントシステム１０２２及び１０２３の仮想空間／組織からの検証／立証を待機することができ、それにより、テナントシステム１０２１の物理オブジェクトへの提案された改変のための合意が達成される。この合意に応答して、リーダ（leader）テナントシステム１０２の仮想空間／組織は、（１）このリーダテナントシステム１０２の対応する物理オブジェクトにおいて（適宜）レコードを追加し、又はレコードを修正し、（２）対応するエントリ／ブロックをこのリーダテナントシステム１０２の分散台帳に追加することができる。その後、リーダテナントシステム１０２の仮想空間／組織は、他の／残りのテナントシステム１０２の仮想空間／組織に対して、それらの物理オブジェクトに対する変更を（交換オブジェクト内に定義されたマッピングに基づいて）コミットし、及び／又は対応するエントリ／ブロックをこれらの他の／残りのテナントシステム１０２の台帳に追加するように、要求を送信することができる。
【００１４】
以下でより詳細に説明するように、テナントシステム１０２１〜１０２３の各々は、対応するトランザクション生成器１１０１〜１１０３を介してブロックチェーンネットワーク１０８内のトランザクションを開始することにより、スマートコントラクトを開始することができる。スマートコントラクトは、条件のセットと、条件のセット内の１つ以上の条件が満たされていることに応答して実行すべき動作のセットを含むことができる。例えば、条件のセットは、患者からの、ピアツーピアブロックチェーンネットワーク１０８において患者の医療レコードを共有／分散するための承認を含んでもよい。この例において、条件が真（True）である（すなわち、ピアツーピアブロックチェーンネットワーク１０８において患者の医療記録を共有／分散するために、患者により承認が提供されている）とき実行される、この条件に対する関連動作は、患者の医療レコードの、ピアツーピアブロックチェーンネットワーク１０８内のテナントシステム１０２への共有／分散である。いくつかの実装において、スマートコントラクトは、ピアツーピアブロックチェーンネットワーク１０８内の複数のオブジェクトにわたり動作することができる。例えば、第１の物理オブジェクトが患者に対応してもよく（例えば、テナントシステム１０２１に関連づけられた第１の物理オブジェクトが、患者レコードのセット及びフィールドのセットを含み、これらは、名前、住所、患者識別子、及び患者医療レコードが共有／分散について承認されているかどうかに関する指標を記述する）、第２の物理オブジェクトが患者医療レコードに対応してもよい（例えば、テナントシステム１０２２に関連づけられた第２の物理オブジェクトが、患者医療レコードのセット及びフィールドのセットを含み、これらは、レコードに関連づけられた患者識別子、医師識別子、及び医療検査のセットの結果に関する詳細を記述する）。条件のセットが患者の医療レコードを共有／分散するための患者からの承認を含み、この条件のための関連動作がピアツーピアブロックチェーンネットワーク１０８において患者の医療レコードを共有／分散することである、上述の例示的なスマートコントラクトを用い、スマートコントラクトマネージャ１１２が、第１の物理オブジェクト内の患者レコードが医療レコードを共有／分散するための承認を含むと判定すると、スマートコントラクトマネージャ１１２は、第２の物理オブジェクト内の患者医療レコードに対応する、ピアツーピアブロックチェーンネットワーク１０８におけるトランザクションを開始することができる。したがって、この例におけるスマートコントラクトは、別個のテナント／ピアに関連づけられた２つの別個のオブジェクトにわたり動作する。
【００１５】
上述のように、及び以下でより詳細に説明するように、マルチテナントサーバ１０４により提供されるクラウド環境／システム（例えば、マルチテナントサーバ１０４により提供される仮想空間／組織）は、テナントシステム１０２１〜１０２３間のブロックチェーントランザクションを管理するために使用することができる。したがって、マルチテナントサーバ１０４により実装されるクラウド環境／システムは、ピアツーピアブロックチェーンネットワーク１０８の機能性／動作を集中化しながら、テナント間通信の間、ブロックチェーンネットワークと同じレベルの情報のセキュリティ、信頼性、及び不変性を提供する。さらに、マルチテナントサーバ１０４を含むコンピューティング環境１００は、ピアツーピアブロックチェーンネットワーク１０８を実装して、本明細書に記載されるようにスマートコントラクトの使用を可能にする。
【００１６】
次に、図１のコンピューティング環境１００の各要素を、例として以下でより詳細に説明する。いくつかの実装において、コンピューティング環境１００は、図１に示されているものより多くの要素を含んでもよい。したがって、図１のコンピューティング環境１００は、単に例示目的のものである。
【００１７】
図１に示すように、及び上述したように、テナントシステム１０２１〜１０２３及びマルチテナントサーバ１０４は、１つ以上の通信ネットワーク１０６のセットを通じて接続されてもよい。１つ以上の通信ネットワーク１０６のセットは、例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネットなどのグローバルエリアネットワーク（ＧＡＮ）、又はそのようなネットワークの組み合わせでもよい。別の実装において、テナントシステム１０２１〜１０２３及びマルチテナントサーバ１０４は、有線又は無線媒体を介して互いへの直接接続を維持してもよい。
【００１８】
テナントシステム１０２１〜１０２３の各々は、１以上のユーザにより操作され得るコンピューティングシステムでもよい。例えば、テナントシステム１０２１〜１０２３の各々は、パーソナルコンピュータ（ＰＣ）、ワークステーション、ラップトップコンピュータ、タブレットコンピュータ、モバイルフォン、スマートフォン、パーソナルデジタルアシスタント（ＰＤＡ）などでもよい。以下でより詳細に説明するように、テナントシステム１０２１〜１０２３は、マルチテナントサーバ１０４と通信してデータを修正／追加／記憶し、取り出すことができる。
【００１９】
テナントシステム１０２１〜１０２３（クライアント、ピア、又はユーザシステムと呼ばれることもある）は各々、ウェブページにおいて提示されたインターフェースを含むインターフェース（例えば、グラフィカルユーザインターフェース（ＧＵＩ））をユーザに提示するための画面／ディスプレイ（例えば、液晶ディスプレイ（ＬＣＤ））を含んでもよい。以下でより詳細に説明するように、テナントシステム１０２１〜１０２３の各々は、物理オブジェクトを改変する（例えば、物理オブジェクトにおける新しいレコードの追加、又は物理オブジェクト内の既存レコードの修正）ためにユーザから（例えば、ユーザインターフェースを介して）入力を受け取り、又はピアツーピアブロックネットワーク内のスマートコントラクトを追加／更新するための、対応するトランザクション生成器１１０を含んでもよい。
【００２０】
テナントシステム１０２１〜１０２３は各々、マルチテナントサーバ１０４により管理される１つ以上の組織／テナントに関連づけることができる。例えば、テナントシステム１０２１のユーザは、第１の組織／テナントの顧客でもよく、テナントシステム１０２２のユーザは、第２の組織／テナントの顧客でもよい。組織／テナントは、そこに記憶されたデータへのアクセスをユーザにテナントシステム１０２１〜１０２３を介して提供するためのマルチテナントサーバ１０４の管理者と契約した任意の会社、法人、機関、協会、又は社会でもよい。
【００２１】
一実装において、マルチテナントサーバ１０４は、テナントシステム１０２１〜１０２３及び通信ネットワーク１０６を介してリソースへのアクセスをユーザに提供する任意のコンピューティングデバイスでもよい。例えば、マルチテナントサーバ１０４は、１つ以上の物理オブジェクト、及び／又は物理オブジェクトに対する変更を記述する１つ以上の対応する分散ピア台帳内のデータへのアクセスを、テナントシステム１０２１〜１０２３のユーザに提供することができる。例えば、テナントシステム１０２１の物理オブジェクトは、医療ラボレポートに対応してもよい。この例示的な実装において、物理オブジェクト内のレコードは、ラボレポート識別子フィールド、患者名フィールド、ラボネットワーク識別子フィールド、ラボ検査識別子フィールド、患者識別子フィールド、社会保障番号フィールド、及び分散フィールドを含んでもよく、該分散フィールドは、患者がピアツーピアブロックチェーンネットワーク１０８における患者の医療レコードの共有／分散をいつ承認したかを示す。テナントシステム１０２の物理オブジェクトに対して改変／変更が望まれるとき（例えば、物理オブジェクトへの新しいレコードの追加、又は物理オブジェクト内の既存レコードの修正）、マルチテナントサーバ１０４は、トランザクションキュー１０４Ａ、テナントレベルオブジェクト１０４Ｂ、ネットワークレベルオブジェクト１０４Ｃ、及びブロックチェーンサービス１０４Ｄを使用して、ピアツーピアブロックチェーンネットワーク１０８においてこれらの改変（例えば、テナントシステム１０２１〜１０２３に関連づけられた物理オブジェクト及び分散台帳に反映される改変）を行うよう試みる。
【００２２】
マルチテナントサーバ１０４は、マルチテナントシステムのハードウェア及びソフトウェアの様々な要素を含んでもよい。本明細書で用いられるとき、用語「マルチテナントシステム」は、ハードウェア及びソフトウェアの様々な要素が１つ以上のテナントにより共有され得るシステムを指す。例えば、マルチテナントサーバ１０４は、多数のテナントに対する要求を同時に処理することができ、所与のデータベーステーブルは、潜在的に一層多数のテナントに対するレコードを記憶することができる。マルチテナントサーバ１０４は、システムのハードウェア又はソフトウェアインフラストラクチャなどの、アプリケーションを実行可能にするフレームワーク（例えば、サービス及びメタデータ）を含むアプリケーションプラットフォームを含んでもよい。一実装において、マルチテナントサーバ１０４は、各テナントシステム１０２１〜１０２３のデータ／オブジェクト及びサービスのための別個の仮想空間／組織（部分又はパーティションと呼ばれることもある）を含む。例えば、各テナントシステム１０２１〜１０２３は、別個の仮想空間／組織を割り当てられてもよい。各仮想空間／組織は、マルチテナントサーバ１０４内の論理パーティションであり、対応するテナントシステム１０２のためにマルチテナントサーバ１０４により使用されるサービス（例えばブロックチェーンサービス１０４Ｄ）に追加で、そのテナントシステム１０２のみがアクセス可能であって他のテナントシステム１０２がアクセス不可能である別個のテナントレベルオブジェクト１０４Ｂを含む（例えば、テナントシステム１０２は、他のテナントシステム１０２のテナントレベルオブジェクト１０４Ｂを読み取る及び／又は書き込むことができない）。
【００２３】
次に、図２を参照し、ピアツーピアブロックチェーンネットワーク１０８内のデータを管理するマルチテナントサーバ１０４について、いくつかの実装による方法２００を説明する。詳細には、マルチテナントサーバ１０４により提供されるマルチテナントクラウド環境は、ピアツーピアブロックチェーンネットワーク１０８におけるスマートコントラクトを管理するために使用することができる。いくつかの実装において、以下でより詳細に説明するように、スマートコントラクトは、ピアツーピアブロックチェーンネットワーク１０８内の複数の物理オブジェクトにわたり及ぶ／動作することができ、ピアツーピアブロックチェーンネットワーク１０８における合意により修正することができる。
【００２４】
方法２００は、図１に示す例示的なコンピューティング環境１００、図３Ａに示す例示的なコンピューティング環境３００Ａ、及び／又は図３Ｂに示す例示的なコンピューティング環境３００Ｂに関連して説明される。しかしながら、他の実装において、方法２００は、マルチテナントサーバ１０４の異なる実装を含む他の環境で動作してもよい。
【００２５】
上述したように、図２のフロー図における動作は、他の図の例示的な実装を参照して説明される。しかしながら、フロー図の動作は、他の図を参照して論じたもの以外の実装により実行でき、これらの他の図を参照して論じた実装は、フロー図を参照して論じたものと異なる動作を実行できることを理解されたい。
【００２６】
図２では特定の順序で記載及び図示されているが、方法２００の動作はこの順序に限定されない。例えば、方法２００の動作のうち１つ以上が、異なる順序で、又は部分的若しくは完全に重なる時間に実行されてもよい。したがって、方法２００の説明及び図示は、例示目的のものであり、特定の実装に制限することは意図されない。
【００２７】
図２に示すように、方法２００は、動作２０２で開始することができ、ブロックチェーンサービス１０４Ｄのメンバシップサービス３０２Ａが、ピアツーピアブロックチェーンネットワーク１０８に対してテナント（ピアと呼ばれることもある）のセットを決定及び／又は追加する。いくつかの実装において、ピアツーピアブロックチェーンネットワーク１０８は、ネットワークオブジェクト３０４Ａにおいて識別され、ピアツーピアブロックチェーンネットワーク１０８のテナントは、ピアオブジェクト３０４Ｂにおいて識別される（例えば、テナントシステム１０２１〜１０２３の識別子により表されるテナント）。例えば、メンバシップサービス３０２Ａは、動作２０２においてピアオブジェクト３０４Ｂを調査することにより、ピアツーピアブロックチェーンネットワーク１０８内のテナントのセットを決定することができる。いくつかの実装において、ピアツーピアブロックチェーンネットワーク１０８にテナント／テナントシステム１０２１〜１０２３を追加することは、ピアツーピアブロックチェーンネットワーク１０８内の現在のテナント／テナントシステム１０２１〜１０２３からの立証／検証のプロセスを通じての合意を必要としてもよい。図１の例示的なコンピューティング環境１００、図３Ａの例示的なコンピューティング環境３００Ａ、及び図３Ｂの例示的なコンピューティング環境３００Ｂにおいて、及び方法２００を以降説明する目的で、メンバシップサービス３０２Ａは、動作２０２において、ピアツーピアブロックチェーンネットワーク１０８がテナントシステム１０２１〜１０２３を含むと決定し、これらはテナント／ピアを表す。
【００２８】
上述のように、テナントシステム１０２１〜１０２３の各々は、マルチテナントサーバ１０４内に別個の仮想空間／組織を含むことができる。各仮想空間／組織は、対応するテナントシステム１０２１〜１０２３のためにマルチテナントサーバ１０４により使用されるサービス（例えば、ブロックチェーンサービス１０４Ｄ）に追加で、そのテナントシステム１０２１〜１０２３のみがアクセス可能であって他のシステム１０２１〜１０２３がアクセス不可能である別個のテナントレベルオブジェクト１０４Ｂを含む（例えば、テナントシステム１０２１〜１０２３は、別のテナントシステム１０２１〜１０２３のテナントレベルオブジェクト１０４Ｂを読み取る及び／又は書き込むことができない）。例えば、図３Ａに示すように、各テナントシステム１０２１〜１０２３は、対応するテナントレベルオブジェクト１０４Ｂ１〜１０４Ｂ３（例えば、物理オブジェクト３０６１〜３０６３、シャドウオブジェクト３０８１〜３０８３、ピア台帳３１０１〜３１０３、及びマッピングオブジェクト３１６１〜３１６３）と、対応するスマートコントラクトマネージャ１１２１〜１１２３を含むブロックチェーンサービス１０４Ｄ１〜１０４Ｄ３とを有する、別個の仮想空間／組織３１４１〜３１４３に関連づけられてもよい。図３Ａでは、各仮想空間／組織３１４１〜３１４３に対してブロックチェーンサービス１０４Ｄ１〜１０４Ｄ３の別個のインスタンス化として示すが、各仮想空間／組織３１４１〜３１４３は、代わりに、図３Ｂに示すように、ブロックチェーンサービス１０４Ｄの単一のインスタンス化への別個のアクセスを有してもよい。
【００２９】
動作２０４において、メンバシップサービス３０２Ａは、ピアツーピアブロックチェーンネットワーク１０８内の各テナント／テナントシステム１０２１〜１０２３のための公開鍵（public  keys、ＰＫ）及び秘密／シークレット鍵（private/secret  keys、ＳＫ）のセットを生成することができる。一実装において、公開鍵は、決定された秘密鍵に基づいて生成される。例えば、一方向暗号ハッシュ関数（例えば、ＳＨＡ２５６）を使用して、対応する秘密鍵に基づいてテナントシステム１０２１〜１０２３の公開鍵を生成してもよい。一実装において、公開鍵及び秘密／シークレット鍵は、メンバシップサービス３０２Ａにより、動作２０４における生成に続いてウォレットオブジェクト３０４Ｃに記憶されてもよい。以下でより詳細に説明するように、トランザクションキュー１０４Ａは、テナントシステム１０２１〜１０２３の各々について、トランザクションオブジェクトを生成するために、ウォレットオブジェクト３０４Ｃに記憶された秘密／シークレット鍵を利用することができる。詳細には、秘密／シークレット鍵は、ピアツーピアブロックチェーンネットワーク１０８により使用されるトランザクションの暗号要素を実装するために、トランザクションキュー１０４Ａにより使用されてもよい。
【００３０】
動作２０６において、メンバシップサービス３０２Ａは、ピアツーピアブロックチェーンネットワーク１０８のための交換オブジェクトを決定することができる。一実装において、交換オブジェクトは、交換フィールドのセット、及び、各交換フィールドとテナントシステム１０２１〜１０２３の物理オブジェクト内のフィールドとの間のマッピングを定義するマッピングメタデータにより定義される。例えば、図４は、テナントシステム１０２１〜１０２３に対する物理オブジェクト３０６１〜３０６３をそれぞれ示す。この例において、テナントシステム１０２１に対応する物理オブジェクト３０６１は、フィールド４０６１〜４０６Ｎから構成されるレコード４０４１〜４０４Ｍを含み、各レコード４０４１〜４０４Ｍは、各フィールド４０６１〜４０６Ｎの値４０８１，１〜Ｍ，Ｎを含む。同様に、テナントシステム１０２２に対応する物理オブジェクト３０６２は、フィールド４１２１〜４１２Ｈから構成されるレコード４１０１〜４１０Ｇを含み、各レコード４１０１〜４１０Ｇは、各フィールド４１２１〜４１２Ｈの値４１４１，１〜Ｇ，Ｈを含む。同様に、テナントシステム１０２３に対応する物理オブジェクト３０６３は、フィールド４１８１〜４１８Ｓから構成されるレコード４１６１〜４１６Ｑを含み、各レコード４１６１〜４１６Ｑは、各フィールド４１８１〜４１８Ｓの値４２０１，１〜Ｑ，Ｓを含む。物理オブジェクト３０６１〜３０６３の各々は、任意のタイプのデータを表すことができる。例えば、テナントシステム１０２１は、医療ラボラトリ内で動作し、あるいはその他の方法で医療ラボラトリに対応してもよい。この例において、物理オブジェクト３０６１は、医療ラボレポートを表すことができる（例えば、レコード４０４１〜４０４Ｍの各々は、別個の医療ラボレポートに対応してもよい）。テナントシステム１０２２は、医院内で動作し、あるいはその他の方法で医院に対応してもよい。この例において、物理オブジェクト３０６２は、患者ファイルを表すことができる（例えば、レコード４１０１〜４１０Ｇの各々は、別個の患者ファイルに対応してもよい）。
【００３１】
図４に示す例示的な物理オブジェクト３０６１〜３０６３では、メンバシップサービス３０２Ａは、図５に示すような交換オブジェクト５０２を決定することができ、これは、デジタル資産オブジェクト３０４Ｄに記憶することができる。図５に示すように、交換オブジェクト５０２は、交換フィールド５０４１〜５０４Ｐと、交換フィールド５０４を物理オブジェクト３０６のフィールドにマッピングするマッピングメタデータとにより定義される。この構成において、交換フィールド５０４１は、物理オブジェクト３０６１のフィールド４０６２、物理オブジェクト３０６２のフィールド４１２Ｈ、及び物理オブジェクト３０６３のフィールド４１８２にマッピングする。交換フィールド５０４２は、物理オブジェクト３０６１のフィールド４０６Ｎ、物理オブジェクト３０６２のフィールド４１２１、及び物理オブジェクト３０６３のフィールド４１８１にマッピングする。交換フィールド５０４Ｐは、物理オブジェクト３０６１のフィールド４０６１、物理オブジェクト３０６２のフィールド４１２２、及び物理オブジェクト３０６３のフィールド４１８Ｓにマッピングする。したがって、交換オブジェクト５０２のマッピングメタデータは、交換フィールド５０４を物理オブジェクト３０６のフィールドにマッピング／リンクする。いくつかの実装において、交換フィールド５０４１〜５０４Ｐの数（すなわち、Ｐ）は、（１）物理オブジェクト３０６１内のフィールド４０６１〜４０６Ｎの数（すなわち、Ｎ）、（２）物理オブジェクト３０６２内のフィールド４１２１〜４１２Ｈの数（すなわち、Ｈ）、及び／又は（３）物理オブジェクト３０６３内のフィールド４１８１〜４１８Ｓの数（すなわち、Ｓ）未満である。したがって、テナントシステム１０２１〜１０２３の間で分散されることになる生成されたトランザクションオブジェクトと、分散ピア台帳３１０に含まれる対応するデータ／情報は、機密データを含まなくてもよい。
【００３２】
交換フィールド５０４の、物理オブジェクト３０６１〜３０６３のフィールド４０６、４１２、及び４１８へのマッピングは、物理オブジェクト３０６１〜３０６３のフィールド４０６、４１２、及び４１８間の関係を示す。例えば、物理オブジェクト３０６１が医療ラボレポートを表し、物理オブジェクト３０６２が患者ファイルを表す上記の例を用いると、物理オブジェクト３０６１のフィールド４０６２は、対応する医療ラボレポートが生成された患者識別子に対応することができ、物理オブジェクト３０６２のフィールド４１２Ｈは、対応する患者ファイルが表す患者識別子に対応することができる。図５に示すように、及び上述のように、これらのフィールド４０６２及び４１２Ｈは同じ交換フィールド５０４１にマッピングされ、これらのフィールド４０６２及び４１２Ｈが類似のデータを表す（例えば、フィールド４０６２及び４１２Ｈは双方とも患者識別子を表す）ことを示している。
【００３３】
いくつかの実装において、各テナント／テナントシステム１０２１〜１０２３は、ブロックチェーンネットワーク１０８を含む複数のブロックチェーンネットワークの一部でもよい。これらのブロックチェーンネットワークの各々は、ブロックチェーンネットワーク１０８との重複メンバシップを含んでもよく、かつ／あるいはさらなるピア／テナントシステム１０２を含んでもよい。いくつかの実装において、ネットワークオブジェクト３０４Ａは、マルチテナントサーバ１０４により管理される各ブロックチェーンネットワークの識別子を含んでもよく、ピアオブジェクト３０４Ｂは、マルチテナントサーバ１０４により管理されるブロックチェーンネットワーク内の各ピア／テナントシステム１０２の識別子を含んでもよく、ウォレットオブジェクト３０４Ｃは、マルチテナントサーバ１０４により管理されるブロックチェーンネットワーク内の各ピア／テナントシステム１０２の鍵を含んでもよく、デジタル資産オブジェクト３０４Ｄは、マルチテナントサーバ１０４により管理される各ブロックチェーンネットワークの交換オブジェクト５０２を含んでもよい。いくつかの実装において、各テナントシステム１０２のためのテナントレベルオブジェクト１０４Ｂは、マッピングオブジェクト３１６を含んでもよい。各マッピングオブジェクト３１６は、対応するテナントシステム１０２のためのマッピングメタデータを含む。例えば、テナントシステム１０２１に対応するマッピングオブジェクト３１６１は、交換フィールド５０４１を物理オブジェクト３０６１のフィールド４０６２に、交換フィールド５０４２を物理オブジェクト３０６１のフィールド４０６Ｎに、及び交換フィールド５０４Ｐを物理オブジェクト３０６１のフィールド４０６１にマッピングするマッピングメタデータを含む。対照的に、テナントシステム１０２２に対応するマッピングオブジェクト３１６２は、交換フィールド５０４１を物理オブジェクト３０６２のフィールド４１２Ｈに、交換フィールド５０４２を物理オブジェクト３０６２のフィールド４１２１に、及び交換フィールド５０４Ｐを物理オブジェクト３０６２のフィールド４１２２にマッピングするマッピングメタデータを含む。最後、テナントシステム１０２３に対応するマッピングオブジェクト３１６３は、交換フィールド５０４１を物理オブジェクト３０６３のフィールド４１８２に、交換フィールド５０４２を物理オブジェクト３０６３のフィールド４１８１に、及び交換フィールド５０４Ｐを物理オブジェクト３０６３のフィールド４１８Ｓにマッピングするマッピングメタデータを含む。したがって、各マッピングオブジェクト３１６は、対応するテナントシステム１０２に関連づけられたマッピングメタデータのみを含む。
【００３４】
動作２０８において、スマートコントラクトマネージャ１１２は、ピアツーピアブロックチェーンネットワーク１０８においてスマートコントラクトを確立するためのスマートコントラクト要求を受信する。一実施形態において、スマートコントラクト要求は、テナントシステム１０２から受信され、ピアツーピアブロックチェーンネットワーク１０８で使用されるスマートコントラクトを定義する。例えば、スマートコントラクトは、条件のセットと、条件のセット内の１つ以上の条件が満たされていることに応答して実行すべき動作のセットを含んでもよい。例えば、条件のセットは、ピアツーピアブロックチェーンネットワーク１０８において患者の医療レコードを共有／分散するための、患者からの承認を含んでもよい。この例において、条件が真である（すなわち、患者の医療記録を共有／分散するために、患者により承認が提供されている）とき実行される、この条件に対する関連動作は、患者の医療レコードの、ピアツーピアブロックチェーンネットワーク１０８内のテナントシステム１０２への共有／分散（例えば、ピアツーピアブロックチェーンネットワーク１０８内で関連レコードを共有／分散するトランザクションを開始すること）である。いくつかの実装において、スマートコントラクトは、ブロックチェーンネットワーク１０８内の複数のオブジェクトにわたり動作することができる。例えば、物理オブジェクト３０６１は患者医療レコードに対応してもよく（例えば、物理オブジェクト３０６１は、患者医療レコード４０４のセット及びフィールド４０６のセットを含み、これらは、レコード４０４に関連づけられた患者識別子、医師識別子、及び医療検査のセットの結果に関する詳細を記述する）、テナントシステム１０２２に関連づけられた物理オブジェクト３０６２は患者に対応してもよい（例えば、物理オブジェクト３０６２は、患者レコード４１０のセット及びフィールド４１２のセットを含み、これらは、名前、住所、患者識別子、及び対応する患者医療レコード４０４が、ピアツーピアブロックネットワーク１０８における共有／分散について承認されているかどうかに関する指標を記述する）。条件のセットが患者の医療レコードを共有／分散するための患者からの許可を含み、この条件に対する関連動作がピアツーピアブロックチェーンネットワーク１０８内のテナントシステム１０２への患者の医療レコードの共有／分散である、上述の例示的なスマートコントラクトを用い、スマートコントラクトマネージャ１１２が、物理オブジェクト３０６２内の患者レコード４１０が物理オブジェクト３０６１の医療レコード４０４を共有／分散するための承認を含むと判定すると、スマートコントラクトマネージャ１１２は、物理オブジェクト３０６１内の患者医療レコード４０４に対応する、ピアツーピアブロックネットワーク１０８におけるトランザクションを開始することができる。したがって、この例におけるスマートコントラクトは、別個のテナントシステム１０２により関連づけられた／所有された２つの別個の物理オブジェクト３０６にわたり動作する。説明の目的で、方法２００は、上述のスマートコントラクトに関連して説明される。
【００３５】
動作２１０において、スマートコントラクトマネージャ１１２は、ピアツーピアブロックチェーンネットワーク１０８内のテナントシステム１０２からスマートコントラクトのための合意を得るよう試みることができる。スマートコントラクトのための合意を得るよう試みるために、イベント管理サービス３０２Ｃ及び／又はトランザクションキュー１０４Ａは、スマートコントラクトオブジェクトを、ピアツーピアブロックチェーンネットワーク１０８内のテナントシステム１０２に利用可能にすることができる。いくつかの実装において、スマートコントラクトオブジェクトを他のテナントシステム１０２に利用可能にすることは、トランザクションキュー１０４Ａがテナントシステム１０２１の秘密鍵（又は、ブロックチェーンプロトコルに従った同様の技術）を使用してスマートコントラクトオブジェクトに署名し、適用された署名を有するスマートコントラクトオブジェクトを、他のテナントシステム１０２２及び１０２３がアクセス可能なマルチテナントサーバ１０４の部分／パーティションに配置することを含む。例えば、上述のように、マルチテナントサーバ１０４は、テナントシステム１０２の各々のための別個の仮想空間／組織３１４を含んでもよい。各仮想空間／組織３１４は、そのテナントシステム１０２のみがアクセス可能であって他のテナントシステム１０２がアクセス不可能であるデータ及びサービスを含む。例えば、マルチテナントサーバ１０４は、初期スマートコントラクト要求が受信されたテナントシステム１０２１の仮想空間／組織３１４１からのスマートコントラクトオブジェクトを、テナントシステム１０２２及び１０２３の仮想空間／組織３１４２及び３１４３に渡すことができ、それにより、テナントシステム１０２２及び１０２３の仮想空間／組織３１４２及び３１４３は、可能な検証／立証のためにスマートコントラクトオブジェクトを処理／分析することができる。
【００３６】
動作２１２において、トランザクション管理サービス３０２Ｂは、テナントシステム１０２２及び１０２３からの応答を監視して、スマートコントラクトに関して合意に達したか、又は合意に達するのに失敗したかを判定することができる。一実装において、合意管理サービス３０２Ｄは、スマートコントラクトに関してテナントシステム１０２２及び１０２３によっていつ合意に到達したかを判定する際に、トランザクション管理サービス３０２Ｂにより使用される閾値又はルールを定義することができる。例えば、いくつかの実装において、合意管理サービス３０２Ｄは、合意が、テナントシステム１０２２及び１０２３の全てがスマートコントラクトを立証／検証することを要することを示してもよく、一方で、他の実装において、合意管理サービス３０２Ｄは、合意が、テナントシステム１０２２及び１０２３のうち過半数がスマートコントラクトを立証／検証することを要することを示してもよい。いくつかの実装において、同意管理（consent  management）サービス３０２Ｅは、スマートコントラクトの立証／検証が適切であるかを判定するために、テナントシステム１０２２及び１０２３により、詳細には、テナントシステム１０２２及び１０２３に関連づけられた仮想空間／組織３１４２及び３１４３により使用されるルール及び／又は動作を示す。例えば、同意管理サービス３０２Ｅは、スマートコントラクトがテナントシステム１０２１から発信され、テナントシステム１０２１により承認されたかどうかを判定するために、テナントシステム１０２１の公開鍵が署名及びスマートコントラクトオブジェクトと共に使用されることを示してもよい。
【００３７】
動作２１４において、トランザクション管理サービス３０２Ｂ及びトランザクションキュー１０４Ａは、テナントシステム１０２２及び１０２３からの合意の取得の失敗（例えば、合意管理サービス３０２Ｄにより定義／指示されるとおりの合意の取得の失敗）に応答して、スマートコントラクトオブジェクトを破棄することができる。いくつかの実装において、スマートコントラクトオブジェクトを破棄することは、スマートコントラクトがピアツーピアブロックチェーンネットワーク１０８により拒絶された（すなわち、ピアツーピアブロックチェーンネットワーク１０８における合意が達成／取得されなかった）ことを、初期スマートコントラクト要求を送信／生成したテナントシステム１０２１に対して示すことを含んでもよい。
【００３８】
動作２１６において、トランザクション管理サービス３０２Ｂは、リーダテナントシステム１０２のために、合意が達成されたスマートコントラクトオブジェクトをコミットすることができる。いくつかの実装において、トランザクション管理サービス３０２Ｂは、リーダテナントシステム１０２Ａのために、スマートコントラクトオブジェクトに対応するピア台帳３１０内のエントリ／ブロックを追加することができる。詳細には、リーダテナントシステム１０２の仮想空間／組織３１４のトランザクション管理サービス３０２Ｂは、リーダテナントシステム１０２のために、スマートコントラクトオブジェクトに対応するピア台帳３１０内のエントリ／ブロックを追加してもよい。ピア台帳３１０に追加されるエントリ／ブロックは、いくつかの情報を含んでもよい。例えば、図８に示すように、ピア台帳３１０１内の各エントリ／ブロック８０４１〜８０４Ｔは、ピア台帳８０２１内の前のエントリ／ブロック８０４への参照、スマートコントラクトオブジェクト（１つ以上の他のオブジェクトと共に）、及びノンス（すなわち、ピアツーピアブロックチェーンネットワーク１０８の要件を満たすために使用される任意の数字）を含んでもよい。
【００３９】
動作２１８において、トランザクション管理サービス３０２Ｂ及び／又はトランザクションキュー１０４Ａは、残りのテナントシステム１０２のために、合意が達成されたスマートコントラクトオブジェクトをコミットすることができる。いくつかの実装において、残りのテナントシステム１０２によりスマートコントラクトオブジェクトをコミットすることは、リーダテナントシステム１０２が、合意が達成されたスマートコントラクトオブジェクトをコミットするように、要求を送信し、又はその他の方法で残りのテナントシステム１０２をトリガすることを含んでもよい。詳細には、リーダテナントシステム１０２１〜１０２３の仮想空間／組織３１４１〜３１４３のトランザクション管理サービス３０２Ｂは、対応するピア台帳３１０１〜３１０３にブロック／エントリを追加するために、残りのテナントシステム１０２１〜１０２３の仮想空間／組織３１４１〜３１４３のトランザクション管理サービス３０２Ｂに要求を渡し、又はその他の方法で利用可能にし、又はその他の方法で該トランザクション管理サービス３０２Ｂをトリガする。ピア台帳３１０１〜３１０３は、コンピューティング環境１００、３００Ａ、及び／又は３００Ｂがデータの透明性及び監査可能性を維持することを可能にする。詳細には、マルチテナントサーバ１０４は、各トランザクションに対する不変性を、トランザクションをピア台帳３１０１〜３１０３に記録／反映することにより提供し、該ピア台帳３１０１〜３１０３は、全てのテナントシステム１０２１〜１０２３にわたり複製される。上述のように、テナントシステム１０２１〜１０２３は、トランザクション／スマートコントラクトオブジェクトを立証／検証するための合意メカニズムに参加し、トランザクション／スマートコントラクトオブジェクトが立証／検証された後にのみ、トランザクション／スマートコントラクトオブジェクトはピア台帳３１０１〜３１０３にコミットされる。いくつかの実装において、ピア台帳３１０１〜３１０３は、マークル有向非巡回グラフ（Merkle  directed  acyclic  graph、ＤＡＧ）構造に記憶されてもよい。マークルＤＡＧは、Ｏｒａｃｌｅ（登録商標）及び／又はＨＢａｓｅストアで表現されてもよい。
【００４０】
動作２０８〜２１６は、ピアツーピアブロックチェーンネットワーク１０８へのスマートコントラクトの追加に関連して実行されるものとして説明されているが、いくつかの実装において、動作２０８〜２１６は、ピアツーピアブロックチェーンネットワーク１０８においてスマートコントラクトを改変するために同様に機能することができる。例えば、動作２０８〜２１６は、ピアツーピアブロックチェーンネットワーク１０８において既にコミット／確立されたスマートコントラクトの条件又は動作を追加又は修正するために、ピアツーピアブロックチェーンネットワーク１０８における合意を提供するように機能してもよい。
【００４１】
動作２２０において、スマートコントラクトマネージャ１１２は、スマートコントラクトの条件のセットが満たされたかどうかを継続的に監視し、判定することができる。例えば、上述の例示的なスマートコントラクトにおいて、物理オブジェクト３０６２内の患者レコード４１０が物理オブジェクト３０６１の医療レコード４０４を共有／分散するための承認を含むという判定に応答して、方法２００は動作２２２に進み得る。対照的に、上述の例示的のスマートコントラクトにおいて、物理オブジェクト３０６２内の患者レコード４１０が物理オブジェクト３０６１の医療レコード４０４を共有／分散するための承認を含まないという判定に応答して、方法２００は動作２２０にとどまり得る。
【００４２】
動作２２２において、動作２２０で満たされていると判定された条件のセットに関連づけられた１つ以上の動作が実行される。上述の例示的なスマートコントラクトにおいて、動作のセットは、スマートコントラクトマネージャ１１２が、物理オブジェクト３０６２内の患者医療レコード４０４に対応する、ピアツーピアブロックチェーンネットワーク１０８内のトランザクションを開始することを含んでもよい。例えば、患者医療レコード４０４は、本明細書に記載される合意のプロセスを通じて、ピアツーピアブロックチェーンネットワーク１０８内で共有／分散され得る。例えば、図２Ｂは、動作２２２で実行され得る動作のセットを示す。
【００４３】
図２Ｂに示すように、スマートコントラクトマネージャ１１２は、動作２２２Ａにおいて、仮想空間／組織３１４２のトランザクション管理サービス３０２Ｂに、物理オブジェクト３０６２のレコード４１０に対応するシャドウオブジェクト３０８２内のレコードを生成させることができる。シャドウオブジェクト３０８２は、テナントシステム１０２２に対応することができ、物理オブジェクト３０６２の全てのフィールド４１２１〜４１２Ｈを含んでもよい。シャドウオブジェクト３０８２は、ネットワーク１０８内のコミットされていないデータを表す。以下でより詳細に説明するように、テナントシステム１０２２のシャドウオブジェクト３０８２内のデータは、他のテナントシステム１０２のピア台帳３１０及び物理オブジェクト３０６により表現されることに追加で、テナントシステム１０２２のピア台帳３１０２によりコミット及び表現される前に、他のテナントシステム１０２による合意を通じて検証／立証される必要がある。
【００４４】
図６は、一例示的な実装による、テナントシステム１０２２及び物理オブジェクト３０６２に対応するシャドウオブジェクト３０８２の一例を示す。図示のように、シャドウオブジェクト３０８２は、コミットされていないデータに対応するレコード６０４１及び６０４２を含む。例えば、レコード６０４１は、医療ラボレポートに対応するレコード４１０の、ピアツーピアブロックチェーンネットワーク１０８へのコミットを提案することができる。
【００４５】
動作２２２Ｂにおいて、イベント管理サービス３０２Ｃ及び／又はトランザクションキュー１０４Ａは、（１）動作２２２Ａでシャドウオブジェクト３０８２に追加されたレコード６０４、及び（２）ピアツーピアブロックチェーンネットワーク１０８の交換オブジェクト５０２に基づいて、トランザクションオブジェクトを生成することができる。詳細には、トランザクションオブジェクトは、交換フィールド５０４１〜５０４Ｐの各々の値を含んでもよく、トランザクションオブジェクトは、レコード６０４からのデータ／フィールド値を、対応する交換フィールド５０４１〜５０４Ｐに含む。例えば、図７は、一例示的な実装によるトランザクションオブジェクト７０２の一例を示す。
【００４６】
図７に示すように、トランザクションオブジェクト８０２は、交換オブジェクト５０２の全ての交換フィールド５０４１〜５０４Ｐと、交換フィールド５０４１〜５０４Ｐと物理オブジェクト３０６２のフィールド４１２との間のマッピングに基づく適切な位置における、シャドウオブジェクト３０８２内のレコード６０４１からのフィールド値６０６とを含む。後述するように、例示の目的で以降用いられるトランザクションオブジェクト７０２は、提案されたレコード４１０をコミットするためのピアツーピアブロックチェーンネットワーク１０８内の合意があるかを判定するために（例えば、トランザクションオブジェクト７０２を立証／検証するために）、他のテナントシステム１０２に渡され、あるいはその他の方法で利用可能にされ得る。
【００４７】
動作２２２Ｃにおいて、イベント管理サービス３０２Ｃ及びトランザクションキュー１０４Ａは、トランザクションオブジェクト７０２を他のテナントシステム１０２１及び１０２３に利用可能にすることができる。いくつかの実装において、トランザクションオブジェクト７０２を他のテナントシステム１０２１及び１０２３に利用可能にすることは、トランザクションキュー１０４Ａがテナントシステム１０２２の秘密鍵（又は、ブロックチェーンプロトコルに従った同様の技術）を使用してトランザクションオブジェクト７０２に署名し、適用された署名を有するトランザクションオブジェクト７０２を、テナントシステム１０２１及び１０２３がアクセス可能なマルチテナントサーバ１０４の部分／パーティションに配置することを含む。例えば、上述のように、マルチテナントサーバ１０４は、テナントシステム１０２の各々のための別個の仮想空間／組織３１４を含んでもよい。各仮想空間／組織３１４は、そのテナントシステム１０２のみがアクセス可能であって他のテナントシステム１０２がアクセス不可能であるデータ及びサービスを含む。動作２２３Ｃにおいて、マルチテナントサーバ１０４は、テナントシステム１０２２の仮想空間／組織３１４２からの、適用された署名を有するトランザクションオブジェクト７０２を、テナントシステム１０２１及び１０２３の仮想空間／組織３１４１及び３１４３に渡すことができ、それにより、テナントシステム１０２１及び１０２３の仮想空間／組織３１４１及び３１４３は、可能な検証／立証のためにトランザクションオブジェクト７０２を処理／分析することができる。
【００４８】
動作２２２Ｄにおいて、トランザクション管理サービス３０２Ｂは、テナントシステム１０２１及び１０２３からの応答を監視して、トランザクションオブジェクト７０２に関して合意に達したか、又は合意に達するのに失敗したかを判定することができる。一実装において、合意管理サービス３０２Ｄは、トランザクションオブジェクト７０２に関してテナントシステム１０２１及び１０２３によっていつ合意に達したかを判定する際に、トランザクション管理サービス３０２Ｂにより使用される閾値又はルールを定義することができる。例えば、いくつかの実装において、合意管理サービス３０２Ｄは、合意が、テナントシステム１０２１及び１０２３の全てがトランザクションオブジェクト７０２を立証／検証することを要することを示してもよく、一方で、他の実装において、合意管理サービス３０２Ｄは、合意が、テナントシステム１０２１及び１０２３のうち過半数がトランザクションオブジェクト７０２を立証／検証することを要することを示してもよい。いくつかの実装において、同意管理サービス３０２Ｅは、トランザクションオブジェクト７０２の立証／検証が適切であるかを判定するために、テナントシステム１０２１及び１０２３により、詳細には、テナントシステム１０２１及び１０２３に関連づけられた仮想空間／組織３１４１及び３１４３により使用されるルール及び／又は動作を示す。例えば、同意管理サービス３０２Ｅは、トランザクションオブジェクト７０２がテナントシステム１０２２から発信され、テナントシステム１０２２により承認されたかどうかを判定するために、テナントシステム１０２２の公開鍵が署名及びトランザクションオブジェクト７０２と共に使用されることを示してもよい。
【００４９】
動作２２２Ｅにおいて、トランザクション管理サービス３０２Ｂ及びトランザクションキュー１０４Ａは、テナントシステム１０２１及び１０２３からの合意の取得の失敗（例えば、合意管理サービス３０２Ｄにより定義／指示されるとおりの合意の取得の失敗）に応答して、トランザクションオブジェクト７０２を破棄することができる。
【００５０】
動作２２２Ｆにおいて、トランザクション管理サービス３０２Ｂは、リーダテナントシステム１０２のために、合意が達成されたトランザクションオブジェクト７０２及び／又はトランザクションオブジェクト７０２に対応するシャドウオブジェクト３０８２内のレコード６０４をコミットすることができる。いくつかの実装において、リーダテナントシステム１０２は、メンバシップサービス３０２Ａによりピアツーピアブロックチェーンネットワーク１０８内のテナントシステム１０２１〜１０２３の中からランダムに選択されてもよい。トランザクションオブジェクト７０２をコミットすることは、リーダテナントシステム１０２のために、レコード６０４を物理オブジェクト３０６に追加することと、トランザクションオブジェクト７０２に対応するピア台帳３１０内のエントリ／ブロックを追加することのうち、１つ以上を含んでもよい。例えば、リーダテナントシステム１０２の仮想空間／組織３１４のトランザクション管理サービス３０２Ｂは、リーダテナントシステム１０２のために、トランザクションオブジェクト７０２に対応するピア台帳３１０内のエントリ／ブロックを追加してもよい。ピア台帳３１０に追加されるエントリ／ブロックは、いくつかの情報を含んでもよい。例えば、図８に示すように、ピア台帳３１０１内の各エントリ／ブロック８０４１〜８０４Ｔは、ピア台帳３１０１内の前のエントリ／ブロック８０４への参照、トランザクションオブジェクト７０２（１つ以上の他のオブジェクトと共に）、及びノンス（すなわち、ピアツーピアブロックチェーンネットワーク１０８の要件を満たすために使用される任意の数字）を含んでもよい。
【００５１】
動作２２２Ｇにおいて、トランザクション管理サービス３０２Ｂ及び／又はトランザクションキュー１０４Ａは、リーダテナントシステム１０２のために、トランザクションオブジェクト７０２を対応する物理オブジェクト３０６に対してコミットし、及び／又はブロック／エントリを対応するピア台帳３１０に追加するように、要求を送信し、あるいはその他の方法で他のテナントシステム１０２をトリガすることができる。
【００５２】
上述のように、方法２００は、マルチテナントサーバ１０４がテナントシステム１０２１〜１０２３のためにピアツーピアブロックチェーンネットワーク１０８におけるデータを管理することを可能にする。詳細には、マルチテナントサーバ１０４により提供されるクラウド環境を使用して、テナントシステム１０２１〜１０２３間のブロックチェーントランザクションを管理することができる。したがって、方法２００は、ピアツーピアブロックチェーンネットワーク１０８の機能性／動作を集中化しながら、テナント間通信の間、クラウド環境がブロックチェーンネットワークと同じレベルの情報のセキュリティ、信頼性、及び不変性を提供することを可能にする。さらに、マルチテナントサーバ１０４を含むコンピューティング環境１００は、ピアツーピアブロックチェーンネットワーク１０８を実装して、複数のテナントオブジェクトにわたり動作するスマートコントラクト及びピアツーピアブロックチェーンネットワーク１０８における合意により（導入及び修正の双方）立証されなければならないスマートコントラクトを含む、本明細書に記載のスマートコントラクトの使用を可能にする。
【００５３】
いくつかの実装において、コンピューティング環境３００Ａ及び／又は３００Ｂは、マルチテナントサーバ１０４の他のコンポーネントを実装するためのサービス及び／又はメタデータから構成されるプラットフォーム３０２の上に構築されてもよい。いくつかの実装において、ブロックチェーンサービス１０４Ｄは、各テナント／ピアに関連づけられたレコード及び項目を追跡するためのコインサービス３０２Ｆなどのさらなるサービスを含んでもよい。
【００５４】
上記で用いられたように、用語「ユーザ」は、システム及び／又はサービスを使用するエンティティ（例えば、個人）を参照する一般的な用語である。マルチテナントアーキテクチャは、各テナントに、ソフトウェアインスタンスの専用シェアと、（典型的には）ユーザ管理、テナント特有の機能性、構成、カスタマイズ、非機能的プロパティ、関連アプリケーション等のためのテナント特有のデータを入力する能力を提供する。マルチテナンシー（Multi-tenancy）は、マルチインスタンスアーキテクチャと対照をなし、別個のソフトウェアインスタンスが異なるテナントのために動作する。テナントには、サービスを提供するソフトウェアインスタンスに対する特定の特権を有する共通のアクセスを共有するユーザのグループが含まれる。テナントは、組織（例えば、企業、企業内の部署等）でもよい。テナントは、システム及び／又はサービスに対する１つ以上の役割を有することができる。例えば、顧客関係管理（ＣＲＭ）システム又はサービスの文脈において、テナントは、ＣＲＭシステム又はサービスを使用してベンダの１以上の顧客に関してテナントが有する情報を管理する、ベンダでもよい。別の例として、データアズアサービス（Data  as  a  Service、ＤＡＡＳ）の文脈において、１つのテナントセットが、データを提供するベンダでもよく、別のテナントセットが、ベンダのデータのうち異なるもの又は全ての顧客でもよい。別の例として、プラットフォームアズアサービス（Platform  as  a  Service、ＰＡＡＳ）の文脈において、１つのテナントセットが、アプリケーション／サービスを提供する第三者アプリケーション開発者でもよく、別のテナントセットが、第三者アプリケーション開発者のうち異なるもの又は全ての顧客でもよい。ユーザは、システム及び／又はサービスに対して１つ以上の役割を有することができる。いくつかの例を提供するために、ユーザは、テナント（例えば、ベンダ又は顧客）の代表者（「エンドユーザ」と呼ばれることもある）、システム及び／又はサービスを提供する企業の代表者（例えば、管理者）、及び／又はプラットフォームアズアサービス（ＰＡＡＳ）上でアプリケーションを作成及び維持している第三者アプリケーション開発者の代表者（例えば、プログラマ）でもよい。
【００５５】
上記の実装の１つ以上の部分は、ソフトウェア、及び／又はソフトウェアとハードウェアの組み合わせを含んでもよい。電子デバイス（コンピューティングデバイス、コンピュータ等とも呼ばれる）は、プロセッサのセット上での実行のためのコード（これは、ソフトウェア命令から構成され、コンピュータプログラムコード又はコンピュータプログラムと呼ばれることもある）を記憶し、及び／又はデータを記憶するために、１つ以上のマシン読取可能記憶媒体（例えば、磁気ディスク、光ディスク、読取専用メモリ（ＲＯＭ）、フラッシュメモリ、相変化メモリ、ソリッドステートドライブ（ＳＳＤ））に結合された１つ以上のプロセッサのセットなどの、ハードウェア及びソフトウェアを含む。例えば、電子デバイスは、不揮発性メモリ（より遅い読み取り／書き込み時間を有し、例えば、磁気ディスク、光ディスク、読取専用メモリ（ＲＯＭ）、フラッシュメモリ、相変化メモリ、ＳＳＤ）及び揮発性メモリ（例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ））を含んでもよく、ここで、不揮発性メモリは、電子デバイスがオフにされたとき又は電力がその他の方法で除去されたときでもコード／データを持続させ、電子デバイスは、動作の間、その電子デバイスのプロセッサのセットにより実行されるべきコードの部分を、その電子デバイスの不揮発性メモリから揮発性メモリにコピーし、なぜならば、揮発性メモリは、典型的には、より速い読み取り／書き込み時間を有するためである。別の例として、電子デバイスは、電子デバイスがオフにされたときコード／データを持続させ、かつ十分に速い読み取り／書き込み時間を有する不揮発性メモリ（例えば、相変化メモリ）を含んでもよく、それにより、コード／データは、実行されるべきコード／データの部分を揮発性メモリにコピーするのでなく、プロセッサのセットに直接提供する（例えば、プロセッサのセットのキャッシュにロードする）ことができ、換言すれば、この不揮発性メモリは、長期記憶装置及びメインメモリの双方として動作し、したがって、電子デバイスは、メインメモリのための揮発性メモリを全く有さず、あるいは少量のみ有してもよい。コード及び／又はデータをマシン読取可能記憶媒体に記憶することに追加で、典型的な電子デバイスは、１つ以上のマシン読取可能伝送媒体（キャリアとも呼ばれる）（例えば、電気的、光学的、無線、音響、又は他の形式の伝搬信号、例えば、搬送波、赤外線信号など）を介してコード及び／又はデータを伝送することができる。例えば、典型的な電子デバイスは、他の電子デバイスとのネットワーク接続を確立するため（伝搬信号を用いてコード及び／又はデータを送信及び／又は受信するため）に、１つ以上の物理ネットワークインターフェースのセットも含む。したがって、電子デバイスは、１つ以上のマシン読取可能媒体（コンピュータ読取可能媒体とも呼ばれる）を用いてコード及び／又はデータを（内部的に、及び／又はネットワークを介して他の電子デバイスとの間で）記憶及び送信することができる。
【００５６】
電子デバイスは、様々な目的で使用される。例えば、電子デバイス（サーバ電子デバイスと呼ばれることもある）は、サービスと通信するためにクライアントソフトウェア（クライアントコード又はテナントシステムと呼ばれることもある）を実行する別の電子デバイス（クライアント電子デバイス、クライアントコンピューティングデバイス、又はクライアントデバイスと呼ばれることもある）にサービスを提供するために使用される１つ以上のサーバとして、当該電子デバイスに動作させるコードを実行することができる。サーバ及びクライアントの電子デバイスは、それぞれ、管理者（管理ユーザとしても知られる）及びエンドユーザの役割のユーザにより操作されてもよい。
【００５７】
図９Ａは、いくつかの例示的な実装による、電子デバイス９００を示すブロック図である。図９Ａは、１つ以上のプロセッサ９２２のセットと、１つ以上のネットワークインターフェース９２４のセット（無線及び／又は有線）と、ソフトウェア９２８（１つ以上のプロセッサ９２２のセットにより実行可能な命令を含む）を記憶された非一時的マシン読取可能記憶媒体９２６とを備える、ハードウェア９２０を含む。前述のテナントシステム１０２、並びにトランザクションキュー１０４Ａ、テナントレベルオブジェクト１０４Ｂ、ネットワークレベルオブジェクト１０４Ｃ、及びブロックチェーンサービス１０４Ｄの各々は、１つ以上の電子デバイス９００に実装されてもよい。一実装において、１）テナントシステム１０２の各々は、１つ以上の電子デバイス９００のうち別個のものに実装される（例えば、ユーザにより操作されるユーザ電子デバイス内であり、ソフトウェア９２８は、テナントシステム１０２を実現してトランザクションキュー１０４Ａ、テナントレベルオブジェクト１０４Ｂ、ネットワークレベルオブジェクト１０４Ｃ、及びブロックチェーンサービス１０４Ｄとのインターフェースをとるためのソフトウェアを表す（例えば、Ｗｅｂブラウザ、ネイティブクライアント、ポータル、コマンドラインインターフェース、及び／又はシンプルオブジェクトアクセスプロトコル（Simple  Object  Access  Protocol、ＳＯＡＰ）や表現状態転送（Representational  State  Transfer、ＲＥＳＴ）などのプロトコルに基づくアプリケーションプログラムインターフェース（ＡＰＩ））。２）トランザクションキュー１０４Ａ、テナントレベルオブジェクト１０４Ｂ、ネットワークレベルオブジェクト１０４Ｃ、及びブロックチェーンサービス１０４Ｄは、１つ以上の電子デバイス９００のうち１つ以上の別個のセットにおいて実装される（例えば、１つ以上のサーバ電子デバイスのセットであり、ソフトウェア９２８は、トランザクションキュー１０４Ａ、テナントレベルオブジェクト１０４Ｂ、ネットワークレベルオブジェクト１０４Ｃ、及びブロックチェーンサービス１０４Ｄを実現するためのソフトウェアを表す）。さらに、３）動作において、テナントシステム１０２並びにトランザクションキュー１０４Ａ、テナントレベルオブジェクト１０４Ｂ、ネットワークレベルオブジェクト１０４Ｃ、及びブロックチェーンサービス１０４Ｄを実現する電子デバイスは、通信上（例えば、ネットワークにより）結合され、それらの間に（又は、１つ以上の他のレイヤを通じて）、提案された新しいレコード又は物理オブジェクト内の既存のレコードへの提案された修正をマルチテナントサーバ１０４にサブミットするための接続を確立する。電子デバイスの他の構成が、他の実装で使用されてもよい（例えば、一実装では、テナントシステム１０２及びマルチテナントサーバ１０４が単一の電子デバイス９００上に実装される）。
【００５８】
計算仮想化を使用する電子デバイスにおいて、１つ以上のプロセッサ９２２のセットは、典型的には、仮想化レイヤ９０８及びソフトウェアコンテナ９０４Ａ〜Ｒをインスタンス化するためのソフトウェアを実行する（例えば、オペレーティングシステムレベルの仮想化では、仮想化レイヤ９０８は、各々が１つ以上のアプリケーションのセットを実行するために使用され得る複数のソフトウェアコンテナ９０４Ａ〜Ｒ（別個のユーザ空間インスタンスを表し、仮想化エンジン、仮想プライベートサーバ、又はジェイル（jails）とも呼ばれる）の作成を可能にするオペレーティングシステムのカーネル（又は、ベースオペレーティングシステム上で実行されるシム（shim））を表す。完全仮想化では、仮想化レイヤ９０８は、ハイパーバイザ（仮想マシンモニタ（ＶＭＭ）と呼ばれることもある）、又はホストオペレーティングシステム上で実行されるハイパーバイザを表し、ソフトウェアコンテナ９０４Ａ〜Ｒは各々、ハイパーバイザにより実行される仮想マシンと呼ばれるソフトウェアコンテナのしっかり分離された形式を表し、ゲストオペレーティングシステムを含んでもよい。準仮想化（para-virtualization）では、仮想マシンで動作しているオペレーティングシステム又はアプリケーションは、最適化の目的で仮想化の存在の認識することができる）。再びになるが、計算仮想化が使用される電子デバイスにおいて、動作の間、ソフトウェア９２８のインスタンス（インスタンス９０６Ａとして示される）は、仮想化レイヤ９０８上のソフトウェアコンテナ９０４Ａ内で実行される。計算仮想化が使用されない電子デバイスでは、ホストオペレーティングシステム上のインスタンス９０６Ａは、「ベアメタル」電子デバイス９００上で実行される。インスタンス９０６Ａのインスタンス化と、実装されている場合に仮想化レイヤ９０８及びソフトウェアコンテナ９０４Ａ〜Ｒは、まとめてソフトウェアインスタンス９０２と呼ばれる。
【００５９】
電子デバイスの代替的な実装は、上述したものから多くのバリエーションを有してもよい。例えば、カスタマイズされたハードウェア及び／又はアクセラレータが、電子デバイス内でさらに使用されてもよい。
【００６０】
ネットワークデバイス（ＮＤ）は、ネットワーク上の他の電子デバイス（例えば、他のネットワークデバイス、ユーザ電子デバイス、サーバ電子デバイス）を通信上相互接続する電子デバイスである。いくつかのネットワークデバイスは、複数のネットワーキング機能（例えば、ルーティング、ブリッジング、スイッチング、レイヤ２集約、セッションボーダー制御、サービス品質、及び／又は加入者管理）のサポートを提供し、及び／又は複数のアプリケーションサービス（例えば、データ、音声、及びビデオ）のサポートを提供する「複数サービスネットワークデバイス」である。
【００６１】
図９Ｂは、いくつかの実装による、テナントシステム１０２１〜１０２３及びマルチテナントサーバ１０４が配置され得る一環境のブロック図である。システム９４０は、トランザクションキュー１０４Ａ、テナントレベルオブジェクト１０４Ｂ、ネットワークレベルオブジェクト１０４Ｃ、及びブロックチェーンサービス１０４Ｄを含むサービス９４２を提供するためのハードウェア（１つ以上の電子デバイスのセット）及びソフトウェアを含む。システム９４０は、ネットワーク９８２を介してユーザ電子デバイス９８０Ａ〜Ｓに結合される。サービス９４２は、１つ以上の他の組織（外部ユーザと呼ばれることもある）のために作業するユーザ９８４Ａ〜Ｓのうち１以上に利用可能にされるオンデマンドサービスでもよく、それにより、これらの組織は、必ずしもシステムの構築及び／又は維持に関与する必要はないが、代わりに、必要とされるときに（例えば、ユーザ９８４Ａ〜Ｓの要求で）サービス９４２を使用する。サービス９４２は、１つ以上のアプリケーションプログラミングインターフェース（ＡＰＩ）（例えば、表現状態転送（ＲＥＳＴ）ＡＰＩ）を介して互いに、及び／又はユーザ電子デバイス９８０Ａ〜Ｓのうち１つ以上と通信してもよい。ユーザ電子デバイス９８０Ａ〜Ｓは、ユーザ９８４Ａ〜Ｓにより操作される。
【００６２】
一実装において、システム９４０は、顧客関係管理（ＣＲＭ）サービス（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＳａｌｅｓ  Ｃｌｏｕｄ）、契約／提案／見積りサービス（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＳａｌｅｓｆｏｒｃｅ  ＣＰＱ）、顧客サポートサービス（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＳｅｒｖｉｃｅ  Ｃｌｏｕｄ及びＦｉｅｌｄ  Ｓｅｒｖｉｃｅ  Ｌｉｇｈｔｎｉｎｇ）、マーケティングサービス（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＭａｒｋｅｔｉｎｇ  Ｃｌｏｕｄ、Ｓａｌｅｓｆｏｒｃｅ  ＤＭＰ、及びＰａｒｄｏｔ）、コマースサービス（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＣｏｍｍｅｒｃｅ  Ｃｌｏｕｄ  Ｄｉｇｉｔａｌ、Ｃｏｍｍｅｒｃｅ  Ｃｌｏｕｄ  Ｏｒｄｅｒ  Ｍａｎａｇｅｍｅｎｔ、及びＣｏｍｍｅｒｃｅ  Ｃｌｏｕｄ  Ｓｔｏｒｅ）、外部ビジネスデータソースとの通信（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＳａｌｅｓｆｏｒｃｅ  Ｃｏｎｎｅｃｔ）、生産性サービス（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＱｕｉｐ）、データベースアズアサービス（database  as  a  service）（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＤａｔａｂａｓｅ．ｃｏｍＴＭ）、データアズアサービス（Data  as  a  Service、ＤＡＡＳ）（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＤａｔａ．ｃｏｍ）、プラットフォームアズアサービス（Platform  as  a  Service、ＰＡＡＳ）（例えば、実行ランタイム及びアプリケーション（アプリ）開発ツール；例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＨｅｒｏｋｕＴＭ  Ｅｎｔｅｒｐｒｉｓｅ、Ｔｈｕｎｄｅｒ、並びにＦｏｒｃｅ．ｃｏｍ（登録商標）及びＬｉｇｈｔｎｉｎｇなど）、分析サービス（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＥｉｎｓｔｅｉｎ  Ａｎａｌｙｔｉｃｓ、Ｓａｌｅｓ  Ａｎａｌｙｔｉｃｓ、及び／又はＳｅｒｖｉｃｅ  Ａｎａｌｙｔｉｃｓ）、コミュニティサービス（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＣｏｍｍｕｎｉｔｙ  Ｃｌｏｕｄ及びＣｈａｔｔｅｒ）、モノのインターネット（Internet  of  Things、ＩｏＴ）サービス（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＳａｌｅｓｆｏｒｃｅ  ＩｏＴ及びＩｏＴ  Ｃｌｏｕｄ）、業界特有のサービス（例えば、ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ，Ｉｎｃ．によるＦｉｎａｎｃｉａｌ  Ｓｅｒｖｉｃｅｓ  Ｃｌｏｕｄ及びＨｅａｌｔｈ  Ｃｌｏｕｄ）、及び／又はインフラストラクチャアズアサービス（Infrastructure  as  a  Service、ＩＡＡＳ）（例えば、仮想マシン、サーバ、及び／又はストレージ）などの、複数のサービスをサポートするマルチテナントクラウドコンピューティングアーキテクチャである。例えば、システム９４０は、アプリケーションプラットフォーム９４４のプロバイダにより開発された１つ以上のアプリケーションを作成、管理、及び実行し、ユーザがユーザ電子デバイス９８０Ａ〜Ｓのうち１つ以上を介してシステム９４０にアクセスし、又は第三者アプリケーション開発者がユーザ電子デバイス９８０Ａ〜Ｓのうち１つ以上を介してシステム９４０にアクセスするＰＡＡＳを可能にするアプリケーションプラットフォーム９４４を含んでもよい。
【００６３】
いくつかの実装において、サービス９４２のうち１つ以上は、テナントデータ９４８のための１つ以上のマルチテナントデータベース９４６と、システム９４０がアクセス可能なシステムデータ９５２のためのシステムデータストレージ９５０を利用してもよい。特定の実装において、システム９４０は、サーバ電子デバイス上で実行され、任意のテナントに関連づけられた任意の承認されたユーザに対する要求を扱うように構成された（ユーザ及び／又はテナントの、特定のサーバへのサーバアフィニティはない）、１つ以上のサーバのセットを含む。ユーザ電子デバイス９８０Ａ〜Ｓは、システム９４０のサーバと通信して、システム９４０によりホストされるテナントレベルのデータ及びシステムレベルのデータを要求及び更新し、応答して、システム９４０（例えば、システム９４０内の１つ以上のサーバ）は自動的に、１つ以上のマルチテナントデータベース９４６及び／又はシステムデータストレージ９５０からの所望の情報にアクセスするように設計された１つ以上の構造化問合せ言語（Structured  Query  Language、ＳＱＬ）文（例えば、１つ以上のＳＱＬクエリ）を生成してもよい。
【００６４】
いくつかの実装において、サービス９４２は、ユーザ電子デバイス９８０Ａ〜Ｓからのクエリに応答して、及び、１）複数のテナントに共通する構成（例えば、フォーム、レポート、ワークフロー、ユーザアクセス特権、ビジネスロジック）を記述するメタデータ、及び／又は２）テナント特有であり、テナント特有の構成（例えば、テーブル、レポート、ダッシュボード、インターフェース等）を記述し、マルチテナントデータベースに記憶されるメタデータ、を含むメタデータに従って、実行時に動的に作成された仮想アプリケーションを使用して実装される。その目的のため、プログラムコード９６０は、メタデータからアプリケーションデータを実現するランタイムエンジンでもよく、すなわち、コンパイルされたランタイムエンジン（システムカーネルとしても知られる）、テナントデータ、及びメタデータの明確な分離があり、これは、システムカーネルとテナント特有のアプリケーション及びスキーマとを独立して更新することを可能にし、事実上、あるものが他のものに影響を及ぼすリスクがない。さらに、一実装において、アプリケーションプラットフォーム９４４は、アプリケーション開発者によるアプリケーションの作成及び管理をサポートするアプリケーションセットアップメカニズムを含み、これは、保存ルーチンによりメタデータとして保存されてもよい。トランザクションキュー１０４Ａ、テナントレベルオブジェクト１０４Ｂ、ネットワークレベルオブジェクト１０４Ｃ、及びブロックチェーンサービス１０４Ｄを含むこのようなアプリケーションへの呼び出しは、プログラミング言語スタイルインターフェースを提供する手続き型言語／構造化オブジェクト問合せ言語（Procedural  Language/Structured  Object  Query  Language、ＰＬ／ＳＯＱＬ）を使用してコード化されてもよい。いくつかのＰＬ／ＳＯＱＬ言語実装の詳細な説明は、2007年9月21日に出願されたCraig  Weissmanによる「METHOD  AND  SYSTEM  FOR  ALLOWING  ACCESS  TO  DEVELOPED  APPLICATIONS  VIA  A  MULTI-TENANT  ON-DEMAND  DATABASE  SERVICE」と題された米国特許7,730,478号において論じられている。アプリケーションへの呼び出しは、１つ以上のシステムプロセスにより検出されてもよく、該システムプロセスは、テナントが呼び出しを行うためのアプリケーションメタデータを取り出すこと、及びメタデータをソフトウェアコンテナ（例えば、仮想マシン）内のアプリケーションとして実行することを管理する。
【００６５】
ネットワーク９８２は、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（ワイドエリアネットワーク）、電話ネットワーク、無線ネットワーク、ポイントツーポイントネットワーク、スターネットワーク、トークンリングネットワーク、ハブネットワーク、又は他の適切な構成のうちいずれか１つ又は任意の組み合わせでもよい。ネットワークは、電気電子技術者協会（Institute  of  Electrical  and  Electronics  Engineers、ＩＥＥＥ）プロトコル、第３世代パートナーシッププロジェクト（3rd  Generation  Partnership  Project、３ＧＰＰ）プロトコル、又は類似の有線及び／又は無線プロトコルを含む１つ以上のネットワークプロトコルに準拠してもよく、システム９４０とユーザ電子デバイス９８０Ａ〜Ｓとの間でデータをルーティングするための１つ以上の中間デバイスを含んでもよい。
【００６６】
各ユーザ電子デバイス９８０Ａ〜Ｓ（例えば、デスクトップパーソナルコンピュータ、ワークステーション、ラップトップ、パーソナルデジタルアシスタント（ＰＤＡ）、スマートフォンなど）は、典型的には、システム９４０により提供されたページ、フォーム、アプリケーション、及び他の情報と関連してディスプレイ（例えば、モニタ画面、液晶ディスプレイ（ＬＣＤ）等）上に提供されたグラフィカルユーザインターフェース（ＧＵＩ）と対話するために、キーボード、マウス、トラックボール、タッチパッド、タッチスクリーン、ペンなどの１つ以上のユーザインターフェースデバイスを含む。例えば、ユーザインターフェースデバイスを使用して、システム９４０によりホストされるデータ及びアプリケーションにアクセスし、記憶されたデータに対する検索を実行し、その他の方法でユーザ９８４がユーザ９８４に提示され得る様々なＧＵＩページと対話できるようにすることができる。ユーザ電子デバイス９８０Ａ〜Ｓは、ＴＣＰ／ＩＰ（転送制御プロトコル及びインターネットプロトコル）を使用してシステム９４０と通信し、より高いネットワークレベルでは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、ＦＴＰ、アンドリューファイルシステム（Andrew  File  System、ＡＦＳ）、無線アプリケーションプロトコル（ＷＡＰ）、ファイル転送プロトコル（ＦＴＰ）、ネットワークファイルシステム（ＮＦＳ）、シンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）や表現状態転送（ＲＥＳＴ）などのプロトコルに基づくアプリケーションプログラムインターフェース（ＡＰＩ）などの、通信するための他のネットワーキングプロトコルを使用してもよい。ＨＴＴＰが使用される一例において、１つ以上のユーザ電子デバイス９８０Ａ〜Ｓは、システム９４０のサーバとの間でＨＴＴＰメッセージを送信及び受信するために、一般に「ブラウザ」と呼ばれるＨＴＴＰクライアントを含んでもよく、ゆえに、ユーザ電子デバイス９８０Ａ〜Ｓのユーザ９８４は、ネットワーク９８２を介してシステム９４０からのそれに利用可能な情報、ページ、及びアプリケーションにアクセスし、処理し、閲覧することができる。
【００６７】
上記説明では、より完全な理解を提供するために、リソース区分／共有／複製の実装、システムコンポーネントのタイプ及び相互関係、並びに論理区分／統合の選択などの、多数の特定の詳細が説明されている。しかしながら、当業者には、本発明がこのような特定の詳細なしに実施され得ることが理解されるであろう。他の例では、制御構造、論理実装、ＯＰコード、オペランドを指定する手段、及び完全なソフトウェア命令シーケンスは詳細に示されておらず、なぜならば、当業者は、含まれる説明により、過度の実験なしに記載されているものを実装することができるためである。
【００６８】
明細書中の「１つの実装」、「一実装」、「一例示的な実装」等への参照は、記載された実装が特定の特徴、構造、又は特性を含み得るが、あらゆる実装が必ずしも上記特定の特徴、構造、又は特性を含まなくてもよいことを示す。さらに、このようなフレーズは、必ずしも同じ実装を参照していない。さらに、特定の特徴、構造、又は特性がある実装に関連して記載されているとき、明示的に記載されているか否かにかかわらず、他の実装に関連してそのような特徴、構造、又は特性に影響を及ぼすことは当業者の知識の範囲内であることが提示される。
【００６９】
破線境界で囲まれたテキスト及びブロック（例えば、大きいダッシュ、小さいダッシュ、ドット・ダッシュ、及びドット）は、本明細書において、いくつかの実装にさらなる特徴を追加する任意の動作及び／又は構造を説明するために用いられることがある。しかしながら、そのような表記は、これらが唯一の選択肢又は任意動作であること、及び／又は実線境界を有するブロックが特定の実装において任意でないことを意味するものとみなされるべきではない。
【００７０】
以下の説明及び特許請求の範囲において、用語「結合される」がその派生語と共に用いられることがある。「結合される」は、互いに直接物理的又は電気的に接触している可能性又はそうでない可能性のある２つ以上の要素が、協働し又は互いに相互作用することを示すために用いられる。
【００７１】
フロー図における動作は、他の図における例示的な実装を参照して説明されている。しかしながら、フロー図の動作は、他の図を参照して論じたもの以外の実装により実行することができ、これらの他の図を参照して論じた実装は、フロー図を参照して論じたものと異なる動作を実行することができる。
【００７２】
図中のフロー図は、特定の実装により実行される特定の動作順序を示しているが、そのような順序は例示的であることを理解されたい（例えば、代替的な実装が、異なる順序で動作を実行する、特定の動作を組み合わせる、特定の動作を重ねるなどしてもよい）。
【００７３】
上記説明はいくつかの例示的な実装を含むが、当業者は、本発明が説明された実装に限定されず、別記の特許請求の範囲の主旨及び範囲内で修正及び改変を実施できることを認識するであろう。したがって、本説明は、限定的でなく例示的なものである。
【図１】
2022501714.tif 000003
【図２Ａ】
2022501714.tif 000004
【図２Ｂ】
2022501714.tif 000005
【図３Ａ】
2022501714.tif 000006
【図３Ｂ】
2022501714.tif 000007
【図４】
2022501714.tif 000008
【図５】
2022501714.tif 000009
【図６】
2022501714.tif 000010
【図７】
2022501714.tif 000011
【図８】
2022501714.tif 000012
【図９Ａ】
2022501714.tif 000013
【図９Ｂ】
2022501714.tif 000014
【国際調査報告】
2022501714.tif 000015
2022501714.tif 000016