特許第6285870号(P6285870)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

特許6285870オン・デマンドのステージングを用いる高速アプリケーション・ストリーミング
<>
  • 特許6285870-オン・デマンドのステージングを用いる高速アプリケーション・ストリーミング 図000002
  • 特許6285870-オン・デマンドのステージングを用いる高速アプリケーション・ストリーミング 図000003
  • 特許6285870-オン・デマンドのステージングを用いる高速アプリケーション・ストリーミング 図000004
  • 特許6285870-オン・デマンドのステージングを用いる高速アプリケーション・ストリーミング 図000005
  • 特許6285870-オン・デマンドのステージングを用いる高速アプリケーション・ストリーミング 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6285870
(24)【登録日】2018年2月9日
(45)【発行日】2018年2月28日
(54)【発明の名称】オン・デマンドのステージングを用いる高速アプリケーション・ストリーミング
(51)【国際特許分類】
   G06F 12/00 20060101AFI20180215BHJP
   G06F 9/445 20180101ALI20180215BHJP
【FI】
   G06F12/00 520J
   G06F9/06 640A
   G06F12/00 545F
【請求項の数】13
【全頁数】17
(21)【出願番号】特願2014-547539(P2014-547539)
(86)(22)【出願日】2012年12月15日
(65)【公表番号】特表2015-506044(P2015-506044A)
(43)【公表日】2015年2月26日
(86)【国際出願番号】US2012069965
(87)【国際公開番号】WO2013090865
(87)【国際公開日】20130620
【審査請求日】2015年12月2日
(31)【優先権主張番号】13/327,699
(32)【優先日】2011年12月15日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100153028
【弁理士】
【氏名又は名称】上田 忠
(74)【代理人】
【識別番号】100120112
【弁理士】
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100147991
【弁理士】
【氏名又は名称】鳥居 健一
(74)【代理人】
【識別番号】100119781
【弁理士】
【氏名又は名称】中村 彰吾
(74)【代理人】
【識別番号】100162846
【弁理士】
【氏名又は名称】大牧 綾子
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(74)【代理人】
【識別番号】100138759
【弁理士】
【氏名又は名称】大房 直樹
(72)【発明者】
【氏名】ヤンデク,マシュー・アール
(72)【発明者】
【氏名】ブラー,グラシシュ・スィン
(72)【発明者】
【氏名】リ,フイ
【審査官】 小林 哲雄
(56)【参考文献】
【文献】 国際公開第2010/079772(WO,A1)
【文献】 特表2004−502236(JP,A)
【文献】 米国特許出願公開第2011/0029968(US,A1)
【文献】 米国特許出願公開第2010/0306270(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 9/445
(57)【特許請求の範囲】
【請求項1】
複数の計算システムを含むコンピューター・ネットワーク環境における、少なくとも1つのプロセッサーおよびメモリを含むクライアント・コンピューター・システムにおいての、オン・デマンドのステージングを用いて仮想ソフトウェア・アプリケーションを迅速に起動するための方法であって、
管理コンピューター・システムから送られた、仮想ソフトウェア・アプリケーションが前記クライアント・コンピューター・システムにて発行されることを示すインジケーションを、前記クライアント・コンピューター・システムが受け取る動作と、
前記管理コンピューター・システムから送られた、仮想ソフトウェア・アプリケーションが前記クライアント・コンピューター・システムにて発行されることを示すインジケーションを、前記クライアント・コンピューター・システムが受け取ったことに応答して、仮想ソフトウェア・アプリケーションの一部である指定された高レベルのデータ・ファイルおよびディレクトリーのリストを含む高レベル・ファイル・リストを、前記クライアント・コンピューター・システムが作成する動作と、
アプリケーション・ユーザーから、前記仮想ソフトウェア・アプリケーションがアクセスされるというインジケーションを、前記クライアント・コンピューター・システムが受け取る動作と、
前記仮想ソフトウェア・アプリケーションがアクセスされるというインジケーションに基づいて、アクセスされるデータ・ファイルに対するスパース・データ・ファイルを動的に作成する動作であって、前記スパース・データ・ファイルは、アクセスされるデータ・ファイルのファイル名およびファイル・サイズを含み、前記スパース・データ・ファイルに対応するデータは、リモート・データ・ストアに格納される、動作と、
前記仮想ソフトウェア・アプリケーションが前記スパース・データ・ファイルのうちの1以上のものへのアクセスを試みていると判定した後、要求に応じて、前記スパース・データ・ファイルに対応する前記データを前記リモート・データ・ストアから動的に、前記クライアント・コンピューター・システムがストリーミングする動作と
を含む方法。
【請求項2】
請求項1に記載の方法であって、前記アプリケーション・ユーザーからの前記インジケーションは、仮想ソフトウェア・アプリケーションが初期設定されることを示す、方法。
【請求項3】
請求項2に記載の方法であって、スパース・データ・ファイルは、前記仮想ソフトウェア・アプリケーションを初期設定する際に用いられるファイルに対して動的に作成される、方法。
【請求項4】
請求項3に記載の方法であって、
前記アプリケーション・ユーザーから、前記仮想ソフトウェア・アプリケーションがアクセスされるというインジケーションを、前記クライアント・コンピューター・システムが受け取ったことに応答して、前記仮想ソフトウェア・アプリケーションを初期設定するために用いられる特定のレジストリー・ファイルのリストを含むレジストリー・ファイルのリストを、前記クライアント・コンピューター・システムが作成する動作と、
前記特定のレジストリー・ファイルを、前記クライアント・コンピューター・システムが動的に作成する動作であって、生成された前記特定のレジストリー・ファイルは前記クライアント・コンピューター・システムのレジストリーへ書き込まれる動作と、
を更に含む方法。
【請求項5】
請求項1〜4のいずれか一項に記載の方法であって、
前記アプリケーション・ユーザーからの前記インジケーションが、指定されたファイルがアクセスされることを示すことを、前記クライアント・コンピューター・システムが判定する動作であって、前記指定されたファイルは、サブディレクトリーに位置する、動作と、
前記指定されたデータ・ファイルのルート・ディレクトリーおよび介在する各サブディレクトリーに対してのスパース・データ・ファイルを動的に、前記クライアント・コンピューター・システムが作成する動作と
を更に含む方法。
【請求項6】
請求項1〜5のいずれか一項に記載の方法であって、管理ユーザーは、1以上の指定されたファイルに対してオン・デマンドのステージングがオーバーライドされることを示し、前記指定されたファイルが前記クライアント・コンピューター・システムのディスクへ、前記クライアント・コンピューター・システムがプリロードする、方法。
【請求項7】
請求項1〜6のいずれか一項に記載の方法であって、前記クライアント・コンピューター・システムがストリーミングするデータ・ファイルは、前記クライアント・コンピューター・システムのローカル・データ・ストアに、前記クライアント・コンピューター・システムが格納する、方法。
【請求項8】
請求項7に記載の方法であって、以前にストリーミングされたデータ・ファイルに関する後続のアプリケーション・リクエストは、遂行するために、前記クライアント・コンピューター・システムによって、インターセプトされ前記ローカル・データ・ストアへ送られる、方法。
【請求項9】
複数の計算システムを含むコンピューター・ネットワーク環境における、少なくとも1つのプロセッサーおよびメモリを含むクライアント・コンピューター・システムにおいての、オン・デマンドのレジストリー・ステージングを用いて仮想ソフトウェア・アプリケーションを迅速に起動するための方法であって、
管理コンピューター・システムから送られた、仮想ソフトウェア・アプリケーションが前記クライアント・コンピューター・システムにて発行されることを示すインジケーションを、前記クライアント・コンピューター・システムが受け取る動作と、
前記管理コンピューター・システムから送られた、仮想ソフトウェア・アプリケーションが前記クライアント・コンピューター・システムにて発行されることを示すインジケーションを、前記クライアント・コンピューター・システムが受け取ったことに応答して、前記仮想ソフトウェア・アプリケーションにより用いられる指定された高レベルのレジストリー・ファイルのリストを含む高レベル・レジストリー・ファイルを、前記クライアント・コンピューター・システムが作成する動作と、
アプリケーション・ユーザーから、前記仮想ソフトウェア・アプリケーションがアクセスされるというインジケーションを、前記クライアント・コンピューター・システムが受け取る動作と、
前記仮想ソフトウェア・アプリケーションがアクセスされるというインジケーションに基づいて、前記高レベルのレジストリー・ファイルのリストにリストされアクセスされるレジストリー・ファイルを、前記クライアント・コンピューター・システムが動的に作成する動作であって、作成された前記レジストリー・ファイルは前記クライアント・コンピューター・システムのレジストリーへ書き込まれる、動作と、
前記仮想ソフトウェア・アプリケーションが1以上の更なるレジストリー・ファイルへのアクセスを試みていると判定した後、要求に応じて、前記クライアント・コンピューター・システムのレジストリーにおいて前記更なるレジストリー・ファイルを、前記クライアント・コンピューター・システムが動的に作成する動作と
を含む方法。
【請求項10】
請求項9に記載の方法であって、前記仮想ソフトウェア・アプリケーションを初期設定する際に用いられるファイルに対して、レジストリー・ファイルは動的に作成される、方法。
【請求項11】
請求項9又は10に記載の方法であって、前記レジストリーは、非同期で、前記クライアント・コンピューター・システムへプリロードされる、方法。
【請求項12】
複数のクライアント計算システムを含むコンピューター・ネットワーク環境における、少なくとも1つのプロセッサーおよびメモリを含む管理コンピューター・システムにおいての、オン・デマンドのステージングを用いて仮想ソフトウェア・アプリケーションを迅速に発行するための方法であって、
コンピューター管理者から、1以上の仮想ソフトウェア・アプリケーションが1以上のクライアント・コンピューター・システムにおいて発行されるということを示すインジケーションを、前記管理コンピューター・システムが受け取る動作と、
受け取った前記インジケーションに応じて、前記1以上のクライアント・コンピューター・システムに対して前記仮想ソフトウェア・アプリケーションを、前記管理コンピューター・システムが発行する動作と
を含み、前記発行する動作は、
複数の前記クライアント・コンピューター・システムのうちの少なくとも1つにおいて、仮想ソフトウェア・アプリケーションの一部である指定された高レベルのデータ・ファイルおよびディレクトリーのリストを含む高レベル・ファイル・リストを、前記管理コンピューター・システムが発行する動作と、
要求に応じて、前記仮想ソフトウェア・アプリケーションにより要求されたデータ・ファイルに対して、1以上のスパース・データ・ファイルを、前記管理コンピューター・システムが作成する動作と
を含む、
方法。
【請求項13】
請求項12に記載の方法であって、前記1以上のクライアント・コンピューター・システムに対して前記仮想ソフトウェア・アプリケーションを、前記管理コンピューター・システムが発行する動作とは、
前記クライアント・コンピューター・システムにおいて、前記仮想ソフトウェア・アプリケーションの初期設定の後に用いられる指定された高レベルのレジストリー・ファイルのリストを含む高レベル・レジストリー・ファイル・リストを、前記管理コンピューター・システムが作成する動作と、
受け取った前記インジケーションに基づいて、前記高レベルのレジストリー・ファイルのリストにリストされアクセスされるレジストリー・ファイルを動的に、前記管理コンピューター・システムが作成する動作であって、作成された前記レジストリー・ファイルが前記クライアント・コンピューター・システムのレジストリーへ書き込まれるようにする、動作と
を更に含む、方法。
【発明の詳細な説明】
【背景技術】
【0001】
[0001] コンピューターは、労働力、家庭、モバイル・デバイス、および他の多くの場所で、高度に統合されている。コンピューターは、大量の情報を迅速かつ効率的に処理することができる。コンピューターで実行されるように設計されたソフトウェア・アプリケーションは、ユーザーが、ビジネス・アプリケーション、学業、エンターテイメント、およびその他を含む広範囲の種類の機能を行うことを可能にする。多くの場合、ソフトウェア・アプリケーションは、特定のタスク、例えば、文書を作成するためのワード・プロセッサー・アプリケーションや、Eメールの送信、受信、および整理のためのEメール・プログラムなどを行うように、設計される。
【0002】
[0002] 幾つかの場合、ソフトウェア・アプリケーションはアプリケーション・サーバーにより提供することができる。それらのアプリケーションは、シン・クライアント・コンピューター・システムや他のネットワーク化されたコンピューター・システムへ、提供することができる。それらのアプリケーションは、アプリケーション・サーバーで実行して、単に、ユーザーのコンピューター・システムのユーザー・インターフェースを介して、ユーザーに呈示することができる。従って、それらのタイプのアプリケーションは、仮想アプリケーションと呼ばれる。アプリケーション・サーバーは、多数のそれらのアプリケーションをホストすることができ、各アプリケーションは、異なるユーザーによりアクセスされる。仮想アプリケーションは、ユーザーのコンピューター・システムでステージングされ、仮想アプリケーションの多くの部分をユーザーのローカル・ハード・ドライブや他のデータ・ストアへロード(少なくとも一時的に)される。
【発明の概要】
【0003】
[0003] ここで説明される実施形態は、オン・デマンドのファイル・ステージングを用いて仮想ソフトウェア・アプリケーションを迅速に起動すること、オン・デマンドのレジストリー・ステージングを用いて仮想ソフトウェア・アプリケーションを迅速に起動すること、およびオン・デマンドのステージングを用いて仮想ソフトウェア・アプリケーションを迅速に発行することに関する。1つの実施形態では、コンピューター・システムは、仮想アプリケーション・パッケージの一部である指定された高レベルのデータ・ファイルおよびディレクトリーのリストを含む高レベル・ファイル・リストを、作成する。コンピューター・システムは、アプリケーション・ユーザーから、仮想アプリケーションがアクセスされるというインジケーション(indication)を受け取り、その受け取ったインジケーションに基づいて、アクセスされるそれらのデータ・ファイルに対してのスパース・データ・ファイルを動的に作成する。スパース・ファイルは、アクセスされるそれらのデータ・ファイルのファイル名およびファイル・サイズを含む。スパース・データ・ファイルに対応するデータは、リモート・データ・ストアに格納される。次に、仮想アプリケーションがスパース・データ・ファイルへアクセスすることを試みていると判定した後、コンピューター・システムは、リモート・データ・ストアから、要求に応じて、スパース・データ・ファイルに対応するデータを動的にストリーミングする。
【0004】
[0004] 別の実施形態では、コンピューター・システムは、仮想ソフトウェア・アプリケーションにより用いられる指定された高レベルのレジストリー・ファイルのリストを含む高レベル・レジストリー・ファイル・リストを、作成する。コンピューター・システムは、アプリケーション・ユーザーから、仮想アプリケーションがアクセスされるというインジケーションを受け取り、その受け取ったインジケーションに基づいて、アクセスされるものであり高レベル・リストにリストされるそれらのレジストリー・ファイルを、動的に作成する。このように、作成されたレジストリー・ファイルは、クライアント・コンピューター・システムのレジストリー内へ書き込まれる。次に、アプリケーションが追加のレジストリー・ファイルへアクセスすることを試みていると判定した後、コンピューター・システムは、要求に応じて、クライアント・コンピューター・システムのレジストリーにおいて追加のレジストリー・ファイルを作成する。
【0005】
[0005] 更に別の実施形態では、管理コンピューター・システムは、管理者の制御の下でクライアント・コンピューター・システムにおいて様々な仮想ソフトウェア・アプリケーションが発行されることを示す入力を、コンピューター管理者から受け取る。次に、受け取った入力に応じて、管理コンピューター・システムは、様々な異なるクライアント・コンピューター・システムに対して仮想ソフトウェア・アプリケーションを発行する。発行することは、クライアント・コンピューター・システムの少なくとも1つにおいて、仮想アプリケーション・パッケージの一部である指定された高レベルのデータ・ファイルおよびディレクトリーのリストを含む高レベル・ファイル・リストを作成することと、仮想ソフトウェア・アプリケーションにより要求されたデータ・ファイルに対して、要求に応じてスパース・データ・ファイルを作成することとを、含む。
【0006】
[0006] この概要は、以下の詳細な説明で更に説明する概念のうちの選択したものを、簡素化した形で紹介するために提供されている。この概要は、特許請求の範囲に記載の主題事項の鍵となる特徴や本質的な特徴を特定することを意図しておらず、また、特許請求の範囲に記載の主題事項の範囲を決定する際の支援として用いることを意図していない。
【0007】
[0007] 更なる特徴および利点は、後の説明で述べられており、また、一部は、当業者には説明から明らかであり、また、ここでの教示を実施することにより学ぶことができる。本発明の特徴および利点は、特許請求の範囲において示す装置や組み合わせを用いることにより実現し、得ることができる。本発明の実施形態の特徴は、以下の説明および特許請求の範囲から更に完全に明らかになるか、または以下で述べる発明を実施することにより学ぶことができる。
【0008】
[0008] 本発明の実施形態の上記および他の利点および特徴を更に明確にするために、図面を参照して、本発明の実施形態のより特定的な説明を提供する。それらの図面は、単に、本発明の典型的な実施形態を示すものであり、従って、本発明の範囲を限定するものとして考慮されないと、理解される。本発明の実施形態は、図面を用いて更に特定的かつ詳細に記述され説明される。
【図面の簡単な説明】
【0009】
図1図1は、オン・デマンドのファイル・ステージングを用いて仮想ソフトウェア・アプリケーションを迅速に起動することを含む本発明の実施形態が動作できるコンピューター・アーキテクチャーを示す。
図2図2は、オン・デマンドのファイル・ステージングを用いて仮想ソフトウェア・アプリケーションを迅速に起動するための例示の方法のフローチャートを示す。
図3図3は、オン・デマンドのファイル・ステージングを用いて仮想ソフトウェア・アプリケーションを迅速に起動するための例示の方法のフローチャートを示す。
図4図4は、オン・デマンドのステージングを用いて仮想ソフトウェア・アプリケーションを迅速に発行するための例示の方法のフローチャートを示す。
図5図5は、オン・デマンドのレジストリー・ステージングを用いて仮想ソフトウェア・アプリケーションが迅速に起動させられるコンピューター・アーキテクチャーを示す。
【発明を実施するための形態】
【0010】
[0014] ここで説明される実施形態は、オン・デマンドのファイル・ステージングを用いて仮想ソフトウェア・アプリケーションを迅速に起動すること、オン・デマンドのレジストリー・ステージングを用いて仮想ソフトウェア・アプリケーションを迅速に起動すること、およびオン・デマンドのステージングを用いて仮想ソフトウェア・アプリケーションを迅速に発行することに関する。1つの実施形態では、コンピューター・システムは、仮想アプリケーション・パッケージの一部である指定された高レベルのデータ・ファイルおよびディレクトリーのリストを含む高レベル・ファイル・リストを、作成する。コンピューター・システムは、アプリケーション・ユーザーから、仮想アプリケーションがアクセスされるというインジケーションを受け取り、その受け取ったインジケーションに基づいて、アクセスされるそれらのデータ・ファイルに対してのスパース・データ・ファイルを動的に作成する。スパース・ファイルは、アクセスされるそれらのデータ・ファイルのファイル名およびファイル・サイズを含む。スパース・データ・ファイルに対応するデータは、リモート・データ・ストアに格納される。次に、仮想アプリケーションがスパース・データ・ファイルへアクセスすることを試みていると判定した後、コンピューター・システムは、リモート・データ・ストアから、要求に応じて、スパース・データ・ファイルに対応するデータを動的にストリーミングする。
【0011】
[0015] 別の実施形態では、コンピューター・システムは、仮想ソフトウェア・アプリケーションにより用いられる指定された高レベルのレジストリー・ファイルのリストを含む高レベル・レジストリー・ファイル・リストを、作成する。コンピューター・システムは、アプリケーション・ユーザーから、仮想アプリケーションがアクセスされるというインジケーションを受け取り、その受け取ったインジケーションに基づいて、アクセスされるものであり高レベル・リストにリストされるそれらのレジストリー・ファイルを、動的に作成する。このように、作成されたレジストリー・ファイルは、クライアント・コンピューター・システムのレジストリー内へ書き込まれる。次に、アプリケーションが追加のレジストリー・ファイルへアクセスすることを試みていると判定した後、コンピューター・システムは、要求に応じて、クライアント・コンピューター・システムのレジストリーにおいて追加のレジストリー・ファイルを作成する。
【0012】
[0016] 更に別の実施形態では、管理コンピューター・システムは、管理者の制御の下でクライアント・コンピューター・システムにおいて様々な仮想ソフトウェア・アプリケーションが発行されることを示す入力を、コンピューター管理者から受け取る。次に、受け取った入力に応じて、管理コンピューター・システムは、様々な異なるクライアント・コンピューター・システムに対して仮想ソフトウェア・アプリケーションを発行する。発行することは、クライアント・コンピューター・システムの少なくとも1つにおいて、仮想アプリケーション・パッケージの一部である指定された高レベルのデータ・ファイルおよびディレクトリーのリストを含む高レベル・ファイル・リストを作成することと、仮想ソフトウェア・アプリケーションにより要求されたデータ・ファイルに対して、要求に応じてスパース・データ・ファイルを作成することとを、含む。
【0013】
[0017] 以下の説明は、行うことができる幾つかの方法および方法の実行に関する。方法の実行は、特定の順に説明されるか、またはフローチャートにおいて特定の順に生じるように示されている場合があるが、特に述べていないかぎりは、必ずしも特定の順にする必要はなく、また、1つの実行が、その実行の前に別の実行が完了されることを条件とする場合には、特定の順にする必要があることに、留意されたい。
【0014】
[0018] 後に詳細に説明するが、本発明の実施形態は、例えば1以上のプロセッサーやシステム・メモリーなどのようなコンピューター・ハードウェアを含む特定用途向けまたは汎用のコンピューターを含むか、またはそのようなコンピューターを用いる。また、本発明の範囲内にある実施形態は、コンピューター実行可能命令および/またはデータ構造を搬送または格納する物理的および他のコンピューター可読媒体を含む。そのようなコンピューター可読媒体は、汎用または特定用途向けのコンピューター・システムによりアクセスできる任意の使用可能な媒体とすることができる。データの形でコンピューター実行可能命令を格納するコンピューター可読媒体は、コンピューター・ストレージ媒体である。コンピューター実行可能命令を搬送するコンピューター可読媒体は伝送媒体である。従って、限定ではなく例として、本発明の実施形態は、少なくとも2つの異なる種類のコンピューター可読媒体、即ち、コンピューター・ストレージ媒体および伝送媒体を含むことができる。
【0015】
[0019] コンピュータ・ストレージ媒体は、RAM、ROM、EEPROM、CD−ROM、RAMをベースにしたソリッド・ステート・ドライブ(SDD)、フラッシュ・メモリ、相変化メモリー(PCM)または他のタイプのメモリー、または他の光ディスク・ストレージ、磁気ディスク・ストレージ、または他の磁気記憶装置、またはコンピューター実行可能命令またはデータまたはデータ構造の形態で望まれるプログラム・コード手段を格納するために使用でき且つ汎用または特定用途向けのコンピュータによりアクセスできる他の任意の媒体を含む。
【0016】
[0020] 「ネットワーク」は、コンピューター・システムおよび/またはモジュールおよび/または他の電子デバイスの間での電子データのトランスポートを可能とする1以上のデータ・リンクおよび/またはデータ・スイッチとして定義される。ネットワーク(有線、ワイヤレス、または有線とワイヤレスとの組み合わせの何れか)を通じて情報がコンピューターへ転送または提供されるとき、コンピューターは、適切に、その接続を伝送媒体として見る。伝送媒体はネットワークを含むことができ、ネットワークは、コンピューター実行可能命令の形態やデータ構造の形態にされたデータや望まれるプログラム・コード手段を搬送するために使用でき、かつ汎用または特定用途向けのコンピューターによりアクセスできる。上記のものの組み合わせも、コンピューター可読媒体の範囲に含まれるべきである。
【0017】
[0021] 更に、コンピューター・システムの様々なコンポーネントへ到達すると、コンピューター実行可能命令またはデータ構造の形態のプログラム・コード手段は、伝送媒体からコンピューター・ストレージ媒体へ(またはその逆に)自動的に転送される。例えば、ネットワークまたはデータ・リンクを介して受け取ったコンピューター実行可能命令またはデータ構造は、ネットワーク・インターフェース・モジュール(例えば、ネットワーク・インターフェース・カード、即ち、「NIC」)内のRAMへバッファ記憶することができ、次に、コンピューター・システムのRAMへ、および/またはコンピューター・システムの揮発性の低いコンピューター・ストレージ媒体へ、最終的に転送される。従って、コンピューター・ストレージ媒体が、伝送媒体を用いる(主に用いることさえある)コンピューター・システム・コンポーネントに含まれ得ることを、理解すべきである。
【0018】
[0022] コンピューター実行可能(またはコンピューター理解可能)命令は、例えば、汎用コンピューター、特定用途向けコンピューター、または特定用途向け処理デバイスに、1つの特定の機能または1グループの機能を行わせる命令を含む。コンピューター実行可能命令は、例えば、バイナリーや、アセンブリ言語などのような中間フォーマット命令や、更にはソース・コードなどであり得る。主題事項は、構造的な特徴や方法論的な動作に対して特定的な言語で記載されているが、特許請求の範囲で定義される主題事項は、上記の特徴や動作に必ずしも限定されるものではない。むしろ、説明した特徴や動作は、特許請求の範囲を実施する際の例示的形態として開示されたものである。
【0019】
[0023] 本発明を、多くのタイプのコンピューター・システム構成を用いて、ネットワーク・コンピューティング環境において実施できることが、当業者には理解できるであろう。コンピューター・システム構成は、パーソナル・コンピューター、デスクトップ・コンピューター、ラップトップ・コンピューター、メッセージ・プロセッサー、手持ち型デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブルの消費者向け電子機器、ネットワークPC、ミニコンピューター、メインフレーム・コンピューター、モバイル電話、PDA、ページャー、ルーター、スイッチなどを含む。また、本発明は、分散型システム環境において実施することができる。分散型システム環境では、ローカル・コンピューター・システムとリモート・コンピューター・システムとがネットワークを介してリンクされ(有線データ・リンク、ワイヤレス・データ・リンク、または有線データ・リンクとワイヤレス・データ・リンクとの組み合わせの何れかによる)、それぞれがタスク(例えば、クラウド・コンピューティング、クラウド・サービスなど)を行う。分散型システム環境では、プログラム・モジュールは、ローカル・メモリー・ストレージ・デバイスとリモート・メモリー・ストレージ・デバイスとの双方に配されることができる。
【0020】
[0024] 図1は、本発明の原理を用いることができるコンピューター・アーキテクチャー100を示す。コンピューター・アーキテクチャー100はクライアント・コンピューター・システム101を含む。クライアント・コンピューター・システム101は、任意のタイプのローカル・コンピューター・システム、またはクラウド・コンピューター・システムを含めての分散型コンピューター・システムとすることができる。クライアント・コンピューター・システムは、特定のタスクを行うための様々なモジュールおよび他のエレメントを含む。例えば、スパース・ファイル作成モジュール115は、後に更に説明するように、スパース・ファイルを作成することができる。クライアント・コンピューター・システムは、1以上の仮想アプリケーション110を含む。各仮想アプリケーションは、アプリケーション・サーバーから、またはリモート・データ・ストアから、実行することができる。アプリケーションは、ローカルにインストールされていなくても、ローカルにインストールされたアプリケーションのように現れ得る。アプリケーションのファイル131は、必要に応じて、リモート・データ・ストア130からストリーミングすることができる。
【0021】
[0025] 最初に、クライアント・コンピューター・システム(例えば、101)に対して仮想アプリケーションが発行されたとき、仮想アプリケーションはファイル・リスト111を含む。ファイル・リストは、高レベルのデータ・ファイルおよびディレクトリーのリスト112を含む。従って、アプリケーションの対応するファイルの全てではないが幾つかは、そのファイル・リストにリストされる。実際のファイルは、ローカル・データ・ストア120(例えば、ハード・ディスク)には格納されず、ファイル・リストが格納される。仮想アプリケーションによりファイル・リストが要求されると、要求されたファイルのそれぞれに対してスパース・ファイルが作成される。ここで用いる「スパース・ファイル」という用語は、ファイルの名前122およびサイズ123を含むプレースホルダーを指す。従って、スパース・ファイルが存在するので、ファイルに対するローカル・ファイル・システム・コールは、肯定(positive)を返すことになり、ファイルがディスク上にローカルに存在することを示す。しかし、ファイルの実際のデータはディスクに格納されていない。ファイルの実際のデータ131は、仮想アプリケーションにより要求されるまで、リモート・データ・ストア130に格納されている。データが要求されると、データはローカル・データ・ストアへとストリーミングされ、少なくとも幾つかの実施形態では、後の使用のために格納される。
【0022】
[0026] アプリケーションによりファイルが必要とされると(例えば、ユーザーがアプリケーションの新たなフィーチャーへアクセスする)、スパース・ファイル作成モジュール115は、それぞれの要求されたファイルに対してスパース・ファイルを作成する。それらのスパース・ファイルは、木/ディレクトリー構造に作ることができる。最終的に(アプリケーションのフィーチャーの全てがアクセスされた場合)、アプリケーションのファイルおよびディレクトリーの全ては、ローカル・データ・ストア120に格納される。全くアクセスされていないファイルおよびディレクトリーは、ディスク(ローカル)に全く作成されず、従って、ディスク空間リソースを消費しないことに、留意されたい。幾つかの場合、管理者(例えば、管理ユーザー145)は、上述のオン・デマンドのステージングをオーバーライドして、全てのファイルをディスクへプリロードすることを選択することができる。そのような場合、アプリケーションのデータ・ファイルは、余すところなくストリーミングされてローカルに格納される。
【0023】
[0027] 以下で、次のものを含む様々な実施形態を説明する。1)発行オペレーションを実質的に即座に完了させる、迅速な発行。2)仮想アプリケーションの迅速な起動。仮想アプリケーションのファイルは、アプリケーションを起動する前に、ローカルに存在する必要はない。要求に応じてスパース・ファイルが作成され、要求に応じてデータが充填(ストリーミング)される。3)初回アクセス・ペナルティのみ。データ・ファイルが作成されストリーミングされた後、それらはもはやスパースではなく、更なるアップデートやアクセスを必要としない。低レベルのストリーミング・フィルターは、ファイル・システム・アクセスをもはやインターセプトも処理もしない。後の使用は、残りの仮想化ソフトウェア・スタックが仮想アプリケーションの名前空間をローカル・ファイル・システムの名前空間とブレンドする、というデータ・ファイル・システム・ブレンドを含むことができる。4)ディスク空間リソースは、必要な場合のみ、消費される。ファイルやディレクトリーが全くアクセスされない場合、データ・ファイルは、スパース的にさえ、ディスクに全く作成されない。データ・ファイルが列挙型(enumeration)を介してアクセスされたが何も読み出されない場合、ファイルはスパース的にのみ存在する。ファイル・コンテンツが読み出されたときのみ、何らかの有意なディスク空間が消費される。
【0024】
[0028] データ・ファイルと同様に、オペレーティング・システムのレジストリーを、スパース・ファイルおよびデータ・ストリーミングを用いて、動的に事前設定(populate)することができる。アプリケーションのレジストリー・コンテンツの軽量のリストが、クライアント・コンピューター・システムへダウンロードされる。アプリケーション発行オペレーションは、リストがダウンロードされるとすぐに、完了する。クライアント・コンピューター・システムでのバックグラウンド・プロセスは、レジストリー・コンテンツをシステムのレジストリーへロードする。レジストリーとファイルとの間には違いがあることに、注意されたい。ファイルおよびディレクトリーは要求に応じて作成されるが、それらのコンテンツは、アクセスされるまで(または管理者がステージングをオーバーライドしてパッケージ・コンテンツをプリロードするまで)、ターゲット・マシンへストリーミングされない。レジストリーは、クライアント・コンピューター・システムへプリロードされ得るが、それは発行オペレーションに対して同期した様式でなされる。
【0025】
[0029] アプリケーション・パッケージがターゲット・マシンで発行されるとき、様々なレジストリー・ファイルは、初めてアクセスされたきに、ローカルでコピーされ得る。レジストリー・ファイルは、標準フォーマットの整形式レジストリー・ハイブ・ファイル(well-formed registry hive file)である。これはファイルであるので、最初に、上述のオン・デマンドのステージングの方法を用いて作成される。作成された後、それは、クライアント・コンピューター・システムのネイティブのレジストリーへマウントされ(従って、そのコンテンツがストリーミングされ)、それにより、そのコンテンツは、読み出して、クライアント・コンピューター・システム101上の予め定めた場所へコピーすることができる。
【0026】
[0030] アプリケーション仮想化ソフトウェアは、オペレーティング・システムのネイティブのレジストリーを仮想アプリケーションのレジストリーとブレンドするために用いることができ、それにより、仮想アプリケーション110へ統合されたように見える。最初のアクセスにおいて、仮想アプリケーションを初期設定するために用いられる様々なレジストリー・キーが、作成される。最終的に、発行オペレーションおよび仮想アプリケーション使用の双方と非同期的に、パッケージ・レジストリー・コンテンツは、ターゲット・マシンのレジストリーへロードされる。
【0027】
[0031] ここで説明する実施形態は、以下のエレメントのうちの1以上のものを含む。1)クライアント・コンピューター・システムのセキュリティの継承。例えば、或るコンピューター・システは、別のコンピューター・システムとは異なるレジストリー・キーを有し得る。各コンピューター・システムのローカル・キーは、1つのアプリケーション・パッケージと共に、全てのクライアント・コンピューター・システムのキーをオーバーライドするのではなく、用いられる。2)クライアント・コンピューター・システムのレジストリーへのアクセスは通常通りである。何れかの既存のレジストリー保護が存在し、それぞれがプレマシン粒度(pre-machine granularity)を持つ。3)迅速な発行オペレーション。発行オペレーションは、スパース・レジストリー・ハイブ・ファイルがディスクに作成されるのさえ待たず、直ちに完了する。4)迅速なレジストリー・コンテンツの可用性(availability)。仮想アプリケーションが初めて起動したとき、レジストリー・ファイルがマウントされる。これは初めてのアクセスであるので、それはスパース的にディスクに作成され、この時にストリーミングされる。5)仮想アプリケーションの迅速な最初の起動。関連する唯一の同期するオペレーションは、アプリケーション・パッケージ・レジストリー・ハイブ・ファイルのディスクへのストリーミングおよびロードである。レジストリー・アクセスは、続いて監視される。ターゲット・マシンのレジストリー内のコピー先へまだコピーされていないコンテンツへの何れのアクセスも、優先順位が上げられる。6)各レジストリー・ファイルがターゲットのコピー先(クライアント・コンピューター・システムのレジストリー内)へコピーされた後、追加的にコピーすることは不要である。アプリケーション・パッケージ・レジストリー・ハイブ・ファイルがコピーされた後、ブレンドすることを必要とする名前空間を、仮想ソフトウェアによりブレンドすることができる。これらの構成は、図2、3、および4のそれぞれの方法200、300、および400と関連して後に更に説明する。
【0028】
[0032] 上述のシステムおよびアーキテクチャーを考慮すると、開示される主題事項に従ってインプリメントされ得る方法論は、図2、3、および4のフロー・チャートを参照すると、より良く理解できるであろう。説明を簡単にするために、方法論は、一連のブロックで示され、説明される。しかし、特許請求の範囲に記載の主題事項は、ブロックの順番により限定されないことを、理解および解釈すべきである。なぜなら、幾つかのブロックは、ここで示され説明される順とは別の順序で生じることや、他のブロックと同時に生じることがあり得るからである。更には、以下で説明する方法論を実施するために、全ての示したブロックを必要としない場合もある。
【0029】
[0033] 図2は、オン・デマンドのファイル・ステージングを用いて仮想ソフトウェア・アプリケーションを迅速に起動するための方法200のフロー・チャートを示す。ここで、方法200を、環境100のコンポーネントおよびデータを頻繁に参照して説明する。
【0030】
[0034] 方法200は、クライアント・コンピューター・システムにおいて、仮想アプリケーション・パッケージの一部である指定された高レベルのデータ・ファイルおよびディレクトリーのリストを含む高レベル・ファイル・リストを作成する動作を含む(動作210)。例えば、ファイル・リスト111は、コンピューター・システム101において作成することができる。ファイル・リストは、所与の仮想アプリケーション110の一部である高レベルのデータ・ファイルおよびディレクトリーのリストを含む。リスト112内のファイルは、アプリケーションのユーザー・インターフェース(UI)の一部であるファイルのリストと、アプリケーションの開始プロセスの一部、またはアプリケーションの主な機能の一部、またはアプリケーションの任意の他の部分のファイルのリストとを、含み得る。従って、高レベルのデータ・ファイルおよびディレクトリーのリスト112は、アプリケーションに応じて又は管理者の設定に応じて、非常に短いリストから非常に長いリストまでの何れかの範囲となる。各アプリケーションは、そのパッケージに属する設定ファイルを有することができる。従って、ファイル・リスト111は、単に、そのアプリケーション・パッケージのファイルまたはパッケージのファイルのサブセットを、含むことができる。
【0031】
[0035] 方法200はまた、アプリケーションのユーザーから、仮想アプリケーションがアクセスされることのインジケーションを受け取る動作を含む(動作220)。例えば、クライアント・コンピューター・システム101は、ユーザー105から、仮想アプリケーション110がアクセスされることを示すインジケーション106を、受け取ることができる。幾つかの場合、このインジケーションは、アプリケーションが既に実行されているときに、受け取ることができる。別の場合では、インジケーションは、アプリケーションが開始されること、または、より特定的には、アプリケーションのユーザー・インターフェースが開始されることを、示すことができる。そのような場合、仮想アプリケーションを初期設定する際に用いられるファイルに対して、スパース・ファイルが動的に作成される。
【0032】
[0036] 先に述べたように、スパース・ファイルは、対応するファイルのファイル名122およびファイル・サイズ123を含むのみのプレースホルダーである。スパース・ファイル作成モジュール115は、受け取ったインジケーションに基づいて、アクセスされるデータ・ファイルに対するスパース・データ・ファイル121を動的に作成することができる(プログラムを開始させるため、または、プログラムが既に実行されているときにはプログラムのフィーチャーへアクセスするため)。ユーザーのインジケーション106に応じて、スパース・ファイルは、アクセスされる各データ・ファイルに対して動的に作成される。スパース・ファイルは、クライアント・コンピューター・システムでローカル・データ・ストア120に、ローカルに作成される(動作230)。各スパース・ファイルは、ローカルに又はリモート・データ・ストア130に格納される、対応するデータ・ファイルを有する。幾つかの実施形態では、ファイルが初めてアクセスされるとき、そのファイルに対するスパース・ファイルがローカル・データ・ストアに作成される。次に、ファイル・システムによる何れの最初のリクエストも、スパース・ファイルを読み、次に、ファイルがローカルに格納されることを考える。ファイル・システムにおいて、ファイルのデータを実際に読み出すためのデータ・リード・リクエストが受け取られると、リクエストがリモート・データ・ストア(例えば、クラウド)へ送られ、適切なアプリケーション・ファイル131が取り出されて、クライアント・コンピューター・システムのローカル・データ・ストアへストリーミングされる。次に、ファイル・システムは、これ及び後続のデータ・リクエストに対して、ローカル・データ・ストアからデータを読み出す。
【0033】
[0037] 幾つかの場合、クライアント・コンピューター・システムは、ユーザー1−5からのインジケーション106が、指定されたディレクトリーがアクセスされるということを示すと、判定することができる。そのような場合、スパース・ファイル作成モジュール115は、指定されたディレクトリーおよびそのイミディエイト・コンテンツ(immediate contents)に対するスパース・ファイルを動的に作成することができる。従って、スパース・ファイルは、指定されたディレクトリーの何れのデータ・ファイルも、および何れのサブフォルダーの名前も、含むであろう。しかし、指定されたディレクトリーのサブフォルダーの下にあるデータ・ファイルやサブフォルダーに対するパース・ファイルは、作成されないであろう。このように、スパース・ファイルは、アクセスされた(またはアクセスを要求された)データ・ファイルに対してのみ作成される。ユーザーが、アクセスされる特定のファイルを要求し、そのファイルがサブディレクトリーに位置する場合、スパース・ファイル作成モジュール115は、指定されたデータ・ファイルのルート・ディレクトリーおよび介在する各サブディレクトリーに対するスパース・ファイルを、動的に作成することができる。
【0034】
[0038] 次に、上記で示したように、クライアント・コンピューター・システムのファイル・システムが、仮想アプリケーション110がスパース・データ・ファイル121の1以上のものへアクセスを試みていると判定したとき、クライアント・コンピューター・システムは、アクセスされたスパース・ファイルに対応するデータ・ファイルがリモート・データ・ストアから要求に応じて動的にストリーミングされることを、要求する(動作240)。それらのデータ・ファイルは、単一で、複数で、シリーズで、またはパラレルで、ストリーミングすることができる。ファイルは、ローカルに格納してアクセスすることができ、また、仮想アプリケーションへ直接にストリーミングすることができる。ファイルがローカル・データ・ストアに格納される場合、何れの後続のアクセス・リクエストも、データ・ファイルへローカルにアクセスすることにより、満たすことができる。仮想アプリケーション・レジストリー・ファイルもまた、同様にして作成することができる。スパース・レジストリー・ファイルは、仮想アプリケーションによりアクセスされるレジストリー・ファイルに対して、動的に作成することができる。これは、後に図3を参照して詳細に説明する。
【0035】
[0039] また、1以上の指定されたデータ・ファイルまたは仮想アプリケーションに対してオン・デマンドのステージングがオーバーライドされることを、管理ユーザー145が示し得ることに、留意されたい。例えば、アプリケーションが非常に小さい場合、管理者は、オン・デマンドのステージングがオーバーライドされること、および指定されたデータ・ファイルがローカル・データ・ストアへローカルにプリロードされることを、示すことができる。管理者がオン・デマンドのステージングをオーバーライドしたファイルまたはアプリケーションは、アプリケーションがローカルにインストールされたかのように、ファイル・システムにより通常通りにアクセスすることができる。更に、仮想アプリケーション・ファイルがローカル・データ・ストアに格納されたとき(ストリーミングされた後、またはオーバーライドが原因で)、ローカル・ファイル・システムの名前空間を、仮想アプリケーションにより直接的に使用するために、仮想アプリケーションにより用いられる名前空間とブレンドすることができる。
【0036】
[0040] 図3は、オン・デマンドのレジストリー・ステージングを用いて仮想ソフトウェア・アプリケーションを迅速に起動するための方法300のフロー・チャートを示す。ここで、方法300を、図4の環境400のコンポーネントおよびデータを頻繁に参照して説明する。
【0037】
[0041] 方法300は、クライアント・コンピューター・システムにおいて、仮想ソフトウェア・アプリケーションにより用いられる指定された高レベルのレジストリー・ファイルのリストを含む高レベル・レジストリー・ファイル・リストを作成する動作を含む(動作310)。例えば、レジストリー・ファイル・リスト461は、クライアント・コンピューター・システム450において作成することができる。ファイル・リストは、仮想アプリケーション460により用いられる高レベル・レジストリー・ファイルのリスト462を含む。ファイル・リスト111と同様に、レジストリー・ファイル・リストは、仮想アプリケーションにより用いられるレジストリー・ファイルの全てまたは一部を含み得る。クライアント・コンピューター・システムは、アプリケーション・ユーザー455から、仮想アプリケーションがアクセスされるというインジケーション456を、受け取ることができる(動作320)。そのインジケーションを受け取るとき、アプリケーションがまだ実行されていないことがあり得、その場合、インジケーションは、アプリケーションを開始することを要求している。インジケーションを受け取るときに、仮想アプリケーションが既に実行されている場合、そのインジケーションは、アプリケーションにより提供されるがまだ使用されていない機能を、要求するものであり得る。
【0038】
[0042] 受け取ったインジケーション456に応じて、レジストリー・ファイル作成モジュール465は、高レベル・リスト462においてリストされアクセスされるレジストリー・ファイルを、受け取ったインジケーションに基づいて、動的に作成することができる(動作330)。このように、動的に作成されたレジストリー・ファイルは、クライアント・コンピューター・システムのレジストリー470へ書き込まれる。従って、アクセスされる各レジストリー・ファイル471に対して、対応するスパース・ファイルが作成され得る。次に、レジストリー・ファイル476からのデータ、値、またはキーがアクセスされると、それらはリモート・データ・ストア475からストリーミングされる。レジストリー・ステージングは、少なくとも幾つかの場合において、複数の異なる仮想ソフトウェア・アプリケーションのために、組み合わせることができる。従って、複数の仮想アプリケーションに対するレジストリー・ファイルを、リモート・データ・ストアから同時に動的にストリーミングすることができる。また、レジストリー・ファイルの動的な作成は、クライアント・コンピューター・システムでバックグラウンド・プロセスとして行うことができることに、留意されたい。
【0039】
[0043] アプリケーション460が更なるレジストリー・ファイルへのアクセスを試みているとの判定に応じて、レジストリー・ファイル作成モジュールは、要求に応じて、クライアント・コンピューター・システムのレジストリー470に更なるレジストリー・ファイルを動的に作成することができる(動作340)。アプリケーションが初めて初期設定される場合、レジストリー・ファイルは、アプリケーションを初期設定する際に用いられるファイルに対して動的に作成される。アプリケーションが既に実行されている場合、レジストリー471は、新たにアクセスされたフィーチャーで使用するために、動的に作成される。動的に作成されたレジストリー・ファイル(作成された理由が何であれ)へのアクセスがもはや可能ではない場合、アプリケーションが要求しているキーのために必要なデータを含むレジストリー・ファイルは、要求に応じてクライアント・コンピューター・システムへストリーミングされる。更に、仮想アプリケーションからの何れのリクエストも、レジストリー・キー・レベルでインターセプトすることができる。次に、レジストリー・キーは、動的に作成されたレジストリー・ファイルからのデータを用いて、要求に応じて、各データ・リクエストに対して作成することができる。時間が経つと、アプリケーションに対する各レジストリー・ファイルは、動的に作成され、ローカル・システムのレジストリー470に格納される。それらのレジストリー・ファイルのそれぞれは、非同期で動的に作成することができる(または、幾つかの場合において、管理者によりプリロードすることを指定された場合にはプリロードすることができる)。
【0040】
[0044] 図4は、オン・デマンドのステージングを用いて仮想ソフトウェア・アプリケーションを迅速に発行するための方法400のフロー・チャートを示す。ここで、方法400を、環境100のコンポーネントおよびデータを頻繁に参照して説明する。
【0041】
[0045] 方法400は、コンピューター管理者から、1以上のクライアント・コンピューター・システムにおいて1以上の仮想ソフトウェア・アプリケーションが発行されることを示す入力を、受け取る動作を含む(動作410)。例えば、管理コンピューター・システム140は、管理ユーザー145から入力146を受け取る。入力は、クライアント・コンピューター・システム101(および任意の数の他のクライアント・コンピューター・システム)において様々な指定された仮想アプリケーション110が発行されることを、示し得る。受け取った入力に応じて、仮想アプリケーション発行モジュール141は、クライアント・コンピューター・システムに対して仮想アプリケーションを発行することができる(動作420)。発行は、少なくともクライアント・コンピューター・システム101において、仮想アプリケーション・パッケージの一部である指定された高レベルのデータ・ファイルおよびディレクトリーのリスト112を含む高レベル・ファイル・リスト111を作成する動作を、含む(動作420A)。発行はまた、スパース・ファイル作成モジュール115が、仮想ソフトウェア・アプリケーション110により要求されたデータ・ファイル131に対しての1以上のスパース・データ・ファイル121を、要求に応じて作成する動作を、含む(動作420B)。
【0042】
[0046] このように、管理ユーザーは、複数の異なるコンピューター・システムに対してアプリケーションを発行することができる。管理ユーザーは、インジケーションを送ることのみ必要とされ、アプリケーションのアイコンが、アプリケーションを発行された各コンピューター・システムに現れ得る。ユーザーが、アプリケーションを開始するためにアイコンをクリックすると、上述のオン・デマンドのステージングが開始する。アプリケーションを初期設定するために用いられる各ファイルは、作成された対応するスパース・データを有する。実際のデータが要求されるとき、そのデータは、リモート・データ・ストアからストリーミングされ、ローカルに格納されるか、または仮想アプリケーションへ直接にストリーミングされる。次に、仮想アプリケーションが実行中になると、アクセスされる何れの後続の仮想アプリケーション・ファイルも、作成された対応するスパース・ファイルを有することになり、リモート・データ・ストアからストリーミングされることになる。更に、アプリケーションが最初に発行されるとき、アプリケーションの初期設定の後に使用される指定された高レベルのレジストリー・ファイルのリストを含む高レベル・レジストリー・ファイル・リストが、作成され得る。次に、プログラムを初期設定するため又はアプリケーションの新たな部分へアクセスするためにアクセスされる、高レベル・リストにリストされるレジストリー・ファイルが、動的に作成され、クライアント・コンピューター・システムのレジストリーに書き込まれる。このように、アプリケーションを、実質的に即座に発行することができ、アプリケーションに対するアップデートを、管理ユーザーのインジケーションで動的に発行することができる。
【0043】
[0047] 従って、オン・デマンドのファイル・ステージングを用いて仮想ソフトウェア・アプリケーションを迅速に起動する方法、システム、およびコンピューター・プログラム製品が提供される。更に、オン・デマンドのレジストリー・ステージングを用いてアプリケーションを迅速に起動する、およびオン・デマンドのステージングを用いて仮想ソフトウェア・アプリケーションを迅速に発行する方法、システム、およびコンピューター・プログラム製品が提供される。
【0044】
[0048] 本発明は、本発明の精神および本質的特徴から離れずに、別の特定の形態で実施することもできる。説明した実施形態は、全ての点で、単なる例示であり、限定するものではないと考慮される。従って、本発明の範囲は、上記の説明ではなく、特許請求の範囲により示される。特許請求の範囲と等価の意味および範囲にある全ての変更は、特許請求の範囲の範囲内に含まれる。
図1
図2
図3
図4
図5