ThinAppのコンポーネント
それではThinAppのアーキテクチャについて解説します。ThinAppはパッケージ化した仮想アプリケーションとホストOSの橋渡しを行うVOSをベースとして動作します。 ThinAppによって単一のEXEファイルにパッケージされたアプリケーション内には、自動的にVOSが組み込まれ、アプリケーションをOSにインストールすることなく、クライアントOS上で実行することが可能で、専用のエージェントソフトウェアをクライアントOSにインストールする必要がありません。
アプリケーションの起動は、EXEを実行するとVOSをメモリ上にロードし、その後カプセル内のアプリケーションを呼び出して動作します。 VOS自体は1秒もかからずメモリ上に読み込まれるため、起動遅延は意識されるほどではありません。 アプリケーションが動作のために必要とするDLL、ファイル、レジストリはカプセル化内部の仮想ファイルシステム及び仮想レジストリから呼び出されます。アプリケーションがカプセル化内部に存在しないファイルへのアクセスを必要とした場合は、ホストOS側のファイルへアクセスをして動作します。
アプリケーション競合の課題解決
そもそも1つのクライアントOS上では多様なクライアントソフトウェアが同居するわけですが、お作法の悪いアプリケーションが存在するとアプリケーションの競合が発生しPCの動作に悪影響を与えかねません。なぜかあのアプリケーションを同居させると不安定になったり、異なるバージョンを一緒に使うと不安定になったりといった経験は誰しもが持っているはずです。
開発会社は(多くの場合)他社アプリケーション間での互換性は保障していません。通常は、アプリケーションは“システム”へ書き込みが必要のためインストールが必要ですし、大抵管理者権限が必要になります。 セキュリティ的には一般ユーザへは管理者権限は開放しないでユーザ権限で運用したいが、ヘルプデスクへ問い合わせが増えて運用が回らなくなる懸念があります。
こういった課題はThinApp化した場合、多くが解決される可能性があります。ThinAppでは、アプリケーションがアクセスするのはカプセル化内部の仮想ファイルシステムと仮想レジストリになるため、他アプリケーション間の競合を排除することが可能であり、加えてインストール作業そのものが不要となります。
通常、アプリケーションはユーザ領域の変更(固有データ)は、ユーザプロファイルやレジストリに記録する必要があります。例えば、構成を変更すると構成ファイルを更新するかもしれませんし、添付ファイルを書き出す等の処理においてCドライブやtempディレクトリ等へアクセスすることもあります。 ThinAppの場合、それらの処理はSandBoxと呼ばれる領域に書き込みがされるため、カプセル化した後でも今までどおりの運用が維持できます。SandBoxはデフォルトでは、ユーザプロファイルの中に書き出されますが、別のディレクトリを指定することも可能です。