(57)【要約】  ブロックチェーンネットワークにおいてデータを管理するマルチテナントサーバのための方法について記載する。当該方法は、ネットワークのための交換オブジェクトを生成するステップであり、交換オブジェクトは、交換フィールドのセット、及び、交換フィールドのセット内の各交換フィールドとネットワーク内の各ピアに関連づけられたオブジェクトのフィールドとの間のマッピングを含む、ステップと、各交換フィールドに対する、及びネットワーク内の各ピアに対する許可を決定するステップと、ネットワーク内の第１のピアのために、交換オブジェクトを使用してトランザクションオブジェクトを生成するステップであり、トランザクションオブジェクトは、交換フィールドのセットのためのフィールド値のセットを含み、値のセット内の１つ以上のフィールド値が、許可に基づいて暗号化される、ステップと、トランザクションオブジェクトをネットワーク内の第２のピアに利用可能にして、第１のピアのオブジェクトを改変するための合意を得るよう試みるステップと、を含む。
2022501712.tif 000002
【特許請求の範囲】
【請求項１】
ピアツーピアブロックチェーンネットワークにおいてデータを管理するマルチテナントサーバのための方法であって、
前記マルチテナントサーバにより、前記ピアツーピアブロックチェーンネットワークのための交換オブジェクトを生成するステップであり、前記交換オブジェクトは、交換フィールドのセット、及び、前記交換フィールドのセット内の各交換フィールドと前記ピアツーピアブロックチェーンネットワーク内の各ピアに関連づけられた物理オブジェクトのフィールドとの間のマッピングを含む、ステップと、
前記マルチテナントサーバにより、各交換フィールドに対する、及び前記ピアツーピアブロックチェーンネットワーク内の各ピアに対する許可を決定するステップと、
前記ピアツーピアブロックチェーンネットワーク内の第１のピアのために前記マルチテナントサーバにより、前記交換オブジェクトに基づいてトランザクションオブジェクトを生成するステップであり、前記トランザクションオブジェクトは、前記交換フィールドのセットのためのフィールド値のセットを含み、前記フィールド値のセット内の１つ以上のフィールド値が、前記決定された許可に基づいて暗号化される、ステップと、
前記第１のピアのために前記マルチテナントサーバにより、前記トランザクションオブジェクトを前記ピアツーピアブロックチェーンネットワーク内の第２のピアに利用可能にして、前記第１のピアに対応する物理オブジェクトを改変するための合意を得るよう試みるステップと、
を含む方法。
【請求項２】
前記マルチテナントサーバにより、前記第１のピアに対応する第１の許可鍵セットを生成するステップと、
前記マルチテナントサーバにより、前記第２のピアに対応する第２の許可鍵セットを生成するステップと、
をさらに含む請求項１に記載の方法。
【請求項３】
前記第１の許可鍵セット内の各許可鍵は、前記交換フィールドのセット内の交換フィールドに関する前記第１のピアの許可に対応し、
前記第２の許可鍵セット内の各許可鍵は、前記交換フィールドのセット内の交換フィールドに関する前記第２のピアの許可に対応する、請求項２に記載の方法。
【請求項４】
前記トランザクションオブジェクトを生成するステップは、前記第１の許可鍵セットを使用して前記１つ以上のフィールド値を暗号化することを含む、請求項３に記載の方法。
【請求項５】
前記許可は、対応する交換フィールドに対する読み取り、更新、及び挿入アクセス許可を含む、請求項４に記載の方法。
【請求項６】
前記マルチテナントサーバにより、前記改変のための、前記ピアツーピアブロックチェーンネットワーク内のピアからの合意の受信に応答して、前記トランザクションオブジェクトを前記第１のピアの第１の台帳及び前記第２のピアの第２の台帳に追加するステップと、
前記第２のピアのために前記マルチテナントサーバにより、前記第２の許可鍵セットを使用して前記１つ以上のデータ値を読み取るステップと、
をさらに含む請求項５に記載の方法。
【請求項７】
前記１つ以上のデータ値を読み取るステップは、前記第２の許可鍵セット内の別個の鍵を使用して前記データ値のセット内の各値を復号することを含む、請求項６に記載の方法。
【請求項８】
前記マルチテナントサーバは、前記ピアツーピアブロックチェーン内の各ピアのための仮想空間を含み、
各仮想空間は、関連づけられたピアに利用可能な、前記ピアツーピアブロックチェーンネットワーク内の他のピアによりアクセス不可能であるデータ及びサービスを含む、請求項１に記載の方法。
【請求項９】
命令を含む非一時的マシン読取可能記憶媒体であって、前記命令は、マルチテナントサーバのプロセッサにより実行されたときに前記プロセッサに、
ピアツーピアブロックチェーンネットワークのための交換オブジェクトを生成することであり、前記交換オブジェクトは、交換フィールドのセット、及び、前記交換フィールドのセット内の各交換フィールドと前記ピアツーピアブロックチェーンネットワーク内の各ピアに関連づけられた物理オブジェクトのフィールドとの間のマッピングを含む、ことと、
各交換フィールドに対する、及び前記ピアツーピアブロックチェーンネットワーク内の各ピアに対する許可を決定することと、
前記ピアツーピアブロックチェーンネットワーク内の第１のピアのために、前記交換オブジェクトに基づいてトランザクションオブジェクトを生成することであり、前記トランザクションオブジェクトは、前記交換フィールドのセットのためのフィールド値のセットを含み、前記フィールド値のセット内の１つ以上のフィールド値が、前記決定された許可に基づいて暗号化される、ことと、
前記第１のピアのために、前記トランザクションオブジェクトを前記ピアツーピアブロックチェーンネットワーク内の第２のピアに利用可能にして、前記第１のピアに対応する物理オブジェクトを改変するための合意を得るよう試みることと、
をさせる、非一時的マシン読取可能記憶媒体。
【請求項１０】
前記命令はさらに、前記プロセッサに、
前記第１のピアに対応する第１の許可鍵セットを生成することと、
前記第２のピアに対応する第２の許可鍵セットを生成することと、
をさせ、
前記第１の許可鍵セット内の各許可鍵は、前記交換フィールドのセット内の交換フィールドに関する前記第１のピアの許可に対応し、
前記第２の許可鍵セット内の各許可鍵は、前記交換フィールドのセット内の交換フィールドに関する前記第２のピアの許可に対応し、
前記トランザクションオブジェクトを生成することは、前記第１の許可鍵セットを使用して前記１つ以上のフィールド値を暗号化することを含む、請求項９に記載の非一時的マシン読取可能記憶媒体。
【請求項１１】
前記命令はさらに、前記プロセッサに、
前記改変のための、前記ピアツーピアブロックチェーンネットワーク内のピアからの合意の受信に応答して、前記トランザクションオブジェクトを前記第１のピアの第１の台帳及び前記第２のピアの第２の台帳に追加することと、
前記第２のピアのために、前記第２の許可鍵セットを使用して前記１つ以上のデータ値を読み取ることと、
をさせ、
前記１つ以上のデータ値を読み取ることは、前記第２の許可鍵セット内の別個の鍵を使用して前記データ値のセット内の各値を復号することを含む、請求項９に記載の非一時的マシン読取可能記憶媒体。
【請求項１２】
前記マルチテナントサーバは、前記ピアツーピアブロックチェーン内の各ピアのための仮想空間を含み、
各仮想空間は、関連づけられたピアに利用可能な、前記ピアツーピアブロックチェーンネットワーク内の他のピアによりアクセス不可能であるデータ及びサービスを含む、請求項１１に記載の非一時的マシン読取可能記憶媒体。
【請求項１３】
ピアツーピアブロックチェーンネットワークにおいてデータを管理するマルチテナントサーバであって、
プロセッサと、
命令を記憶するメモリと、を備え、
前記命令は、前記プロセッサにより実行されたとき前記プロセッサに、
前記ピアツーピアブロックチェーンネットワークのための交換オブジェクトを生成することであり、前記交換オブジェクトは、交換フィールドのセット、及び、前記交換フィールドのセット内の各交換フィールドと前記ピアツーピアブロックチェーンネットワーク内の各ピアに関連づけられた物理オブジェクトのフィールドとの間のマッピングを含む、ことと、
各交換フィールドに対する、及び前記ピアツーピアブロックチェーンネットワーク内の各ピアに対する許可を決定することと、
前記ピアツーピアブロックチェーンネットワーク内の第１のピアのために、前記交換オブジェクトに基づいてトランザクションオブジェクトを生成することであり、前記トランザクションオブジェクトは、前記交換フィールドのセットのためのフィールド値のセットを含み、前記フィールド値のセット内の１つ以上のフィールド値が、前記決定された許可に基づいて暗号化される、ことと、
前記第１のピアのために、前記トランザクションオブジェクトを前記ピアツーピアブロックチェーンネットワーク内の第２のピアに利用可能にして、前記第１のピアに対応する物理オブジェクトを改変するための合意を得るよう試みることと、
をさせる、マルチテナントサーバ。
【請求項１４】
前記命令はさらに、前記プロセッサに、
前記第１のピアに対応する第１の許可鍵セットを生成することと、
前記第２のピアに対応する第２の許可鍵セットを生成することと、
をさせ、
前記第１の許可鍵セット内の各許可鍵は、前記交換フィールドのセット内の交換フィールドに関する前記第１のピアの許可に対応し、
前記第２の許可鍵セット内の各許可鍵は、前記交換フィールドのセット内の交換フィールドに関する前記第２のピアの許可に対応し、
前記トランザクションオブジェクトを生成することは、前記第１の許可鍵セットを使用して前記１つ以上のフィールド値を暗号化することを含む、請求項１３に記載のマルチテナントサーバ。
【請求項１５】
前記命令はさらに、前記プロセッサに、
前記改変のための、前記ピアツーピアブロックチェーンネットワーク内のピアからの合意の受信に応答して、前記トランザクションオブジェクトを前記第１のピアの第１の台帳及び前記第２のピアの第２の台帳に追加することと、
前記第２のピアのために、前記第２の許可鍵セットを使用して前記１つ以上のデータ値を読み取ることと、
をさせ、
前記１つ以上のデータ値を読み取ることは、前記第２の許可鍵セット内の別個の鍵を使用して前記データ値のセット内の各値を復号することを含む、請求項１４に記載のマルチテナントサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、2018年12月20日に出願された米国特許出願第16/228,555号及び2018年9月19日に出願された米国仮出願第62/733,535号の利益を主張し、これらは参照により本明細書に組み込まれる。
【０００２】
［技術分野］
１つ以上の実装がデータ管理の分野に関し、より具体的には、ピアツーピアブロックチェーンネットワークに記憶されたデータのフィールドに対するピアベースの許可の割り当て及び実施に関する。
【背景技術】
【０００３】
ブロックチェーンは、暗号法を用いてリンク及び安全化されるレコード／ブロックの、継続的に拡張するリストである。詳細には、ブロックチェーン内のあらゆるブロックは、直前のブロックの暗号ハッシュ、現在のブロックのタイムスタンプ、及びトランザクションデータ（例えば、ブロックチェーンネットワーク内のピアに関連づけられた情報の追加／修正）を含むことができる。さらに、ブロックチェーンは、チェーンに追加される新しいブロックを立証／検証するシステムを介してピアツーピアネットワークを通じて共有及び管理することができ、それにより、ブロックチェーン内のブロックは、全ての後続ブロックの改変なしに改変することができず、これは、ネットワークの合意を必要とする。このアーキテクチャは、暗号法の使用を通じてブロック内に記憶された情報のセキュリティ、ピアツーピアネットワークの使用を通じた情報の共有／分散、ブロック追加のコンセンサスの使用を通じた信頼性、並びに暗号法の使用、ブロックのチェーン化／リンク、及びピア分散を通じてブロック内に記憶された情報の不変性（immutability）を可能にする（例えば、ブロックチェーンネットワークの各ピアは、ネットワーク内の全ての立証／検証されたトランザクションの台帳を維持することができる）。
【０００４】
ブロックチェーンアーキテクチャと対照的に、マルチテナントクラウドアーキテクチャは、共通のデータベース又は他のデータ構造における情報の集中化に依存している。クラウドベースのアーキテクチャは、ブロックチェーンアーキテクチャと比較して、テナントから多くの管理機能を除去して代わりにこれらの機能を集中化システムに集める能力を含む多くの利点を提供するが、これらのアーキテクチャは、データのテナント間通信の間、同じレベルの情報のセキュリティ、信頼性、及び不変性を提供しない。さらに、ブロックチェーンアーキテクチャは、上述のものを含む多くの利点を提供するが、これらのアーキテクチャは、ピア間の秘密性又は他のアクセス許可／特権の実施を可能にしない。すなわち、ピア台帳のブロック内の各情報は、ブロックチェーンネットワーク内の全てのピアに可視であり、各ピアは、ブロックチェーンネットワーク内で同じ許可／特権を有する。
【図面の簡単な説明】
【０００５】
以下の図は、同様の要素を参照するために同様の参照番号を使用している。以下の図は様々な例示的な実装を示すが、代替的な実装が別記の特許請求の範囲の主旨及び範囲内である。
【図１】一例示的な実装による、マルチテナントサーバを含むコンピューティング環境を示すブロック図を示す。
【図２Ａ】一例示的な実装による、ピアツーピアブロックチェーンネットワークにおいてマルチテナントサーバがデータを管理する方法を示す。
【図２Ｂ】一例示的な実装による、ピアツーピアブロックチェーンネットワークにおいてマルチテナントサーバがデータを管理する方法を示す。
【図３Ａ】一例示的な実装による、テナントシステムごとの別個のブロックチェーンサービスのセットを含むコンピューティング環境を示す。
【図３Ｂ】別の例示的な実装による、共有ブロックチェーンサービスのセットを含むコンピューティング環境を示す。
【図４】一例示的な実装による、テナントシステムのセットに対応する物理オブジェクトを示す。
【図５】一例示的な実装による、交換フィールドと物理オブジェクトのフィールドとの間のマッピングのセットを含む交換オブジェクトを示す。
【図６】一例示的な実装による、テナントシステムの各々のためのセキュリティオブジェクトを示す。
【図７】一例示的な実装による、テナントシステムに対応するシャドウオブジェクトの一例を示す。
【図８】一例示的な実装による、トランザクションオブジェクトの一例を示す。
【図９】一例示的な実装による、エントリ／ブロックのセットを含むブロックチェーンの一例を示す。
【図１０Ａ】一例示的な実装による電子デバイスを示す。
【図１０Ｂ】一例示的な実装による、コンピューティング環境及びサーバが実装され得る環境のブロック図を示す。
【発明を実施するための形態】
【０００６】
図１は、一例示的な実装による、コンピューティング環境１００を示すブロック図である。コンピューティング環境１００は、テナントシステム１０２１〜１０２３、マルチテナントサーバ１０４、及び通信ネットワークのセット１０６を含む。この例示的なコンピューティング環境１００において、テナントシステム１０２１〜１０２３は、ピアツーピアブロックチェーンネットワーク１０８の一部であり得、マルチテナントサーバ１０４は、トランザクションキュー１０４Ａ、テナントレベルオブジェクト１０４Ｂ、ネットワークレベルオブジェクト１０４Ｃ、及びセキュリティサービス１１２を含むブロックチェーンサービス１０４Ｄを介して、ピアツーピアブロックチェーンネットワーク１０８内のテナントシステム１０２１〜１０２３のデータ及び様々なトランザクションを管理するためのクラウド環境を提供する。例えば、ブロックチェーンサービス１０４Ｄは、テナントシステム１０２の物理オブジェクトのフィールドを交換フィールドにマッピングするマッピングデータを生成することができ、これらは、ピアツーピアブロックチェーンネットワーク１０８におけるトランザクションを処理するために使用される。さらに、ブロックチェーンサービス１０４Ｄは、ブロックチェーンネットワーク１０８内の各テナントシステム１０２のための公開鍵及び秘密鍵を生成し、これらの鍵を使用して交換フィールドに関して許可／特権を割り当てる／実施する（enforce）ことができる。すなわち、交換フィールドは、これらのフィールドにアクセスすることを許可されているテナントシステム１０２の秘密及び／又は公開鍵を使用して暗号化することができ、別個の鍵セットを、異なる許可／特権レベルのために対応するテナントシステム１０２に提供することができる。
【０００７】
例えば、以下でより詳細に記載されるように、テナントシステム１０２１のトランザクション生成器１１０１は、（１）テナントシステム１０２１に関連づけられた物理オブジェクトに新しいレコードを追加／挿入するか、又は（２）テナントシステム１０２１に関連づけられた物理オブジェクトの既存のレコードを修正／更新する要求を生成することができる。物理オブジェクトは、レコードごとのフィールドのセットを含むことができ、テナントシステム１０２１に関連づけられたマルチテナントサーバ１０４のテナントレベルオブジェクト１０４Ｂの部分／パーティションに記憶され、それにより、物理オブジェクトは、テナントシステム１０２１のみがアクセス可能である（例えば、テナントシステム１０２２及びテナントシステム１０２３は、テナントシステム１０２１の物理オブジェクトに対して読み取り又は書き込みを許可されない）。要求は、テナントシステム１０２１に関連づけられたテナントレベルオブジェクト１０４Ｂの部分／パーティション内のシャドウオブジェクトにおけるレコードの追加をもたらし得る。シャドウオブジェクトは、物理オブジェクトに対してコミットされていないデータ（すなわち、ピアツーピアブロックチェーンネットワーク１０８内のピア／テナント間における合意がまだ達成されていないデータ）を表す。シャドウオブジェクトは、トランザクションオブジェクトを生成するためにトランザクションキュー１０４Ａにより使用されてもよく、該トランザクションオブジェクトは、テナントシステム１０２１の物理オブジェクトへの提案された追加／修正のための合意を受け取るために、他のテナントシステム１０２２及び１０２３に分散され／利用可能にされる。
【０００８】
一実装において、トランザクションオブジェクトのフィールドのセットは、物理オブジェクトのフィールドのサブセットであり、トランザクションオブジェクトのフィールドのセットは、ネットワークレベルオブジェクト１０４Ｃに含まれる交換オブジェクト（exchange  object）により定義される。この実装において、交換オブジェクトは、交換フィールドのセットを含むことができ、これは、トランザクションオブジェクトに含まれることになり、交換オブジェクトの各交換フィールドは、テナントシステム１０２１〜１０２３の物理オブジェクト内のフィールドにマッピングされ得る。例えば、テナントシステム１０２１の物理オブジェクトは、フィールドＡ〜Ｄを含んでもよく、テナントシステム１０２２の物理オブジェクトは、フィールドＥ〜Ｈを含んでもよく、テナントシステム１０２３の物理オブジェクトは、フィールドＩ〜Ｋを含んでもよい。この例において、ピアツーピアブロックチェーンネットワーク１０８の交換オブジェクトの第１の交換フィールドは、テナントシステム１０２１のフィールドＢ、テナントシステム１０２２のフィールドＦ、及びテナントシステム１０２３のフィールドＩにマッピングされてもよい。同様に、ピアツーピアブロックチェーンネットワーク１０８の交換オブジェクトの第２の交換フィールドは、テナントシステム１０２１のフィールドＣ、テナントシステム１０２２のフィールドＥ、及びテナントシステム１０２３のフィールドＪにマッピングされてもよい。したがって、テナントシステム１０２１の物理オブジェクトのためのレコードを追加／修正する提案を受信したとき、対応するトランザクションオブジェクトは、提案された物理／シャドウオブジェクトのフィールドＢからの値を有する第１の交換フィールドと、提案された物理／シャドウオブジェクトのフィールドＣからの値を有する第２の交換フィールドとを含む。交換オブジェクトは、ピアツーピアブロックチェーンネットワーク１０８において立証（verification）／検証（validation）目的でマッピングメタデータを介して一様なトランザクションオブジェクトを提供する一方で、テナントシステム１０２１がピアツーピアブロックチェーンネットワーク１０８内の他のテナント／ピアに対して情報の特定部分のみを見せることを可能にする（例えば、物理オブジェクト内の機密情報／フィールドは、トランザクションオブジェクトに含まれなくてもよく、該トランザクションオブジェクトは、ピアツーピアブロックチェーンネットワーク１０８内のテナントシステム１０２１〜１０２３間で分散され、後に分散台帳に含まれる）。
【０００９】
本明細書に記載されるように、マルチテナントサーバ１０４は、テナントシステム１０２１〜１０２３のためにピアツーピアブロックチェーンネットワーク１０８の機能の多くを実行することができる。詳細には、マルチテナントサーバ１０４は、テナントシステム１０２１〜１０２３の各々のための仮想空間／組織（organization）を含むことができる。各仮想空間／組織は、対応するテナントシステム１０２１〜１０２３のためのデータ及びアプリケーション／サービスを含むことができ、他のテナントシステム１０２１〜１０２３の全ての他の仮想空間／組織から論理的に別個である。例えば、各仮想空間／組織は、それぞれのテナント／テナントシステム１０２１〜１０２３に対応するテナントレベルオブジェクト１０４Ｂと、ブロックチェーンサービス１０４Ｄの別個のインスタンス化又はブロックチェーンサービス１０４Ｄへの別個のアクセスを含んでもよい。この構成／アーキテクチャにおいて、各テナントシステム１０２１〜１０２３のための仮想空間／組織は、対応するテナントシステム１０２１〜１０２３のために１つ以上のブロックチェーン機能／動作を実行することができる。例えば、テナントシステム１０２１からの、テナントシステム１０２１の物理オブジェクトに新しいレコードを追加／挿入するか又は該物理オブジェクトの既存のレコードを修正／更新する要求の受信に応答して、マルチテナントサーバ１０４は、マルチテナントサーバ１０４内のテナントシステム１０２１の仮想空間／組織にシャドウオブジェクトレコードを生成することができる。応答して、トランザクションキュー１０４Ａは、シャドウオブジェクト内のレコードに対応するトランザクションオブジェクトを、トランザクションオブジェクトが交換フィールドをシャドウオブジェクトからのデータと共に含むようにする、ピアツーピアブロックチェーンネットワーク１０８の交換オブジェクトと、トランザクションオブジェクトが他のテナントシステム１０２２及び１０２３の仮想空間／組織に分散され又はその他の方法で利用可能にされ得るようにする、テナントシステム１０２１の暗号鍵のセットとを使用して、生成することができる。
【００１０】
詳細には、ブロックチェーンサービス１０４Ｄのセキュリティサービス１１２は、各テナントシステム１０２の許可／特権レベルに基づいて、トランザクションオブジェクトの各交換フィールドを暗号化することができる。例えば、セキュリティサービス１１２は、テナントシステム１０２１が第１及び第２の交換フィールドに対する読み取り、更新、及び挿入許可／特権を有すると決定することができる。対照的に、テナントシステム１０２２は、第１の交換フィールドに対する読み取り許可、及び第２の交換フィールドに対する読み取り及び更新許可のみを有してもよい。最後、テナントシステム１０２３は、第１の交換フィールドに対する許可／特権を有さず、第２の交換フィールドに対する読み取り、更新、及び挿入特権を有してもよい。この例示的な状況において、セキュリティサービス１１２は、テナントシステム１０２１のための第１の鍵セット、テナントシステム１０２２のための第２の鍵セット、及びテナントシステム１０２３のための第３の鍵セットを、テナントシステム１０２１〜１０２３の秘密鍵及び公開鍵、並びに割り当てられた許可／特権レベルに基づいて生成することができる。第１の鍵セットは、テナントシステム１０２１が第１及び第２の交換フィールドに関してデータを読み取り、更新し、挿入することを可能にし、第２の鍵セットは、テナントシステム１０２２が第１の交換フィールドを読み取り、第２の交換フィールドを読み取り、更新することを可能にし、第３の鍵セットは、テナントシステム１０２３が第２の交換フィールドに関してデータを読み取り、更新し、挿入することを可能にする。したがって、上述したように、及び以下でより詳細に説明するように、マルチテナントサーバ１０４のセキュリティサービス１１２は、ブロックチェーンネットワーク１０８内のデータの許可／特権レベル制御を提供する。
【００１１】
トランザクションオブジェクトの分散の後、他のテナントシステム１０２２及び１０２３の仮想空間／組織は、その後、トランザクションオブジェクトを分析して、検証／立証が適切であるかどうかを判定してもよい。トランザクションキュー１０４Ａは、テナントシステム１０２２及び１０２３の仮想空間／組織からの検証／立証を待機することができ、それにより、テナントシステム１０２１の物理オブジェクトへの提案された改変のための合意が達成される。この合意に応答して、リーダ（leader）テナントシステム１０２１〜１０２３の仮想空間／組織は、（１）対応する物理オブジェクトにおいて（適宜）レコードを追加し、又はレコードを修正し、（２）対応するエントリ／ブロックをリーダテナントシステム１０２１〜１０２３の分散台帳に追加することができる。その後、リーダテナントシステム１０２１〜１０２３の仮想空間／組織は、他の／残りのテナントシステム１０２１〜１０２３の仮想空間／組織に対して、それらの物理オブジェクトに対する変更を（交換オブジェクト内に定義されたマッピングに基づいて）コミットし、及び／又は対応するエントリ／ブロックをこれらのテナントシステム１０２１〜１０２３の台帳に追加するように、要求を送信することができる。上述のように、及び以下でより詳細に説明するように、マルチテナントサーバ１０４により提供されるクラウド環境（例えば、マルチテナントサーバ１０４により提供される仮想空間／組織）は、テナントシステム１０２１〜１０２３間のブロックチェーントランザクションを管理するために使用することができる。詳細には、セキュリティサービス１１２は、許可／特権（例えば、読み取り、更新、及び挿入の許可／特権）がピア／テナントシステム１０２ごと及び交換フィールドごとに実施され得るように、交換フィールドを暗号化する。
【００１２】
次に、図１のコンピューティング環境１００の各要素を、例として以下でより詳細に説明する。いくつかの実装において、コンピューティング環境１００は、図１に示されているものより多くの要素を含んでもよい。したがって、図１のコンピューティング環境１００は、単に例示目的のものである。
【００１３】
図１に示すように、及び上述したように、テナントシステム１０２１〜１０２３及びマルチテナントサーバ１０４は、１つ以上の通信ネットワーク１０６のセットを通じて接続されてもよい。１つ以上の通信ネットワーク１０６のセットは、例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネットなどのグローバルエリアネットワーク（ＧＡＮ）、又はそのようなネットワークの組み合わせでもよい。別の実装において、テナントシステム１０２１〜１０２３及びマルチテナントサーバ１０４は、有線又は無線媒体を介して互いへの直接接続を維持してもよい。
【００１４】
テナントシステム１０２１〜１０２３の各々は、１以上のユーザにより操作され得るコンピューティングシステムでもよい。例えば、テナントシステム１０２１〜１０２３の各々は、パーソナルコンピュータ（ＰＣ）、ワークステーション、ラップトップコンピュータ、タブレットコンピュータ、モバイルフォン、スマートフォン、パーソナルデジタルアシスタント（ＰＤＡ）などでもよい。以下でより詳細に説明するように、テナントシステム１０２１〜１０２３は、マルチテナントサーバ１０４と通信してデータを修正／追加／記憶し、取り出すことができる。
【００１５】
テナントシステム１０２１〜１０２３（クライアント、ピア、又はユーザシステムと呼ばれることもある）は各々、ウェブページにおいて提示されたインターフェースを含むインターフェース（例えば、グラフィカルユーザインターフェース（ＧＵＩ））をユーザに提示するための画面／ディスプレイ（例えば、液晶ディスプレイ（ＬＣＤ））を含んでもよい。以下でより詳細に説明するように、テナントシステム１０２１〜１０２３の各々は、テナントシステム１０２１〜１０２３に関連づけられた物理オブジェクトを改変する（例えば、物理オブジェクトにおける新しいレコードの追加、又は物理オブジェクト内の既存レコードの修正）ためにユーザから入力を受け取り、改変のためにピアツーピアブロックネットワーク１０８内の他のテナントシステム１０２１〜１０２３からの合意を得るプロセス（例えば、立証／検証）をトリガするための、対応するトランザクション生成器１１０１〜１１０３を含んでもよい。
【００１６】
テナントシステム１０２１〜１０２３は各々、１つ以上の組織／テナントに関連づけることができる。例えば、テナントシステム１０２１のユーザは、第１の組織／テナントの顧客でもよく、テナントシステム１０２３のユーザは、第２の組織／テナントの顧客でもよい。組織／テナントは、そこに記憶されたデータへのアクセスをユーザにテナントシステム１０２１〜１０２３を介して提供するためのマルチテナントサーバ１０４の管理者と契約した任意の会社、法人、機関、協会、又は社会でもよい。
【００１７】
一実装において、マルチテナントサーバ１０４は、テナントシステム１０２１〜１０２３及び通信ネットワーク１０６を介してリソースへのアクセスをユーザに提供する任意のコンピューティングデバイスでもよい。例えば、マルチテナントサーバ１０４は、１つ以上の物理オブジェクト、及び／又は物理オブジェクトに対する変更を記述する１つ以上の対応する分散ピア台帳内のデータへのアクセスを、テナントシステム１０２１〜１０２３のユーザに提供することができる。例えば、テナントシステム１０２１の物理オブジェクトは、医療ラボレポートに対応してもよい。この例示的な実装において、物理オブジェクト内のレコードは、ラボレポート識別子フィールド、患者名フィールド、ラボネットワーク識別子フィールド、ラボ検査識別子フィールド、患者識別子フィールド、及び社会保障番号フィールドを含んでもよい。テナントシステム１０２１〜１０２３の物理オブジェクトに対して改変／変更が望まれるとき（例えば、物理オブジェクトへの新しいレコードの追加、又は物理オブジェクト内の既存レコードの修正）、マルチテナントサーバ１０４は、トランザクションキュー１０４Ａ、テナントレベルオブジェクト１０４Ｂ、ネットワークレベルオブジェクト１０４Ｃ、及びブロックチェーンサービス１０４Ｄを使用して、ピアツーピアブロックチェーンネットワーク１０８においてこれらの改変（例えば、テナントシステム１０２１〜１０２３に関連づけられた物理オブジェクト及び分散台帳に反映される改変）を行うよう試みる。
【００１８】
マルチテナントサーバ１０４は、マルチテナントシステムのハードウェア及びソフトウェアの様々な要素を含んでもよい。本明細書で用いられるとき、用語「マルチテナントシステム」は、ハードウェア及びソフトウェアの様々な要素が１つ以上のテナントにより共有され得るシステムを指す。例えば、マルチテナントサーバ１０４は、多数のテナントに対する要求を同時に処理することができ、所与のデータベーステーブルは、潜在的に一層多数のテナントに対するレコードを記憶することができる。マルチテナントサーバ１０４は、システムのハードウェア又はソフトウェアインフラストラクチャなどの、アプリケーションを実行可能にするフレームワーク（例えば、サービス及びメタデータ）を含むアプリケーションプラットフォームを含んでもよい。一実装において、マルチテナントサーバ１０４は、各テナントシステム１０２１〜１０２３のデータ／オブジェクト及びサービスのための別個の仮想空間／組織（部分又はパーティションと呼ばれることもある）を含む。例えば、各テナントシステム１０２１〜１０２３は、別個の仮想空間／組織を割り当てられてもよい。各仮想空間／組織は、マルチテナントサーバ１０４内の論理パーティションであり、対応するテナントシステム１０２１〜１０２３のためにマルチテナントサーバ１０４により使用されるサービス（例えばブロックチェーンサービス１０４Ｄ）に追加で、そのテナントシステム１０２１〜１０２３のみがアクセス可能であって他のテナントシステム１０２１〜１０２３がアクセス不可能である別個のテナントレベルオブジェクト１０４Ｂを含む（例えば、テナントシステム１０２１〜１０２３は、他のテナントシステム１０２１〜１０２３のテナントレベルオブジェクト１０４Ｂを読み取る及び／又は書き込むことができない）。
【００１９】
図１に示すように、ピアツーピアブロックチェーンネットワーク１０８は、各々がテナント／ピアを表すテナントシステム１０２１〜１０２３を含み得る。図１に示すピアツーピアブロックチェーンネットワーク１０８は、ブロックチェーンネットワーク１０８内のピア／テナントの表現である。いくつかの実装において、ピアツーピアブロックチェーンネットワーク１０８は、テナントシステム１０２１〜１０２３からの入力／要求を用いてマルチテナントサーバ１０４により制御される分散ネットワークとして見なされてもよい。上述のように、及び以下でより詳細に説明するように、マルチテナントサーバ１０４は、テナントシステム１０２１〜１０２３のために様々な機能／動作を実行することができる。例えば、マルチテナントサーバ１０４は、ブロックチェーンサービス１０４Ｄを使用して、テナントシステム１０２１〜１０２３のためにブロックチェーン機能／動作を実行することができる。上述のように、いくつかの実装において、ブロックチェーン機能／動作は、それぞれのテナントシステム１０２１〜１０２３に関連づけられた別個の仮想空間／組織で実行されてもよい。
【００２０】
３つのテナント／ピア（例えば、テナントシステム１０２１〜１０２３）で示されているが、他の実装において、ピアツーピアブロックチェーンネットワーク１０８は、より多くの又はより少ないテナント／ピアを含んでもよい。例えば、ピアツーピアブロックチェーンネットワーク１０８は、２つ、４つ、５つ、又はそれ以上のテナント／ピアを、対応するテナントシステム１０２と共に含んでもよい。したがって、３つのテナント／ピアの使用は、説明目的のものである。
【００２１】
次に、図２Ａ及び図２Ｂを参照し、ピアツーピアブロックチェーンネットワーク１０８内のデータを管理するマルチテナントサーバ１０４について、いくつかの実装による方法２００を説明する。詳細には、マルチテナントサーバ１０４により提供されるマルチテナントクラウド環境は、ピアツーピアブロックチェーンネットワーク１０８におけるデータに対するテナントシステム１０２１〜１０２３の許可／特権を管理するために使用することができる。
【００２２】
方法２００は、図１に示す例示的なコンピューティング環境１００、図３Ａに示す例示的なコンピューティング環境３００Ａ、及び／又は図３Ｂに示す例示的なコンピューティング環境３００Ｂに関連して説明される。しかしながら、他の実装において、方法２００は、マルチテナントサーバ１０４の異なる実装を含む他の環境で動作してもよい。
【００２３】
上述したように、図２Ａ及び図２Ｂのフロー図における動作は、他の図の例示的な実装を参照して説明される。しかしながら、フロー図の動作は、他の図を参照して論じたもの以外の実装により実行でき、これらの他の図を参照して論じた実装は、フロー図を参照して論じたものと異なる動作を実行できることを理解されたい。
【００２４】
図２Ａ及び図２Ｂでは特定の順序で記載及び図示されているが、方法２００の動作はこの順序に限定されない。例えば、方法２００の動作のうち１つ以上が、異なる順序で、又は部分的若しくは完全に重なる時間に実行されてもよい。したがって、方法２００の説明及び図示は、例示目的のものであり、特定の実装に制限することは意図されない。
【００２５】
図２Ａに示すように、方法２００は、動作２０２で開始することができ、ブロックチェーンサービス１０４Ｄのメンバシップサービス３０２Ａが、ピアツーピアブロックチェーンネットワーク１０８に対してテナント（ピアと呼ばれることもある）のセットを決定及び／又は追加する。いくつかの実装において、ピアツーピアブロックチェーンネットワーク１０８は、ネットワークオブジェクト３０４Ａにおいて識別され、ピアツーピアブロックチェーンネットワーク１０８のテナントは、ピアオブジェクト３０４Ｂにおいて識別される（例えば、テナントシステム１０２１〜１０２３の識別子により表されるテナント）。例えば、メンバシップサービス３０２Ａは、動作２０２においてピアオブジェクト３０４Ｂを調査することにより、ピアツーピアブロックチェーンネットワーク１０８内のテナントのセットを決定することができる。いくつかの実装において、ピアツーピアブロックチェーンネットワーク１０８にテナント／テナントシステム１０２１〜１０２３を追加することは、ピアツーピアブロックチェーンネットワーク１０８内の現在のテナント／テナントシステム１０２１〜１０２３からの立証／検証のプロセスを通じての合意を必要としてもよい。図１の例示的なコンピューティング環境１００、図３Ａの例示的なコンピューティング環境３００Ａ、及び図３Ｂの例示的なコンピューティング環境３００Ｂにおいて、及び方法２００を以降説明する目的で、メンバシップサービス３０２Ａは、動作２０２において、ピアツーピアブロックチェーンネットワーク１０８がテナントシステム１０２１〜１０２３を含むと決定し、これらはテナント／ピアを表す。
【００２６】
上述のように、テナントシステム１０２１〜１０２３の各々は、マルチテナントサーバ１０４内に別個の仮想空間／組織を含むことができる。各仮想空間／組織は、対応するテナントシステム１０２１〜１０２３のためにマルチテナントサーバ１０４により使用されるサービス（例えば、ブロックチェーンサービス１０４Ｄ）に追加で、そのテナントシステム１０２１〜１０２３のみがアクセス可能であって他のシステム１０２１〜１０２３がアクセス不可能である別個のテナントレベルオブジェクト１０４Ｂを含む（例えば、テナントシステム１０２１〜１０２３は、別のテナントシステム１０２１〜１０２３のテナントレベルオブジェクト１０４Ｂを読み取る及び／又は書き込むことができない）。例えば、図３Ａに示すように、各テナントシステム１０２１〜１０２３は、対応するテナントレベルオブジェクト１０４Ｂ１〜１０４Ｂ３（例えば、物理オブジェクト３０６１〜３０６３、シャドウオブジェクト３０８１〜３０８３、ピア台帳３１０１〜３１０３、及びマッピングオブジェクト３１６１〜３１６３）と、ブロックチェーンサービス１０４Ｄ１〜１０４Ｄ３とを有する、別個の仮想空間／組織３１４１〜３１４３に関連づけられてもよい。図３Ａでは、各仮想空間／組織３１４１〜３１４３に対してブロックチェーンサービス１０４Ｄ１〜１０４Ｄ３の別個のインスタンス化として示すが、各仮想空間／組織３１４１〜３１４３は、代わりに、図３Ｂに示すように、ブロックチェーンサービス１０４Ｄの単一のインスタンス化への別個のアクセスを有してもよい。
【００２７】
動作２０４において、メンバシップサービス３０２Ａは、ピアツーピアブロックチェーンネットワーク１０８内の各テナント／テナントシステム１０２１〜１０２３のための公開鍵（public  keys、ＰＫ）及び秘密／シークレット鍵（private/secret  keys、ＳＫ）のセットを生成することができる。一実装において、公開鍵は、決定された秘密鍵に基づいて生成される。例えば、一方向暗号ハッシュ関数（例えば、ＳＨＡ２５６）を使用して、対応する秘密鍵に基づいてテナントシステム１０２１〜１０２３の公開鍵を生成してもよい。一実装において、公開鍵及び秘密／シークレット鍵は、メンバシップサービス３０２Ａにより、動作２０４における生成に続いてウォレットオブジェクト３０４Ｃに記憶されてもよい。以下でより詳細に説明するように、トランザクションキュー１０４Ａは、テナントシステム１０２１〜１０２３の各々について、トランザクションオブジェクト及び許可鍵（permission  keys）のセットを生成するために、ウォレットオブジェクト３０４Ｃに記憶された秘密／シークレット鍵を利用することができる。詳細には、公開鍵及び秘密／シークレット鍵は、ピアツーピアブロックチェーンネットワーク１０８により使用されるトランザクションの暗号要素を実装するために、トランザクションキュー１０４Ａにより使用されてもよく、セキュリティサービス１１２は、テナントシステム１０２１〜１０２３の許可／特権を実施するために、許可鍵を使用することができる。
【００２８】
動作２０６において、メンバシップサービス３０２Ａは、ピアツーピアブロックチェーンネットワーク１０８のための交換オブジェクトを決定することができる。一実装において、交換オブジェクトは、交換フィールドのセット、及び、各交換フィールドとテナントシステム１０２１〜１０２３の物理オブジェクト内のフィールドとの間のマッピングを定義するマッピングメタデータにより定義される。例えば、図４は、テナントシステム１０２１〜１０２３に対する物理オブジェクト３０６１〜３０６３をそれぞれ示す。この例において、テナントシステム１０２１に対応する物理オブジェクト３０６１は、フィールド４０６１〜４０６Ｎから構成されるレコード４０４１〜４０４Ｍを含み、各レコード４０４１〜４０４Ｍは、各フィールド４０６１〜４０６Ｎの値４０８１，１〜Ｍ，Ｎを含む。同様に、テナントシステム１０２２に対応する物理オブジェクト３０６２は、フィールド４１２１〜４１２Ｈから構成されるレコード４１０１〜４１０Ｇを含み、各レコード４１０１〜４１０Ｇは、各フィールド４１２１〜４１２Ｈの値４１４１，１〜Ｇ，Ｈを含む。同様に、テナントシステム１０２３に対応する物理オブジェクト３０６３は、フィールド４１８１〜４１８Ｓから構成されるレコード４１６１〜４１６Ｑを含み、各レコード４１６１〜４１６Ｑは、各フィールド４１８１〜４１８Ｓの値４２０１，１〜Ｑ，Ｓを含む。物理オブジェクト３０６１〜３０６３の各々は、任意のタイプのデータを表すことができる。例えば、テナントシステム１０２１は、医療ラボラトリ内で動作し、あるいはその他の方法で医療ラボラトリに対応してもよい。この例において、物理オブジェクト３０６１は、医療ラボレポートを表すことができる（例えば、レコード４０４１〜４０４Ｍの各々は、別個の医療ラボレポートに対応してもよい）。テナントシステム１０２２は、医院内で動作し、あるいはその他の方法で医院に対応してもよい。この例において、物理オブジェクト３０６２は、患者ファイルを表すことができる（例えば、レコード４１０１〜４１０Ｇの各々は、別個の患者ファイルに対応してもよい）。
【００２９】
図４に示す例示的な物理オブジェクト３０６１〜３０６３では、メンバシップサービス３０２Ａは、図５に示すような交換オブジェクト５０２を決定することができ、これは、デジタル資産オブジェクト３０４Ｄに記憶することができる。図５に示すように、交換オブジェクト５０２は、交換フィールド５０４１〜５０４３と、交換フィールド５０４を物理オブジェクト３０６のフィールドにマッピングするマッピングメタデータとにより定義される。この構成において、交換フィールド５０４１は、物理オブジェクト３０６１のフィールド４０６２、物理オブジェクト３０６２のフィールド４１２Ｈ、及び物理オブジェクト３０６３のフィールド４１８２にマッピングする。交換フィールド５０４２は、物理オブジェクト３０６１のフィールド４０６Ｎ、物理オブジェクト３０６２のフィールド４１２１、及び物理オブジェクト３０６３のフィールド４１８１にマッピングする。交換フィールド５０４３は、物理オブジェクト３０６１のフィールド４０６１、及び物理オブジェクト３０６２のフィールド４１２２にマッピングする。したがって、交換オブジェクト５０２のマッピングメタデータは、交換フィールド５０４を物理オブジェクト３０６のフィールドにマッピング／リンクする。いくつかの実装において、交換フィールド５０４１〜５０４３の数（すなわち、３）は、（１）物理オブジェクト３０６１内のフィールド４０６１〜４０６Ｎの数（すなわち、Ｎ）、（２）物理オブジェクト３０６２内のフィールド４１２１〜４１２Ｈの数（すなわち、Ｈ）、及び／又は（３）物理オブジェクト３０６３内のフィールド４１８１〜４１８Ｓの数（すなわち、Ｓ）未満である。したがって、テナントシステム１０２１〜１０２３の間で分散されることになる生成されたトランザクションオブジェクトと、分散ピア台帳３１０に含まれる対応するデータ／情報は、機密データを含まなくてもよい。
【００３０】
交換フィールド５０４の、物理オブジェクト３０６１〜３０６３のフィールド４０６、４１２、及び４１８へのマッピングは、物理オブジェクト３０６１〜３０６３のフィールド４０６、４１２、及び４１８間の関係を示す。例えば、物理オブジェクト３０６１が医療ラボレポートを表し、物理オブジェクト３０６２が患者ファイルを表す上記の例を用いると、物理オブジェクト３０６１のフィールド４０６２は、対応する医療ラボレポートが生成された患者識別子に対応することができ、物理オブジェクト３０６２のフィールド４１２Ｈは、対応する患者ファイルが表す患者識別子に対応することができる。図５に示すように、及び上述のように、これらのフィールド４０６２及び４１２Ｈは同じ交換フィールド５０４１にマッピングされ、これらのフィールド４０６２及び４１２Ｈが類似のデータを表す（例えば、フィールド４０６２及び４１２Ｈは双方とも患者識別子を表す）ことを示している。
【００３１】
いくつかの実装において、各テナント／テナントシステム１０２１〜１０２３は、ブロックチェーンネットワーク１０８を含む複数のブロックチェーンネットワークの一部でもよい。これらのブロックチェーンネットワークの各々は、ブロックチェーンネットワーク１０８との重複メンバシップを含んでもよく、かつ／あるいはさらなるピア／テナントシステム１０２を含んでもよい。いくつかの実装において、ネットワークオブジェクト３０４Ａは、マルチテナントサーバ１０４により管理される各ブロックチェーンネットワークの識別子を含んでもよく、ピアオブジェクト３０４Ｂは、マルチテナントサーバ１０４により管理されるブロックチェーンネットワーク内の各ピア／テナントシステム１０２の識別子を含んでもよく、ウォレットオブジェクト３０４Ｃは、マルチテナントサーバ１０４により管理されるブロックチェーンネットワーク内の各ピア／テナントシステム１０２の鍵を含んでもよく、デジタル資産オブジェクト３０４Ｄは、マルチテナントサーバ１０４により管理される各ブロックチェーンネットワークの交換オブジェクト５０２を含んでもよい。いくつかの実装において、各テナントシステム１０２のためのテナントレベルオブジェクト１０４Ｂは、マッピングオブジェクト３１６を含んでもよい。各マッピングオブジェクト３１６は、対応するテナントシステム１０２のためのマッピングメタデータを含む。例えば、テナントシステム１０２１に対応するマッピングオブジェクト３１６１は、交換フィールド５０４１を物理オブジェクト３０６１のフィールド４０６２に、交換フィールド５０４２を物理オブジェクト３０６１のフィールド４０６Ｎに、及び交換フィールド５０４３を物理オブジェクト３０６１のフィールド４０６１にマッピングするマッピングメタデータを含む。対照的に、テナントシステム１０２２に対応するマッピングオブジェクト３１６２は、交換フィールド５０４１を物理オブジェクト３０６２のフィールド４１２Ｈに、交換フィールド５０４２を物理オブジェクト３０６２のフィールド４１２１に、及び交換フィールド５０４３を物理オブジェクト３０６２のフィールド４１２２にマッピングするマッピングメタデータを含む。最後、テナントシステム１０２３に対応するマッピングオブジェクト３１６３は、交換フィールド５０４１を物理オブジェクト３０６３のフィールド４１８２に、及び交換フィールド５０４２を物理オブジェクト３０６３のフィールド４１８１にマッピングするマッピングメタデータを含む。したがって、各マッピングオブジェクト３１６は、対応するテナントシステム１０２に関連づけられたマッピングメタデータのみを含む。
【００３２】
動作２０８において、セキュリティサービス１１２は、各交換フィールド５０４及びテナントシステム１０２ごとに許可／特権（許可／特権レベルと呼ばれることもある）を決定することができる。例えば、ブロックチェーンネットワーク１０８は、各交換フィールド５０４ごとに読み取り、更新、及び挿入特権を提供してもよい。この例において、セキュリティサービス１１２は、テナントシステム１０２１が交換フィールド５０４１〜５０４３に対する読み取り、更新、及び挿入許可を有すると決定することができる。対照的に、テナントシステム１０２２は、交換フィールド５０４１に対する読み取り許可、及び交換フィールド５０４２及び５０４３に対する読み取り許可及び更新許可のみを有してもよい。最後、テナントシステム１０２３は、交換フィールド５０４１に関して許可／特権を有さず、交換フィールド５０４２及び５０４３に対する読み取り、更新、及び挿入特権を有してもよい。動作２０８における特権／許可の決定は、管理者からの指示又はテナントシステム１０２のサブスクリプションレベルに基づいてもよい。
【００３３】
動作２１０において、セキュリティサービス１１２は、各テナントシステム１０２のための許可鍵のセットを生成することができる。許可鍵のセットは、１つ以上の交換フィールド５０４にアクセスするために、テナントシステム１０２により、又はテナントシステム１０２のために使用することができる。例えば、各々の許可鍵セットは、テナントシステム１０２の各交換フィールド５０４及び各許可／特権レベルに対して別個の鍵を含んでもよい。例えば、図６は、テナントシステム１０２１〜１０２３の各々に対するセキュリティオブジェクト３１８１〜３１８３をそれぞれ示す。図示のように、鍵のセット６０４１〜６０４３が、対応するテナントシステム１０２に関連づけられた各許可／特権レベル６０６に対して交換フィールド５０４ごとに提供される。これらの鍵セット６０４１〜６０４３は、各それぞれのテナントシステム１０２の公開及び秘密鍵のうち１つ以上に基づいて生成されてもよく、交換フィールド５０４を対応するトランザクションオブジェクト及びピア台帳３１０を介して読み取り、更新し、ブロックチェーンネットワーク１０８に挿入するために使用されてもよい。
【００３４】
動作２１２において、ブロックチェーンサービス１０４Ｄのトランザクション管理サービス３０２Ｂは、（１）物理オブジェクト３０６１〜３０６３に追加するための提案された新しいレコード、又は（２）物理オブジェクト３０６１〜３０６３の既存のレコードへの修正を受信することができる。例えば、上記の例に記載されるように、物理オブジェクト３０６１は、医療ラボレポートに対応することができ、仮想空間／組織３１４１のトランザクション管理サービス３０２Ｂは、テナントシステム１０２１から動作２１２において新しいラボレポートレコード４０４を追加／挿入する要求を受け取ることができる。別の例では、再びになるが、物理オブジェクト３０６１は、医療ラボレポートに対応することができ、仮想空間／組織３１４１のトランザクション管理サービス３０２Ｂは、テナントシステム１０２１から動作２１２において既存のラボレポートレコード４０４を修正する要求を受け取ることができる。説明の目的で、方法２００は、仮想空間／組織３１４１のトランザクション管理サービス３０２Ｂがテナントシステム１０２１から動作２１２においてレコードを物理オブジェクト３０６１に追加／挿入する要求を受信することに関連して説明される。しかしながら、方法２００は、物理オブジェクト３０６の修正に関して同様の方法で機能し得る
【００３５】
動作２１４において、セキュリティサービス１１２は、テナントシステム１０２１が、動作２１２からの受信した要求を実行するのに十分な許可／特権を有するかを判定することができる（すなわち、セキュリティサービス１１２は、テナントシステム１０２１が新しいラボレポートレコード４０４を追加／挿入することを承認されているかどうかを判定する）。一実装において、この判定は、テナントシステム１０２１の各許可／特権レベル６０６に対する鍵を含むセキュリティオブジェクト３１８１に基づく。詳細には、挿入されるよう要求された各交換フィールド５０４に対する、挿入許可／特権６０６に対応する許可鍵の、発見（locate）の失敗に応答して、セキュリティサービス１１２は、動作２１４において、テナントシステム１０２１が動作２１２からの受信した要求を実行するのに十分な許可／特権を有さないと判定することができ、方法２００は、動作２１６に進んで動作２１２からの要求を拒絶することができる。
【００３６】
対照的に、挿入されるよう要求された各交換フィールド５０４に対する、挿入許可／特権６０６に対応する許可鍵の発見に応答して、セキュリティサービス１１２は、動作２１４において、テナントシステム１０２１が動作２１２からの受信した要求を実行するのに十分な許可／特権を有すると判定することができ、方法２００は、動作２１８に進み得る。
【００３７】
動作２１８において、仮想空間／組織３１４１のトランザクション管理サービス３０２Ｂは、シャドウオブジェクト３０８１に、動作２１２の受信した要求（すなわち、新しいレコード）に対応するレコードを生成する。シャドウオブジェクト３０８１は、テナントシステム１０２１に対応することができ、物理オブジェクト３０６１の全てのフィールド４０６１〜４０６Ｎを含むことができる。テナントシステム１０２１の対応するピア台帳３１０１にも表現されるコミットされたデータ（例えば、テナントシステム１０２１の物理オブジェクト３０６１のレコード４０４への追加／修正）を記憶する物理オブジェクト３０６１と対照的に、シャドウオブジェクト３０８１は、物理オブジェクト３０６１へのコミットされていないデータを表す。以下でより詳細に説明するように、テナントシステム１０２１のシャドウオブジェクト３０８１内のデータは、物理オブジェクト３０６１に対してコミットされ、テナントシステム１０２１のピア台帳３１０１により表現される前に、他のテナントシステム１０２２及び非テナントシステム１０２Ｂによる合意を通じて検証／立証される必要がある。このコミット及び表現は、以下でより詳細に説明するように、テナントシステム１０２２及び１０２３の物理オブジェクト３０６２及び３０６３、並びにピア台帳３１０２及び３１０３にも拡張することができる。
【００３８】
図７は、一例示的な実装による、テナントシステム１０２１及び物理オブジェクト３０６１に対応するシャドウオブジェクト３０８１の一例を示す。図示のように、シャドウオブジェクト３０８１は、物理オブジェクト３０６１に対する２つの別個の提案された改変に対応する２つのレコード７０４１及び７０４２を含む。例えば、第１のレコード７０４１は、物理オブジェクト３０６１内のレコード４０４の追加／挿入に対応し、第２のレコード７０４２は、物理オブジェクト３０６１内の新たに追加／挿入されたレコード４０４のための１つ以上のフィールド値４０８の修正／更新に対応する。例えば、第１のレコード７０４１は、医療ラボレポートに対応するレコード４０４の追加／挿入を提案してもよく、一方で、第２のレコード７０４２は、新しい医療ラボレポートレコード４０４のいくつかのフィールド値４０８の修正（例えば、医療ラボレポートのステータスに対応するフィールド値４０８の修正／更新）を提案してもよい。
【００３９】
動作２２０において、イベント管理サービス３０２Ｃ及び／又はトランザクションキュー１０４Ａは、（１）動作２１８でシャドウオブジェクト３０８１に追加されたレコード７０４１、及び（２）ピアツーピアブロックチェーンネットワーク１０８の交換オブジェクト５０２に基づいて、トランザクションオブジェクトを生成することができる。詳細には、トランザクションオブジェクトは、交換フィールド５０４１〜５０４３の各々のための値と、対応する交換フィールド５０４１〜５０４３における、動作２１８でシャドウオブジェクト３０８１に追加されたレコード７０４１からのデータ／フィールド値とを含む。例えば、図８は、一例示的な実装による、トランザクションオブジェクト８０２の一例を示す。
【００４０】
図８に示すように、トランザクションオブジェクト８０２は、交換オブジェクト５０２の全ての交換フィールド５０４１〜５０４３と、交換フィールド５０４１〜５０４３と物理オブジェクト３０６１のフィールド４０６との間のマッピングに基づく適切な位置における、シャドウオブジェクト３０８１内のレコード７０４１からのフィールド値７０６とを含む。レコード７０４１に関連して示されているが、別個のトランザクションオブジェクト８０２がレコード７０４２に対して生成されてもよい。後述するように、例示の目的で以降用いられるトランザクションオブジェクト８０２は、提案されたレコード４０４をコミットするためのブロックチェーンネットワーク１０８内の合意があるかを判定するために（例えば、トランザクションオブジェクト８０２を立証／検証するために）、他のテナントシステム１０２２及び１０２３に渡され、あるいはその他の方法で利用可能にされ得る。
【００４１】
一実装において、トランザクションオブジェクト８０２の生成は、（１）シャドウオブジェクト３０８１からのレコード７０４１、（２）トランザクションオブジェクト８０２の一意割り当て識別子（例えば、トランザクションオブジェクト８０２が生成されるときこれらに順次割り当てられる識別子）、及び（３）テナントシステム１０２１の秘密鍵（すなわち、改変を提案するテナントシステム１０２の秘密鍵）に基づいて、トランザクションオブジェクトに署名を追加することを含んでもよい。例えば、レコード７０４１とトランザクションオブジェクト８０２の一意割り当て識別子をマージし、あるいはその他の方法で一緒に組み合わせて、単一のメッセージを形成することができ、テナントシステム１０２１の秘密鍵を使用して、メッセージを（例えば、ＳＨＡ２５６などの一方向暗号ハッシュ関数を使用して）暗号化し、デジタル署名を形成することができる。したがって、トランザクションオブジェクト８０２は、テナントシステム１０２１の秘密鍵を使用して生成された署名と共に、シャドウオブジェクト３０８１からのレコード７０４１を含む。
【００４２】
いくつかの実装において、セキュリティサービス１１２は、（１）テナントシステム１０２１の秘密鍵（すなわち、改変を提案するテナントシステム１０２の秘密鍵）、（２）交換フィールド５０４に関連する許可／特権６０６を有する各テナントシステム１０２の許可鍵（すなわち、交換フィールド５０４に関連づけられた読み取り、更新、及び／又は挿入特権を有するテナントシステム１０２の許可鍵）、及び／又は（３）交換フィールド５０４に関連する許可／特権を有する各テナントシステム１０２の公開鍵を使用して、トランザクションオブジェクト８０２の各交換フィールド５０４を別個に暗号化することができる。これらの実装において、交換フィールド５０４に関連する許可／特権を有する各テナントシステム１０２の許可鍵を使用することは、これらのテナントシステム１０２のみが対応する交換フィールド５０４へのアクセス（例えば、読み取りアクセス）を有することを保証する。いくつかの実装において、秘密鍵、公開鍵、及び／又は許可鍵は、暗号化されたデータを生成するために、暗号関数（例えば、ＳＨＡ２５６）と共に使用されてもよい。
【００４３】
動作２２２において、イベント管理サービス３０２Ｃ及びトランザクションキュー１０４Ａは、トランザクションオブジェクト８０２を他のテナントシステム１０２２及び１０２３に利用可能にすることができる。いくつかの実装において、トランザクションオブジェクト８０２を他のテナントシステム１０２２及び１０２３に利用可能にすることは、トランザクションキュー１０４Ａがトランザクションオブジェクト８０２を、テナントシステム１０２２及び１０２３がアクセス可能なマルチテナントサーバ１０４の部分／パーティションに配置することを含む。例えば、上述のように、マルチテナントサーバ１０４は、テナントシステム１０２１〜１０２３の各々について別個の仮想空間／組織３１４を含んでもよい。各仮想空間／組織３１４は、そのテナントシステム１０２１〜１０２３のみがアクセス可能であって他のテナントシステム１０２１〜１０２３がアクセス不可能であるデータ及びサービスを含む。動作２２２において、マルチテナントサーバ１０４は、テナントシステム１０２１の仮想空間／組織３１４１からテナントシステム１０２２及び１０２３の仮想空間／組織３１４２及び３１４３にトランザクションオブジェクト８０２を渡すことができ、それにより、テナントシステム１０２２及び１０２３の仮想空間／組織３１４２及び３１４３は、可能な立証／検証のためにトランザクションオブジェクト８０２を処理／分析することができる。上述のように、交換フィールド５０４は、秘密鍵、公開鍵、及び／又は許可鍵を使用して暗号化され得るため、交換フィールド５０４への読み取りアクセスを有するテナントシステム１０２のみが、その交換フィールド５０４の内容を決定でき得る。
【００４４】
動作２２４において、トランザクション管理サービス３０２Ｂは、テナントシステム１０２２及び１０２３からの応答を監視して、トランザクションオブジェクト８０２に関して合意に達したか、又は合意に達するのに失敗したかを判定することができる。一実装において、合意管理サービス３０２Ｄは、トランザクションオブジェクト８０２に関してテナントシステム１０２２及び１０２３によっていつ合意に到達したかを判定する際に、トランザクション管理サービス３０２Ｂにより使用される閾値又はルールを定義することができる。例えば、いくつかの実装において、合意管理サービス３０２Ｄは、合意が、テナントシステム１０２２及び１０２３の全てがトランザクションオブジェクト８０２を立証／検証することを要することを示してもよく、一方で、他の実装において、合意管理サービス３０２Ｄは、合意が、テナントシステム１０２２及び１０２３のうち過半数がトランザクションオブジェクト８０２を立証／検証することを要することを示してもよい。いくつかの実装において、同意管理（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、ＡＦＳ）、無線アプリケーションプロトコル（ＷＡＰ）、ファイル転送プロトコル（ＦＴＰ）、ネットワークファイルシステム（ＮＦＳ）、シンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）や表現状態転送（ＲＥＳＴ）などのプロトコルに基づくアプリケーションプログラムインターフェース（ＡＰＩ）などの、通信するための他のネットワーキングプロトコルを使用してもよい。ＨＴＴＰが使用される一例において、１つ以上のユーザ電子デバイス１０８０Ａ〜Ｓは、システム１０４０のサーバとの間でＨＴＴＰメッセージを送信及び受信するために、一般に「ブラウザ」と呼ばれるＨＴＴＰクライアントを含んでもよく、ゆえに、ユーザ電子デバイス１０８０Ａ〜Ｓのユーザ１０８４は、ネットワーク１０８２を介してシステム１０４０からのそれに利用可能な情報、ページ、及びアプリケーションにアクセスし、処理し、閲覧することができる。
【００６５】
上記説明では、より完全な理解を提供するために、リソース区分／共有／複製の実装、システムコンポーネントのタイプ及び相互関係、並びに論理区分／統合の選択などの、多数の特定の詳細が説明されている。しかしながら、当業者には、本発明がこのような特定の詳細なしに実施され得ることが理解されるであろう。他の例では、制御構造、論理実装、ＯＰコード、オペランドを指定する手段、及び完全なソフトウェア命令シーケンスは詳細に示されておらず、なぜならば、当業者は、含まれる説明により、過度の実験なしに記載されているものを実装することができるためである。
【００６６】
明細書中の「１つの実装」、「一実装」、「一例示的な実装」等への参照は、記載された実装が特定の特徴、構造、又は特性を含み得るが、あらゆる実装が必ずしも上記特定の特徴、構造、又は特性を含まなくてもよいことを示す。さらに、このようなフレーズは、必ずしも同じ実装を参照していない。さらに、特定の特徴、構造、又は特性がある実装に関連して記載されているとき、明示的に記載されているか否かにかかわらず、他の実装に関連してそのような特徴、構造、又は特性に影響を及ぼすことは当業者の知識の範囲内であることが提示される。
【００６７】
破線境界で囲まれたテキスト及びブロック（例えば、大きいダッシュ、小さいダッシュ、ドット・ダッシュ、及びドット）は、本明細書において、いくつかの実装にさらなる特徴を追加する任意の動作及び／又は構造を説明するために用いられることがある。しかしながら、そのような表記は、これらが唯一の選択肢又は任意動作であること、及び／又は実線境界を有するブロックが特定の実装において任意でないことを意味するものとみなされるべきではない。
【００６８】
以下の説明及び特許請求の範囲において、用語「結合される」がその派生語と共に用いられることがある。「結合される」は、互いに直接物理的又は電気的に接触している可能性又はそうでない可能性のある２つ以上の要素が、協働し又は互いに相互作用することを示すために用いられる。
【００６９】
フロー図における動作は、他の図における例示的な実装を参照して説明されている。しかしながら、フロー図の動作は、他の図を参照して論じたもの以外の実装により実行することができ、これらの他の図を参照して論じた実装は、フロー図を参照して論じたものと異なる動作を実行することができる。
【００７０】
図中のフロー図は、特定の実装により実行される特定の動作順序を示しているが、そのような順序は例示的であることを理解されたい（例えば、代替的な実装が、異なる順序で動作を実行する、特定の動作を組み合わせる、特定の動作を重ねるなどしてもよい）。
【００７１】
上記説明はいくつかの例示的な実装を含むが、当業者は、本発明が説明された実装に限定されず、別記の特許請求の範囲の主旨及び範囲内で修正及び改変を実施できることを認識するであろう。したがって、本説明は、限定的でなく例示的なものである。
【図１】
2022501712.tif 000003
【図２Ａ】
2022501712.tif 000004
【図２Ｂ】
2022501712.tif 000005
【図３Ａ】
2022501712.tif 000006
【図３Ｂ】
2022501712.tif 000007
【図４】
2022501712.tif 000008
【図５】
2022501712.tif 000009
【図６】
2022501712.tif 000010
【図７】
2022501712.tif 000011
【図８】
2022501712.tif 000012
【図９】
2022501712.tif 000013
【図１０Ａ】
2022501712.tif 000014
【図１０Ｂ】
2022501712.tif 000015
【国際調査報告】
2022501712.tif 000016
2022501712.tif 000017