Let’s dive one level lower into the model (see Figure 3-1). Application virtualization has two forms: client-side application virtualization and server-side application virtualization. Application virtualization runs on top of the operating systems that manage the functioning of systems. It makes it possible for an application to be “encapsulated” or run in an artificial environment.
The major difference between access virtualization and application virtualization is that a portion, or perhaps all, of the application actually runs on the local device rather than on a remote server. The encapsulated application still requires support functions offered by a specific operating system, so this means, for example, that encapsulated Windows applications need to be executed on a remote Windows device. This is different, by the way, from processing virtualization (see Chapter 4 for more information on processing virtualization), which isolates a workload from either the operating system or physical system it is running on.
As with other virtualization technologies, application virtualization has a long track record of success. The earliest forms of application virtualization were developed by mainframe suppliers, such as IBM, Burroughs (now part of Unisys), and others, as a structured form of application development and deployment. At that time, “transaction processing monitor” was the industry catchphrase for server-side application virtualization tools.
Windows has been the center of intense development of application virtualization as well. AppZero, Citrix, Microsoft, VMware, and others have been offering client-side and/or server-side application virtualization since the early 1990s.
Today, this type of virtualization is often used in conjunction with various forms of processing virtualization, which will be examined in Chapter 4.
As shown in Figure 3-2, there are two different forms of application virtualization, client-side and server-side. They make it possible for applications to run in a protected, isolated, or artificial environment.
Let’s examine each type in turn:
The client-side form of application virtualization creates a protected environment that makes it possible for applications to be isolated from one another and from the base operating system. This means that applications that could not successfully reside on the same client system could be used together. This prevents the “library version mismatch” problem with Windows applications.
It also means that an application designed for an earlier version of the operating system may continue to function on a newer version of that operating system, even though it would be incompatible without being placed in a virtual environment. This is very useful when an organization is in the process of upgrading from one operating system version to another and can’t upgrade the application.
Another use is delivering applications or application components to a target client system as needed. Application virtualization also makes it possible for those applications or application components to either remain on the client system for later use or be automatically removed after they have been used.
Placing server-side applications in a virtual environment offers many of the same benefits as client-side application virtualization. Applications that are normally incompatible with one another can be made to work together. Applications that might be incompatible with new versions of an operating system can continue to be used.
Server-side application virtualization offers a few other valuable functions as well. Multiple instances of an application can be automatically started on other machines when the workload is no longer meeting service-level guidelines. This could mean faster performance or being able to handle workload requests from a larger number of people.
Another important benefit is that applications can be restarted upon failure. While this is not the same thing as a high availability cluster (a processing virtualization function that will be described in Chapter 4), it can be very valuable.
Application virtualization is the best choice if the organization has one of the following goals:
Organizations need to make incompatible applications run side-by-side on the same system. This requirement can arise when the applications were purchased from third parties and require support of different versions of the same tools. Typically new versions of application development and runtime tools replace older versions when they are installed. This can cause older applications to fail.
Applications designed for an earlier version of an operation must be made to work with a newer version. Running applications in a virtual environment can significantly extend the life cycle of an application, giving the organization time to update the application or find a replacement for the application.
Applications provide critical functions and the organization will suffer great harm if those functions become unavailable for any reason. Applications can be made to fail over from one server to another.
Applications must perform faster or be able to service larger numbers of users. Server-based application virtualization products often include a workload management function, allowing the same application to automatically be started on multiple systems, to either improve application performance or allow more people to access the application simultaneously.
It is necessary to reduce the cost for provisioning, installation, updating, and administrating applications. It is far easier and less costly to provision systems, install software, update software, and the like if it can be done from a central location. Once encapsulated, or placed in a virtual environment, applications can more easily be copied to remote systems or streamed to remote systems when required.
Although there are many players in the application virtualization market, a short summary of the most important suppliers follows:
Citrix offers virtualization technology in a number of different categories. The company’s XenApp is considered an application virtualization, too. XenApp is a client-side application virtualization product.
Microsoft acquired Softricity in July 2006 and enhanced its product, renaming it SoftGrid. It is now called Microsoft Application Virtualization or App-V. App-V provides both client- and server-side application virtualization functions.
VMware acquired ThinApp from Thinstall in January 2008. ThinApp is a client-side application virtualization function.
AppZero makes it possible for organizations to encapsulate applications into a virtual application environment (VAA). VAAs can be easily delivered to one or more servers.
There are many different environments in which application virtualization can be beneficial. The following list contains only a few examples:
When new versions of operating systems are released, they often include enhancements that prevent older software from operating properly. A properly encapsulated application, one that has been placed in a virtual environment, may continue to function as expected. The operating system sees a “current application” and the application sees the proper operating system.
An organization may wish to deliver applications and application updates to its staff, consultants, or customers in an encapsulated or virtual form. The application may either be copied to the client system or be streamed down as needed. Applications can then be set to run only at specific times, from specific locations, and even to disable themselves after a certain date.
3.147.46.136