Application Virtualization
Encyclopedia
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, although it is still executed as if it were. 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. In this context, the term "virtualization" refers to the artifact being encapsulated (application), which is quite different to its meaning in hardware virtualization
, where it refers to the artifact being abstracted (physical hardware).
and Linux
. For example, INI file mappings were introduced with Windows NT
to virtualize, into the registry
, the legacy INI files of applications originally written for Windows 3.1. Similarly, Windows Vista
implements a shim that applies limited file and registry
virtualization so that legacy applications that try to save user data in a readonly system location that was writable by anyone in early Windows, can still work.
Full application virtualization requires a virtualization layer. Application virtualization layers replace part of the runtime environment normally provided by the operating system. The layer intercepts all file and Registry operations of virtualized applications and transparently redirects them to a virtualized location, often a single file. The application never knows that it's accessing a virtual resource instead of a physical one. Since the application is now working with one file instead of many files and registry entries 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 are AppZero, BoxedApp, Cameyo, Ceedo
, Evalaze, InstallFree
, Citrix XenApp, Novell ZENworks Application VIrtualization
, Endeavors Technologies Application Jukebox, Microsoft Application Virtualization
, Software Virtualization Solution
, Spoon (former Xenocode) and VMware ThinApp
.
Umbrella term
An umbrella term is a word that provides a superset or grouping of concepts that all fall under a single common category. Umbrella term is also called a hypernym. For example, cryptology is an umbrella term that encompasses cryptography and cryptanalysis, among other fields...
that describes software technologies that improve portability, manageability and compatibility of applications
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...
by encapsulating them from the underlying operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
on which they are executed. A fully virtualized application is not installed in the traditional sense, although it is still executed as if it were. 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. In this context, the term "virtualization" refers to the artifact being encapsulated (application), which is quite different to its meaning in hardware virtualization
Hardware virtualization
Computer hardware virtualization is the virtualization of computers or operating systems. It hides the physical characteristics of a computing platform from users, instead showing another abstract computing platform...
, where it refers to the artifact being abstracted (physical hardware).
Description
Limited application virtualization is used in modern operating systems such a Microsoft WindowsMicrosoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
and Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
. For example, INI file mappings were introduced with Windows NT
Windows NT
Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix. It was intended to complement...
to virtualize, into the registry
Windows registry
The Windows Registry is a hierarchical database that stores configuration settings and options on Microsoft Windows operating systems. It contains settings for low-level operating system components as well as the applications running on the platform: the kernel, device drivers, services, SAM, user...
, the legacy INI files of applications originally written for Windows 3.1. Similarly, Windows Vista
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...
implements a shim that applies limited file and registry
Windows registry
The Windows Registry is a hierarchical database that stores configuration settings and options on Microsoft Windows operating systems. It contains settings for low-level operating system components as well as the applications running on the platform: the kernel, device drivers, services, SAM, user...
virtualization so that legacy applications that try to save user data in a readonly system location that was writable by anyone in early Windows, can still work.
Full application virtualization requires a virtualization layer. Application virtualization layers replace part of the runtime environment normally provided by the operating system. The layer intercepts all file and Registry operations of virtualized applications and transparently redirects them to a virtualized location, often a single file. The application never knows that it's accessing a virtual resource instead of a physical one. Since the application is now working with one file instead of many files and registry entries 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 are AppZero, BoxedApp, Cameyo, Ceedo
Ceedo
Ceedo is a software virtualization platform developed by Israeli company Ceedo Technologies. The term "Ceedo" refers both to the company and to the virtual workspace client on which the company's products are based....
, Evalaze, InstallFree
InstallFree
InstallFree Inc. is a privately-held company, backed by Ignition Partners and Trilogy Equity Partners, with headquarters in Stamford, CT and offices located worldwide...
, Citrix XenApp, Novell ZENworks Application VIrtualization
Novell ZENworks Application VIrtualization
Novell ZENworks Application Virtualization is an application virtualization and portable application creation console by Novell that allows a user to build applications that run like an executable file.-History:...
, Endeavors Technologies Application Jukebox, Microsoft Application Virtualization
Microsoft Application Virtualization
Microsoft Application Virtualization is an application virtualization and application streaming solution from Microsoft. It was acquired by Microsoft during the acquisition of Boston, Massachusetts-based Softricity on July 17, 2006...
, Software Virtualization Solution
Software Virtualization Solution
Symantec Workspace Virtualization is an application virtualization solution for Microsoft Windows by Symantec, now known as ....
, Spoon (former Xenocode) and VMware ThinApp
VMware ThinApp
VMware ThinApp is an application virtualization and portable application creator suite by VMware that can package conventional applications so that they become portable applications...
.
Related Technologies
Technology categories that fall under application virtualization include:- Application StreamingApplication StreamingComputer application streaming is a form of on-demand software distribution.The basic concept of application streaming has its foundation in the way modern computer programming languages and operating systems produce and run application code. Only specific parts of a computer program need to be...
. Pieces of the application's code, data, and settings are delivered when they're first needed, instead of the entire application being delivered before startup. Running the packaged application may require the installation of a lightweight client application. Packages are usually delivered over a protocol such as HTTP, CIFS or RTSP.
- Desktop VirtualizationDesktop virtualizationDesktop virtualization , as a concept, separates a personal computer desktop environment from a physical machine using the client–server model of computing....
/Virtual Desktop Infrastructure (VDI). The application is hosted in a VM or blade PCBlade PCA blade PC is a form of client or personal computer . In conjunction with a client access device on a user's desk, the supporting blade PC is typically housed in a rack enclosure, usually in a datacenter or specialised environment...
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. WineWine (software)Wine is a free software application that aims to allow computer programs written for Microsoft Windows to run on Unix-like operating systems. Wine also provides a software library, known as Winelib, against which developers can compile Windows applications to help port them to Unix-like...
allows Microsoft WindowsMicrosoft WindowsMicrosoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
applications to run on LinuxLinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
). - May protect the operating system and other applications from poorly written or buggy code.
- Uses fewer resources than a separate virtual machineVirtual machineA virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...
. - 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 and with minimal regression testing against one another.
- Reduce system integration and administration costs by maintaining a common software baseline across multiple computers in an organization.
- Implement the security principle of least privilegePrinciple of least privilegeIn information security, computer science, and other fields, the principle of least privilege, also known as the principle of minimal privilege or just least privilege, requires that in a particular abstraction layer of a computing environment, every module must be able to access only the...
by removing the requirement for end-users to have Administrator privileges in order to run poorly written applications. - Simplified operating systemOperating systemAn operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
migrations. - Accelerated application deployment, through on-demand application streamingApplication StreamingComputer application streaming is a form of on-demand software distribution.The basic concept of application streaming has its foundation in the way modern computer programming languages and operating systems produce and run application code. Only specific parts of a computer program need to be...
. - Improved security, by isolating applications from the operating system.
- 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.
- Allows applications to be copied to portable media and then imported to client computers without need of installing them.
Limitations of application virtualization
- Not all software can be virtualized. Some examples include applications that require a device driverDevice driverIn computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....
and 16-bit16-bit-16-bit architecture:The HP BPC, introduced in 1975, was the world's first 16-bit microprocessor. Prominent 16-bit processors include the PDP-11, Intel 8086, Intel 80286 and the WDC 65C816. The Intel 8088 was program-compatible with the Intel 8086, and was 16-bit in that its registers were 16...
applications that need to run in shared memory space. - Some types of software such as anti-virus packages and applications that require heavy OS integration, such as StardockStardockStardock Corporation is a software development company founded in 1991 and incorporated in 1993 as Stardock Systems. Stardock initially developed for the OS/2 platform, but was forced to switch to Windows due to the collapse of the OS/2 software market between 1997 and 1998...
's WindowBlindsWindowBlindsWindowBlinds is a computer program that allows users to skin the Windows graphical user interface. It has been developed by Stardock since 1998, and is the most popular component of their flagship software suite, Object Desktop. It is also available separately, and as an ActiveX/COM component...
or TGTSoft's 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. For this reason, specialist application compatibility fixes (shims) may still be needed, even if the application is virtualized.
See also
- Application streamingApplication StreamingComputer application streaming is a form of on-demand software distribution.The basic concept of application streaming has its foundation in the way modern computer programming languages and operating systems produce and run application code. Only specific parts of a computer program need to be...
- Desktop VirtualizationDesktop virtualizationDesktop virtualization , as a concept, separates a personal computer desktop environment from a physical machine using the client–server model of computing....
- Workspace VirtualizationWorkspace virtualizationWorkspace virtualization is a way of distributing applications to client computers using application virtualization however it also bundles several applications together into one complete workspace. It is an approach that encapsulates and isolates an entire computing workspace...
- Portable application creatorsPortable application creatorsPortable application creators allow the creation of portable applications . They usually use application virtualization.- Creators of independent portable applications :...
- Comparison of application virtual machinesComparison of Application Virtual MachinesThis article lists some software virtual machines that are typically used for allowing application bytecode to be portably run on many different computer architectures and operating systems. The application is usually run on the computer using an interpreter or just-in-time compilation...
- EmulatorEmulatorIn computing, an emulator is hardware or software or both that duplicates the functions of a first computer system in a different second computer system, so that the behavior of the second system closely resembles the behavior of the first system...
- Software as a serviceSoftware as a ServiceSoftware as a service , sometimes referred to as "on-demand software," is a software delivery model in which software and its associated data are hosted centrally and are typically accessed by users using a thin client, normally using a web browser over the Internet.SaaS has become a common...
- Shim (computing)
- Virtual ApplicationVirtual ApplicationA virtual application is an application that has been optimized to run on virtual infrastructure. The application software along with Just Enough Operating System is combined inside a virtual machine container in a manner that maximizes the performance of the application...