(57)【要約】  クローニング後のテナント識別子変換のためにレコードを識別するためのシステム、デバイス、及び技術が開示されている。レコードは、データベースアプリケーションを実行するコンピューティングデバイスにおいて、データベースエクゼキュータを実行するデータベースシステムから、受信され得る。データベースアプリケーションは、レコードの中から、符号化されたテナント識別子の値が、テナント識別子列ではないレコードの列に格納されていることを示すビットを含むレコードヘッダを含むレコードを識別し得る。データベースアプリケーションは、データベースアプリケーションによって識別されたレコードに基づいてインデックスを生成し得る。データベースアプリケーションは、インデックスを使用してレコードにアクセスし、レコードの列に格納された符号化されたテナント識別子の値を、符号化されたテナント識別子の新たな値に置き換え得る。
2022501693.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
データベースアプリケーションを実行するコンピューティングデバイスにおいて、データベースエクゼキュータを実行するデータベースシステムから、レコードを受信するステップと、
前記データベースアプリケーションによって、前記レコードの中から、符号化されたテナント識別子の値が、テナント識別子列ではないレコードの列に格納されていることを示すビットを含むレコードヘッダを含む１つ以上のレコードを識別するステップと、
前記データベースアプリケーションによって、前記データベースアプリケーションによって識別された前記１つ以上のレコードに基づいて、部分インデックスを生成するステップと、
前記データベースアプリケーションによって、前記部分インデックスを使用して前記１つ以上のレコードにアクセスし、前記データベースアプリケーションによって、前記１つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えるステップと、
を含む、コンピュータ実施方法。
【請求項２】
前記部分インデックスを使用して前記１つ以上のレコードにアクセスし、前記１つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えるステップは、前記１つ以上のレコードの列をウォーキングするステップをさらに含む、
請求項１記載のコンピュータ実施方法。
【請求項３】
前記データベースシステムはマルチテナントデータベースシステムである、
請求項１記載のコンピュータ実施方法。
【請求項４】
前記１つ以上のレコードは、前記データベースシステムの持続的なストレージから受信される、
請求項１記載のコンピュータ実施方法。
【請求項５】
前記１つ以上のレコードは、前記コンピューティングデバイスの作業メモリに解凍される、
請求項１記載のコンピュータ実施方法。
【請求項６】
前記１つ以上のレコードは、前記テナント識別子の値によって識別されるテナントによって所有されるデータベースからクローニングされるサンドボックスデータベースの一部であり、
前記サンドボックスデータベースは、前記テナント識別子の前記新たな値によって識別されるテナントによって所有される、
請求項１記載のコンピュータ実施方法。
【請求項７】
前記部分インデックスを使用して前記１つ以上のレコードにアクセスし、前記１つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えるステップの後、前記テナント識別子の前記新たな値によって識別されたテナントに対するデータベースの一部として使用することができる前記１つ以上のレコードを作成するステップをさらに含む、
請求項１記載のコンピュータ実施方法。
【請求項８】
クローニング後のテナント識別子変換のために、レコードを識別するためのコンピュータで実施されるシステムであって、
作業ストレージを有する１つ以上のストレージデバイスと、
コンピューティングデバイスのプロセッサであって、
データベースエクゼキュータを実行するデータベースシステムからレコードを受信し、
前記レコードの中から、符号化されたテナント識別子の値が、テナント識別子列ではない前記レコードの列に格納されていることを示すビットを含むレコードヘッダを含む１つ以上のレコードを識別し、
識別された前記１つ以上のレコードに基づいて部分インデックスを生成し、
前記部分インデックスを使用して前記１つ以上のレコードにアクセスし、前記１つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換える、
プロセッサと、
を備える、コンピュータ実施システム。
【請求項９】
前記プロセッサはさらに、
前記１つ以上のレコードの列をウォーキングすることによって、前記１つ以上のレコードに前記部分インデックスを使用してアクセスし、前記１つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換える、
請求項８記載のコンピュータ実施システム。
【請求項１０】
前記データベースシステムはマルチテナントデータベースシステムである、
請求項８記載のコンピュータ実施システム。
【請求項１１】
前記プロセッサが受信する前記１つ以上のレコードは、前記データベースシステムの持続的なストレージから受信される、
請求項８記載のコンピュータ実施システム。
【請求項１２】
前記１つ以上のレコードは、作業メモリに解凍される、
請求項８記載のコンピュータ実施システム。
【請求項１３】
前記１つ以上のレコードは、前記テナント識別子の値によって識別されるテナントによって所有されるデータベースからクローニングされるサンドボックスデータベースの一部であり、
前記サンドボックスデータベースは、前記テナント識別子の前記新たな値によって識別されるテナントによって所有される、
請求項８記載のコンピュータ実施システム。
【請求項１４】
前記部分インデックスを使用して前記１つ以上のレコードにアクセスし、前記１つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えた後、
前記テナント識別子の前記新たな値によって識別されたテナントに対するデータベースの一部として使用することができる前記１つ以上のレコードを作成する、
請求項８記載のコンピュータ実施システム。
【請求項１５】
システムであって、
１つ以上のコンピュータと、
前記１つ以上のコンピュータによって実行される場合、
データベースアプリケーションを実行するコンピューティングデバイスにおいて、データベースエクゼキュータを実行するデータベースシステムから、レコードを受信するステップと、
前記データベースアプリケーションによって、前記レコードの中から、符号化されたテナント識別子の値が、テナント識別子列ではない前記レコードの列に格納されていることを示すビットを含むレコードヘッダを含む１つ以上のレコードを識別するステップと、
前記データベースアプリケーションによって、前記データベースアプリケーションによって識別された前記１つ以上のレコードに基づいて、部分インデックスを生成するステップと、
前記データベースアプリケーションによって、前記部分インデックスを使用して前記１つ以上のレコードにアクセスし、前記データベースアプリケーションによって、前記１つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えるステップと、
を含む動作を前記１つ以上のコンピュータに行わせるように動作可能な命令を格納する１つ以上のストレージデバイスと、
を備える、システム。
【請求項１６】
前記１つ以上のコンピュータによって実行される場合、前記１つ以上のコンピュータに、前記部分インデックスを使用して前記１つ以上のレコードにアクセスし、前記１つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えるステップ、を含む動作を行わせる前記命令は、
前記１つ以上のレコードの列をウォーキングするステップを含む動作をさらに、前記１つ以上のコンピュータに行わせる、
請求項１５記載のシステム。
【請求項１７】
前記データベースシステムはマルチテナントデータベースシステムである、
請求項１５記載のシステム。
【請求項１８】
前記１つ以上のレコードは、前記データベースシステムの持続的なストレージから受信される、
請求項１５記載のシステム。
【請求項１９】
前記１つ以上のレコードは、前記コンピューティングデバイスの作業メモリに解凍される、
請求項１５記載のシステム。
【請求項２０】
前記１つ以上のレコードは、前記テナント識別子の値によって識別されるテナントによって所有されるデータベースからクローニングされるサンドボックスデータベースの一部であり、
前記サンドボックスデータベースは、前記テナント識別子の前記新たな値によって識別されるテナントによって所有される、
請求項１５記載のシステム。
【請求項２１】
前記命令は、前記１つ以上のコンピュータによって実行される場合、
前記部分インデックスを使用して前記１つ以上のレコードにアクセスし、前記１つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えるステップの後、
前記テナント識別子の前記新たな値によって識別されたテナントに対するデータベースの一部として使用することができる前記１つ以上のレコードを作成するステップを含む
動作をさらに、前記１つ以上のコンピュータに行わせる、
請求項１５記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
マルチテナントデータベースのレコードは、レコードを所有するテナントを示すテナント識別子を含み得る。
【背景技術】
【０００２】
状況によっては、テナントに属するレコードは、そこに含まれるテナント識別子を新たなテナント識別子で置き換える必要があり得る。変換されるべきレコードを識別することは、計算量が集中し得る。
【発明の概要】
【０００３】
開示された主題のさらなる理解を提供するために含まれる添付の図面は、本明細書に組み込まれ、本明細書の一部を構成する。図面はまた、開示された主題の実施形態を説明し、詳細な説明と共に、開示された主題の実施形態の原理を説明するのに役立つ。開示された主題の基本的理解及びそれが実施され得る種々の方法のために必要である以上に詳細な構造的詳細を示す意図は無い。
【図面の簡単な説明】
【０００４】
【図１】図１は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的システムを示す図である。
【図２Ａ】図２Ａは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す図である。
【図２Ｂ】図２Ｂは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す図である。
【図３】図３は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す図である。
【図４】図４は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す図である。
【図５Ａ】図５Ａは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す図である。
【図５Ｂ】図５Ｂは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するのに適した例示的なアレンジメントを示す図である。
【図６】図６は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。
【図７】図７は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な手順を示す図である。
【図８】図８は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。
【図９】図９は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。
【図１０】図１０は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。
【図１１Ａ】図１１Ａは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。
【図１１Ｂ】図１１Ｂは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。
【図１１Ｃ】図１１Ｃは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。
【図１２】図１２は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な手順を示す図である。
【図１３】図１３は、開示された主題の実施形態にしたがった、コンピュータを示す図である。
【図１４】図１４は、開示された主題の実施形態にしたがった、ネットワークコンフィギュレーションを示す図である。
【発明を実施するための形態】
【０００５】
本明細書に開示される技術は、クローニング後のテナント識別子変換（post-cloning  tenant  identifier  translation）のためにレコードを識別することを可能にし、クローニング後のテナント識別子変換のためにより効率的にレコードを識別すること及びより効率的なクローニング後のテナント識別子変換を可能にし得る。レコードの列の中のレコードに対する（for  the  record）テナント識別子の値のコピーを含むレコードは、そのレコードヘッダに設定されたレコードタイプビットを有し得る。テーブル内のレコードに対するレコードヘッダ内のビットの値は、テーブルに追加された列内でさらされ（exposed）得る。レコードヘッダ内のレコードタイプビットが１又は真に設定されているレコードを含み得る部分インデックスが生成され得る。部分インデックスは、クローニング後のテナント識別子変換のために、レコードを識別し、レコードにアクセスするために使用され得る。
【０００６】
テナント識別子は、データベースシステムに格納されたレコードの所有者を識別するために使用され得る。テナントに割り当てられたテナント識別子の値は、データベースシステムに格納され得るテナントに属するすべてのレコードのキーの一部として使用することができる。テナント識別子の値は、例えば英数字列として、表され得る。
【０００７】
データベースシステムがマルチテナントデータベースシステムである場合、固有のテナント識別子がテナントの各々に割り当てられ得る。マルチテナンシーは、例えば、ユーザ、ユーザのグループ、又は組織であり得る種々のテナントが、種々のテナント間で共有され得るデータベースシステム上のソフトウェアツール又はインスタンスを介して、データベースシステム内のそれら自身のレコードにアクセスすることを可能にし得る。各テナントのレコードは、そのテナントのデータベースの一部となり得る。データベースは、例えば、関係型データベース、階層型データベース、又は任意の他の適切なデータベースタイプであり得る。データベースシステムに格納される全てのレコードは、例えば、ログ構造化マージ（ＬＳＭ）ツリーを含む、任意の適切な構造に格納され得る。
【０００８】
データベースシステムに格納されたレコードは、キーを含み得る。キーは、レコードに対する識別子、例えば、一次キーであり得、例えば、英数字シーケンスなどの、任意の適切な形式であり得る。キーの一部は、レコードに関する情報を提供し得る。例えば、キーの一部は、レコードが属するテナントのテナント識別子の値である。キーの他の部分は、例えば、レコードの値が行の内容である場合、例えば、テーブル番号及び行のＩＤ（identification）を識別し得る。
【０００９】
レコードは値を含み得る。レコードの値は、例えば、列ごとに１つの値を持つタプルとして格納された、関係型データベースのテーブルの行内の列の内容であり得る。タプルとして格納される値は、例えば、バイナリ符号化を使用して符号化され得る。一部のレコードは、タプル内で符号化されたレコードを所有するテナントに対するテナント識別子の値を、テナント識別子のエンコードされた値として格納し得る。テナント識別子の符号化された値は、例えば、レコードのテナント識別子列に格納され得る。テナント識別子の符号化された値はまた、テナント識別子列ではない可能性があるレコードの他の列に格納され得る。
【００１０】
状況によっては、レコードのテナント識別子を変換する必要があり得る。テナント識別子変換は、レコード中のテナント識別子の値を新たな値に、すなわち新たなテナント識別子に置き換え得る。例えばサンドボックス化のために、例えば、テナントレコードセット（tenant’s  record  set）内のレコードがコピーされて、テナントレコードセットの全部又は一部のクローン（clone）を作成する場合、テナント識別子変換は、コピーされたレコードに新たなテナント識別子を割り当てるために使用され得る。このようにして、クローニングされた（cloned）テナントレコードセット内のレコードとは無関係に、サンドボックスデータベース内のレコードをテナントが使用できるようになり得る。
【００１１】
より効率的なテナント識別子変換を可能にするために、データベースシステムに格納されたレコードは変更され得る。レコードヘッダにレコードタイプインジケータを設定し得る。レコードタイプインジケータは、レコードがテナント識別子列以外の列にテナント識別子の符号化された値を格納することを示すために、１又は真に設定されるビットであり得る。
【００１２】
テナント識別子列以外の列内にテナント識別子の符号化された値を格納しているとして、レコードヘッダ内のレコードタイプインジケータによって識別されるレコードについては、テナント識別子変換を適用するかどうかをデータベースアプリケーションが決定し得る。データベースアプリケーションは、データベースシステムとインタラクトするために使用されるアプリケーションであり得る。例えば、データベースアプリケーションを実行するコンピューティングデバイスは、テナントによってデータベースシステム内のそのデータベースにアクセスするために使用され得る。
【００１３】
データベースアプリケーションによるクローニング後のテナント識別子変換のための、レコードのより効率的な識別を可能にするために、列がレコードに追加され得、レコードヘッダ内のレコードタイプインジケータの値をさらし得、レコードヘッダは、設定される場合に、テナント識別子列以外のレコードの列内におけるテナント識別子の符号化された値の存在を示す。列は、レコードタイプインジケータ列であり得る。テナント識別子列以外の列に格納されたテナント識別子の符号化値を持つレコードは、そのレコードタイプインジケータビットが１又は真に設定され得、その結果、そのレコードタイプインジケータ列は１又は真の値になり得る。テナント識別子列以外の列に格納されたテナント識別子の符号化値を持たないレコードは、そのレコードタイプインジケータビットが０又は偽に設定され得、その結果、レコードタイプインジケータ列の値は０又は偽になり得る。
【００１４】
データベースアプリケーション又はデータベースシステムの別の適切な構成要素、データベースアプリケーションを実行するコンピューティングデバイス、又は、別のコンピューティングデバイスは、データベースシステムの持続的ストレージ又は作業メモリに格納されたレコードのレコードタイプインジケータ列内の値に基づいて、部分インデックスを作成し得る。部分インデックスは、レコードタイプインジケータ列が１又は真の値を有するレコードにのみインデックスを付け得る。部分インデックスは、部分インデックスによってインデックス付けされたレコードにアクセスするためにデータベースアプリケーションによって使用され得る。次いで、データベースアプリケーションは、これらのレコード上でテナント識別子変換を選択的に行い得る。テナント識別子変換は、アップデートコマンドによって実行され得、これは、テナント識別子の符号化された値を格納する列に格納されたテナント識別子の元の値の符号化を、例えばデータベースアプリケーションによって提供され得るテナント識別子の新たな値の符号化に置き換え得る。
アップデートコマンドは、部分インデックスによってインデックス付けされたレコードの全ての列をウォーキングし、任意の列において、テナント識別子の符号化された値に一致する任意の値を、テナント識別子の符号化された新たな値に選択的に置換することによって、置換を選択的に実行し得る。部分インデックスによってインデックス付けされたレコードの列をウォーキングすることは、それらのレコードのすべての列に格納された値を読み込むことを含み得る。
【００１５】
完全なインデックスは、レコードの、作成、アップデート、及び削除動作を含む、全ての変更にかなりの計算コストがかかり得るため、部分的デックスは完全なインデックスの代わりに使用され得る。部分インデックスは、テナント識別子列以外の列にテナント識別子の符号化された値を含まない全てのレコードに対する計算コストを削減することを可能にし得るとともに、テナント識別子列以外の列にテナント識別子の符号化された値を含むレコードは、完全なインデックスで生じたであろうものと同様の計算コストを負担し得る。テナント識別子列以外の列にテナント識別子の符号化された値を格納するレコードの数は、データベース又はテーブル内の全てのレコードのうちのわずかな部分であり得るので、これは計算リソースの節約となり得る。
【００１６】
図１は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的システムを示す。データベースシステム１００は、クローニング後のテナント識別子変換のためのレコードを識別するために、例えば、図１３に示されるコンピュータ２０又はその構成要素などの任意の適切なコンピューティングデバイスを含み得る。データベースシステム１００は、ラップトップ、デスクトップ、個別サーバ、サーバクラスタ、サーバファーム、又は分散サーバシステム上で実施され得、又は、仮想的コンピューティングデバイス若しくはシステム、或いは物理的システムと仮想システムの任意の適切な組み合わせとして実施され得る。データベースシステム１００は、コンピューティングシステム及びネットワークインフラストラクチャの一部であることができ、或いは、他のサーバシステムを含むことができるより大きなサーバネットワークを含む、コンピューティングシステム及びネットワークインフラストラクチャに接続することができる。データベースシステム１００は、例えば、互いに通信可能であり、任意の適切な方法で通信し得る、任意の数のサーバシステムを含み得る。例えば、データベースシステム１００のサーバシステムは、任意の適切なネットワークを介して接続され得、ネットワークは、プライベートネットワークとインターネットとの任意の組み合わせを含む、ＬＡＮとＷＡＮとの任意の適切な組み合わせであり得る。データベースシステム１００は、データベースエクゼキュータ１１０及びストレージ１４０を含み得る。ストレージ１４０は、持続的ストレージ１４２及び作業ストレージ１４４を含み得る。レコード１５０及びシステムカタログ１６０は、持続的ストレージ１４２内に格納され得る。
【００１７】
データベースエクゼキュータ１１０は、データベースシステム１００上に格納されたデータベースと相互作用し、これを管理するための、データベースシステム１００のハードウェア及びソフトウェアの任意の適切な組み合わせであり得る。データベースシステム１００は、例えば、複数のテナントのためのデータベースを格納し得るマルチテナントデータベースシステムであり得る。レコード１５０は、データベースシステム１００の複数のテナントのためのデータベースに対するレコードを含み得る。データベースエクゼキュータ１１０は、スキャン記述子を有する受信されたクエリに基づいてテナントに対するレコード１５０からレコードを検索することが可能であり得る。例えば、データベースエクゼキュータ１１０は、例えばサンドボックスデータベースの作成中にテナントレコードセットをクローニングする場合、持続的ストレージ１４２から作業ストレージ１５０にレコードをコピーし、レコードを新たな値でアップデートし、作業ストレージ１５０から持続的ストレージ１４２へ戻すようにレコードをマージし、レコード１５０内にレコードの新たなコピーを作成することが可能であり得る。
【００１８】
持続的ストレージ１４２は、レコード１５０及びシステムカタログ１６０などの、データを持続的にストレージするためのハードウェア及びソフトウェアの任意の適切な組み合わせであり得る。例えば、持続的ストレージ１４２は、ハードドライブ、ソリッドステートドライブ、又は他の形態の持続的データストレージを含み得る。持続的ストレージ１４２は、任意の数のコンピューティングデバイスにわたって分散され得る。作業ストレージ１４４は、持続的又は非持続的なデータストレージのためのハードウェア及びソフトウェアの任意の適切な組み合わせであり得、レコード１５０からのレコードが持続的ストレージ１４２の外部で操作されることを可能にするために使用され得る。例えば、作業ストレージ１４４は、ハードドライブ、ソリッドステートドライブ、ランダムアクセスメモリ、又は持続的又は非持続的であり得る他の形態のデータストレージを含み得る。
【００１９】
レコード１５０は、データベースシステム１００の種々のテナントのデータベースに対するレコードを含み得る。レコード１５０内のレコードは、レコードの所有者を識別するためのテナント識別子を含み得る。テナントに割り当てられたテナント識別子は、データベースシステムに格納され得るテナントに属するすべてのレコードに対するキーの一部として使用され得る。テナント識別子の値は、例えば英数字列として、表され得る。固有のテナント識別子は、データベースシステム１００のテナントの各々に割り当てられ得る。マルチテナンシーは、例えば、ユーザ、ユーザのグループ、又は組織であり得る種々のテナントが、種々のテナント間で共有され得るデータベースシステム１００上のソフトウェアツール又はインスタンスを介して、データベースシステム１００内のそれら自身のレコードにアクセスすることを可能にし得る。レコード１５０に格納されたレコードを含む、各テナントに対するデータベースは、例えば、関係型データベース、階層型データベース、又は任意の他の適切なデータベースタイプであり得る。レコード１５０は、データベースシステム１００の持続的ストレージ１４２内に、例えばログ構造化マージ（ＬＳＭ）ツリーを含む任意の適切な構造で格納され得る。レコードは不変に保存され得るので、レコードが作成された後にレコードをアップデートすることは、レコードの格納されている以前のバージョンに変更を加えることなく、レコードの新たなバージョンが作成されるという結果をもたらす。
【００２０】
データベースシステム１００に格納されたレコード１５０からのレコードは、キーを含み得る。キーは、レコードに対する識別子、例えば、一次キーであり得、例えば、英数字シーケンスなどの、任意の適切な形式であり得る。キーの一部は、レコードに関する情報を提供し得る。例えば、キーの一部は、レコードが属するテナントに対するテナント識別子であり得る。キーの他の部分は、例えば、レコードの値が行の内容である場合、例えば、テーブル番号及び行のＩＤを識別し得る。
【００２１】
レコードは値を含み得る。レコード内の値は、例えば、列ごとに１つの値を持つタプルとして格納された、関係型データベースのテーブルの行内の列の内容であり得る。タプルとして格納される値は、例えば、バイナリ符号化を使用して符号化され得る。一部のレコードは、タプル内でレコードを所有するテナントに対するテナント識別子の符号化された値を格納し得る。テナント識別子の符号化された値は、例えば、レコードのテナント識別子列に格納され得る。テナント識別子の符号化された値はまた、テナント識別子列ではない可能性があるレコードの他の列に格納され得る。
【００２２】
システムカタログ１６０は、データベースシステム１００に格納されたテナントレコードセットのためのメタデータを含み得る。例えば、システムカタログ１６０は、テナントレコードセットに対するレコード１５０のレコードで使用される様々な列タイプのプロパティを記述するメタデータを含み得る。
【００２３】
図２Ａは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す。レコード１５０からのレコード２００は、例えばデータベースシステム１００へのクエリに応答して、データベースエクゼキュータ１１０によって、作業メモリ１４４にコピーされ得る。データベースエクゼキュータ１１０は、例えば、レコード２００のタプルを列に展開する（expanding）などして、レコード２００を解凍（unpack）し得る。レコード２００は、キー２１０、レコードヘッダ２２０、及び値２３０を含み得る。キー２１０は、テナントレコードセット内のレコード２００を識別するために使用されるキーであり得、テナント識別子２１１及びキーデータ２１２を含み得る。テナント識別子２１１は、レコード２００を所有するテナントに対するテナント識別子２１１の値であり得る。キーデータ２１２は、例えば、レコード２００に対するテーブルの行のＩＤ及びテーブル番号などの、キー２１０に含まれる他のデータであり得る。キー２１１は、テナント識別子２１１とキーデータ２１２との連結であり得る英数字列の形態で格納され得る。
【００２４】
レコードヘッダ２２０は、値２３０の外部にあるレコード２００に対するメタデータ及び他の追加データを格納し得るレコード２００の一部であり得る。例えば、レコードヘッダ２００は、例えば、レコード２００のプロパティを示すために、１若しくは真、又は、０若しくは偽に設定され得るビットとして、インジケータを含み得る。
【００２５】
レコード２００の値２３０は、レコード２００の列に格納された値を含み得る。値２３０は、タプルを形成し得る。レコード２００の列は、例えば、キーデータ２１２において識別されるように、レコード２００が属するテナントレコードセットのテーブルの列に基づき得る。例えば、列は、テナント識別子列２３１及びデータ列２３２、２３３、２３４、及び２３５であり得る。テナント識別子列２３１は、テナント識別子２１１の値の符号化であり得る符号化されたテナント識別子２４１を格納する列であり得る。符号化は、例えば、バイナリ符号化であり得る。データ列２３２、２３３、２３４、及び２３５は、例えば、長さが設定され又は変化する文字列又は数などの、レコードに対する様々なタイプのデータを格納する列であり得る。例えば、データ列２３２は、文字列又は数などの値の符号化であり得る列値２４２を格納し得る。データ列２３５は、文字列又は数などの値の符号化であり得る列値２４５を格納し得る。テナントに対するレコード１５０の一部のレコードにおいて、テナント識別子の符号化された値は、テナント識別子列ではないレコードの列に格納され得る。例えば、レコード２００は、テナント識別子列２４１に加えて、データ列２３３及び２３４内の符号化されたテナント識別子２３１を格納し得る。
【００２６】
図２Ｂは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す。データエクゼキュータ１１０は、レコードが圧縮（packed）されて持続的ストレージ１４２に格納される前に、クローニング後のテナント識別子を変換するために、作業ストレージ１４４内にあるレコード、例えばレコード２００を、レコードのより効率的な識別を可能にするフォーマットにコンバートし得る。データベースエクゼキュータ１１０は、データ列２３２、２３３、２３４、及び２３５のいずれかが符号化されたテナント識別子２４１を格納するかどうかを特定し得る。レコードタイプインジケータ２２２は、レコード２００が符号化されたテナント識別子２４１をテナント識別子列２３１以外の列に、いつ格納するか又は格納する場合、を示すために使用され得るビットなどのインジケータであり得る。レコード２００が符号化されたテナント識別子２４１を、データ列２３２、２３３、２３４、２３５のいずれかなどの値２３０内の他の列のいずれかに格納する場合、データベースエクゼキュータ１１０は、レコード２００のレコードヘッダ２２０内のレコードタイプインジケータ２２２を、１又は真に設定し得る。そうでない場合は、データベースエクゼキュータ１１０は、レコードタイプインジケータ２２２を０又は偽に設定し得る。
【００２７】
図３は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的な配置を示す。データベースエクゼキュータ１１０は、レコード２００のフォーマットを変更した後、レコード２００を圧縮し得、それをレコード１５０によってデータベースシステム１００の持続的ストレージ１４２に格納し得る。レコード２００は、作業ストレージ１４４から取り除かれ得る。
【００２８】
図４は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的な配置を示す。データベースシステム１００内のテナントレコードセットは、例えば、サンドボックスデータベースを作成するためにクローニングされ得る。データベースエクゼキュータ１１０は、持続的ストレージ１４２内のレコード１５０から作業ストレージ１４４へテナントレコードセットのレコードをコピーし得る。例えば、データベースエクゼキュータ１１０は、レコード２００をレコード４００として作業ストレージにコピーし得る。レコード２００内の圧縮されたデータ、例えば、値２３０に対する値を含むタプルは、レコード２００がレコード４００として作業ストレージにコピーされる場合に展開され得る。
【００２９】
図５Ａは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的な配置を示す。レコード４００は、レコード２００のクローニングされたコピーであり得、キー４１０、レコードヘッダ４２０、及び値４３０を含み得る。キー４１０は、テナント識別子２１１及びキーデータ２１２を含むキー２１０のコピーであり得る。レコードヘッダ４２０は、レコードタイプインジケータ２２２を含むレコードヘッダ２２０のコピーであり得る。値４３０は、符号化されたテナント識別子２４１を格納するテナント識別子列２３１、列値２４２を格納するデータ列２３２、符号化されたテナント識別子２４１を格納するデータ列２３３、符号化されたテナント識別子２４１を格納するデータ列２３４、及び列値２４５を格納するデータ列２３５を含む、値２３０のコピーであり得る。
【００３０】
図５Ｂは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す。データベースエクゼキュータ１１０は、レコード２００を含むテナントレコードセットからのレコードからクローニングされたサンドボックスデータベースで使用されるレコード４００を準備するために、レコード４００のテナント識別子変換を行い得る。テナント識別子変換は、サンドボックスデータベース内のレコードと、サンドボックスデータベースを作成するためにクローニングされたテナントレコードセット内のレコードとの間の不一致を防ぐために必要とされる場合がある。
【００３１】
データベースエクゼキュータ１１０は、レコード４００がコピーであるレコード２００を所有するテナントに対するテナント識別子の値を、キー４１０から、又はデータベースシステム１００によって受信され、レコード２００が応答したクエリ内のスキャンディスクリプタから特定し得る。例えば、スキャンディスクリプタは、サンドボックスデータを作成するためにクローニングするレコードを見つける（locate）ために使用される。その後、データベースエクゼキュータ１１０は、新たな値を、テナント識別子、例えば新たなテナント識別子４１１に使用し得、テナント識別子の値、例えば、キー４１０内のテナント識別子を置き換え得る。新たなテナント識別子４１１は、テナント識別子２１１の値とは異なる、新たなテナントがレコード４００を所有することを示す、テナント識別子に対する値であり得る。新たなテナント識別子４１１によって表される新たなテナントは、テナント識別子２１１によって表されるテナントと同一のエンティティ、例えば、同一のユーザ、ユーザグループ又は組織であり得るか又は異なるエンティティであり得る。例えば、組織全体がテナント識別子２１１によって表され得る一方で、その組織の１つのサブセットのみがテナント識別子４１１によって表され得る。これにより、既存のテナントレコードセットのクローンであるサンドボックスデータベースにアクセスし、サンドボックスデータベース及びテナントレコードセットへのアクセスを分離する、人及び組織を含む複数のエンティティにわたる制御が可能となり得る。データベースエクゼキュータ１１０はまた、テナント識別子列２３１内の符号化されたテナント識別子２４１を符号化された新たなテナント識別子４４１で置き換え得る。
【００３２】
図６は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す。データベースエクゼキュータ１１０は、レコード４００のクローニングを完了した後、レコード４００を圧縮し得、それをレコード１５０によってデータベースシステム１００の持続的ストレージ１４２に格納し得る。レコード４００は、作業ストレージ１４４から取り除かれ得る。
【００３３】
図７は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な手順を示す。７０２において、レコードの列は、テナント識別子列の外部のテナント識別子の符号化された値についてチェックされ得る。例えば、データベースエクゼキュータ１１０は、符号化されたテナント識別子２４１についてレコード２００のデータ列２３２、２３３、２３４、及び２３５をチェックし得る。
【００３４】
７０４において、テナント識別子の符号化された値が、テナント識別子列の外部のレコードの任意の追加の列に格納されている場合、フローは、７０６に進み得る。そうでない場合は、フローは７０８に進み得、そこで、レコードのレコードタイプインジケータが偽に設定され得る。
【００３５】
７０６において、レコードヘッダ内のレコードタイプインジケータが真に設定され得る。例えば、データベースエクゼキュータ１１０は、レコードヘッダ２２０内のレコードタイプインジケータ２２２を１又は真に設定し得、符号化されたテナント識別子２４１が、テナント識別子列２３１の外部のレコード２００の列に格納されていると認められた（was  found  to  be  stored）ことを示し得る。
【００３６】
７０８において、レコードヘッダ内のレコードタイプインジケータが偽に設定され得る。例えば、データベースエクゼキュータ１１０は、レコードタイプインジケータ２２２を０又は偽に設定し得、レコード２００が、テナント識別子列２３１の外部の任意の列のいずれにも、符号化されたテナント識別子２４１を格納しないことを示し得る。
【００３７】
図８は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な配置を示す。データベースシステム１００内のテナントレコードセットは、例えば、サンドボックスデータベースを作成するためにクローニング（cloned）され得る。データベースクライアントデバイス９００上で実行されるデータベースアプリケーション９１０は、サンドボックスデータベースのテーブルのためのレコードであり得るテーブルレコード９５０にアクセスし得る。データベースクライアントデバイス９００は、データベースシステム１００と相互作用するための任意の適切なコンピューティングデバイスであり得る。データベースアプリケーション９１０は、データベースシステム１００及びデータベースエクゼキュータ１１０との相互作用を可能にし得る、データベースクライアントデバイス９００上で実行される任意の適切なアプリケーションであり得る。例えば、データベースアプリケーション９１０は、データベースシステム１００の持続的ストレージ１４２に格納されたテナントレコードセットを所有するエンティティによって使用されるアプリケーションであり得る。
【００３８】
データベースエクゼキュータ１１０は、テーブルレコード９５０をコピーし得、任意の適切な通信リンク上でそれらをデータベースアプリケーション９１０に送信し得る。データベースアプリケーション９１０は、テーブルレコード９５０を、データベースクライアントデバイス９００の作業ストレージ９４４内のテーブル９６０内に展開し得る。
【００３９】
図９は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な配置を示す。テーブル９６０は、テーブル９６０内の各レコードに対して複数の行を含み得る。テーブル９６０は、レコード４００、１０１０、１０２０、１０３０、及び１０４０を含み得る。テーブル９６０の列は、キー列１００１、テナント識別子列２３１、データ列２３２、２３３、２３４、及び２３５、及びレコードタイプインジケータ列１００５であり得る。レコードタイプインジケータ列１００５は、レコード４００、１０１０、１０２０、１０３０、及び１０４０の各々においてレコードタイプインジケータの値をさらし得る。レコード４００は、キー列１００１内のキー４１０、テナント識別子列２３１内の符号化されたテナント識別子２４１、データ列２３２内の列値２４２、データ列２３３内の符号化されたテナント識別子２４１、データ列２３４内の符号化されたテナント識別子２４１、データ列２３５内の列値２４５、及びレコードタイプインジケータ列１００５内の１又は真の値を含み得る。
【００４０】
レコード１０１０は、キー列１００１の中のキー１０１１、テナント識別子列２３１内の符号化された新たなテナント識別子４４１、データ列２３２内の列値１０１２、データ列２３３内の列値１０１３、データ列２３４内の列値１０１４、データ列２３５内の列値１０１５、及びレコードタイプインジケータ列１００５内の０又は偽の値を含み得る。
【００４１】
レコード１０２０は、キー列１００１内のキー１０２１、テナント識別子列２３１内の符号化された新たなテナント識別子４４１、データ列２３２内の列値１０２２、データ列２３３内の列値１０２３、データ列２３４内の列値１０２４、データ列２３５内の列値１０２５、及びレコードタイプインジケータ列１００５内の値０又は偽を含み得る。
【００４２】
レコード１０３０は、キー列１００１内のキー１０３１、テナント識別子列２３１内の符号化された新たなテナント識別子４４１、データ列２３２内の符号化されたテナント識別子２４１、データ列２３３内の列値１０３２、データ列２３４内の符号化されたテナント識別子２４１、データ列２３５内の列値１０３５、及びレコードタイプインジケータ列１００５内の値１又は真を含み得る。
【００４３】
レコード１０４０は、キー列１００１内のキー１０４１、テナント識別子列２３１内の符号化された新たなテナント識別子４４１、データ列２３２内の列値１０４２、データ列２３３内の符号化されたテナント識別子２４１、データ列２３４内の列値１０４５、データ列２３５内の符号化されたテナント識別子２４１、及びレコードタイプインジケータ列１００５内の値１、又は真を含み得る。
【００４４】
図１０は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な配置を示す。データベースアプリケーション９１０は、レコードタイプインジケータ列１００５内に１又は真の値を含むテーブル９６０の行を識別し得る。データベースアプリケーション９１０は、識別された行から部分インデックス１１６０を生成し得る。部分インデックス１１６０は、キー列２３１及びレコードタイプインジケータ列１００５を含み得る。部分インデックス１１６０内の各行は、レコードタイプインジケータ列１００５内の１の値、又は真の値を有するテーブル９６０の行に対応し得る。部分インデックス１１６０のキー列２３１内のキーは、レコードヘッダ内で、そのレコードタイプインジケータが１又は真に設定されたレコードを識別し得、９６０内のレコードにアクセスするために使用され得る。
【００４５】
図１１Ａは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的な配置を示す。データベースアプリケーション９１０は、部分インデックス１１６０からのキー４１０を使用し得、テーブル９６０内のレコード４００からの値を格納する行にアクセスし得る。データベースアプリケーション９１０は、レコード４００がデータ列２３３及び２３４内に符号化されたテナント識別子２４１を含むことを特定し得る。その後、データベースアプリケーション９１０は、レコード４００のデータ列２３３及び２３４上でテナント識別子変換を行うかどうかを特定し得る。データベースアプリケーション９１０がテナント識別子変換を行う場合、符号化されたテナント識別子２４１は除去され得、符号化された新たなテナント識別子４４１と置き換えられ得る。
【００４６】
図１１Ｂは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な配置を示す。データベースアプリケーション９１０は、部分インデックス１１６０からのキー１０３１を使用しえ、テーブル９６０内のレコード１０３０からの値を格納する行にアクセスし得る。データベースアプリケーション９１０は、レコード１０３０がデータ列２３２及び２３４内に符号化テナント識別子２４１を含むことを特定し得る。次いで、データベースアプリケーション９１０は、レコード１０３０のデータ列２３２及び２３４上でテナント識別子変換を行うかどうかを特定することができる。データベースアプリケーション９１０がテナント識別子変換を行う場合、符号化されたテナント識別子２４１は除去され得、符号化された新しいテナント識別子４４１と置き換えられ得る。
【００４７】
図１１Ｃは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な配置を示す。データベースアプリケーション９１０は、部分インデックス１１６０からのキー１０４１を使用し得、テーブル９６０内のレコード１０４０からの値を格納する行にアクセスし得る。データベースアプリケーション９１０は、レコード１０４０がデータ列２３３及び２３５内に符号化されたテナント識別子２４１を含むことを特定し得る。その後、データベースアプリケーション９１０は、レコード１０４０のデータ列２３３及び２３５上でテナント識別子変換を行うかどうかを特定し得る。データベースアプリケーション９１０がテナント識別子変換を行う場合、符号化されたテナント識別子２４１は除去され得、符号化された新たなテナント識別子４４１と置き換えられ得る。
【００４８】
図１２は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な手順を示す。１２０２において、レコードタイプインジケータが真に設定されたレコードが識別され得る。例えば、データベースアプリケーション９１０は、テーブル９６０の行内に表されるレコードを検査し得、レコードタイプインジケータ列１００５内の、１又は真の値を有する行、及び対応するレコードを識別し得る。テーブル９６０は、データベースシステム１００の持続的ストレージ１４２から受け取られたサンドボックスデータベースの一部であり得るレコードを含み得る。
【００４９】
１２０４において、識別されたレコードから部分的なインデックスが生成され得る。例えば、データベースアプリケーション９１０は、レコードタイプインジケータ列１００５内の、１又は真の値を有するテーブル９６０の行に対応するレコードから部分インデックス１１６０を生成し得る。部分インデックス１１６０は、識別されたレコードのキー、例えば、レコード４００、１０３０、及び１０４０のキー４１０、１０３１、及び１０４１を含み得る。
【００５０】
１２０６において、部分インデックスを使用してアクセスされたレコード内のテナント識別子は、変換され得る。例えば、データベースアプリケーション９１０は、部分インデックス１１６０からのキー４１０、１０３１、及び１０４１を使用し得、テーブル９６０内のレコード４００、１０３０、及び１０４０にアクセスし得る。データベースアプリケーション９１０は、レコード４００、１０３０、及び１０４０の値を、符号化されれたテナント識別子２４１の出現（occurrences）についてスキャンし得、符号化されたテナント識別子２４１の各出現についてテナント識別子変換を行うかどうかを特定し得る。データベースアプリケーション９１０は、発見されたテナント識別子２４１の出現を符号化された新たなテナント識別子４４１で置き換えることによって、テナント識別子変換を行い得る。これは、テーブル９６０内のレコードに対するテナント識別子変換を完了し得、その後、新たなテナント識別子４１１に関連するテナントによって所有されるサンドボックスデータベースの一部として使用可能にし得る。
【００５１】
本開示の主題の実施形態は、種々の構成要素及びネットワークアーキテクチャにおいて実施され、それらと共に使用され得る。図１３は、本開示による主題の実施形態を実施するのに適した例示的なコンピュータ２０である。本明細書でさらに詳細に説明するように、コンピュータ２０は、複数のコンピュータのネットワーク内の単一のコンピュータであり得る。図１３に示すように、コンピュータは、中央コンポーネント３０（例えば、サーバ、クラウドサーバ、データベースなど）と通信し得る。中央コンポーネント３０は、第２コンピュータ３１などの１つ以上の他のコンピュータと通信し得る。この実施形態によれば、中央コンポーネント３０に与えられた及び／又は中央コンポーネント３０から得られた情報は、コンピュータ２０がコンピュータ３１と情報を共有しないように、各コンピュータに対して分離することができる。代替的又は付加的に、コンピュータ２０は、第２コンピュータ３１と直接通信し得る。
【００５２】
コンピュータ（例えば、ユーザコンピュータ、エンタープライズコンピュータなど）２０は、コンピュータ２０の主要構成要素間を相互接続するバス２１を含み、主要構成要素間は例えば、中央プロセッサ２４、メモリ２７（典型的には、ＲＡＭ、しかしながらＲＯＭ、フラッシュＲＡＭなども含み得る）、入力／出力コントローラ２８、ディスプレイアダプタを介したタッチスクリーン若しくはディスプレイなどのユーザディスプレイ２２、１つ以上のコントローラ及び関連するユーザ入力又はキーボード、マウス、ＷｉＦｉ／携帯無線、タッチスクリーン、マイク／スピーカなどのデバイスを含み得るユーザ入力インタフェース２６、などであり、ハードドライブ、フラッシュストレージ、ファイバチャネルネットワーク、ＳＡＮデバイス、ＳＣＳＩデバイスなどの固定ストレージ２３、光学ディスク、フラッシュドライブなどを制御し受け容れるリムーバブル媒体構成要素２５、及び、Ｉ／Ｏコントローラ２８に密接に結合され得る。
【００５３】
バス２１は、前述したように、読出専用メモリ（ＲＯＭ）又はフラッシュメモリ（どちらも図示せず）、及びランダムアクセスメモリ（ＲＡＭ）（図示せず）を含み得る、メモリ２７と中央プロセッサ２４との間のデータ通信を可能にする。ＲＡＭは、オペレーティングシステム及びアプリケーションプログラムがロードされるメインメモリを含むことができる。ＲＯＭ又はフラッシュメモリは、他のコードの中でもとりわけ、周辺構成要素との相互作用などの基本的なハードウェア動作を制御する基本入出力システム（ＢＩＯＳ）を含むことができる。コンピュータ２０に常駐するアプリケーションは、ハードディスクドライブ（例えば、固定ストレージ２３）、光学式ドライブ、フロッピーディスク、又は他のストレージ媒体２５などのコンピュータ読取可能媒体上に格納され、これを介してアクセスされることができる。
【００５４】
固定ストレージ２３は、コンピュータ２０と一体化され得るか、又は、分離されて他のインタフェースを介してアクセスされ得る。ネットワークインターフェース２９は、電話リンクを介した遠隔サーバへの直接接続、インターネットサービスプロバイダ（ＩＳＰ）を介したインターネットへの直接接続、又は、ＰＯＰ（存在点）又は他の技術を介したインターネットへの直接ネットワークリンクを介した遠隔サーバへの直接接続を提供し得る。ネットワークインターフェース２９は、デジタルセルラ電話接続、セルラデジタルパケットデータ（ＣＤＰＣ）接続、デジタル衛星データ接続などを含む無線技術を使用して、かかる接続を提供し得る。例えば、ネットワークインターフェース２９は、図１４に示すように、１つ以上の局所的ネットワーク、広域的ネットワーク、又は他のネットワークを介して、コンピュータを他のコンピュータと通信させることができる。
【００５５】
多くの他のデバイス又は構成要素（図示せず）は、同様の方法で接続することができる（例えば、ドキュメントスキャナ、デジタルカメラなど）。反対に、本開示を実施するために、図１３に示された全ての構成要素が存在する必要はない。これらの構成要素は、示されたものとは異なる方法で相互接続することができる。図１３に示すようなコンピュータの動作は、当技術分野では直ちに知られており、本出願では詳細に説明しない。本開示を実施するためのコードは、メモリ２７、固定ストレージ２３、リムーバブル媒体２５のうちの１つ以上、又は遠隔ストレージロケーションなどのコンピュータ読取可能ストレージ媒体に格納することができる。
【００５６】
図１４は、開示された主題の実施形態にしたがった、ネットワーク配置を示す。コンピュータ、マイクロコンピュータ、ローカルコンピュータ、スマートフォン、タブレットコンピューティングデバイス、エンタープライズデバイスなどの、１つ以上のクライアント１０、１１は、１つ以上のネットワーク７（例えば、電力分配ネットワーク）を介して他のデバイスに接続し得る。ネットワークは、局所的ネットワーク、広域的ネットワーク、インターネット、又は任意の他の適切な通信ネットワーク又は複数のネットワークであり得、有線及び／又は無線ネットワークを含む任意の適切なプラットフォーム上に実施され得る。クライアントは、１つ以上のサーバ１３及び／又はデータベース１５と通信し得る。デバイスは、クライアント１０、１１によって直接アクセス可能であり得、又はサーバ１３がデータベース１５に格納されたリソースへのアクセスを提供する場合のように、１つ以上の他のデバイスが中間アクセスを提供し得る。クライアント１０、１１はまた、例えばクラウドコンピューティング配置及びサービスなどの遠隔プラットフォーム１７によって提供されるサービス又は遠隔プラットフォーム１７にアクセスし得る。遠隔プラットフォーム１７は、１つ以上のサーバ１３及び／又はデータベース１５を含み得る。第１クライアントからの、又は第１クライアントに関する情報、例えば、クライアント１０に関する情報は、クライアント１１と共有され得ないように、そのクライアントに分離され得る。或いは、第１クライアントからの、又は第１クライアントに関する情報は、他のクライアントと共有する前に匿名化され得る。例えば、クライアント１０に関する任意のクライアント識別情報は、クライアント１０に関連するクライアント１１に提供される情報から除去され得る。
【００５７】
より一般的には、本開示による主題の種々の実施形態は、これらのプロセスを実施するためのコンピュータ実施プロセス及び装置の形態を含むか又はそれらの形態で実施形態され得る。また、実施形態は、フロッピーディスク、ＣＤ−ＲＯＭ、ハードドライブ、ＵＳＢ（ユニバーサルシリアルバス）ドライブ、又は他の任意の機械読取可能ストレージ媒体などの、非一時的及び／又は有形の媒体に実施される命令を含むコンピュータプログラムコードを有するコンピュータプログラムプロダクトの形態で実施形態され得、コンピュータプログラムコードがコンピュータにロードされ、コンピュータによって実行される場合、コンピュータは開示された主題の実施形態を実施するための装置となる。実施形態はまた、コンピュータプログラムコードの形態で実施され得、例えば、ストレージ媒体に格納され、コンピュータにロードされ及び／又はコンピュータによって実行されるか、又は、電気配線若しくはケーブルにわたって、ファイバ光学系を介して、又は、電磁放射を経由してなどの、いくつかの伝送媒体にわたって伝送されるかにかかわらず、コンピュータプログラムコードがコンピュータにロードされ、コンピュータによって実行される場合、コンピュータは開示された主題の実施形態を実施するための装置となる。汎用マイクロプロセッサで実施されるとき、コンピュータプログラムコードのセグメントが、特定の論理回路を作り出すようにマイクロプロセッサを構成する。いくつかの構成では、コンピュータ読取可能ストレージ媒体上に格納された一組のコンピュータ読取可能命令は、汎用プロセッサによって実施され得、汎用プロセッサ又は汎用プロセッサを含むデバイスを、命令を実施又は実行するように構成された特別用途デバイスに変形（transform）し得る。実施形態は、ハードウェア及び／又はファームウェアにおいて開示された主題の実施形態にしたがった技術の全部又は一部を実施形態する特定用途向け集積回路（ＡＳＩＣ）、及び／又は、汎用マイクロプロセッサなどのプロセッサを含み得るハードウェアを使用して実施形態され得る。プロセッサは、ＲＡＭ、ＲＯＭ、フラッシュメモリ、ハードディスク、又は電子情報を格納することができる他の任意のデバイスなどのメモリに結合し得る。メモリは、開示された主題の実施形態に従って技術を行うために、プロセッサによって実行されるように適合された命令を格納することができる。
【００５８】
上記の記述は、説明の目的のために、特定の実施形態を参照して述べられている。しかしながら、上記の例示的な考察は、網羅的であること、又は開示された主題の実施形態を開示された正確な形態に限定することを意図したものではない。上記の教示の観点から多くの変更及び変形が可能である。実施形態は、開示された主題の実施形態の原理及びそれらの実際の用途を説明するために選択され、説明され、それにより、当業者がそれらの実施形態、並びに意図された特定の使用に適し得る様々な変更を伴う様々な実施形態を利用することが可能になる。
【図１】
2022501693.tif 000003
【図２Ａ】
2022501693.tif 000004
【図２Ｂ】
2022501693.tif 000005
【図３】
2022501693.tif 000006
【図４】
2022501693.tif 000007
【図５Ａ】
2022501693.tif 000008
【図５Ｂ】
2022501693.tif 000009
【図６】
2022501693.tif 000010
【図７】
2022501693.tif 000011
【図８】
2022501693.tif 000012
【図９】
2022501693.tif 000013
【図１０】
2022501693.tif 000014
【図１１Ａ】
2022501693.tif 000015
【図１１Ｂ】
2022501693.tif 000016
【図１１Ｃ】
2022501693.tif 000017
【図１２】
2022501693.tif 000018
【図１３】
2022501693.tif 000019
【図１４】
2022501693.tif 000020
【国際調査報告】
2022501693.tif 000021
2022501693.tif 000022