By building a computational ecosystem I will explore the ecological metaphor and study the methods it inspires for designing and understanding complex distributed programs. In order to build a computational ecology a technology is needed to support programs living natively in a network environment. The key requirement is to integrate communication into the computational framework, to make it as simple and natural for programs to work over the network as they operate on a single machine. Distributed agents open up new possibilities for the way that we design computational systems. Briefly, an autonomous agent is a program that has sensors, actuators, and its own goals and purposes.
Software agents are capable of independently acting in their environment.
Distributed agents are agents that are native to their particular environment, the network. Part of being Internet-native is being able to easily talk to other agents across the network. In particular, distributed agents require high-level interagent communication in order to make it easy for agents to find each other and meaningfully interact. Mobile agents can move themselves across the network, picking up from one machine and moving to another in order to get better access to resources. But there are many questions about the usefulness of distributed and mobile agent systems.