アプリケーション仮想化とは
アプリケーション
[仮想化]]は、ソフトウェア技術の一分野であり、アプリケーションを、それが実行される基盤となる
オペレーティングシステム]から隔離([[カプセル化)することで、アプリケーションの移植性、管理性、および互換性を向上させることを目的としています。
仮想化されたアプリケーションは、あたかも通常のアプリケーションとしてインストールされているかのように動作しますが、実際にはそうではありません。アプリケーションは、OSや他のリソースと直接やり取りしているように見せかけられますが、実際には
仮想化レイヤーを介して動作します。
ここで言う「
仮想化」とは、アプリケーションが
カプセル化されるという意味であり、物理
ハードウェアを抽象化する
ハードウェア仮想化とは異なります。
アプリケーション仮想化の概要
近代的なOSでは、限定的なアプリケーション
仮想化の機能が組み込まれています。例えば、
Microsoft Windowsでは、レガシーアプリケーションとの互換性を保つために、INIファイルのマッピングをレジストリに置き換える機能や、システムの特定領域への書き込みを制限する
仮想化が導入されています。これにより、古いアプリケーションでも正常に動作するように調整されています。
完全なアプリケーション
仮想化では、
仮想化レイヤーが必要です。このレイヤーは、OSが提供するランタイム環境の一部を置き換えます。
仮想化されたアプリケーションからのファイルやレジストリ操作は、
仮想化レイヤーによって傍受され、単一のファイルや
仮想化された場所にリダイレクトされます。アプリケーションは、物理的なリソースではなく仮想的なリソースにアクセスしていることを認識しません。これにより、複数のファイルやレジストリを扱う必要がなくなり、アプリケーションの移植や、互換性のないアプリケーションの共存が容易になります。
Windowsプラットフォーム向けのこの技術の例としては、AppZero, BoxedApp, Cameyo, Ceedo, Evalaze, InstallFree, Citrix XenApp, Novell ZENworks Application VIrtualization, Endeavors Technologies Application Jukebox, Microsoft Application Virtualization, Software Virtualization Solution, Spoon (以前は Xenocode), VMware ThinApp (以前は Thinstall), P-apps, AMS Z!Stream などがあります。
関連技術
アプリケーション
仮想化に関連する技術分野は以下の通りです。
アプリケーションストリーミング: アプリケーションの実行に必要なコード、データ、設定を、起動時に全てを配信するのではなく、必要なときに初めて配信します。これにより、初期起動時間の短縮や、ネットワーク負荷の低減が可能です。パッケージ化されたアプリケーションを実行する場合、軽量なクライアントアプリケーションのインストールが必要になることがあります。パッケージは、HTTP、CIFS、RTSPなどのプロトコルを介して配信されます。
デスクトップ仮想化/仮想デスクトップインフラストラクチャ (VDI): アプリケーションは、OSを含む仮想マシンや
ブレードサーバー上で実行されます。VDIソリューションには、仮想デスクトップの作成を自動化し、仮想デスクトップへのアクセス制御を提供する管理インフラストラクチャが含まれています。VDIは、アプリケーションストリーミングだけでは不十分な場合に、そのギャップを埋めることができる技術です。