The computer has undergone an explosive development since they first arrived. Today nearly everybody uses computers more or less frequently. The trend is now that everyone has a little computer connected to others in a network. The computing power has become more decentralized, and therefore the need for communication has increased. Another thing that has changed the pattern is that the computers has become so small that it is no longer any problem to move them as long as one does not care about the network support, but of course one would like to have both the mobility and the network support.
In my master thesis project I have implemented and evaluated parts of a new approach for dealing with the problems with mobility. This approach is called the mobile floating agent technique, and was developed by George Y. Liu at Ericsson Radio Systems AB, Kista. The main idea behind this is to have floating agents in the network, i.e. software entities that are virtually floating around in the network, arranging files and resources for the mobile user so that he can connect to a server in his neighbourhood, instead of connecting to his own server far away.
I have implemented a simple file system testbed that uses the floating agent technique for caching purposes. There are two reasons for doing this implementation. The reason is for evaluation of the caching features, and the second reason is to have a platform to implement more advanced agent functions on.
The design of the system has been done in an object oriented style, and the implementation has been done in C++.The system consists of two parts. One part is the client software, which has been implemented in another project, but modified by me, and runs on aPC with the Windows95 OS. The other part is the network part of the system, i.e. the part of the system that is not running in the client, is made for running on an UNIX station. The network part of the system consists of two parts itself. There are mobile floating agent managers, that manages the whole system, and agents, that serves the mobile clients, and communicates with both the client software and the mobile floating agent managers.
In the evaluation part of the project I have compared the delay acquired when accessing a file in a remote network with and without an agent. I finally came to the conclusion that the gain won with the use of caches in the agents is maybe not as large that one should use caching as the primary object of the agents.