Download full document:

# about_Broker_Concepts

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 
    BrokerApplicationGroup 
    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