JAF - The Java Agent Framework

An architecture was needed for the agents working within the Mass environment which effectively isolated the agent-dependent behavior logic from the underlying support code which would be common to all of the agents in the simulation. One goal of the framework was therefore to allow an agent's behavioral logic to perform without the knowledge that it was operating under simulated conditions, e.g. a problem solving component in a simulated agent would be the same as in a real agent of the same type. The framework also needed to be flexible and extensible, and yet maintain separation between mutually dependent functional areas to the extent that one could be replaced without modifying the other. To satisfy these requirements, a component-based design, the Java Agent Framework (JAF), was created.

Component based architectures are a relatively new arrival in the field of software engineering which build upon the notion of object-oriented design. They attempt to effectively encapsulate the functionality of an object while respecting interface conventions, thereby enabling the creation of stand alone applications by simply plugging together groups of components. This paradigm is ideal for our agent framework, because it permits the creation of a number of common-use components, which other agent-dependent components can easily make use of.

JAF is based on Java Beans, Sun Microsystem's component model architecture. Java Beans supplies JAF with a set of design conventions, which provides behavior and naming specifications that every component must adhere to. Specifically, the Java Beans API gives JAF a set of method naming and functional conventions which allow both application construction tools and other beans to easily manipulate a component's state and make use of its functionality. JAF also makes heavy use of Java Bean's notion of event streams, which permit dynamic interconnections to form between stream generating and subscribing components.

JAF builds upon the Java Beans model by supplying a number of facilities designed to make component development and agent construction simpler and more consistent. Mechanisms are provided to specify and resolve both data and inter-component dependencies. These methods allow a component, for instance, to specify that it can make use of a certain kind of data if it is available, or find and make use of other components in the agent. More structure has also been added to the execution of components by breaking runtime into distinct intervals (e.g. initialization, execution, etc.) with associated behavioral conventions during these intervals.

To date, more than 27 JAF components have been built, ranging from simple logging tools to a contract-net based mobile robot problem solver. A sample of these appear below:

    Control
    Provides initialization facilities and runtime state conventions and control.
    State
    Serves as a central repository for data storage and retrieval within the agent. Also assists with component discovery.
    Log
    Provides multi-level logging facilities.
    Execute
    A generic interface for enabling real or simulated behaviors.
    Communicate
    Supports multiple incoming or outgoing TCP streams, with heterogenous message encodings.
    PreprocessTaemsReader
    Wraps the taems preprocessor, which uses a marked up version of textual Taems to produce task structures for the agent.
    Observe
    Simple periodic or event-based engine allowing statistics to be gathered on the agent's internal activities.
    ResourceModeler
    Monitors coordination and execution activities in an effort to build a predictive model of resource usage.
    DiagnosticsBoard
    A three-tier blackboard based diagnosis system (symptoms, diagnoses and reactions), facilitating diagnosis analysis and organization, and remote diagnosis interactions.
    Diagnosis
    A causal model based diagnostic engine, designed to be attached to a local diagnostics blackboard supporting complex, active diagnosis using arbitrary analysis techniques.
    LogViewer
    An extensible log visualization tool which can show a consolidated, multi-agent view of agent activities in real time.

Related Publications

Wagner, Tom; Horling, Bryan; Lesser, Victor; Phelps, John; and Guralnik, Valerie. The Struggle for Reuse: Pros and Cons of Generalization in Taems and its Impact on Technology Transition. Proceedings of the ISCA 12th International Conference on Intelligent and Adaptive Systems and Software Engineering (IASSE-2003). 2003.

Horling, Bryan; Mailler, Roger; Shen, Jiaying; Vincent, Regis, and Lesser, Victor. Using Autonomy, Organizational Design and Negotiation in a Distributed Sensor Network. Distributed Sensor Networks: A multiagent perspective, Lesser, Victor; Ortiz, Charles; and Tambe, Milind, ed., Kluwer Academic Publishers, pp. 139-183. 2003. Book chapter.

Horling, Bryan; Lesser, Victor; Vincent, Regis and Wagner, Thomas. The Soft Real-Time Agent Control Architecture. Proceedings of the AAAI/KDD/UAI-2002 Joint Workshop on Real-Time Decision Support and Diagnosis Systems. 2002. Also available as UMass Computer Science Tech Report 02-14.

Horling, Bryan; Lesser, Victor; Vincent, Regis; and Wagner, Tom. The Soft Real-Time Agent Control Architecture. UMass Computer Science Technical Report 2002-14, Number 02-14, University of Massachusetts. 2002. See also this paper.

Horling, Bryan, Vincent, Regis, Mailler, Roger, Shen, Jiaying, Becker, Raphen, Rawlins, Kyle and Lesser, Victor. Distributed Sensor Network for Real Time Tracking. Proceedings of the 5th International Conference on Autonomous Agents, ACM Press, pp. 417-424. 2001.

Wagner, Thomas, and Horling, Bryan. The Struggle for Reuse and Domain Independence: Research with TAEMS, DTC and JAF. Proceedings of the 2nd Workshop on Infrastructure for Agents, MAS, and Scalable MAS (Agents 2001), AAAI. 2001.

Vincent, Regis; Horling, Bryan; and Lesser, Victor. An Agent Infrastructure to Build and Evaluate Multi-Agent Systems: The Java Agent Framework and Multi-Agent System Simulator. Lecture Notes in Artificial Intelligence: Infrastructure for Agents, Multi-Agent Systems, and Scalable Multi-Agent Systems, Volume 1887, Wagner and Rana (eds.), Springer,, pp. 102-127. 2001.

Horling, Bryan, Lesser, Victor, Vincent, Regis, Bazzan, Ana, and Xuan, Ping. Diagnosis as an Integral Part of Multi-Agent Adaptability. Proceedings of DARPA Information Survivability Conference and Exposition, IEEE Computer Society, pp. 211-219. 2000.

Jensen, David; Atighetchi, Michael; Vincent, Régis; and Lesser, Victor. Learning Quantitative Knowledge for Multiagent Coordination. 16th National Conference on Artificial Intelligence (AAAI-99), American Association for Artificial Intelligence, pp. 24-31. 1999.

Lesser, Victor; Atighetchi, Michael; Benyo, Brett; Horling, Bryan; Raja, Anita; Vincent, Regis; Wagner, Thomas; Ping, Xuan; and Zhang, Shelley XQ. The Intelligent Home Testbed. Proceedings of the Autonomy Control Software Workshop (Autonomous Agent Workshop). 1999.

Lesser, Victor, Atighetchi, Michael, Benyo, Brett, Horling, Bryan, Raja, Anita, Vincent, Regis, Wagner, Thomas, Xuan, Ping, Zhang, Shelly XQ. A Multi-Agent System for Intelligent Environment Control. Computer Science Technical Report 1998-40, University of Massachusetts. 1999.

Horling, Bryan. A Reusable Component Architecture for Agent Construction. Computer Science Technical Report 1998-49, Number 1998-49, University of Massachusetts. 1998.

Horling, Bryan, and Lesser, Victor. A Reusable Component Architecture for Agent Construction. University of Massachusetts/Amherst CMPSCI Technical Report 1998-30, Number 1998-30, University of Massachusetts. 1998.