Scientific Computing and Visualization Group
Boston University
Event Manager Overview
The event manager, also referred to as the event server, is responsible for coordinating the communications between the various DAFFIE client applications, such as viewers, sound servers and telephony generators. Each client application send its messages to the event server which then redistributes the messages to other interested clients. Since the connection to the event server is a simple IP connection, it is not necessary to have multi-cast enabled network to run DAFFIE.
Generally you will want to have one event manager for each shared virtual world. All client applications will take the name of event server as a command line argument (See the viewer and sound reference manuals). The event manager is implemented as a multi-threaded application and runs best on a machine with four or more processors, although this is not a requirement. The event manager does not consume a lot of cycles when there is no or little activity and we generally keep an event manager for each virtual world running continuously. We normally run the event manager on a multiprocessor Origin2000.
Each event manager runs on a particular port on the machine on which it is started. The default port is 9000, but this may be specified at startup and all clients accept server names of the form “hostname:port#”. This allows you to run multiple servers for different virtual worlds on the same computer.
Starting the Event Manager
The event manager is started using the command eventd in the Daffie EventMgr directory. There are several optional command line arugments as descripted below:
Argument | Description |
---|---|
-port n | By default the event manager listens for connections on port 9000. This sound_file_name name option allows you to specify a different port, n. |
-log filename | The event manager generates a log of its various actions and conditions. This options redirects the log from the terminal to the specified file filename. |
-world worldname | This option allows you to specify the name of the virtual world which this eventd is managing. This name is not currently used, but will be used in the next release to register a virtual world with a meta-world manager. |
-buffer n | This option allows you override the default IP buffer size of 64KB. This option is useful when operating between distant (high latency) clients. The argument n is in KB, i.e. -buffer 256 specifies 256KB buffers. |
Event utilites
The following utility programs are provide in the EventMgr directory:
eventmon
This program simply loops and every 10 seconds prints out all of the clients connected to the event server, plus additional information about clients which have just joined or exited. It takes as its single argument the name of the event server int the form hostame:port where the :port is optional.
latency
This program can be used to test the round trip time to the specifie event server. There is typically an approximately 9 millisecond RTT delay in sending a single event. RTT times in the low tens of milliseconds are quite acceptable for running DAFFIE.
Argument | Description | Required/Optional |
---|---|---|
hostname:port | The host name and port of the event manager. The hostname is required — the :port is optional. If the port is not specified it defaults to 9000. | required |
n | The number of round trip tests to conduct. The default is 100. | optional |
thruput
This program can be used to test the end-to-end bandwidth between event clients. You should see bidrectional bandwidths in the 10-20MB/Sec range for clients running on the same host as the event server and in the 2-4MB range on switched, Ethernet. For most DAFFIE virtual worlds applications, 200-500KB/Sec is acceptable.
Argument | Description | Required/Optional | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
hostname:port | The host name and port of the event manager. The hostname is required — the :port is optional. If the port is not specified it defaults to 9000. | required | ||||||||
One of -s, -r, -b, -x |
Specifies the mode to run in.
|
required | ||||||||
-xid id | Used with the -x to specify the client id to which to send data. The default client id is 999. | optional | ||||||||
-mtu id | Used to specify a maximum packet size to send. | optional | ||||||||
-k n | Used to generate a data stream of approximately n KB/Sec. Without this option the command will attempt to send data as fast as it can. | optional | ||||||||
hostname:port | The host name and port of the event manager. The hostname is required — the :port is optional. If the port is not specified it defaults to 9000. | required | ||||||||
size | Used to specify the size in bytes of the data to be send with each message (i.e. event). Valid ranges are 4 to 4000. Higher throughput is achieved with larger messages. If this value is given as 0 and -k is has not been specified, the data stream will consist of variable, random length messages. If -k was specified, this allows the program to choice the appropriate message lengths to achieve the desired rate. | required | ||||||||
nmessages | Specifies the number of messages to send or receive. The default is 10,000. | optional |