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