The purpose of the Service Directory process is to provide clients with connection information for all of the worlds that the client is allowed to connect to. It exists because when the worlds startup dynamically, the connection system is not defined.
The Service Directory process that the client connects to, is defined with the client configuration values. The Service Directory process is defined to be available at a particular DNS name or IP address, which will be the machine that the Directory process is running on. The client obtains this information from a configuration file that it already has installed, such as heroblade.cfg, which will have been installed at the same time as HeroBlade on the client.
The Service Directory obtains the list of world connection information from both the Master Control, and from the directors in each individual world. Specifically the Dude Manager Director and Repository Server Director.