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.