AJA is an acronym for Adaptable Java Agents.

AJA tool consists of two programming languages:
  • A higher-level language used for the description of the main agent parts. This language is called HADL, which is the acronym for Higher Agent Definition Language.
  • A lower-level language used for the programming of the agent parts defined in HADL. This language is called Java+. It is actually Java enriched with the constructs for accessing higher-level agent parts defined in HADL.
AJA agents have the following features:
  • Agent is static (not mobile).
  • Agent communicates with other agents using a construct called negotiation. The messages sent can be encrypted or digitally signed in order to ensure the security of the system.
  • Agent possesses adaptable parameters and neural nets that adapt themselves when the environment changes.
  • Agent has reflexes, which are the reactive component of the agent architecture.
  • Agent can perform its actions parallel. Action executions are synchronized.
  • Agent is accessible via Internet, because it acts as a simple HTTP server. People can use this way to communicate with an agent.
  • Agent has Java Swing based graphical user interface. Its owner uses this interface to communicate with the agent.
  • Because of the fact that Java+ language extends Java, it is possible to use all useful Java features in the implementation of AJA agents (e.g. JDBC for the database access).

The PhD thesis describing AJA and ideas behind AJA is available in download section.