XenApp farms have two types of infrastructures:
- The virtualization infrastructure consists of the XenApp servers that deliver virtualized applications and VM hosted Applications, and controllers that support sessions and administration, such as the data store, data collector, Citrix XML Broker, Citrix License Server, Configuration Logging database (optional), Load Testing Services database (optional), and Service Monitoring components.
- Access infrastructure consists of controllers such as the Web Interface, Secure Gateway (optional), and Access Gateway (optional) that provide access administration.
In small deployments, you can group one or more controllers together. In large deployments, you provide services on one or more dedicated servers.
Factors other than size can affect how you group controllers. Security concerns, virtualized servers, and user load play a part in determining which functions can be collocated.
Typically, in larger farms, you segregate the controller functions onto distinct servers. For small farms, you might have one controller server hosting infrastructure functions and multiple worker servers hosting published applications.
Small farms that require redundancy might have one or two servers hosting controllers. For example, in a small farm, the data store might be configured on the same server as the data collector and the XML Broker and, perhaps also the Citrix License Server and the Web Interface.
Medium and large farms might group controllers and services together when they have similar functions. For example, the XML Broker might be grouped with the data collector. In some larger deployments, each infrastructure service would likely have one or more dedicated servers. In large farms, the Citrix License Server and the Web Interface are typically hosted on separate servers.
About Virtualization Infrastructure
The virtualization infrastructure, which is the center of a XenApp deployment, concerns the following concepts:
- Application enumeration
- Application enumeration is when Citrix client software lists virtualized applications available on the XenApp servers. The client software transmits data to locate servers on the network and retrieves information about the published applications. For example, during enumeration, the XenApp online plug-in communicates through Citrix XML Service with the XenApp server to determine applications available for that user.
- Application publishing
- To deliver an application to your users through Citrix Dazzle and the XenApp online or offline plug-ins, whether virtualized on the desktop or the server, you use the Delivery Services Console to publish the application.
- Citrix Licensing
- A Citrix License Server is required for all XenApp deployments. Install the license server on either a shared or stand-alone server, depending on your farm’s size. After you install the license server, download the appropriate license files and add these to the license server.
- Data Store
- The data store is the database where servers store farm static information, such as configuration information about published applications, users, printers, and servers. Each server farm has a single data store.
- Data Collector
- A data collector is a server that hosts an in-memory database that maintains dynamic information about the servers in the zone, such as server loads, session status, published applications, users connected, and license usage. Data collectors receive incremental data updates and queries from servers within the zone. Data collectors relay information to all other data collectors in the farm. By default, the first server in the farm functions as the data collector.
- By default, the data collector is configured on the first farm server when you create the farm and all other servers are configured with equal rights to become the data collector if the data collector fails. When the zone’s data collector fails, a data collector election occurs and another server takes over the data collector functionality. Farms determine the data collector based on the election preferences set for a server.
- The data collector is a controller and applications are typically not published on it.
- A zone is a grouping of XenApp servers that communicate with a common data collector. In large farms with multiple zones, each zone has a server designated as its data collector. Data collectors in farms with more than one zone function as communication gateways with the other zone data collectors.
- The data collector maintains all load and session information for the servers in its zone. All farms have at least one zone, even small ones. The fewest number of zones should be implemented, with one being optimal. Multiple zones are necessary only in large farms that span WANs.
- Streaming Profiles
- You can deliver applications to users by either virtualizing them on the desktop (streaming) or by virtualizing them on the server (hosting). If you are virtualizing applications on the desktop, either streaming to the client or server, create a streaming profile server in your environment. To virtualize applications on the desktop, you create profiles of the application and then store the profile on a file or Web server. The profile consists of the manifest file (.profile), which is an XML file that defines the profile, as well as the target files, a hash key file, the icons repository (Icondata.bin), and a scripts folder for pre-launch and post-exit scripts.
- Web Interface
- The Web Interface is a required component in any environment where users access their applications using either the online plug-in or a Web browser. Install the Web Interface on a stand-alone computer; however, where resources are limited, the Web Interface is sometimes collocated with other functions..
- XenApp Web and XenApp Services Sites
- XenApp Web and XenApp Services sites (formerly known as Access Platform and Program Neighborhood Agent Services sites, respectively) provide an interface to the server farm from the client device. When a user authenticates to a XenApp Web or XenApp Services site, either directly or through the XenApp plug-in or the Access Gateway, the site:
- Forwards the user’s credentials to the Citrix XML Service
- Receives the set of applications available to that user by means of the XML Service
- Displays the available applications to the user either through a Web page or by placing shortcuts directly on the user’s computer
- Citrix XML Service and the Citrix XML Broker
- The Citrix XML Broker functions as an intermediary between the other servers in the farm and the Web Interface. When a user authenticates to the Web Interface, the XML Broker:
- Receives the user’s credentials from the Web Interface and queries the server farm for a list of published applications that the user has permission to access. The XML Broker retrieves this application set from the Independent Management Architecture (IMA) system and returns it to the Web Interface.
- Upon receiving the user’s request to launch an application, the broker locates the servers in the farm that host this application and identifies which of these is the optimal server to service this connection based on several factors. The XML Broker returns the address of this server to the Web Interface.
- The XML Broker is a function of the Citrix XML Service. By default, the XML Service is installed on every server during XenApp installation. However, only the XML Service on the server specified in the Web Interface functions as the broker. (The XML Service on other farm servers is still running but is not used for servicing end-user connections.) In a small farm, the XML Broker is typically designated on a server dedicated to several infrastructure functions. In a large farm, the XML Broker might be configured on one or more dedicated servers.
- The XML Broker is sometimes referred to as a Citrix XML Server or the Citrix XML Service. For clarity, the term XML Broker is used to refer to when the XML Service functions as the intermediary between the Web Interface and the IMA service, regardless of whether it is hosted on a dedicated server or collocated with other controller functions.