Mobile Agents are autonomous, intelligent programs that move
through a network, searching for and interacting with services on the
user's behalf. These systems use specialized servers to interpret the
agent's behaviour and communicate with other servers. A Mobile
Agent has inherent navigational autonomy and can ask to be sent to
some other nodes.
Mobile Agents should be able to execute on every machine in a
network and the agent code should not have to be installed on every
machine the agent could visit. Therefore Mobile Agents use
mobile code systems like Java
and the Java virtual machine where classes can be loaded at runtime
over the network.