A mobile agent is a piece of code which can move among the nodes of a netwo
rk of computers, looking for data and services. There are currently several
programming languages and systems to develop applications including mobile
agents. They are widely different, and it is not easy to understand how th
ey differ. We propose a taxonomy classifying different kinds of mobile enti
ties according to how they can move and how they can interact with their en
vironment.
We then introduce Macondo, a platform for mobile agents including interacti
on primitives based on coordination technology. In fact, Macondo is based o
n MJada: a coordination tool for Java extended to deal with agent mobility.
We use our taxonomy of mobility to compare Macondo with other well known s
ystems to program mobile agents.