A Mansion world can physically distributed over a number of hosts on the Internet. A room is a logical structure, which can be replicated over a subset of the hosts that are part of a world. This means that multiple agents can access a room from multiple physical locations simultaneously. Objects are strictly passive entities which can physically be distributed over multiple hosts. Each object has an interface using which agents can invoke methods on the object. We use an object system based on the Globe object architecture to implement distributed (replicated) objects using an efficient RPC-based implementation. Agents are autonomous, active entities which run on one host at a time. Agents are essentially (multithreaded) processes that can communicate with each other using message passing and interact with objects by invoking methods on their interfaces. An agent may be written in any programming language; the middleware takes care of migrating the agent to another host in a secure way if this is required. Agents are confined using a novel jailing system built by the Mansion developers, which allows execution of arbitrary (binary) programs in a safe way. The jailing system is currently only implemented on Linux, but in principle portable to any (UNIX) system. We seek developers which are willing to port the jailer to other platforms, such as Solaris or OS-X. Systems which do not have a jailer implementation can make use of programming languages such as Java to implement agents, where Java takes care of 'sandboxing' the agent. The Mansion jailing system is, however, simpler to use and more general than a language-based security policy enforcement mechanism.
The Mansion model imposes constraints on the logical operations which may be done in a world. Interagent communication can be done world-wide (i.e., any agent in a world can communicate with any other agent in the world, irrespective of what rooms the agents are in). Method invocations on an object can only be done if the agent is in the same room as the object. To be able to interact with objects, an agent has to migrate to the object's room. Hyperlinks contain the information necessary for the middleware to migrate the agent logically to another room. In some cases (when the room is not replicated on the agent's current host), the agent has to migrate to a different host than the current one; this is done transparently by the middleware.
Examples in which the Mansion paradigm can be used is to structure electronic shopping malls, information retrieval (e.g., digital library) applications or auctions in which auctions on different topics can occur at the same time (i.e., in different rooms). Some examples are discussed in the papers listed on the Mansion publications page.
Important issues in the design of Mansion are security, physical agent migration and distribution and location transparency of all logical entities (agents, objects, rooms) in a world. Another important aspect is that we want to support heterogenous agents on multiple platforms. We do not limit ourself to supporting Java agents.