Application virtualization

Last updated

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.

Contents

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

Illustration of an application running in a native environment and running in an application virtualization environment AppVirtual.svg
Illustration of an application running in a native environment and running in an application virtualization environment

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. Examples of this technology for the Windows platform include:

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 [4] and with minimal regression testing against one another. [5] 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. [4]

Application virtualization also enables simplified operating system migrations. [4] 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]

Technology categories that fall under application virtualization include:

See also

Related Research Articles

Microsoft Windows was announced by Bill Gates on 10 November 1983, 2 years before it was first released. Microsoft introduced Windows as a graphical user interface for MS-DOS, which had been introduced two years earlier. The product line evolved in the 1990s from an operating environment into a fully complete, modern operating system over two lines of development, each with their own separate codebase.

Microsoft Windows is a product line of proprietary graphical operating systems developed and marketed by Microsoft. It is grouped into families and sub-families that cater to particular sectors of the computing industry -- Windows (unqualified) for a consumer or corporate workstation, Windows Server for a server and Windows IoT for an embedded system. Defunct families include Windows 9x, Windows Mobile, Windows Phone, and Windows Embedded Compact.

<span class="mw-page-title-main">Thin client</span> Non-powerful computer optimized for remote server access

In computer networking, a thin client is a simple (low-performance) computer that has been optimized for establishing a remote connection with a server-based computing environment. They are sometimes known as network computers, or in their simplest form as zero clients. The server does most of the work, which can include launching software programs, performing calculations, and storing data. This contrasts with a rich client or a conventional personal computer; the former is also intended for working in a client–server model but has significant local processing power, while the latter aims to perform its function mostly locally.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

Virtual PC is an x86 emulator for PowerPC Mac hosts and a virtualization app for Microsoft Windows hosts. It was created by Connectix in 1997 and acquired by Microsoft in 2003. The Mac version was discontinued in 2006 following the Mac transition to Intel, while the Windows version was discontinued in 2011 in favour of Hyper-V.

Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft Corporation which provides a user with a graphical interface to connect to another computer over a network connection. The user employs RDP client software for this purpose, while the other computer must run RDP server software.

<span class="mw-page-title-main">Windows NT 3.1</span> First major release of Windows NT, released in 1993

Windows NT 3.1 is the first major release of the Windows NT operating system developed by Microsoft, released on July 27, 1993.

<span class="mw-page-title-main">Virtual desktop</span> User interfaces describe ways in which virtual space of a computers desktop is expanded

In computing, a virtual desktop is a term used with respect to user interfaces, usually within the WIMP paradigm, to describe ways in which the virtual space of a computer's desktop environment is expanded beyond the physical limits of the screen's display area through the use of software. This compensates limits of the desktop area and is helpful in reducing clutter of running graphical applications.

Desktop Window Manager is the compositing window manager in Microsoft Windows since Windows Vista that enables the use of hardware acceleration to render the graphical user interface of Windows.

The following is a timeline of virtualization development. In computing, virtualization is the use of a computer to simulate another computer. Through virtualization, a host simulates a guest by exposing virtual hardware devices, which may be done through software or by allowing access to a physical device connected to the machine.

Desktop virtualization is a software technology that separates the desktop environment and associated application software from the physical client device that is used to access it.

<span class="mw-page-title-main">Parallels Desktop for Mac</span> Virtual machine software

Parallels Desktop for Mac is software providing hardware virtualization for Macintosh computers with Intel processors, and since version 16.5 also for Apple silicon-based Macintosh computers. It is developed by Parallels, since 2018 a subsidiary of Corel.

Microsoft Application Virtualization is an application virtualization and application streaming solution from Microsoft. It was originally developed by Softricity, a company based in Boston, Massachusetts, acquired by Microsoft on July 17, 2006. App-V represents Microsoft's entry to the application virtualization market, alongside their other virtualization technologies such as Hyper-V, Microsoft User Environment Virtualization (UE-V), Remote Desktop Services, and System Center Virtual Machine Manager.

<span class="mw-page-title-main">Hyper-V</span> Native hypervisor by Microsoft

Microsoft Hyper-V, codenamed Viridian, and briefly known before its release as Windows Server Virtualization, is a native hypervisor; it can create virtual machines on x86-64 systems running Windows. Starting with Windows 8, Hyper-V superseded Windows Virtual PC as the hardware virtualization component of the client editions of Windows NT. A server computer running Hyper-V can be configured to expose individual virtual machines to one or more networks. Hyper-V was first released with Windows Server 2008, and has been available without additional charge since Windows Server 2012 and Windows 8. A standalone Windows Hyper-V Server is free, but has a command-line interface only. The last version of free Hyper-V Server is Hyper-V Server 2019, which is based on Windows Server 2019.

Remote Desktop Services (RDS), known as Terminal Services in Windows Server 2008 and earlier, is one of the components of Microsoft Windows that allow a user to initiate and control an interactive session on a remote computer or virtual machine over a network connection. RDS was first released in 1998 as Terminal Server in Windows NT 4.0 Terminal Server Edition, a stand-alone edition of Windows NT 4.0 Server that allowed users to log in remotely. Starting with Windows 2000, it was integrated under the name of Terminal Services as an optional component in the server editions of the Windows NT family of operating systems, receiving updates and improvements with each version of Windows. Terminal Services were then renamed to Remote Desktop Services with Windows Server 2008 R2 in 2009.

User environment management is the management of a computer user's experience within their desktop environment.

Turbo is a set of software products and services developed by the Code Systems Corporation for application virtualization, portable application creation, and digital distribution. Code Systems Corporation is an American corporation headquartered in Seattle, Washington, and is best known for its Turbo products that include Browser Sandbox, Turbo Studio, TurboServer, and Turbo.

In computing, virtualization or virtualisation in British English is the act of creating a virtual version of something at the same abstraction level, including virtual computer hardware platforms, storage devices, and computer network resources.

Citrix Virtual Apps is an application virtualization software produced by Citrix Systems that allows Windows applications to be accessed via individual devices from a shared server or cloud system.

<span class="mw-page-title-main">MSP360</span> Application service provider

MSP360, formerly CloudBerry Lab, is a software and application service provider company that develops online backup, remote desktop and file management products integrated with more than 20 cloud storage providers.

References

  1. "Microsoft Application Virtualization Technical Overview". microsoft.com. Microsoft . Retrieved 1 July 2017.
  2. Husain, Amir. "How to build an Application Virtualization Framework". vdiworks.com. VDIworks . Retrieved 1 July 2008.
  3. Gurr, Coby (28 July 2008). "Facilitating Microsoft Windows Vista Migration Through Application Virtualization" (PDF). dell.com. Dell.
  4. 1 2 3 4 Winslow, Philip; Semple, Robert; Maynard, Jason; Simson, Dennis; McGrath, Bryan (26 November 2007). "Desktop Virtualization Comes of Age" (PDF). Credit Suisse. Archived from the original (PDF) on 20 February 2009. Retrieved 3 March 2008.
  5. "Overview Series: Windows Vista Application Compatibility". TechNet . Microsoft. 25 July 2008. Retrieved 1 July 2017.
  6. Varhol, Peter (1 September 2007). "Application Virtualization Hits Its Stride". Redmond Magazine. 1105 Media. Archived from the original on 10 June 2008.
  7. Sommer, Tim (June 2012). "Top 200 SAM Terms – A Glossary Of Software Asset Management Terms". omtco.eu. OMTCO. Retrieved 20 May 2013.
  8. Marinescu, Adrian (3 August 2006). "Windows Vista Heap Management Enhancements" (PDF). blackhat.com. Microsoft.
  9. Jackson, Chris (30 April 2008). "Can You Shim Applications Virtualized in SoftGrid?". Microsoft.
  10. Enzler, R (2003). "Virtualizing Hardware with Multi-context Reconfigurable Arrays". Field Programmable Logic and Application. Lecture Notes in Computer Science. Vol. 2778. pp. 151–160. doi:10.1007/978-3-540-45234-8_16. ISBN   978-3-540-40822-2.