Research Activities

The major research activities for this thesis work fall into three categories. The fundamental work will be in building a system that enables an ecology of distributed agents. On top of this framework the application itself will be built, a set of agents that coordinate to represent people's presence on the Internet. Once the system is built and deployed, the appropriateness of the ecological metaphor will be studied by examining how elegantly the system is constructed and how well it operates.

Building an Ecology of Distributed Agents

Designing an infrastructure for a computational ecology is the major research activity for this thesis. Distributed agents are an appropriate technology for the task but tools for building distributed agent systems are relatively new. Fortunately, Java 1.1 provides many of the basic functions. On top of the Java core, several third party packages such as IBM's aglets [12], CalTech's Infospheres [3] [4], and ObjectSpace's Voyager [20] system provide higher level distributed object and mobile agent facilities. In particular, they package up details of naming objects, handling network class loading, and presenting a coherent distributed objects API. An early requirement for the thesis project is evaluating the various architectures and choosing the most appropriate for building ecologies. Voyager appears to be the most well-suited platform, although I intend to stay in close contact with Caltech's Infospheres research group as well.

Existing software will provide some of the base functionality needed for distributed agents but a lot will need to be done to build an ecology on top of the core. Current distributed object systems do not have a very strong notion of the environment that agents have access to. There is little in the way of a well-defined limited API for incoming agents and nothing as high level as the sensors and actuators that the agents inhabiting the thesis system will need. Defining an environment interface is a major research task; the results will have broader applicability towards any systems that want to define a service API for mobile agents.

There is also the task of defining the structure of the network environment as a whole -- what servers are available, how an agent can find and navigate them. The preliminary plan is to have a simple locally connected topology; each server is connected to only a few others, but the system as a whole will be a connected graph. The suitability of this topology for an artificial ecosystem is an open question. Time permitting, the issues of global naming (how to construct a reference to an agent that is valid anywhere) will also be studied.

Agent intercommunication is essential for the system to work; agents have to share information with each other to fulfill the application. Coordinating agent interaction will touch on many deep research issues, including questions of ontology and credit assignment. A description of agent services will be needed so that when two agents meet they can quickly learn what capabilities each other has. Defining ontologies for software is a major research topic in its own right; for this thesis, an ad hoc solution will be created possibly using XML [2]. A related issue is the credit assignment problem -- if one agent is rewarded or punished by a user, the agents that it communicates with should also receive part of the credit or blame. Credit assignment in distributed systems is also a major research topic; for the purpose of this thesis only a very basic system will be implemented.

An optional topic of research is the design of a security manager to ensure that agents do not escape the constructed environment. Access controls are an important topic for all mobile computation; security of the servers needs to be ensured. Java provides a foundation for enforcing security policy, but higher level work is needed to make security management simple and practical for this kind of application. In addition, while protecting servers from agents is relatively well understood there is little research in the problem of protecting agents from each other. If time permits a security manager for agent ecologies would make a nice side project, but it is not an essential part of the thesis.

Presenting Activity with Distributed Agents

Once the environment is created, the next step is to build agents to populate it. While much of my effort will necessarily focus on building and understanding the infrastructure, the application of representing presence is itself a major research topic that this thesis will address.

The power of an agent ecosystem is that multiple solutions to a problem can be implemented. The ecosystem will be populated with a variety of agents that show the activities of people on the network. In order to design visualization agents, I will rely on my graphical design experience from John Maeda's MAS course ``Principles of Visual Interface Design,'' [14] along with consulting existing research in representation of presence. Several species of data providing providing agents will be created to provide representation agents with data from various sources. Coarse data such as a user's activity at the keyboard will be provided, as well as fine detail about specific activities such as what Web page a user is looking at. The goal is to build enough agents to have many alternatives for addressing the problem of making the Internet a more social space.

Exploration of the Ecological Metaphor

Why use an ecology of agents to represent presence? The application is fundamentally distributed: agent ecologies are a powerful way to build distributed applications. A major evaluation of this thesis research will be a critique of the design of the implemented application. How hard is it to build a system of cooperating distributed agents? Is this a natural way to build applications, does it afford greater power and flexibility as predicted? The experience of building a practical application will enable me to at least partially answer these questions.

Another reason to build a presence application with an ecology of agents is to give users a diverse population of solutions, to have a variety of different ways to represent presence. The reward and punishment of agents gives a user the ability to choose individual agents for himself and influence the entire network population. One goal for the thesis is to begin to understand the phenomenology of computational ecosystems, to study how agent populations are affected in response to users' feedback and selection. In a large-scale version of the system (thousands of users), interesting dynamics would emerge with clusters of agents moving across the network in complicated ways, embodiments of trends or fashions. In the scope of a one year project, results from the experience of smaller user communities will give basic insight into ecologies of agents.

Summary of Research Topics

This thesis work will be an investigation into a new way of designing computer systems, one that embodies the understanding that the Internet is a crucial environment for software. Toward that end, there are several related research topics that will be covered in the course of the master's work:


next up previous contents
Next: Resources Up: No Title Previous: Application Scenario

Formatted: Tue Dec 2 14:47:20 EST 1997
Nelson Minar