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 application virtualization and user profile management systems, now termed user virtualization, to provide a comprehensive desktop environment management system. In this mode, all the components of the desktop are virtualized, which allows for a highly flexible and much more secure desktop delivery model. In addition, this approach supports a more complete desktop disaster recovery strategy as all components are essentially saved in the data center and backed up through traditional redundant maintenance systems. If a user's device or hardware is lost, the restore is straightforward and simple, because the components will be present at login from another device. In addition, because no data are saved to the user's device, if that device is lost, there is much less chance that any critical data can be retrieved and compromised.

System architectures
Desktop virtualization implementations are classified based on whether the virtual desktop runs remotely or locally, on whether the access is required to be constant or is designed to be intermittent, and on whether or not the virtual desktop persists between sessions. Typically, software products that deliver desktop virtualization solutions can combine local and remote implementations into a single product to provide the most appropriate support specific to requirements. The degrees of independent functionality of the client device is necessarily interdependent with the server location and access strategy. And virtualization is not strictly required for remote control to exist. Virtualization is employed to present independent instances to multiple users and requires a strategic segmentation of the host server and presentation at some layer of the host's architecture. The enabling layer—usually application software—is called a hypervisor.

Remote desktop virtualization
Remote desktop virtualization implementations operate in a client/server computing environment. Application execution takes place on a remote operating system which communicates with the local client device over a network using a remote display protocol through which the user interacts with applications. All applications and data used remain on the remote system with only display, keyboard, and mouse information communicated with the local client device, which may be a conventional PC/laptop, a thin client device, a tablet, or even a smartphone. A common implementation of this approach involves hosting multiple desktop operating system instances on a server hardware platform running a hypervisor. Its latest iteration is generally referred to as Virtual Desktop Infrastructure, or "VDI" (note that "VDI" is often used incorrectly to refer to any desktop virtualization implementation ).

Remote desktop virtualization is frequently used in the following scenarios:
 * in distributed environments with high availability requirements and where desk-side technical support is not readily available, such as branch office and retail environments.
 * in environments where high network latency degrades the performance of conventional client/server applications
 * in environments where remote access and data security requirements create conflicting requirements that can be addressed by retaining all (application) data within the data center – with only display, keyboard, and mouse information communicated with the remote client.

It is also used as a means of providing access to Windows applications on non-Windows endpoints (including tablets, smartphones, and non-Windows-based desktop PCs and laptops).

Remote desktop virtualization can also provide a means of resource sharing, to distribute low-cost desktop computing services in environments where providing every user with a dedicated desktop PC is either too expensive or otherwise unnecessary.

For IT administrators, this means a more centralized, efficient client environment that is easier to maintain and able to respond more quickly to the changing needs of the user and business.

Presentation virtualization
Remote desktop software allows a user to access applications and data on a remote computer over a network using a remote-display protocol. A VDI service provides individual desktop operating system instances (e.g., Windows XP, 7, 8.1, 10, etc.) for each user, whereas remote desktop sessions run in a single shared-server operating system. Both session collections and virtual machines support full desktop based sessions and remote application deployment.

The use of a single shared-server operating system instead of individual desktop operating system instances consumes significantly fewer resources than the same number of VDI sessions. At the same time, VDI licensing is both more expensive and less flexible than equivalent remote desktop licenses. Together, these factors can combine to make remote desktop-based remote desktop virtualization more attractive than VDI.

VDI implementations allow for delivering personalized workspace back to a user, which retains all the user's customizations. There are several methods to accomplish this.

Application virtualization
Application virtualization improves delivery and compatibility of applications by encapsulating them from the underlying operating system on which they are executed. A fully virtualized application is not installed on hardware in the traditional sense. Instead, a hypervisor layer intercepts the application, which at runtime acts as if it is interfacing with the original operating system and all the resources managed by it when in reality it is not.

User virtualization
User virtualization separates all of the software aspects that define a user’s personality on a device from the operating system and applications to be managed independently and applied to a desktop as needed without the need for scripting, group policies, or use of roaming profiles. The term "user virtualization" sounds misleading; this technology is not limited to virtual desktops. User virtualization can be used regardless of platform – physical, virtual, cloud, etc. The major desktop virtualization platform vendors, Citrix, Microsoft and VMware, all offer a form of basic user virtualization in their platforms.

Layering
Desktop layering is a method of desktop virtualization that divides a disk image into logical parts to be managed individually. For example, if all members of a user group use the same OS, then the core OS only needs to be backed up once for the entire environment who share this layer. Layering can be applied to local physical disk images, client-based virtual machines, or host-based desktops. Windows operating systems are not designed for layering, therefore each vendor must engineer their own proprietary solution.

Desktop as a service
Remote desktop virtualization can also be provided via cloud computing similar to that provided using a software as a service model. This approach is usually referred to as cloud-hosted virtual desktops. Cloud-hosted virtual desktops are divided into two technologies:
 * 1) Managed VDI, which is based on VDI technology provided as an outsourced managed service, and
 * 2) Desktop as a service (DaaS), which provides a higher level of automation and real multi-tenancy, reducing the cost of the technology. The DaaS provider typically takes full responsibility for hosting and maintaining the computer, storage, and access infrastructure, as well as applications and application software licenses needed to provide the desktop service in return for a fixed monthly fee.

Cloud-hosted virtual desktops can be implemented using both VDI and Remote Desktop Services-based systems and can be provided through the public cloud, private cloud infrastructure, and hybrid cloud platforms. Private cloud implementations are commonly referred to as "managed VDI". Public cloud offerings tend to be based on desktop-as-a-service technology.

Local desktop virtualization
Local desktop virtualization implementations run the desktop environment on the client device using hardware virtualization or emulation. For hardware virtualization, depending on the implementation both Type I and Type II hypervisors may be used.

Local desktop virtualization is well suited for environments where continuous network connectivity cannot be assumed and where application resource requirements can be better met by using local system resources. However, local desktop virtualization implementations do not always allow applications developed for one system architecture to run on another. For example, it is possible to use local desktop virtualization to run Windows 7 on top of OS X on an Intel-based Apple Mac, using a hypervisor, as both use the same x86 architecture.