Galaxy Communicator Documentation:

The Hub and Server Executables


The Hub

The Hub executable manages the interactions among the Communicator servers.

Command line

<GALAXY_ROOT>/bin/hub ...

Command line arguments


The -debug argument will cause the Hub to enter a loop which allows the user to explore the state of the Hub, each time the Hub is about to dispatch a message to a server. The -pgm_file should be the user's program file. The -init argument will add key-value pairs to the frame which seeds the initial token., and also contribute to the key-value pairs in the welcome message passed to the reinitialize dispatch function in each server. The -validate key will use the message signatures reported by the servers and dynamically validate each message call. The -locations key allows overrides of the server declarations in the Hub script, using the same syntax as the SERVER: and SERVICE_PROVIDER: declarations respect.

The -server_locations_file key allows a similar sort of override, but in a file format that servers also understand. Note that both these override mechanisms will only apply when there is at most one listed provider for the named service type. This argument is identical to the -server_locations argument of a server executable.

The -verbosity key controls how much information is printed out when the Hub executable runs. See the section on running the executables.

The -gui key allows the user to specify a server which will receive a series of messages indicating the status of the Hub, which can be used for visualization and data collection. This functionality is still experimental. The message set will be documented in a future release. A simple Python server partially illustrating the message set can be found in contrib/MITRE/tools/src/hub_gui.

The -suppress_pacifier key suppresses the printing of the pacifier dot which is usually printed for every 1-second interval the Hub doesn't receive any messages.


The servers

If you build Communicator servers in the default way, they will accept a range of common arguments. Among these arguments are:
static char *oas[] = {
  ...
  "-verbosity level", "set the verbosity of this server", NULL,
  "-server_locations file", "a server locations file of lines server host:port [hub|server]", NULL,
  ...
  NULL
};
Note that these arguments have correspondences in the Hub executable.

The -server_locations key allows a similar sort of override, but in a file format that servers also understand. Note that both these override mechanisms will only apply when there is at most one listed provider for the named service type. This argument is identical to the -server_locations_file argument of the Hub executable.

The -verbosity key controls how much information is printed out when the server executable runs. See the section on running the executables.


Running the executables

Neither the Hub nor the server executables require any shell environment variables to be set. However, it is possible to control the verbosity (i.e., the amount of run-time information presented) using the GAL_VERBOSE environment variable, in addition to the -verbosity key on the command line of the Hub or servers. See the documentation on printing utilities for more details.

It is also possible to use the MITRE process monitor to help control the execution of arbitrary programs, including the Hub and servers. There is a shell version of this tool, but the version that's strongly preferred is written in Python, using Python's Tk support. The process monitor is used in almost all the MITRE examples.


Please send comments and suggestions to:bugs-darpacomm@linus.mitre.org
Last updated January 4, 2002.

 Copyright (c) 1998 - 2002
The MITRE Corporation
ALL RIGHTS RESERVED