By now many have migrated to Presentation Server 4.0 (PS4)/Web Interface 4.0 (WI4) and are becoming familiar with the Access Suite Console (ASC). Along the same lines, many are familiar with how to run the "create site" wizard in the ASC to create a WI site. However, what’s going on behind the scenes with some of the options you’re presented with and so used to clicking through? This article takes a look at what the Centralized Configuration Service is and how it interacts with Web Interface.
What is the Centralized Configuration Service?
Prior to Web Interface 4.0, all of the configuration settings for a WI server were stored in a text file on the web server called "webinterface.conf." In WI4, Citrix introduced the option of storing WI configuration settings in the IMA data store instead of locally on each WI server. This option, seen in the "create site" wizard in the ASC, gives you the option to "Use local configuration file(s)" or "Use centralized configuration."
The "use local configuration file(s)" option refers to the traditional configuration method of storing a webinterface.conf file on each WI server. The "centralized configuration" alternative is the new option the WI servers’ settings are stored in the Presentation Server farm’s data store.
If you choose to use the centralized configuration, the Configuration Service comes into play. The Configuration Service is a DCOM application installed by default with PS4 on your PS4 server. (Note that this is a DCOM application, not a service which appears on your Windows server in Computer Management.) Each time the WI server boots, WI contacts this DCOM application on the PS4 server to communicate with the data store. Settings are retrieved from the data store using the configuration service/DCOM application and communicated back to the WI server. The configuration service is also invoked when changes made in the ASC to the site need to be communicated to the data store. You can read about the details of the DCOM application in Jay Tomlin’s Web Interface 4.0 Troubleshooter’s Guide.
Regardless of which configuration source you use, you still manage the configuration of your WI servers and sites via the ASC. The only change is where the settings are saved when you click the ‘apply’ button.
Understanding the bootstrap.conf File
Since WI4 can store its configuration locally or centrally, there has to be some way for the WI server to know which option it should use when it starts up. Citrix accomplishes this with a file called "bootstrap.conf."
The bootstrap.conf file is a simple text file that exists on every WI4 server regardless of its configuration source. Upon startup, WI checks the bootstrap.conf file. If it finds this line ConfigurationSourceType=ConfigurationService, the server contacts the configuration service running on a PS4 server (specified during the site creation and also written to the bootstrap.conf file) to retrieve configuration information from the data store. On the other hand, the line ConfigurationSourceType=Local tells the WI server to retrieve configuration information from the local webinterface.conf file.
Another important concept when thinking about the configuration service is that one single IMA data store can contain configuration information for multiple WI sites. To distinguish between sites, every Citrix WI site is granted a unique Site ID that's composed of the site path, name, and a 512-bit key. This Site ID is stored in both the bootstrap.conf file and the data store, so the WI server is able to request the configuration details about the proper site when it contacts the central configuration service.
Which method is best, local or centralized?
The centralized configuration option sounds good in theory, but it comes with practical limitations. The implementation is not that straightforward, and you usually need to play around with the DCOM application and its permissions to get it all working properly.
Once it’s working, the main drawback is that the centralized configuration option only manages the configuration information normally found in the webinterface.conf file—it does not handle any other configuration data stored locally on the WI server. For example, language files, the customized ICA client packages, and the actual ASPX web pages and their associated images are all still all stored locally and not managed using central configuration. Even when using the centralized configuration service you would still need to copy these files out to each WI server whenever a change is made. If you’re copying all of these files anyway, how hard is it to also copy the webinterface.conf file?
The centralized configuration service has potential in the future if it could become all-encompassing, but for now it’s easiest to avoid introduing a new complexity and work with webinterface.conf files locally on each server.
Web Interface 4.0 Troubleshooter’s Guide – Jay Tomlin
How to Load Balance two Citrix Web Interface Servers – Brian Madden
A First Look at Citrix Web Interface 4.0 –Thomas Koetzing
Citrix Web Interface Administrator’s Guide