A subject for future work is extending the use LIFNs to name services in addition to files. An interesting example of a network service is the NetSolve system which accepts linear algebra problem descriptions from users, computes a solution, and returns the results to the user [4]. Not all NetSolve computational servers solve all problems in all precisions. The computational servers also have different machine architectures and performance characteristics. Ideally one would like to be able to determine, for a given problem and input characterization, a equivalence relation on the set of available computational servers, where the servers in a given equivalence class provide identical results for the given problem. The idea would be to name each equivalence class with a LIFN and to resolve each LIFN to the set of locations for the servers. Computational servers could then dynamically add and remove themselves to and from a given equivalence class by contacting an RCDS location server.
Other planned work involves use of RCDS to distribute Usenet discussion groups. Such a RCDS-netnews hybrid would allow formation of ``private'' newsgroups, would not require each newsgroup to be replicated onto each server, would have more robust propagation than Usenet's flooding algorithm, and would allow seamless integration of local stores of recent articles, with ``archives'' of older ones, even on different servers, with the user viewing them as a single collection.
A ``program builder'' client is planned which will allow automatic building of software packages on various platforms. A description of the software package, consisting of a bill of materials and assembly instructions, will be stored in an RCDS-accessible file. The components of the package will be named with LIFNs and their descriptions (along with that of the package itself) will be cryptographically signed. The ``program builder'' will thus be able to fetch all components of a particular package, verify their authenticity and integrity, compile them and assemble them according to the instructions. This is intended to facilitate greater sharing of software packages by making it easier to construct large programs out of components from many different sources.
We plan to investigate an RCDS/Harvest Cache hybrid by modifying the Harvest Cache system to use RCDS servers. The hybrid system would combine the performance benefits of server-side (``push'') replication with those obtained from client-side (``pull'') replication.