Microsoft App-V
Microsoft Application Virtualization (also known as App-V; formerly Softricity SoftGrid) is an application virtualization and application streaming solution from Microsoft. It was originally developed by Softricity, a company based in Boston, Massachusetts, acquired by Microsoft on July 17, 2006. App-V represents Microsoft's entry to the application virtualization market, alongside their other virtualization technologies such as Hyper-V, Microsoft User Environment Virtualization (UE-V), Remote Desktop Services, and System Center Virtual Machine Manager. Overview. App-V allows applications to be deployed ("streamed") in real-time to any client from a virtual application server. It removes  the need for traditional local installation of the applications, although a standalone deployment method is also supported. With a streaming-based implementation, the App-V client needs to be installed on the client machines and application data that is stored on the virtual application server is installed (streamed) to the client cache on demand when it is first used, or pre-installed in a local cache. The App-V stack sandboxes the execution environment so that an application does not make changes directly to the underlying operating system's file system and/or Windows Registry, but rather is contained in an  application-specific "bubble". App-V applications are also sandboxed from each other, so that different versions of the same application can be run under App-V concurrently and so that mutually exclusive applications can co-exist on the same system. Nevertheless the separation is not a security boundary. App-V thus allows centralized installation and management of deployed applications. It supports policy based access control; administrators can define and restrict access to the applications by certain users, or on certain computers, by defining policies governing the usage. App-V also features a tracking interface to track the usage of the  virtualized application. Servers may be implemented in highly available configurations when desired. The App-V client presents the user with a neat, locally installed application experience for virtualized applications. Access to start the virtualized application appears to be identical to the locally install application, as extensions for the application are integrated into the user's desktop shell by the App-V client. When two or more virtual applications have a dependency on each other, the individual virtualized applications may also be configured to run together in a single isolated bubble. Microsoft App-V is an additional component requiring licensing for  use. Licensing is user-based and is either acquired by licensing Microsoft Desktop Optimization Pack (MDOP) for use on client operating systems, or as part of the Microsoft Remote Desktop Server Client Access License for use on Remote Desktop Servers. MDOP is a suite of technologies available as a subscription for Software Assurance customers. There also exists a licensing model that exists for hosting (cloud services) providers. Major versions and variants. Microsoft released Version 5 of App-V in late November 2012, which is a third generation major redesign of the entire platform. Version 5 modernized the product, replacing components  designed for use originally against Windows NT and Windows 2000 some 11 years earlier. The redesign also allowed for support of newer operating system features and improvements to virtualization support. Version 4.x of the product is still in widespread use and is currently in active support. Microsoft extended the version 4 based support for up to Windows 8.1 and Server 2012 R2 client operating systems; however, some of the newer operating system features are not available for virtualized applications using App-V 4.x. The Microsoft standard end of support date for App-V 4.x was July 2015. Versions 3.x and  2.x are not known to be in production use any more; support for these versions ended with the acquisition of Softricity by Microsoft. Versions 2.x through 4.x represent the second generation application virtualization product. There was no 1.x version of the product. Prior to the release of SoftGrid 2.0, Softricity was known as "SoftwareWow!". "SoftwareWow!" was an early cloud based service provider with an application store that streamed applications (primarily games) to consumers. The service used an in-house first generation product to provide Software As A Service (SaaS). Although little online information exists about the company today, this product  provided streaming services with very limited virtualization support. An offshoot of App-V was released by Microsoft under the name Microsoft Server Application Virtualization (“App-V for Servers”). This platform, which supports virtualization redirection but without isolation, is aimed at delivering virtualized server loads that would not have intra-application conflicts. The product is available as part of System Center Virtual Machine Manager, and is typically used to spin up new instances of servers on a demand-driven basis. Architecture. Microsoft offers three options for the deployment of virtual applications, which affects the architectural components used: The implementation of these  three deployment options are different when version 5.x or 4.x of App-V is used. Each are described separately. Architecture in versions 5.x. The 5.x based architecture has three major options that may be used. All three of these options use a few common components: The remainder of the 5.x architecture is dependent on the deployment option used. Full App-V 5.x Server option. The Full App-V 5.x Server composed of the following additional components: Configuration Manager integration option. The Configuration Manager composed of the following components: App-V 5 requires the use of System Center Configuration Manager 2012 , and above, for full support of App-V features. Deployment by older versions, or other electronic delivery systems, are also possible by using the virtual msi method of deployment. Standalone mode. The App-V 5.x clients contains a PowerShell API that is ultimately used by both of the server modes above. It is sometimes desirable to use this API directly at the client, either manually or using additional tooling developed by third parties. Architecture in versions 2.x through 4.x. The 4.x based architecture has three major options that may be used as well. All three of these options use a  couple of common components: Dedicated App-V management server. The App-V 4.x system architecture is composed of the following components: Shared System Center Configuration Manager. In 2009 Microsoft offered a new way to implement App-V with enhancements to System Center Configuration Manager. System Center Configuration Manager Architecture consists of the following components: App-V 4.x has direct integrations with Configuration Manager 2007 SP1 through 2012 R2. Section::::"Stand-alone" mode. The App-V clients may also be used in a "stand-alone mode" without either of the server infrastructures previously described. In this case, the sequenced packages are delivered  using an external technique, such as an Electronic Software Delivery system or manual deployment. Operation. Aside from the operations associated with the deployment operations, App-V Application Virtualization mainly comprises two componentsthe "App-V Sequencer" and the "App-V Client". The App-V sequencer is the component which re-packages an application for virtualization and streaming. It analyzes the application for the resources that it requires, supports customization of the applications, and from this creates a package containing the executable components, data files, and registry settings required by the application. The package format for the 4.x and 5.x versions are  quite different: The sequencer monitors the application installation, configuration, and runtime use of file and registry resources to determine package contents and configuration. It abstracts machine and user specific information to improve portability of the application components, allowing most applications to be run by different users, on different hardware, and even on different operating systems in some cases. The package is also configured for streaming operations, where portions of files may be delivered on an as-needed basis to clients. Guidelines for sequencing applications are different for the 4.x and 5.x versions. The App-V client receives virtual application package  definitions in several ways. When configured to receive from a Full App-V Infrastructure Server, this occurs automatically on logon, or a timer, and is initiated by the App-V Client. It also may be sent instructions via a client API, which is used by System Center deployments, the virtual msi, and stand-alone methods. The App-V 5.x client API is PowerShell based, while the 4.x client uses a proprietary sftmime interface. Upon receiving the package, the client will download appropriate metadata, and possibly (dependent on both package and client configurations) some or all of the package components. The  client is designed to utilize a streaming file system that operates much like local file paging activity. This allows for starting the application without all of the file(s) present in the cache locally. When the application requires a file portion not present, an operation called a stream-fault is performed that retrieves the needed file portion. The streamed package contents are cached by the client in memory for the duration of the application session, and may be retained in a local disk cache for future use. User settings are stored in the local system itself using redirection to ensure that  the cached copy of the application is not changed. In some cases, this allows for the deployment of applications that are not multi-user aware to be used on Remote Desktop Shared Host systems. Capabilities Specific to Version 5.x. Version 5.x, in addition to being a redesign, added a number capabilities not previously available in the 4.x version. 5.0 Service Pack 2 added to these. They include: