App virtualization (application virtualization) is the separation of an installation of an application from the client computer that is accessing it. There are two types of application virtualization: remote and streaming.
Remote applications run on a server. End users view and interact with their applications over a network via a remote display protocol. The remote applications can be completely integrated with the user’s desktop so that they appear and behave the same as local applications, through technology known as seamless windows. The server-based operating system instances that run remote applications can be shared with other users (a terminal services desktop), or the application can be running on its own OS instance on the server (a VDI desktop). A constant network connection must be maintained in order for a remote application to function.
With streaming applications, the virtualized application is executed on the end user’s local computer. When an application is requested, components are downloaded to the local computer on demand. Only certain parts of an application are required in order to launch; the remainder can be downloaded in the background as needed. Once completely downloaded, a streamed application can function without a network connection. Various models and degrees of isolation ensure that streaming applications will not interfere with other applications, and that they can be cleanly removed when closed.
Both forms of application virtualization have benefits from centralized management. Applications can be installed, patched, and upgraded once for an entire environment, instead of for each individual computer. Licensing can also be easier to handle when IT is provisioning the applications instead allowing users to install them on their own.