You are on page 1of 12

White Paper

Citrix Application Streaming Internals
Citrix Presentation Server™ Citrix® Systems, Inc.

Notice The information in this publication is subject to change without notice. THIS PUBLICATION IS PROVIDED “AS IS” WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. CITRIX SYSTEMS, INC. (“CITRIX”) SHALL NOT BE LIABLE FOR TECHNICAL OR EDITORIAL ERRORS OR OMISSIONS CONTAINED HEREIN, NOR FOR DIRECT, INCIDENTAL, CONSEQUENTIAL, OR ANY OTHER DAMAGES RESULTING FROM THE FURNISHING, PERFORMANCE, OR USE OF THIS PUBLICATION, EVEN IF CITRIX HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES IN ADVANCE. This publication contains information protected by copyright. Except for internal distribution, no part of this publication may be photocopied or reproduced in any form without prior written consent from Citrix. The exclusive warranty for Citrix products, if any, is stated in the product documentation accompanying such products. Citrix does not warrant products other than its own. Product names mentioned herein may be trademarks and/or registered trademarks of their respective companies. Copyright © 2007 Citrix Systems, Inc., 851 W Cypress Creek Rd, Ft. Lauderdale, Florida 33309 U.S.A. All rights reserved.

Version History 1.0 Citrix Technical Publications CTX 110303 February 27, 2007

Citrix Application Streaming Internals ii

Table of Contents
INTRODUCTION........................................................................................................................................................................ 5 GETTING STARTED: BASIC STEPS...................................................................................................................................... 5 INSTALLING THE PROFILER ......................................................................................................................................................... 5 PROFILING AN APPLICATION ....................................................................................................................................................... 6 LIMITATIONS............................................................................................................................................................................... 8 PROFILER INTERNALS........................................................................................................................................................... 8 CREATING A PROFILE .................................................................................................................................................................. 8 CREATING TARGETS ................................................................................................................................................................... 9 TARGET COMPONENTS .............................................................................................................................................................. 10 CREATING THE .CAB FILE ......................................................................................................................................................... 10 CONFIGURATION OPTIONS ........................................................................................................................................................ 10 OTHER CONFIGURATION OPTIONS ............................................................................................................................................ 11 MANIFEST FILE ......................................................................................................................................................................... 12 SUGGESTED READING.......................................................................................................................................................... 12

Citrix Application Streaming Internals iii

Citrix Application Streaming Internals iv

Introduction
This white paper provides you with details about profiling and Citrix Streaming Profiler internals for Citrix Presentation Server 4.5. It is one of a series of white papers designed to provide you with more detailed information beyond the scope of the Citrix Application Streaming Guide included with the Presentation Server documentation.

Getting Started: Basic Steps
The profiler is an independent application that enables you to prepare commercial or custom Microsoft Windows applications, Web applications, browser plug-ins, files, folders, and registry settings streamed to your users’ workstations. Resources you prepare with the profiler are called profiles. You create a profile by installing applications or other resources on an independent computer running the profiler. The profiler bundles files and configuration settings that the client accesses to stream to end-user desktops, or laptops, or stream to end point. After you create a profile, you make it available for publishing by saving it to a network file share. This section includes the basic steps for installing the streaming profiler and profiling a simple application for streaming.

Installing the Profiler
For best results in creating streamed application profiles and avoiding issues after deployment, follow the recommendations in this section. Tips for preparing a workstation • • Start with a workstation that has only the Windows operating system and service packs of your end-users (ensure it is clean of other software applications). The operating system base should be the same as or older than your target client configurations. Client configurations older than the operating system of the profiling workstation might not successfully run profiled applications. For example: o o o • Profiles created on a Windows 2000 workstation launch best on Windows 2000, XP, and 2003 client desktops Profiles created on an XP workstation launch best on XP and Windows 2003 client desktops Profiles created on a Windows 2003 workstation launch best on Windows 2003 client desktops

Check for files left behind from uninstalled applications. If you uninstalled applications from the workstation using Windows Add or Remove Programs, manually remove any remaining files. This step is important because if an application’s files exist on the profiling workstation, the profiler detects them and skips them when installing files into an application profile. As a result, the streamed application might fail to launch.

After the profiling workstation is prepared, insert the Components CD in the CD-ROM drive. To install the Citrix Streaming Profiler 1. On the Components CD, double-click Autorun.exe to start the installation wizard. 2. Select Product installations and updates. 3. Select Install Citrix Streaming Profiler for Windows.

Citrix Application Streaming Internals

5

4. Select your preferred language (English, by default) and continue following the instructions in the wizard. The default settings are sufficient for typical installations. 5. After you click Finish, restart the computer. Similarly, to uninstall the profiler, from Windows Add or Remove Programs, select Citrix Streaming Profiler 1.0 for Windows.

Profiling an Application
You use the Citrix Streaming Profiler to profile applications that your users’ clients stream to their desktops. Using the profiler, you can create several targets within an application profile that can match a variety of your client devices. In this way, you can create a single profile that can accommodate a variety of user environments. You can also use the profiler to update applications in the profile and provide other resources that you find your users need. The profiler includes a wizard to create streaming application profiles. This section includes the basic steps in using the wizard. For more information about using the wizard and other options in the profiler, see the Administrator’s Guide. To start the profiler, from the Start menu, choose Programs > Citrix > Streaming Profiler > Streaming Profiler. To create a new profile and the initial user configuration (target) 1. The profiler opens with the Welcome page. To create a profile, click New Profile. Alternatively, when the profiler is already open, from the File menu, choose New. 2. On the Name Profile page, enter a simple name. Do not include any criteria the client uses to identify targets. For example, do not include a version number in the profile name. 3. On the Set User Profile Security page, select the level of user profile security you want for the profile. Use the option buttons to select between the following: • Enhanced security. Does not permit any executable files to run other than those included in the target. For example, if the client is running an Internet Explorer plug-in included in the target, the enhanced security setting prevents the client from running any other plug-ins that the user might download. Relaxed security. Permits executable files to run that are accessed through the profiled resource.

4. On the Set Target Operating System and Language page, select the client configurations that can access the application you are installing. You must select at least one target operating system and language. Setting the target and operating system and language criteria are the first steps in creating the initial target for a profile. The default operating system and language are those of the operating system installed on your profiling workstation. a. To support other operating systems and languages, select the check boxes associated with those you want to support. When selecting target operating systems and languages, do not select those languages for which you are going to create separate targets. b. If you want the client to consider the service pack level, click Set Service Pack. By default, a target matches all service packs of the operating systems it supports. When selecting the service pack supported by the target, use the Supported Service Pack Levels pull-down menu to choose a rule for considering the service pack level.

Citrix Application Streaming Internals

6

Type the number representing the service pack level in the applicable field for Minimum Level, Maximum Level, Exact Level; or, if for a range, Minimum Level and Maximum Level. Note: For subsequent targets, you can ensure the current target you are adding does not conflict with other targets in the profile by clicking Check for Conflicts. 5. On the Select Install Option page, choose an installation option. You choose an installation option according to the type of resource or number of resources you want to install into a target. • • Quick Install (selected by default). Use this option if the application you are installing has an installation program, such as setup.exe (recommended for normal installations). Advanced Install. Use this option if you are installing Internet Explorer plug-ins, editing registry settings, installing an application manually, or installing from multiple installers. Advanced install provides the opportunity to repeat the installation procedure as many times as you need, so you can add a variety of multiple resources to a target. For instructions about using Advanced Install, see the Administrator’s Guide.

With Quick Install selected, continue with the remaining steps. 6. On the Choose Installer page, locate the application’s installation program. Click Browse to locate the executable file or a script you run to install the application into the current target. In this step, you are only choosing the installer, not running it. If needed, enter required command-line arguments. Click Next. 7. On the Run Installer page, ensure the installation program and command-line parameters are correct, then click Launch Installer and wait for the installation program to run. You have the option of using installers (.exe or .msi), Microsoft Internet Explorer (plug-ins, Web applications, and online updates), selecting folders and files (custom applications), and editing the registry. Note: When running the installer, you can accept the default destination folder or location. The profiler automatically installs the application in an isolation environment on the profiling workstation. After you launch the installer, the Back button is disabled. Do not click Next until the installer finishes. If, after you are sure the application installer is finished, you want to force a virtual restart, before clicking Next, check Perform virtual restart. When you click Next, instead of restarting your profiling workstation, the profiler simulates a system restart. 8. On the Run Application page, launch the application and enter a license code or accept a license agreement. Select the application and click Run. Additionally, you can add files that the application needs to perform correctly. When the application is fully launched, close it and click Next. 9. On the Select Applications page, select the application to make it available for you to publish in the Access Management Console. To change the default icon or application name, such as to remove a version number, click Modify, and after making changes, click OK. Click Next to continue. 10. Use the Sign Profile page to sign the profile with a digital signature (optional). By default, the profile is not signed. Click Next. 11. On the Build Profile page, review profile details and, if necessary, click Back to edit the profile. Click Finish to build the profile with the installed application. When it completes, the new profile appears in the navigation panel in the profiler. Click the tabs to review the information. 12. Manually save the profile to a network file share. From the File menu, click Save as, and enter the UNC path to the file share. The path must already exist on the file share; the profiler cannot create new folders.

Citrix Application Streaming Internals

7

Note that the profile name and manifest name (name.profile) are automatically added to the UNC path, as noted in the Save To address. After creating the profile, publish the application in the Access Management Console so that configured users can stream the application to their local desktops and launch it locally or stream it to a server and launch it using a Presentation Server Client connection.

Limitations
Citrix recommends that you test every application before deploying it to users. As you select and test applications for profiling, keep in mind the following compatibility guidelines: • Some suites of applications, such as Microsoft Office, install Windows Services or drivers that cannot stream to clients. When you profile these suites, the applications run properly on clients, but the features that rely on Windows Services or the drivers do not work. Some applications are supported with issues.

For more information about application compatibility issues and workarounds, see the Citrix Knowledge Center at http://support.citrix.com.

Profiler Internals
This section provides in depth information about how the profiler creates a profile. The purpose is to enable administrators to identify objects of interest at the point when profile creation or modification fails. You can use the profiler to create a streaming application profile (and its initial target), add a target to a profile, delete a target from a profile, update a target, and add updates, patches, additional applications, and so on. As part of the basic functionality, the profiler can install applications, configure profiles, support Access Management Console functionality, and maintain profile security.

Creating a Profile
A streaming application profile is a collection of client configurations (called targets) and a list of applications that users can execute. In addition, profiles include scripts and other settings that are used in streaming applications to client devices.

Citrix Application Streaming Internals

8

The following diagram illustrates the flow of profiling.

The profiler wizard guides you through the process of starting the application, running the application in an isolation environment, creating and storing the files, registry changes, isolation environment rules, and manifest file.

Creating Targets
As you create a streamed application profile, you specify client configurations (targets), consisting of the operating systems, service packs, languages, and boot drive, that can access the applications in the profile. Adding individual targets can simplify application publishing as well as simplify application enumeration. You can configure the same target to run on multiple operating systems (and services packs) and languages. By default, the operating system, language, and boot drive of the profiler workstation are selected, but service packs are not specified. You need to create different targets for applications that can be used only by specific configurations of operating systems, languages, service packs, and boot drives. As a best practice, do not target applications to run on operating systems older than the current profiler operating system. To create targets for specific configurations, install the profiler on a matching configuration and create the target. Note: When profiling applications that you intend to enable for offline access, create targets for all intended client operating systems to ensure applications can be deployed beforehand correctly on all client computers. For example, if your users have a mix of 32-bit and 64-bit client platforms, create a target for 32-bit platforms and another for 64-bit platforms. The client accesses a target based on the client configuration. If the client attempts to launch an application, but cannot access an appropriate target, an error message appears. To avoid this problem, select all the client configurations (operating systems and languages) that need to access the target. If needed, create multiple targets for users of different configurations.

Citrix Application Streaming Internals

9

Target Components
A target is a client configuration specified in the profile. Each profile has one or more targets, and each target in the profile is identified by a unique .cab file name. In the profiler, when you click the target, you can see its folders with the installed files, registry data, and isolation environment rules, as noted in the following graphic.

Creating the .Cab File
When you save the profile to a network file share, the profile manifest has a .profile file extension, and each target has a unique cabinet (.cab) file. The size of the .cab file is dependent upon the files being compressed and cannot be estimated until actually creating the .cab file. For example, if the files in the profile are mostly text or other highly compressible data, the .cab will be rather small. On the other hand, if most of the files are binaries or other compressed data, the compression ratio will not be as good.

Configuration Options
After creating a profile, you can view and edit some of the properties at the profile level or target level. To view and modify settings, from the Edit menu, select Profile Properties or Target Properties, which includes the following tabbed windows: • • • General. Shows profile or target information, including the name, description, operating system configuration, boot drive, language, location on the file share, and dates of creation and last update. Application. Specifies the shortcuts and information for the application in the profile, including the details about their availability in all or selected targets. File Types (profile property only). Specifies the file type associations used in publishing to invoke the profile. This feature specifies automatic detection of file type association (FTA) information added by various application installations in a profile and makes them available for application publishing in the console. Target Operating System and Language (target property only). Specifies the operating systems, service pack levels, and languages selected for the target. User Profile Security (profile property only). Specifies the security level selected initially in the profiling wizard: o Enhanced security (default setting). Users cannot launch executing files (such as .exe, .dll, and .ocx) present in the User Profile Root. This setting can prevent malicious code from running.

• •

Citrix Application Streaming Internals

10

o •

Relaxed security. Allows users to download executable files into the user profile root and run.

Pre-launch analysis. Checks for certain applications, files, and registries on the client’s device before running the application. Use this feature to check for certain prerequisites on the client before streaming a profiled application. For example, your application might require the installation of DirectX, a specific version of JRE, or .NET 2.0 on the client. In this case, you can set pre-launch analysis to check for the prerequisite on the client, which allows the application to stream only if the prerequisite is installed.

Pre-launch and post-exit scripts. Specifies the scripts to run either before the profile runs or after the profile exits. Use this feature to: o o o o Run pre-launch scripts before the first application of a profile is run Run post-exit scripts after the last application of a profile exits Specify the order of execution Specify whether to run inside isolation environment or outside isolation environment

Rules (target property only). Governs how the isolation environment functions when running an application on the client. The default rules apply to most applications, and there is usually no need to change the configuration. However, if needed, you can add, modify, or delete the rules. Rules are based on four types: Ignore, Redirect, Isolate, and Strictly Isolate.

Other Configuration Options
The profiler includes the following additional options: • Access Management Console can publish profiled applications. Application Discovery automatically detects information in the profiles and makes it available for publishing: o Application shortcuts installed in a profile In case of Internet Explorer plug-ins and Web applications, Internet Explorer is available for publishing Manual selection of applications is also supported o • File Type Association information added by various application installations in a profile

Profile security. Digital signing of profiles is supported to guarantee the integrity and origin of the profile applications. This can be set while profiling or later in the profiler; from the Tools menu, select Sign Profile. Note: For information about securing your deployment, see the Citrix white paper CTX110304 Enhancing the Security of Application Streaming for Desktops, located in the Citrix Knowledge Center.

Profiler preferences. After starting the profiler for the first time, you can set profiler preferences that optimize how you create profiles and targets. Preferences save time and improve usability by enabling you to store relevant settings for use in future packaging tasks. To set these default preferences, from the Edit menu, choose Preferences. o On the User Profile Security tab, use the check box to select the security level for all profiles and skip the security page in profiling wizards. You can save default security settings you want for all profiles you create.

Citrix Application Streaming Internals

11

o

On the Digital Signatures tab, if you are not signing profiles, you can specify not to show the Sign Profile page in the profiling wizards.

You can change the preferences at any time, and the changes are effective immediately.

Manifest File
The manifest is an XML file containing information about the streaming application profile. The profiler creates the manifest during a new profile creation. The profiler uses the manifest to open a streaming application profile. In addition, the Access Management Console accesses the manifest for application publishing, and the Streaming Client accesses the manifest to launch a streamed application. After you complete a profile, you save the manifest file on the network file share, where it appears as shown in the following example.

List of files in profile component: • • • • • Scripts\. This subdirectory contains all the profile-level pre-launch and post-exit scripts for the profile. [ProfileName].profile. The .profile file, stored in XML format, contains details about which applications and file type associations exist, as well as which versions of the profile exist. [guid]_[version].cab. The .cab file contains all the files for the target, as well as configuration files for the isolation and streaming environment. A profile can have multiple .cab files, each representing a target. Hashes.txt. The hashes file contains all the file hashes for the profile, excluding the file contained in the .cab, but including the .cab file. This allows digital signing (verification). Icons.bin. Icons are stored in this file for the Access Management Console to display and distribute to the clients.

Suggested Reading
For more information about profiling and streaming published applications, refer to the Citrix Application Streaming Guide, included with the product documentation. To locate this and other documents and white papers about Presentation Server and other Citrix products, refer to the Citrix Product Documentation Web site located at http://support.citrix.com/docs.

Citrix Application Streaming Internals

12