PHAT-CLIENT TUTORIAL

The following examines the Multi-Agent Management (MAM) packaging hierarchy, as well as some of the most common agent types. PLEASE REALIZE that it is intended primarily for programmers who want to become familiar with the overall architecture of the MAM system in order to start creating custom messages and agents of their own.

Once you have familiarized yourself with the general layout of the packages and what they do, and the various agents utilized by the MAM system, you may want to look more closely at the messaging and agent layers, which will also demonstrate how to create your own customized messages and agent types for integration into the larger system.

QUICK LINKS: Packages and Agent Types

Package: applications
Package: edu
Package: mam
Package: mamx
Package: moo
Package: tutorial

Common Agent Types

Phat-Client Tutorial: Menuing and Functionality
Phat-Client Tutorial: Agent Attributes
Phat-Client Tutorial: Custom Look & Feel

Phat-Client Tutorial: [for programmers] Packages and Agent Types
Phat-Client Tutorial: [for programmers] Messaging and Agent Layers
Phat-Client Tutorial: [for programmers] MUE/MOO and MAM interfaces
Phat-Client Tutorial: [for programmers] MUE/MOO Game and Utility Code
Phat-Client Tutorial: [for programmers] Server-Side Scripts
Phat-Client Tutorial: [for programmers] MAM UML Documentation
Phat-Client Tutorial: [for programmers] MAM Javadocs

PROXY portal

PACKAGE: applications

The applications package holds applications that utilize the core MAM system components.

applications.proxy

The applications.proxy package holds proxy application, which is our primary realization of a full-fledged application levering the MAM system components. There are in fact a number of interfaces and functionality that fall under this umbrella uber-app.

applications.proxy.dialog

Various dialog windows that are reused within the proxy application.

applications.proxy.graph3dVisualizer

A 3d visualization component that is used to visualize an information personae agent and its associated knowledge agents.

applications.proxy.main

Driver shells for the proxy application. This is where all the startup and application-level processing flow is defined. MamCommunicator, in particular, drives much of the processing.

applications.proxy.quiz

Quiz servlets used for some of the integrated web functionality and modifying agent traits.

applications.proxy.submitter

Search engine submitter utility classes.

applications.proxy.ui

UI interface definitions.

applications.proxy.utils

Proxy application utility classes. A mish-mash of preference classes, value objects, and other classes used by the other portions of the proxy application.

applications.webserver

Implementation of an HTTP web server, along with limited servlet capability. Note, the MAM servlet functionality is not Java servlet standards compliant.

applications.webserver.httpPacketUtils

Utility classes for manipulating and analyzing HTTP packets.

Top

PACKAGE: edu

edu.stanford.ejalbert

Browser launching software, third-party.

Top

PACKAGE: mam

Package containing the core MAM system.

mam.agent

Most the MAM agents reside in this package. Of particular importance are SearchAgent, InformationPersonaeAgent, and UrlKnowledgeAgent. Also, the base class Agent is worth looking at.

mam.agent.economy

Where agent funds get tracked. Provides a method for adjusting agent resources withing MOO from MAM as part of the economic model.

mam.agent.pluginAgentRes

gl4java resources that are used by plugins. The plugins have been written to provide alternative visual interfaces to the MAM system. Plugins can be written and compiled outside of MAM, and then dropped into the top-level 'plugins' directory.

mam.agent.sleepManager

Contains sleep managers that determine the sleep policies for the agents.

mam.id

Globally unique identifiers for the MAM system.

mam.internetworking

Internetworking between hosts on the net. A lot of routing code resides here as well.

mam.internetworking.messages

Messages used for internetworking. Not the same as agent messages.

mam.messaging

Agent messages.

mam.sound

MAM sound system. Uses registry of cached .wav sounds for sharing sounds within the system. Also includes the traited event sounds that play differently depending on the attributes of the player.

mam.test

Old test harnesses for the MAM system.

mam.transaction

Transaction management for the asynchronous agent messaging. By using message waiters, it is possible to chain together multiple requests/responses and offer more complex processing. Long sequential operations still require careful message management on the part of the agent.

mam.utility

Assorted utility classes, including value objects, some string utils, some url utils, and a random selection class.

mam.xml

XML persistence utilities.

Top

PACKAGE: mamx

mamx.vrml

Utilities used to generate VRML representations of the MAM agent space.

Top

PACKAGE: moo

Classes for interacting with MOO environments.

Top

PACKAGE: tutorial

Driver shell for the tutorial application.

Top

COMMON AGENT TYPES

Agent

Base class for the agents in the MAM system. Offers good defaults for most common message responses.

AnalyzeAgent

Looks at logs generated by the ListenAgent and analyzes them.

InformationPersonaeAgent

The InformationPersonaeAgent represents the cumulative knowledge of a single user of the MAM system. It relies on collaboration with knowledge agents to manage the knowledge.

ListenAgent

Listens to message activity in the system and logs statistics extracted from the information flow.

MarketingAgent

Markets various knowledge when activated.

MonitorAgent

Monitors URLs for any changes.

ProxyMooExporterAgent

Exports knowledge set to MOO.

SearchAgent

Coordinates searches all known information personae agents in the internetworked system.

SecretAgent

Spies on an InformationPersonaeAgent.

TransactionalAgent

Base class for transactional agents, which require the services of an integrated message waiter to collect and coordinate multiple responses.

UrlKnowledgeAgent

Agent that manages a set of knowledge, currently represented by a single URL, and knows how to access and query that knowledge.

WatchAgent

Intermediary agent between the ProxyGL game and the MAM system.

WebServerAgent

Handles interaction between agents and the webserver.

Top

Please send comments to nideffer@uci.edu.