Sequencing Applications for Deployment at Microsoft
Technical Case Study
Published: May 2009
A successful strategy for application virtualization relies on selecting the appropriate applications for packaging, and following an effective sequencing process to perform the packaging tasks that help ensure a positive user experience.
|
Download |
|---|
|
|
|
Situation |
Solution |
Benefits |
Products & Technology |
|---|---|---|---|
|
Microsoft needs to package applications for deployment in a virtual application environment. |
Microsoft Application Virtualization 4.5 provides the Application Virtualization Sequencer, which is used to package applications that can be deployed via several Application Virtualization deployment options. |
|
|
The Microsoft® Application Virtualization (App-V) Sequencer is a component of Microsoft Application Virtualization version 4.5 and is used to package or "sequence" Windows®-based applications. Sequencing is the foundation for all other virtual application processes. It provides the virtual applications that are deployed through any one of the App-V deployment scenarios, including the App-V Full Infrastructure model, the App-V Stand-alone model, or the Microsoft System Center Configuration Manager 2007 R2 integrated model.
This case study gives IT professionals and technical decision makers information about the processes and best practices that Microsoft follows when sequencing virtual applications for deployment at Microsoft. The case study begins with an overview of Application Virtualization and how sequencing affects the tasks that occur in the application management life cycle. Next, the case study describes the common challenges that Microsoft has faced during the sequencing process, and it describes the solution strategy on how Microsoft has addressed these challenges.
Note: This case study assumes that readers have a general understanding of the components that make up App-V 4.5. Readers who do not have this prerequisite knowledge should refer to the Microsoft Application Virtualization 4.5 Web site, located at http://www.microsoft.com/systemcenter/appv/default.mspx.
Application Virtualization Overview
App-V 4.5 is part of the Microsoft Desktop Optimization Pack (MDOP) and is used to deploy and manage virtual applications on desktop clients. Virtual applications run in an isolated environment that minimizes conflicts with other applications on the host computer. App-V centralizes application management processes, including provisioning, deploying, upgrading, updating, and removing software applications on client computers. App-V provides significant benefits in simplifying and reducing costs associated with tasks throughout the application management life cycle.
The sequencing process is the first of many steps for deploying a virtual application to clients, and it affects each phase of the application management life cycle, as discussed in the following sections.
Application Provisioning
During the application provisioning phase, a client workstation is installed and configured as an App-V Sequencer. The App-V Sequencer monitors a traditional application installation process, and it generates a virtual run-time environment that is packaged into several files and provided to the virtual application deployment team. Table 1 describes the files that are generated.
Table 1. Sequenced Package Files
|
File type |
Description |
|
.sft file |
This file contains all of the application files, dependencies, and configuration information, and may contain more than one application (such as in application suites). This file can be quite large but is typically divided into two distinct "feature blocks" that are efficiently streamed to App-V clients. |
|
.ico file |
This file provides the App-V client shortcuts that are used to launch a corresponding .osd file and to begin the data streaming process from the application source location. |
|
.osd file |
This file configures and controls how a virtual application starts and runs. The .osd file contains information such as application name, host name, data source location path, protocol and port to use, supported operating systems, and general comments. |
|
.sprj file |
This project file describes the applications contained in the sequenced package. This file includes a list of files, directories, and registry entries that are to be added, changed, deleted, or upgraded in a typical sequenced application. The .sprj file is often used when upgrades or service packs are added to an application. |
|
Manifest file |
This XML file contains package information that enterprise software-deployment solutions use to deploy a virtual application. |
|
.msi file |
This Microsoft Installer file is used to publish and install a virtual application package on an App-V client that is configured in Stand-alone mode. If selected during the sequencing process, the .msi file is created and incorporates all package components in a single installable file, except the .sft file. |
Application Deployment
After the sequencing process is complete, the administrator imports the sequenced application package files onto an App-V management server or an App-V streaming server, or configures the package to be distributed via System Center Configuration Manager 2007 R2. The App-V clients reference the .osd file—which is generated during the sequencing process—to determine the application's .sft file location, and the protocol and port used to stream the application.
The benefits of deploying a sequenced virtual application to clients include the following:
- A virtual application package is isolated from other applications that are installed on the client computer. This allows for multiple application versions to run on a client, and it simplifies the ability to test application updates and service pack integrations without interfering with standard production application releases.
- A virtual application package delivers a pre-configured application that is centrally managed and deployed via the App-V management server or Configuration Manager 2007.
Application Servicing
Throughout the application management life cycle, most applications require updates to fix security issues and application bugs, or to provide updated functionality. When a virtual application requires an update, the package is re-sequenced to include the updated components. The primary benefit of deploying an updated virtual application is that it can seamlessly replace the older version without requiring the App-V client to restart.
Application Removal
A sequenced virtual application is never installed on a client computer in the same way as a traditional application. Virtual applications do not place entries into the client computer's registry, and they do not place files within the standard file structure. A virtual application leaves no footprint on the client workstation, which provides many benefits related to managing a clean workstation environment. These benefits include:
- No need for running complex clean-up scripts to remove registry and files left behind after an application is uninstalled.
- No need to periodically rebuild workstations in order to revert to a clean operating system state.
- Minimizes complexities with applying operating system updates or upgrades.
Situation
Even though sequencing provides many benefits for deploying and managing virtual applications, there are a number of considerations that, if not planned for, can affect the time and costs associated with the packaging and deployment process, or result in negative user experience. These considerations include the following:
- Understanding application usage scenarios. A lack of application knowledge causes a higher failure and re-sequencing rate, and it increases interaction with the application owner.
- Determining appropriate applications to sequence. Some applications may not be able to function in a virtual environment, or may be more costly to sequence as a virtual application than to deploy through traditional installation methods.
- Determining application dependencies. Many applications depend on functionality
from other operating system components or other installed applications. Virtual
applications are typically deployed within their own isolated run-time environment,
which does not allow for interaction between other external components. This results
in application failures or loss of feature parity with the locally installed application
equivalent.
Note: During the Microsoft App-V pilot project at Microsoft, out of approximately 40–60 applications, 57 percent of the applications tested in the pilot project had a dependency on locally installed applications that were considered part of the base operating system. Thirty percent had dependencies on other applications. Thirteen percent of applications ran without any dependency considerations. Dependency management is a critical factor in sequencing a virtual application.
- Creating operating system–specific sequences. The Windows XP and Windows
Vista® operating systems provide distinctly different user dependencies for
both security and functionality. Applications that were sequenced by using Windows XP
as the host operating system may have to be re-sequenced in order to function effectively
in Windows Vista. It is important to note that App-V is not intended to be an application-compatibility
solution for operating system deployments. If the application does not natively
run on a specific version of an operating system, App-V will not solve this issue.
Other solutions, such as Microsoft Enterprise Desktop Virtualization (MED-V), can
be used to address this problem.
Note: At Microsoft, 51 percent of the applications sampled during the App-V pilot project successfully ported from Windows XP with Service Pack 2 (SP2) to Windows Vista without any modifications to the sequence. Administrators fixed the majority of application failures by enabling Local Interaction to allow the sequenced application to interact with local client processes. Only 25 percent of the sample applications did not successfully port from Windows XP to Windows Vista and required an operating system–specific sequence due to intelligent installers that detected the underlying operating system.
- Setting user expectations. Some applications may require workarounds or require
the user to perform application tasks in different ways, when compared to the traditionally
installed application. Users need to be educated on any changes to functionality
or processes when using a virtual application. For example, an organization might
sequence an application such as WinZip to provide the standard functionality of
the tool; however, specific features such as right-click capabilities may not be
available. Users who are accustomed to using the right-click capabilities need to
perform tasks differently when using the virtualized version of the application.
Note: Microsoft deployed approximately 40 applications by using App-V. Of the 40 applications, only five required specific user education because of changes in the way the virtual application ran in the virtual environment. These changes were mainly related to graphical user interface (GUI) integration in the operating system, such as right-click commands.
Solution
To address the previously described challenges, it is important to understand the overall process and concepts related to sequencing an application.
Overview of the App-V Sequencing Process
The App-V sequencing process consists of a number of steps, as outlined in Figure 1.

Figure 1: App-V sequencing process
Managing Application Dependencies and Interactions
Many applications contain dependencies on other applications or on local components installed with the operating system. For a virtual environment, this is challenging because it is assumed that an application is a self-contained "bubble" that will not interact with other components. Applications that require interaction with other components can be configured through several methods, including:
- Application bundling. Previous to App-V 4.5, a common solution was bundling application dependencies with the primary application. This can still be performed when all other options do not work; however, this option results in large packages that are difficult and inefficient to update. Features such as Dynamic Suite Composition provide more-efficient alternatives.
- Dynamic Suite Composition. Provides the ability to sequence a primary application independently from secondary or dependent applications. It can then be linked to the primary and secondary applications by inserting a <DEPENDENCIES> tag within the primary application's .osd file and referencing the dependent application. The main advantage of Dynamic Suite Composition is that a single secondary application can be used as a plug-in for multiple primary applications.
- Local Interaction. Local Interaction enables virtual applications to interact with the local system to resolve feature issues that require access to external components of the operating system. For example, an application may need to integrate with search capabilities of the operating system, or obtain access to send-mail features. Local Interaction is disabled by default, but an administrator can enable it by configuring the LOCAL_INTERACTION_ALLOWED policy to TRUE in the .osd file.
Integrating a Sequenced Application with Configuration Manager 2007 R2
Configuration Manager 2007 R2 provides numerous benefits to a virtual application solution, including enhanced scalability and availability using Configuration Manager distribution points, data-throttling using Background Intelligent Transfer Service (BITS), and support for branch-cache scenarios. An application sequenced for deployment via the App-V Full Infrastructure model can be used seamlessly with an integrated Configuration Manager infrastructure for both of the following delivery methods:
- Streaming delivery. When a user clicks an advertised program shortcut or a registered file-type association, the Configuration Manager client polls the management point to determine what distribution point should be used to stream the virtual application. The Configuration Manager client then applies an OverrideURL registry value that points to the .sft file location on a distribution point. This override value replaces the setting that was specified in the original .osd file configured during the sequencing process. The App-V client then uses the value to stream the application from the appropriate distribution point.
- Local download and execute delivery. When a virtual application is advertised via the local download and execute delivery option, the Configuration Manager client downloads the virtual application to the local Configuration Manager Client cache, and it registers the program shortcuts and file type associations. When a user starts the virtual application, the App-V client streams the .sft file from the Configuration Manager cache to the local App-V Client cache, and then starts the application. This method enables offline capabilities because starting a virtual application does not require direct access to a distribution point.
Although a sequenced application can be used for both the App-V Full Infrastructure model and the Configuration Manager integration model, an organization must consider the following points:
- Determine whether the intended deployment method will use the streaming delivery method or the local download and execute delivery method. An application that will be streamed from a distribution point should be sequenced to include only critical components in Feature Block 1; all noncritical components can be sequenced in Feature Block 2. An application that will be deployed via download and execute methods does not have to be sequenced into multiple Feature Blocks because the entire package will be downloaded via the Configuration Manager client and streamed locally.
- Be aware of disk space requirements for both distribution point servers and clients. The download and execute model will require three times the size of the .sft file on the client computer. Streaming delivery might potentially require 1 to 10 times the size of the .sft file on the distribution point. It is important to try to keep the sequenced package as small as possible, and to enable package compression to help minimize the disk space used on the server and client computers.
- Dynamic Suite Composition is fully supported in Configuration Manager 2007. However, it is important that both applications are advertised and registered with the client.
- Local Interaction is fully supported on a Configuration Manager client and is enabled within the sequenced application during the sequencing process.
Sequencing Strategy
To help minimize the costs associated with application management, an organization should follow a specific sequencing process to help reduce the costs of packaging applications.
The process can be categorized into several distinct phases that begin with evaluating the current software catalog, continue with building the sequencing workstation, and then finish with performing the sequencing tasks. The following sections discuss considerations for each phase.
Phase 1: Evaluate the Current Software Catalog
When determining which applications are suitable virtualization candidates, Microsoft evaluates the potential candidate and places the application into one of three categories:
- Ideal Candidate. Applications meet all of the possible candidate criteria and have no identifiable roadblocks to success.
- Possible Candidate. Applications do not meet disqualifying criteria but may require additional research or validation.
- Not a Candidate. Applications are more expensive to virtualize than the benefits achieved from virtualization. This category also includes applications that technically cannot be virtualized because of current limitations.
To assist with identifying applications that are not a suitable candidate for virtualization, Table 2 provides information to consider.
Table 2. Application Considerations
|
Application type |
Definition |
Examples |
|
Applications with drivers |
Applications that install and rely on a system-level driver, such as an application that installs a print driver or a universal serial bus (USB) device driver. Some applications may allow for the drivers to be installed independent of the other components of the application. As a workaround for this scenario, the driver portion of this application can be installed locally on the client system, allowing the other components of the application to be virtualized. |
OEM hardware utilities |
|
Applications that integrate closely with the operating system |
Some applications, such as the Windows Internet Explorer® browser, are closely tied to the operating system. As such, these applications cannot be sequenced. These applications can be started from within a virtual environment, thus having access to all of the components and configuration settings related to that virtual environment. This is a common technique used for Web-based applications that may require specific ActiveX® controls or need extended security settings. |
Windows Media® Player Internet Explorer |
|
Applications with shell extensions |
Microsoft Application Virtualization does not support shell extensions that contain a custom dynamic-link library (DLL). This would require providing access to the virtual environment to Windows Explorer. Shell extensions are in-process Component Object Model (COM) objects that extend the abilities of the Windows operating system. |
WinZip |
|
COM+ applications |
COM+ is dynamic; it happens at run time. Hence, there is no way (currently) for the Sequencer to capture this information in a "static" form within a sequence. COM and DCOM, by contrast, are recorded in component services and are static. |
BizTalk® |
|
Applications with background or headless service "boot-time" |
App-V 4.5 supports the virtualization of services; however, they must be started from within the virtual environment. An example of this would be virtualizing PCAnywhere, which installs a service in the background to provide the PCAnywhere server functionality. |
PCAnywhere Firewall Client for Microsoft Internet Security and Acceleration (ISA) Server eTrust AntiVirus |
|
Applications that integrate with many other applications |
Applications with complex or unknown integration with other applications or operating system components need to be fully evaluated to identify and define interaction requirements. After the issues are defined, an organization can determine whether application isolation will provide a benefit over locally installing the application. A workaround for this may be to sequence multiple applications into one "suite" that would allow them to communicate within the isolated virtual environment. |
Microsoft Office 2007 suites Microsoft Office Live Meeting 2007 Microsoft Office Communicator 2007 |
|
Applications with licensing enforcement tied to a computer |
Applications where the license is tied to system hardware or to the system's media access control (MAC) address. |
Computer-aided design (CAD) software |
|
Applications or suites of applications that, when sequenced, will result in an .sft file greater than 4 gigabytes (GB) |
App-V 4.5 does not support sequences larger than 4 GB. |
Microsoft Flight Simulator X |
Evaluating and developing a software catalog before undertaking application sequencing tasks helps to determine where Dynamic Suite Composition or Local Interaction may be beneficial to help ensure application functionality and efficiency.
Phase 2: Build the Sequencing Workstation
The App-V Sequencer computer must be appropriately configured to support an effective sequencing process. Configuration considerations include the following:
- Partitioning. The App-V Sequencer should be configured with at least two primary partitions: The first partition, which is typically drive C, contains the operating system files and should be formatted as an NTFS file system; the second partition is used as the destination path for application installation when performing a sequencing procedure. The second partition should also be formatted as NTFS.
- App-V virtual drive. The App-V client captures and utilizes a drive letter that is used to execute virtual applications. An organization should standardize on a common drive letter for execution across the entire Windows desktop environment. By default, drive Q is be designated as the App-V virtual drive. The sequencer should also use the same drive letter when sequencing an application for the virtual environment.
- Clean sequencing workstation. It is important to sequence an application on a computer that has a clean operating system, with no extraneous applications installed. The sequencer should contain the same operating system environment as the client base in the organization. The sequencer should be imaged and reverted back to a clean state after every sequencing task.
Note: There may be times that a pre-existing application is required on the sequencer. For example, if a secondary application is being packaged for use with Dynamic Suite Composition, the primary application is usually installed on the sequencer to capture the interaction between the applications.
Phase 3: Perform Sequencing Tasks
Specific sequencing tasks depend on the application that is being packaged and its potential dependencies. A primary application follows the standard sequencing process of installing, starting, customizing, and then saving the package on the App-V Sequencer.
A secondary application that will be used as a plug-in requires the primary application to be already installed on the computer. After the primary application is installed and configured, the sequencing process begins and the secondary application is monitored and installed via the App-V Sequencer.
A secondary application that will be used as middleware does not require the primary application to be installed initially. Middleware applications are typically required to run with any application, and as such are not directly dependent on the primary application.
Note: To simplify secondary package management, follow an appropriate naming convention for secondary packages. For example, if Silverlight 1.0 is sequenced as a supporting plug-in, the naming convention may be Silverlight Plug-in Dependent Package.
Best Practices
Through experience, Microsoft has developed a number of best practices for sequencing applications. Best practices include:
- Thoroughly understand how an application is installed and what components will be needed prior to sequencing. It is also important to gain an understanding of how users commonly use the application immediately after they start it.
- Always document the sequencing process in a step-by-step fashion to create a template for future sequencing tasks.
- The App-V Sequencer and the client computers must have the same Microsoft Installer version. If they do not have the same version, users may see an Installer dialog box or have issues running the virtual application.
- If the application stops responding during sequencing, re-sequence it even if it appears to function correctly afterward.
- Use the Application Virtualization Dynamic Suite Composition Tool to edit and associate virtual application package dependencies. This tool is part of the Microsoft Application Virtualization 4.5 Resource Kit Tools found at http://technet.microsoft.com/en-us/appvirtualization/dd277292.aspx.
- Disable "install on first use" and "Auto Update" features when sequencing an application.
Note: For additional best practices and detailed steps for performing sequencing tasks, download the Microsoft Application Virtualization 4.5 Sequencing Guide from http://download.microsoft.com/download/f/7/8/f784a197-73be-48ff-83da-4102c05a6d44/App-45_Sequencing_Guide_Final.docx.
Conclusion
Sequencing an application for deployment in a virtual environment relies on a consistent and structured process. It is important to understand which applications can be sequenced, and to have a thorough understanding of the installation process for each application and dependent component. Awareness of how the application will be deployed will also help ensure that the sequenced application is packaged as efficiently as needed.
For More Information
For more information about Microsoft products or services, call the Microsoft Sales Information Center at (800) 426-9400. In Canada, call the Microsoft Canada information Centre at (800) 563-9048. Outside the 50 United States and Canada, please contact your local Microsoft subsidiary. To access information via the World Wide Web, go to:
http://www.microsoft.com/systemcenter/configurationmanager/en/us/default.aspx
http://technet.microsoft.com/en-us/windows/bb899442.aspx
http://www.microsoft.com/technet/itshowcase
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. Microsoft, Windows, and Windows Server are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

