Building and Running
System Requirements
As of June 8, 1998, the system runs on SGI Irix 6.3. Cross-platform support
is partially implemented. Specifically, the server will, with minor tweaking,
run on Irix, Solaris and Linux (practically any *NIX system with support for
pthreads). The client library (and associated agents) will run on the same
set of systems as the server, though there are a few minor issues with pthreads
that we are looking into. The existing graphical client is being developed
under Irix, and in its standalone form will work under Windows NT as well. A
fully working NT client will be created as soon as the client library is ported
to it.
The current build tree is located (in the CoC file system) in:
~vrmidtown/vrmidtown/
The server, client library, and the various clients are located underneath this
directory. All of the source revision is managed with RCS.
The Server
The server is located in ~vrmidtown/vrmidtown/server. The server is built
on various platforms with the appropriate makefiles, which are named
Makefile., where platform is one of linux, sgi, or solaris. The
command-line for the server is 'server ', where is a TCP port
(which must be above 1024).
The Client Library
The client library is located in ~vrmidtown/vrmidtown/client. It is built
in the same manner as the server. The end product is a shared library,
'libclient.so' (named in the same manner as the makefiles). This
shared library will be used by the various clients that exist under this
directory.
The Clients
Located underneath the 'client' directory are various clients. These include
the graphical client, some test agents, and the Java layer for agent
implementation.
Note that because the clients all link dynamically with the client library,
they require (on *NIX systems) that the environment variable LD_LIBRARY_PATH
contain the directory in which the client library resides. This can be
resolved by typing 'export LD_LIBRARY_PATH=..' in our current build tree (on
bash and ksh). Without this, the individual clients will not run.
The Graphical Client
The current implementation of the graphical client is located in
~vrmidtown/vrmidtown/client/viewer. It has but a single makefile, which builds
for Irix. This will change when it is ported to Windows NT. The executable
build will be called 'viewer'. It requires two command-line arguments: The
first is the hostname of the machine on which the server is running. The
second is the server's port number.
Note that there appears to be a bug in Irix where 'localhost' does not resolve
to the local machine, so you will have to type a machine name even if the
server is running locally.
A Test Agent
In the 'myagent' directory lies a simple test agent. It has only been
used on Irix, though it should run fine on the other platforms as well. It
simply connects to the server and creates a simple agent that responds to any
messages it receives.
The Java Layer
In the 'java' directory is the beginnings of the implementation of a Java
Native Method layer for implementing clients. This is not currently working,
due to some conflicts between the Java Virtual Machine and the pthreads
library. We hope to have these resolved in the near future, as it will make
agent implementation much simpler and more accessible than the raw 'C'
libraries.