Share on Facebook Share on Twitter Email
Answers.com

Application virtualization

 
Computer Desktop Encyclopedia: application virtualization

A smaller umbrella term within the larger umbrella term of "virtualization." It refers to several techniques that make running applications more protected, more flexible or easier to manage.

Modern operating systems attempt to keep programs isolated from each other. If one program crashes, the remaining programs generally keep running. However, bugs in the operating system or applications can cause the entire system to come to a screeching halt or, at least, impede other operations. This is the major reason virtualization became desirable.

The terms "virtual" and "virtualization" are very popular and are used to convey that previous boundaries have been extended. Following are several application virtualization definitions. See virtualization, network virtualization and storage virtualization.

Application Streaming

Rather than installing all applications in every user's machine, applications are delivered to each user's PC as needed. This enables the applications to be updated centrally and also provides a way to measure each users' application requirements over time. See application streaming.

Terminals to a Central Computer

The oldest network architecture, all applications and data are stored in a centralized server or cluster of servers. The user's PC functions like a terminal to the server or dedicated terminals are used. The applications are said to be "virtualized" because they function as if they were running on the client. See thin client.

Partition the Hardware

This is the traditional meaning of "virtualization" and refers to partitioning a computer in order to run several applications without interference, each in their own "virtual machine." Deployed in servers and clients, this is more accurately called "server virtualization" and "client virtualization." Contrast with OS virtualization. See virtual machine.

Write the Program Once, Run Everywhere

An interpreted programming language enables the same program to run on different machine platforms, with Java and Visual Basic being the major examples (see Java Virtual Machine and Visual Basic). The applications are said to be "virtualized" because they run on any platform that has a runtime engine for that language.

Dynamic Application Assignment

This approach treats servers in the datacenter as a pool of operating system resources and assigns those resources to applications based on demand in real time. The pioneer in this area is Data Synapse Inc. (see FabricServer). The applications are said to be "virtualized" because they can be run in any server.

Download Computer Desktop Encyclopedia to your iPhone/iTouch

Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
Wikipedia: Application virtualization
Top

Application virtualization is an umbrella term that describes software technologies that improve portability, manageability and compatibility of applications by encapsulating them from the underlying operating system on which they are executed. A fully virtualized application is not installed in the traditional sense[1], although it is still executed as if it is. The application is fooled at runtime into believing that it is directly interfacing with the original operating system and all the resources managed by it, when in reality it is not. Application virtualization differs from platform virtualization in that in the latter case, the whole operating system is virtualized rather than only specific applications.

Contents

Description

Limited application virtualization is used in modern operating systems such as Microsoft Windows and Linux. For example, IniFileMappings were introduced with Windows NT to virtualize (into the Registry) the legacy INI files of applications originally written for Windows 3.1.[2] Similarly, Windows Vista implements limited file and Registry virtualization so that legacy applications that try to save user data in a system location that was writeable in older versions of Windows, but is now only writeable by highly privileged system software, can work on the new Windows system without the obligation of the program having higher-level security privileges (which would carry security risks).[3]

Full application virtualization requires a virtualization layer.[4] This layer must be installed on a machine to intercept all file and Registry operations of virtualized applications and transparently redirect these operations into a virtualized location.[5] The application performing the file operations never knows that it's not accessing the physical resource it believes it is. In this way, applications with many dependent files and settings can be made portable by redirecting all their input/output to a single physical file, and traditionally incompatible applications can be executed side-by-side. Examples of this technology for the Windows platform are Ceedo, InstallFree, Citrix XenApp, Novell ZENworks Application Virtualization, Endeavors Technologies Application Jukebox, Microsoft Application Virtualization, Software Virtualization Solution, and VMware ThinApp.

A common misconception is that a runtime environment is application virtualization. However a runtime layer is required for an application to be able to execute, while a virtualization layer is not.

Technologies

Technology categories that fall under application virtualization include:

  • Application Streaming. The application is delivered in a package, that may include a subset of OS files and configuration settings. Running the package requires the installation of a lightweight client application. Packages are usually delivered over a protocol such as HTTP or RTSP. Application virtualization is commonly paired with application streaming to deliver applications on demand.[6]
  • Desktop Virtualization/Virtual Desktop Infrastructure (VDI). The application is hosted in a VM or blade PC that also includes the operating system (OS). These solutions include a management infrastructure for automating the creation of virtual desktops, and providing for access control to target virtual desktop. VDI solutions can usually fill the gaps where application streaming falls short.

Benefits of application virtualization

  • Allows applications to run in environments that do not suit the native application (e.g. Wine allows Microsoft Windows applications to run on Linux).
  • May protect the operating system and other applications from poorly written or buggy code.
  • Uses fewer resources than a separate virtual machine.
  • Run applications that are not written correctly, for example applications that try to store user data in a read-only system-owned location.
  • Run incompatible applications side-by-side, at the same time[6] and with minimal regression testing against one another.[7]
  • Maintain a standard configuration in the underlying operating system across multiple computers in an organization, regardless of the applications being used, thereby keeping costs down.
  • Implement the security principle of least privilege by removing the requirement for end-users to have Administrator privileges in order to run poorly written applications.
  • Simplified operating system migrations.[6]
  • Accelerated application deployment, through on-demand application streaming.[6]
  • Improved security, by isolating applications from the operating system.[6]
  • Enterprises can easily track license usage. Application usage history can then be used to save on license costs.
  • Fast application provisioning to the desktop based upon user's roaming profile.

Limitations of application virtualization

  • Not all software can be virtualized. Some examples include applications that require a device driver and 16-bit applications that need to run in shared memory space.[8]
  • Some types of software such as anti-virus packages and application that require heavy OS integration, such as Windowblinds or StyleXP are difficult to virtualize.
  • Only file and Registry-level compatibility issues between legacy applications and newer operating systems can be addressed by application virtualization. For example, applications that don't manage the heap correctly will not execute on Windows Vista as they still allocate memory in the same way, regardless of whether they are virtualized or not.[9] For this reason, specialist application compatibility fixes ("SHIMs") may still be needed, even if the application is virtualized.[10]

Vendor-specific implementations

See also

References

  1. ^ "Introducing Microsoft SoftGrid Application Virtualization". Microsoft. http://www.microsoft.com/windows/products/windowsvista/enterprise/softgrid.mspx. 
  2. ^ "WritePrivateProfileString Function". Microsoft. http://msdn.microsoft.com/en-us/library/ms725501(VS.85).aspx. Retrieved 2008-06-18. 
  3. ^ Mark Russinovich (June 2007). "Inside Windows Vista User Account Control". Microsoft. http://www.microsoft.com/technet/technetmag/issues/2007/06/UAC/default.aspx. 
  4. ^ Amir Husain. "How to build an Application Virtualization Framework". VDIworks. http://vdiworks.com/wp/?p=15. Retrieved 2008-07-01. 
  5. ^ Coby Gurr (2008-01-28). "Facilitating Microsoft Windows Vista Migration Through Application Virtualization" (PDF). Dell. http://www.dell.com/downloads/global/power/ps1q08-20080154-LANDesk.pdf. Retrieved 2008-06-19. 
  6. ^ a b c d e "Desktop Virtualization Comes of Age" (PDF). Credit Suisse. 2007-11-26. http://www.dabcc.com/documents/DesktopVirtualization_11_26_07.pdf. Retrieved 2008-03-03. 
  7. ^ "Overview Series: Windows Vista Application Compatibility". Microsoft. http://technet2.microsoft.com/WindowsVista/en/library/006bca87-10df-4174-94b9-ed568a3faf991033.mspx?mfr=true. Retrieved 2008-06-19. 
  8. ^ Peter Varhol (September 2007). "Application Virtualization Hits Its Stride". Redmondmag.com. http://redmondmag.com/features/article.asp?editorialsid=1776. Retrieved 2008-06-19. 
  9. ^ Adrian Marinescu (2006-07-14). "Windows Vista Heap Management Enhancements" (PDF). Microsoft. http://www.blackhat.com/presentations/bh-usa-06/BH-US-06-Marinescu.pdf. Retrieved 2008-06-19. 
  10. ^ Chris Jackson (2008-05-01). "Can You Shim Applications Virtualized in SoftGrid?". Microsoft. http://blogs.msdn.com/cjacks/archive/2008/04/30/can-you-shim-applications-virtualized-in-softgrid.aspx. Retrieved 2008-06-24. 

 
 

 

Copyrights:

Computer Desktop Encyclopedia. THIS COPYRIGHTED DEFINITION IS FOR PERSONAL USE ONLY.
All other reproduction is strictly prohibited without permission from the publisher.
© 1981-2009 Computer Language Company Inc.  All rights reserved.  Read more
Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "Application virtualization" Read more