JP6218835B2 - 効率的な仮想マシン展開方法 - Google Patents

効率的な仮想マシン展開方法 Download PDF

Info

Publication number
JP6218835B2
JP6218835B2 JP2015531352A JP2015531352A JP6218835B2 JP 6218835 B2 JP6218835 B2 JP 6218835B2 JP 2015531352 A JP2015531352 A JP 2015531352A JP 2015531352 A JP2015531352 A JP 2015531352A JP 6218835 B2 JP6218835 B2 JP 6218835B2
Authority
JP
Japan
Prior art keywords
client
image
content
elements
hash
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015531352A
Other languages
English (en)
Other versions
JP2015527686A (ja
Inventor
ハント,サイモン
Original Assignee
マカフィー, エルエルシー
マカフィー, エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マカフィー, エルエルシー, マカフィー, エルエルシー filed Critical マカフィー, エルエルシー
Publication of JP2015527686A publication Critical patent/JP2015527686A/ja
Application granted granted Critical
Publication of JP6218835B2 publication Critical patent/JP6218835B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、一般にコンピュータセキュリティに関し、より具体的には、効率的な仮想マシン展開方法に関する。
コンピュータ及び他の電子デバイスに対するマルウェアの感染は、非常に煩わしく、検出及び修復が難しい。アンチマルウェアのソリューションは、ソフトウェアがコンピューティングシステムに有害であると判断するのに、その評価されるソフトウェアに対する悪質なコード又はファイルのシグネチャの合致を要することがある。アンチマルウェアソリューションは、マルウェアを示すものについてクライアント又はエンドポイントをスキャンするか、マルウェアの感染についてクライアント又はエンドポイントを修復することを含むことがある。データファイル、マルウェアのシグネチャ、復旧アプリケーション又は他のアンチマルウェアコンポーネントがエンドポイントにダウンロードされることがある。
電子デバイス上での実行用のアプリケーションは、これらのアプリケーションを実行する前にインストレーションを必要とする。一部のアプリケーションは、単にコードをターゲットの電子デバイスにコピーすることによってインストールされ得るが、他のアプリケーションは、インストールアプリケーションを使用することがある。インストールアプリケーションは典型的に、所与のアプリケーションを実行するのに使用される修正及びインストールを実行するのに使用される、インストールソースファイルとコードを含み得る。インストールアプリケーションは、ファイルを解凍し、フォルダをターゲットの電子デバイス上に作成し、フォルダ内に資料を格納し、他の方法でアプリケーションを実行用に利用可能にする。
一実施形態において、共有イメージの分配のための方法は、ソフトウェアインストールのイメージの複数の要素を決定するステップと、クライアントの複数のコンテンツを決定するステップと、イメージの複数の要素に対して第1のハッシュオペレーションを実行するステップと、クライアントの複数のコンテンツに対して第1のハッシュオペレーションを実行するステップと、イメージの複数の要素に対する第1のハッシュオペレーションの結果を、クライアントの複数のコンテンツに対する第1のハッシュオペレーションの結果と比較するステップと、イメージの複数の要素に対する第1のハッシュオペレーションの結果と、クライアントの複数のコンテンツに対する第1のハッシュオペレーションの結果との比較に基づいて、イメージの複数の要素のうち、クライアント上で利用可能でない1つ又は複数の要素を決定するステップと、クライアント上で利用可能でないと決定されたイメージの要素の選択的伝送を実行させるステップとを含む。
別の実施形態において、製品は、コンピュータ読取可能媒体と、コンピュータ読取可能媒体上に担持されるコンピュータ実行可能命令とを備える。命令は、プロセッサにより読み取り可能である。命令は、読み取られて実行されると、プロセッサに、ソフトウェアインストールのイメージの複数の要素を決定させ、クライアントの複数のコンテンツを決定させ、イメージの複数の要素に対して第1のハッシュオペレーションを実行させ、クライアントの複数のコンテンツに対して第1のハッシュオペレーションを実行させ、イメージの複数の要素に対する第1のハッシュオペレーションの結果を、クライアントの複数のコンテンツに対する第1のハッシュオペレーションの結果と比較させ、イメージの複数の要素に対する第1のハッシュオペレーションの結果と、クライアントの複数のコンテンツに対する第1のハッシュオペレーションの結果との比較に基づいて、イメージの複数の要素のうち、クライアント上で利用可能でない1つ又は複数の要素を決定させ、クライアント上で利用可能でないと決定されたイメージの要素の選択的伝送を実行させる。
更に別の実施形態において、共有イメージの分配のためのシステムは、ソフトウェアインストールのイメージの複数の要素を決定する手段と、クライアントの複数のコンテンツを決定する手段と、イメージの複数の要素に対して第1のハッシュオペレーションを実行する手段と、クライアントの複数のコンテンツに対して第1のハッシュオペレーションを実行する手段と、イメージの複数の要素に対する第1のハッシュオペレーションの結果を、クライアントの複数のコンテンツに対する第1のハッシュオペレーションの結果と比較する手段と、イメージの複数の要素に対する第1のハッシュオペレーションの結果と、クライアントの複数のコンテンツに対する第1のハッシュオペレーションの結果との比較に基づいて、イメージの複数の要素のうち、クライアント上で利用可能でない1つ又は複数の要素を決定する手段と、クライアント上で利用可能でないと決定されたイメージの要素の選択的伝送を実行させる手段とを備える。
本発明並びにその特徴及び利点のより完全な理解のために、以下の説明は添付の図面とともに参照される。
効率的な仮想マシン展開のための例示のシステムを示す図である。 システムにより共有イメージとクライアント上のコンテンツの間の相違を決定するのに使用され得る、共有イメージの例示の実施形態と、コンテンツの例示の実施形態を示す図である。 複数のハッシュ又はデジタル署名を決定することにより得られるハッシュテーブルの例示の実施形態を示す図である。 効率的な仮想マシン展開のためのシステムの例示の動作を示す図である。 共有イメージを構築するためのファイルが利用可能であるかどうかを決定するシステムの例示の動作を示す図である。 共有イメージを構築するためクラスタが利用可能であるかどうかを決定するシステムの例示の動作を示す図である。 効率的な仮想マシン展開のための方法の例示の実施形態を示す図である。
図1は、効率的な仮想マシン展開のための例示のシステム100を示す図である。そのような展開は、ホスト102のようなホストと、クライアント104のような1つ又は複数のクライアントとの間でなされる。例示のシステム100は仮想マシンの展開を考慮するが、任意の適切なソフトウェアインストールがシステム100によって展開されてよい。システム100は、所与のクライアント104上にインストールされたコンポーネントと、ホスト102上のマスタイメージから利用可能なコンポーネントとの間の相違を決定するように構成され得る。システム100は、任意の適切な手法によりそのような決定を行うように構成されてよい。さらに、システム100は、所与のクライアント104上に未だインストールされていない全てのコンポーネント、あるいは他の形で利用可能にされていない全てのコンポーネントを提供するように構成されてもよい。
ホスト102は、モジュール、サーバ、コンピュータ、他の電子デバイス又はデジタルとアナログ回路の任意の適切な組み合わせのような任意の適切な機構によって実装され得る。一実施形態において、ホスト102は、メモリ120に結合されるプロセッサ118を含んでもよい。ホスト102は、プロセッサ118による実行のために、メモリ120内に命令を含むことができる。別の実施形態において、プロセッサ118及びメモリ120は、別の電子デバイス上に存在してもよく、ホスト102をモジュールとして実行してもよい。
一実施形態において、ホスト102は、クライアント104へのソフトウェアの分配を制御するように構成されるホスト分配アプリケーション108を含んでもよい。他の実施形態において、ホスト分配アプリケーション108は、別の適切な電子デバイス上に存在するか、その電子デバイス上で動作してよい。ホスト分配アプリケーション108は、任意の適切なモジュール、スクリプト、実行可能ファイル、アプリケーション又は本明細書で説明されるように構成される他のデジタルエンティティによって実装され得る。
一実施形態において、ホスト102は、ホスト共有イメージ110を含んでもよく、ホスト共有イメージ110は、クライアント104にインストールされるソフトウェアインストールのマスタイメージを含み得る。他の実施形態において、ホスト共有イメージ110は、別の適切な電子デバイス上に存在して、ホスト分配アプリケーションに通信可能に結合されてもよい。ホスト共有イメージ110は、ファイル、命令又は他のデジタル情報の任意の適切なセットによって実装され得る。ホスト共有イメージ110は、例えばオペレーティングシステムのような仮想マシンインストール、仮想展開環境、サンドボックス又はセキュアブラウザのようなセキュアアプリケーションを構成するファイル又は他の情報のセットを含み得る。ホスト共有イメージ110は、複数のクライアント104の間にインストールされ、かつ同じ方法で構成されるべき、インストレーションを含み得る。さらに、ホスト共有イメージ110は、非常に大きいことがあり、多メガバイト又はギガバイトの情報を含むことがある。例えばマルウェアを含む可能性があるプログラム、スクリプト又は他のコンテンツが安全に実行されることを可能にするサンドボックスアプリケーションは、クライアント上で実行するのに必要な500メガバイト近くの情報を含むことがある。単一のホスト共有イメージ110が図示されているが、ホスト102は多くのそのようなイメージを含んでもよく、そのようなイメージには、異なるオペレーティングシステムのような、特定の方法で構成される様々なコンテンツを有するインストレーション又はディスクイメージが含まれ得る。そのようなイメージを使用して、例えば様々なクライアント104上に共通の仮想マシン実行イメージを確立してもよい。
ホスト分配アプリケーション108は、ホスト共有イメージ110を、任意の適切な手法又は機構を通してクライアント104へ分配するように構成され得る。一実施形態において、ホスト分配アプリケーション108は、ネットワーク106を通してクライアント104へ通信可能に結合されるか、クライアント104と通信し得る。ネットワーク106は、ワイドエリアネットワーク、ローカルエリアネットワーク、無線ネットワーク、インターネット、イントラネット又はこれらの任意の組合せ等によるような、任意の適切な手法によって実装されてよい。
各クライアント104は、コンピュータ、ラップトップ、モバイルデバイス又はサーバのような、任意の適切な電子デバイスによって実装され得る。クライアント104の例示の実装がクライアント104aに図示されているが、各クライアント104は他のクライアントからの実装において変化し得る。クライアント104aは、クライアントコンテンツ114に通信可能に結合されるクライアント分配アプリケーション112を含んでよい。クライアント分配アプリケーション112は、任意の適切な手法で、あるいはモジュール、ライブラリ、実行可能ファイル、アプリケーション、スクリプト又は他のデジタルエンティティのような任意の適切な機構により実装され得る。クライアントコンテンツは、1つ若しくは複数のファイル、ライブラリ又はクライアント104a上に存在する他のデジタルエンティティを含み得る。クライアント104aは、メモリ124に結合されたプロセッサ122を含み得る。プロセッサ122は、メモリ124によって実行される命令を含んでよい。そのような命令は、クライアント分配アプリケーション112のオペレーションのための命令を含み得る。
クライアント104aがクライアント分配アプリケーション112を含むように図示され、ホスト102がホスト分配アプリケーション108を含むように図示されているが、クライアント分配アプリケーション112及びホスト分配アプリケーション108はそれぞれ、説明されるオペレーションを実行する間、任意の適切な電子デバイス上に存在するか、そのような電子デバイス上で動作してもよい。さらに、クライアント分配アプリケーション112及びホスト分配アプリケーション108は、同じ又は同様のモジュール、アプリケーション、ライブラリ又は実行可能ファイルで実装されてもよい。
クライアント分配アプリケーション112は、ホスト分配アプリケーション108と通信するように構成され得る。クライアント分配アプリケーション112、ホスト分配アプリケーション108又はその双方の組合せは、クライアントコンテンツ114のどの部分が、クライアント104a上へのホスト共有イメージ110をインストールするのに使用されるか、並びにダウンロードするにはどの部分が必要かを決定するように構成され得る。クライアント分配アプリケーション112、ホスト分配アプリケーション108又はその双方の組合せは、任意の適切な手法又は機構でそのような決定を行うように構成され得る。
クライアント104a上に既に存在するクライアントコンテンツ114の部分又はダウンロードするのに必要なこれらの部分が決定されると、ホスト分配アプリケーション108は、クライアント分配アプリケーション112が共有イメージ116をクライアント104a上にインストールするのに十分な追加のファイル又はコンテンツを送信するように構成され得る。ホスト分配アプリケーション108は、クライアント分配アプリケーション112が実行するよう、追加のファイル又はコンテンツによりインストールパッケージを準備することができる。一実施形態において、クライアント104a上にまだ存在しないファイル又はコンテンツのみが、ホスト分配アプリケーション108によって送信されてもよい。別の実施形態において、共有イメージ116は、メモリ内にホスト共有イメージ110の構成及び構造を再現してもよい。ホスト分配アプリケーション108は、複数のクライアント104上においてホスト共有イメージ110の共有イメージの作成されるプロセスを再現するように構成され得る。
クライアント104a上において共有イメージ116を構築するのに必要なファイルを決定するプロセスは、要求に応じて実行されてよく、かなりの帯域幅を節約し得る。例えばサンドボックスアプリケーションが、疑わしいファイル、スクリプト又は他のコンテンツを実行するのに必要である場合、クライアント104a上ではまだ利用可能でないサンドボックスアプリケーションの必要な部分のみを決定して、クライアント104aに伝送することができる。そのようなサンドボックスアプリケーションが、恐らくはユーザが知らない特定の実行構成で、何百メガバイトを含むよう非常に大きいとき、クライアント104aに対して必要なコンテンツを効率的に展開する能力は、かなりの帯域幅と時間を節約することができ、クライアント104aをセキュアにする一助になり得る。
プロセッサ118、122は、例えばマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、あるいはプログラム命令を解釈及び/又は実行及び/又はデータを処理するように構成される任意の他のデジタル又はアナログ回路を備えてよい。一部の実施形態において、プロセッサ118、122は、メモリ120、124内に格納されるプログラム命令を解釈及び/又は実行及び/又はデータを処理し得る。メモリ120、124は、アプリケーションメモリ、システムメモリ又はその双方の一部又は全体として構成されてよい。メモリ120、124は、1つ又は複数のメモリモジュールを保持及び/又は収納するように構成される任意のシステム、デバイス又は装置を含み得る。各メモリモジュールは、プログラム命令及び/又はデータをある時間期間の間保持するように構成される任意のシステム、デバイス又は装置(例えばコンピュータ読取可能媒体)を含み得る。クライアント分配アプリケーション112及びホスト分配アプリケーション108のための命令、ロジック又はデータは、プロセッサ118、122による実行のためにメモリ120、124内に存在してもよい。
図2は、システム100により共有イメージとクライアント上のコンテンツの間の相違を決定するのに使用され得る、共有イメージの例示の実施形態と、コンテンツの例示の実施形態を示す。
一実施形態において、分配の共有イメージは、共有イメージファイルビュー202を含み得る。このような実施形態において、システム100は、ファイルごとに、ホスト共有イメージのオペレーションに必要なコンテンツが、クライアント上に存在するか否かを判断することができる。別の実施形態において、分配の共有イメージは、共有イメージクラスタビュー204を含み得る。このような実施形態において、システム100は、ファイルのクラスタごとに、ホスト共有イメージのオペレーションに必要なコンテンツがクライアント上に存在するか否かを判断することができる。そのようなクラスタは、ディスク上又はメモリ内に複数のそのようなファイルが存在すると、ファイルのセットを含み得る。一実施形態において、オペレーティングシステムのパーティションは、そのような複数のクラスタに分割され得る。共有イメージファイルビュー202又は共有イメージクラスタビュー204はそれぞれ、図1のホスト共有イメージ110を実装することができる。
一実施形態において、所与のクライアント上のクライアントコンテンツは、コンテンツファイルビュー236を含み得る。このような実施形態において、システム100は、ファイルごとに、ホスト共有イメージのオペレーションに必要なコンテンツがクライアント上に存在するか否かを判断することができる。別の実施形態において、所与のクライアント上のクライアントコンテンツは、コンテンツクラスタビュー258を含み得る。このような実施形態において、システム100は、ファイルのクラスタごとに、ホスト共有イメージのオペレーションに必要なコンテンツがクライアント上に存在するか否かを決定することができる。そのようなクラスタは、ディスク上又はメモリ内に複数のそのようなファイルが存在すると、ファイルのセットを含み得る。コンテンツファイルビュー236又はコンテンツクラスタビュー258はそれぞれ、図1のクライアントコンテンツ114を実装することができる。
例示の目的として、共有イメージファイルビュー202は、特定のファイルがクライアント上に構築される共有イメージ内に存在するとき、「\dir\filel.txt」206、「\dir\file2.exe」208、「\dir2\filel.txt」210、「\dir3\file4.cfg」212、「\dir3\file5.dat」214、「\dir3\file6.sys」216、「\dir3\filel.txt」218及び「\dir4\filel.txt」220のように、特定のディレクトリに置かれる特定のファイルのエントリを含んでよい。したがって、共有イメージファイルビュー202は、イメージが、同じ名前を有するが異なるディレクトリに置かれたファイルを使用し得るということを特定し得る。同じ名前を有する上記ファイルのコンテンツは、同じであっても異なっていてもよい。
コンテンツファイルビュー236は、共有イメージファイルビュー202と同様の方法で編成されてよいが、クライアント104aのようなクライアントの例示のコンテンツを示す。コンテンツファイルビュー236は、特定のコンテンツがクライアント内に存在するとき、「\dir\file2.exe」238、「\dir2\file3.bat」240、「\dir3\file4a.cfg」242、「\dir3\file5.dat」244、「\dir4\file.txt」246、「\dir4\file2.exe」248、「\dir23\file9.txt」250、「\dir23\filel0.txt」252、「\dir79\file7.db」254及び「\dir79\filel0.txt」256のように、特定のディレクトリ内に置かれる特定のコンテンツのエントリを含み得る。
したがって、コンテンツファイルビュー236は、複数のディレクトリに置かれる同じ名前の複数のファイル、共有イメージファイルビュー202内に現れるよりも多く又は少ないファイル、共有イメージファイルビュー202内に現れているものと同じ名前を有する幾つかのファイル並びに共有イメージファイルビュー202内に現れており、かつ共有イメージファイルビュー202内のディレクトリと同じ又は異なるディレクトリにも更に現れているものと同じ名前を有する幾つかのファイルを識別することができる。しかしながら、名前により又は名前とディレクトリにより、コンテンツファイルビュー236と共有イメージファイルビュー202との間で対応する幾つかのファイルは、実際には、異なるコンテンツを有していることがあり、あるいは同じファイルの異なるバージョンである可能性もある。共有イメージファイルビュー202内又はコンテンツファイルビュー236内に現れる幾つかのファイルは、同じ名前であっても、異なるコンテンツを有していることがあり、あるいは同じファイルの異なるバージョンの可能性もある。同様に、ディレクトリによってはコンテンツファイルビュー236と共有イメージファイルビュー202との間で対応しない幾つかのファイルが、同じコンテンツを含むこともある。さらに、コンテンツファイルビュー236と共有イメージファイルビュー202の間で名前によって対応しない幾つかのファイルであっても、同じコンテンツを含むこともある。
例示の目的として、共有イメージクラスタビュー204は、メモリ内又はディスク上の特定のアドレスにおいて特定のクラスタを含んでもよい。そのような各クラスタは、所与の命令セット、コード又は他のコンテンツを含んでもよく、ここでは、参照の容易性及び説明の目的で、「クラスタn」としてラベル付けされる。さらに、特定のアドレスは、参照の容易性及び説明の目的で、所与のメモリアドレスにつき「xNNN」として参照され得る。図2で与えられる実際のメモリアドレスは単なる例示であり、所与の実施形態では、サイズにより変化し得る。共有イメージクラスタビュー204は、例えばアドレスx0000 222において「cluster1」を、アドレスx0001 224aにおいて「cluster2」を、アドレスx0002 226において「cluster3」を、アドレスx0003 228において「cluster4」を、アドレスx0004 224bにおいて「cluster2」を、アドレスx0005 224cにおいて「cluster2」を、アドレスx0006 230において「cluster5」を、アドレスx0007 232において「cluster6」を、アドレスx0008 234において「cluster7」を含み得る。各クラスタは、例えばデータの範囲、ファイルの複数の部分又は他のデジタル情報を含むことがある。
コンテンツクラスタビュー258は、共有イメージクラスタビュー204と同様に編成され得るが、クライアント104aのようなクライアントの例示のコンテンツを示す。コンテンツクラスタビュー258は、特定のクラスタがクライアント内のメモリ内に存在するかディスク上に存在するとき、特定のアドレスに置かれる特定のクラスタのエントリを含んでもよく、そのようなエントリは、例えばアドレスx0000 260の「cluster4」、アドレスx0001 262の「cluster8」、アドレスx0002 264の「cluster9」、アドレスx0003 266の「cluster10」、アドレスx0004 268の「cluster11」、アドレスx0005 270の「cluster7」、アドレスx0006 272の「cluster7」、アドレスx0007 274の「cluster12」、アドレスx0008 276の「cluster11」、アドレスx0009 278の「cluster6」、アドレスx000A 280の「cluster3」、アドレスx000B 282の「cluster2」及びアドレスx000C 284の「cluster2」である。
したがって、コンテンツクラスタビュー258は、複数のアドレスに置かれる同じ識別情報を有する複数のクラスタ、共有イメージクラスタビュー204内に現れるものより多く又は少ないクラスタ、共有イメージクラスタビュー204内に現れているものと同じ識別情報を有する幾つかのクラスタ並びに共有イメージクラスタビュー204内に現れており、かつ共有イメージクラスタビュー204内のアドレス位置と同じ又は異なるアドレス位置に更に現れているものと同じ識別情報を有する幾つかのクラスタを識別することができる。
クライアント分配アプリケーション112及びホスト分配アプリケーション108は、例えば共有イメージファイルビュー202とコンテンツファイルビュー236との間又は共有イメージクラスタビュー204とコンテンツクラスタビュー258との間の相違を決定するように構成され得る。そのような相違は、ファイル又はクラスタの基礎となるコンテンツの実際の識別情報を決定することを要し、異なるディレクトリ内又は異なるメモリアドレスに置かれたコンテンツの合致を要することがある。クライアント分配アプリケーション112及びホスト分配アプリケーション108は、任意の適切な手法でそのような相違を決定するように構成され得る。例えばクライアント分配アプリケーション112又はホスト分配アプリケーション108は、共有イメージファイルビュー202、コンテンツファイルビュー236、共有イメージクラスタビュー204及びコンテンツクラスタビュー258内のエントリを、当該エントリの1つ又は複数の一意の識別子を決定することによって識別するように構成され得る。一実施形態において、クライアント分配アプリケーション112又はホスト分配アプリケーション108は、そのようなエントリの1つ又は複数のハッシュあるいはデジタル署名を計算するように構成され得る。情報のハッシュ又はデジタル署名を生成する任意の適切なアルゴリズム又は他の手法を使用してもよい。更なる実施形態では、クライアント分配アプリケーション112又はホスト分配アプリケーション108は、エントリごとに単一のハッシュ又はデジタル署名を算出するように構成されてよい。更に別の実施形態では、クライアント分配アプリケーション112又はホスト分配アプリケーション108は、エントリごとに複数のハッシュ又はデジタル署名を算出するように構成されてもよい。
図3は、共有イメージビュー内の各エントリについて複数のハッシュ又はデジタル署名を決定するため、クライアント分配アプリケーション又はホスト分配アプリケーション108のオペレーションから得られるハッシュテーブルの例示の実施形態を示す図である。例えば共有イメージファイルハッシュテーブル302は、クライアント分配アプリケーション112又はホスト分配アプリケーション108が、共有イメージファイルビュー202内の各エントリの2つのハッシュ又はデジタル署名を決定した結果であってよい。共有イメージファイルハッシュテーブル302は、共有イメージファイルビュー202からの各ファイルに対応するフィールド306、結果として得られる第1のハッシュ308及び結果として得られる第2のハッシュ310を含み得る。図3に示される例示の実施形態において、「file1.txt」の結果は、どの「file1.txt」が評価されるかに応じて異なるハッシュ値、すなわち「123」と「986」又は「773」と「269」、となり得る。コンテンツファイルビュー236のようなコンテンツビューに対応する同様のテーブルを構築することができ、このテーブルは、見つかったファイル及び関連する決定されたハッシュ及び署名についてのエントリを含み得る。
共有イメージクラスタハッシュテーブル304は、クライアント分配アプリケーション112又はホスト分配アプリケーション108が共有イメージクラスタビュー204内の各エントリの2つのハッシュ又はデジタル署名を決定した結果であってよい。共有イメージクラスタハッシュテーブル304は、共有イメージクラスタビュー204からの各クラスタアドレスに対応するフィールド312と、結果として得られる第1のハッシュ314及び結果として得られる第2のハッシュ316を含み得る。コンテンツクラスタビュー258のようなコンテンツビューに対応する同様のテーブルを構築することができ、このテーブルは、見つかったファイル及び関連する決定されたハッシュ及び署名についてのエントリを含み得る。
図4は、効率的な仮想マシン展開のためのシステム100の例示の動作の図である。クライアント分配アプリケーション112又はホスト分配アプリケーション108は、ホスト共有イメージ110の共有イメージ116が、クライアント104aに対してローカルに構築されるべきことを決定する。(1)において、クライアント分配アプリケーション112は、クライアント104aに、そのコンテンツを求めて、例えばクライアントコンテンツ114内のコンテンツを求めてクエリすることができる。(2)において、クライアントコンテンツ114からコンテンツを取り出した後、(3)において、クライアント分配アプリケーション112は、その結果をソートして評価し、コンテンツハッシュテーブル402内に分類することができる。コンテンツハッシュテーブル402は、図3の共有イメージファイルハッシュテーブル302又は共有イメージクラスタハッシュテーブル304と同じ又は同様の方法で実装され得る。ホスト分配アプリケーション108は、ホスト共有イメージ110から、該ホスト共有イメージ110の要素のファイル、ディレクトリ及び関連するハッシュを識別する共有イメージハッシュテーブル404を構築することができる。共有イメージハッシュテーブル404は、図3の共有イメージファイルハッシュテーブル302又は共有イメージクラスタハッシュテーブル304と同じ又は同様の方法で実装され得る。
一実施形態では、(4)において、ホスト分配アプリケーション108は、共有イメージハッシュテーブル404をクライアント分配アプリケーション112に送信してよく、クライアント分配アプリケーション112は、(5)において、ホスト共有イメージ110のどの部分がクライアントコンテンツ114内で利用可能でないかを判断することができる。クライアント分配アプリケーション112は、コンテンツハッシュテーブル402と共有イメージハッシュテーブル404のエントリ間の差分(delta difference)を決定することにより、そのような判断を行うことができる。別の実施形態では、(4)において、クライアント分配アプリケーション112が、コンテンツハッシュテーブル402をホスト分配アプリケーション108に送信し、(5)において、ホスト分配アプリケーション108が、例えばコンテンツハッシュテーブル402と共有イメージハッシュテーブル404のエントリ間の差分を決定することにより、ホスト共有イメージ110のどの部分がクライアントコンテンツ114内で利用可能でないかを判断してもよい。
(6)において、クライアント104a上で利用可能でない、欠けているコンテンツが、クライアント分配アプリケーション112によって要求され得る。(7)において、必要なコンテンツが、クライアント分配アプリケーション112にプッシュされるか配信され、あるいは他の形で送信され得る。そのようなコンテンツは、例えばライブラリ又はインストーラで配信されてよい。送信されるコンテンツには、クライアント104aで利用可能でない部分のみが含まれ得る。(8)において、共有イメージ116が、クライアント分配アプリケーション112により、クライアント104a上のクライアントコンテンツ114内で既に利用可能なコンテンツ及びホスト分配アプリケーション108から受信したコンテンツを使用して構築され得る。
図5は、共有イメージ116を構築するためのファイルが利用可能であるかどうかを、ホスト共有イメージ110のコンテンツ及び構造を示す共有イメージファイルハッシュテーブル504と、クライアントコンテンツ114のコンテンツを示すコンテンツハッシュテーブル502とを比較することにより決定する、システム100の例示の動作を示す図である。共有イメージファイルハッシュテーブル504及びコンテンツハッシュテーブル502は、クライアント分配アプリケーション112とホスト分配アプリケーション108の一方又は組合せによって構築され、比較されてよい。コンテンツハッシュテーブル502と共有イメージファイルハッシュテーブル504の比較により、差分テーブル506が得られ、この差分テーブル506を使用して、クライアント104aにおけるインストールのために、どのコンテンツ又はファイルをクライアント分配アプリケーション112にダウンロードすべきかを決定することができる。
共有イメージファイルハッシュテーブル504及びコンテンツハッシュテーブル502はそれぞれ、ファイル名と、位置又はディレクトリと、1つ又は複数のハッシュのためのフィールドを含むことができる。コンテンツハッシュテーブル502は、クライアント104a上のエントリのアドレス又は位置についてのイメージマップのためのフィールドを含んでよい。共有イメージファイルハッシュテーブル504は、該共有イメージファイルハッシュテーブル504内の所与のエントリが、コンテンツハッシュテーブル502内で見つかったかどうかを示し、かつ見つかった場合には、クライアント104a上の対応するコンテンツが見つかったアドレスを示すフィールドを含んでよい。そのようなアドレスは、クライアント分配アプリケーション112によって、クライアント104a上に既に存在しているコンテンツから共有イメージ116を構築するときに使用され得る。
差分テーブル506は、クライアント104a上のクライアントコンテンツ114内に存在しないホスト共有イメージ110内の要素についてのファイル名、ディレクトリ及びハッシュのためのフィールドを含むことができる。ホスト分配アプリケーション108は、クライアント分配アプリケーション112へのダウンロードのためにそのような要素を選択してよく、クライアント分配アプリケーション112は、そのような要素を−共有イメージファイルハッシュテーブル504とコンテンツハッシュテーブル502内に既に存在している識別された要素との組み合わせで−使用して、共有イメージ116を構築してもよい。
例えば共有イメージファイルハッシュテーブル504は、共有イメージ116のコンテンツが、ディレクトリ「\dir\」及び「\dir3\」に置かれたハッシュ「123」及び「986」を有するテキスト「file1.txt」、ディレクトリ「\dir\」に置かれたハッシュ「456」及び「656」を有するテキスト「file2.exe」、ディレクトリ「\dir2\」に置かれたハッシュ「789」及び「273」を有するテキスト「file3.bat」、ディレクトリ「\dir3\」に置かれたハッシュ「987」及び「142」を有するテキスト「file4.cfg」、ディレクトリ「\dir3\」に置かれたハッシュ「654」及び「629」を有するテキスト「file5.dat」、ディレクトリ「\dir\」に置かれたハッシュ「128」及び「197」を有するテキスト「file7.db」、ディレクトリ「\dir4\」に置かれたハッシュ「773」及び「269」を有するテキスト「file1.txt」、ディレクトリ「\dir\」に置かれたハッシュ「321」及び「013」を有するテキスト「file6.sys」を含み得ることを示している。
一実施形態において、クライアント分配アプリケーション112は、コンテンツハッシュテーブル502内の所与のエントリについて第1のハッシュを実行するが、その所与のエントリについての第2のハッシュを直ぐには実行しないように構成され得る。クライアント104a上に可能性ある多数のファイルがあるとすると、そのようなファイルの各々に対してハッシュ計算を実行することは、計算リソースの観点でコストがかかることである。クライアント分配アプリケーション112は、所与のエントリの第1のハッシュが、共有イメージファイルハッシュテーブル504からの要素に合致する場合に、その所与のエントリについて第2のハッシュを実行するように構成され得る。ハッシュ値又はデジタル署名を生成する手法は、第1のハッシュと第2のハッシュとの間で異なっていてよい。複数のそのようなハッシュオペレーションを、同じ入力データに実行することにより、ハッシュの衝突に起因するエラーを回避することができる。したがって、クライアント分配アプリケーション112は、コンテンツハッシュテーブル502を生成することができる。コンテンツハッシュテーブル502は、ディレクトリ「\dir23\」の「file9.txt」について、第1のハッシュ「144」、ディレクトリ「\dir23\」の「file10.txt」について、第1のハッシュ「123」、ディレクトリ「\dir4\」の「file1.txt」について、第1のハッシュ「773」、ディレクトリ「\dir\」及び「\dir4\」の「file2.exe」について、第1のハッシュ「456」、ディレクトリ「\dir2\」の「file3.bat」について、第1のハッシュ「789」、ディレクトリ「\dir3\」の「file4a.cfg」について、第1のハッシュ「987」、ディレクトリ「\dir3\」の「file5.dat」について、第1のハッシュ「201」、ディレクトリ「\dir79\」の「file7.db」について、第1のハッシュ「128」、ディレクトリ「\dir79\」の「file10.txt」について、第1のハッシュ「663」を含む。
クライアント分配アプリケーション112は、共有イメージファイルハッシュテーブル504の各要素を、コンテンツハッシュテーブル502からのエントリと比較して、合致があるかどうかを判断することができる。そのような合致は、ファイルが既にクライアント104a上に存在しており、ダウンロードするか、あるいは他の形で伝送する必要がないことを示す。合致がある場合、クライアント分配アプリケーション112は、コンテンツがクライアント104a上に存在するので、これらのコンテンツのアドレス、位置又はイメージマップパラメータを示すことができる。そのようなアドレスを、コンテンツハッシュテーブル502内で与えることができる。合致しない場合は、見つからなかったエントリが差分テーブル506へ配置されることになる。共有イメージファイルハッシュテーブル504のエントリの合致についてのスキャンが完了した後、クライアント分配アプリケーション112は、差分テーブル506のコンテンツを受け取り、共有イメージファイルハッシュテーブル504内で識別される合致したコンテンツとともに、クライアント104a上の共有イメージ116を構築することができる。
例えばディレクトリ「\dir23\」の「"filel0.txt」について、第1のハッシュ「123」を有するコンテンツハッシュテーブル502内の要素は、少なくともあらかじめ、ディレクトリ「\dir\」及び「\dir3\」の「filel.txt」について、第1のハッシュ「123」を有する共有イメージファイルハッシュテーブル504の要素に合致することがある。このような合致は、ファイル名及びディレクトリが合致しなくとも、第1のハッシュ値「123」が合致することに基づいて行われてよい。第1のハッシュ値が合致すると、クライアント分配アプリケーション112は、コンテンツハッシュテーブル502の上記要素の第2のハッシュ値「986」を決定してよく、これは、共有イメージファイルハッシュテーブル504の要素に合致する。したがって、共有イメージファイルハッシュテーブル504のディレクトリ「\dir\」及び「\dir3\」の「filel.txt」についての要素は、クライアント104a上に既に存在しており、ディレクトリ「\dir23\」の「"filel0.txt」として取得可能であると決定され得る。この例は、ホスト共有イメージ110を作成するのに使用されるファイルが、複数の場所で現れるが、一度しか検索する必要がないという状況を示している。さらに、この要素は差分テーブル506内に記録されなくてよい。加えて、要素の位置は、該要素がクライアント104a内に存在するとき、共有イメージファイルハッシュテーブル504又はコンテンツハッシュテーブル502内に記録されるか、各テーブル内の対応するエントリ間に提供されるリンクに記録され得る。したがって、クライアント分配アプリケーション112が共有イメージ116を作成するとき、利用可能なファイル「file1.txt」の正しい位置及び正しいバージョンへの参照が作成され得る。共有イメージ116を構築する際に、クライアント分配アプリケーション112は、「file10.txt」をリネームするか、必要に応じて複数の場所にコピーしてもよい。
別の例において、ディレクトリ「\dir4\」の「file1.txt」について、第1のハッシュ「773」を有する要素が、少なくともあらかじめ、ディレクトリ「\dir4\」の「filel.txt」について第1のハッシュ「773」を有する共有イメージファイルハッシュテーブル504の要素に合致することがある。このような合致は、第1のハッシュ値「773」が合致することに基づいて行われ、ファイル名も合致する。第1のハッシュ値が合致すると、クライアント分配アプリケーション112は、コンテンツハッシュテーブル502の上記要素について第2のハッシュ値「443」を決定してよく、これは、共有イメージファイルハッシュテーブル504の対応する要素の第2のハッシュ値に合致しない。この例は、ファイルは適切に名前を付けられているが、実際の所望のファイルとは異なるコンテンツを有するという状況を表す。さらに、この例は、ファイルが、第1のハッシュの合致テストには通るが、第2のハッシュの合致テストには失敗するという状況を表しており、この状況は、ハッシュの衝突条件を示している。共有イメージファイルハッシュテーブル504の要素について、コンテンツハッシュテーブル502内で他の合致が見つからないことがある。したがって、共有イメージファイルハッシュテーブル504のディレクトリ「\dir4\」の「file1.txt」についての要素は見つからないと決定され、これは、差分テーブル506に追加され得る。
更に別の例において、共有イメージファイルハッシュテーブル504の全ての要素についてコンテンツハッシュテーブル502をスキャンした後、ディレクトリ「\dir23\」において第1のハッシュ「144」を有する「file9.txt」は、共有イメージファイルハッシュテーブル504からのいずれの要素とも合致しないことがある。したがって、そのような要素は、共有イメージ116の構築には関連しないものとして無視され得る。
図6は、共有イメージ116を構築するためのクラスタが利用可能であるかどうかを、ホスト共有イメージ110のコンテンツ及び構造を示す共有イメージクラスタハッシュテーブル604と、クライアントコンテンツ114のコンテンツを示すコンテンツハッシュテーブル602とを比較することにより決定する、システム100の例示の動作を示す図である。共有イメージクラスタハッシュテーブル604及びコンテンツハッシュテーブル602は、クライアント分配アプリケーション112とホスト分配アプリケーション108の一方又は組合せによって構築され、比較されてよい。コンテンツハッシュテーブル602と共有イメージクラスタハッシュテーブル604の比較により、差分テーブル606が得られ、この差分テーブル606を使用して、クライアント104aにおけるインストールのために、どのコンテンツ又はクラスタをクライアント分配アプリケーション112にダウンロードすべきかを決定することができる。
共有イメージクラスタハッシュテーブル604及びコンテンツハッシュテーブル602はそれぞれ、1つ又は複数のハッシュのためのフィールドを含むことができる。コンテンツハッシュテーブル602は、クライアント104a上のエントリのアドレス又は位置についてのイメージマップのためのフィールドを含んでよい。共有イメージクラスタハッシュテーブル604は、該共有イメージクラスタハッシュテーブル604内の所与のエントリが、コンテンツハッシュテーブル602内で見つかったかどうかを示し、かつ見つかった場合には、クライアント104a上で対応するコンテンツが見つかったアドレスを示すフィールドを含んでよい。そのようなアドレスは、クライアント分配アプリケーション112によって、クライアント104a上に既に存在しているコンテンツから共有イメージ116を構築するときに使用され得る。さらに、共有イメージクラスタハッシュテーブル604は、所与のクラスタの識別情報の指示を含んでもよい。加えて、共有イメージクラスタハッシュテーブル604は、クラスタエントリが存在するホスト共有イメージ110のイメージアドレスの指示を含むことができる。
差分テーブル606は、クラスタがホスト共有イメージ110内に存在するとき、そのクラスタについてのクラスタ識別情報、ハッシュ及びイメージアドレスのためのフィールドを含むことができる。差分テーブル606内のエントリは、クライアント104a上のクライアントコンテンツ114内に存在しないホスト共有イメージ110のクラスタを反映することができる。ホスト分配アプリケーション108は、クライアント分配アプリケーション112へのダウンロードのためにそのような要素を選択してよく、クライアント分配アプリケーション112は、そのような要素を−共有イメージクラスタハッシュテーブル604とコンテンツハッシュテーブル602内に既に存在している識別された要素との組み合わせで−使用して、共有イメージ116を構築してもよい。
例えば共有イメージクラスタハッシュテーブル604は、共有イメージ116のコンテンツが、イメージアドレスx0000に置かれたハッシュ「123」及び「297」を有する「cluster1」、イメージアドレスx0001、x0004及びx0005に置かれたハッシュ「456」及び「709」を有する「cluster2」、イメージアドレスx0002に置かれたハッシュ「789」及び「567」を有する「cluster3」、イメージアドレスx0003に置かれたハッシュ「987」及び「484」を有する「cluster4」、イメージアドレスx0006に置かれたハッシュ「654」及び「212」を有する「cluster5」、イメージアドレスx0007に置かれたハッシュ「321」及び「663」を有する「cluster6」、イメージアドレスx0008に置かれたハッシュ「135」及び「280」を有する「cluster7」を含み得ることを示している。
一実施形態において、クライアント分配アプリケーション112は、コンテンツハッシュテーブル602内の所与のエントリについて第1のハッシュを実行するが、その所与のエントリについて第2のハッシュを直ぐには実行しないように構成されてよい。クライアント104a上に可能性ある多数のファイルがあるとすると、そのような各クラスタに対してハッシュ計算を実行することは、計算リソースの観点でコストがかかることである。クライアント分配アプリケーション112は、所与のエントリの第1のハッシュが、共有イメージクラスタハッシュテーブル604からの要素に合致する場合に、その所与のエントリについて第2のハッシュを実行するように構成され得る。ハッシュ値又はデジタル署名を生成する手法は、第1のハッシュと第2のハッシュとの間で異なっていてよい。複数のそのようなハッシュオペレーションを、同じ入力データに実行することにより、ハッシュの衝突に起因するエラーを回避することができる。したがって、クライアント分配アプリケーション112は、コンテンツハッシュテーブル602を生成することができ、コンテンツハッシュテーブル602は、アドレスx0000のクラスタについて第1のハッシュ「987」、アドレスx0001のクラスタについて第1のハッシュ「623」、アドレスx0002のクラスタについて第1のハッシュ「684」、アドレスx0003のクラスタについて第1のハッシュ「923」、アドレスx0004及びx0008のクラスタについて第1のハッシュ「123」、アドレスx0005及びx0006のクラスタについて第1のハッシュ「135」、アドレスx0007のクラスタについて第1のハッシュ「456」、アドレスx0009のクラスタについて第1のハッシュ「321」、アドレスx000Aのクラスタについて第1のハッシュ「789」、アドレスx000B及びx000Cのクラスタについて第1のハッシュ「456」を含む。
クライアント分配アプリケーション112は、共有イメージクラスタハッシュテーブル604の各要素を、コンテンツハッシュテーブル602からの要素と比較して、合致があるかどうかを判断することができる。そのような合致は、クラスタが既にクライアント104a上に存在しており、ダウンロードするか、あるいは他の形で伝送する必要がないことを示す。合致がある場合、クライアント分配アプリケーション112は、コンテンツがクライアント104a上に存在するので、これらのコンテンツのアドレス、位置又はイメージマップパラメータを示すことができる。そのようなアドレスを、コンテンツハッシュテーブル602内で与えることができる。合致しない場合は、見つからなかったエントリは、ホスト共有イメージ110内に存在するときのクラスタのアドレスとともに、差分テーブル606へ配置されてよい。共有イメージクラスタハッシュテーブル604のエントリの合致について、スキャンが完了した後、クライアント分配アプリケーション112は、差分テーブル606のコンテンツを受け取り、共有イメージクラスタハッシュテーブル604内で識別される合致したコンテンツとともに、クライアント104a上の共有イメージ116を構築することができる。
例えばアドレスx0000において第1のハッシュ「987」を有するコンテンツハッシュテーブル602内の要素は、少なくともあらかじめ、共有イメージクラスタハッシュテーブル604のアドレスx0003における「cluster4」についての要素に合致することがある。このような合致は、第1のハッシュ値「987」が合致することに基づいて行われてよい。第1のハッシュ値が合致すると、クライアント分配アプリケーション112は、コンテンツハッシュテーブル602の上記要素について第2のハッシュ値「484」を決定してよく、これは、共有イメージクラスタハッシュテーブル604の要素に合致する。したがって、共有イメージクラスタハッシュテーブル604のアドレスx0003における「cluster4」の要素は、クライアント104a上のアドレスx0000で既に存在していると決定される。さらに、この要素は差分テーブル506内に記録されない。加えて、要素の位置は、該要素がクライアント104a内に存在するとき、共有イメージクラスタハッシュテーブル604又はコンテンツハッシュテーブル602内に記録されるか、各テーブル内の対応するエントリ間に提供されるリンクで記録され得る。したがって、クライアント分配アプリケーション112が共有イメージ116を作成するとき、利用可能なクラスタの正しい位置及び正しいバージョンへの参照が作成され得る。共有イメージ116を構築する際に、クライアント分配アプリケーション112は、必要に応じてこのクラスタを複数の場所にコピーしてもよい。
の例において、アドレスx0004及びx0008において第1のハッシュ「123」を有するコンテンツハッシュテーブル602内の要素が、少なくともあらかじめ、共有イメージクラスタハッシュテーブル604のアドレスx0000においてハッシュ「123」を有する「cluster1」についての要素に合致することがある。このような合致は、第1のハッシュ値「123」が合致することに基づいて行われる。第1のハッシュ値が合致すると、クライアント分配アプリケーション112は、コンテンツハッシュテーブル602の上記要素について第2のハッシュ値「660」を決定するが、これは、共有イメージクラスタハッシュテーブル604の対応する要素の第2のハッシュ値「269」に合致しない。この例は、クラスタが、第1のハッシュの合致テストは通るが、第2のハッシュの合致テストには失敗するという状況を表しており、この状況は、ハッシュの衝突条件を示している。共有イメージクラスタハッシュテーブル604の要素について、コンテンツハッシュテーブル602内で他の合致が見つからないことがある。したがって、共有イメージクラスタハッシュテーブル604のアドレスx0000においてハッシュ「123」を有する「cluster1」の要素は見つからないと決定され、これは、差分テーブル506に追加され得る。
更に別の例において、共有イメージクラスタハッシュテーブル604の全ての要素についてコンテンツハッシュテーブル602をスキャンした後、アドレスx0001に置かれたハッシュ「623」を有するコンテンツハッシュテーブル602の要素が、共有イメージクラスタハッシュテーブル604からのいずれの要素とも合致しないことがある。したがって、そのような要素は、共有イメージ116の構築には関連しないものとして無視され得る。
図7は、効率的な仮想マシン展開のための方法700の例示の実施形態である。ステップ705において、1つ又は複数のクライアントに分配すべき共有イメージが決定され得る。そのような共有イメージはネットワークのサーバ上に存在し得る。共有イメージには、仮想マシン、アンチマルウェアソリューション、セキュアアプリケーション又は他のソフトウェアのインストレーションが含まれ得る。共有イメージのコンテンツは、例えばファイル又はクラスタに応じてコンテンツを分類又は識別することによって決定され得る。ステップ710において、それぞれ他に対して異なる2つのハッシュオペレーションが、コンテンツの各々に対して実行され得る。ハッシュオペレーションの結果と、名前又はディレクトリのようなコンテンツの識別情報と、共有イメージのイメージマップ内のアドレスとが作成されてテーブル内に記録され得る。複数の同一のコンポーネントをテーブル内の単一のエントリへまとめてもよく、このエントリは、テーブル内で示される複数の関連する位置を有する。
ステップ715において、ターゲットクライアント上のコンテンツが決定され得る。そのようなコンテンツには、例えばファイル又はクラスタが含まれ得る。ステップ720において、ステップ710において実行された第1のハッシュオペレーションに相当する第1のハッシュオペレーションが、コンテンツの各々決定された部分に対して実行され得る。一実施形態では、そのような第1のハッシュオペレーションのみが、ステップ720において実行され得る。別の実施形態では、ステップ710において実行される第2のハッシュオペレーションに相当する第2のハッシュオペレーションが、ステップ720において実行されてもよい。これらのハッシュオペレーションの結果と、名前又はディレクトリのようなコンテンツの識別情報と、コンテンツがクライアント上に存在するときのコンテンツのイメージマップ内のアドレス、ディレクトリ若しくは位置が、テーブルへ記録され得る。複数の同一のコンポーネントを、テーブル内の単一のエントリへまとめてもよく、このエントリは、テーブル内で示される複数の関連する位置を有する。
ステップ725において、共有イメージ内の一意の要素ごとに、ターゲットクライアントのコンテンツが、その一意の要素との合致を求めて検索され得る。ステップ725〜750が、その共有イメージ内のそのような一意の要素のそれぞれに対して繰り返し実行され得る。合致する要素を探すための検索は、ハッシュ結果の比較によって実行されてもよい。さらに、合致する要素を探す検索は、ステップ705〜720において生成されるテーブルの比較によって実行されてもよい。一実施形態において、そのような検索は、第1のハッシュオペレーションの結果との合致を探す検索を含んでもよい。ステップ730において、共有イメージと、ターゲットクライアントに存在しているコンテンツとの間にいずれかの合致が存在するかどうかを決定する。合致が存在しない場合、方法700はステップ745に進む。いずれかの合致が存在する場合、そのような合致のそれぞれについて、ステップ735において、第2のハッシュオペレーションが、ターゲットクライアント上のコンテンツの合致する要素に対して実行され得る。第2のハッシュオペレーションは、ステップ710で実行される第2のハッシュオペレーションに相当し得る。ステップ740において、第2のハッシュオペレーションを、ターゲットクライアントのコンテンツ及び共有イメージの要素に対して実行した結果が合致するかどうかを判断する。合致する場合、方法700はステップ750に進む。合致しない場合、方法700はステップ745に進む。
ステップ745において、共有イメージからの一意の要素が、該要素が置かれている共有イメージのアドレス又は他の位置とともに、差分テーブルに記録され得る。ステップ750において、共有イメージ内の一意の要素の全てが、ターゲットクライアントのコンテンツとの合致について評価されたかどうかを決定することができる。一意の要素の全てが評価されていない場合は、方法700は、異なる一意の要素についてステップ725に進む。全ての一意の要素が評価された場合は、方法700はステップ755に進む。
ステップ755において、差分テーブルは、共有イメージのうち、ターゲットクライアント上で利用可能でない全ての要素のリストを含む。差分テーブルからの要素がターゲットクライアントに送信され得る。
ステップ760において、共有イメージは、ターゲットクライアント上のローカルイメージへと再構築され得る。そのようなローカルイメージを構築することには、元の共有イメージから受け取った要素及びターゲットクライアント上で既に利用可能な部分を正しい位置及び場所にコピーするか、実行することが含まれ得る。
方法700は、図1〜図6のシステム又は方法700を実施するよう動作可能な任意の他のシステムを使用して実施されてよい。したがって、方法700の好適な開始点及び方法700を備えるステップの順序は、選択される実装形態に依存し得る。一部の実施形態では、幾つかのステップを、任意選択で省略するか、繰り返すか又は組み合わせてもよい。特定の実施形態において、方法700は部分的又は完全に、コンピュータ読取可能媒体に具現化されるソフトウェアで実装されてよい。
本開示の目的では、コンピュータ読取可能媒体は、データ及び/又は命令を、ある期間の間保持することができる、任意の手段又は手段の集合を含み得る。コンピュータ読取可能媒体には、限定ではないが、直接アクセスストレージデバイス(例えばハードディスクドライブ又はフロッピー(登録商標)ディスク)、順次アクセスストレージデバイス(例えばテープディスクドライブ)、コンパクトディスク、CD−ROM、DVD、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)及び/又はフラッシュメモリのような記憶媒体;非一時的媒体;並びに/あるいは上記の任意の組合せが含まれ得る。
本開示は詳細に説明されているが、特許請求の範囲によって定義されるような本開示の精神及び範囲から逸脱することなく、本開示に対して様々な変更、置換及び代替を行うことが可能であることを理解されたい。

Claims (11)

  1. 共有イメージの分配のための方法であって、
    ホスト上で実行するソフトウェアモジュールによりソフトウェアの共有イメージの複数の要素に適用された第1のハッシュオペレーションの結果を、クライアントにおいて受け取るステップであって、当該第1のハッシュオペレーションの結果は、前記複数の要素のファイルから得られる、ステップと、
    前記クライアント上で実行するソフトウェアモジュールにより、前記クライアントの複数のコンテンツに適用された前記第1のハッシュオペレーションの結果を決定するステップであって、当該第1のハッシュオペレーションの結果は、前記クライアントの前記複数のコンテンツから得られる、ステップと、
    前記クライアント上で実行するソフトウェアモジュールにより、前記イメージの前記複数の要素に適用された前記第1のハッシュオペレーションの結果を、前記クライアントの前記複数のコンテンツに適用された前記第1のハッシュオペレーションの結果と比較するステップと、
    前記イメージの前記複数の要素に適用された前記第1のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに適用された前記第1のハッシュオペレーションの結果との比較に基づいて、前記クライアント上で実行するソフトウェアモジュールにより、前記イメージの前記複数の要素の1つ又は複数の要素が前記クライアント上で利用可能でないと判断するステップと、
    前記ホスト上で実行するソフトウェアモジュールから伝送される、前記クライアント上で利用可能でないと決定された前記イメージの要素前記クライアントにおいて受け取るステップと
    を含む、方法。
  2. 前記ホスト上で実行するソフトウェアモジュールにより前記イメージの前記複数の要素に適用された第2のハッシュオペレーションの結果を、前記クライアントにおいて受け取るステップと、
    前記イメージの前記複数の要素に適用された前記第1のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに適用された前記第1のハッシュオペレーションの結果との比較に基づいて、前記クライアント上で実行するソフトウェアモジュールにより、前記クライアントの前記複数のコンテンツに適用された前記第2のハッシュオペレーションの結果を決定するステップと、
    前記クライアント上で実行するソフトウェアモジュールにより、前記イメージの前記複数の要素に適用された前記第2のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに適用された前記第2のハッシュオペレーションの結果を比較するステップと、
    を更に含み、
    前記イメージの前記複数の要素の1つ又は複数の要素が前記クライアント上で利用可能でないと判断するステップは、前記イメージの前記複数の要素に適用された前記第2のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに適用された前記第2のハッシュオペレーションの結果との比較に更に基づく、
    請求項1に記載の方法。
  3. 前記イメージの前記複数の要素及び前記クライアントの前記複数のコンテンツは、クラスタに応じて決定される、
    請求項1又は2に記載の方法。
  4. 前記イメージの前記複数の要素に適用された前記第1のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに適用された前記第1のハッシュオペレーションの結果との比較に基づいて、前記クライアント上で実行するソフトウェアモジュールにより、前記イメージの前記複数の要素の1つ又は複数が前記クライアント上で利用可能であると判断するステップ、
    を更に含み、
    前記クライアント上で利用可能でないと決定された前記イメージの要素の伝送は、前記クライアント上で利用可能であると決定された前記イメージの要素を除外する、
    請求項1乃至3のいずれかに記載の方法。
  5. 前記クライアントの前記複数のコンテンツに適用された前記第1のハッシュオペレーションの結果を決定するステップは、前記クライアントの前記複数のコンテンツに適用される前記第1のハッシュオペレーションを実行することを含む、
    請求項1乃至4のいずれかに記載の方法。
  6. 前記イメージの前記複数の要素に適用された前記第1のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに適用された前記第1のハッシュオペレーションの結果との比較に基づいて、前記クライアント上で実行するソフトウェアモジュールにより、前記イメージの前記複数の要素の1つ又は複数が前記クライアント上で利用可能であると判断するステップと、
    前記クライアント上で実行するソフトウェアモジュールにより、前記クライアント上で利用可能であると決定された前記イメージの要素の位置を決定するステップと、
    前記クライアント上で実行するソフトウェアモジュールにより、伝送される前記イメージの要素と、前記クライアント上で利用可能であると決定された前記イメージの要素とを使用して、前記クライアント上で前記イメージ再構築するステップであって、当該再構築することは、前記クライアント上で利用可能であると決定され、前記イメージから欠けている前記イメージの要素を前記ホストから受け取って、前記クライアント上の前記イメージへコピーすることを含む、ステップと、
    を更に含む、請求項1乃至5のいずれかに記載の方法。
  7. 前記イメージの前記複数の要素に対する前記第1のハッシュオペレーションの結果と、前記クライアントの前記複数のコンテンツに対する前記第1のハッシュオペレーションの結果との比較に基づいて、前記クライアント上で実行するソフトウェアモジュールにより、前記イメージの前記複数の要素の1つ又は複数が前記クライアント上で利用可能であると判断するステップと、
    前記クライアント上で実行するソフトウェアモジュールにより、前記クライアント上で利用可能であると決定された前記イメージの要素の位置を決定するステップと、
    を更に含む。請求項1乃至6のいずれかに記載の方法。
  8. プロセッサによって実行されると、該プロセッサに、請求項1乃至7のいずれかに記載の方法を実行させるプログラム。
  9. 請求項8に記載のプログラムを記録する、少なくとも1つのマシン読取可能記憶媒体。
  10. 共有イメージの分配のためのシステムであって、
    プロセッサと、
    該プロセッサに通信可能に結合される少なくとも1つのコンピュータ読取可能媒体と、
    該コンピュータ読取可能媒体内に存在する1つ又は複数の命令を備える分配モジュールであって、前記命令は、プロセッサ上で実行されると、該プロセッサに請求項1乃至7のいずれかに記載の方法を実行させるように構成される、分配モジュールと、
    を備えるシステム。
  11. 請求項1乃至7のいずれかに記載の方法を実行するための手段を備える、共有イメージの分配のためのシステム。
JP2015531352A 2012-10-11 2013-10-10 効率的な仮想マシン展開方法 Active JP6218835B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/649,970 US11126418B2 (en) 2012-10-11 2012-10-11 Efficient shared image deployment
US13/649,970 2012-10-11
PCT/US2013/064357 WO2014059156A1 (en) 2012-10-11 2013-10-10 Efficient virtual machine deployment methodology

Publications (2)

Publication Number Publication Date
JP2015527686A JP2015527686A (ja) 2015-09-17
JP6218835B2 true JP6218835B2 (ja) 2017-10-25

Family

ID=50476458

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015531352A Active JP6218835B2 (ja) 2012-10-11 2013-10-10 効率的な仮想マシン展開方法

Country Status (5)

Country Link
US (1) US11126418B2 (ja)
EP (1) EP2907074A4 (ja)
JP (1) JP6218835B2 (ja)
CN (1) CN105229660A (ja)
WO (1) WO2014059156A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9621596B2 (en) * 2010-09-11 2017-04-11 Steelcloud, Llc Mobile application deployment for distributed computing environments
US11126418B2 (en) * 2012-10-11 2021-09-21 Mcafee, Llc Efficient shared image deployment
US20140188949A1 (en) * 2013-01-03 2014-07-03 Dell Products L.P. Methods and systems for supply chain assurance of information handling system code
US9792424B1 (en) * 2014-09-18 2017-10-17 Amazon Technologies, Inc. Chained authentication using musical transforms
US10754677B2 (en) * 2016-07-21 2020-08-25 Red Hat, Inc. Providing a layered image using a hierarchical tree
US11860819B1 (en) * 2017-06-29 2024-01-02 Amazon Technologies, Inc. Auto-generation of partition key

Family Cites Families (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06101044B2 (ja) * 1988-01-23 1994-12-12 シャープ株式会社 デッドロック回避実行制御方式
US5197002A (en) * 1989-12-22 1993-03-23 Bell Communications Research, Inc. Methods and apparatus for dynamic hashing
US5465353A (en) * 1994-04-01 1995-11-07 Ricoh Company, Ltd. Image matching and retrieval by multi-access redundant hashing
US5729741A (en) * 1995-04-10 1998-03-17 Golden Enterprises, Inc. System for storage and retrieval of diverse types of information obtained from different media sources which includes video, audio, and text transcriptions
US5757915A (en) * 1995-08-25 1998-05-26 Intel Corporation Parameterized hash functions for access control
US5768532A (en) * 1996-06-17 1998-06-16 International Business Machines Corporation Method and distributed database file system for implementing self-describing distributed file objects
US6381741B1 (en) * 1998-05-18 2002-04-30 Liberate Technologies Secure data downloading, recovery and upgrading
US6272631B1 (en) * 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
US7756892B2 (en) * 2000-05-02 2010-07-13 Digimarc Corporation Using embedded data with file sharing
US6463535B1 (en) * 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US7730089B2 (en) * 1998-11-16 2010-06-01 Punch Networks Corporation Method and system for providing remote access to the facilities of a server computer
US7222235B1 (en) * 1999-03-30 2007-05-22 Oki Electric Industry Co., Ltd. Image processing system utilizing digital watermarks in predetermined regions
JP2003503795A (ja) * 1999-06-30 2003-01-28 マイクロソフト コーポレイション サポート・インシデントを報告及び解決する方法及びシステム
US6493871B1 (en) * 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
US6671407B1 (en) * 1999-10-19 2003-12-30 Microsoft Corporation System and method for hashing digital images
US7000230B1 (en) * 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US6742028B1 (en) * 2000-09-15 2004-05-25 Frank Wang Content management and sharing
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US7660902B2 (en) * 2000-11-20 2010-02-09 Rsa Security, Inc. Dynamic file access control and management
CN1235408C (zh) * 2001-02-12 2006-01-04 皇家菲利浦电子有限公司 生成和匹配多媒体内容的散列
US7502829B2 (en) * 2001-06-21 2009-03-10 Cybersoft, Inc. Apparatus, methods and articles of manufacture for intercepting, examining and controlling code, data and files and their transfer
US7603440B1 (en) * 2001-11-09 2009-10-13 Persystent Technology Corporation System and method for management of end user computing devices
US8059815B2 (en) * 2001-12-13 2011-11-15 Digimarc Corporation Transforming data files into logical storage units for auxiliary data through reversible watermarks
AUPR960601A0 (en) * 2001-12-18 2002-01-24 Canon Kabushiki Kaisha Image protection
US8561167B2 (en) * 2002-03-08 2013-10-15 Mcafee, Inc. Web reputation scoring
US7089552B2 (en) * 2002-08-29 2006-08-08 Sun Microsystems, Inc. System and method for verifying installed software
JP2004282677A (ja) * 2003-01-21 2004-10-07 Canon Inc 画像処理方法
US8269793B2 (en) * 2003-02-18 2012-09-18 Serverside Group Limited Apparatus and method for manipulating images
US7483947B2 (en) * 2003-05-02 2009-01-27 Microsoft Corporation Message rendering for identification of content features
US20070276823A1 (en) * 2003-05-22 2007-11-29 Bruce Borden Data management systems and methods for distributed data storage and management using content signatures
US9678967B2 (en) * 2003-05-22 2017-06-13 Callahan Cellular L.L.C. Information source agent systems and methods for distributed data storage and management using content signatures
US7281126B2 (en) * 2003-05-30 2007-10-09 Sun Microsystems, Inc. Method of installing an image on a client over a network securely using a wanboot binary and a kernel to install the image
US20040255289A1 (en) * 2003-06-11 2004-12-16 Citycites.Com Corp. Remote access software solution for rapidly deploying a desktop
US7673297B1 (en) * 2003-09-03 2010-03-02 The Directv Group, Inc. Automatic software update detection and flexible installer for set-top boxes
US7882139B2 (en) * 2003-09-29 2011-02-01 Xunlei Networking Technologies, Ltd Content oriented index and search method and system
JP2005143094A (ja) * 2003-10-14 2005-06-02 Canon Inc 画像検証システム、管理方法、及びコンピュータ読み取り可能な記憶媒体
US8010670B2 (en) * 2003-12-23 2011-08-30 Slipstream Data Inc. Meta-data based method for local cache utilization
CA2564285C (en) * 2004-04-30 2014-07-08 Research In Motion Limited System and method of owner application control of electronic devices
US20060031425A1 (en) * 2004-06-07 2006-02-09 Northrop Grumman Corporation Method for imaging computer systems
US7594124B2 (en) * 2004-06-09 2009-09-22 Intel Corporation Cross validation of data using multiple subsystems
US8799401B1 (en) * 2004-07-08 2014-08-05 Amazon Technologies, Inc. System and method for providing supplemental information relevant to selected content in media
JP4541811B2 (ja) * 2004-09-13 2010-09-08 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
US8878851B2 (en) * 2004-11-12 2014-11-04 Synchronica Plc Method and system for streaming documents, e-mail attachments and maps to wireless devices
US7890426B2 (en) * 2004-11-19 2011-02-15 Vectorsgi, Inc. Method and system for verifying check images
US7716660B2 (en) * 2004-12-14 2010-05-11 Microsoft Corporation Method and system for downloading updates
US7581168B2 (en) * 2004-12-20 2009-08-25 Microsoft Corporation Method, system, and computer-readable medium for determining whether to reproduce chart images calculated from a workbook
US7610273B2 (en) * 2005-03-22 2009-10-27 Microsoft Corporation Application identity and rating service
US20060242418A1 (en) * 2005-04-25 2006-10-26 Xerox Corporation Method for ensuring the integrity of image sets
US7814078B1 (en) * 2005-06-20 2010-10-12 Hewlett-Packard Development Company, L.P. Identification of files with similar content
CN101243413B (zh) * 2005-06-24 2013-08-14 信科索尔特公司 用于对备份映像进行虚拟化的系统和方法
US7657654B2 (en) * 2005-07-25 2010-02-02 Cisco Technologies, Inc. Hashing assist for network processors
US10289688B2 (en) * 2010-06-22 2019-05-14 International Business Machines Corporation Metadata access in a dispersed storage network
US7702127B2 (en) * 2005-10-21 2010-04-20 Microsoft Corporation Video fingerprinting using complexity-regularized video watermarking by statistics quantization
US9065683B2 (en) * 2005-11-23 2015-06-23 Mediaclaw, Inc. Content interactivity gateway
US20070204003A1 (en) * 2006-02-28 2007-08-30 Maven Networks, Inc. Downloading a file over HTTP from multiple servers
US7647331B2 (en) * 2006-03-28 2010-01-12 Microsoft Corporation Detecting duplicate images using hash code grouping
US7965297B2 (en) * 2006-04-17 2011-06-21 Microsoft Corporation Perfect hashing of variably-sized data
US8156132B1 (en) * 2007-07-02 2012-04-10 Pinehill Technology, Llc Systems for comparing image fingerprints
US7840540B2 (en) * 2006-04-20 2010-11-23 Datascout, Inc. Surrogate hashing
US8099789B2 (en) * 2006-09-29 2012-01-17 Lenovo (Singapore) Pte. Ltd. Apparatus and method for enabling applications on a security processor
US7882187B2 (en) * 2006-10-12 2011-02-01 Watchguard Technologies, Inc. Method and system for detecting undesired email containing image-based messages
US8949825B1 (en) * 2006-10-17 2015-02-03 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
JP4659721B2 (ja) * 2006-11-09 2011-03-30 キヤノン株式会社 コンテンツ編集装置及びコンテンツ検証装置
JP2008119145A (ja) * 2006-11-09 2008-05-29 Olympus Medical Systems Corp 画像表示方法および画像表示装置
US9280337B2 (en) * 2006-12-18 2016-03-08 Adobe Systems Incorporated Secured distribution of software updates
US7822851B2 (en) * 2007-01-18 2010-10-26 Internet Probation and Parole Control, Inc. Remote user computer control and monitoring
US8850547B1 (en) * 2007-03-14 2014-09-30 Volcano Corporation Remote access service inspector
WO2008117500A1 (ja) * 2007-03-27 2008-10-02 Nec Corporation 仮想マシン運用システム、仮想マシン運用方法およびプログラム
JP4782060B2 (ja) * 2007-03-30 2011-09-28 アイシン・エィ・ダブリュ株式会社 データ更新システム及びコンピュータプログラム
US9053323B2 (en) * 2007-04-13 2015-06-09 Hewlett-Packard Development Company, L.P. Trusted component update system and method
US20090150169A1 (en) * 2007-05-17 2009-06-11 Unlimited Cad Services, Llc Document acquisition and authentication system
US7761466B1 (en) * 2007-07-30 2010-07-20 Hewlett-Packard Development Company, L.P. Hash-based image identification
US8050505B2 (en) * 2007-08-01 2011-11-01 Sharp Kabushiki Kaisha Image processing apparatus, image processing system, image processing method, and image forming apparatus
US8281298B2 (en) * 2007-08-27 2012-10-02 International Business Machines Corporation Evaluating computer driver update compliance
US9424266B2 (en) * 2007-10-01 2016-08-23 Microsoft Technology Licensing, Llc Efficient file hash identifier computation
US20090193211A1 (en) * 2008-01-24 2009-07-30 Broadcom Corporation Software authentication for computer systems
US7860971B2 (en) * 2008-02-21 2010-12-28 Microsoft Corporation Anti-spam tool for browser
US7856440B2 (en) * 2008-02-29 2010-12-21 International Business Machines Corporation Method and system for separating content identifiers from content reconstitution information in virtual machine images
US7996414B2 (en) * 2008-02-29 2011-08-09 International Business Machines Corporation Method and system for separating file system metadata from other metadata in virtual machine image format
WO2009111047A2 (en) * 2008-03-05 2009-09-11 Ebay Inc. Method and apparatus for image recognition services
US7676501B2 (en) * 2008-03-22 2010-03-09 Wilson Kelce S Document integrity verification
US8418164B2 (en) * 2008-05-29 2013-04-09 Red Hat, Inc. Image install of a network appliance
US8386461B2 (en) * 2008-06-16 2013-02-26 Qualcomm Incorporated Method and apparatus for generating hash mnemonics
JP2011527465A (ja) * 2008-06-30 2011-10-27 モミニス リミテッド コンピュータアプリケーションの生成・配布方法
US8185733B2 (en) * 2008-10-02 2012-05-22 Ricoh Co., Ltd. Method and apparatus for automatically publishing content based identifiers
US8347386B2 (en) * 2008-10-21 2013-01-01 Lookout, Inc. System and method for server-coupled malware prevention
WO2010052999A1 (ja) * 2008-11-06 2010-05-14 日本電気株式会社 メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム
US8423790B2 (en) * 2008-11-18 2013-04-16 Bally Gaming, Inc. Module validation
US8701106B2 (en) * 2008-11-30 2014-04-15 Red Hat Israel, Ltd. Hashing storage images of a virtual machine
US8171547B2 (en) * 2008-12-03 2012-05-01 Trend Micro Incorporated Method and system for real time classification of events in computer integrity system
JP4962483B2 (ja) * 2008-12-19 2012-06-27 日本電気株式会社 情報処理装置
JP2010176191A (ja) * 2009-01-27 2010-08-12 Mitsubishi Electric Corp データ送信装置及びデータ記憶装置及びデータ更新システム及びコンピュータプログラム及びデータ更新方法
US8572587B2 (en) * 2009-02-27 2013-10-29 Red Hat, Inc. Systems and methods for providing a library of virtual images in a software provisioning environment
US8331567B2 (en) * 2009-03-30 2012-12-11 Intel Corporation Methods and apparatuses for generating dynamic pairwise master keys using an image
US8191065B2 (en) * 2009-04-06 2012-05-29 Red Hat Israel, Ltd. Managing virtual machine images
KR101053680B1 (ko) * 2009-04-13 2011-08-02 계영티앤아이 (주) 소프트웨어 관리장치 및 방법, 이에 의해 제어되는 사용자 단말 및 이의 관리방법
US20100274755A1 (en) * 2009-04-28 2010-10-28 Stewart Richard Alan Binary software binary image analysis
US20100312805A1 (en) * 2009-05-08 2010-12-09 Noonan Iii Donal Charles System and method for capturing, managing, and distributing computer files
US8538188B2 (en) * 2009-08-04 2013-09-17 Mitre Corporation Method and apparatus for transferring and reconstructing an image of a computer readable medium
US20110072047A1 (en) * 2009-09-21 2011-03-24 Microsoft Corporation Interest Learning from an Image Collection for Advertising
US8769296B2 (en) * 2009-10-19 2014-07-01 Uniloc Luxembourg, S.A. Software signature tracking
GB2475252A (en) * 2009-11-10 2011-05-18 Skype Ltd A hashing scheme is used to facilitate identifying the presence of matching information items on different network nodes without disclosing the information.
CN102725737B (zh) * 2009-12-04 2016-04-20 密码研究公司 可验证防泄漏的加密和解密
US8352494B1 (en) * 2009-12-07 2013-01-08 Google Inc. Distributed image search
US8612398B2 (en) * 2010-03-11 2013-12-17 Microsoft Corporation Clean store for operating system and software recovery
WO2011116459A1 (en) * 2010-03-25 2011-09-29 Enomaly Inc. System and method for secure cloud computing
US20150205489A1 (en) * 2010-05-18 2015-07-23 Google Inc. Browser interface for installed applications
US8625907B2 (en) * 2010-06-10 2014-01-07 Microsoft Corporation Image clustering
US8627411B2 (en) * 2010-06-17 2014-01-07 Microsoft Corporation Techniques to share binary content
US20110314045A1 (en) * 2010-06-21 2011-12-22 Microsoft Corporation Fast set intersection
US9075798B2 (en) * 2010-07-30 2015-07-07 Adobe Systems Incorporated Verifying authenticity of input using a hashing algorithm
US9043306B2 (en) * 2010-08-23 2015-05-26 Microsoft Technology Licensing, Llc Content signature notification
US8725682B2 (en) * 2010-09-08 2014-05-13 Daniel J Young Distribution and synchronization of digital objects
US9075836B2 (en) * 2010-09-23 2015-07-07 International Business Machines Corporation Partitioning keys for hash tables
US8499114B1 (en) * 2010-09-30 2013-07-30 Amazon Technologies, Inc. Virtual machine memory page sharing system
US8270963B1 (en) * 2010-10-01 2012-09-18 Viasat, Inc. Cross domain notification
US9129007B2 (en) * 2010-11-10 2015-09-08 Microsoft Technology Licensing, Llc Indexing and querying hash sequence matrices
US8694981B2 (en) * 2010-11-17 2014-04-08 Apple Inc. Shared resource dependencies
US9158605B2 (en) * 2010-12-01 2015-10-13 Microsoft Technology Licensing, Llc Method, system and device for validating repair files and repairing corrupt software
US9436558B1 (en) * 2010-12-21 2016-09-06 Acronis International Gmbh System and method for fast backup and restoring using sorted hashes
US9276752B2 (en) * 2011-02-11 2016-03-01 Siemens Healthcare Diagnostics Inc. System and method for secure software update
US9110923B2 (en) * 2011-03-03 2015-08-18 Google Inc. Ranking over hashes
US9122705B1 (en) * 2011-03-15 2015-09-01 Google Inc. Scoring hash functions
JP5708107B2 (ja) * 2011-03-23 2015-04-30 日本電気株式会社 重複ファイル検出装置
US20120254993A1 (en) * 2011-03-28 2012-10-04 Mcafee, Inc. System and method for virtual machine monitor based anti-malware security
JP5610227B2 (ja) * 2011-05-18 2014-10-22 株式会社日立製作所 計算機及び識別子管理方法
US8332357B1 (en) * 2011-06-10 2012-12-11 Microsoft Corporation Identification of moved or renamed files in file synchronization
US20120324446A1 (en) * 2011-06-17 2012-12-20 Microsoft Corporation Virtual machine image composition and signing
US9244967B2 (en) * 2011-08-01 2016-01-26 Actifio, Inc. Incremental copy performance between data stores
US8930940B2 (en) * 2011-08-19 2015-01-06 Yongyong Xu Online software execution platform
US9552201B2 (en) * 2011-08-31 2017-01-24 Avaya Inc. System and method for incremental software installation
US8543543B2 (en) * 2011-09-13 2013-09-24 Microsoft Corporation Hash-based file comparison
US9026615B1 (en) * 2011-09-22 2015-05-05 Teradici Corporation Method and apparatus for caching image data transmitted over a lossy network
US8886616B2 (en) * 2012-01-11 2014-11-11 Timothy STOAKES Blocklet pattern identification
US9367707B2 (en) * 2012-02-23 2016-06-14 Tenable Network Security, Inc. System and method for using file hashes to track data leakage and document propagation in a network
US9152784B2 (en) * 2012-04-18 2015-10-06 Mcafee, Inc. Detection and prevention of installation of malicious mobile applications
US8799662B2 (en) * 2012-07-27 2014-08-05 Adobe Systems Incorporated Method and apparatus for validating the integrity of installer files prior to installation
US20140067542A1 (en) * 2012-08-30 2014-03-06 Luminate, Inc. Image-Based Advertisement and Content Analysis and Display Systems
US20140074783A1 (en) * 2012-09-09 2014-03-13 Apple Inc. Synchronizing metadata across devices
US11126418B2 (en) * 2012-10-11 2021-09-21 Mcafee, Llc Efficient shared image deployment

Also Published As

Publication number Publication date
WO2014059156A9 (en) 2014-06-19
US20140108590A1 (en) 2014-04-17
EP2907074A4 (en) 2016-05-11
EP2907074A1 (en) 2015-08-19
WO2014059156A1 (en) 2014-04-17
JP2015527686A (ja) 2015-09-17
CN105229660A (zh) 2016-01-06
US11126418B2 (en) 2021-09-21

Similar Documents

Publication Publication Date Title
JP6218835B2 (ja) 効率的な仮想マシン展開方法
US10055576B2 (en) Detection of malicious software packages
JP5065295B2 (ja) 異なる仮想マシン・イメージ間でファイルを共有するための方法、システム、およびコンピュータ読み取り可能媒体
US9823915B1 (en) Software container format
US7917481B1 (en) File-system-independent malicious content detection
CN102521081B (zh) 修复遭破坏的软件
JP5357885B2 (ja) 仮想マシン複製を作成するための更新の管理
US11327744B2 (en) Equivalency of revisions on modern version control systems
US9411621B2 (en) Grouping and automatically propagating updates to equivalent online and offline virtual machines in a data center
US9910906B2 (en) Data synchronization using redundancy detection
US10284433B2 (en) Data synchronization using redundancy detection
US20090300071A1 (en) File Synchronization Between Multiple Nodes
US20090172816A1 (en) Detecting rootkits over a storage area network
US10705829B2 (en) Software discovery using exclusion
Capuccini et al. Large-scale virtual screening on public cloud resources with Apache Spark
US8806477B2 (en) Space efficient software package management
CN107632932B (zh) 一种多级校验的软件仓库可靠性检测方法
US9372992B1 (en) Ensuring integrity of a software package installer
US11256602B2 (en) Source code file retrieval
RU2628920C2 (ru) Способ обнаружения вредоносных сборок
JP7222428B2 (ja) 検証情報作成システム、検証情報作成方法、および、検証情報作成プログラム
US9483381B2 (en) Obfuscating debugging filenames
US10162626B2 (en) Ordered cache tiering for program build files
JP6632942B2 (ja) 仮想サーバー点検システム、及び仮想サーバー点検方法
CN111400243A (zh) 基于流水线服务的研发管理系统以及文件存储方法、装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150309

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170302

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170926

R150 Certificate of patent or registration of utility model

Ref document number: 6218835

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250