Application virtualization (engl. Application Virtualization ) is a software technology , the application by the executing operating system isolated and an intermediate layer between the application and operating system as the runtime environment provides. A fully virtualized application is no longer installed on an operating system in the traditional sense, although it is still executed on its basis. The application behaves as if it were conventionally installed directly on the operating system, but is actually executed in a virtual (sometimes also referred to as a sandbox ) environment that is partially or completely isolated and created only for you, depending on the version .
In this context, the term "virtualized" describes the isolation of the application from the underlying operating system, while the term in the context of the virtual machine relates more to the abstraction from the underlying hardware layer.
Operating systems such as Microsoft Windows or Linux already contain (sometimes very functionally limited) mechanisms for application virtualization. For example, Windows 7 provides the so-called "Windows XP mode", which provides an isolated Windows XP runtime environment that allows older applications to be run that are no longer compatible with Windows 7 but are compatible with Windows XP.
Full application virtualization requires a virtualization layer that replaces parts of the runtime environment normally provided by the operating system. For example, all file operations and, in Windows, access to the Windows registry are intercepted by this layer and, from the point of view of the application, replaced transparently by access to the isolated runtime environment. The entire process of virtualization is completely transparent to the application itself; H. all resources are also treated accordingly by the virtualization layer. All configurations of the virtual runtime environment are managed in a central location (usually even in a single file), so the entire environment including the application can be easily transferred to another computer and executed there with the same configuration without changes to the actual operating system.
This process is used, for example, by the application virtualization systems AppZero, BoxedApp, Cameyo, Ceedo, AppliDis, Evalaze, InstallFree, 2X Software, Citrix XenApp , Systancia, Novell ZENworks Application Virtualization, Numecent Application Jukebox, Microsoft Application Virtualization , Software Virtualization Solution, Spoon (formerly Xenocode ), Symantec Workspace Virtualization and Workspace Streaming, VMware ThinApp , P-apps and Oracle Secure Global Desktop implemented on the Windows platform.
Techniques that are often combined or related to application virtualization include:
- Application or application streaming : Parts of the application code, data and settings are only delivered via a network connection when they are needed (i.e. at the latest when the application is started), instead of the application being fully installed on the computer beforehand. Usually only a minimal client application is pre-installed, which then takes over the execution of the application delivered via the network and, if necessary, also provides an encapsulated runtime environment. An example of a combination of application streaming and a pre-installed, encapsulated runtime environment is Java Web Start , another Citrix XenApp .
- Remote desktop services (sometimes also called Terminal Server ) are services that allow several users to operate the same computer over the network in different runtime environments at the same time. Only certain inputs and outputs are redirected to the controlling computer via the network (such as the screen content or audio output) while all actions are carried out on the remote computer. Examples of such services are ssh , Telnet or Microsoft's Remote Desktop Protocol , which allow multiple users to log on to the same computer and run applications independently of one another.
- Desktop virtualization is a collective term used to describe software processes that increase portability, manageability, and display device compatibility for the desktop environment of a PC by separating the execution of applications from the physical display devices. A common implementation is to run several desktop systems on powerful server hardware with the help of a hypervisor and to use different display devices (for example so-called thin clients , desktop PCs or mobile devices) to access and display the screen contents . The infrastructure for providing such environments is usually referred to as Virtual Desktop Infrastructure , or VDI for short.
Advantages of application virtualization
- Applications can run in operating system environments for which they were not originally designed. For example, Wine allows some Microsoft Windows applications to run on Linux . CDE, another application virtualization solution, allows Linux applications to be run on different Linux distributions without changes.
- A virtualized application can be copied completely with the definition of its runtime environment to portable media (e.g. on a USB stick ) and then executed directly from the portable medium without the need for installation, which turns the application into portable software .
- The encapsulation of the runtime environment from the underlying operating system can protect the actual operating system from the effects of faulty code in the application software (which can lead to memory protection violations, for example ) when it is executed in the encapsulated runtime environment. The effects of the error then only affect the runtime environment of the virtualized application.
- If application virtualization is used instead of a virtual machine in the sense of process-based virtualization, fewer resources are used, since the additional management overhead for a VM with an application is greater than for a single virtualized application.
- By separating the runtime environments of different virtualized applications, applications can be operated in parallel that otherwise could not be operated in parallel on one operating system (e.g. because they interfere with each other due to faulty application code or each exclusively require the same resource).
- With virtualized applications, the underlying operating system can be replaced more easily (as long as the application virtualization software supports both operating systems).
- Increased security by isolating the application within the sandbox from the operating system (e.g. when analyzing malicious code ).
Application Virtualization Limits
- Not all applications can be virtualized in terms of application virtualization. For example, some applications require special device drivers that are not available in the virtual runtime environment, or undocumented operating system functions are used that are not reproduced in the sandbox.
- Applications that are very closely integrated with the operating system (e.g. antivirus software ) can only be virtualized with great difficulty, since all the operating system functions used would have to be known and made available by the application virtualization environment.
- The licensing of virtualized applications is more complicated than the classic approaches, in which a software license was often linked to the physical computer that was used to run it. It must now be ensured that both the virtualization software and the application itself have been correctly licensed.
- Microsoft Application Virtualization Technical Overview . Microsoft . Retrieved October 10, 2014.
- Amir Husain: How to build an Application Virtualization Framework . VDIworks . Retrieved July 1, 2008.
- Coby Gurr: Facilitating Microsoft Windows Vista Migration Through Application Virtualization (PDF) Dell . January 28, 2008. Retrieved June 19, 2008.
- Application Streaming - accessed October 3, 2014
- Philip J. Guo: CDE: lightweight application virtualization for Linux . 2011. Retrieved on November 26, 2012: “ CDE implements a form of lightweight application virtualization that allows you to easily distribute portable software, to deploy applications to the cloud, to make computational experiments reproducible, and to run software on non-native Linux distros without conflicts. "
- Philip J. Guo: CDE: Using System Call Interposition to Automatically Create Portable Software Packages. (pdf) In: Proceedings of the 2011 USENIX Annual Technical Conference . June 1, 2011. Retrieved November 26, 2012.
- Domagoj Pernar: Application Virtualization Download repository, and how to make applications portable . V-irtualization.com . October 2009. Archived from the original on March 4, 2010. Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. Retrieved October 30, 2009.
- Overview Series: Windows Vista Application Compatibility . Microsoft . Accessed on June 19, 2008. ( Page no longer available , search in web archives ) Info: The link was automatically marked as defective. Please check the link according to the instructions and then remove this notice.
- Desktop Virtualization Comes of Age (PDF) Credit Suisse . November 26, 2007. Archived from the original on January 17, 2010. Info: The archive link was automatically inserted and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. Retrieved March 3, 2008.
- Peter Varhol: Application Virtualization Hits Its Stride . Redmondmag.com . September 2007. Archived from the original on June 10, 2008. Info: The archive link was automatically inserted and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. Retrieved June 19, 2008.
- Licensing pitfalls in application virtualization . OMTCO Operations Management Technology Consulting GmbH. Retrieved May 20, 2013.