【誤訳訂正書】
【提出日】平成19年10月22日(2007.10.22)
【誤訳訂正１】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
クライアントコンピュータ上に１つ以上のアプリケーション環境を提供するためのシステムであって、
前記クライアントコンピュータのオペレーティングシステム上で実行するオペレーティングシステム保護レイヤであって、前記オペレーティングシステム上で１つ以上のアプリケーションが実行され、前記オペレーティングシステム保護レイヤが１つ以上のサブシステムを含む、前記のオペレーティングシステム保護レイヤを備え、
前記保護レイヤは、１つ以上のアプリケーションと前記オペレーティングシステムとの間におよび前記１つ以上のアプリケーションの各々間に設け、
前記保護レイヤは、前記１つ以上のアプリケーションの各々に対し、該各アプリケーションを実行するそれぞれの仮想動作環境を提供し、
前記それぞれの仮想動作環境は、前記１つ以上のアプリケーションの各々に対し、インストールを実行しないインストール環境として現れ、
これにより、「擬似インストール」を作成して、これにおいて、その設定のうちの少なくとも１つが、前記１つ以上のアプリケーションが実行される時に前記それぞれの仮想動作環境にもたらされ、
前記オペレーティングシステム保護レイヤは、前記１つ以上のアプリケーションの各々に対し全機能レジストリを提供する仮想レジストリを含む、
システム。
【請求項２】
前記オペレーティングシステム保護レイヤが共有システムリソースの使用を継続的に監視し、前記１つ以上のアプリケーションの各々に対し前記共有システムリソースのうちの少なくとも１つを仲介することを特徴とする請求項１記載のシステム。
【請求項３】
前記オペレーティングシステムがＷｉｎｄｏｗｓ（登録商標）ベースのオペレーティングシステムであることを特徴とする請求項１記載のシステム。
【請求項４】
前記オペレーティングシステム上で直接実行されるアプリケーションにより行われるものであれ、前記それぞれの仮想環境において前記１つ以上のアプリケーションにより行われるものであり、各オペレーティングシステム要求を前記オペレーティングシステム保護レイヤがインターセプトすることを特徴とする請求項１記載のシステム。
【請求項５】
前記オペレーティングシステム保護レイヤは、１つのアプリケーションの多数の別個のインスタンスの統合を管理することを特徴とする請求項１記載のシステム。
【請求項６】
前記オペレーティングシステム保護レイヤは、クライアントコンピュータ上の情報が前記１つ以上のアプリケーションの各々の挙動に干渉したりそれを変更するのを防止することを特徴とする請求項１記載のシステム。
【請求項７】
前記１つ以上のアプリケーションの各々の実行前、実行中、実行後のうちの少なくとも１つの間において前記それぞれの仮想環境を動的に変更するためのインターフェースをさらに含むことを特徴とする請求項１記載のシステム。
【請求項８】
単一のアプリケーションの複数のインスタンスが前記クライアントコンピュータ上で実行され、前記単一のアプリケーションの前記複数のインスタンスの各々が前記単一のアプリケーションの他の前記インスタンスとは異なった構成で動作することを特徴とする請求項１記載のシステム。
【請求項９】
前記オペレーティングシステム保護レイヤは、前記オペレーティングシステム保護レイヤ内にリソースが格納されている場合は、前記リソースで要求に応答し、格納されていない場合には、前記オペレーティングシステム保護レイヤは、前記要求が基礎となる前記システムレジストリに通過できるようにし、前記リソースは、前記オペレーティングシステム保護レイヤの前記サブシステムのうちの１つ以上を含むことを特徴とする請求項１記載のシステム。
【請求項１０】
前記リソースを変更する試みがなされた場合、前記オペレーティングシステム保護レイヤは、前記それぞれの適当な仮想環境に対してのみ前記変更が起きるのを可能にすることを特徴とする請求項９記載のシステム。
【請求項１１】
前記１つ以上のアプリケーションのうちの第１のものと前記１つ以上のアプリケーションのうちの第２のものとは、同じ１つのアプリケーションプログラムの２つの異なったバージョンのものであることを特徴とする請求項１記載のシステム。
【請求項１２】
前記オペレーティングシステム保護レイヤは、さらに、前記クライアントコンピュータに結合されたメモリに格納されたデータファイルを含み、該データファイルは、前記１つ以上の仮想環境を提供するためのデータおよび構成情報を含むことを特徴とする請求項１記載のシステム。
【請求項１３】
前記オペレーティングシステム保護レイヤの制御の下で論理的に保護された計算環境をさらに含み、該論理的保護計算環境は、前記１つ以上のアプリケーションのうちの少なくとも１つにより必要とされるシステムリソースに対応する実質上２重となるリソースを含み、前記二重となるリソースは、前記１つ以上のアプリケーションが、前記対応するシステムリソースに影響を与えずに実行できるようにすることを特徴とする請求項１記載のシステム。
【請求項１４】
前記それぞれの仮想実行環境の各々は、対応する複数のアプリケーションの保護された動作のための複数の論理的保護環境であり、各々がそれ自身の論理的保護環境内にあることを特徴とする請求項１記載のシステム。
【請求項１５】
１つ以上のアプリケーションプログラムを実行する方法であって、
オペレーティングシステムを有するコンピュータシステムを提供し、前記オペレーティングシステムがシステムリソースに対するアクセスを有しかつその使用を仲介し、
前記オペレーティングシステム上において保護プログラムを実行し、該保護プログラムは、１つ以上のアプリケーションプログラムを走らせるためのカスタム化された論理的に保護された環境を提供し、前記カスタム化された論理的保護環境は、前記１つ以上のアプリケーションプログラムの各々に対し、インストールを実行しないインストール環境として現れ、これにより、「擬似インストール」を作成して、これにおいて、その設定のうちの少なくとも１つが、前記１つ以上のアプリケーションプログラムが実行される時に前記それぞれの論理的保護環境にもたらされ、前記保護プログラムは、前記１つ以上のアプリケーションプログラムの各々に対し全機能レジストリを提供する仮想レジストリを含み、
前記オペレーティングシステム上における使用のために構成した１つ以上のアプリケーションプログラムを、それぞれの１つ以上のカスタム化した論理的保護環境において実行し、
前記１つ以上のアプリケーションプログラムとこれがその上で走るように構成された前記オペレーティングシステムとの間の相互作用を制御し、該制御は、前記１つ以上のアプリケーションプログラムと前記コンピュータシステムのシステムリソースとの間の相互作用を制御すること、前記１つ以上のアプリケーションプログラム間の相互作用を制御することを含み、
前記１つ以上のアプリケーションプログラムからの少なくともいくつかの要求に対し、前記要求を基礎となる前記オペレーティングシステムに転送せずに前記保護プログラムを使用してサービスすること、
を含む方法。
【請求項１６】
前記１つ以上のアプリケーションプログラムを前記論理的保護環境においてインストールすることをさらに含み、該インストールは、このインストールによって前記論理的保護環境の外の前記コンピュータシステムを変更することを許容しないことを特徴とする請求項１５記載の方法。
【請求項１７】
前記サブシステムは、プロセスマネージャ、仮想ファイルシステムマネージャ、ローダー、リカバリマネージャ、仮想環境マネージャのうちの１つ以上を含むことを特徴とする請求項１記載の方法。
【請求項１８】
前記仮想環境マネージャは、構成、ファイル、共有オブジェクト、デバイスおよびフォントを含むサブシステムのうちの１つ以上を含むことを特徴とする請求項１７記載の方法。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】０００６
【訂正方法】変更
【訂正の内容】
【０００６】
したがって、たとえばＷｉｎｄｏｗｓ（登録商標）ベースのオペレーティングシステム内の実施形態では、Ｗｉｎｄｏｗｓ（登録商標）Ｒｅｇｉｓｔｒｙに対する操作はすべてＷｉｎ３２ ＡＰＩによって行われ、好ましくはシステムが関数をフックするための手段を提供する。これにより、関数が呼び出されるたびに別の関数またはアプリケーションがその呼び出しをインターセプトする。最も好ましくは、サーバーから実行されているアプリケーションによる要求であれ、アクティブに管理されている構成キーに対してアプリケーションが出した要求であれ、要求に応えるためにシステムが適切なＡＰＩ関数それぞれをフックする。
【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】０００９
【訂正方法】変更
【訂正の内容】
【０００９】
図１は、本発明、オペレーティングシステム、およびソフトウェアアプリケーションの相対的関係を示すブロック略図である。本発明の好ましい実施形態は、オペレーティングシステム抽象化／保護レイヤ（１００）を提供する。これを「オペレーティングシステムガード」と呼ぶ。内部的には、多数のオペレーティングシステム（１０）が、実行時にアプリケーションが互いに影響し合うことを防止する障害ドメインを備える。しかし、共有されているシステムリソースとその他の多くのオペレーティングシステム機能によって、この保護ドメインが危険にさらされる。オペレーティングシステム抽象化／保護レイヤ（１００）は、アプリケーションレベル間のほとんどの相互作用をなくすために、プログラム制御された障壁をアプリケーション（５０）間に追加する。アプリケーション（５０）とオペレーティングシステム（１０）との間に配置されたアプリケーション抽象化／保護レイヤ（１００）が、オペレーティングシステム（１０）に対する直接的な変更か、実行されているアプリケーションのコンテキスト内に変更を含めるかを選択的に許可する。一例としてＷｉｎｄｏｗｓ（登録商標）ベースのシステムでは通常、Ｗｉｎｄｏｗｓ（登録商標）Ｒｅｇｉｓｔｒｙに対する操作はすべてＷｉｎ３２ ＡＰＩによって実行される。後述するように、ＱｕｅｒｙＲｅｇＥｘやＧｅｔＰｒｏｆｉｌｅＳｔｒｉｎｇなどのシステム関数が呼び出されるたびに別の関数またはアプリケーションがこの呼び出しをインターセプトするように、これらのシステム関数をフックすることができる。アクティブに管理されているアプリケーションによる要求であれ、アクティブに管理されている構成項目に対してアプリケーションが出した要求であれ、要求に応えるために本発明のオペレーティングシステムガード（１００）が適切なＡＰＩ関数それぞれをフックする。この方法では、これを実行するように明示的に構成されていない場合、本発明によって、エンドユーザーシステムを実際に変更することなくアプリケーション環境を作成することができる。また、実行時にアプリケーションによって実行された変更を存続させたり除去することも容易である。
【誤訳訂正４】
【訂正対象書類名】明細書
【訂正対象項目名】００２８
【訂正方法】変更
【訂正の内容】
【００２８】
名前付きオブジェクトが正しくロードされることも保証する方法を識別する必要性がある。Ｗｉｎｄｏｗｓ（登録商標）プラットフォームでは、ＭＳＶＣＲＴ．ＤＬＬがこの問題の大きな原因である。このオブジェクトの複数のバージョンが維持されている場合、上述のＲｅｇｉｓｔｒｙキーを動的に変更して、ＬｏａｄＬｉｂｒａｒｙ関数で正しいコンポーネントバージョンを解決することができる。正しいコンポーネントのロードを保証するもう１つの妥当な方法は、有効な検索パスを使用するようにプロセス環境を動的に編集することである。この検索パスによって、システムワイドコンポーネントの前にローカルコンポーネントが必ず解決される。正しい共有オブジェクトを解決する別の方法は、シンボリックリンクを使用することである。共有コンポーネントに対してシンボリックリンクを作成すれば、実行時にコンピュータのファイルシステムによって共有コンポーネントを必要なコンポーネントに帰着するよう解決することができる。最後の方法として、共有オブジェクトのファイルからの情報に対する実際のオープン／読み取り／クローズ要求を本発明によってインターセプトし、ローカルシステム上または本発明のサブシステム内に存在する可能性があるファイルの正しいバージョンに向けて動的に応答することができる。