Mobile Agents are units of code that are capable of running autonomously on a network node and are capable of migrating (along with their state) to another node. The agents run inside a ‘host’.
Mobile agents are usually intelligent in nature, and are capable of learning, are adaptive, are capable of communicating with other agents or the agent host, and are often representative and goal seeking. By combing agents on a Network it is possible to emulate supercomputing.
Once released, the Agent will decide themselves as to where they move to and how they execute their tasks. Due to their requirement of mobility, agents are usually small in size. Agents usually migrate themselves but are sometimes migrated by the host.
The Antique Dealer Agent
To illustrate the use of an agent, say an antiques collector wants to buy a Ming vase. An Agent is programmed and released onto the Internet to carry out a search. The Agent can move from node to node (i.e. a host site or web site) to look for the required article. If unsuccessful in the search, the Agent may continue its task without returning home and simply revisit past sites regularly in the hope that a vase will eventually appear. Our Agent will continue to look for new sites and new agents. The antique dealer may disconnect from the network and the agent will report when the connection is re-established.
The Agent may meet and converse with other Agents that work for antique dealers; there may be an exchange of buying and selling lists, or a message passed that we are looking for a certain Ming vase. Our Agent may leave messages on various sites it has called at stating what we are searching for. On meeting another Agent that has a vase to sell, the two agents may complete the deal there and then by passing a credit card or bank account number (for which another agent may go and validate immediately). The Agent eventually returns to tell its owner the outcome of the task.