(57)【要約】共有イメージの分配のための方法は、ソフトウェアインストレーションのイメージの複数の要素を決定するステップと、クライアントの複数のコンテンツを決定するステップと、イメージの複数の要素に対して第１のハッシュオペレーションを実行するステップと、クライアントの複数のコンテンツに対して第１のハッシュオペレーションを実行するステップと、イメージの複数の要素に対する第１のハッシュオペレーションの結果と、クライアントの複数のコンテンツに対する第１のハッシュオペレーションの結果とを比較するステップと、イメージの複数の要素に対する第１のハッシュオペレーションの結果と、クライアントの複数のコンテンツに対する第１のハッシュオペレーションの結果との比較に基づいて、イメージの前記複数の要素のうち、クライアント上で利用可能でない１つ又は複数の要素を決定するステップと、クライアント上で利用可能でないと決定されたイメージの要素の選択的伝送を実行させるステップとを含む。
2015527686.tif 000002
【特許請求の範囲】
【請求項１】
共有イメージの分配のための方法であって、
ソフトウェアインストレーションのイメージの複数の要素を決定するステップと、
クライアントの複数のコンテンツを決定するステップと、
前記イメージの前記複数の要素に対して第１のハッシュオペレーションを実行するステップと、
前記クライアントの前記複数のコンテンツに対して前記第１のハッシュオペレーションを実行するステップと、
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果を、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果と比較するステップと、
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能でない１つ又は複数の要素を決定するステップと、
前記クライアント上で利用可能でないと決定された前記イメージの要素の選択的伝送を実行させるステップと
を含む、方法。
【請求項２】
前記ソフトウェアインストレーションの前記イメージの前記複数の要素に対して、第２のハッシュオペレーションを実行するステップと、
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記クライアントの前記複数のコンテンツに対して前記第２のハッシュオペレーションを実行するステップと、
前記イメージの前記複数の要素に対する前記第２のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第２のハッシュオペレーションの結果を比較するステップと、
を更に含み、
前記イメージの前記複数の要素のうち、前記クライアント上で利用可能でない１つ又は複数の要素を決定するステップは、前記イメージの前記複数の要素に対する前記第２のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第２のハッシュオペレーションの結果との比較に更に基づく、
請求項１に記載の方法。
【請求項３】
前記第１のハッシュオペレーションは、前記イメージの前記複数の要素のファイルに対して及び前記クライアントの前記複数のコンテンツのファイルに対して実行される、
請求項１に記載の方法。
【請求項４】
前記イメージの前記複数の要素及び前記クライアントの前記複数のコンテンツは、クラスタに応じて決定される、
請求項１に記載の方法。
【請求項５】
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能な１つ又は複数の要素を決定するステップ、
を更に含み、
前記クライアント上で利用可能でないと決定された前記イメージの要素の選択的伝送は、前記クライアント上で利用可能であると決定された前記イメージの要素を除外する、
請求項１に記載の方法。
【請求項６】
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能な１つ又は複数の要素を決定するステップと、
前記クライアント上で利用可能であると決定された前記イメージの要素の位置を決定するステップと、
を更に含む、請求項１に記載の方法。
【請求項７】
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能な１つ又は複数の要素を決定するステップと、
前記クライアント上で利用可能であると決定された前記イメージの要素の位置を決定するステップと、
選択的に伝送される前記イメージの要素と、前記クライアント上で利用可能であると決定された前記イメージの要素とを使用して、前記クライアント上で前記イメージの再構築を実行させるステップと、
を更に含み、
前記の再構築を実行させるステップは、前記クライアント上で利用可能であると決定された前記イメージの要素を前記イメージへコピーさせることを含む、
請求項１に記載の方法。
【請求項８】
コンピュータ読取可能媒体と、
前記コンピュータ読取可能媒体上に担持されるコンピュータ実行可能命令と
を備えた製品であって、
前記命令は、プロセッサにより読み取り可能であり、読み取られて実行されると、前記プロセッサに、
ソフトウェアインストレーションのイメージの複数の要素を決定することと、
クライアントの複数のコンテンツを決定することと、
前記イメージの前記複数の要素に対して第１のハッシュオペレーションを実行することと、
前記クライアントの前記複数のコンテンツに対して前記第１のハッシュオペレーションを実行することと、
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果を、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果と比較することと、
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能でない１つ又は複数の要素を決定することと、
前記クライアント上で利用可能でないと決定された前記イメージの要素の選択的伝送を実行させることと
を実行させる、製品。
【請求項９】
前記プロセッサに、
前記ソフトウェアインストレーションの前記イメージの前記複数の要素に対して、第２のハッシュオペレーションを実行することと、
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記クライアントの前記複数のコンテンツに対して前記第２のハッシュオペレーションを実行することと、
前記イメージの前記複数の要素に対する前記第２のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第２のハッシュオペレーションの結果を比較することと、
を更に実行させ、
前記イメージの前記複数の要素のうち、前記クライアント上で利用可能でない１つ又は複数の要素を決定することは、前記イメージの前記複数の要素に対する前記第２のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第２のハッシュオペレーションの結果との比較に更に基づく、
請求項８に記載の製品。
【請求項１０】
前記第１のハッシュオペレーションは、前記イメージの前記複数の要素のファイルに対して及び前記クライアントの前記複数のコンテンツのファイルに対して実行される、
請求項８に記載の製品。
【請求項１１】
前記イメージの前記複数の要素及び前記クライアントの前記複数のコンテンツは、クラスタに応じて決定される、
請求項８に記載の製品。
【請求項１２】
前記プロセッサに、
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能な１つ又は複数の要素を決定すること、
を更に実行させ、
前記クライアント上で利用可能でないと決定された前記イメージの要素の選択的伝送は、前記クライアント上で利用可能であると決定された前記イメージの要素を除外する、
請求項８に記載の製品。
【請求項１３】
前記プロセッサに、
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能な１つ又は複数の要素を決定することと、
前記クライアント上で利用可能であると決定された前記イメージの要素の位置を決定することと、
を更に実行させる、請求項８に記載の製品。
【請求項１４】
前記プロセッサに、
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能な１つ又は複数の要素を決定することと、
前記クライアント上で利用可能であると決定された前記イメージの要素の位置を決定することと、
選択的に伝送される前記イメージの要素と、前記クライアント上で利用可能であると決定された前記イメージの要素とを使用して、前記クライアント上で前記イメージの再構築を実行させることと、
を更に実行させ、
前記の再構築を実行させることは、前記クライアント上で利用可能であると決定された前記イメージの要素を前記イメージへコピーさせることを含む、
請求項８に記載の製品。
【請求項１５】
共有イメージの分配のためのシステムであって、
ソフトウェアインストレーションのイメージの複数の要素を決定する手段と、
クライアントの複数のコンテンツを決定する手段と、
前記イメージの前記複数の要素に対して第１のハッシュオペレーションを実行する手段と、
前記クライアントの前記複数のコンテンツに対して前記第１のハッシュオペレーションを実行する手段と、
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果を、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果と比較する手段と、
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能でない１つ又は複数の要素を決定する手段と、
前記クライアント上で利用可能でないと決定された前記イメージの要素の選択的伝送を実行させる手段と
を備える、システム。
【請求項１６】
前記ソフトウェアインストレーションの前記イメージの前記複数の要素に対して、第２のハッシュオペレーションを実行する手段と、
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記クライアントの前記複数のコンテンツに対して前記第２のハッシュオペレーションを実行する手段と、
前記イメージの前記複数の要素に対する前記第２のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第２のハッシュオペレーションの結果を比較する手段と、
を更に備え、
前記イメージの前記複数の要素のうち、前記クライアント上で利用可能でない１つ又は複数の要素を決定する手段は、前記イメージの前記複数の要素に対する前記第２のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第２のハッシュオペレーションの結果との比較に更に基づく、
請求項１５に記載のシステム。
【請求項１７】
前記第１のハッシュオペレーションは、前記イメージの前記複数の要素のファイルに対して及び前記クライアントの前記複数のコンテンツのファイルに対して実行される、
請求項１５に記載のシステム。
【請求項１８】
前記イメージの前記複数の要素及び前記クライアントの前記複数のコンテンツは、クラスタに応じて決定される、
請求項１５に記載のシステム。
【請求項１９】
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能な１つ又は複数の要素を決定する手段、
を更に備え、
前記クライアント上で利用可能でないと決定された前記イメージの要素の選択的伝送は、前記クライアント上で利用可能であると決定された前記イメージの要素を除外する、
請求項１５に記載のシステム。
【請求項２０】
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能な１つ又は複数の要素を決定する手段と、
前記クライアント上で利用可能であると決定された前記イメージの要素の位置を決定する手段と、
選択的に伝送される前記イメージの要素と、前記クライアント上で利用可能であると決定された前記イメージの要素とを使用して、前記クライアント上で前記イメージの再構築を実行させる手段と、
を更に含み、
前記の再構築を実行させる手段は、前記クライアント上で利用可能であると決定された前記イメージの要素を前記イメージへコピーさせることを含む、
請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータセキュリティに関し、より具体的には、効率的な仮想マシン展開方法に関する。
【背景技術】
【０００２】
コンピュータ及び他の電子デバイスに対するマルウェアの感染は、非常に煩わしく、検出及び修復が難しい。アンチマルウェアのソリューションは、ソフトウェアがコンピューティングシステムに有害であると判断するのに、その評価されるソフトウェアに対する悪質なコード又はファイルのシグネチャの合致を要することがある。アンチマルウェアソリューションは、マルウェアを示すものについてクライアント又はエンドポイントをスキャンするか、マルウェアの感染についてクライアント又はエンドポイントを修復することを含むことがある。データファイル、マルウェアのシグネチャ、復旧アプリケーション又は他のアンチマルウェアコンポーネントがエンドポイントにダウンロードされることがある。
【０００３】
電子デバイス上での実行用のアプリケーションは、これらのアプリケーションを実行する前にインストレーションを必要とする。一部のアプリケーションは、単にコードをターゲットの電子デバイスにコピーすることによってインストールされ得るが、他のアプリケーションは、インストールアプリケーションを使用することがある。インストールアプリケーションは典型的に、所与のアプリケーションを実行するのに使用される修正及びインストールを実行するのに使用される、インストールソースファイルとコードを含み得る。インストールアプリケーションは、ファイルを解凍し、フォルダをターゲットの電子デバイス上に作成し、フォルダ内に資料を格納し、他の方法でアプリケーションを実行用に利用可能にする。
【発明の概要】
【０００４】
一実施形態において、共有イメージの分配のための方法は、ソフトウェアインストールのイメージの複数の要素を決定するステップと、クライアントの複数のコンテンツを決定するステップと、イメージの複数の要素に対して第１のハッシュオペレーションを実行するステップと、クライアントの複数のコンテンツに対して第１のハッシュオペレーションを実行するステップと、イメージの複数の要素に対する第１のハッシュオペレーションの結果を、クライアントの複数のコンテンツに対する第１のハッシュオペレーションの結果と比較するステップと、イメージの複数の要素に対する第１のハッシュオペレーションの結果と、クライアントの複数のコンテンツに対する第１のハッシュオペレーションの結果との比較に基づいて、イメージの複数の要素のうち、クライアント上で利用可能でない１つ又は複数の要素を決定するステップと、クライアント上で利用可能でないと決定されたイメージの要素の選択的伝送を実行させるステップとを含む。
【０００５】
別の実施形態において、製品は、コンピュータ読取可能媒体と、コンピュータ読取可能媒体上に担持されるコンピュータ実行可能命令とを備える。命令は、プロセッサにより読み取り可能である。命令は、読み取られて実行されると、プロセッサに、ソフトウェアインストールのイメージの複数の要素を決定させ、クライアントの複数のコンテンツを決定させ、イメージの複数の要素に対して第１のハッシュオペレーションを実行させ、クライアントの複数のコンテンツに対して第１のハッシュオペレーションを実行させ、イメージの複数の要素に対する第１のハッシュオペレーションの結果を、クライアントの複数のコンテンツに対する第１のハッシュオペレーションの結果と比較させ、イメージの複数の要素に対する第１のハッシュオペレーションの結果と、クライアントの複数のコンテンツに対する第１のハッシュオペレーションの結果との比較に基づいて、イメージの複数の要素のうち、クライアント上で利用可能でない１つ又は複数の要素を決定させ、クライアント上で利用可能でないと決定されたイメージの要素の選択的伝送を実行させる。
【０００６】
更に別の実施形態において、共有イメージの分配のためのシステムは、ソフトウェアインストールのイメージの複数の要素を決定する手段と、クライアントの複数のコンテンツを決定する手段と、イメージの複数の要素に対して第１のハッシュオペレーションを実行する手段と、クライアントの複数のコンテンツに対して第１のハッシュオペレーションを実行する手段と、イメージの複数の要素に対する第１のハッシュオペレーションの結果を、クライアントの複数のコンテンツに対する第１のハッシュオペレーションの結果と比較する手段と、イメージの複数の要素に対する第１のハッシュオペレーションの結果と、クライアントの複数のコンテンツに対する第１のハッシュオペレーションの結果との比較に基づいて、イメージの複数の要素のうち、クライアント上で利用可能でない１つ又は複数の要素を決定する手段と、クライアント上で利用可能でないと決定されたイメージの要素の選択的伝送を実行させる手段とを備える。
【図面の簡単な説明】
【０００７】
本発明並びにその特徴及び利点のより完全な理解のために、以下の説明は添付の図面とともに参照される。
【図１】効率的な仮想マシン展開のための例示のシステムを示す図である。
【図２】システムにより共有イメージとクライアント上のコンテンツの間の相違を決定するのに使用され得る、共有イメージの例示の実施形態と、コンテンツの例示の実施形態を示す図である。
【図３】複数のハッシュ又はデジタル署名を決定することにより得られるハッシュテーブルの例示の実施形態を示す図である。
【図４】効率的な仮想マシン展開のためのシステムの例示の動作を示す図である。
【図５】共有イメージを構築するためのファイルが利用可能であるかどうかを決定するシステムの例示の動作を示す図である。
【図６】共有イメージを構築するためクラスタが利用可能であるかどうかを決定するシステムの例示の動作を示す図である。
【図７】効率的な仮想マシン展開のための方法の例示の実施形態を示す図である。
【発明を実施するための形態】
【０００８】
図１は、効率的な仮想マシン展開のための例示のシステム１００を示す図である。そのような展開は、ホスト１０２のようなホストと、クライアント１０４のような１つ又は複数のクライアントとの間でなされる。例示のシステム１００は仮想マシンの展開を考慮するが、任意の適切なソフトウェアインストールがシステム１００によって展開されてよい。システム１００は、所与のクライアント１０４上にインストールされたコンポーネントと、ホスト１０２上のマスタイメージから利用可能なコンポーネントとの間の相違を決定するように構成され得る。システム１００は、任意の適切な手法によりそのような決定を行うように構成されてよい。さらに、システム１００は、所与のクライアント１０４上に未だインストールされていない全てのコンポーネント、あるいは他の形で利用可能にされていない全てのコンポーネントを提供するように構成されてもよい。
【０００９】
ホスト１０２は、モジュール、サーバ、コンピュータ、他の電子デバイス又はデジタルとアナログ回路の任意の適切な組み合わせのような任意の適切な機構によって実装され得る。一実施形態において、ホスト１０２は、メモリ１２０に結合されるプロセッサ１１８を含んでもよい。ホスト１０２は、プロセッサ１１８による実行のために、メモリ１２０内に命令を含むことができる。別の実施形態において、プロセッサ１１８及びメモリ１２０は、別の電子デバイス上に存在してもよく、ホスト１０２をモジュールとして実行してもよい。
【００１０】
一実施形態において、ホスト１０２は、クライアント１０４へのソフトウェアの分配を制御するように構成されるホスト分配アプリケーション１０８を含んでもよい。他の実施形態において、ホスト分配アプリケーション１０８は、別の適切な電子デバイス上に存在するか、その電子デバイス上で動作してよい。ホスト分配アプリケーション１０８は、任意の適切なモジュール、スクリプト、実行可能ファイル、アプリケーション又は本明細書で説明されるように構成される他のデジタルエンティティによって実装され得る。
【００１１】
一実施形態において、ホスト１０２は、ホスト共有イメージ１１０を含んでもよく、ホスト共有イメージ１１０は、クライアント１０４にインストールされるソフトウェアインストールのマスタイメージを含み得る。他の実施形態において、ホスト共有イメージ１１０は、別の適切な電子デバイス上に存在して、ホスト分配アプリケーションに通信可能に結合されてもよい。ホスト共有イメージ１１０は、ファイル、命令又は他のデジタル情報の任意の適切なセットによって実装され得る。ホスト共有イメージ１１０は、例えばオペレーティングシステムのような仮想マシンインストール、仮想展開環境、サンドボックス又はセキュアブラウザのようなセキュアアプリケーションを構成するファイル又は他の情報のセットを含み得る。ホスト共有イメージ１１０は、複数のクライアント１０４の間にインストールされ、かつ同じ方法で構成されるべき、インストレーションを含み得る。さらに、ホスト共有イメージ１１０は、非常に大きいことがあり、多メガバイト又はギガバイトの情報を含むことがある。例えばマルウェアを含む可能性があるプログラム、スクリプト又は他のコンテンツが安全に実行されることを可能にするサンドボックスアプリケーションは、クライアント上で実行するのに必要な５００メガバイト近くの情報を含むことがある。単一のホスト共有イメージ１１０が図示されているが、ホスト１０２は多くのそのようなイメージを含んでもよく、そのようなイメージには、異なるオペレーティングシステムのような、特定の方法で構成される様々なコンテンツを有するインストレーション又はディスクイメージが含まれ得る。そのようなイメージを使用して、例えば様々なクライアント１０４上に共通の仮想マシン実行イメージを確立してもよい。
【００１２】
ホスト分配アプリケーション１０８は、ホスト共有イメージ１１０を、任意の適切な手法又は機構を通してクライアント１０４へ分配するように構成され得る。一実施形態において、ホスト分配アプリケーション１０８は、ネットワーク１０６を通してクライアント１０４へ通信可能に結合されるか、クライアント１０４と通信し得る。ネットワーク１０６は、ワイドエリアネットワーク、ローカルエリアネットワーク、無線ネットワーク、インターネット、イントラネット又はこれらの任意の組合せ等によるような、任意の適切な手法によって実装されてよい。
【００１３】
各クライアント１０４は、コンピュータ、ラップトップ、モバイルデバイス又はサーバのような、任意の適切な電子デバイスによって実装され得る。クライアント１０４の例示の実装がクライアント１０４ａに図示されているが、各クライアント１０４は他のクライアントからの実装において変化し得る。クライアント１０４ａは、クライアントコンテンツ１１４に通信可能に結合されるクライアント分配アプリケーション１１２を含んでよい。クライアント分配アプリケーション１１２は、任意の適切な手法で、あるいはモジュール、ライブラリ、実行可能ファイル、アプリケーション、スクリプト又は他のデジタルエンティティのような任意の適切な機構により実装され得る。クライアントコンテンツは、１つ若しくは複数のファイル、ライブラリ又はクライアント１０４ａ上に存在する他のデジタルエンティティを含み得る。クライアント１０４ａは、メモリ１２４に結合されたプロセッサ１２２を含み得る。プロセッサ１２２は、メモリ１２４によって実行される命令を含んでよい。そのような命令は、クライアント分配アプリケーション１１２のオペレーションのための命令を含み得る。
【００１４】
クライアント１０４ａがクライアント分配アプリケーション１１２を含むように図示され、ホスト１０２がホスト分配アプリケーション１０８を含むように図示されているが、クライアント分配アプリケーション１１２及びホスト分配アプリケーション１０８はそれぞれ、説明されるオペレーションを実行する間、任意の適切な電子デバイス上に存在するか、そのような電子デバイス上で動作してもよい。さらに、クライアント分配アプリケーション１１２及びホスト分配アプリケーション１０８は、同じ又は同様のモジュール、アプリケーション、ライブラリ又は実行可能ファイルで実装されてもよい。
【００１５】
クライアント分配アプリケーション１１２は、ホスト分配アプリケーション１０８と通信するように構成され得る。クライアント分配アプリケーション１１２、ホスト分配アプリケーション１０８又はその双方の組合せは、クライアントコンテンツ１１４のどの部分が、クライアント１０４ａ上へのホスト共有イメージ１１０をインストールするのに使用されるか、並びにダウンロードするにはどの部分が必要かを決定するように構成され得る。クライアント分配アプリケーション１１２、ホスト分配アプリケーション１０８又はその双方の組合せは、任意の適切な手法又は機構でそのような決定を行うように構成され得る。
【００１６】
クライアント１０４ａ上に既に存在するクライアントコンテンツ１１４の部分又はダウンロードするのに必要なこれらの部分が決定されると、ホスト分配アプリケーション１０８は、クライアント分配アプリケーション１１２が共有イメージ１１６をクライアント１０４ａ上にインストールするのに十分な追加のファイル又はコンテンツを送信するように構成され得る。ホスト分配アプリケーション１０８は、クライアント分配アプリケーション１１２が実行するよう、追加のファイル又はコンテンツによりインストールパッケージを準備することができる。一実施形態において、クライアント１０４ａ上にまだ存在しないファイル又はコンテンツのみが、ホスト分配アプリケーション１０８によって送信されてもよい。別の実施形態において、共有イメージ１１６は、メモリ内にホスト共有イメージ１１０の構成及び構造を再現してもよい。ホスト分配アプリケーション１０８は、複数のクライアント１０４上においてホスト共有イメージ１１０の共有イメージの作成されるプロセスを再現するように構成され得る。
【００１７】
クライアント１０４ａ上において共有イメージ１１６を構築するのに必要なファイルを決定するプロセスは、要求に応じて実行されてよく、かなりの帯域幅を節約し得る。例えばサンドボックスアプリケーションが、疑わしいファイル、スクリプト又は他のコンテンツを実行するのに必要である場合、クライアント１０４ａ上ではまだ利用可能でないサンドボックスアプリケーションの必要な部分のみを決定して、クライアント１０４ａに伝送することができる。そのようなサンドボックスアプリケーションが、恐らくはユーザが知らない特定の実行構成で、何百メガバイトを含むよう非常に大きいとき、クライアント１０４ａに対して必要なコンテンツを効率的に展開する能力は、かなりの帯域幅と時間を節約することができ、クライアント１０４ａをセキュアにする一助になり得る。
【００１８】
プロセッサ１１８、１２２は、例えばマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、あるいはプログラム命令を解釈及び／又は実行及び／又はデータを処理するように構成される任意の他のデジタル又はアナログ回路を備えてよい。一部の実施形態において、プロセッサ１１８、１２２は、メモリ１２０、１２４内に格納されるプログラム命令を解釈及び／又は実行及び／又はデータを処理し得る。メモリ１２０、１２４は、アプリケーションメモリ、システムメモリ又はその双方の一部又は全体として構成されてよい。メモリ１２０、１２４は、１つ又は複数のメモリモジュールを保持及び／又は収納するように構成される任意のシステム、デバイス又は装置を含み得る。各メモリモジュールは、プログラム命令及び／又はデータをある時間期間の間保持するように構成される任意のシステム、デバイス又は装置（例えばコンピュータ読取可能媒体）を含み得る。クライアント分配アプリケーション１１２及びホスト分配アプリケーション１０８のための命令、ロジック又はデータは、プロセッサ１１８、１２２による実行のためにメモリ１２０、１２４内に存在してもよい。
【００１９】
図２は、システム１００により共有イメージとクライアント上のコンテンツの間の相違を決定するのに使用され得る、共有イメージの例示の実施形態と、コンテンツの例示の実施形態を示す。
【００２０】
一実施形態において、分配の共有イメージは、共有イメージファイルビュー２０２を含み得る。このような実施形態において、システム１００は、ファイルごとに、ホスト共有イメージのオペレーションに必要なコンテンツが、クライアント上に存在するか否かを判断することができる。別の実施形態において、分配の共有イメージは、共有イメージクラスタビュー２０４を含み得る。このような実施形態において、システム１００は、ファイルのクラスタごとに、ホスト共有イメージのオペレーションに必要なコンテンツがクライアント上に存在するか否かを判断することができる。そのようなクラスタは、ディスク上又はメモリ内に複数のそのようなファイルが存在すると、ファイルのセットを含み得る。一実施形態において、オペレーティングシステムのパーティションは、そのような複数のクラスタに分割され得る。共有イメージファイルビュー２０２又は共有イメージクラスタビュー２０４はそれぞれ、図１のホスト共有イメージ１１０を実装することができる。
【００２１】
一実施形態において、所与のクライアント上のクライアントコンテンツは、コンテンツファイルビュー２３６を含み得る。このような実施形態において、システム１００は、ファイルごとに、ホスト共有イメージのオペレーションに必要なコンテンツがクライアント上に存在するか否かを判断することができる。別の実施形態において、所与のクライアント上のクライアントコンテンツは、コンテンツクラスタビュー２５８を含み得る。このような実施形態において、システム１００は、ファイルのクラスタごとに、ホスト共有イメージのオペレーションに必要なコンテンツがクライアント上に存在するか否かを決定することができる。そのようなクラスタは、ディスク上又はメモリ内に複数のそのようなファイルが存在すると、ファイルのセットを含み得る。コンテンツファイルビュー２３６又はコンテンツクラスタビュー２５８はそれぞれ、図１のクライアントコンテンツ１１４を実装することができる。
【００２２】
例示の目的として、共有イメージファイルビュー２０２は、特定のファイルがクライアント上に構築される共有イメージ内に存在するとき、「\dir\filel.txt」２０６、「\dir\file2.exe」２０８、「\dir2\filel.txt」２１０、「\dir3\file4.cfg」２１２、「\dir3\file5.dat」２１４、「\dir3\file6.sys」２１６、「\dir3\filel.txt」２１８及び「\dir4\filel.txt」２２０のように、特定のディレクトリに置かれる特定のファイルのエントリを含んでよい。したがって、共有イメージファイルビュー２０２は、イメージが、同じ名前を有するが異なるディレクトリに置かれたファイルを使用し得るということを特定し得る。同じ名前を有する上記ファイルのコンテンツは、同じであっても異なっていてもよい。
【００２３】
コンテンツファイルビュー２３６は、共有イメージファイルビュー２０２と同様の方法で編成されてよいが、クライアント１０４ａのようなクライアントの例示のコンテンツを示す。コンテンツファイルビュー２３６は、特定のコンテンツがクライアント内に存在するとき、「\dir\file2.exe」２３８、「\dir2\file3.bat」２４０、「\dir3\file4a.cfg」２４２、「\dir3\file5.dat」２４４、「\dir4\file.txt」２４６、「\dir4\file2.exe」２４８、「\dir23\file9.txt」２５０、「\dir23\filel0.txt」２５２、「\dir79\file7.db」２５４及び「\dir79\filel0.txt」２５６のように、特定のディレクトリ内に置かれる特定のコンテンツのエントリを含み得る。
【００２４】
したがって、コンテンツファイルビュー２３６は、複数のディレクトリに置かれる同じ名前の複数のファイル、共有イメージファイルビュー２０２内に現れるよりも多く又は少ないファイル、共有イメージファイルビュー２０２内に現れているものと同じ名前を有する幾つかのファイル並びに共有イメージファイルビュー２０２内に現れており、かつ共有イメージファイルビュー２０２内のディレクトリと同じ又は異なるディレクトリにも更に現れているものと同じ名前を有する幾つかのファイルを識別することができる。しかしながら、名前により又は名前とディレクトリにより、コンテンツファイルビュー２３６と共有イメージファイルビュー２０２との間で対応する幾つかのファイルは、実際には、異なるコンテンツを有していることがあり、あるいは同じファイルの異なるバージョンである可能性もある。共有イメージファイルビュー２０２内又はコンテンツファイルビュー２３６内に現れる幾つかのファイルは、同じ名前であっても、異なるコンテンツを有していることがあり、あるいは同じファイルの異なるバージョンの可能性もある。同様に、ディレクトリによってはコンテンツファイルビュー２３６と共有イメージファイルビュー２０２との間で対応しない幾つかのファイルが、同じコンテンツを含むこともある。さらに、コンテンツファイルビュー２３６と共有イメージファイルビュー２０２の間で名前によって対応しない幾つかのファイルであっても、同じコンテンツを含むこともある。
【００２５】
例示の目的として、共有イメージクラスタビュー２０４は、メモリ内又はディスク上の特定のアドレスにおいて特定のクラスタを含んでもよい。そのような各クラスタは、所与の命令セット、コード又は他のコンテンツを含んでもよく、ここでは、参照の容易性及び説明の目的で、「クラスタｎ」としてラベル付けされる。さらに、特定のアドレスは、参照の容易性及び説明の目的で、所与のメモリアドレスにつき「ｘＮＮＮ」として参照され得る。図２で与えられる実際のメモリアドレスは単なる例示であり、所与の実施形態では、サイズにより変化し得る。共有イメージクラスタビュー２０４は、例えばアドレスx0000  ２２２において「cluster1」を、アドレスx0001  ２２４ａにおいて「cluster2」を、アドレスx0002  ２２６において「cluster3」を、アドレスx0003  ２２８において「cluster4」を、アドレスx0004  ２２４ｂにおいて「cluster2」を、アドレスx0005  ２２４ｃにおいて「cluster2」を、アドレスx0006  ２３０において「cluster5」を、アドレスx0007  ２３２において「cluster6」を、アドレスx0008  ２３４において「cluster７」を含み得る。各クラスタは、例えばデータの範囲、ファイルの複数の部分又は他のデジタル情報を含むことがある。
【００２６】
コンテンツクラスタビュー２５８は、共有イメージクラスタビュー２０４と同様に編成され得るが、クライアント１０４ａのようなクライアントの例示のコンテンツを示す。コンテンツクラスタビュー２５８は、特定のクラスタがクライアント内のメモリ内に存在するかディスク上に存在するとき、特定のアドレスに置かれる特定のクラスタのエントリを含んでもよく、そのようなエントリは、例えばアドレスx0000  ２６０の「cluster４」、アドレスx0001  ２６２の「cluster8」、アドレスx0002  ２６４の「cluster9」、アドレスx0003  ２６６の「cluster10」、アドレスx0004  ２６８の「cluster11」、アドレスx0005  ２７０の「cluster7」、アドレスx0006  ２７２の「cluster7」、アドレスx0007  ２７４の「cluster12」、アドレスx0008  ２７６の「cluster11」、アドレスx0009  ２７８の「cluster6」、アドレスx000A  ２８０の「cluster3」、アドレスx000B  ２８２の「cluster2」及びアドレスx000C  ２８４の「cluster2」である。
【００２７】
したがって、コンテンツクラスタビュー２５８は、複数のアドレスに置かれる同じ識別情報を有する複数のクラスタ、共有イメージクラスタビュー２０４内に現れるものより多く又は少ないクラスタ、共有イメージクラスタビュー２０４内に現れているものと同じ識別情報を有する幾つかのクラスタ並びに共有イメージクラスタビュー２０４内に現れており、かつ共有イメージクラスタビュー２０４内のアドレス位置と同じ又は異なるアドレス位置に更に現れているものと同じ識別情報を有する幾つかのクラスタを識別することができる。
【００２８】
クライアント分配アプリケーション１１２及びホスト分配アプリケーション１０８は、例えば共有イメージファイルビュー２０２とコンテンツファイルビュー２３６との間又は共有イメージクラスタビュー２０４とコンテンツクラスタビュー２５８との間の相違を決定するように構成され得る。そのような相違は、ファイル又はクラスタの基礎となるコンテンツの実際の識別情報を決定することを要し、異なるディレクトリ内又は異なるメモリアドレスに置かれたコンテンツの合致を要することがある。クライアント分配アプリケーション１１２及びホスト分配アプリケーション１０８は、任意の適切な手法でそのような相違を決定するように構成され得る。例えばクライアント分配アプリケーション１１２又はホスト分配アプリケーション１０８は、共有イメージファイルビュー２０２、コンテンツファイルビュー２３６、共有イメージクラスタビュー２０４及びコンテンツクラスタビュー２５８内のエントリを、当該エントリの１つ又は複数の一意の識別子を決定することによって識別するように構成され得る。一実施形態において、クライアント分配アプリケーション１１２又はホスト分配アプリケーション１０８は、そのようなエントリの１つ又は複数のハッシュあるいはデジタル署名を計算するように構成され得る。情報のハッシュ又はデジタル署名を生成する任意の適切なアルゴリズム又は他の手法を使用してもよい。更なる実施形態では、クライアント分配アプリケーション１１２又はホスト分配アプリケーション１０８は、エントリごとに単一のハッシュ又はデジタル署名を算出するように構成されてよい。更に別の実施形態では、クライアント分配アプリケーション１１２又はホスト分配アプリケーション１０８は、エントリごとに複数のハッシュ又はデジタル署名を算出するように構成されてもよい。
【００２９】
図３は、共有イメージビュー内の各エントリについて複数のハッシュ又はデジタル署名を決定するため、クライアント分配アプリケーション又はホスト分配アプリケーション１０８のオペレーションから得られるハッシュテーブルの例示の実施形態を示す図である。例えば共有イメージファイルハッシュテーブル３０２は、クライアント分配アプリケーション１１２又はホスト分配アプリケーション１０８が、共有イメージファイルビュー２０２内の各エントリの２つのハッシュ又はデジタル署名を決定した結果であってよい。共有イメージファイルハッシュテーブル３０２は、共有イメージファイルビュー２０２からの各ファイルに対応するフィールド３０６、結果として得られる第１のハッシュ３０８及び結果として得られる第２のハッシュ３１０を含み得る。図３に示される例示の実施形態において、「file1.txt」の結果は、どの「file1.txt」が評価されるかに応じて異なるハッシュ値、すなわち「１２３」と「９８６」又は「７７３」と「２６９」、となり得る。コンテンツファイルビュー２３６のようなコンテンツビューに対応する同様のテーブルを構築することができ、このテーブルは、見つかったファイル及び関連する決定されたハッシュ及び署名についてのエントリを含み得る。
【００３０】
共有イメージクラスタハッシュテーブル３０４は、クライアント分配アプリケーション１１２又はホスト分配アプリケーション１０８が共有イメージクラスタビュー２０４内の各エントリの２つのハッシュ又はデジタル署名を決定した結果であってよい。共有イメージクラスタハッシュテーブル３０４は、共有イメージクラスタビュー２０４からの各クラスタアドレスに対応するフィールド３１２と、結果として得られる第１のハッシュ３１４及び結果として得られる第２のハッシュ３１６を含み得る。コンテンツクラスタビュー２５８のようなコンテンツビューに対応する同様のテーブルを構築することができ、このテーブルは、見つかったファイル及び関連する決定されたハッシュ及び署名についてのエントリを含み得る。
【００３１】
図４は、効率的な仮想マシン展開のためのシステム１００の例示の動作の図である。クライアント分配アプリケーション１１２又はホスト分配アプリケーション１０８は、ホスト共有イメージ１１０の共有イメージ１１６が、クライアント１０４ａに対してローカルに構築されるべきことを決定する。（１）において、クライアント分配アプリケーション１１２は、クライアント１０４ａに、そのコンテンツを求めて、例えばクライアントコンテンツ１１４内のコンテンツを求めてクエリすることができる。（２）において、クライアントコンテンツ１１４からコンテンツを取り出した後、（３）において、クライアント分配アプリケーション１１２は、その結果をソートして評価し、コンテンツハッシュテーブル４０２内に分類することができる。コンテンツハッシュテーブル４０２は、図３の共有イメージファイルハッシュテーブル３０２又は共有イメージクラスタハッシュテーブル３０４と同じ又は同様の方法で実装され得る。ホスト分配アプリケーション１０８は、ホスト共有イメージ１１０から、該ホスト共有イメージ１１０の要素のファイル、ディレクトリ及び関連するハッシュを識別する共有イメージハッシュテーブル４０４を構築することができる。共有イメージハッシュテーブル４０４は、図３の共有イメージファイルハッシュテーブル３０２又は共有イメージクラスタハッシュテーブル３０４と同じ又は同様の方法で実装され得る。
【００３２】
一実施形態では、（４）において、ホスト分配アプリケーション１０８は、共有イメージハッシュテーブル４０４をクライアント分配アプリケーション１１２に送信してよく、クライアント分配アプリケーション１１２は、（５）において、ホスト共有イメージ１１０のどの部分がクライアントコンテンツ１１４内で利用可能でないかを判断することができる。クライアント分配アプリケーション１１２は、コンテンツハッシュテーブル４０２と共有イメージハッシュテーブル４０４のエントリ間の差分（delta  difference）を決定することにより、そのような判断を行うことができる。別の実施形態では、（４）において、クライアント分配アプリケーション１１２が、コンテンツハッシュテーブル４０２をホスト分配アプリケーション１０８に送信し、（５）において、ホスト分配アプリケーション１０８が、例えばコンテンツハッシュテーブル４０２と共有イメージハッシュテーブル４０４のエントリ間の差分を決定することにより、ホスト共有イメージ１１０のどの部分がクライアントコンテンツ１１４内で利用可能でないかを判断してもよい。
【００３３】
（６）において、クライアント１０４ａ上で利用可能でない、欠けているコンテンツが、クライアント分配アプリケーション１１２によって要求され得る。（７）において、必要なコンテンツが、クライアント分配アプリケーション１１２にプッシュされるか配信され、あるいは他の形で送信され得る。そのようなコンテンツは、例えばライブラリ又はインストーラで配信されてよい。送信されるコンテンツには、クライアント１０４ａで利用可能でない部分のみが含まれ得る。（８）において、共有イメージ１１６が、クライアント分配アプリケーション１１２により、クライアント１０４ａ上のクライアントコンテンツ１１４内で既に利用可能なコンテンツ及びホスト分配アプリケーション１０８から受信したコンテンツを使用して構築され得る。
【００３４】
図５は、共有イメージ１１６を構築するためのファイルが利用可能であるかどうかを、ホスト共有イメージ１１０のコンテンツ及び構造を示す共有イメージファイルハッシュテーブル５０４と、クライアントコンテンツ１１４のコンテンツを示すコンテンツハッシュテーブル５０２とを比較することにより決定する、システム１００の例示の動作を示す図である。共有イメージファイルハッシュテーブル５０４及びコンテンツハッシュテーブル５０２は、クライアント分配アプリケーション１１２とホスト分配アプリケーション１０８の一方又は組合せによって構築され、比較されてよい。コンテンツハッシュテーブル５０２と共有イメージファイルハッシュテーブル５０４の比較により、差分テーブル５０６が得られ、この差分テーブル５０６を使用して、クライアント１０４ａにおけるインストールのために、どのコンテンツ又はファイルをクライアント分配アプリケーション１１２にダウンロードすべきかを決定することができる。
【００３５】
共有イメージファイルハッシュテーブル５０４及びコンテンツハッシュテーブル５０２はそれぞれ、ファイル名と、位置又はディレクトリと、１つ又は複数のハッシュのためのフィールドを含むことができる。コンテンツハッシュテーブル５０２は、クライアント１０４ａ上のエントリのアドレス又は位置についてのイメージマップのためのフィールドを含んでよい。共有イメージファイルハッシュテーブル５０４は、該共有イメージファイルハッシュテーブル５０４内の所与のエントリが、コンテンツハッシュテーブル５０２内で見つかったかどうかを示し、かつ見つかった場合には、クライアント１０４ａ上の対応するコンテンツが見つかったアドレスを示すフィールドを含んでよい。そのようなアドレスは、クライアント分配アプリケーション１１２によって、クライアント１０４ａ上に既に存在しているコンテンツから共有イメージ１１６を構築するときに使用され得る。
【００３６】
差分テーブル５０６は、クライアント１０４ａ上のクライアントコンテンツ１１４内に存在しないホスト共有イメージ１１０内の要素についてのファイル名、ディレクトリ及びハッシュのためのフィールドを含むことができる。ホスト分配アプリケーション１０８は、クライアント分配アプリケーション１１２へのダウンロードのためにそのような要素を選択してよく、クライアント分配アプリケーション１１２は、そのような要素を−共有イメージファイルハッシュテーブル５０４とコンテンツハッシュテーブル５０２内に既に存在している識別された要素との組み合わせで−使用して、共有イメージ１１６を構築してもよい。
【００３７】
例えば共有イメージファイルハッシュテーブル５０４は、共有イメージ１１６のコンテンツが、ディレクトリ「\dir\」及び「\dir3\」に置かれたハッシュ「１２３」及び「９８６」を有するテキスト「file1.txt」、ディレクトリ「\dir\」に置かれたハッシュ「４５６」及び「６５６」を有するテキスト「file2.exe」、ディレクトリ「\dir2\」に置かれたハッシュ「７８９」及び「２７３」を有するテキスト「file3.bat」、ディレクトリ「\dir3\」に置かれたハッシュ「９８７」及び「１４２」を有するテキスト「file4.cfg」、ディレクトリ「\dir3\」に置かれたハッシュ「６５４」及び「６２９」を有するテキスト「file5.dat」、ディレクトリ「\dir\」に置かれたハッシュ「１２８」及び「１９７」を有するテキスト「file7.db」、ディレクトリ「\dir4\」に置かれたハッシュ「７７３」及び「２６９」を有するテキスト「file1.txt」、ディレクトリ「\dir\」に置かれたハッシュ「３２１」及び「０１３」を有するテキスト「file6.sys」を含み得ることを示している。
【００３８】
一実施形態において、クライアント分配アプリケーション１１２は、コンテンツハッシュテーブル５０２内の所与のエントリについて第１のハッシュを実行するが、その所与のエントリについての第２のハッシュを直ぐには実行しないように構成され得る。クライアント１０４ａ上に可能性ある多数のファイルがあるとすると、そのようなファイルの各々に対してハッシュ計算を実行することは、計算リソースの観点でコストがかかることである。クライアント分配アプリケーション１１２は、所与のエントリの第１のハッシュが、共有イメージファイルハッシュテーブル５０４からの要素に合致する場合に、その所与のエントリについて第２のハッシュを実行するように構成され得る。ハッシュ値又はデジタル署名を生成する手法は、第１のハッシュと第２のハッシュとの間で異なっていてよい。複数のそのようなハッシュオペレーションを、同じ入力データに実行することにより、ハッシュの衝突に起因するエラーを回避することができる。したがって、クライアント分配アプリケーション１１２は、コンテンツハッシュテーブル５０２を生成することができる。コンテンツハッシュテーブル５０２は、ディレクトリ「\dir23\」の「file9.txt」について、第１のハッシュ「１４４」、ディレクトリ「\dir23\」の「file10.txt」について、第１のハッシュ「１２３」、ディレクトリ「\dir4\」の「file1.txt」について、第１のハッシュ「７７３」、ディレクトリ「\dir\」及び「\dir4\」の「file2.exe」について、第１のハッシュ「４５６」、ディレクトリ「\dir2\」の「file3.bat」について、第１のハッシュ「７８９」、ディレクトリ「\dir3\」の「file4a.cfg」について、第１のハッシュ「９８７」、ディレクトリ「\dir3\」の「file5.dat」について、第１のハッシュ「２０１」、ディレクトリ「\dir79\」の「file7.db」について、第１のハッシュ「１２８」、ディレクトリ「\dir79\」の「file10.txt」について、第１のハッシュ「６６３」を含む。
【００３９】
クライアント分配アプリケーション１１２は、共有イメージファイルハッシュテーブル５０４の各要素を、コンテンツハッシュテーブル５０２からのエントリと比較して、合致があるかどうかを判断することができる。そのような合致は、ファイルが既にクライアント１０４ａ上に存在しており、ダウンロードするか、あるいは他の形で伝送する必要がないことを示す。合致がある場合、クライアント分配アプリケーション１１２は、コンテンツがクライアント１０４ａ上に存在するので、これらのコンテンツのアドレス、位置又はイメージマップパラメータを示すことができる。そのようなアドレスを、コンテンツハッシュテーブル５０２内で与えることができる。合致しない場合は、見つからなかったエントリが差分テーブル５０６へ配置されることになる。共有イメージファイルハッシュテーブル５０４のエントリの合致についてのスキャンが完了した後、クライアント分配アプリケーション１１２は、差分テーブル５０６のコンテンツを受け取り、共有イメージファイルハッシュテーブル５０４内で識別される合致したコンテンツとともに、クライアント１０４ａ上の共有イメージ１１６を構築することができる。
【００４０】
例えばディレクトリ「\dir23\」の「"filel0.txt」について、第１のハッシュ「１２３」を有するコンテンツハッシュテーブル５０２内の要素は、少なくともあらかじめ、ディレクトリ「\dir\」及び「\dir3\」の「filel.txt」について、第１のハッシュ「１２３」を有する共有イメージファイルハッシュテーブル５０４の要素に合致することがある。このような合致は、ファイル名及びディレクトリが合致しなくとも、第１のハッシュ値「１２３」が合致することに基づいて行われてよい。第１のハッシュ値が合致すると、クライアント分配アプリケーション１１２は、コンテンツハッシュテーブル５０２の上記要素の第２のハッシュ値「９８６」を決定してよく、これは、共有イメージファイルハッシュテーブル５０４の要素に合致する。したがって、共有イメージファイルハッシュテーブル５０４のディレクトリ「\dir\」及び「\dir3\」の「filel.txt」についての要素は、クライアント１０４ａ上に既に存在しており、ディレクトリ「\dir23\」の「"filel0.txt」として取得可能であると決定され得る。この例は、ホスト共有イメージ１１０を作成するのに使用されるファイルが、複数の場所で現れるが、一度しか検索する必要がないという状況を示している。さらに、この要素は差分テーブル５０６内に記録されなくてよい。加えて、要素の位置は、該要素がクライアント１０４ａ内に存在するとき、共有イメージファイルハッシュテーブル５０４又はコンテンツハッシュテーブル５０２内に記録されるか、各テーブル内の対応するエントリ間に提供されるリンクに記録され得る。したがって、クライアント分配アプリケーション１１２が共有イメージ１１６を作成するとき、利用可能なファイル「file1.txt」の正しい位置及び正しいバージョンへの参照が作成され得る。共有イメージ１１６を構築する際に、クライアント分配アプリケーション１１２は、「file10.txt」をリネームするか、必要に応じて複数の場所にコピーしてもよい。
【００４１】
別の例において、ディレクトリ「\dir4\」の「file1.txt」について、第１のハッシュ「７７３」を有する要素が、少なくともあらかじめ、ディレクトリ「\dir4\」の「filel.txt」について第１のハッシュ「７７３」を有する共有イメージファイルハッシュテーブル５０４の要素に合致することがある。このような合致は、第１のハッシュ値「７７３」が合致することに基づいて行われ、ファイル名も合致する。第１のハッシュ値が合致すると、クライアント分配アプリケーション１１２は、コンテンツハッシュテーブル５０２の上記要素について第２のハッシュ値「４４３」を決定してよく、これは、共有イメージファイルハッシュテーブル５０４の対応する要素の第２のハッシュ値に合致しない。この例は、ファイルは適切に名前を付けられているが、実際の所望のファイルとは異なるコンテンツを有するという状況を表す。さらに、この例は、ファイルが、第１のハッシュの合致テストには通るが、第２のハッシュの合致テストには失敗するという状況を表しており、この状況は、ハッシュの衝突条件を示している。共有イメージファイルハッシュテーブル５０４の要素について、コンテンツハッシュテーブル５０２内で他の合致が見つからないことがある。したがって、共有イメージファイルハッシュテーブル５０４のディレクトリ「\dir4\」の「file1.txt」についての要素は見つからないと決定され、これは、差分テーブル５０６に追加され得る。
【００４２】
更に別の例において、共有イメージファイルハッシュテーブル５０４の全ての要素についてコンテンツハッシュテーブル５０２をスキャンした後、ディレクトリ「\dir23\」において第１のハッシュ「１４４」を有する「file9.txt」は、共有イメージファイルハッシュテーブル５０４からのいずれの要素とも合致しないことがある。したがって、そのような要素は、共有イメージ１１６の構築には関連しないものとして無視され得る。
【００４３】
図６は、共有イメージ１１６を構築するためのクラスタが利用可能であるかどうかを、ホスト共有イメージ１１０のコンテンツ及び構造を示す共有イメージクラスタハッシュテーブル６０４と、クライアントコンテンツ１１４のコンテンツを示すコンテンツハッシュテーブル６０２とを比較することにより決定する、システム１００の例示の動作を示す図である。共有イメージクラスタハッシュテーブル６０４及びコンテンツハッシュテーブル６０２は、クライアント分配アプリケーション１１２とホスト分配アプリケーション１０８の一方又は組合せによって構築され、比較されてよい。コンテンツハッシュテーブル６０２と共有イメージクラスタハッシュテーブル６０４の比較により、差分テーブル６０６が得られ、この差分テーブル６０６を使用して、クライアント１０４ａにおけるインストールのために、どのコンテンツ又はクラスタをクライアント分配アプリケーション１１２にダウンロードすべきかを決定することができる。
【００４４】
共有イメージクラスタハッシュテーブル６０４及びコンテンツハッシュテーブル６０２はそれぞれ、１つ又は複数のハッシュのためのフィールドを含むことができる。コンテンツハッシュテーブル６０２は、クライアント１０４ａ上のエントリのアドレス又は位置についてのイメージマップのためのフィールドを含んでよい。共有イメージクラスタハッシュテーブル６０４は、該共有イメージクラスタハッシュテーブル６０４内の所与のエントリが、コンテンツハッシュテーブル６０２内で見つかったかどうかを示し、かつ見つかった場合には、クライアント１０４ａ上で対応するコンテンツが見つかったアドレスを示すフィールドを含んでよい。そのようなアドレスは、クライアント分配アプリケーション１１２によって、クライアント１０４ａ上に既に存在しているコンテンツから共有イメージ１１６を構築するときに使用され得る。さらに、共有イメージクラスタハッシュテーブル６０４は、所与のクラスタの識別情報の指示を含んでもよい。加えて、共有イメージクラスタハッシュテーブル６０４は、クラスタエントリが存在するホスト共有イメージ１１０のイメージアドレスの指示を含むことができる。
【００４５】
差分テーブル６０６は、クラスタがホスト共有イメージ１１０内に存在するとき、そのクラスタについてのクラスタ識別情報、ハッシュ及びイメージアドレスのためのフィールドを含むことができる。差分テーブル６０６内のエントリは、クライアント１０４ａ上のクライアントコンテンツ１１４内に存在しないホスト共有イメージ１１０のクラスタを反映することができる。ホスト分配アプリケーション１０８は、クライアント分配アプリケーション１１２へのダウンロードのためにそのような要素を選択してよく、クライアント分配アプリケーション１１２は、そのような要素を−共有イメージクラスタハッシュテーブル６０４とコンテンツハッシュテーブル６０２内に既に存在している識別された要素との組み合わせで−使用して、共有イメージ１１６を構築してもよい。
【００４６】
例えば共有イメージクラスタハッシュテーブル６０４は、共有イメージ１１６のコンテンツが、イメージアドレスx0000に置かれたハッシュ「１２３」及び「２９７」を有する「cluster1」、イメージアドレスx0001、x0004及びx0005に置かれたハッシュ「４５６」及び「７０９」を有する「cluster2」、イメージアドレスx0002に置かれたハッシュ「７８９」及び「５６７」を有する「cluster3」、イメージアドレスx0003に置かれたハッシュ「９８７」及び「４８４」を有する「cluster4」、イメージアドレスx0006に置かれたハッシュ「６５４」及び「２１２」を有する「cluster5」、イメージアドレスx0007に置かれたハッシュ「３２１」及び「６６３」を有する「cluster6」、イメージアドレスx0008に置かれたハッシュ「１３５」及び「２８０」を有する「cluster7」を含み得ることを示している。
【００４７】
一実施形態において、クライアント分配アプリケーション１１２は、コンテンツハッシュテーブル６０２内の所与のエントリについて第１のハッシュを実行するが、その所与のエントリについて第２のハッシュを直ぐには実行しないように構成されてよい。クライアント１０４ａ上に可能性ある多数のファイルがあるとすると、そのような各クラスタに対してハッシュ計算を実行することは、計算リソースの観点でコストがかかることである。クライアント分配アプリケーション１１２は、所与のエントリの第１のハッシュが、共有イメージクラスタハッシュテーブル６０４からの要素に合致する場合に、その所与のエントリについて第２のハッシュを実行するように構成され得る。ハッシュ値又はデジタル署名を生成する手法は、第１のハッシュと第２のハッシュとの間で異なっていてよい。複数のそのようなハッシュオペレーションを、同じ入力データに実行することにより、ハッシュの衝突に起因するエラーを回避することができる。したがって、クライアント分配アプリケーション１１２は、コンテンツハッシュテーブル６０２を生成することができ、コンテンツハッシュテーブル６０２は、アドレスx0000のクラスタについて第１のハッシュ「９８７」、アドレスx0001のクラスタについて第１のハッシュ「６２３」、アドレスx0002のクラスタについて第１のハッシュ「６８４」、アドレスx0003のクラスタについて第１のハッシュ「９２３」、アドレスx0004及びx0008のクラスタについて第１のハッシュ「１２３」、アドレスx0005及びx0006のクラスタについて第１のハッシュ「１３５」、アドレスx0007のクラスタについて第１のハッシュ「４５６」、アドレスx0009のクラスタについて第１のハッシュ「３２１」、アドレスx000Aのクラスタについて第１のハッシュ「７８９」、アドレスx000B及びx000Cのクラスタについて第１のハッシュ「４５６」を含む。
【００４８】
クライアント分配アプリケーション１１２は、共有イメージクラスタハッシュテーブル６０４の各要素を、コンテンツハッシュテーブル６０２からの要素と比較して、合致があるかどうかを判断することができる。そのような合致は、クラスタが既にクライアント１０４ａ上に存在しており、ダウンロードするか、あるいは他の形で伝送する必要がないことを示す。合致がある場合、クライアント分配アプリケーション１１２は、コンテンツがクライアント１０４ａ上に存在するので、これらのコンテンツのアドレス、位置又はイメージマップパラメータを示すことができる。そのようなアドレスを、コンテンツハッシュテーブル６０２内で与えることができる。合致しない場合は、見つからなかったエントリは、ホスト共有イメージ１１０内に存在するときのクラスタのアドレスとともに、差分テーブル６０６へ配置されてよい。共有イメージクラスタハッシュテーブル６０４のエントリの合致について、スキャンが完了した後、クライアント分配アプリケーション１１２は、差分テーブル６０６のコンテンツを受け取り、共有イメージクラスタハッシュテーブル６０４内で識別される合致したコンテンツとともに、クライアント１０４ａ上の共有イメージ１１６を構築することができる。
【００４９】
例えばアドレスx0000において第１のハッシュ「９８７」を有するコンテンツハッシュテーブル６０２内の要素は、少なくともあらかじめ、共有イメージクラスタハッシュテーブル６０４のアドレスx0003における「cluster4」についての要素に合致することがある。このような合致は、第１のハッシュ値「９８７」が合致することに基づいて行われてよい。第１のハッシュ値が合致すると、クライアント分配アプリケーション１１２は、コンテンツハッシュテーブル６０２の上記要素について第２のハッシュ値「４８４」を決定してよく、これは、共有イメージクラスタハッシュテーブル６０４の要素に合致する。したがって、共有イメージクラスタハッシュテーブル６０４のアドレスx0003における「cluster4」の要素は、クライアント１０４ａ上のアドレスx0000で既に存在していると決定される。さらに、この要素は差分テーブル５０６内に記録されない。加えて、要素の位置は、該要素がクライアント１０４ａ内に存在するとき、共有イメージクラスタハッシュテーブル６０４又はコンテンツハッシュテーブル６０２内に記録されるか、各テーブル内の対応するエントリ間に提供されるリンクで記録され得る。したがって、クライアント分配アプリケーション１１２が共有イメージ１１６を作成するとき、利用可能なクラスタの正しい位置及び正しいバージョンへの参照が作成され得る。共有イメージ１１６を構築する際に、クライアント分配アプリケーション１１２は、必要に応じてこのクラスタを複数の場所にコピーしてもよい。
【００５０】
[００４７]別の例において、アドレスx0004及びx0008において第１のハッシュ「１２３」を有するコンテンツハッシュテーブル６０２内の要素が、少なくともあらかじめ、共有イメージクラスタハッシュテーブル６０４のアドレスx0000においてハッシュ「１２３」を有する「cluster1」についての要素に合致することがある。このような合致は、第１のハッシュ値「１２３」が合致することに基づいて行われる。第１のハッシュ値が合致すると、クライアント分配アプリケーション１１２は、コンテンツハッシュテーブル６０２の上記要素について第２のハッシュ値「６６０」を決定するが、これは、共有イメージクラスタハッシュテーブル６０４の対応する要素の第２のハッシュ値「２６９」に合致しない。この例は、クラスタが、第１のハッシュの合致テストは通るが、第２のハッシュの合致テストには失敗するという状況を表しており、この状況は、ハッシュの衝突条件を示している。共有イメージクラスタハッシュテーブル６０４の要素について、コンテンツハッシュテーブル６０２内で他の合致が見つからないことがある。したがって、共有イメージクラスタハッシュテーブル６０４のアドレスx0000においてハッシュ「１２３」を有する「cluster1」の要素は見つからないと決定され、これは、差分テーブル５０６に追加され得る。
【００５１】
更に別の例において、共有イメージクラスタハッシュテーブル６０４の全ての要素についてコンテンツハッシュテーブル６０２をスキャンした後、アドレスx0001に置かれたハッシュ「６２３」を有するコンテンツハッシュテーブル６０２の要素が、共有イメージクラスタハッシュテーブル６０４からのいずれの要素とも合致しないことがある。したがって、そのような要素は、共有イメージ１１６の構築には関連しないものとして無視され得る。
【００５２】
図７は、効率的な仮想マシン展開のための方法７００の例示の実施形態である。ステップ７０５において、１つ又は複数のクライアントに分配すべき共有イメージが決定され得る。そのような共有イメージはネットワークのサーバ上に存在し得る。共有イメージには、仮想マシン、アンチマルウェアソリューション、セキュアアプリケーション又は他のソフトウェアのインストレーションが含まれ得る。共有イメージのコンテンツは、例えばファイル又はクラスタに応じてコンテンツを分類又は識別することによって決定され得る。ステップ７１０において、それぞれ他に対して異なる２つのハッシュオペレーションが、コンテンツの各々に対して実行され得る。ハッシュオペレーションの結果と、名前又はディレクトリのようなコンテンツの識別情報と、共有イメージのイメージマップ内のアドレスとが作成されてテーブル内に記録され得る。複数の同一のコンポーネントをテーブル内の単一のエントリへまとめてもよく、このエントリは、テーブル内で示される複数の関連する位置を有する。
【００５３】
ステップ７１５において、ターゲットクライアント上のコンテンツが決定され得る。そのようなコンテンツには、例えばファイル又はクラスタが含まれ得る。ステップ７２０において、ステップ７１０において実行された第１のハッシュオペレーションに相当する第１のハッシュオペレーションが、コンテンツの各々決定された部分に対して実行され得る。一実施形態では、そのような第１のハッシュオペレーションのみが、ステップ７１５において実行され得る。別の実施形態では、ステップ７１０において実行される第２のハッシュオペレーションに相当する第２のハッシュオペレーションが、ステップ７１５において実行されてもよい。これらのハッシュオペレーションの結果と、名前又はディレクトリのようなコンテンツの識別情報と、コンテンツがクライアント上に存在するときのコンテンツのイメージマップ内のアドレス、ディレクトリ若しくは位置が、テーブルへ記録され得る。複数の同一のコンポーネントを、テーブル内の単一のエントリへまとめてもよく、このエントリは、テーブル内で示される複数の関連する位置を有する。
【００５４】
ステップ７２５において、共有イメージ内の一意の要素ごとに、ターゲットクライアントのコンテンツが、その一意の要素との合致を求めて検索され得る。ステップ７２５〜７５０が、その共有イメージ内のそのような一意の要素のそれぞれに対して繰り返し実行され得る。合致する要素を探すための検索は、ハッシュ結果の比較によって実行されてもよい。さらに、合致する要素を探す検索は、ステップ７０５〜７２０において生成されるテーブルの比較によって実行されてもよい。一実施形態において、そのような検索は、第１のハッシュオペレーションの結果との合致を探す検索を含んでもよい。ステップ７３０において、共有イメージと、ターゲットクライアントに存在しているコンテンツとの間にいずれかの合致が存在するかどうかを決定する。合致が存在しない場合、方法７００はステップ７４５に進む。いずれかの合致が存在する場合、そのような合致のそれぞれについて、ステップ７３５において、第２のハッシュオペレーションが、ターゲットクライアント上のコンテンツの合致する要素に対して実行され得る。第２のハッシュオペレーションは、ステップ７１０で実行される第２のハッシュオペレーションに相当し得る。ステップ７４０において、第２のハッシュオペレーションを、ターゲットクライアントのコンテンツ及び共有イメージの要素に対して実行した結果が合致するかどうかを判断する。合致する場合、方法７００はステップ７５０に進む。合致しない場合、方法７００はステップ７４５に進む。
【００５５】
ステップ７４５において、共有イメージからの一意の要素が、該要素が置かれている共有イメージのアドレス又は他の位置とともに、差分テーブルに記録され得る。ステップ７５０において、共有イメージ内の一意の要素の全てが、ターゲットクライアントのコンテンツとの合致について評価されたかどうかを決定することができる。一意の要素の全てが評価されていない場合は、方法７００は、異なる一意の要素についてステップ７２５に進む。全ての一意の要素が評価された場合は、方法７００はステップ７５５に進む。
【００５６】
ステップ７５５において、差分テーブルは、共有イメージのうち、ターゲットクライアント上で利用可能でない全ての要素のリストを含む。差分テーブルからの要素がターゲットクライアントに送信され得る。
【００５７】
ステップ７６０において、共有イメージは、ターゲットクライアント上のローカルイメージへと再構築され得る。そのようなローカルイメージを構築することには、元の共有イメージから受け取った要素及びターゲットクライアント上で既に利用可能な部分を正しい位置及び場所にコピーするか、実行することが含まれ得る。
【００５８】
方法７００は、図１〜図６のシステム又は方法７００を実施するよう動作可能な任意の他のシステムを使用して実施されてよい。したがって、方法７００の好適な開始点及び方法７００を備えるステップの順序は、選択される実装形態に依存し得る。一部の実施形態では、幾つかのステップを、任意選択で省略するか、繰り返すか又は組み合わせてもよい。特定の実施形態において、方法７００は部分的又は完全に、コンピュータ読取可能媒体に具現化されるソフトウェアで実装されてよい。
【００５９】
本開示の目的では、コンピュータ読取可能媒体は、データ及び／又は命令を、ある期間の間保持することができる、任意の手段又は手段の集合を含み得る。コンピュータ読取可能媒体には、限定ではないが、直接アクセスストレージデバイス（例えばハードディスクドライブ又はフロッピー（登録商標）ディスク）、順次アクセスストレージデバイス（例えばテープディスクドライブ）、コンパクトディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ）及び／又はフラッシュメモリのような記憶媒体；非一時的媒体；並びに／あるいは上記の任意の組合せが含まれ得る。
【００６０】
本開示は詳細に説明されているが、特許請求の範囲によって定義されるような本開示の精神及び範囲から逸脱することなく、本開示に対して様々な変更、置換及び代替を行うことが可能であることを理解されたい。
【図１】
2015527686.tif 000003
【図２】
2015527686.tif 000004
【図３】
2015527686.tif 000005
【図４】
2015527686.tif 000006
【図５】
2015527686.tif 000007
【図６】
2015527686.tif 000008
【図７】
2015527686.tif 000009
【手続補正書】
【提出日】平成27年3月9日(2015.3.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
共有イメージの分配のための方法であって、
プロセッサ上で実行するソフトウェアモジュールにより、ソフトウェアの共有イメージの複数の要素に適用された第１のハッシュオペレーションの結果を決定するステップと、
プロセッサ上で実行するソフトウェアモジュールにより、クライアントの複数のコンテンツに適用された前記第１のハッシュオペレーションの結果を決定するステップと、
プロセッサ上で実行するソフトウェアモジュールにより、前記イメージの前記複数の要素に適用された前記第１のハッシュオペレーションの結果を、前記クライアントの前記複数のコンテンツに適用された前記第１のハッシュオペレーションの結果と比較するステップと、
前記イメージの前記複数の要素に適用された前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに適用された前記第１のハッシュオペレーションの結果との比較に基づいて、プロセッサ上で実行するソフトウェアモジュールにより、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能でない１つ又は複数の要素を決定するステップと、
プロセッサ上で実行するソフトウェアモジュールにより、前記クライアント上で利用可能でないと決定された前記イメージの要素について、前記クライアントへの伝送を実行させるステップと
を含む、方法。
【請求項２】
プロセッサ上で実行するソフトウェアモジュールにより、前記イメージの前記複数の要素に適用された第２のハッシュオペレーションの結果を決定するステップと、
前記イメージの前記複数の要素に適用された前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに適用された前記第１のハッシュオペレーションの結果との比較に基づいて、プロセッサ上で実行するソフトウェアモジュールにより、前記クライアントの前記複数のコンテンツに適用された前記第２のハッシュオペレーションの結果を決定するステップと、
プロセッサ上で実行するソフトウェアモジュールにより、前記イメージの前記複数の要素に適用された前記第２のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに適用された前記第２のハッシュオペレーションの結果を比較するステップと、
を更に含み、
前記イメージの前記複数の要素のうち、前記クライアント上で利用可能でない１つ又は複数の要素を決定するステップは、前記イメージの前記複数の要素に適用された前記第２のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに適用された前記第２のハッシュオペレーションの結果との比較に更に基づく、
請求項１に記載の方法。
【請求項３】
前記第１のハッシュオペレーションの結果は、前記イメージの前記複数の要素のファイル及び前記クライアントの前記複数のコンテンツのファイルから得られる、
請求項１又は２のいずれかに記載の方法。
【請求項４】
前記イメージの前記複数の要素及び前記クライアントの前記複数のコンテンツは、クラスタに応じて決定される、
請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記イメージの前記複数の要素に適用された前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに適用された前記第１のハッシュオペレーションの結果との比較に基づいて、プロセッサ上で実行するソフトウェアモジュールにより、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能な１つ又は複数の要素を決定するステップ、
を更に含み、
前記クライアント上で利用可能でないと決定された前記イメージの要素の伝送は、前記クライアント上で利用可能であると決定された前記イメージの要素を除外する、
請求項１乃至４のいずれかに記載の方法。
【請求項６】
ソフトウェアの前記共有イメージの前記複数の要素に適用された第１のハッシュオペレーションの結果を決定するステップは、ソフトウェアの前記共有イメージの前記複数の要素に適用された前記第１のハッシュオペレーションの結果を受け取ることを含み、
前記クライアントの前記複数のコンテンツに適用された前記第１のハッシュオペレーションの結果を決定するステップは、前記クライアントの前記複数のコンテンツに適用される前記第１のハッシュオペレーションを実行することを含む、
請求項１乃至５のいずれかに記載の方法。
【請求項７】
前記イメージの前記複数の要素に適用された前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに適用された前記第１のハッシュオペレーションの結果との比較に基づいて、プロセッサ上で実行するソフトウェアモジュールにより、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能な１つ又は複数の要素を決定するステップと、
プロセッサ上で実行するソフトウェアモジュールにより、前記クライアント上で利用可能であると決定された前記イメージの要素の位置を決定するステップと、
プロセッサ上で実行するソフトウェアモジュールにより、伝送される前記イメージの要素と、前記クライアント上で利用可能であると決定された前記イメージの要素とを使用して、前記クライアント上で前記イメージの再構築を実行させるステップであって、当該再構築を実行させることは、前記クライアント上で利用可能であると決定された前記イメージの要素を前記イメージへコピーさせることを含む、ステップと、
を更に含む、請求項１乃至６のいずれかに記載の方法。
【請求項８】
前記イメージの前記複数の要素に対する前記第１のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第１のハッシュオペレーションの結果との比較に基づいて、プロセッサ上で実行するソフトウェアモジュールにより、前記イメージの前記複数の要素のうち、前記クライアント上で利用可能な１つ又は複数の要素を決定するステップと、
プロセッサ上で実行するソフトウェアモジュールにより、前記クライアント上で利用可能であると決定された前記イメージの要素の位置を決定するステップと、
を更に含む。請求項１乃至７のいずれかに記載の方法。
【請求項９】
少なくとも１つのマシン読取可能記憶媒体であって、当該媒体上に担持されるコンピュータ実行可能命令を備え、該命令はプロセッサにより読み取り可能であり、該命令は読み取られて実行されると、前記プロセッサに請求項１乃至８のいずれかに記載の方法を実行させる、少なくとも１つのマシン読取可能記憶媒体。
【請求項１０】
共有イメージの分配のためのシステムであって、
プロセッサと、
該プロセッサに通信可能に結合される少なくとも１つのコンピュータ読取可能媒体と、
該コンピュータ読取可能媒体内に存在する１つ又は複数の命令を備える分配モジュールであって、前記命令は、プロセッサ上で実行されると、該プロセッサに請求項１乃至８のいずれかに記載の方法を実行させるように構成される、分配モジュールと、
を備えるシステム。
【請求項１１】
請求項１乃至８のいずれかに記載の方法を実行するための手段を備える、共有イメージの分配のためのシステム。
【国際調査報告】
2015527686.tif 000010
2015527686.tif 000011