Creating best-of-breed architecture
AppSense Management Suite
Windows 7 made improvements in its roaming profile technology to allow background synchronization. However, we still need different profiles for XP clients (version 1) and Windows 7 (version 2) and Vista clients, in addition to different profiles for terminal servers, and so on. Also, problems can occur if users log on concurrently to multiple machines with the same profile—in which case the last writer wins.
Citrix includes some basic functionality to improve handling of the user profile; however, the best solution comes from AppSense. The company’s AppSense Management Suite virtualizes and streams the user profile as needed and isolates distinct parts of the profile, including individual application portions, to let users have multiple concurrent sessions using the same profile across different platforms. Without users even logging off, user profiles are kept synchronized in real time.
Typically, customizations made to an application that’s natively installed and one that’s executed using application virtualization aren’t shared, so you must customize the applications multiple times. With AppSense your customizations are persisted if the application is installed locally, is running remotely, or is virtualized. These customizations aren’t limited to cosmetic changes. Applications with user-defined dictionaries, for example, are maintained not only by profile syncing but also by capturing file system content that contains application data (e.g., custom dictionaries).
The following is a great example of AppSense in action. Suppose you have one user who is logged on to a Windows 7 machine and an XP machine, using the same username and therefore the same user profile. On the XP machine, the user launches Microsoft Word, changes the layout of Word, adds some words to the custom dictionary, saves a new document, and closes Word without logging off. The user then switches to the Windows 7 machine (which is already logged on) and starts Word. The document the user saved under XP is listed under recently used documents; when the user opens the document, the words the user added to the custom dictionary are available, and the look and feel of Word match what the user configured in the XP session.
This flexibility and granularity is achieved because AppSense doesn’t treat the profile as a single blob but instead breaks the profile down into individual elements that can then be synchronized and streamed to the client as needed by the environment and applications. This treatment of the profile and supporting file system structures is achieved in a similar fashion to how application virtualization works for applications. When the user launches an application, AppSense injects a DLL (appinit.dll) to intercept file system and registry calls by the application. This interception sits above the App-V engine interception, which means customization and configuration of applications are kept and synchronized between different sessions regardless of whether one app instance is local and another is virtualized, as Figure 1 shows. (Note that App-V is supported but not required.) As you can see, three layers exist in an environment: the OS virtualization layer, the application virtualization layer, and the full user virtualization layer. This structure allows full flexibility and portability across platforms and delivery mechanisms.
Figure 1: Fully automated DRS migration threshold
AppSense clients communicate over HTTP or HTTPS to the AppSense Personalization Server role, which uses SQL Server to store the profile elements. This communication occurs each time a user opens or closes an application. AppSense checks whether anything has changed, and if so, synchronizes the delta, thus minimizing network usage and making the synchronization process very fast.
Using SQL Server to store each profile element enables other powerful capabilities. On the AppSense Personalization Server role, administrators can launch an AppSense Personalization Analysis of all users or selected users, then drill down to look at each user’s personalization, including the personalization of each application a user has used. You can open each element to see the virtual registry and file system associated with each application’s part of the profile, which can be modified (e.g., deleting settings from the registry or files from the virtual file system to then be used the next time the application launches).
Sometimes users encounter problems, and you might need to roll back to a previous profile version. AppSense lets you roll back a profile to a previous point in time—but even better, you can also roll back an application element to a previous point in time without affecting the rest of the profile, as Figure 2 shows. This capability would be useful, for example, if a user called the Help desk to report a broken application; the administrator could simply roll back the application’s configuration to a previous point in time.
Figure 2: Rolling back a specific portion of a user profile
In addition to being a great VDI solution, AppSense is also a useful technology throughout the entire enterprise. For example, migrating from XP to Windows 7 with AppSense is a snap because there’s essentially no work related to the user profile (which is typically a large part of the migration process). Even if you aren’t currently using AppSense, when you deploy the program, the agent will automatically migrate XP profiles into AppSense. As soon as you test those pesky applications for Windows 7, you’ll be good to go.