When it comes to application management, there is no better solution than application virtualization.
Application virtualization creates a protective layer around the operating system and controls exactly how applications interact with it. This has advantages for systems administrators and organizations alike.
First, any virtualized application will run on any version of Windows. This saves you tons of time and effort because you no longer need to prepare or even revisit application packages each time you move from one version of Windows to another. Second, since applications are captured in their running state, you no longer need to "install" applications on the endpoint; only copy them. Third, because virtualized applications are isolated by default, you can simultaneously run multiple versions of the same application on the same system.
For example, think of all those pesky Microsoft Access applications running on your network. With app virtualization, they can all run on the same system at the same time even if they were developed with different versions of the database application.
These key factors make application virtualization a must for every organization. Of course, the ideal time to move to app virtualization is during a migration project -- moving from Windows XP to Vista, for example -- because you have to revisit each application package to ensure it runs properly on the target OS. Because you have to examine and work on each package, it makes sense to turn it into a virtualized application instead of continuing with the traditional approach of integrating it with Windows Installer.
If you're not running a migration project, you can still consider moving to application virtualization by focusing on spot virtualizations. Begin with your most problematic applications and focus on key users. You can often resolve problems related to legacy applications or manufacturing applications that you simply cannot upgrade when you virtualize them. Also, users who need to run multiple versions of applications -- such as graphic artists, Web designers, engineers or developers -- can immediately benefit from application virtualization.
Keep in mind that if you target an application for virtual transformation because you need to run multiple versions of it, you must virtualize every version. Running an installed version along with other virtualized versions can lead to inconsistent behavior.
Think about application delivery
One of the most powerful features of application virtualization is the delivery mechanism that is often integrated with it. Tools such as Microsoft App-V, Symantec Altiris SVS Pro and Citrix XenApp include an integrated delivery system along with their app virtualization capabilities: streaming. Application streaming works in very much the same way as video or audio streaming. The system automatically begins buffering content when a user launches an app, and once enough content is available, it then begins to play the selected content.
When you stream applications to users, you send out enough information to launch the application -- usually as little as 10% of the content -- and then stream the rest in the background while the end user is working. The process can be completely transparent to end users; they simply access the application the way they normally would.
When you use a streaming system, you automatically provision the application's shortcut on the user's endpoint. When the user double-clicks the shortcut, the streaming process begins. To the user, the application is simply starting, but in the background several things happen:
To begin, the application will have been prepared for streaming. This means that it has been turned into a sequence of 4-byte blocks so they can be sent one at a time to the endpoint. Blocks usually fit into three categories:
Startup blocks which are required to launch the application and make up about 10% of the app.
Predictive blocks which the streaming engine may also support. They are the most commonly used blocks other than Startup blocks. Again, these make up another 10% of the application.
On-demand blocks make up the rest.
When the user clicks the shortcut, the Startup blocks are streamed to the system, and the shortcut to the streaming system is replaced with the shortcut to the actual application. As soon as the Startup blocks are available locally, the application launches. The Predictive blocks are sent next while the user is working. When the user clicks on a feature that has not yet been streamed, the required On Demand blocks are sent.
All blocks are cached locally to ensure that the application is available even if the user is disconnected from the network.
If the application needs an update, just update the streaming repository. The next time the user is connected and launches the application, the new bits will be streamed and the application will be updated in the local cache.
Streaming applications brings a lot of benefits to application virtualization. Since only required blocks are sent, you don't hog network bandwidth by sending the entire application to the endpoint. Think about it: Installing Microsoft Office usually means sending out about 500 MB of data to each endpoint. With streaming, you send out only about 50 to 100 MB, and only when the users request it. Also, since you stream data to endpoints on demand, you gain complete control over the delivery system. In addition, because the streaming agent can tell you if someone is actually using a program or not, you can better manage your licenses because you can re-harvest those that are not being actively used.
Streaming architectures are much simpler than traditional electronic software distribution systems (see Figure 1). After all, the streaming server is nothing more than a glorified file server. Processing requirements are kept to a minimum and since everything occurs over standard HTTP ports, you can also stream to users over the Internet so long as they already have the streaming agent installed or have the access rights to install it.
Gain the best of all worlds
For IT administrators, application virtualization is the best thing since sliced bread -- you only have to visit applications once during their lifecycle. Together with streaming, app virtualization transforms the application management model and greatly simplifies productivity application support. If an application no longer works, simply reset it to its original state. If a user no longer needs an application, don't uninstall it, simply clear the cache. If a user needs an application for a temporary period, simply control the cache duration. Try doing that with a traditional software installation!
If you haven't looked at application virtualization yet, don't wait any longer. And when you do, make sure the product you choose combines the power of app virtualization with streaming so that you can truly gain the upper hand on those pesky apps.