Prototype Implementation

The prototype implementation of BFD uses query and update protocols based on Sun's Remote Procedure Call (RPC) mechanism over UDP. RPC was chosen because it is very lightweight (one packet for request, and one for reply), widely supported on UNIX platforms, and easy to implement on other platforms (at least for the portions of RPC needed by BFD).

Unlike many RPC-based applications, BFD does not use the portmapper. Instead, the RPC requests are sent to a server at a fixed port number. This avoids the overhead of an extra RPC call to the database server machine, just to find out where the real database server is listening.

A client library that may be linked with WWW browsers has been written using code generated by Suns's rpcgen program. The client library is being re-written in raw C for better portability, efficiency, and flexibility in a multiple server environment, and will soon be made publicly available. A screen shot of the BFD client is shown in Figure 4.

For demonstration purposes, a resource catalog server has been set up containing several tens of thousands of files from Netlib, the National HPCC Software Exchange (NHSE), the Mosaic and Netscape sites, and the Internet RFCs. These files have been replicated at a number of locations, and are begin used to stress test the RC server implementation.

Figure 4: