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 Execution (computing), execute. It is one component of software, which also includes software documentation, documentation and other intangibl ...
s from the underlying
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
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, 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 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 time ...
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.


Benefits

Application virtualization allows applications to run in environments that do not suit the native application. For example,
Wine Wine is an alcoholic drink made from Fermentation in winemaking, fermented fruit. Yeast in winemaking, Yeast consumes the sugar in the fruit and converts it to ethanol and carbon dioxide, releasing heat in the process. Wine is most often made f ...
allows some
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
applications to run on
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
. 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 engineering, debugging is the process of finding the Root cause analysis, root cause, workarounds, and possible fixes for bug (engineering), bugs. For software, debugging tactics can involve interactive debugging, control flow analysis, Logf ...
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 In information security, computer science, and other fields, the principle of least privilege (PoLP), also known as the principle of minimal privilege (PoMP) or the principle of least authority (PoLA), requires that in a particular abstraction l ...
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 and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
migrations. Applications can be transferred to
removable media In computing, a removable media is a data storage media that is designed to be readily inserted and removed from a system. Most early removable media, such as floppy disks and optical discs, require a dedicated read/write device (i.e. a drive) ...
or between computers without the need of installing them, becoming
portable software A portable application (portable app), sometimes also called Standalone program, standalone software, is a computer program designed to operate without changing other files or requiring other software to be installed. In this way, it can be eas ...
. Application virtualization uses fewer resources than a separate
virtual machine In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
.


Limitations

Not all computer programs can be virtualized. Some examples include applications that require a
device driver In the context of an operating system, 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, enabli ...
(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 ...
applications that need to run in shared memory space. 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. 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. 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. 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 and later) and are accessed using the Remote Desktop Protocol. * Desktop virtualization 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 ("containerization") * Portable application creators * Comparison of application virtualization software * Shim (computing) * Virtual application *
Emulator In computing, an emulator is Computer hardware, hardware or software that enables one computer system (called the ''host'') to behave like another computer system (called the ''guest''). An emulator typically enables the host system to run sof ...


References

{{Virtualization software Virtualization Windows security software MacOS security software Linux emulation software Unix emulation software