In this paper we introduce a distributed object oriented programming language and we illustrate its use for building Internet wide agent based applications. The language, April++, is a macro implemented OO extension of the distributed symbolic programming language April. The objects in April++ can have knowledge bases comprising sets of facts and recursive definitions of relations which can be queried, both locally and remotely, using Prolog style queries. April++ has one other significant feature. Using the higher order features of the underlying April, objects can be cloned, with the current state of the object encapsulated in a procedure closure. The clone can then migrate to be forked as a new active object running on a new host. This features enables us to implement mobile agents.
Click here for a compressed PostScript version of the paper (mob_agents.ps.gz, 55008 bytes).