application virtualization
   HOME

TheInfoList



OR:

Application virtualization is a software technology that encapsulates
computer program A computer program is a sequence or set of instructions in a programming language for a computer to execute. Computer programs are one component of software, which also includes documentation and other intangible components. A computer progra ...
s from the underlying
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
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 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 Hardware virtualization is the virtualization of computers as complete hardware platforms, certain logical abstractions of their componentry, or only the functionality required to run various operating systems. Virtualization hides the physic ...
, where it refers to the artifact being abstracted (physical hardware).


Description

Full application virtualization requires a virtualization layer. Application virtualization layers replace part of the
runtime environment In computer programming, a runtime system or runtime environment is a sub-system that exists both in the computer where a program is created, as well as in the computers where the program is intended to be run. The name comes from the compile ...
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. 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: * Cameyo * Ceedo * Citrix XenApp * Microsoft App-V * Numecent Cloudpaging * Oracle Secure Global Desktop * Sandboxie *
Shade sandbox Shade sandbox is a sandbox-based isolation program developed by Eugene Balabanov. Shade is distributed to consumers as a shareware solution. It creates an isolated virtual environment within your computer: rather than running software and browsin ...
* Turbo (software) (formerly Spoon and Xenocode) * Symantec Workspace Virtualization * VMware ThinApp *
V2 Cloud V, or v, is the twenty-second and fifth-to-last letter in the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''vee'' (pronounced ), plural ...


Benefits

Application virtualization allows applications to run in environments that do not suit the native application. For example,
Wine Wine is an alcoholic drink typically made from fermented grapes. Yeast consumes the sugar in the grapes and converts it to ethanol and carbon dioxide, releasing heat in the process. Different varieties of grapes and strains of yeasts are ...
allows some Microsoft Windows applications to run on
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
. 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 In computer programming and software development, debugging is the process of finding and resolving ''bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems. Debugging tactics can involve in ...
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. 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 An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
migrations. 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 In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized har ...
.


Limitations

Not all computer programs can be virtualized. Some examples include applications that require a
device driver In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and o ...
(a form of integration with the OS) and
16-bit 16-bit microcomputers are microcomputers that use 16-bit microprocessors. A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two mos ...
applications that need to run in shared memory space.
Anti-virus program Antivirus software (abbreviated to AV software), also known as anti-malware, is a computer program used to prevent, detect, and remove malware. Antivirus software was originally developed to detect and remove computer viruses, hence the name. ...
s and applications that require heavy OS integration, such as
WindowBlinds WindowBlinds is a computer program that allows users to skin (computing), skin the Microsoft Windows, Windows graphical user interface. It has been developed by Stardock since 1998, and is the most popular component of their flagship software su ...
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. 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 Heap or HEAP may refer to: Computing and mathematics * Heap (data structure), a data structure commonly used to implement a priority queue * Heap (mathematics), a generalization of a group * Heap (programming) (or free store), an area of memory f ...
correctly will not execute on Windows Vista as they still allocate memory in the same way, regardless of whether they are virtualized. For this reason, specialist application compatibility fixes (shims) may still be needed, even if the application is virtualized. 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.


Related technologies

Technology categories that fall under application virtualization include: *
Application streaming Application streaming is a form of on-demand software distribution. In these scenarios, only essential portions of an application's code need to be installed on the computer: while the end user performs actions in the application, the necessary co ...
. 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. * Remote Desktop Services (formerly called Terminal Services) is a server-based computing/presentation virtualization component of Microsoft Windows that allows a user to access applications and data hosted on a remote computer over a network. Remote Desktop Services sessions run in a single shared-server operating system (e.g.
Windows Server 2008 R2 Windows Server 2008 R2 is the fifth version of the Windows Server operating system produced by Microsoft and released as part of the Windows NT family of operating systems. It was released to manufacturing on July 22, 2009, and became generally ...
and later) and are accessed using the
Remote Desktop Protocol Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft 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 ...
. *
Desktop virtualization 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. Desktop virtualization can be used in conjunction with applicati ...
software technologies improve portability, manageability and compatibility of a personal computer's desktop environment by separating part or all of the desktop environment and associated applications from the physical client device that is used to access it. A common implementation of this approach is to host multiple desktop operating system instances on a server hardware platform running a hypervisor. This is generally referred to as "virtual desktop infrastructure" (VDI).


See also

* Workspace virtualization *
OS-level virtualization OS-level virtualization is an operating system (OS) paradigm in which the kernel allows the existence of multiple isolated user space instances, called ''containers'' (LXC, Solaris containers, Docker, Podman), ''zones'' (Solaris containers), '' ...
("containerization") * Portable application creators *
Comparison of application virtualization software Application virtualization software refers to both application virtual machines and software responsible for implementing them. Application virtual machines are typically used to allow application bytecode to run portably on many different comput ...
* Shim (computing) *
Virtual application A virtual application is an application that has been optimized to run on virtual infrastructure. The application software along with just enough operating system (JeOS or "juice") is combined inside a virtual machine container in a manner that ma ...


References

{{Reflist, 30em Virtualization Windows security software MacOS security software Linux emulation software Unix emulation software