Application Virtualization is a technology which provides the ability to execute applications without having to install them on the actual client computer. Instead application virtualization technology takes resources (such as environment variables, operating files, Windows registry keys) and recreates these in a virtual environment.
This virtual environment is then presented to the client computer as a merged view of the underlying physical and the recreated virtual resources. This view allows the virtualization layer to trick the application into thinking that it is running as if it were fully installed on the client computer.
To ensure the virtual application environment created on the client device can allow the virtualized application to work, the application is first installed onto a clean computer, that is a computer which does not have any applications installed other than the operating system and is patched to the latest version.
The application is installed onto a clean computer using application virtualization software which starts by assessing the computer configuration and settings prior to the application installation, this is known as taking a snapshot. The application is then installed and once the installation is completed, the application virtualization software assesses the changes to the computer by taking another snapshot.
The snapshots taken, one prior to application installation and the other post application installation are compared and the differences are used to create the virtualized application package, which will be deployed to user's devices.
When the user clicks the application's shortcut on their computer, the virtual application environment is downloaded block by block to the user's device with enough blocks downloaded to make the application work for the user. The application runs in it's own virtualized environment, behaving as though it was actually installed locally on the users computer.
As the application is not physically installed on the user's device, the need for administrative rights is diminished. The application can still communicate with the operating system, plug-ins, middleware and if required other applications.
Different application versions can be run together on the same user device, without conflicts, as the virtualized applications by default are isolated from each other, so a user who wants to run Microsoft Word, can run Word 97, Word 2000, Word XP, Word 2003 and Word 2007 on the same computer without conflicts.
The way in which the application is packaged in it's virtual environment, allows the application footprint on the users computer to be reduced, as only those components used by the user to get the application to work for them are downloaded. So those application components which provide additional functionality which is not being used, will not be downloaded.
Once the application components have been downloaded (streamed) to the users computer, the next use of the application will not require further downloading, as the application components are cached locally on the users computer and are initiated from the cache.