(57)【要約】  複数のホストコンピューティングデバイス間で仮想マシンのインスタンスの安全な移行を可能にするために、非対称（または対称）暗号のようなセキュリティスキームを使用するインターフェース（例えば、アプリケーションプログラミングインターフェース（ＡＰＩ））の正式なセットについて記述する。移行は、仮想マシンを移行するための要求であって、送信元ホストコンピューティング及び送信先ホストコンピューティングのための公開鍵を含む要求を、受け取ることによって行われる。送信元及び送信先ホストは、公開鍵を使用して、暗号化されたセッションを確立後、暗号化されたセッションを使用して仮想マシンを移行する。【選択図】  図１Ａ
2016509806.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピューティングデバイスによって、保護された情報を送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行するための要求であって、前記送信先ホストコンピューティングデバイスのための送信先鍵を含む要求を、受け取ることと、
前記送信先鍵を使用して前記送信先ホストコンピューティングデバイスを認証し、かつ前記送信先ホストコンピューティングデバイスが、前記送信元ホストコンピューティングデバイスのための送信元鍵を使用して、前記送信元ホストコンピューティングデバイスを認証したことの指示を受け取る前記送信元ホストコンピューティングデバイスによって確立される鍵を、ホストコンピューティングデバイスによって、確立することと、
前記確立された鍵を使用し、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスに、前記保護された情報を移行させることと、を含む、コンピュータ実現方法。
【請求項２】
前記保護された情報が、前記送信元ホストコンピューティングデバイスで実行される仮想マシンである、請求項１に記載のコンピュータ実現方法。
【請求項３】
前記保護された情報を移行させることが、
前記確立された鍵を使用し、ランダムアクセスメモリ（ＲＡＭ）の状態情報の少なくとも一部を、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスに、コピーすることと、
前記送信元ホストコンピューティングデバイスの前記仮想マシンを停止させることと、
前記送信先ホストコンピューティングデバイスで前記仮想マシンを実行するための指示を前記送信先ホストコンピューティングデバイスに送ることと、をさらに含む、請求項２に記載のコンピュータ実現方法。
【請求項４】
前記送信元鍵が、前記送信元ホストコンピューティングデバイスの起動時に生成された鍵対の一部である公開鍵であり、前記送信元ホストコンピューティングデバイスが、前記公開鍵を管理サーバに送り、前記管理サーバが、前記公開鍵を使用し、前記保護された情報を移行するための前記要求を開始するように動作可能である、請求項１に記載のコンピュータ実現方法。
【請求項５】
前記鍵を確立することが、ディフィ・ヘルマンの鍵交換プロセスに従って、行われる、請求項１に記載のコンピュータ実現方法。
【請求項６】
前記保護された情報を移行させることが、
ランダムアクセスメモリ（ＲＡＭ）の状態情報のセットを、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスにコピーすることであって、完了するまでに継続時間を要する、コピーすることと、
前記ＲＡＭの状態情報の変更であって、前記コピーすることを完了するまでに要する前記継続時間中に前記送信元ホストコンピューティングデバイスで行われた変更、のセットを、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスに送信することと、をさらに含む、請求項１に記載のコンピュータ実現方法。
【請求項７】
承認されていない関係者が少なくとも１つの前記要求を提出することを防ぐために、前記保護された情報を移行するための前記要求が署名される、請求項１に記載のコンピュータ実現方法。
【請求項８】
前記要求が、前記送信元ホストコンピューティングデバイス、または前記送信先ホストコンピューティングデバイスのうちの少なくとも１つのための証明をさらに含む、請求項１に記載のコンピュータ実現方法。
【請求項９】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサによって実行されると、
仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行するための少なくとも１つの要求であって、第１の鍵及び第２の鍵を含む少なくとも１つの要求、を受け取ることと、
安全なセッションであって、少なくとも前記第１の鍵及び前記第２の鍵を使用することによって確立される安全なセッションを、前記送信元ホストコンピューティングデバイスと前記送信先ホストコンピューティングデバイスとの間に、確立することと、
前記少なくとも１つの要求に応じ、前記安全なセッションを使用して、前記仮想マシンを前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスに移行することと、をコンピューティングシステムに行わせる命令を含むメモリと、を備える、コンピューティングシステム。
【請求項１０】
前記仮想マシンを移行することが、
前記安全なセッションを使用し、ランダムアクセスメモリ（ＲＡＭ）の状態情報の少なくとも一部を、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスに、コピーすることと、
前記送信元ホストコンピューティングデバイスの前記仮想マシンを停止させることと、
前記仮想マシンの新しいインスタンスを前記送信先ホストコンピューティングデバイスで開始することと、をさらに含む、請求項９に記載のコンピューティングシステム。
【請求項１１】
前記仮想マシンを移行するための前記要求を受け取ることが、
第１の要求であって、前記第２の鍵を含む第１の要求を、前記送信元ホストコンピューティングデバイスによって受け取ることと、
第２の要求であって、前記第１の鍵を含む第２の要求を、前記送信先ホストコンピューティングデバイスによって受け取ることと、をさらに含む、請求項９に記載のコンピューティングシステム。
【請求項１２】
前記安全なセッションを確立することが、
前記安全なセッション中に、状態情報を前記送信元ホストコンピューティングデバイスと前記送信先ホストコンピューティングデバイスとの間で送信するために使用されるセッション鍵をネゴシエートすることと、
前記セッション鍵を使用し、前記送信元ホストコンピューティングデバイスと前記送信先ホストコンピューティングデバイスとの間で送信される情報を暗号化することと、をさらに含む、請求項９に記載のコンピューティングシステム。
【請求項１３】
前記セッション鍵をネゴシエートすることが、ディフィ・ヘルマンの鍵交換プロセスに従って行われる、請求項１２に記載のコンピューティングシステム。
【請求項１４】
前記仮想マシンを移行することが、
ランダムアクセスメモリ（ＲＡＭ）の状態情報のセットを、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスにコピーすることであって、完了するまでに継続時間を要する、コピーすることと、
前記ＲＡＭの状態情報の変更であって、前記コピーすることを完了するまでに要する継続時間中に前記仮想マシンによって前記送信元デバイスで行われた変更、のセットを、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスに送信することと、をさらに含む、請求項９に記載のコンピューティングシステム。
【請求項１５】
第２のコンピューティングデバイスであって、少なくとも１つの第２のプロセッサと、前記少なくとも１つの第２のプロセッサによって実行されると、
前記送信元ホストコンピューティングデバイスで実行される前記仮想マシンであって、前記送信先ホストコンピューティングデバイスに移行される前記仮想マシン、を選択することと、
アプリケーションプログラミングインターフェース（ＡＰＩ）を使用して、前記仮想マシンを移行するための前記少なくとも１つの要求であって、前記第１の鍵及び前記第２の鍵を含む前記少なくとも１つの要求を提出することと、を前記第２のものに行わせる第２の命令を含む第２のメモリと、を備える第２のコンピューティングデバイスをさらに備える、請求項９に記載のコンピューティングシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
インターネットのようなネットワーク上で利用可能となるアプリケーション及びサービスの数が増加するにつれて、クラウドコンピューティングのような技術に目を向けるコンテンツ、アプリケーション、及び／またはサービスプロバイダの数が増加している。クラウドコンピューティングは、概して、ウェブサービスのようなサービスを介して電子リソースへのアクセスを提供する手法であり、そのようなサービスをサポートするために使用されるハードウェア及び／またはソフトウェアは、任意の所与の時点でサービスのニーズを満たすために、動的にスケーラブルである。ユーザまたは顧客は、一般に、クラウドを介するリソースへのアクセスをレンタルする、リースする、またはその他の方法で支払うので、必要とされるハードウェア及び／またはソフトウェアを購入し、維持する必要がない。
【０００２】
多くのクラウドコンピューティングプロバイダは、仮想化を利用して、基礎となるハードウェア及び／またはソフトウェアリソースを複数のユーザが共有することを可能にする。仮想化は、コンピューティングサーバ、ストレージデバイス、または他のリソースを、特定のユーザによってそれぞれが所有される複数の分離されたインスタンス（例えば、仮想マシン）に分割することを可能にすることができる。これらの仮想マシンは、多くの場合、ホストコンピューティングデバイスで実行されるハイパーバイザーを使用してホストされる。この状況において、仮想マシンを１つのホストコンピューティングデバイスから別のホストコンピューティングデバイスへ移行することが望ましい場合もある。
【図面の簡単な説明】
【０００３】
本開示に従った様々な実施形態を、図面を参照して説明する。  
【図１Ａ】様々な実施形態に従って、仮想マシンを複数の移行要求を使用して２つのホストコンピューティングデバイス間で安全に移行することの例示を示す。
【図１Ｂ】様々な実施形態に従って、仮想マシンを単一の移行要求を使用して２つのホストコンピューティングデバイス間で安全に移行することの例示を示す。
【図２】様々な実施形態に従って、非対称の暗号を使用してホストコンピューティングデバイスに提出される移行要求に署名することの例示を示す。
【図３】様々な実施形態に従って、証明機関を利用することの例示を示す。
【図４】様々な実施形態に従って、サービスプロバイダのリソースセンタ環境の例示を示す。
【図５】様々な実施形態に従って、仮想マシンのインスタンスを複数のホストコンピューティングデバイス間で安全に移行するための例示のプロセスを示す。
【図６】様々な実施形態に従って、ハイパーバイザーまたはカーネルで移行要求などの特権操作を行うために使用することができるＡＰＩを提供するための例示のプロセスを示す。
【図７】様々な実施形態に従って、要求の暗号化を利用する例示のプロセスを示す。
【図８】様々な実施形態に従って、利用することができる例示のコンピューティングデバイスの全体的な構成要素のセットの論理的配設を示す。
【図９】様々な実施形態に従って、態様を実現するための環境の例示を示す。
【発明を実施するための形態】
【０００４】
以下の説明では、様々な実施形態が、添付の図面の図において、限定としてでなく、例示として示される。本開示における様々な実施形態への参照は、必ずしも同じ実施形態に対してではなく、そのような参照は、少なくとも１つを意味する。特定の実現形態及び他の詳細が説明されるが、これは実例の目的のみのために行われることを理解されたい。関連技術の当業者は、特許請求の主題の範囲及び趣旨から逸脱することなく、他の構成要素及び構成が使用できることを認識するであろう。
【０００５】
本開示の様々な実施形態によるシステム及び方法は、仮想マシン及び他の保護された情報（例えば、キーストアなど）などのコンピューティングリソースを移行するための従来の手法で経験する上記のまたは他の欠点の１つ以上を克服することができる。具体的には、様々な実施形態は、非対称（または、対称）の暗号などのセキュリティスキームを利用し、様々なホストコンピューティングデバイス間の仮想マシンの安全な（または、暗号化された）移行を可能にする。
【０００６】
様々な実施形態では、仮想マシン（ＶＭ）または他の保護された情報を移行するためのプロセスは、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスを選択して開始することができる。一実施形態では、インスタンスを移行するための単一の要求は、２つの異なるホストデバイス（送信元ホスト及び送信先ホスト）にアドレス指定することができる。この要求は、両方のホストコンピューティングデバイスの鍵を含むことができる。別の実施形態では、２つの要求を発行することができ、一方の要求が送信元ホストに、他方が送信先ホストに、発行される。各要求は、他のホストのための公開鍵を（例えば、パラメータとして）含む。このように、送信元ホストコンピューティングデバイスへの要求は、送信先ホストコンピューティングデバイスの公開鍵を含み、一方送信先ホストコンピューティングデバイスへの要求は、送信元ホストコンピューティングデバイスのための公開鍵を含む。
【０００７】
一旦要求が送信元ホストコンピューティングデバイスによって受け取られると、送信元ホストコンピューティングデバイスは、送信先ホストコンピューティングデバイスに接触し、相互認証が行われる。実施形態によれば、２つのホストコンピューティングデバイスは、安全なセッションを確立し、移行のために使用される移行鍵（例えば、セッション鍵）に同意する。安全なセッションは、移行のための要求の一部として、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスに提供された鍵を使用して確立される。仮想マシンの移行は、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスへの状態情報（例えば、ディスク状態、ＲＡＭ状態など）の転送を含む。状態データは、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスへの安全なセッションを介して送信することができ、状態データは、ネゴシエートされた移行鍵を使用して暗号化することができる。送信の暗号化は、送信されたデータを信頼できない関係者が読む、変更する、またはそうでなければアクセスすることを防ぐことができる。
【０００８】
いくつかの実施形態では、移行を開始するための最初の要求は、全ての中間の関係者が要求のパラメータ及び他の情報を読むことを防ぐために、また要求の真正性を保証するために、それ自体を暗号化する、かつ／または署名することができる。ＶＭを移行するための要求は、要求がホストコンピューティングデバイスのカーネル及び／または仮想化層に安全に提供されることを可能にするインターフェース（例えば、アプリケーションプログラミングインターフェース（ＡＰＩ））の正式なセットを使用して、カーネルまたは仮想化層（例えば、ハイパーバイザー）に提出することができる。
【０００９】
様々な実施形態では、本明細書に記載のセキュリティスキームは、ホストコンピューティングデバイスのハイパーバイザー及び／またはＯＳのカーネルなどの場所で特権操作を行うとき、マルチテナント共有リソース環境（例えば、クラウドコンピューティング環境）で利用することができる。従来、このタイプの環境では、ホストコンピューティングデバイスは、仮想化技術を利用し、サービスプロバイダ（例えば、クラウドコンピューティングプロバイダ）の異なる顧客に関連する１つ以上の仮想マシンのインスタンスをプロビジョニングする。これらの仮想マシンのイスタンスは、ハイパーバイザー（または、他の仮想化技術）を使用してコンピューティングデバイスでホストされ、各仮想マシンのインスタンスは、カーネル、デバイスドライバ、及び他のＯＳ構成要素を備えるゲストオペレーティングシステムを含むことができる。仮想マシンをホストするためのホストコンピューティングデバイス及び他の物理リソースは、通常、サービスプロバイダによって提供され、データセンタ、サーバファーム、コンテンツ配信ネットワーク（ＣＤＮ）ポイントオブプレゼンス（ＰＯＰ）などのリソースセンタに存在する。様々な実施形態では、本明細書に記載のセキュリティスキームは、仮想マシンのインスタンスが複数のホストコンピューティングデバイス間で安全に移行することを可能にすることができ、したがって、サービスプロバイダが移行プロセス中にデータのセキュリティを損なうことなく、リソース利用を改善することを可能にする。移行要求は署名されるので、承認されていない関係者は、不正な移行の一部として読み取りまたは書き込みを発行することができない。送信元と送信先との間のデータの送信が暗号化されるので、信頼できない関係者は、送信されているブロックデータを読むことができない。
【００１０】
一実施形態によれば、サービスは、サービスが移行プロセスを開始するマルチテナントコンピューティング環境で提供することができる。この実施形態では、サービスは、移行対象となる仮想マシンを識別し、仮想マシンの送信先ホストを決定し、ＡＰＩコール（複数可）を発行して移行プロセスを開始することができる。例えば、サービスは、移行要求を適切な鍵と共にＡＰＩコールを介してホストコンピューティングデバイス及び送信先ホストに提出することができる。次に、前述のように、鍵を使用して安全な移行セッションを確立することにより、移行を遂行することができる。
【００１１】
いくつかの実施形態では、仮想マシンを移行するのではなく、本明細書に記載のセキュリティスキームを使用して、仮想マシンのメモリを遠隔で読み取る、または後に検査するために（例えば、フォレンシックエキスパートによって）仮想マシンをストレージにコピーする、ことができる。例えば、サービスは、仮想マシンをホストするホストコンピューティングデバイスにＡＰＩコールを提出することができ、ＡＰＩコールは、仮想マシンのメモリがサービスに提供されることを要求する。あるいは、サービスは、ホストコンピューティングデバイスが仮想マシンを、後に分析されるように、メモリ内の指定された場所にコピーすることを要求することができる。要求は、１つ以上の鍵を含むことができる。要求の受け取りに応答して、ＶＭをホストするホストコンピューティングデバイスは、１つ以上の鍵を使用して要求するコンピューティングデバイスとの安全なセッションを確立し、その後、仮想マシンのメモリにアクセスするか、または仮想マシンのメモリを指定された場所に書き込むか、のいずれかが可能である。
【００１２】
図１Ａは、様々な実施形態に従って、仮想マシンを複数の移行要求を使用して２つのホストコンピューティングデバイス間で安全に移行することの例示１００を示す。示されるように、承認されたエンティティ１０７は、送信元ホストコンピューティングデバイス１０１及び送信先ホストコンピューティングデバイス１０２を選択し、送信元ホストコンピューティングデバイス１０１から送信先ホストコンピューティングデバイス１０２への仮想マシン１０８の移行を開始することができる。承認されたエンティティは、移行を行うための特権アクセスを有するサービスプロバイダのネットワーク管理者または他の技術者などの移行要求を行うことが許可された任意の関係者（例えば、ユーザ、アプリケーション、サービスなど）であることができる。
【００１３】
示された実施形態では、移行を開始するために、承認されたエンティティ１０７は、２つの要求（１０３、１０５）を、１つの要求を関係するホストコンピューティングデバイスの各々に、発行する。各要求は、他方のための公開鍵を含む。具体的には、送信元ホストデバイス１０１にアドレス指定された要求１０３は、送信先ホストコンピューティングデバイス１０２のための公開鍵１０４を含み、一方要求１０５は、送信元ホストコンピューティングデバイス１０１のための公開鍵１０６を含む。一実施形態では、各要求は、要求の真正性を保証するために署名される。要求は、図２を参照して説明されるように、承認されたエンティティ１０７の秘密鍵を使用することによって署名することができる。移行要求の署名は、要求が、偽物ではなく、適切な承認されたエンティティ１０７によって開始されたことをホストコンピューティングデバイスが確認することを可能にすることができる。
【００１４】
一旦要求がそれぞれのホストコンピューティングデバイスによって受け取られると、送信元ホストコンピューティングデバイス１０１は、送信先ホストコンピューティングデバイス１０２に接触し、相互認証が行われて安全なセッションを確立する。様々な実施形態では、相互認証は、トランスポートレイヤセキュリティ（ＴＬＳ）及びセキュアソケットレイヤ（ＳＳＬ）と同様な技術を使用することにより行うことができる。具体的には、相互認証は、２つのホストの秘密鍵及び公開鍵をクライアント及びサーバの証明として効果的に使用し、安全なセッションのためのセッション鍵１１２をネゴシエートする送信元ホストコンピューティングデバイス１０１及び送信先ホストコンピューティングデバイス１０２によって行うことができる。一実施形態では、送信元ホストコンピューティングデバイス１０１は、送信先ホストコンピューティングデバイス１０２に接触し、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスは、要求内に提供されていた鍵を使用することにより、互いに認証する。一旦認証されると、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスは、状態情報を送信するために使用されるセッション鍵に同意する。一実施形態では、鍵共有は、前方秘匿性を保証するためにディフィ・ヘルマンである。状態情報を送信するために利用されるバルクの暗号は、認証付暗号セキュリティガロア／カウンタモード（ＡＥＳ−ＧＣＭ）であることができる。代替の実施形態では、鍵は、他の技術を使用してネゴシエートすることができる。さらに他の実施形態では、セッション鍵はまた、元の移行要求（１０３、１０５）の一部として含めることができる。
【００１５】
実施形態によれば、送信元ホストコンピューティングデバイス１０１から送信先ホストコンピューティングデバイス１０２へ送信されるデータは、安全なセッションを確立することの一部としてネゴシエートされたセッション鍵１１２で暗号化される。鍵を有していない関係者は、このデータを解読することができない、したがって、２つのホスト間の安全なデータ転送が保証される。様々な実施形態では、送信先ホストコンピューティングデバイス１０２への仮想マシン（１０８、１１１）の移行は、状態情報（１０９、１１０）を送信先ホストコンピューティングデバイス１０２にコピーすることを含むことができる。一実施形態では、送信元ホストコンピューティングデバイス１０１の読取インターフェースは、送信先ホストコンピューティングデバイス１０２の書込みインターフェースに接続し、仮想マシンの移行に使用することができる。関連する移行のタイプに依存して、コピーする必要がある状態情報１０９は、ディスク状態、ランダムアクセスメモリ（ＲＡＭ）の状態、ＶＭの外部のネットワークファイアウォール状態などを含むことができる。いくつかの実施形態では、ネットワーク入力／出力（Ｉ／Ｏ）操作などの状態情報のいくつかは、順番にコピーする必要がある場合がある。
【００１６】
代替の実施形態では、鍵の代わりに、１つ以上の証明を使用して仮想マシンを安全に移行することができる。この実施形態では、送信元ホストコンピューティングデバイス１０１への要求１０３は、送信先ホストコンピューティングデバイス１０２のための証明を含むことができる、またはホストコンピューティングデバイス１０２のための識別子だけを含むことができる。要求を受け取ると、ホストコンピューティングデバイス１０１は、ホストコンピューティングデバイス１０２に接触することができ、ホストコンピューティングデバイス１０２は、署名された証明を待ち、標準的な証明の確認を行う。証明及び証明機関の全般的な使用は、図３及び関連するテキストを参照して、より詳細に説明する。
【００１７】
一実施形態では、送信元ホストコンピューティングデバイス１０１は、送信先ホストコンピューティングデバイス１０２への仮想マシンのライブ移行を行うことができる。ライブ移行は、最初に一方のホストコンピューティングデバイスの仮想マシンをシャットダウンし、その後他方のホストコンピューティングデバイスの仮想マシンを開始することを伴うコールド移行または再起動移行とは対照的に、移行が完了する間、仮想マシンが送信元ホストコンピューティングデバイス１０１で継続して実行されることを意味する。しかしながら、本明細書に記載の実施形態の多くは、ライブ移行に限定されるものではなく、任意の他のタイプの移行を本開示の範囲内で実現され得ることに留意されたい。
【００１８】
ライブ移行が行われると、送信元ホストコンピューティングデバイス１０１は、仮想マシンが送信元ホストコンピューティングデバイス１０１で実行されている間、ＲＡＭ状態などのデータを最初から最後まで送信先ホストコンピューティングデバイス１０２へコピーすることを開始することができる。送信元ホストコンピューティングデバイス１０１のＲＡＭは、実質的に大きい（例えば、ギガバイト）場合があるので、ＲＡＭ状態全体のコピーは、かなりの時間量を取る場合がある。結果として、一旦コピーが完了すると、ＲＡＭ状態が送信先ホストコンピューティングデバイス１０２へ送信されていた間、状態データが実行中の仮想マシンによって連続して変異されていたので、状態のいくつかの部分が無効となる可能性がある。これらの無効部分を解決するために、一旦ＲＡＭ状態全体が転送されると、送信元ホストコンピューティングデバイス１０１は、再び最初から開始することができるが、今度は、ＲＡＭ状態に対する変更のみをコピーする。このプロセスは、その後、送信元ホストコンピューティングデバイス１０１と送信先ホストコンピューティングデバイス１０２との間の無効な状態データの量を最小限にするために、複数回繰り返すことができる。プロセスが繰り返されるにつれて、送信先ホストコンピューティングデバイス１０２にコピーする必要がある状態データの量は、変更をコピーするためにかかる時間が減少するので、サイズが段々と小さくなり続ける。例えば、ＲＡＭ状態全体をコピーするために、ギガバイトのデータを送る必要がある場合があり、変更の第１のセットをコピーするために、１００メガバイトを送る必要がある場合があり、変更の次のセットをコピーするために、１０メガバイトを送る必要がある場合などがある。このプロセスは、仮想マシンが送信元ホストコンピューティングデバイス１０１で停止することができ、送信先ホストコンピューティングデバイス１０２にコピーされる変更、及び仮想マシン１１１の新しいインスタンスが、送信先ホストコンピューティングデバイス１０２で開始される時点である所定の閾値に達するまで、繰り返すことができる、様々な実施形態では、ライブ移行を通して、送信元ホストコンピューティングデバイス１０１と送信先ホストコンピューティングデバイス１０２との間で送信されるかなりの量のデータは、前述のように、送信元と送信先との間でネゴシエートされたセッション鍵を使用して暗号化することができる。このようにして、２つのホスト間で送られる機密性の高いデータは、保護され、送信元ホストコンピューティングデバイス１０１及び送信先ホストコンピューティングデバイス１０２の外部の全ての他の関係者による読み取りが不能である。
【００１９】
図１Ｂは、様々な実施形態に従って、仮想マシンを単一の移行要求を使用して２つのホストコンピューティングデバイス間で安全に移行することの例示１２０を示す。示されるように、承認されたエンティティ１０７は、図１Ａを参照して前述したものと同様な方法で、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスへの仮想マシンのインスタンスの移行を開始することができる。図１Ｂの実施形態では、しかしながら、承認されたエンティティ１０７は、２つの異なるホスト、送信元ホストコンピューティングデバイス１０１及び送信先ホストコンピューティングデバイス１０２、にアドレス指定された１つの要求１０３を生成することができる。要求１０３は、両方のデバイスの鍵を含むことができる。例えば、移行要求１０３は、ホストコンピューティングデバイス１０１からホストコンピューティングデバイス１０２へ仮想マシン１０８を移行することを要求でき、この要求は、ホスト１０１のための鍵１０４及びホスト１０２のための鍵１０６を（例えば、パラメータとして）含むことができる。要求は、承認されたエンティティの秘密鍵を使用して署名することができる。
【００２０】
実施形態によれば、要求は、送信元ホストコンピューティングデバイス１０１及び送信先ホストコンピューティングデバイス１０２の両方に提供される。鍵は署名された要求１０３に含められるので、各ホストコンピューティングデバイスは、要求の署名者を信頼するのと同様に鍵を信頼する。一旦要求が受け取られると、送信元ホストコンピューティングデバイス１０１と送信先コンピューティングデバイス１０２は、前述のように、安全なセッションを確立し、セッション鍵１１２をネゴシエートして、仮想マシン１０８を移行し、状態情報１０９を送信先ホストコンピューティングデバイス１０２にコピーする。
【００２１】
図面及び関連するテキストは、仮想マシンを移行するための様々な技術を説明しているが、これは、本明細書に記載の実施形態の全てに対する限定ではないことに留意されたい。様々な代替の実施形態では、任意の他の保護された情報を、本明細書に記載のセキュリティスキームを使用して、送信元ホストコンピューティングデバイス１０１から送信先ホストコンピューティングデバイス１０２へ移行する、または転送する、ことができる。例えば、複数の鍵を含むキーストアは、送信元ホストコンピューティングデバイス１０１から送信先ホストコンピューティングデバイス１０２へ安全に移行することができる。同様に、送信元ホストコンピューティングデバイス１０１のトラステッドプラットホームモジュール（ＴＰＭ）の状態は、送信先ホストコンピューティングデバイスに移行することができる。同じ方法で、ＩＰテーブル、ルール、及び他の情報は、本明細書に記載の様々な実施形態に従って、安全にすることができる。
【００２２】
図２は、様々な実施形態に従って、非対称の暗号を使用してホストコンピューティングデバイスに提出された移行要求に署名することの例示２００を示す。この実施形態では、ホストコンピューティングデバイス２０１は、少なくとも１つの仮想化層（ハイパーバイザー２０２及びＤｏｍ０  ２０５の組合せとして示されている）及び１つ以上のゲスト２１１を備える。ゲストは、仮想マシンのインスタンスであることができ、各々がそれら独自のそれぞれのオペレーティングシステム（ＯＳ）、カーネル２０６、デバイスドライバ、スケジューラなどを有する。Ｄｏｍ−０  ２０５は、ホストコンピューティングデバイス２０１の他のゲストドメインを起動し、管理するために使用される。仮想化層は、この図では別々の構成要素として示されているが、仮想化層の他の実現形態も、可能であり、かつ本開示の範囲内である。例えば、Ｄｏｍ０  ２０５の機能、またはその機能のサブセット、ならびにハイパーバイザー２０２によって影響されるものは、単一の構成要素に統合することができる。様々な実施形態では、仮想化層は、ハードウェアで直接実行されるタイプ１のハイパーバイザーか、またはオペレーティングシステム内で実行されるタイプ２のハイパーバイザーか、のいずれかを備えることができる。
【００２３】
実施形態によれば、ホストコンピューティングデバイス２０１は、ホストコンピューティングデバイス２０１のカーネル２０６（例えば、Ｄｏｍ−０カーネル）またはハイパーバイザー２０２で特権操作を行うために、署名された、かつ／または暗号化された、要求を提出するために使用することができるＡＰＩ１０８のセットを提供する。特権操作は、ハイパーバイザー及び／またはカーネルの実行中のメモリイメージを変更することができます。例えば、特権操作は、パッチをハイパーバイザー／カーネルに適用する、メモリ内の場所を読み取る、ホストコンピューティングデバイスで実行されている１つ以上の変数を変更する、ホストコンピューティングデバイスで実行されている仮想マシンのインスタンスを開始／停止する、仮想マシンを別のホストコンピューティングデバイスに移行する、などが可能である。ＡＰＩ要求は暗号化することができるので、カーネル／ハイパーバイザーの外部の中間の関係者は、要求を読みことができない、また要求が行うことを意図しているものを知ることがない。
【００２４】
ある実施形態によれば、ＡＰＩの要求は、秘密鍵及び公開鍵を含む非対称の鍵対を使用して、署名される、かつ確認する、ことができる。一実施形態では、ＡＰＩコールに対する引数の少なくとも一部（または全部）は、標準化され、かつシリアル化されて、署名文字列を得る。この文字列は、次にハッシュベースメッセージ認証コード（ＨＭＡＣ）または非対称の暗号のいずれかを介して署名され、ＡＰＩ２０８に送ることができる。ＡＰＩへのパラメータが署名内に含まれているので、要求（例えば、要求を作ったコード）を取得した潜在的攻撃者は、要求を変えることができない。
【００２５】
いくつかの実施形態によれば、要求は、タイムスタンプを含むことができ、時間窓ベース応答保護を提供し、要求は、制限された期間のみにわたって有効である。いくつかの実施形態では、要求は、ホストコンピューティングデバイス２０１に特別に関連付けられた一意の値、例えばシリアル番号、またはホストマシン識別子（ＩＤ）、を含むことができる。これらの値は、秘密ではない場合もあるが、それらを含むことは、要求を特定のホストコンピューティングデバイス２０１に拘束することができる。その場合、潜在的攻撃者が異なるホストコンピューティングデバイスに対する要求を再生することを防止する。いくつかの実施形態では、要求は、ホストコンピューティングデバイス２０１への拘束の強度を増加するために、ホストコンピューティングデバイス２０１内のトラステッドプラットフォームモジュール（ＴＰＭ）（図示せず）によって認証することができる。
【００２６】
示された実施形態では、ＡＰＩ要求に署名するために使用される秘密鍵２０４は、要求がアドレス指定されるホストコンピューティングデバイス２０１に存在しない。その代わりに、秘密鍵２０４は、サービスプロバイダのネットワーク２１０の安全な場所２０３に、または別の信頼できる場所に、格納することができる。結果として、悪意のあるエージェントがホストコンピューティングデバイス２０１に存在した場合、それらは、秘密鍵２０４を使用して要求を偽造することができない。
【００２７】
ホストコンピューティングデバイス２０１は、秘密鍵２０４を使用して署名された要求の署名を確認するために使用することができる公開鍵を含むことができる。一実施形態では、公開鍵２０７は、ホストコンピューティングデバイス２０１のカーネル２０６にコンパイルすることができる。別の実施形態では、公開鍵２０９は、ハイパーバイザー２０２にコンパイルすることができる。いくつかの実施形態では、カーネル２０６は、ハイパーバイザー２０２に格納された公開鍵２０９と異なる公開鍵２０７を格納することができる、一方、他の実施形態では、同じ公開鍵を使用してハイパーバイザー２０２及びカーネル２０６の両方で要求を確認することができる。さらに他の実施形態では、ホストコンピューティングデバイス２０１に実際の公開鍵を格納するのではなく、ホストコンピューティングデバイス２０１は、代わりに特定の証明機関（ＣＡ）によって証明される任意の公開鍵を信頼するように構成することができる。これらの実施形態では、ホストコンピューティングデバイス２０１は、要求を要求者から受け取ることができ、要求は、公開鍵を含む証明を伴う。ホストコンピューティングデバイスは、ＣＡの証明を信頼し、したがって要求の一部として受け取る公開鍵を信頼する。公開鍵が、ホストコンピューティングデバイスに格納されているか、または証明と一緒に提供されているか、に関わらずに、公開鍵を使用して、秘密鍵２０４を使用して署名されたＡＰＩ要求を確認することができる。例えば、ユーザ（例えば、顧客、サービスプロバイダの技術者、第三者など）が、カーネル２０６のコードの一部に更新を適用することを望んだ場合、彼らは、秘密鍵２０４へのアクセスまたはその使用を取得し、ＡＰＩ要求に署名してコードの適切な部分を変更することができる。要求を受け取ると、カーネル２０６は、公開鍵を使用して要求を確認することを試み、確認が成功した場合、必要な特権操作を実行することができる。
【００２８】
代替の実施形態（図示せず）では、ＨＭＡＣ及び対称な鍵が利用された場合、鍵は、カーネル２０６またはハイパーバイザー２０２にコンパイルすることができる。その場合、鍵は、難読化して、ビルド毎に変えることができるが、この鍵は、実際には、ホストコンピューティングデバイス２０１に存在することができる。任意選択的に、要求全体は、カーネルにコンパイルされる鍵に暗号化することができ、要求自体は、それを発行するコードに対して不透明である。
【００２９】
いくつかの実施形態では、１つ以上の制約は、要求に設けられた特定の鍵に従って（または、鍵を所有する関係者に従って）適用することができる。例えば、いくつかのアクターによって署名された要求は、ホストコンピューティングデバイス２０１でゲスト仮想マシンを開始／停止すること、またはホストコンピューティングデバイス２０１を再起動させること、を可能にすることができるだけである。他のアクター（例えば、サービスプロバイダのＯＳチーム）によって保持された鍵を使用して署名された要求は、ハイパーバイザーの実行コードを変更することを可能にすることができる。一実施形態では、ホストコンピューティングデバイス２０１は、そこに格納された複数の異なる公開鍵を有することができ、各公開鍵は、異なるエンティティ（例えば、ユーザ、チームなど）に関連付けられた秘密鍵に関連付けられる。どのエンティティの秘密鍵が要求に署名するために使用されたかに依存して、要求されたオペレーションが、許可される、または拒否される、場合がある。代替の実施形態では、ホストコンピューティングデバイス２０１は、１つの秘密鍵に関連付けられた１つだけの公開鍵を格納することができる、しかしながら、要求は、要求を提出するユーザの識別を含むことができる。この識別に基づいて、ホストコンピューティングデバイス２０１は、要求されたオペレーションの実行に異なる制約を適用することができる。例えば、ホストコンピューティングデバイス２０１は、１人のユーザがゲストを停止／開始することを可能にすることができ、一方別のユーザは、ハイパーバイザーのコードの変更または更新をすることができる。そのような制約（例えば、鍵毎または関係者毎の基準で）の任意の数が可能であり、本明細書に記載の実施形態の範囲内である。
【００３０】
図３は、様々な実施形態に従って、証明機関を利用する例示３００を示す。示された実施形態では、ホストコンピューティングデバイス（例えば、ホストコンピューティングデバイス３０１上のカーネル３０６及び／またはハイパーバイザー３０２）は、ブート時に非対称の鍵対からなる暗号化識別を生成する。例えば、ホストコンピューティングデバイス３０１がブートするとき、ハイパーバイザー３０２は、秘密鍵３０７及び公開鍵３０９を含む鍵対を生成する。同様に、Ｄｏｍ０  ３０５がロードされると、カーネル３０６は、秘密鍵３１３及び公開鍵３１４からなる鍵対を生成する。
【００３１】
様々な実施形態では、公開鍵（３０９、３１３）は、同じ様式で発行することができる。例えば、公開鍵は、証明機関３１０に提供することができる。あるいは、公開鍵は、要求する関係者に直接に提供することができる。この公開鍵は、収集することができ、要求は、この鍵を使用して暗号化することができる。この実施形態では、ホストデバイス３０１によって生成された秘密鍵（３０７，３１４）は、決してホストデバイスから離れることがなく、他のどこにも存在しない。要求する関係者が、公開鍵をホストコンピューティングデバイス３０１から確実に得ることができる場合、それは、公開鍵を使用して署名された要求が、そのホストコンピューティングデバイス３０１（かつ、そのホストコンピューティングデバイスのみ）に向かうことを保証することができ、その理由は、要求が、ホストコンピューティングデバイス３０１を決して離れない秘密鍵（３０７、３１３）によって唯一解読することができる公開鍵（３０９，３１４）を使用することによって、署名されているからである。図３は、カーネル３０６及びハイパーバイザー３０２の両方がそれら自体のそれぞれの鍵対を発行する例示を示しているが、これは全ての実施形態に対する要件または制限ではないことに留意されたい。いくつかの実施形態では、ハイパーバイザー３０２だけが鍵対を発行する。他の実施形態では、カーネル３０６だけが鍵対を発行する。さらに他の実施形態では、ハイパーバイザー３０２及びカーネル３０６が、鍵対を共有することができる。
【００３２】
いくつかの実施形態では、ホストコンピューティングデバイス３０１は、証明機関（ＣＡ）３１０に公開鍵３０９を提供することができる。ＣＡ３１０は、１つ以上のデジタル証明（３１２、３１５）を適切な要求する関係者（例えば、署名する関係者３１１）に発行するエンティティであることができる。デジタル証明は、関係者が、ＡＰＩ要求に署名するために使用することができる公開鍵を適切に所有することを証明する。この実施形態では、ＣＡの使用により、要求する関係者が、秘密鍵が実際にホストコンピューティングデバイス３０１のためのものであることを信じることを、ある確実性の程度で可能になる。一実施形態では、ＣＡは、サービスプロバイダのためのＣＡであり、サービスプロバイダのリソースセンタで実行される。リソースセンタは、以下の図４を参照してさらに詳細に説明する。代替の実施形態では、ＣＡ３１０は、署名する関係者３１１及び証明に依存するホストコンピューティングデバイス３０１の両方によって信頼される信頼できる第３者である。証明機関は、従来技術で公知であり、多くの公開鍵インフラストラクチャ（ＰＫＩ）スキームで使用されている。
【００３３】
この実施形態では、ＣＡ３１０が証明３１２を要求する関係者３１１に一旦発行すると、要求する関係者３１１は、証明を使用して、カーネル３０６またはハイパーバイザー３０２のコンテキストで特権操作を実行するためのＡＰＩ要求を作ることができる。ハイパーバイザー３０２またはカーネル３０６は、次に、特定の関係者に発行された特定のＣＡによって署名された任意の証明が有効であることを確認することができ、それに応じて特権操作を実行することができる。
【００３４】
その様々な実施形態、図３に示された技術は、図２に示された技術と一緒に使用することができる。例えば、図３の要求する関係者３１１は、それ自身の秘密鍵を有することができ、要求する関係者が、それを使用して特権操作を実行するための要求に署名することができる。この実施形態では、要求は、真正性を保証するために署名される（すなわち、ホストコンピューティングデバイスは、要求する関係者が要求を生成したことを確実に知ることになる）だけではなく、プライバシーを保証するために暗号化される（すなわち、外部の関係者は要求に含まれる情報を解読することができない）。
【００３５】
図４は、様々な実施形態に従う、サービスプロバイダのリソースセンタ環境の例示４００を示す。示された実施形態では、サービスプロバイダ（例えば、クラウドコンピューティングリソースプロバイダ）は、サービスプロバイダの物理的リソース（例えば、ホストサーバなど）を格納する１つ以上のリソースセンタ４２３（例えば、データセンタ、サーバファームなど）を維持することができる。それらの物理的リソースは、インターネットのようなネットワーク４０２を介してユーザ４０１に提供することができる複数の仮想マシンのインスタンスまたは仮想サーバをホストするために使用することができる。例えば、ユーザが、サービスプロバイダの物理的リソースを使用してアプリケーションを実行したい場合、彼または彼女は、アプリケーションを展開して実行するために使用されるユーザのための仮想マシンをプロビジョニングすることを、サービスプロバイダに要求することができる。ユーザのアプリケーションに対する要求が高まるにつれて、ユーザは、負荷のバランスをとるためにより多くの仮想マシンがプロビジョニングされることを要求し、１つ以上の仮想プライベートネットワーク（ＶＰＮ）などの作成を要求することができる。
【００３６】
示された例示では、サービスプロバイダのリソースセンタ４２３は、特定のラック上の各ホストコンピューティングデバイスが、単一のトップオブラック（ＴＯＲ）スイッチ（４０４、４０５）に接続されたホストコンピューティングデバイス（４０６、４０７、４０８、４０９、４１０）の１つ以上のラック４２１、４２２を備えることができる。これらのＴＯＲスイッチは、ホストコンピューティングデバイスをネットワークに接続することを可能にする１つ以上の他のスイッチ（４２４、４２５）にさらに接続することができる。本開示全体を通して使用されるように、ネットワークは、互いに通信することができるデバイスの任意の有線または無線のネットワークであることができ、制限するものではないが、インターネットまたは他のワイドエリアネットワーク（ＷＡＮ）、セルラーネットワーク、ローカルエリアネットワーク（ＬＡＮ）、ストレージエリアネットワーク（ＳＡＮ）、イントラネット、エクストラネットなどを含む。リソースセンタは、任意の物理的または論理的リソースのグループ、例えばデータセンタ、サーバファーム、コンテンツ配信ネットワーク（ＣＤＮ）ポイントオブプレゼンス（ＰＯＰ）などを含むことができる。
【００３７】
実施形態によれば、各ホストコンピューティングデバイスは、顧客に代わって様々なアプリケーション及びサービスを実行するためにサービスプロバイダの顧客にプロビジョニングされた１つ以上の仮想マシンのインスタンス（４１３、４１４、４１５、４１６、４１７、４１８、４１９）をホストすることができる。各仮想マシンは、カーネル、ドライバ、プロセス管理などを含む独自のオペレーティングシステム（ＯＳ）をプロビジョニングすることができる。
【００３８】
顧客が、仮想マシンのインスタンスを取得したいとき、顧客は、最初に彼らが使用したいＶＭのタイプを示す要求をサービスプロバイダに提出することができる。サービスプロバイダは、プロセスを遂行し、サービスプロバイダの物理的リソース（例えば、ホストコンピューティングデバイス）でホストされる仮想マシンのインスタンスをプロビジョニングすることができる。仮想マシンのインスタンスは、次に、サービスプロバイダのリソースを利用し、顧客に代わって、様々なアプリケーション及びサービスを実行するために使用することができる。
【００３９】
実施形態では、一旦仮想マシンのインスタンスが稼働すると、仮想マシンのインスタンスをホストコンピューティングデバイスから別のホストコンピューティングデバイスに移動することが望ましい状況が存在する場合がある。例えば、サービスプロバイダは、同じホストコンピューティングデバイスにホストされている他の仮想マシンのインスタンスが原因で、仮想マシンがホストされているホストコンピューティングデバイスが、要求でオーバーロードしていること、を決定することができる。本明細書に記載の様々な実施形態では、本開示を通して記載されたセキュリティスキームは、サービスプロバイダが非対称（または対称）の暗号を使用して、データ（及びＶＭ）を、ホストコンピューティングデバイスから別のホストコンピューティングデバイスに、暗号化かつ保護された様式で、移行することを可能にする。
【００４０】
図５は、様々な実施形態に従って、仮想マシンのインスタンスを複数のホストコンピューティングデバイス間で安全に移行するための例示のプロセス５００を示す。この図は、特定のシーケンスで機能的オペレーションを示しているが、プロセスは、示された特定の順序またはオペレーションに必ずしも限定されるものではない。当業者は、この図または他の図に描かれた様々なオペレーションが、変えられる、再配列される、並列で実行される、または様々な方法で適合化される、ことができることを理解するであろう。さらに、特定のオペレーションまたはオペレーションのシーケンスは、様々な実施形態の範囲から逸脱することなく、プロセスに追加する、またはそこから省略する、ことができる。また、本明細書に含まれるプロセスの実例は、当業者にプロセスフローの概念を実証することを意図し、異なるフローまたはシーケンスとして実現される、性能が最適化される、またはそうでなければ様々な仕方で変更される場合もある、コードの実行の実際のシーケンスを指定することではない。
【００４１】
オペレーション５０１では、承認された関係者が、仮想マシンを１つのホストコンピューティングデバイスから別のホストコンピューティングデバイスへ移行するための要求を生成する。この要求は、前述のように、アプリケーションプログラミングインターフェース（ＡＰＩ）を使用して、生成することができる。一実施形態によれば、要求は、送信元ホストコンピューティングデバイスのための鍵及び送信先ホストコンピューティングデバイスのための別の鍵を含むことができる。代替の実施形態では、承認された関係者は、２つの要求、すなわち、送信先ホストコンピューティングデバイスのための鍵を含む送信元ホットコンピューティングデバイスのための１つの移行要求と、送信元ホストコンピューティングデバイスのための鍵を含む送信先ホストコンピューティングデバイスのための別の移行要求と、を生成することができる。
【００４２】
オペレーション５０２では、要求は、前述のように、承認された関係者の秘密鍵を使用して署名される。要求の署名は、要求の真正性を保証する。つまり、要求のいずれの受信者も、承認された関係者が実際に要求を生成した関係者であったことが保証される。
【００４３】
オペレーション５０３では、要求（複数可）は、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスに提供される。要求は、ＡＰＩを使用して、または従来技術で公知であるいくつかの他の技術によって、ホストデバイスに提出することができる。オペレーション５０４では、一旦デバイスが要求を受け取ると、送信元ホストコンピューティングデバイスは、送信先ホストコンピューティングデバイスに接触する。オペレーション５０５では、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスは、要求の一部として提供された鍵を使用することにより、安全なセッションを確立し、送信元及び送信先のマシンを認証する。一実施形態では、安全なセッションを確立することは、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスの間で送信されるデータを暗号化するために使用されるセッション鍵をネゴシエートすることを含むことができる。
【００４４】
オペレーション５０６では、仮想マシンのインスタンスは、安全なセッションを使用して、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスへ移行される。一実施形態では、仮想マシンを移行することは、状態情報を、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスへ、コピーすることを含む。２つのデバイス間で送信される状態情報は、安全なセッションを確立することの一部としてネゴシエートされたセッション鍵を使用して、暗号化することができる。このように、送信を傍受する、または盗聴する可能性があるいずれの関係者も、そこに含まれる潜在的な機密性の高い情報を解読することができない。
【００４５】
図６は、様々な実施形態に従って、ハイパーバイザーまたはカーネルで特権操作を行うために使用することができるＡＰＩを提供するための例示のプロセス６００を示す。
【００４６】
オペレーション６０１では、１つ以上のアプリケーションプログラミングインターフェース（ＡＰＩ）が設けられ、これは、署名された、及び／または、暗号化された要求をホストコンピューティングデバイスに提出するために使用することができる。ホストコンピューティングデバイスは、仮想化層（例えば、仮想マシンモニター、またはハイパーバイザーと一緒に動作するＤｏｍ０）及びオペレーティングシステムのカーネルを有する１つ以上の仮想マシンを含むことができる。
【００４７】
オペレーション６０２では、秘密鍵及び対応する公開鍵を備える非対称の鍵対が生成される。秘密鍵は、情報を暗号化するために使用することができ、公開鍵は、秘密鍵を使用して暗号化された情報を解読するために使用することができる。
【００４８】
オペレーション６０３では、公開鍵をホストコンピューティングデバイスに格納する。例えば、公開鍵は、オペレーティングシステムのカーネル、またはハイパーバイザーにコンパイルすることができる。あるいは、鍵は、ホストコンピューティングデバイスのトラステッドプラットフォームモジュール（ＴＰＭ）に格納することができる。
【００４９】
オペレーション６０４では、秘密鍵は、ホストコンピューティングデバイスに対して外部にある安全な場所に格納する。この実施形態では、秘密鍵は、ホストコンピューティングデバイスに存在せず、その上に存在する一切の悪意のあるエージェントは、秘密鍵へのアクセス権を持っていない。
【００５０】
オペレーション６０５では、ホストマシンは、ハイパーバイザー及び／またはオペレーティングシステムのカーネルで特権操作を実行する（例えば、移行要求を行う）ことを要求する要求を、ＡＰＩを介して受け取る。実施形態によれば、受け取った要求に秘密鍵を使用して署名する。
【００５１】
オペレーション６０６では、ホストコンピューティングデバイス（例えば、カーネルまたはハイパーバイザー）が、ホストコンピューティングデバイスに格納された公開鍵を使用して、要求の署名を確認することを試みる。オペレーション６０７に示されるように、要求の署名が確認される場合、特権操作は、ハイパーバイザー／カーネルで実行することができる。署名が公開鍵を使用して確認されない場合、特権操作が失敗する（すなわち、実行されない）。
【００５２】
図７は、様々な実施形態に従って、要求の暗号化を利用する例示のプロセス７００を示す。オペレーション７０１では、ホストコンピューティングデバイスは、非対称の鍵対を生成する。例えば、ホストコンピューティングデバイスのブートプロセスは、公開鍵及び対応する秘密鍵を生成することができる。オペレーション７０２では、公開鍵は、信頼できるソースに公開されている。一実施形態では、公開鍵は、要求を暗号化するために公開鍵を使用する要求する関係者に直接に提供することができる。別の実施形態では、公開鍵は、証明機関に提供することができ、証明機関は、カーネルまたはハイパーバイザーで特権操作を行うことを望む認証された関係者に証明を与えることができる。この実施形態では、証明機関は、証明に公開鍵を埋め込み、それ自体の秘密鍵を使用して証明に署名することができる。したがって、証明を受け取る関係者は、公開鍵が、実際にホストコンピューティングデバイスからのものであるとＣＡによって証明されていることを確認することができる。
【００５３】
オペレーション７０３では、ホストコンピューティングデバイスは、特権操作を行うための要求を受け取ることができる。オペレーション７０４に示されるように、ホストコンピューティングデバイスは、次にホストコンピューティングデバイスに格納された秘密鍵を使用して要求を解読することを試みる。オペレーション７０５に示されるように、要求が、秘密鍵を使用することにより解読される場合、ホストコンピューティングデバイスは、カーネル／ハイパーバイザーで特権操作を実行することができる。
【００５４】
本開示の種々の実施形態は、以下の付記を考慮して説明することができる。  
１．コンピューティング操作を保護するためのコンピュータ実現方法であって
実行可能な命令で構成された１つ以上のコンピュータシステムの制御下で、
仮想化層をそれぞれ含む送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスにおいて、仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスへ移行するための少なくとも１つの要求であって、仮想マシンを移行するための許可を有する承認された関係者によって署名され、送信先ホストコンピューティングデバイスのための第１の鍵を含む少なくとも１つの要求、を受け取ることと、
要求が承認された関係者によって署名されたことを確認することと、
仮想化層内に移行鍵であって、少なくとも第１の鍵と、送信元ホストコンピューティングデバイスを送信先ホストコンピューティングデバイスに対して認証するために送信先ホストコンピューティングデバイスに送られる送信元ホストコンピューティングデバイスのための第２の鍵と、を使用することによって確立される移行鍵、を確立することと、
仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行することであって、
送信元ホストコンピューティングデバイスの仮想化層の外部に状態情報が通信される前に、ネゴシエートされた移行鍵を使用して仮想マシンに関連する状態情報を暗号化することと、
暗号化された状態情報であって、送信先ホストコンピューティングデバイスによって解読可能である暗号化された状態情報、を送信先ホストコンピューティングデバイスに送信することと、によって、仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行することと、を含む、方法。  
２．仮想マシンを移行するための少なくとも１つの要求を受け取ることが、
第１の要求を送信元ホストコンピューティングデバイスによって受け取ること、をさらに含み、
送信先ホストコンピューティングデバイスが、第２の要求内の第２の鍵を受け取るように構成される、付記１に記載のコンピュータ実現方法。  
３．仮想マシンを移行することが、
送信元ホストコンピューティングデバイスによって、送信先ホストコンピューティングデバイスに接触することと、
少なくとも第１の鍵及び第２の鍵を使用して、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスによって、相互認証を行うことと、をさらに含む、付記１に記載のコンピュータ実現方法。  
４．ホストコンピューティングデバイスによって、保護された情報を送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行するための要求であって、送信先ホストコンピューティングデバイスのための送信先鍵を含む要求を、受け取ることと、
送信先鍵を使用して送信先ホストコンピューティングデバイスを認証し、かつ送信先ホストコンピューティングデバイスが、送信元ホストコンピューティングデバイスのための送信元鍵を使用して、送信元ホストコンピューティングデバイスを認証したことの指示を受け取る送信元ホストコンピューティングデバイスによって確立される鍵を、ホストコンピューティングデバイスによって、確立することと、
確立された鍵を使用し、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに、保護された情報を移行させることと、を含む、コンピュータ実現方法。  
５．保護された情報が、送信元ホストコンピューティングデバイスで実行される仮想マシンである、付記４に記載のコンピュータ実現方法。  
６．保護された情報を移行させることが、
確立された鍵を使用し、ランダムアクセスメモリ（ＲＡＭ）の状態情報の少なくとも一部を、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに、コピーすることと、
送信元ホストコンピューティングデバイスの仮想マシンを停止させることと、
送信先ホストコンピューティングデバイスで仮想マシンを実行するための指示を送信先ホストコンピューティングデバイスに送ることと、をさらに含む、付記５に記載のコンピュータ実現方法。  
７．送信元鍵が、送信元ホストコンピューティングデバイスの起動時に生成された鍵対の一部である公開鍵であり、送信元ホストコンピューティングデバイスが、公開鍵を管理サーバに送り、管理サーバが、公開鍵を使用し、保護された情報を移行するための要求を開始するように動作可能である、付記４に記載のコンピュータ実現方法。  
８．鍵を確立することが、ディフィ・ヘルマンの鍵交換プロセスに従って、行われる、付記４に記載のコンピュータ実現方法。  
９．保護された情報を移行させることが、
ランダムアクセスメモリ（ＲＡＭ）の状態情報のセットを、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスにコピーすることであって、完了するまでに継続時間を要する、コピーすることと、
ＲＡＭの状態情報の変更であって、コピーすることを完了するまでに要する継続時間中に送信元ホストコンピューティングデバイスで行われた変更、のセットを、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに送信することと、をさらに含む、付記４に記載のコンピュータ実現方法。  
１０．承認されていない関係者が少なくとも１つの要求を提出することを防ぐために、保護された情報を移行するための要求が署名される、付記４のコンピュータ実現方法。  
１１．要求が、送信元ホストコンピューティングデバイス、または送信先ホストコンピューティングデバイスのうちの少なくとも１つのための証明をさらに含む、付記４に記載のコンピュータ実現方法。  
１２．実行可能な命令で構成された１つ以上のコンピュータシステムの制御下で、
送信元ホストコンピューティングデバイスで実行される仮想マシンであって、送信先ホストコンピューティングデバイスに移行される仮想マシン、を選択することと、
アプリケーションプログラミングインターフェース（ＡＰＩ）を使用し、仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行するための少なくとも１つの要求であって、少なくとも１つの鍵を含む少なくとも１つの要求を提出することと、を含み、
少なくとも１つの要求に応じて、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスが、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスを認証するための少なくとも１つの鍵を使用することにより、安全なセッションを確立し、
仮想マシンが、少なくとも１つの要求に応じ、安全なセッションを使用して、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行される、コンピュータ実現方法。  
１３．少なくとも１つの要求が、
送信元ホストコンピューティングデバイスに関連する第１の鍵であって、送信先ホストコンピューティングデバイスに提供される第１の鍵と、
送信先ホストコンピューティングデバイスに関連する第２の鍵であって、送信元ホストコンピューティングデバイスに提供される第２の鍵と、をさらに含む、付記１２に記載のコンピュータ実現方法。  
１４．少なくとも１つの要求を提出することが、
第１の要求であって、第２の鍵を含む第１の要求を、送信元コンピューティングデバイスに提出することと、
第２の要求であって、第１の鍵を含む第２の要求を送信先ホストコンピューティングデバイスに提出することと、をさらに含む、付記１３に記載のコンピュータ実現方法。  
１５．少なくとも１つのプロセッサと、
少なくとも１つのプロセッサによって実行されると、
仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行するための少なくとも１つの要求であって、第１の鍵及び第２の鍵を含む少なくとも１つの要求、を受け取ることと、
安全なセッションであって、少なくとも第１の鍵及び第２の鍵を使用することによって確立される安全なセッションを、送信元ホストコンピューティングデバイスと送信先ホストコンピューティングデバイスとの間に、確立することと、
少なくとも１つの要求に応じ、安全なセッションを使用して、仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行することと、をコンピューティングシステムに行わせる命令を含むメモリと、を備える、コンピューティングシステム。  
１６．仮想マシンを移行することが、
安全なセッションを使用し、ランダムアクセスメモリ（ＲＡＭ）の状態情報の少なくとも一部を、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに、コピーすることと、
送信元ホストコンピューティングデバイスの仮想マシンを停止させることと、
仮想マシンの新しいインスタンスを送信先ホストコンピューティングデバイスで開始することと、をさらに含む、付記１５に記載のコンピューティングシステム。  
１７．仮想マシンを移行するための要求を受け取ることが、
第１の要求であって、第２の鍵を含む第１の要求を、送信元ホストコンピューティングデバイスによって受け取ることと、
第２の要求であって、第１の鍵を含む第２の要求を送信先ホストコンピューティングデバイスによって受け取ることと、をさらに含む、付記１５に記載のコンピューティングシステム。  
１８．安全なセッションを確立することが、
安全なセッション中に、状態情報を送信元ホストコンピューティングデバイスと送信先ホストコンピューティングデバイスとの間で送信するために使用されるセッション鍵をネゴシエートすることと、
セッション鍵を使用し、送信元ホストコンピューティングデバイスと送信先ホストコンピューティングデバイスとの間で送信される情報を暗号化することと、をさらに含む、付記１５に記載のコンピューティングシステム。  
１９．セッション鍵をネゴシエートすることが、ディフィ・ヘルマンの鍵交換プロセスに従って行われる、付記１８に記載のコンピューティングシステム。  
２０．仮想マシンを移行することが、
ランダムアクセスメモリ（ＲＡＭ）の状態情報のセットを、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスにコピーすることであって、完了するまでに継続時間を要する、コピーすることと、
ＲＡＭの状態情報の変更であって、コピーすることを完了するまでに要する継続時間中に仮想マシンによって送信元デバイスで行われた変更、のセットを、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに送信することと、をさらに含む、付記１５に記載のコンピューティングシステム。  
２１．第１のコンピューティングデバイスの仮想マシンに対応するメモリを読み取る、またはコピーするための少なくとも１つの要求であって、第２のコンピューティングデバイスから受け取られ、少なくとも１つの鍵を含む少なくとも１つの要求、を受け取ることと、
安全なセッションであって、少なくとも１つの鍵を使用することによって確立される安全なセッションを、第１のコンピューティングデバイスと第２のコンピューティングデバイスとの間に、確立することと、
第１のコンピューティングデバイスと第２のコンピューティングデバイスとの間に確立された安全なセッションを使用し、第１のコンピューティングデバイスの仮想マシンに対応するメモリを、読み取る、またはコピーする、のうちの少なくとも１つをおこなうことと、を含む操作のセットを行うために、１つ以上のプロセッサによって実行可能な１つ以上の一連の命令を格納する非一時的コンピュータ可読記憶媒体。  
２２．第１のホストコンピューティングデバイスから第２のコンピューティングデバイスに仮想マシンに対応するメモリをコピーすることと、
仮想マシンに対応するメモリを第２のコンピューティングデバイスで分析することと、をさらに含む、付記２１に記載の非一時的コンピュータ可読記憶媒体。  
２３．少なくとも１つの要求を受け取ることが、
第１のコンピューティングデバイスによって、第１の要求であって、第２のコンピューティングデバイスに関連する鍵を含む第１の要求を受け取ることと、
第２のコンピューティングデバイスによって、第２の要求であって、第１のコンピューティングデバイスに関連する鍵を含む第２の要求を受け取ることと、を含む、付記２１に記載の非一時的コンピュータ可読記憶媒体。  
２４．少なくとも１つの要求が、第１のコンピューティングデバイスで実行される仮想マシンに対応するメモリを読み取るためのサービスによって提出される、付記２１に記載の非一時的コンピュータ可読記憶媒体。  
２５．安全なセッションを確立することが、ディフィ・ヘルマンの鍵交換プロセスに従って、行われる、付記２１に記載の非一時的コンピュータ可読記憶媒体。
【００５５】
図８は、例示のコンピューティングデバイス８００の全体的な構成要素のセットの論理的配設を示す。この例示では、デバイスは、メモリデバイスまたは要素８０４に格納することができる命令を実行するための少なくとも１つのプロセッサ８０２を備える。当業者には明らかであるが、このデバイスは、多くのタイプのメモリ、データストレージ、または非一時的コンピュータ可読記憶媒体、例えば、プロセッサ８０２によって実行されるプログラム命令のための第１のデータストレージ、画像またはデータのための別個のストレージ、他のデバイスと情報を共有するための取り外し可能なメモリなどを備えることができる。このデバイスは、通常、タッチスクリーンまたは液晶ディスプレイ（ＬＣＤ）のようなあるタイプの表示要素８０６を備えることができるが、携帯型メディアプレーヤーのようなデバイスは、オーディオスピーカーを介するような他の手段によって、情報を搬送することができる。記載のように、多くの実施形態において、デバイスは、従来の入力をユーザから受け取ることができる少なくとも１つの入力要素８０８を含む。この従来の入力は、例えば、プッシュボタン、タッチパッド、タッチスクリーン、ホイール、ジョイスティック、キーボード、マウス、キーパッド、または任意の他のそのようなデバイスもしくは要素を含むことができ、それによって、ユーザは、コマンドをデバイスに入力することができる。しかしながら、いくつかの実施形態では、そのようなデバイスは、一切のボタンを備えることがなく、視覚的コマンド及び音声コマンドの組合せを介してのみ制御することができ、ユーザは、デバイスに接触することなく、デバイスを制御することができる。いくつかの実施形態では、図８のコンピューティングデバイス８００は、Ｗｉ−Ｆｉ（登録商標）、ブルートゥース、ＲＦ、有線または無線通信システムのような様々なネットワークを介して通信するための１つ以上のネットワークインターフェース構成要素８０８を備えることができる。多くの実施形態において、デバイスは、インターネットなどのネットワークと通信することができ、他のそのようなデバイスと通信することができる。
【００５６】
記載のように、記載された実施形態に従って、異なる手法を様々な環境で実現することができる。例えば、図９は、様々な実施形態に従って、態様を実現するための環境９００の例示を示す。理解されることであるが、ウェブベースの環境は、説明の目的のために使用されたが、異なる環境は、様々な実施形態を実現するために、適宜、使用することができる。このシステムは、電子クライアントデバイス９０２を備え、これは、適切なネットワーク９０４上で要求、メッセージ、または情報を送信及び受信し、情報をデバイスのユーザに搬送して戻すように動作可能な任意の適切なデバイスを備えることができる。このようなクライアントデバイスの例示は、パーソナルコンピュータ、携帯電話、携帯型メッセージングデバイス、ラップトップ型コンピュータ、セットトップボックス、個人データ端末、電子ブックリーダ等を含む。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意の他のそのようなネットワークもしくはそれらの組合せを含む、任意の適切なネットワークを含むことができる。そのようなシステムに用いられる構成要素は、ネットワークのタイプ及び／または選択された環境に少なくとも部分的に依存することができる。そのようなネットワークを介する通信のためのプロトコル及び構成要素は、公知であり、本明細書では詳細に議論されない。ネットワークを介した通信は、有線または無線接続、及びそれらの組合せによって可能にすることができる。この例示では、ネットワークは、インターネットを含むので、環境は、要求を受信し、かつそれに応答してコンテンツを提供するためのウェブサーバ９０６を含むが、他のネットワークの場合、当業者には明らかであるように、同様の目的を果たす代替のデバイスを使用することができる。
【００５７】
実例の環境は、少なくとも１つのアプリケーションサーバ９０８及びデータストア９１０を含む。適切なデータストアからデータを取得する等のタスクを行うように相互作用することが可能である、連結またはそうでなければ構成することができる、複数のアプリケーションサーバ、層もしくは他の要素、プロセス、または構成要素が存在できることを理解されたい。本明細書で使用されるように、「データストア」という用語は、データを記憶し、それにアクセスし、それを取り出すことが可能な任意のデバイスまたはデバイスの組合せを指し、これは、任意の標準的な分散型またはクラスタ型環境において、データサーバ、データベース、データ記憶デバイス、及びデータ記憶媒体の任意の組合せ及び数を備えることができる。アプリケーションサーバは、必要に応じてデータストアと統合してクライアントデバイスの１つ以上のアプリケーションの態様を実行し、アプリケーションのデータアクセス及びビジネス論理の大部分を処理するための任意の好適なハードウェア及びソフトウェアを備えることができる。アプリケーションサーバは、データストアと連携してアクセス制御サービスを提供し、ユーザに転送されるテキスト、グラフィックス、オーディオ及び／またはビデオのようなコンテンツを生成することができ、この例示では、これらは、ＨＴＭＬ、ＸＭＬ、または別の適切な構造化言語の形態でウェブサーバによってユーザに提供することができる。全ての要求及び応答の処理、ならびにクライアントデバイス９０２とアプリケーションサーバ９０８との間のコンテンツの配信は、ウェブサーバ９０６によって処理することができる。本明細書で議論される構造化されたコードは、本明細書の他の箇所で議論される任意の適切なデバイスまたはホストマシンで実行することができるので、ウェブサーバ及びアプリケーションサーバは、必須ではなく、単に例示の構成要素であることを理解されたい。
【００５８】
データストア９１０は、複数の別個のデータテーブル、データベースまたは他のデータ記憶機構、及び特定の態様に関するデータを記憶するための媒体を含むことができる。例えば、示されたデータストアは、製造データ９１２及びユーザ情報９１６を格納する機構を備え、製造側にコンテンツを提供するために使用することができる。データストアはまた、ログまたはセッションデータ９１４を格納するための機構を備えるように示される。ページの画像情報及びアクセス権情報等、データストアに格納する必要もある多くの他の態様が存在することができ、これは、必要に応じて上に列挙された機構のいずれか、またはデータストア９１０内の追加の機構に記憶することができることを理解されたい。データストア９１０は、それに関連する論理を介して動作可能であり、アプリケーションサーバ９０８から命令を受け取り、それに応じて、データを取得し、更新するまたはそうでなければ処理する。一例示では、ユーザは、あるタイプのアイテムのための検索の要求を提出することもある。この場合、データストアは、ユーザ情報にアクセスしてユーザの識別を確認することができ、カタログの詳細情報にアクセスして、そのタイプのアイテムについての情報を取得することができる。この情報は、次に、ユーザがユーザデバイス９０２のブラウザを介して見ることができるウェブページ上の結果一覧等で、ユーザに返すことができる。関心のある特定のアイテムの情報を、ブラウザの専用ページまたはウィンドウで見ることができる。
【００５９】
各サーバは、サーバの全般的な管理または操作のための実行可能なプログラム命令を提供するオペレーティングシステムを備え、またサーバのプロセッサによって実行されると、意図された機能をサーバが行うことを可能にする命令を格納するコンピュータ可読媒体を備える。サーバのオペレーティングシステム及び全体的な機能のための適切な実現形態は、公知であり、または市販されており、具体的に本明細書の本開示に照らして、当業者によって容易に実現される。
【００６０】
一実施形態における環境は、１つ以上のコンピュータネットワークまたは直接接続を使用し、通信リンクを介して相互接続された複数のコンピュータシステム及び構成要素を利用する、分散型コンピューティング環境である。しかしながら、当業者であれば、そのようなシステムが、図９に示されたよりも少ない数または多い数の構成要素を有するシステムで同等にうまく動作できることを理解されたい。したがって、図９のシステム９００の図示は、本質的に実例としてみなされるべきであり、本開示の範囲を制限するものではない。
【００６１】
本明細書で議論された、または示唆された、様々な実施形態は、多種多様の動作環境で実現することができ、これらは、ある場合には、いくつかのアプリケーションのうちのいずれかを動作するために使用することができる１つ以上のユーザコンピュータ、コンピューティングデバイス、またはプロセッシングデバイスを含むことができる。ユーザまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップ型またはラップトップ型コンピュータ、ならびに、モバイルソフトウェアを実行し、多数のネットワーク及びメッセージプロトコルをサポートすることが可能な携帯電話、無線、及び携帯型デバイスなどの、任意の多数の汎用パーソナルコンピュータを備えることができる。このようなシステムはまた、開発及びデータベース管理などの目的のために、様々な市販のオペレーティングシステム及び他の公知のアプリケーションのうちのいずれかを実行する多数のワークステーションを備えることができる。これらのデバイスはまた、ダミーターミナル、シンクライアント、ゲーミングシステム、及びネットワークを介して通信することができる他のデバイスなどの他の電子デバイスを備えることができる。
【００６２】
ほとんどの実施形態は、ＴＣＰ／ＩＰ、ＯＳＩ、ＦＴＰ、ＵＰｎＰ、ＮＦＳ、ＣＩＦＳ、及びＡｐｐｌｅＴａｌｋなどの、多様な市販のプロトコルのいずれかを使用して通信をサポートするために、当業者によく知られているであろう少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、及びそれらの任意の組合せであることができる。
【００６３】
ウェブサーバを利用する実施形態においては、ウェブサーバは、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、データサーバ、Ｊａｖａ（登録商標）サーバ、及びビジネスアプリケーションサーバを含む、あらゆる種類のサーバまたは中間層アプリケーションを実行することができる。サーバ（複数可）はまた、例えば、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃、もしくはＣ＋＋等の任意のプログラミング言語、またはＰｅｒｌ、Ｐｙｔｈｏｎ、もしくはＴＣＬなどの任意のスクリプト言語、ならびにそれらの組み合わせで書かれる１つ以上のスクリプトまたはプログラムとして実現することができる１つ以上のウェブアプリケーションを実行することなどによって、ユーザデバイスからの要求に応答してプログラムまたはスクリプトを実行することができる。サーバ（複数可）はまた、制限するものではないが、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、及びＩＢＭ（登録商標）から市販のものを含むデータベースサーバも備えることができる。
【００６４】
環境は、上述のように様々なデータストアと、他のメモリと、記憶媒体と、を備えることができる。これらは、様々な場所、例えば、コンピュータのうちの１つ以上に対してローカルである（かつ／もしくはそこに存在する）、またはネットワーク上のコンピュータのうちのいずれかもしくは全てから遠隔である、記憶媒体上に存在することができる。実施形態の特定のセットにおいて、情報は、当業者に熟知されたストレージエリアネットワーク（「ＳＡＮ」）内に存在することができる。同様に、コンピュータ、サーバ、または他のネットワークデバイスに属する機能を行うために必要な任意のファイルを、必要に応じてローカル及び／または遠隔で格納することができる。システムがコンピュータ化されたデバイスを含む場合、それぞれのそのようなデバイスは、バスを介して電気的に結合することができるハードウェア要素を備えることができ、これらの要素は、例えば、少なくとも１つの中央処理ユニット（ＣＰＵ）、少なくとも１つの入力デバイス（例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド）、及び少なくとも１つの出力デバイス（例えば、表示デバイス、プリンタ、またはスピーカー）を含む。このようなシステムはまた、ディスクドライブ、光学的記憶デバイス、及びランダムアクセスメモリ（ＲＡＭ）または読み出し専用メモリ（ＲＯＭ）などのソリッドステート記憶デバイス、ならびに取り外し可能記憶デバイス、メモリカード、フラッシュカードなどのような１つ以上の記憶デバイスを備えることができる。
【００６５】
そのようなデバイスはまた、上述のように、コンピュータ可読記憶媒体リーダ、通信デバイス（例えば、モデム、ネットワークカード（無線または有線）、赤外線通信デバイス）、及びワーキングメモリを備えることができる。コンピュータ可読記憶媒体リーダは、コンピュータ可読情報を一時的及び／またはより恒久的に収容し、格納し、送信し、かつ読み出すための、遠隔、ローカル、固定、及び／または取り外し可能な記憶デバイスならびに記憶媒体を表すコンピュータ可読記憶媒体に、接続する、またはそれを受け取るように構成する、ことができる。システム及び様々なデバイスはまた、通常、多数のソフトウェアアプリケーション、モジュール、サービス、またはクライアントアプリケーションまたはウェブブラウザなどのオペレーティングシステム及びアプリケーションプログラムを含む少なくとも１つのワーキングメモリデバイス内に位置する他の要素を備える。代替の実施形態が、上述のものからの多数の変形を有し得ることを理解されたい。例えば、カスタマイズされたハードウェアも使用され得、かつ／または特定の要素が、ハードウェア、ソフトウェア（アプレット等のポータブルソフトウェアを含む）、もしくはこれらの両方に実装され得る。さらに、ネットワーク入力／出力デバイスなどの他のコンピューティングデバイスへの接続を用いることができる。
【００６６】
コードまたはコードの部分を収容するための記憶媒体及びコンピュータ可読媒体は、限定するものではないが、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶及び／または送信のための任意の方法または技術で実現される、揮発性及び不揮発性、取り外し可能及び取り外し不能の媒体などの記憶媒体及び通信媒体を含む、従来技術で公知である、または使用されている任意の適切な媒体を含むことができ、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学的記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望の情報を格納するために使用することができ、かつシステムデバイスによってアクセスすることができる任意の他の媒体を含む。本明細書に提供される本開示及び教示に基づいて、当業者であれば、様々な実施形態を実現する他の仕方及び／または方法を理解するであろう。
【００６７】
明細書及び図面は、したがって、限定的な意味ではなく実例としてみなされるべきである。しかしながら、特許請求の範囲に記載のように本発明のより広い精神及び範囲から逸脱することなく、様々な変更及び改変を行うことができることは明らかであろう。
【図１Ａ】
2016509806.tif 000003
【図１Ｂ】
2016509806.tif 000004
【図２】
2016509806.tif 000005
【図３】
2016509806.tif 000006
【図４】
2016509806.tif 000007
【図５】
2016509806.tif 000008
【図６】
2016509806.tif 000009
【図７】
2016509806.tif 000010
【図８】
2016509806.tif 000011
【図９】
2016509806.tif 000012
【国際調査報告】
2016509806.tif 000013