Application virtualization explained

Application virtualization is a software technology that encapsulates computer programs 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 were. The application behaves at runtime like it is directly interfacing with the original operating system and all the resources managed by it, but can be isolated or sandboxed to varying degrees.

In this context, the term "virtualization" refers to the artifact being encapsulated (application), which is quite different from its meaning in hardware virtualization, where it refers to the artifact being abstracted (physical hardware).

Description

Full application virtualization requires a virtualization layer.[2] Application virtualization layers replace part of the runtime environment normally provided by the operating system. The layer intercepts all disk operations of virtualized applications and transparently redirects them to a virtualized location, often a single file.[3] The application remains unaware that it accesses a virtual resource instead of a physical one. Since the application is now working with one file instead of many files spread throughout the system, it becomes easy to run the application on a different computer and previously incompatible applications can be run side by side.

Benefits

Application virtualization allows applications to run in environments that do not suit the native application. For example, Wine allows some Microsoft Windows applications to run on Linux.

Application virtualization reduces system integration and administration costs by maintaining a common software baseline across multiple diverse computers in an organization. Lesser integration protects the operating system and other applications from poorly written or buggy code. In some cases, it provides memory protection, IDE-style debugging features and may even run applications that are not written correctly, for example applications that try to store user data in a read-only system-owned location. (This feature assists in the implementation of the principle of least privilege by removing the requirement for end-users to have administrative privileges in order to run poorly written applications.) It allows incompatible applications to run side by side, at the same time and with minimal regression testing against one another.[4] Isolating applications from the operating system has security benefits as well, as the exposure of the virtualized application does not automatically entail the exposure of the entire OS.

Application virtualization also enables simplified operating system migrations.[5] Applications can be transferred to removable media or between computers without the need of installing them, becoming portable software.

Application virtualization uses fewer resources than a separate virtual machine.

Limitations

Not all computer programs can be virtualized. Some examples include applications that require a device driver (a form of integration with the OS) and 16-bit applications that need to run in shared memory space.[6] Anti-virus programs and applications that require heavy OS integration, such as WindowBlinds or StyleXP are difficult to virtualize.

Moreover, in software licensing, application virtualization bears great licensing pitfalls mainly because both the application virtualization software and the virtualized applications must be correctly licensed.[7]

While application virtualization can address file and Registry-level compatibility issues between legacy applications and newer operating systems, 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.[8] For this reason, specialist application compatibility fixes (shims) may still be needed, even if the application is virtualized.[9]

Functional discrepancies within the multicompatibility model are an additional limitation, where utility-driven access points are shared within a public network. These limitations are overcome by designating a system level share point driver.[10]

Related technologies

Technology categories that fall under application virtualization include:

See also

Notes and References

  1. Web site: Microsoft Application Virtualization Technical Overview . microsoft.com . . 1 July 2017.
  2. Web site: How to build an Application Virtualization Framework . Husain . Amir . vdiworks.com . . 1 July 2008.
  3. Web site: Gurr . Coby . 28 July 2008 . Facilitating Microsoft Windows Vista Migration Through Application Virtualization . https://web.archive.org/web/20090423083645/http://www.dell.com/downloads/global/power/ps1q08-20080154-LANDesk.pdf . 2009-04-23 . dell.com . Dell.
  4. Web site: Overview Series: Windows Vista Application Compatibility . . 25 July 2008 . . 1 July 2017.
  5. Web site: Desktop Virtualization Comes of Age . Winslow . Philip . Semple . Robert . 26 November 2007 . . https://web.archive.org/web/20090220052510/http://www.dabcc.com/documents/DesktopVirtualization_11_26_07.pdf . 20 February 2009 . 3 March 2008 . Maynard . Jason . Simson . Dennis . McGrath . Bryan . dead .
  6. Web site: Application Virtualization Hits Its Stride . Varhol . Peter . 1 September 2007 . Redmond Magazine . 1105 Media . https://web.archive.org/web/20080610195449/http://redmondmag.com/features/article.asp?editorialsid=1776 . 10 June 2008 . live.
  7. Web site: Top 200 SAM Terms – A Glossary Of Software Asset Management Terms . Sommer . Tim . June 2012 . omtco.eu . OMTCO . 20 May 2013.
  8. Web site: Windows Vista Heap Management Enhancements . Marinescu . Adrian . 3 August 2006 . blackhat.com . Microsoft.
  9. Web site: Can You Shim Applications Virtualized in SoftGrid? . Jackson . Chris . 30 April 2008 . Microsoft.
  10. Book: Enzler . R . Field Programmable Logic and Application . Virtualizing Hardware with Multi-context Reconfigurable Arrays . Lecture Notes in Computer Science . 2003. 2778 . 151–160 . 10.1007/978-3-540-45234-8_16 . 978-3-540-40822-2 .