Product Documentation

about_Broker_Concepts

Nov 11, 2015

TOPIC

Citrix Broker - Concepts

SHORT DESCRIPTION

Overview of the Citrix Broker.

LONG DESCRIPTION

The Citrix Broker is a Microsoft Windows service running on a delivery controller that responds to desktop/application launch requests from users through StoreFront by selecting a suitable machine, powering it up if necessary, and then returning the address of the selected machine to the user's endpoint system so that a session connection can be made. If required for resilience or scale, additional instances of the Broker may be installed to run on additional delivery controllers in the same delivery site.

In addition to handling launch requests, the Broker also has background responsibilities in the delivery site; these include: maintaining appropriate numbers of unused, powered-up machines to avoid unnecessary delays to users launching desktops/applications; maintaining periodic contact with powered-up machines; and monitoring the state of machines and user sessions.

The Citrix.Broker.Admin PowerShell snap-in provides the cmdlets needed to administer and monitor the behaviour of the Broker service, either on the local system (by default) or on another system (by use of the -AdminAddress command-line parameter).

The cmdlets in the broker SDK manage objects in the following broad functional areas:

PROVISIONING CONFIGURATION

The Broker must be informed of the machines which are at its disposal. In order to do this, machines are organized in catalogs, created with the New-BrokerCatalog cmdlet; machines are introduced into the system through the use of the New-BrokerMachine cmdlet.

Catalogs define the nature of the machines contained within them, such as the allocation type (that is, static or random), how the machines are actually provisioned (that is, by MCS, PVS or manually), whether they are physical or virtual machines, whether they are single-session or multi-session, etc.

Typically, machines configured from a provisioning standpoint are not associated with specific users (though they may need to be, for example if the machine's disk image was captured from a specific user's physical desktop using a P2V tool); this is normally done when configuring how resources are brokered to users, below.

It is also possible for a catalog to be configured to be populated automatically with end users� existing physical machines using the RemotePC feature. The about_Broker_RemotePC topic gives more detail.

Provisioning configuration involves the following SDK objects:

 
        BrokerHypervisorConnection 
        BrokerCatalog 
        BrokerMachine 
        BrokerRemotePCAccount 
        BrokerUser 
 
     

For more information, see:

 
        Get-Help about_Broker_Machines 
        Get-Help about_Broker_RemotePC 
        Get-Help Get-BrokerHypervisorConnection 
        Get-Help Get-BrokerCatalog 
        Get-Help Get-BrokerMachine 
        Get-Help Get-BrokerUser 
 
   

BROKERING CONFIGURATION

In order that resources (that is, desktops and applications) can be used in user sessions, the Broker must be configured to connect incoming user launch requests through StoreFront with the correct machine. This is achieved by adding machines to desktop groups. The grouping of machines in desktop groups need not necessarily match the grouping of the machines within the catalogs that were used for the configuration of provisioning. It is through the desktop group that the configuration of which users can use which machine resources is achieved.

Configuration of the mapping between resources and end users is achieved through a combination of machine assignment and entitlement rules. In addition, access to those resources must also be configured (for example, some resources could be configured only to be accessible to users when they are not connecting remotely through Access Gateway.) The about_Broker_Policies topic gives more detail of the rich configuration options available.

It is also possible for a desktop group to be configured to be populated automatically with end users� existing physical machines using the RemotePC feature. The about_Broker_RemotePC topic gives more detail.

When machines are virtual, the broker can be configured to minimize power usage by switching them off when they are not expected to be in use while still maintaining good response times for end-user launch requests. This is achieved through power policy for desktop groups. This allows separate configuration for peak compared to off-peak times of the week of the number of machines nominally to be powered up, the number of machines to be powered up and idling, in addition to those in use to be used as a "buffer" to ensure prompt servicing of user launch requests, and the behavior required for virtual machines when users disconnect from their sessions for extended periods of time.

It is also possible to issue explicit power commands to machines. The about_Broker_PowerManagement topic gives more detail.

Configuration of Brokering involves the following SDK objects:

 
        BrokerDesktopGroup 
        BrokerPrivateDesktop 
        BrokerSharedDesktop 
        BrokerRemotePCAccount 
        BrokerPowerTimeScheme 
        BrokerUser 
        BrokerTag 
        BrokerAccessPolicyRule 
        BrokerAssignmentPolicyRule 
        BrokerEntitlementPolicyRule 
        BrokerApplication 
        BrokerApplicationInstance 
        BrokerAppAssignmentPolicyRule 
        BrokerAppEntitlementPolicyRule 
        BrokerConfiguredFTA 
        BrokerImportedFTA 
 
     

For more information, see:

 
        Get-Help about_Broker_Desktops 
        Get-Help about_Broker_Policies 
        Get-Help about_Broker_Applications 
        Get-Help about_Broker_RemotePC 
        Get-Help Get-BrokerPrivateDesktop 
        Get-Help Get-BrokerSharedDesktop 
        Get-Help Get-BrokerPowerTimeScheme 
        Get-Help Get-BrokerUser 
        Get-Help Get-BrokerTag 
        Get-Help Get-BrokerAccessPolicyRule 
        Get-Help Get-BrokerAssignmentPolicyRule 
        Get-Help Get-BrokerEntitlementPolicyRule 
 
   

MONITORING AND ADMINISTRATION

After you have provisioned and configured machines for brokering, use the broker SDK to monitor and administer user sessions and other aspects of the delivery site.

Monitoring and administration involve the following SDK objects:

 
        BrokerServiceStatus 
        BrokerHypervisorAlert 
        BrokerDesktop 
        BrokerDesktopUsage 
        BrokerHostingPowerAction 
        BrokerSession 
        BrokerSessionMessage 
 
     

For more information, see:

 
        Get-Help about_Broker_Desktops 
        Get-Help Get-BrokerServiceStatus 
        Get-Help Get-BrokerHypervisorAlert 
        Get-Help Get-BrokerDesktop 
        Get-Help Get-BrokerDesktopUsage 
        Get-Help Get-BrokerHostingPowerAction 
        Get-Help Get-BrokerSession 
        Get-Help Send-BrokerSessionMessage 
 
   

SITE MANAGEMENT

The broker must be configured after installation; this is normally performed automatically by the Citrix Studio console. Configuration tasks include selecting the database (and obtaining the SQL scripting to initialize it), selecting the Citrix Configuration Service that holds the site configuration.

Note that some aspects of broker configuration (such as the port number on which the broker listens for SDK connections) cannot be configured with PowerShell cmdlets. These are configured through the use of the Broker Service executable. For more information, see about_Broker_PostInstallPreConfiguration.

A further important aspect of site management concerns the way in which machines providing resources identify the delivery controllers to which they belong. For more information, see about_Broker_ControllerDiscovery.

Managing XenDesktop sites involves the following SDK objects:

 
        BrokerSite 
        BrokerController 
        BrokerDBConnection 
        BrokerDBSchema 
        BrokerDBVersionChangeScript 
        BrokerInstalledDbVersion 
        BrokerServiceInstance 
        BrokerServiceGroupMembership 
        BrokerNameCache 
 
     

For more information, see:

 
        Get-Help about_Broker_PostInstallPreConfiguration 
        Get-Help about_Broker_ControllerDiscovery 
        Get-Help Get-BrokerSite 
        Get-Help Get-BrokerController 
        Get-Help Get-BrokerDBConnection 
        Get-Help Get-BrokerDBSchema 
        Get-Help Get-BrokerDBVersionChangeScript 
        Get-Help Get-BrokerInstalledDbVersion 
        Get-Help Get-BrokerServiceInstance 
        Get-Help Reset-BrokerServiceGroupMembership 
        Get-Help Update-BrokerNameCache