This is the first part of a series of blogs about Application Virtualisation
What is Application Virtualisation?
The idea behind application virtualisation is relatively simple in that an application runs on your desktop without ever having installed it. However, unlike using Terminal Services, the virtualised application executes locally, using local resources (e.g., processor, memory, disk, and network card). In other words, the application runs, saves data, prints, and acts as if it’s installed locally even though it is not. On top of this, you can run multiple versions of the same application on your desktop without conflict, and run conflicting applications like different versions of Access or Outlook with out conflict—again, with all the applications executing locally – and not as “screen scrapes” from a remote Terminal Server.
The basic concepts of application virtualisation are that the application executes on the local machine using its resources, but is not allowed to modify anything. Instead, it runs in a small virtual environment that contains the registry entries, files, COM objects, and other components that it needs to execute. This virtual environment acts as a layer between the application and the OS. The virtual layer is very “light” (generally only a couple megabytes of memory) and loads just prior to the application loading.
This is a stellar high-level look at how the application executes. There is more to this product, but as always basics are the same:
- The application is not installed on the local OS or file system.
- The application does execute locally using local resources just like a locally installed application.
- A virtual environment is loaded for each application, ensuring separation.
- The virtual environment isolates the application from the operating system, protecting the OS from application changes and other applications.
- Even though the application is not installed, it can interact with the local OS the same way that a locally application does, making direct use of all the system’s peripherals (e.g., local disks, USB devices, network printers, etc.).
- Only the required pieces of code go onto the client computer (unless a decision is made to pre-cache applications).
When an application has been virtualised it is unable to write to any registry or file system files outside of its virtualisation environment or “Bubble”. this obviously protects the OS form and potentially dangerous changes that could be made by the application.
However, for a technology to be successful, it has to answer a question
Will this benefit me or improve my existing environment, if so, how?
As already stated, Virtualised Applications enabled applications have the ability to read information from the local system. This information may include local registry settings or files, but the application cannot under any circumstances write to the local OS system files or Registry. If an attempt is made to modify any OS registry entry or a system file the change is noted and stored in the Application bubble.
From a technology standpoint, the idea of virtualising an application is certainly intriguing. But again I repeat the real test for the long-term success of any technology is: “Will this benefit me or improve my existing environment, if so, how?”
Application Virtualisation works by solving a particular set of problems for an organization. How it can benefit you depends on the answers to a these questions:
Do you currently suffer from any of the following application deployment challenges:
- Intolerably long time to deploy applications to the desktop
- Complexity of application packaging
- Lack of a means to monitor application license compliance
- Frequently changing applications
- Does you have applications that conflict with one another but must be run simultaneously?
- Are your support teams required to “fix” applications on a regular basis due to user changes or modifications by other programs?
- Is there a large amount of time regression testing new applications or application updates?
- Is there a need to run multiple versions of the same application (such as Microsoft Access or other Office components)?
- Does the environment use Terminal or Citrix Servers with multiple application silos as a result of application configurations or conflicts?
- Are there applications that just will not run in a Terminal Server environment?
If this describes the challenges faced in your environment, then Application Virtualisation may be a good fit.
Virtual applications, not virtual machines (or operating systems)
People often, mistakenly, make comparisons between Applications Virtualisation and virtual machines (such as VMware and Microsoft Virtual Server). To address this, I would like to discuss what a virtual machine is and what it is not.
A virtual machine is a great tool for virtualising the machine on which you are installing an operating system (and applications). Think of it this way: a virtual machine provides an abstraction layer between your hardware and the operating system that’s running on top of it. It also allows the management of simultaneously operating multiple environments on a single machine. The power of machine virtualisation is that you can consolidate servers and PCs, sharing under-utilised hardware resources and reducing the total cost of ownership when it comes to hardware purchasing, monitoring, management and maintenance.
Application Virtualisation takes this concept and moves it up the logical stack. In fact, it is complementary to virtual machines – many customers of Application Virtualisation products have been known to use both technologies. The abstraction layer created by an Application Virtualisation product lies between the operating system and the applications that run within it. By virtualising all the aspects of an application, you don’t affect the operating system or other applications running on that machine.
Application Virtualisation changes how the operating system perceives applications whose very installation and execution can reduce the stability of the operating system and other applications. The power of Application virtualisation is that it allows applications to be delivered dynamically as services that can be added or removed without leaving a trace or trail on the client system. This in turn reduces the total cost of deploying and maintaining applications and systems.
Part 2 will look at App-V