JP2004533054A - オペレーティングシステム抽象化/保護レイヤ - Google Patents

オペレーティングシステム抽象化/保護レイヤ Download PDF

Info

Publication number
JP2004533054A
JP2004533054A JP2002589978A JP2002589978A JP2004533054A JP 2004533054 A JP2004533054 A JP 2004533054A JP 2002589978 A JP2002589978 A JP 2002589978A JP 2002589978 A JP2002589978 A JP 2002589978A JP 2004533054 A JP2004533054 A JP 2004533054A
Authority
JP
Japan
Prior art keywords
application
operating system
protection layer
abstraction
changes
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.)
Granted
Application number
JP2002589978A
Other languages
English (en)
Other versions
JP4178036B2 (ja
JP2004533054A5 (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 JP2004533054A publication Critical patent/JP2004533054A/ja
Publication of JP2004533054A5 publication Critical patent/JP2004533054A5/ja
Application granted granted Critical
Publication of JP4178036B2 publication Critical patent/JP4178036B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本発明は、クライアントコンピュータのオペレーティングシステムを変更することなくアプリケーションソフトウェア環境を作成するためのシステムを提供する。このシステムは、オペレーティングシステム抽象化/保護レイヤから成り、抽象化/保護レイヤは実行されているソフトウェアアプリケーションとオペレーティングシステムとの間に配置される。これにより、アプリケーションを実行できる仮想環境が提供され、アプリケーションレベル間の相互作用が実質的に除去される。好ましくは、オペレーティングシステムに対する直接的な変更を、実行されているアプリケーションのコンテキスト内で選択的に行い、抽象化/保護レイヤが管理設定に従って仮想環境を動的に変更する。また、一部の実施形態では、システムが共有システムリソースの使用状況を継続的に監視し、システムコンポーネントに対する変更を適用および除去するサービスとして機能する。このため、本発明は「オペレーティングシステムガード」を定義するものである。これらのコンポーネントには、DLLおよびその他の共有ライブラリコードで必要とされるセマンティクス、システムデバイスドライバ、フォント、レジストリ、その他の構成項目、ファイル、環境変数が含まれる。
【選択図】図1

Description

【技術分野】
【0001】
本出願は米国特許出願第09/456,181号の一部継続出願であり、その全体が十分に記載されているものとし、引用参考文献としてここに包含される。
【0002】
本発明は、コンピュータソフトウェア、より詳細にはオペレーティングシステムソフトウェアに関する。
【背景技術】
【0003】
多くの環境において、特にアプリケーションがネットワークを介して配布されるような環境において最も重要な機能は、複雑なインストール作業なしにアプリケーションをすぐに実行できることである。一般に、一部の従来システムでは、あたかもプログラムがインストールされているかのようにクライアントシステムを変更したり、あるいはソフトウェア自体を実際にインストールした後でこれらの変更を取り消して元の構成を復元する際に、大変手間がかかった。
【発明の開示】
【発明が解決しようとする課題】
【0004】
このような作業を行う場合、次のような多くの問題が生じる。すなわち、アプリケーションと現在のコンピュータ構成との間に矛盾、不一致があること、同じまたは異なるアプリケーションのインスタンスが複数存在すること、取り消し処理が複雑であるため、アプリケーションに対して厳密な処理を施して、アプリケーションに対するすべての変更の原因を明らかにする必要があること、複数のアプリケーションで共有ファイルと共有システムコンポーネントが使用されているため、取り消し処理とインストール処理が複雑になるといった問題である。
【課題を解決するための手段】
【0005】
本発明は、クライアントコンピュータのオペレーティングシステムを変更することなくアプリケーションソフトウェア環境を作成するためのシステムを提供する。このシステムは、オペレーティングシステム抽象化/保護レイヤから成り、抽象化/保護レイヤは実行されているソフトウェアアプリケーションとオペレーティングシステムとの間に配置される。これにより、アプリケーションを実行できる仮想環境が提供され、アプリケーションレベル間の相互作用が実質的に除去される。好ましくは、オペレーティングシステムに対する直接的な変更を、実行されているアプリケーションのコンテキスト内で選択的に行い、抽象化/保護レイヤが管理設定に従って仮想環境を動的に変更する。また、幾つかの実施形態では、システムが共有システムリソースの使用状況を継続的に監視し、システムコンポーネントに対する変更を適用および除去するサービスとして機能する。
【0006】
したがって、たとえばWindows(登録商標)ベースのオペレーティングシステム内の実施形態では、Windows(登録商標) Registryに対する操作はすべてWin32 APIによって行われ、好ましくはシステムが関数をフックするための手段を提供する。これにより、関数が呼び出されるたびに別の関数またはアプリケーションがその呼び出しを中断する。最も好ましくは、サーバーから実行されているアプリケーションによる要求であれ、アクティブに管理されている構成キーに対してアプリケーションが出した要求であれ、要求に応えるためにシステムが適切なAPI関数それぞれをフックする。
【0007】
本発明の別の好ましい実施形態では、追加機能が提供される。たとえば、オペレーティングシステム抽象化/保護レイヤが、実行されているアプリケーションインスタンスの数を認識することで、1つのアプリケーションの複数インスタンスの統合を管理する。このような実施形態では、実行されているアプリケーションインスタンスが1つのみではない場合、起動時とシャットダウン時の変更を避けることが最も好ましい。この実施形態では、種々異なるユーザーのために多重のアプリケーションインスタンスを実行できる、マルチユーザーオペレーティングシステムをサポートすることも可能である。
【0008】
このため、オペレーティングシステム抽象化/保護レイヤが、インストールを実行しないでもインストール環境であるように現れる環境をアプリケーションに提供する。これにより、アプリケーションの実行時にすべての設定が仮想環境にもたらされる「擬似インストール」が作成される。また、アプリケーションがインストールされている場合は、実行時にアプリケーションの動作を動的に変更する。好ましい実施形態は、クライアントコンピュータ上の情報によってアプリケーション動作が干渉障害を受けたり、変更されることを防止するための手段を提供し、最も好ましくは、管理設定に従って仮想環境を動的に変更するための手段を提供する。上記のように、一部の実施形態では、同じクライアントコンピュータ上で単一ソフトウェアアプリケーションの複数のインスタンスを実行することができる(本来そのように作成されていない場合でも)。このような実施形態では、単一アプリケーションの前記の複数のインスタンスのうちの少なくとも2つが1つ以上の仮想設定を共有するような、共有・制御されたコンテキストが提供される。
【発明を実施するための最良の形態】
【0009】
図1は、本発明、オペレーティングシステム、およびソフトウェアアプリケーションの相対的関係を示すブロック略図である。本発明の好ましい実施形態は、オペレーティングシステム抽象化/保護レイヤ(100)を提供する。これを「オペレーティングシステムガード」と呼ぶ。内部的には、多数のオペレーティングシステム(10)が、実行時にアプリケーションが互いに影響し合うことを防止する障害ドメインを備える。しかし、共有されているシステムリソースとその他の多くのオペレーティングシステム機能によって、この保護ドメインが危険にさらされる。オペレーティングシステム抽象化/保護レイヤ(100)は、アプリケーションレベル間のほとんどの相互作用をなくすために、プログラム制御された障壁をアプリケーション(50)間に追加する。アプリケーション(50)とオペレーティングシステム(10)との間に配置されたアプリケーション抽象化/保護レイヤ(100)が、オペレーティングシステム(10)に対する直接的な変更か、実行されているアプリケーションのコンテキスト内に変更を含めるかを選択的に許可する。一例としてWindows(登録商標)ベースのシステムでは通常、Windows(登録商標) Registryに対する操作はすべてWin32 APIによって実行される。後述するように、QueryRegExやGetProfileStringなどのシステム関数が呼び出されるたびに別の関数またはアプリケーションがこの呼び出しを中断するように、これらのシステム関数をフックすることができる。アクティブに管理されているアプリケーションによる要求であれ、アクティブに管理されている構成項目に対してアプリケーションが出した要求であれ、要求に応えるために本発明のオペレーティングシステムガード(100)が適切なAPI関数それぞれをフックする。この方法では、これを実行するように明示的に構成されていない場合、本発明によって、エンドユーザーシステムを実際に変更することなくアプリケーション環境を作成することができる。また、実行時にアプリケーションによって実行された変更を存続させたり除去することも容易である。
【0010】
ここで使用している「オペレーティングシステムガード」という用語は、ターゲットコンピュータまたはクライアントコンピュータ上の、実行されているアプリケーションとオペレーティングシステムとの間に配置され、アプリケーションを実行できる仮想環境を提供するレイヤを意味する。この仮想環境にはいくつかの目的がある。第1の目的は、実行されているアプリケーションによってクライアントコンピュータが変更されることを防止することである。アプリケーションがクライアントコンピュータの基本オペレーティングシステム設定の変更を試みると、この設定は保護され、仮想環境でのみ変更が「行われる」。たとえば、アプリケーションがMSVCRT.DLLなどの共有オブジェクトのバージョンを変更しようとすると、この変更がアプリケーションだけにとどめられ、クライアントコンピュータに常駐するコードは影響を受けない。
【0011】
第2の目的は、インストールを実行しないでもインストール環境であるようにみえる環境(すなわち「擬似インストール」または「インストールのような」環境)を、実行されているアプリケーションに提供することである。アプリケーションの実行時、またはアプリケーションが特定の設定を必要としているちょうどのタイミングですべての設定が仮想環境にもたらされる。たとえば、Adobe Photoshop(R)などのコンピュータプログラムが、一連のWindows(登録商標) RegistryエントリがHKEY_LOCAL_MACHINE¥Software¥Adobeにあると想定している場合に、Photoshopがインストールされていないためクライアントコンピュータ上のHKEY_LOCAL_MACHINE¥Software¥Adobeにこれらのエントリが存在しなければ、本発明のこの態様に従うシステムは、あたかもクライアントコンピュータ上に常駐するかのように、これらのレジストリエントリをPhotoshopプログラミングコードに対して「示す」。
【0012】
次に、本発明は、クライアント/ユーザーマシン上に存在する可能性がある情報によってアプリケーションの動作が干渉または変更されることを防止する。たとえば、ユーザーがHKEY_LOCAL_MACHINE¥Software¥Adobeの下にPhotoshopの古いバージョン用のレジストリエントリが既に存在している状態で、新しいバージョンを稼動したい場合、これらのエントリを新しいアプリケーションから隠して競合を防ぐことができる。
【0013】
最後に、本発明は、アプリケーションが現在書き込まれているため存在しない可能性があるアプリケーション動作をアンロックする。このアンロックが可能なのは、管理設定に従って仮想環境を動的に変更できるからである。たとえば、企業向けソフトウェアアプリケーションの典型的な例では、クライアントアプリケーションは、ユーザーがレジストリ内の設定から接続する必要があるデータベースのアドレスについての設定を読み取ることを期待することがある。このレジストリキーはHKEY_LOCAL_MACHINEに格納されることが多いため、この設定はクライアントコンピュータ全体に適用される。ユーザーが複数のデータベースに接続するには、クライアントを再インストールするか、またはこのレジストリキーの変更方法を知ってアプリケーションを実行するたびにレジストリキーを変更しなければならない。しかし、本発明を実現する場合、アプリケーションの2つのインスタンスを同じクライアントコンピュータ上で実行し、それぞれのインスタンスを異なるデータベースに接続できるようになる。
【0014】
コンテキスト
この機能があるため、システム内のプライベートコンテキストで各アプリケーションを実行することができる。アプリケーションに対してシステムがどのように見えるか、およびその挙動特性についてプライベートビューが与えられる。本発明は、その固有の性質によってこれを実現する。図2では、2つの個別アプリケーション(52と54)または同じアプリケーション(図1の50)の2つのインスタンスにプライベートコンテキストを提供することができる。このプライベートコンテキストでは、これらのアプリケーションまたはインスタンスが、システムサービス、構成、およびデータの個別コピーまたは異なるコピーを持つようにみえる。好ましい実施態様では、これがシステムの既定動作である。
【0015】
この着想を拡張することで、本発明のオペレーティングシステムガード(100)は、複数のアプリケーション(52と54)が一部またはすべての仮想設定を共有できるような、共有・制御されたコンテキストを提供することもできる。このことは、Microsoft Officeなどのアプリケーションスイートや、別のアプリケーションが存在すると動作が異なってくるアプリケーションにとって重要である。たとえば、メールマージや文書作成機能を実行するためのエンジンとしてMicrosoft Wordが多くのアプリケーションで使用されている。このようなアプリケーションはWordのインストールまたは有無に関する情報を知り、Wordの機能を利用できなければならない。好ましい実施形態では、同じアプリケーションの2つのインスタンスが既定で単一のコンテキストを共有し、一方、2つの別個のアプリケーションがプライベートコンテキストを維持する。図3に示したように、2つのアプリケーション(52と54)を実行可能であり、オペレーティングシステムガード(100)が、利用可能なシステムリソースの共有ビューを提供する。
【0016】
設計
図4に示したように、オペレーティングシステムガードは次のサブシステムから構成される。すなわち、コア(102)、構成マネージャ(104)、ファイルマネージャ(106)、共有オブジェクトマネージャ(108)、デバイスマネージャ(110)、フォントマネージャ(112)、プロセスマネージャ(120)、プロセス環境マネージャ(114)、ローダー(116)、およびリカバリマネージャ(118)から構成される。コア(102)、プロセスマネージャ(120)、およびローダー(116)を除くすべてのサブシステムは、以下で詳述する仮想化システムの要素である。コア(102)は主として、アプリケーションと、構成ファイルで定義されるアプリケーションのコンテキストを管理する。
【0017】
オペレーティングシステムガードのプロセスマネージャ(120)によって、当該のプロセスまたはスレッドイベントをコア(102)に通知できるようになる。また、プロセスマネージャ(120)は、プロセス空間の管理とスレッド処理のために、オペレーティングシステムに依存する実現化に対して抽象化レイヤを提供する。プロセスをまとめてアプリケーションバンドルにすることができる。アプリケーションバンドルとは、すべてが互いに仮想リソースを共有するプロセスのグループである。たとえば、Microsoft WordとMicrosoft Execlがアプリケーション一式として協働するために、仮想レジストリと仮想ファイルシステムを共有する場合がある。プロセスマネージャ(120)は、これらのアプリケーションバンドルを「アプリケーション」とみなす。プロセスマネージャ(120)がアプリケーションの解放を指示されるまで、アプリケーションに関する情報が存在する。別のプロセスをアプリケーションバンドルにロードする必要がある場合、アプリケーションが解放されていない限りロードが可能である。
【0018】
本発明のローダーサブシステム(116)を使用すれば、実行されているシステムに仮想環境を転送したり、システムから仮想環境を転送することができる。ローダー(116)。仮想化サブシステムそれぞれは、ローダー(116)に対して構成をシリアル化し、リバースプロセスを通じて構成を取得することができる。さらに、ローダー(116)は段階的ロード/アンロードを実行し、個々の段階の結果を組み合わせて単一の環境記述にすることができる。
【0019】
レジストリと構成
アプリケーションを正しく動作させるには、様々な量の構成情報が必要である。アプリケーションが構成を読み取ることができる構成レコードの数は、ゼロから数千の範囲におよぶ。Windows(登録商標)では、構成情報が一般に格納される場所が2つある。すなわち、Windows(登録商標) Registryとシステムレベル初期化ファイル(win.iniおよびsystem.ini)である。さらに、¥WINDOWS(登録商標)¥SYSTEMディレクトリは、アプリケーションがアプリケーション固有の構成または初期化ファイルをよく書き込む場所である。また、アプリケーションは、ローカルアプリケーションディレクトリ内の構成ファイルまたはデータファイルを使用して、追加情報を格納する。この情報が独自仕様の形式であるため扱いにくいことが多い。Windows(登録商標)以外のプラットフォームにはRegistryに相当するものはないが、構成情報がよく格納されるディレクトリが存在する。X Windows(登録商標)には、app−defaultsディレクトリがある。MacintoshにはSystem Folderがあり、その他のオペレーティングシステムには対応する要素が存在する。また図2に示したように、ほとんどのUNIX(登録商標)システムでは、個々のアプリケーション(52と54)それぞれがその構成(152と154)をローカルに格納することがほとんどである。
【0020】
本発明の一実施態様には、仮想Windows(登録商標) Registryコンポーネントが含まれる。このコンポーネントは全機能レジストリをアプリケーションに提供するが、基本システムレジストリに対する変更は防止する。アプリケーションがアクセスすることを期待するキーはすべて存在するが、これらのキーは仮想レジストリにのみ存在することができる。この方法では、本発明のオペレーティングシステムガード(100)とWindows(登録商標) Registryが、レジストリにアクセスするための2段階プロセスを形成する。アプリケーションがキーへのアクセスを必要とする場合、アプリケーションはRegistryに問い合わせる。オペレーティングシステムガードは、キーおよびキーの値(値を知っている場合)で応答する。そうでない場合、オペレーティングシステムガードは要求をWindows(登録商標) Registryまで通過させることを許可する。値の変更が試みられた場合、オペレーティングシステムガードは、それ自身に対する変更のみ許可する。次回アプリケーションがキーにアクセスするとき、そのキーはオペレーティングシステムガード内に存在し、要求は実際のRegistryまで流れ込まず、変更されない。
【0021】
オペレーティングシステムガードが使用するキーは、3つの個別セクションで指定される。これらのオペレーティングシステムガードキーはこれらのセクションで、既存キーの変更、キーの存在の削除、またはレジストリへの新しいキーの追加のためのコマンドとして指定される。このようにして、仮想レジストリは、全くシステムの意図通りに出現することができる。このことは、キーの有無がキーの実際の値と同じ程度に重要になることができるため、重要である。
【0022】
好ましい実施態様では、オペレーティングシステムガードはまず、アプリケーションに対する基本レジストリエントリを含むデータファイルをロードする。次に、ユーザーの基本設定を含む第2のデータファイルがロードされる。最後に、オペレーティングシステムガードは、ユーザーが上書きを禁止されているポリシー項目を含む一連のキーを任意にロードできる。この3つのファイルは順にロードされ、各ファイル内に重複する項目がある場合、前のファイル内の項目が上書きされる。ユーザーが初めてアプリケーションを実行するとき、ユーザー固有の情報が存在せず、アプリケーション既定情報のみ存在するため、第2のデータファイルは存在しない。しかし、各セッションの後、オペレーティングシステムガードはユーザーの変更内容を保存し、将来のセッションで使用するために第2のデータファイルを生成する。
【0023】
構成ファイルを2つの方法で変更できる。第1の方法では、構成ファイルをアプリケーションによって直接編集できる。この方法では、後述するオペレーティングシステムガードのファイルサブシステムがファイルへの変更を扱う。好ましい実施形態である第2の方法では、アプリケーションがWindows(登録商標) API関数GetProfileStringやWriteProfileStringなどを呼び出して、これらのファイルを変更することができる。この方法では、本発明のオペレーティングシステムガードが上述のとおりこれらの呼び出しを横取りし、内部からこれらの呼び出しを実行する。
【0024】
共有オブジェクト
オペレーティングシステムおよび実行されているアプリケーションで使用される多くのコンポーネントは、複数のアプリケーションまたはインスタンスで共有される。一般に、これは優れた方法である。この方法では、ディスク容量を節約でき、同じファイルを数多くコピーする必要がない。また、頻繁に使用されるコードのライブラリをオペレーティングシステムベンダーとサードパーティが作成・配布できるようになる。Windows(登録商標)プラットフォームでは、DLL(ダイナミックリンクライブラリ)がアプリケーション内や複数のアプリケーション間で共有されることが多い。その他のプラットフォームでも、問題は同じである。Macintoshでは、INITおよびその他のシステムコンポーネントがアプリケーション用にロードされる。これらのコンポーネントには複数のバージョンが存在し、一度に使用されるのがそれらのうちの1つのみである場合がある。UNIX(登録商標)システムでは、ロード時間の短縮やディスク容量の節約などの理由で動的共有オブジェクト(たとえば”.so”ライブラリファイル)がアプリケーションで使用される。多くのプログラムでは既定の”libc.so”が使用されるが、このライブラリファイルはlibc.so.3など一部のバージョンへのシンボリックリンクであることが多い。実際には、この機能が大きな混乱を招いてきた。これらの共有コンポーネントは改訂されることが多く、同じコンポーネントの複数のバージョンがインストールされる。アプリケーション作成者は、作成したソフトウェアが共有コンポーネントの1つまたは一部のバージョンとのみ動作できることを知っている。このため実際には、アプリケーションは希望のバージョンをインストールして、その他のバージョンを上書きすることが一般的である。その結果、同じシステム上で実行されている別のアプリケーションが動作できなくなる可能性がある。
【0025】
Windows(登録商標) 98とWindows(登録商標) 2000においてMicrosoftが開発したWindows(登録商標) Protected File System(WPFS)により、システム管理者はアプリケーションのベースディレクトリにXXXXLOCAL(XXXXは拡張子のない実行可能ファイル名)と呼ばれるファイルを作成できる。これにより、Windows(登録商標) LoaderがLoadLibraryの実行中にパス参照を解決する方法を変更する。ただし、問題を完全に解決するにはこれでは不十分である。不十分である第1の理由は、XXXXファイルのセットアップの成否がシステム管理者の知識に左右されるからである。システム管理者の知識は、人によって大きな差がある。第2の理由は、コンポーネントのバージョンを元に戻してからローカルディレクトリにインストールし、次に”.LOCAL”ファイルを作成しなければならないからである。これは、WINDOWS(登録商標)¥SYSTEMに配置された最も基本的なコンポーネントを除いては、簡単なプロセスではない。さらに、この解決法では、必要とされる機能すべてに対処できるわけではない。LoadLibraryの実行中、Windows(登録商標)は、コンポーネントが明示的または非明示的なLoadLibraryのどちらの結果として解決されたか、また、有名な(または周知の)DLLであることを示すRegistry Keyが存在するかどうかに応じて、異なるパス解決セマンティクスを使用する。このケースでは、LoadLibrary呼び出しは常にWINDOWS(登録商標)¥SYSTEMディレクトリに解決される。
【0026】
DLLおよびその他の共有コンポーネントは、実行されているアプリケーションが参照していない場合はコンポーネントが変更されないことを保証するために、参照カウントセマンティクスも保持する。実際には、オペレーティングシステムベンダーのアプリケーションとオペレーティングシステム自体のみ、この規約に従うことができる。
【0027】
原則として、常に共有オブジェクトが正しいコンポーネントに帰着するよう解決されることが望ましい。この機能を実現するには、アプリケーションがともに動作できるコンポーネントのバージョンまたはバージョンの範囲を知る必要がある。次に、アプリケーションの実行時に、本発明はコンポーネントが正しく解決されることを保証することが望ましい。本発明では、機能能力があれば、必要な場合はWPFSまたはその他のオペレーティングシステムを自動的に使用することも許容される。この場合、必要なコンポーネントを検出してローカルファイルシステムに配置する必要がある。この処理は、インストールの単なる監視よりも複雑である。なぜならば、必要なコンポーネントが既にインストールされている場合、インストールプログラムはコンポーネントをインストールしないことが多いからである。
【0028】
名前付きオブジェクトが正しくロードされることも保証する方法を識別する必要性がある。Windows(登録商標)プラットフォームでは、MSVCRT.DLLがこの問題の大きな原因である。このオブジェクトの複数のバージョンが維持されている場合、上述のRegistryキーを動的に変更して、LoadLibrary関数で正しいコンポーネントバージョンを解決することができる。正しいコンポーネントのロードを保証するもう1つの妥当な方法は、有効な検索パスを使用するようにプロセス環境を動的に編集することである。この検索パスによって、システムワイドコンポーネントの前にローカルコンポーネントが必ず解決される。正しい共有オブジェクトを解決する別の方法は、シンボリックリンクを使用することである。共有コンポーネントに対してシンボリックリンクを作成すれば、実行時にコンピュータのファイルシステムによって共有コンポーネントを必要なコンポーネントに帰着するよう解決することができる。最後の方法として、共有オブジェクトのファイルからの情報に対する実際のオープン/読み取り/クローズ要求を本発明によって中断し、ローカルシステム上または本発明のサブシステム内に存在する可能性があるファイルの正しいバージョンに向けて動的に応答することができる。
【0029】
いくつかの特別な形態が存在する。Windows(登録商標)プラットフォームでは、実行中の複数またはすべてのプロセス間でグローバルに共有するように、OLE、ODBC、MDAC、およびその他のベンダー固有の多数のコンポーネントが書き込まれている。OLEの場合は、個別プロセス間でデータおよびメモリー空間でさえも共有される。これらのコンポーネントの多くと同様に、OLEはOLE自身の複数のコピーが一度に実行されることを防止する。またOLEには、特定のアプリケーションについて特定バージョンのロードを必要とするバグと機能が多く存在する。本発明では、アプリケーションが必要とされるOLEのバージョンをどれでもロードすることができ、同じバージョンのOLEを使用する別のコンポーネントとセマンティクスを共有することも可能である。
【0030】
一般に、明確に構成されていない場合は、競合防止のために共有オブジェクトをプライベートにロードする必要がある。コンポーネントをプライベートにロードするための方法は、コンポーネントの完全なアンロードや別のソフトウェアアプリケーション(オペレーティングシステムガードによってアクティブに管理されているかどうかにかかわらず)に対する正しいコンポーネントのロードを妨げてはならない。さらに、システムがクラッシュした場合、基本オペレーティングシステムが上書きまたは変更されていないクリーンな状態に回復する必要がある。
【0031】
ファイル
多くのアプリケーションは、設定エントリまたはその他のアプリケーションデータを格納するためにアプリケーション内でデータファイルを使用する。本発明は、上記の仮想レジストリに酷似した仮想ファイルシステムを提供する。アプリケーションが起動する前に、本発明はファイルシステム変更内容のリストをロードすることができる。変更内容には、ファイルを隠すこと、仮想環境にファイルを追加すること、仮想環境内の別のファイルへファイルをリダイレクトすることなどが含まれる。アプリケーションがファイルにアクセスしたりファイルを変更した場合は必ずオペレーティングシステムガードが、そのファイルをリダイレクトする必要があるかどうかをチェックし、リダイレクトする必要がある場合、好ましい実施形態では、その要求をオペレーティングシステムガード構成で指定された場所にリダイレクトする。
【0032】
ユーザーのローカルドライブに書き込むためにアプリケーションが新規ファイルの作成または既存ファイルのオープンを試みた場合、オペレーティングシステムガードは、リダイレクトされた場所でそのファイルが実際に作成または変更されることを保証しなければならない。後でアプリケーションが再ロードされる場合、このファイルマッピングをオペレーティングシステムガードの仮想環境に再ロードする必要がある。ユーザーのローカルドライブ上に常駐する既存ファイルの変更要求があった場合、オペレーティングシステムガードはそのファイルをリダイレクションポイントにコピーしてから、要求を継続しなければならない。ファイルパスの安全なマッピングを保証するために、リダイレクトされたファイルは元のファイルと同じ名前であってはならない。好ましい実施形態では、システムのセキュリティとアプリケーションの互換性を最大限確保するために、INIファイルをこのように扱う。
【0033】
本発明は、ネットワークを介して配布されるアプリケーションに対して特に有用である。このような実現化では、ソフトウェアアプリケーションが複数種類のデータから構成されることを理解することが重要であり、ソフトウェアアプリケーションで使用されるファイルの大部分を個別の論理ドライブに格納することが最も望ましい。ファイルベースとレジストリベースの両構成は、ユーザー固有であってもシステムワイドであってもよい。使用されるアプリケーション配布システムは、各ファイルがこれらの種類のいずれであるかをマークする必要がある。この情報は、オペレーティングシステムガードシステムが適切に動作するために役立つ。
【0034】
デバイスドライバ
多くのアプリケーションは、ハードウェアサポートまたはオペレーティングシステムとの低レベルの直接的相互作用など一部の機能を実現化するために、デバイスドライバまたはその他のオペレーティングシステムレベルソフトウェアを使用する。本発明では、オペレーティングシステムガードが、これらのコンポーネントをアプリケーションの仮想環境に対して動的に、そして、なるべくプライベートに追加および削除する機能を提供する。
【0035】
多くのデバイスドライバは、動的にロード可能であるように構築される。可能であればすべてのデバイスドライバを動的にロードすることが、好ましい実施形態である。起動時にデバイスドライバを静的にロードする必要がある場合、アプリケーションを実行する前にユーザーはこの知識を得ていなければならない。システムを再起動した場合、アプリケーションを前回停止したところから継続することが望ましい。しかし、デバイスドライバのほとんどは動的にアンロードすることができない。ドライバを動的にアンロードしないことが望ましいが、これが実現できない場合は、次回の再起動時に削除するようにドライバがマークされる。ユーザーにこのことを通知することが望ましい。次回の再起動の前のアプリケーション実行が2度目である場合、システムはドライバが存在することを認識し、2度目のインストールを試みずに、終了を待ってから次回の再起動時に削除可能なコンポーネントを認識することが望ましい。
【0036】
本発明を正しく機能させるには、各デバイスドライバクラスについて基本的な類似点と相違点を特徴づけることが大切である。常駐するシステムハードウェア用のデバイスドライバをロード・アンロードすることは望ましくない。プログラミングの容易さという点ではこれは好ましい実施形態ではないが、本発明の範囲を逸脱するものではなく、特別な理由で必要とされることがある。たとえば、本発明を使用して配布・実行されるアプリケーションの使用許諾を制限する場合である。
【0037】
Microsoft以外のプラットフォームでは、デバイスドライバの扱いが異なることが多い。Macintoshシステムは静的ドライバと動的ドライバの双方をサポートするが、両ドライバはすべて同じ方法でインストール・削除される。Macintoshシステムフォルダにリンクすることにより、必要なサポートが提供される。UNIX(登録商標)システムではほとんどの場合、デバイスドライバを使用するために、実行中のUNIX(登録商標)カーネルを変更した後で再起動しなければならない。このプロセスは非常に複雑な場合がある。好ましい実施形態では、このプロセスが自動化される(アプリケーション完了後のカーネルリセットなど)。このプロセスの一般的条件は、Windows(登録商標)アプリケーションについて説明した条件(実際の編集処理段階)と同じであり、このようなオペレーティングシステムに熟知したユーザーは再起動を実行することができる。
【0038】
最後に、システム障害が発生した場合にドライバを回復・削除できることが望ましい。したがって、システムの完全性を保持するために必要なデータまたはプロセスはすべて本発明の好ましい実施形態である。さらに、いずれの種類のデバイスドライバも本発明によって都合良くまたは効果的に提供されるとは限らず、このことは、特に常設のハードウェアの付加デバイスに関連するものに成り立つこともまた当業者に了解されることである。
【0039】
その他の項目
本発明では、代替オペレーティングシステム上ではそれらの動作または存在形態が異なるものとなる発明のいくつかのコンポーネントのあることが認められる。これらのコンポーネントには、フォント、プロセス、環境変数などが含まれる。
【0040】
一部のアプリケーションでは、正しく実行するためにフォントをインストールしなければならない。必要なフォントはいずれも、オペレーティングシステムガードの構成ファイルで指定される。オペレーティングシステムガードはアプリケーションの実行に先立ってこれらのフォントを有効にし、必要であれば、実行後にフォントを削除する。ほとんどのシステムには、フォントを登録するプロセスまたはフォントの存在をシステムに通知するプロセスの他に、フォントを格納する共有領域があり、オペレーティングシステムガードはこれらの利用可能な方法を活用する。
【0041】
Windows(登録商標)では、フォントは¥WINDOWS(登録商標)¥FONTSディレクトリにコピーされる。ただし、これによって、実行中のプログラミングでそのフォントが利用できることが保証されるわけではない。好ましい実施形態では、プログラムがWindows(登録商標) APIを使用してフォントにアクセスする場合、CreateScalableFontResource/AddFontResourceなどのWin32 API呼び出しでフォントを登録する必要がある。これにより、フォントがシステムフォントテーブルに挿入される。挿入が完了すると、オペレーティングシステムガードは別の適切なAPI呼び出し(RemoveFontResourceなど)でフォントを削除し、システムからファイルを削除することができる。別の実施形態として、オペレーティングシステムガードは仮想レジストリ方法で説明したようにAPI関数をフックすることができる。さらに、オペレーティングシステムガードはファイルサブシステムを使用して、実際のフォントファイルが実行されているシステムに配置されることを防止することができる。
【0042】
Macintoshでは、このプロセスは酷似しており、Macintoshシステムフォルダ内のファイルと登録アクティブ化に基づいている。しかしUNIX(登録商標)では、このプロセスはアプリケーションに依存する。最も一般的には、適切な場所で解決された通常ファイルとしてフォントリソースがシステムに追加されるため、フォントリソースに名前でアクセスすることができる。多くのMotifシステムでは、フォント記述をフォントリソースファイルに配置する必要がある。これにより、フォントの解決が可能になる。MotifまたはXアプリケーションは、解決サブシステムまたはた直接呼び出しのいずれかでフォントを呼び出すことができる。最近では、MotifおよびCDEベースシステムの多くで、Adobeスケーラブルポストスクリプトフォントが利用されている。このフォントは、Adobeタイプ管理システムで管理する必要がある。ただし例外があり、上述のように、Windows(登録商標)またはその他のオペレーティングシステムの既定フォント管理システムに代わるシステムが存在する。Adobe Type Managerは、他のサードパーティのタイプ管理システムと同様に、このプロセスに代替インタフェースを提供する。ほとんどの場合、このインタフェースをサポートするか無視するかを決めることが望ましい。オペレーティングシステムガードの目的は、これらのシステムすべてに対応する汎用インタフェースを提供することではなく、オペレーティングシステム固有のサブシステムに対応するインタフェースのみ提供することである。
【0043】
環境変数の設定を必要とするアプリケーションが多い。このことはUNIX(登録商標)システムに最もよく当てはまるが、当初UNIX(登録商標)上で書き込まれWindows(登録商標)オペレーティングシステムに移植されたソフトウェアでも環境変数が頻繁に使用される。Windows(登録商標)オペレーティングシステム上のアプリケーションはDOS PATH環境変数に強く依存し、アプリケーション固有のエントリを設定することが多い。Windows(登録商標) 9x/Me環境では、基本的にはDOSサブシステムであるため適用可能である多くの環境設定が存在する。アプリケーションが特定の変数を必要とする場合、または既存の環境変数に値を設定する必要がある場合、必要な環境変数はオペレーティングシステムガードの構成ファイルで指定される。オペレーティングシステムガードは、起動時にアプリケーションのメインプロセスに対してこれらの変数を設定する。アプリケーションは通常、動作時に環境変数を変更しないため、仮想環境はこれらの呼び出しを捕捉せず、レジストリと構成サブシステムが提供する機能一式も提供しない。
【0044】
回復
これまで示してきたいくつかのケースでは、オペレーティングシステムを実際に変更しなければならない。デバイスドライバとフォントが変更されることが多い。さらに、次回のアプリケーション実行時にも存続し利用可能でなければならない仮想環境を変更することもできる。オペレーティングシステムガードはシステムに対する変更を回復し、できるだけ早くシステムから変更を除去できなければならない。別の方法では、アプリケーション実行時にシステムがクラッシュした場合、オペレーティングシステムガードは、再起動時などにシステムに対する変更を除去するために十分な情報を追跡し、仮想環境に対する変更を追跡することが望ましい。好ましい実施形態では、この追跡はトランザクションログとして実現化される。ただし別の実施形態では、変更を取り消すことができるようにシステムの起動時に読み取ることができる他の類似コンポーネントとして実現化することもできる。
【0045】
仮想化の制御
本発明の重要な態様は、オペレーティングシステムガードが実行できる仮想化の様々な局面の制御に関する。好ましい実施形態では、ソフトウェアシステムの正しい状態を確実に制御できる計装プログラムが存在する。また、システムによって仮想化される項目を管理者とエンドユーザーが視認および変更できるようにする方法も含まれる。
【0046】
自動プログラムでは、制御の状態を評価するために制御対象のアプリケーションが監視される。自動プログラムは、アプリケーションのインストールプロセス時、アプリケーションの実行時、またはその両方でこの監視タスクを実行できる。好ましい実施形態では、オペレーティングシステムガードがラッパーアプリケーションに組み込まれる。インストール後、またはソフトウェアを1回以上使用した後、ラッパーアプリケーションはソフトウェアの活動すべての詳細リストについてオペレーティングシステムガードに問い合わせる。この活動リストを基に、ラッパーアプリケーションは、以降の使用時にオペレーティングシステムガードをロードし作動させるために必要な構成ファイルを作成する。
【0047】
好ましい実施形態では、オペレーティングシステムをインストールプロセスの一部として使用する場合、オペレーティングシステムガードは、インストールをその環境にのみ入れることを許可する仮想レイヤとして機能する。インストール後、後の再ロードに備えてすべてのファイルや設定などをダンプすることができる。この方法では、インストールによって元のシステムが変更されることはなく、必要な構成ファイルが自動的に作成される。アプリケーションの使用中にオペレーティングシステムガードを使用すると、環境に対する差分変更の記録、または構成ファイルの再作成が可能になる。
【0048】
オペレーティングシステムガードは、後処理のために情報をラッパーアプリケーションに渡す。好ましい実施形態では、システムが作成できる自動エントリに加え、オペレーティングシステム固有、アプリケーション固有、またはドメイン固有の知識でラッパーアプリケーションがプログラムされる。この知識は、構成項目またはその他のエントリの周知の使用状況を反映するようにプロセスの出力を変更するために使用される。好ましい実施形態では、コーディングを変更するために、ルールベースシステムを利用して、監視された動作と周知のシナリオを比較する。
【0049】
ラッパーアプリケーションは、プロセスの構成出力に対するビューアおよび/またはエディタとしても使用される。好ましい実施形態では、このエディタを使用してシステム管理者は、構成に対する項目または項目グループの追加、編集、または削除ができる。エディタによって構成を観察する際、管理者は構成の複製を作成し、アプリケーションレベルの変更またはユーザー独自の変更を行うために必要に応じて特定の項目を変更することもできる。
【0050】
図1では、本発明の一実施形態の機能を示している。この実施形態では、アプリケーション/ユーザーデータ(60)が2セットある。オペレーティングシステムガード(100)は、アプリケーション(50)の2つのインスタンスが互いに干渉することを防止する。また上述のように、オペレーティングシステムガード(100)は抽象化レイヤとして機能し、クライアントコンピュータのアプリケーションソフトウェア(50)と実際のオペレーティングシステム(10)との間でコマンドと通信を収集する。矢印で示したように、一部のコマンドはオペレーティングシステムガードとソフトウェアアプリケーションとの間にある。このことが、一般的なインストールと違う点である。一般的なインストールでは、これらのコマンドはオペレーティングシステム自身によって実行されるため、オペレータの意図とは必ずしも一致しない変更がクライアントコンピュータに生じる。一方、その他のコマンドはオペレーティングシステムガードを経由してオペレーティングシステム自身に転送される。
【0051】
好ましい実施形態と合わせて本発明を詳述してきたが、添付した請求項によって網羅される本発明の範囲から逸脱することなく形態と詳細を様々に変更できることは当業者にとって理解されるであろう。
【図面の簡単な説明】
【0052】
【図1】本発明、オペレーティングシステム、およびソフトウェアアプリケーションの相対的関係を示すブロック略図である。
【図2】を示すブロック略図である。
【図3】を示すブロック略図である。
【図4】を示すブロック略図である。
【符号の説明】
【0053】
10:オペレーティングシステム
50:アプリケーション
52:アプリケーション1、インスタンス1
54:アプリケーション1、インスタンス2
60:アプリケーション/ユーザーデータ
100:オペレーティングシステムガード
102:コア
104:構成マネージャ
106:ファイルマネージャ
108:共有オブジェクトマネージャ
110:デバイスマネージャ
112:フォントマネージャ
114:プロセス環境マネージャ
116:ローダー(サブシステム)
118:リカバリマネージャ
120:プロセスマネージャ
152:構成
154:構成

Claims (17)

  1. クライアントコンピュータのオペレーティングシステムを変更することなくアプリケーションソフトウェア環境を作成するための、オペレーティングシステム抽象化/保護レイヤから成るシステムであって、実行されているソフトウェアアプリケーションと前記オペレーティングシステムとの間に前記抽象化/保護レイヤを挿入するようにし、これにより、アプリケーションを実行できる仮想環境を提供しアプリケーションレベル間の相互作用を実質的に除去するものであることを特徴とするシステム。
  2. オペレーティングシステムに対する直接的な変更が、実行されているアプリケーションのコンテキスト内で選択的に行われるものであることを特徴とする請求項1記載のシステム。
  3. 抽象化/保護レイヤが管理設定に従って仮想環境を動的に変更するものであることを特徴とする請求項2記載のシステム。
  4. システムが共有システムリソースの使用状況を継続的に監視し、システムコンポーネントに対する変更を適用および除去するサービスとして機能するものであることを特徴とする請求項1記載のシステム。
  5. オペレーティングシステムがWindows(登録商標)ベースのオペレーティングシステムであるようにし、Windows(登録商標) Registryと.iniファイルに対する操作はすべてWin32 APIによって行われるものであり、関数が呼び出されるたびに別の関数またはアプリケーションがその呼び出しを中断するように前記関数をフックするための手段からさらに有することを特徴とする請求項1記載のシステム。
  6. サーバーから実行されているアプリケーションによる要求であれ、アクティブに管理されている構成キーに対してアプリケーションが出した要求であれ、要求に応えるためにシステムが該当するAPI関数それぞれをフックするものであることを特徴とする請求項5記載のシステム。
  7. 前記オペレーティングシステム抽象化/保護レイヤは、実行されているアプリケーションインスタンスの数を認識することで、1つのアプリケーションの多重のインスタンスの統合を管理するものであることを特徴とする請求項1記載のシステム。
  8. 実行されているアプリケーションインスタンスが1つのみではない場合、前記オペレーティングシステム抽象化/保護レイヤは、起動時とシャットダウン時の変更を避けるものであることを特徴とする請求項7記載のシステム。
  9. 前記オペレーティングシステム抽象化/保護レイヤが、インストールを実行しないでもインストール環境のように出現する環境をアプリケーションに提供することにより、アプリケーションの実行時にすべての設定が仮想環境にもたらされる「擬似インストール」が作成されるものであることを特徴とする請求項1記載のシステム。
  10. クライアントコンピュータ上の情報によってアプリケーションの動作が干渉されたり変更されることを防止するための手段をさらに有することを特徴とする請求項9記載のシステム。
  11. 管理設定に従って仮想環境を動的に変更するための手段をさらに有することを特徴とする請求項9記載のシステム。
  12. 単一ソフトウェアアプリケーションの複数のインスタンスが同じクライアントコンピュータ上で実行されるものであり、前記複数のインスタンスの各々が1つの異なるデータベースに接続されるものであることを特徴とする請求項9記載のシステム。
  13. 単一アプリケーションの前記の複数のインスタンスのうち少なくとも2つが、1つ以上の仮想設定を共有するような、共有・制御されたコンテキストを提供するものであることを特徴とする請求項12記載のシステム。
  14. 特定のアプリケーションについてインストール時に命令を受け取るデバイスドライバモニターをさらに有することを特徴とする請求項1記載のシステム。
  15. 全機能レジストリをアプリケーションに提供するが、基本システムレジストリに対する変更は防止する仮想Windows(登録商標) Registryコンポーネントをさらに有することを特徴とする請求項1記載のシステム。
  16. キーおよびキーの値がオペレーティングシステム抽象化/保護レイヤに格納されている場合は、オペレーティングシステム抽象化/保護レイヤが前記キーおよびキーの値で応答し、格納されていない場合は、オペレーティングシステム抽象化/保護レイヤが要求をWindows(登録商標) Registryまで通過させることを許容するものであることを特徴とする請求項1記載のシステム。
  17. 前記キーの値の変更が試みられた場合、オペレーティングシステム抽象化/保護レイヤは、それ自身に対する変更のみを許容するものであることを特徴とする請求項16記載のシステム。
JP2002589978A 2001-05-16 2002-05-15 オペレーティングシステム抽象化/保護レイヤ Expired - Fee Related JP4178036B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/859,209 US7028305B2 (en) 2001-05-16 2001-05-16 Operating system abstraction and protection layer
PCT/US2002/015378 WO2002093369A1 (en) 2001-05-16 2002-05-15 Operating system abstraction and protection layer

Publications (3)

Publication Number Publication Date
JP2004533054A true JP2004533054A (ja) 2004-10-28
JP2004533054A5 JP2004533054A5 (ja) 2008-01-10
JP4178036B2 JP4178036B2 (ja) 2008-11-12

Family

ID=25330346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002589978A Expired - Fee Related JP4178036B2 (ja) 2001-05-16 2002-05-15 オペレーティングシステム抽象化/保護レイヤ

Country Status (8)

Country Link
US (2) US7028305B2 (ja)
EP (1) EP1419437B1 (ja)
JP (1) JP4178036B2 (ja)
AU (1) AU2002309834B2 (ja)
CA (1) CA2465880C (ja)
ES (1) ES2582164T3 (ja)
TW (1) TW588255B (ja)
WO (1) WO2002093369A1 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008509475A (ja) * 2004-08-03 2008-03-27 ソフトリシティ インコーポレイテッド コンテキストポリシー制御によるアプリケーション間の関連付けの制御のためのシステムおよび方法
US7676813B2 (en) 2004-09-30 2010-03-09 Citrix Systems, Inc. Method and system for accessing resources
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
JP2010205267A (ja) * 2009-03-03 2010-09-16 Symantec Corp 仮想化サブレイヤを統合する方法およびシステム
US7853947B2 (en) 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US7890570B2 (en) 2007-09-12 2011-02-15 Citrix Systems, Inc. Methods and systems for providing, by a remote machine, access to graphical data associated with a resource provided by a local machine
US7900240B2 (en) 2003-05-28 2011-03-01 Citrix Systems, Inc. Multilayer access control security system
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
JP2013541113A (ja) * 2010-10-27 2013-11-07 マイクロソフト コーポレーション ステートレスクラウドコンピューティング環境において動作するステートフルアプリケーション

Families Citing this family (199)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453334B1 (en) * 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
US20030055967A1 (en) * 1999-05-17 2003-03-20 David Dewitt Worley Encapsulating local application environments in a cluster within a computer network
US7096381B2 (en) * 2001-05-21 2006-08-22 Self Repairing Computer, Inc. On-the-fly repair of a computer
US7111201B2 (en) * 2000-05-19 2006-09-19 Self Repairing Computers, Inc. Self repairing computer detecting need for repair and having switched protected storage
US7137034B2 (en) * 2000-05-19 2006-11-14 Vir2Us, Inc. Self repairing computer having user accessible switch for modifying bootable storage device configuration to initiate repair
US20060277433A1 (en) * 2000-05-19 2006-12-07 Self Repairing Computers, Inc. Computer having special purpose subsystems and cyber-terror and virus immunity and protection features
US8831995B2 (en) * 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US7062567B2 (en) * 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US7613930B2 (en) 2001-01-19 2009-11-03 Trustware International Limited Method for protecting computer programs and data from hostile code
US7392541B2 (en) * 2001-05-17 2008-06-24 Vir2Us, Inc. Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
US7849360B2 (en) * 2001-05-21 2010-12-07 Vir2Us, Inc. Computer system and method of controlling communication port to prevent computer contamination by virus or malicious code
US7509369B1 (en) * 2001-07-11 2009-03-24 Swsoft Holdings, Ltd. Balancing shared servers in virtual environments
US7624439B2 (en) * 2001-10-29 2009-11-24 Seventh Knight Authenticating resource requests in a computer system
US7536598B2 (en) * 2001-11-19 2009-05-19 Vir2Us, Inc. Computer system capable of supporting a plurality of independent computing environments
US20030115458A1 (en) * 2001-12-19 2003-06-19 Dongho Song Invisable file technology for recovering or protecting a computer file system
US7340777B1 (en) * 2003-03-31 2008-03-04 Symantec Corporation In memory heuristic system and method for detecting viruses
US7788699B2 (en) * 2002-03-06 2010-08-31 Vir2Us, Inc. Computer and method for safe usage of documents, email attachments and other content that may contain virus, spy-ware, or malicious code
US20030177214A1 (en) * 2002-03-13 2003-09-18 D-Link Corporation Dynamic SNMP network device
US20030221094A1 (en) * 2002-04-17 2003-11-27 Avery Pennarun Method and system for configuring a computer
GB0212314D0 (en) * 2002-05-28 2002-07-10 Symbian Ltd Secure mobile wireless device
AU2003243543A1 (en) * 2002-06-12 2003-12-31 Fslogic Inc. Layered computing systems and methods
US8010961B1 (en) 2003-06-11 2011-08-30 Symantec Corporation Data layer prioritization in an application layered system
US7512977B2 (en) * 2003-06-11 2009-03-31 Symantec Corporation Intrustion protection system utilizing layers
US7620956B2 (en) * 2003-06-11 2009-11-17 Symantec Corporation Portable memory storage devices with application layers
US7542988B1 (en) 2006-01-03 2009-06-02 Symantec Corporation File type associative application layered system
US7945897B1 (en) * 2002-06-12 2011-05-17 Symantec Corporation Method and system for running an application in a clean operating environment using a layered computing system
US7970789B1 (en) 2003-06-11 2011-06-28 Symantec Corporation Sublayered application layered system
US7877413B1 (en) 2002-06-12 2011-01-25 Symantec Corporation Path variablizing layered system
US7496931B2 (en) * 2003-12-30 2009-02-24 Symantec Corporation Portable memory storage devices containing public context application layers
US7549164B2 (en) * 2003-06-11 2009-06-16 Symantec Corporation Intrustion protection system utilizing layers and triggers
US7461096B1 (en) * 2003-06-11 2008-12-02 Symantec Corporation Weighted prioritizing layered computing system
US8843903B1 (en) 2003-06-11 2014-09-23 Symantec Corporation Process tracking application layered system
US8291407B2 (en) 2002-06-12 2012-10-16 Symantec Corporation Systems and methods for patching computer programs
US7886291B1 (en) * 2003-06-11 2011-02-08 Symantec Corporation Layer typed prioritizing application layered systems
US7461086B1 (en) 2006-01-03 2008-12-02 Symantec Corporation Run-time application installation application layered system
US7165260B2 (en) * 2002-06-12 2007-01-16 Fsl, L.L.C. Layered computing systems and methods for insecure environments
US7143615B2 (en) * 2002-07-31 2006-12-05 Sun Microsystems, Inc. Method, system, and program for discovering components within a network
TWI324309B (en) 2002-08-26 2010-05-01 Interdigital Tech Corp Communication circuit
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US7673308B2 (en) * 2002-11-18 2010-03-02 Symantec Corporation Virtual OS computing environment
US7216367B2 (en) * 2003-02-21 2007-05-08 Symantec Corporation Safe memory scanning
US7509644B2 (en) * 2003-03-04 2009-03-24 Secure 64 Software Corp. Operating system capable of supporting a customized execution environment
US7461080B1 (en) 2003-05-09 2008-12-02 Sun Microsystems, Inc. System logging within operating system partitions using log device nodes that are access points to a log driver
US7337445B1 (en) 2003-05-09 2008-02-26 Sun Microsystems, Inc. Virtual system console for virtual application environment
US8892878B2 (en) * 2003-05-09 2014-11-18 Oracle America, Inc. Fine-grained privileges in operating system partitions
US7437556B2 (en) * 2003-05-09 2008-10-14 Sun Microsystems, Inc. Global visibility controls for operating system partitions
US20040226015A1 (en) * 2003-05-09 2004-11-11 Leonard Ozgur C. Multi-level computing resource scheduling control for operating system partitions
US7389512B2 (en) * 2003-05-09 2008-06-17 Sun Microsystems, Inc. Interprocess communication within operating system partitions
US20040226017A1 (en) * 2003-05-09 2004-11-11 Leonard Ozgur C. Mechanism for associating resource pools with operating system partitions
US7203696B2 (en) * 2003-08-29 2007-04-10 Microsoft Corporation Dynamic registry partitioning
US7451434B1 (en) * 2003-09-09 2008-11-11 Sap Aktiengesellschaft Programming with shared objects in a shared memory
US7519814B2 (en) * 2003-09-15 2009-04-14 Trigence Corp. System for containerization of application sets
US20080222160A1 (en) * 2003-09-15 2008-09-11 Macdonald Craig Method and system for providing a program for execution without requiring installation
US7774762B2 (en) 2003-09-15 2010-08-10 Trigence Corp. System including run-time software to enable a software application to execute on an incompatible computer platform
US7757291B2 (en) 2003-09-15 2010-07-13 Trigence Corp. Malware containment by application encapsulation
US7784058B2 (en) * 2003-09-22 2010-08-24 Trigence Corp. Computing system having user mode critical system elements as shared libraries
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
US20050091535A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Application identity for software products
US20050114870A1 (en) * 2003-11-21 2005-05-26 Song Dong H. System and method for executing an application on a secured run-time environment
CN1906573B (zh) * 2004-01-20 2011-01-05 美国博通公司 支持多个用户的系统和方法
US20050283779A1 (en) * 2004-05-19 2005-12-22 Pronk Van Hoogeveen Joost W D Method and apparatus for deploying software applications using a zone architecture
EP1612977A3 (en) * 2004-07-01 2013-08-21 Yamaha Corporation Control device for controlling audio signal processing device
US7971255B1 (en) * 2004-07-15 2011-06-28 The Trustees Of Columbia University In The City Of New York Detecting and preventing malcode execution
US20060048136A1 (en) * 2004-08-25 2006-03-02 Vries Jeff D Interception-based resource detection system
US7690033B2 (en) 2004-09-28 2010-03-30 Exobox Technologies Corp. Electronic computer system secured from unauthorized access to and manipulation of data
US8613048B2 (en) 2004-09-30 2013-12-17 Citrix Systems, Inc. Method and apparatus for providing authorized remote access to application sessions
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US7748032B2 (en) 2004-09-30 2010-06-29 Citrix Systems, Inc. Method and apparatus for associating tickets in a ticket hierarchy
US7711835B2 (en) * 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US7240162B2 (en) * 2004-10-22 2007-07-03 Stream Theory, Inc. System and method for predictive streaming
EP1825390A2 (en) * 2004-11-13 2007-08-29 Stream Theory, Inc. Hybrid local/remote streaming
US7653684B2 (en) * 2004-12-03 2010-01-26 Microsoft Corporation Enabling inter-subsystem resource sharing
US7451435B2 (en) * 2004-12-07 2008-11-11 Microsoft Corporation Self-describing artifacts and application abstractions
US8214830B2 (en) * 2005-01-19 2012-07-03 Intel Corporation Performance in a virtualization architecture with a processor abstraction layer
US8024568B2 (en) 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US7300621B2 (en) * 2005-03-16 2007-11-27 Siemens Power Generation, Inc. Method of making a ceramic matrix composite utilizing partially stabilized fibers
US8024523B2 (en) 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
US20060218165A1 (en) * 2005-03-23 2006-09-28 Vries Jeffrey De Explicit overlay integration rules
WO2006102621A2 (en) * 2005-03-23 2006-09-28 Stream Theory, Inc. System and method for tracking changes to files in streaming applications
US7707579B2 (en) 2005-07-14 2010-04-27 International Business Machines Corporation Method and system for application profiling for purposes of defining resource requirements
US7434218B2 (en) * 2005-08-15 2008-10-07 Microsoft Corporation Archiving data in a virtual application environment
US9286109B1 (en) 2005-08-26 2016-03-15 Open Invention Network, Llc Method and system for providing checkpointing to windows application groups
US7934216B2 (en) * 2005-10-03 2011-04-26 International Business Machines Corporation Method and system for load balancing of computing resources
US20070083620A1 (en) * 2005-10-07 2007-04-12 Pedersen Bradley J Methods for selecting between a predetermined number of execution methods for an application program
US7779034B2 (en) * 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
JP2009512939A (ja) * 2005-10-21 2009-03-26 ヴァー2アス インコーポレイテッド 複数のオペレーティングシステムのインスタンスが単一のマシン資源を安全に共有することを可能とする、オペレーティングシステムの仮想化、を有するコンピュータセキュリティ方法
US8150816B2 (en) * 2005-12-29 2012-04-03 Nextlabs, Inc. Techniques of optimizing policies in an information management system
US20070201270A1 (en) * 2005-12-30 2007-08-30 Stmicroelectronics Pvt. Ltd. Read only memory device with bitline leakage reduction
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US7885975B2 (en) 2006-02-23 2011-02-08 Oracle America, Inc. Mechanism for implementing file access control using labeled containers
US7882227B2 (en) 2006-02-23 2011-02-01 Oracle America, Inc. Mechanism for implementing file access control across a network using labeled containers
US8938473B2 (en) 2006-02-23 2015-01-20 Oracle America, Inc. Secure windowing for labeled containers
US8938554B2 (en) 2006-03-02 2015-01-20 Oracle America, Inc. Mechanism for enabling a network address to be shared by multiple labeled containers
US9038071B2 (en) * 2006-03-30 2015-05-19 Microsoft Technology Licensing, Llc Operating system context isolation of application execution
CN100454260C (zh) * 2006-04-20 2009-01-21 英业达股份有限公司 设备驱动层的虚拟驱动系统及方法
WO2007127349A2 (en) * 2006-04-26 2007-11-08 Exobox Technologies Corp. Secure user environment software
EP2407856A1 (en) 2006-04-28 2012-01-18 E-Bay Inc. Method and system for user-designed application deployment
US9213513B2 (en) * 2006-06-23 2015-12-15 Microsoft Technology Licensing, Llc Maintaining synchronization of virtual machine image differences across server and host computers
US9392078B2 (en) * 2006-06-23 2016-07-12 Microsoft Technology Licensing, Llc Remote network access via virtual machine
US9405521B2 (en) * 2006-06-29 2016-08-02 Microsoft Technology Licensing, Llc Mapping of virtualized setup-free applications for a computing system
US8131644B2 (en) 2006-08-29 2012-03-06 Sap Ag Formular update
US8261345B2 (en) 2006-10-23 2012-09-04 Endeavors Technologies, Inc. Rule-based application access management
US20080109466A1 (en) * 2006-11-02 2008-05-08 Microsoft Corporation Virtual Deletion In Merged Registry keys
ITVA20070042A1 (it) * 2007-04-27 2008-10-28 St Microelectronics Srl Metodo di gestione di un dispositivo di memoria e relativo dispositivo di memoria
US8533846B2 (en) 2006-11-08 2013-09-10 Citrix Systems, Inc. Method and system for dynamically associating access rights with a resource
US8875271B2 (en) 2006-12-08 2014-10-28 Microsoft Corporation Executing unsigned content and securing access in a closed system
WO2008092031A2 (en) 2007-01-24 2008-07-31 Vir2Us, Inc. Computer system architecture having isolated file system management for secure and reliable data processing
US20080222659A1 (en) * 2007-03-09 2008-09-11 Microsoft Corporation Abstracting operating environment from operating system
CA2682988A1 (en) * 2007-04-05 2008-10-16 Sentillion, Inc. Augmenting a virtual machine hosting environment from within a virtual machine
US9870263B2 (en) 2007-06-29 2018-01-16 Microsoft Technology Licensing, Llc System virtualization instance management for terminal sessions
US9128741B2 (en) * 2007-10-05 2015-09-08 Mcafee, Inc. System, method, and computer program product for conditionally preventing use of hardware virtualization
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
FR2925269B1 (fr) * 2007-12-19 2010-01-15 Promiles Sac a dos permutable en position frontale
US20090164994A1 (en) * 2007-12-20 2009-06-25 Virtual Computer, Inc. Virtual computing management systems and methods
US7792934B2 (en) * 2008-01-02 2010-09-07 Citrix Systems International Gmbh Loading of server-stored user profile data
KR101489301B1 (ko) * 2008-03-20 2015-02-06 삼성전자주식회사 가상환경 시스템 및 그의 구동방법
US8688641B1 (en) 2008-03-31 2014-04-01 Symantec Operating Corporation Per user and per process layer visibility
US8261254B2 (en) 2008-03-31 2012-09-04 Symantec Corporation Dynamic insertion and removal of virtual software sub-layers
US8438196B1 (en) 2008-03-31 2013-05-07 Symantec Operating Corporation Finer grained data organization using data sublayers
US8639734B1 (en) 2008-03-31 2014-01-28 Symantec Operating Corporation Use of external information about a file to determine virtualization
US8578364B2 (en) * 2008-04-25 2013-11-05 Microsoft Corporation Dynamic management of operating system resources
US9100246B1 (en) * 2008-06-19 2015-08-04 Symantec Corporation Distributed application virtualization
US8694989B1 (en) 2008-07-17 2014-04-08 Apple Inc. Virtual installation environment
US8745601B1 (en) * 2008-07-17 2014-06-03 Apple Inc. Methods and systems for using data structures for operating systems
US8315996B2 (en) * 2008-08-13 2012-11-20 International Business Machines Corporation Efficient management of customized functionality within shared data objects
US8135659B2 (en) 2008-10-01 2012-03-13 Sap Ag System configuration comparison to identify process variation
WO2010054019A1 (en) * 2008-11-04 2010-05-14 Quado Media Inc. Multi-player, multi-screens, electronic gaming platform and system
US9498711B2 (en) 2008-11-04 2016-11-22 Quado Media Inc. Multi-player, multi-screens, electronic gaming platform and system
US7984332B2 (en) * 2008-11-17 2011-07-19 Microsoft Corporation Distributed system checker
KR101437122B1 (ko) 2008-12-03 2014-09-02 삼성전자 주식회사 Os 가상화를 이용하여 서비스를 제공하는 장치 및 방법
US8396893B2 (en) * 2008-12-11 2013-03-12 Sap Ag Unified configuration of multiple applications
US8341631B2 (en) * 2009-04-10 2012-12-25 Open Invention Network Llc System and method for application isolation
US8464256B1 (en) 2009-04-10 2013-06-11 Open Invention Network, Llc System and method for hierarchical interception with isolated environments
US9354977B1 (en) * 2008-12-15 2016-05-31 Open Invention Network Llc System and method for hybrid kernel- and user-space incremental and full checkpointing
US8880473B1 (en) 2008-12-15 2014-11-04 Open Invention Network, Llc Method and system for providing storage checkpointing to a group of independent computer applications
US8782670B2 (en) * 2009-04-10 2014-07-15 Open Invention Network, Llc System and method for application isolation
US8539488B1 (en) 2009-04-10 2013-09-17 Open Invention Network, Llc System and method for application isolation with live migration
US9256496B1 (en) * 2008-12-15 2016-02-09 Open Invention Network, Llc System and method for hybrid kernel—and user-space incremental and full checkpointing
US8745442B1 (en) 2011-04-28 2014-06-03 Open Invention Network, Llc System and method for hybrid kernel- and user-space checkpointing
US10019327B1 (en) 2008-12-15 2018-07-10 Open Invention Network Llc System and method for hybrid kernel- and user-space incremental and full checkpointing
US8904004B2 (en) * 2009-04-10 2014-12-02 Open Invention Network, Llc System and method for maintaining mappings between application resources inside and outside isolated environments
US8255429B2 (en) 2008-12-17 2012-08-28 Sap Ag Configuration change without disruption of incomplete processes
US8418236B1 (en) 2009-04-10 2013-04-09 Open Invention Network Llc System and method for streaming application isolation
US8401941B1 (en) 2009-04-10 2013-03-19 Open Invention Network Llc System and method for usage billing of hosted applications
US11538078B1 (en) 2009-04-10 2022-12-27 International Business Machines Corporation System and method for usage billing of hosted applications
US10419504B1 (en) 2009-04-10 2019-09-17 Open Invention Network Llc System and method for streaming application isolation
US8555360B1 (en) 2009-04-10 2013-10-08 Open Invention Network Llc System and method for on-line and off-line streaming application isolation
US9577893B1 (en) 2009-04-10 2017-02-21 Open Invention Network Llc System and method for cached streaming application isolation
US9058599B1 (en) 2009-04-10 2015-06-16 Open Invention Network, Llc System and method for usage billing of hosted applications
US8401940B1 (en) 2009-04-10 2013-03-19 Open Invention Network Llc System and method for usage billing of hosted applications
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US8352937B2 (en) * 2009-08-03 2013-01-08 Symantec Corporation Streaming an application install package into a virtual environment
US8881140B1 (en) 2009-09-04 2014-11-04 Symantec Corporation Systems and methods for virtualizing software associated with external computer hardware devices
US8850428B2 (en) 2009-11-12 2014-09-30 Trustware International Limited User transparent virtualization method for protecting computer programs and data from hostile code
TWI410867B (zh) * 2010-03-24 2013-10-01 Acer Inc 應用軟體的安裝方法
US8862545B2 (en) 2010-06-15 2014-10-14 Microsoft Corporation Multi-environment configuration of data integration projects
US9116728B2 (en) 2010-12-21 2015-08-25 Microsoft Technology Licensing, Llc Providing a persona-based application experience
US9003543B2 (en) 2010-12-21 2015-04-07 Microsoft Technology Licensing, Llc Providing a security boundary
US9354852B2 (en) 2010-12-23 2016-05-31 Microsoft Technology Licensing, Llc Satisfying application dependencies
US9189308B2 (en) 2010-12-27 2015-11-17 Microsoft Technology Licensing, Llc Predicting, diagnosing, and recovering from application failures based on resource access patterns
US8789138B2 (en) 2010-12-27 2014-07-22 Microsoft Corporation Application execution in a restricted application execution environment
US8931037B2 (en) 2010-12-27 2015-01-06 Microsoft Corporation Policy-based access to virtualized applications
US9176742B2 (en) 2010-12-27 2015-11-03 Microsoft Technology Licensing, Llc Converting desktop applications to web applications
US9223611B2 (en) 2010-12-28 2015-12-29 Microsoft Technology Licensing, Llc Storing and resuming application runtime state
US9116725B1 (en) 2011-03-15 2015-08-25 Symantec Corporation Systems and methods for using virtualization of operating-system-level components to facilitate software testing
US11307941B1 (en) 2011-04-28 2022-04-19 Open Invention Network Llc System and method for hybrid kernel- and user-space incremental and full checkpointing
US11625307B1 (en) 2011-04-28 2023-04-11 International Business Machines Corporation System and method for hybrid kernel- and user-space incremental and full checkpointing
US9117079B1 (en) * 2013-02-19 2015-08-25 Trend Micro Inc. Multiple application versions in a single virtual machine
US9225737B2 (en) 2013-03-15 2015-12-29 Shape Security, Inc. Detecting the introduction of alien content
US20140283038A1 (en) 2013-03-15 2014-09-18 Shape Security Inc. Safe Intelligent Content Modification
US9178908B2 (en) 2013-03-15 2015-11-03 Shape Security, Inc. Protecting against the introduction of alien content
US9338143B2 (en) 2013-03-15 2016-05-10 Shape Security, Inc. Stateless web content anti-automation
US8990839B2 (en) 2013-04-22 2015-03-24 Microsoft Technology Licensing, Llc Controlling runtime access to application programming interfaces
US9270647B2 (en) 2013-12-06 2016-02-23 Shape Security, Inc. Client/server security by an intermediary rendering modified in-memory objects
US8954583B1 (en) 2014-01-20 2015-02-10 Shape Security, Inc. Intercepting and supervising calls to transformed operations and objects
US9489526B1 (en) 2014-01-21 2016-11-08 Shape Security, Inc. Pre-analyzing served content
US9225729B1 (en) 2014-01-21 2015-12-29 Shape Security, Inc. Blind hash compression
US8893294B1 (en) 2014-01-21 2014-11-18 Shape Security, Inc. Flexible caching
KR101624170B1 (ko) 2014-03-03 2016-05-25 주식회사 틸론 윈도우즈의 레지스트리를 이기종 운영체제의 ini파일로 변환하는 레지스트리변환방법, 컴퓨터 장치 및 컴퓨터에서 판독가능한 기록매체
US8997226B1 (en) 2014-04-17 2015-03-31 Shape Security, Inc. Detection of client-side malware activity
US9223966B1 (en) 2014-05-04 2015-12-29 Symantec Corporation Systems and methods for replicating computing system environments
US9858440B1 (en) 2014-05-23 2018-01-02 Shape Security, Inc. Encoding of sensitive data
US9411958B2 (en) 2014-05-23 2016-08-09 Shape Security, Inc. Polymorphic treatment of data entered at clients
US9405910B2 (en) 2014-06-02 2016-08-02 Shape Security, Inc. Automatic library detection
US9075990B1 (en) 2014-07-01 2015-07-07 Shape Security, Inc. Reliable selection of security countermeasures
US9003511B1 (en) 2014-07-22 2015-04-07 Shape Security, Inc. Polymorphic security policy action
US9825984B1 (en) 2014-08-27 2017-11-21 Shape Security, Inc. Background analysis of web content
US9438625B1 (en) 2014-09-09 2016-09-06 Shape Security, Inc. Mitigating scripted attacks using dynamic polymorphism
US9602543B2 (en) 2014-09-09 2017-03-21 Shape Security, Inc. Client/server polymorphism using polymorphic hooks
US9785425B2 (en) * 2014-09-30 2017-10-10 Airwatch Llc Managed clone applications
US9628279B2 (en) * 2014-09-30 2017-04-18 Microsoft Technology Licensing, Llc Protecting application secrets from operating system attacks
US9813440B1 (en) 2015-05-15 2017-11-07 Shape Security, Inc. Polymorphic treatment of annotated content
US9986058B2 (en) 2015-05-21 2018-05-29 Shape Security, Inc. Security systems for mitigating attacks from a headless browser executing on a client computer
WO2017007705A1 (en) 2015-07-06 2017-01-12 Shape Security, Inc. Asymmetrical challenges for web security
WO2017007936A1 (en) 2015-07-07 2017-01-12 Shape Security, Inc. Split serving of computer code
US9807113B2 (en) 2015-08-31 2017-10-31 Shape Security, Inc. Polymorphic obfuscation of executable code
US9785790B2 (en) 2015-12-15 2017-10-10 International Business Machines Corporation Protecting computer security applications
US10754829B2 (en) 2017-04-04 2020-08-25 Oracle International Corporation Virtual configuration systems and methods

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5548779A (en) * 1993-12-21 1996-08-20 Taligent System for providing system services for a device to a client using stack definition and stack description of a stack having top, intermediate, and bottom service objects
US6763454B2 (en) * 1994-05-27 2004-07-13 Microsoft Corp. System for allocating resources in a computer system
US5961582A (en) * 1994-10-25 1999-10-05 Acorn Technologies, Inc. Distributed and portable execution environment
US5901312A (en) * 1994-12-13 1999-05-04 Microsoft Corporation Providing application programs with unmediated access to a contested hardware resource
US6601081B1 (en) * 1995-06-30 2003-07-29 Sun Microsystems, Inc. Method and apparatus for context maintenance in windows
US5752005A (en) 1996-01-22 1998-05-12 Microtest, Inc. Foreign file system establishing method which uses a native file system virtual device driver
US6023721A (en) 1997-05-14 2000-02-08 Citrix Systems, Inc. Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility
US6134602A (en) * 1997-09-24 2000-10-17 Microsoft Corporation Application programming interface enabling application programs to group code and data to control allocation of physical memory in a virtual memory system
US6026402A (en) 1998-01-07 2000-02-15 Hewlett-Packard Company Process restriction within file system hierarchies
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6789114B1 (en) * 1998-08-05 2004-09-07 Lucent Technologies Inc. Methods and apparatus for managing middleware service in a distributed system
KR20000057127A (ko) 1999-02-03 2000-09-15 송동호 소프트웨어 임대 시스템을 위한 분산컴퓨팅 환경에서의프로그램 수행시스템 및 그 방법
US6640249B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Presentation services patterns in a netcentric environment
EP1305688A2 (en) 2000-05-28 2003-05-02 Yaron Mayer System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7900240B2 (en) 2003-05-28 2011-03-01 Citrix Systems, Inc. Multilayer access control security system
US11693954B2 (en) 2004-08-03 2023-07-04 Microsoft Technology Licensing, Llc System and method for controlling inter-application association through contextual policy control
US10229265B2 (en) 2004-08-03 2019-03-12 Microsoft Technology Licensing, Llc System and method for controlling inter-application association through contextual policy control
JP2008509475A (ja) * 2004-08-03 2008-03-27 ソフトリシティ インコーポレイテッド コンテキストポリシー制御によるアプリケーション間の関連付けの制御のためのシステムおよび方法
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US7853947B2 (en) 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US8042120B2 (en) 2004-09-30 2011-10-18 Citrix Systems, Inc. Method and apparatus for moving processes between isolation environments
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US8132176B2 (en) 2004-09-30 2012-03-06 Citrix Systems, Inc. Method for accessing, by application programs, resources residing inside an application isolation scope
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US7676813B2 (en) 2004-09-30 2010-03-09 Citrix Systems, Inc. Method and system for accessing resources
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US7890570B2 (en) 2007-09-12 2011-02-15 Citrix Systems, Inc. Methods and systems for providing, by a remote machine, access to graphical data associated with a resource provided by a local machine
JP2010205267A (ja) * 2009-03-03 2010-09-16 Symantec Corp 仮想化サブレイヤを統合する方法およびシステム
JP2013541113A (ja) * 2010-10-27 2013-11-07 マイクロソフト コーポレーション ステートレスクラウドコンピューティング環境において動作するステートフルアプリケーション

Also Published As

Publication number Publication date
EP1419437A1 (en) 2004-05-19
US20040268361A1 (en) 2004-12-30
WO2002093369A1 (en) 2002-11-21
JP4178036B2 (ja) 2008-11-12
US7451451B2 (en) 2008-11-11
AU2002309834A2 (en) 2002-11-25
CA2465880C (en) 2011-10-11
CA2465880A1 (en) 2002-11-21
ES2582164T3 (es) 2016-09-09
US7028305B2 (en) 2006-04-11
US20020174215A1 (en) 2002-11-21
AU2002309834B2 (en) 2007-11-01
EP1419437B1 (en) 2016-06-08
TW588255B (en) 2004-05-21

Similar Documents

Publication Publication Date Title
JP4178036B2 (ja) オペレーティングシステム抽象化/保護レイヤ
US11693954B2 (en) System and method for controlling inter-application association through contextual policy control
US7165260B2 (en) Layered computing systems and methods for insecure environments
US7162724B2 (en) Layered computing systems and methods
AU2002309834A1 (en) Operating system abstraction and protection layer
US7542988B1 (en) File type associative application layered system
US7461086B1 (en) Run-time application installation application layered system
US7970789B1 (en) Sublayered application layered system
US7886291B1 (en) Layer typed prioritizing application layered systems
US8010961B1 (en) Data layer prioritization in an application layered system
US7945897B1 (en) Method and system for running an application in a clean operating environment using a layered computing system
US7461096B1 (en) Weighted prioritizing layered computing system
US7877413B1 (en) Path variablizing layered system
US8843903B1 (en) Process tracking application layered system
US6698016B1 (en) Method for injecting code into another process
US20070113291A1 (en) Method for administrating the function access
Vokorokos et al. Application security through sandbox virtualization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070507

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070806

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070821

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20071005

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071018

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20071022

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080125

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080425

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080704

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: 20080729

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080825

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4178036

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120829

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130829

Year of fee payment: 5

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

LAPS Cancellation because of no payment of annual fees