Normative agents

From the functional point of view, AFECS provides the basic services, necessary for operating and managing distributed, agent based control environment. AFECS normative agents allow each control agent to dynamically discover other agents, and communicate with them according to the publish-subscribe paradigm. From AFECS point of view, each agent is identified by a unique name and provides a set of services or represents specific real world hardware/software components. It can register and modify its services and/or search for agents providing required services. Normative agents and the adopted communication model make the agents of the platform loosely-coupled, i.e. ability to communicate between entities that do not know anything about each other. Agents are identified by a name, and there is not temporal dependency between communicating agents, i.e. tt is not necessary for the publisher and subscriber to be available at the same time. The subscriber agent/s  may not even exist on the platform or could not be directly known by the sender that can specify a property as a destination (for e.g. "reset all components in the control session=abc"). 
Normative agents of the AFECS platform are designed to administer and maintain described environment.

APlatform & APlatformRegistrar

Aplatform agent is responsible for agent creation, recovery, migration, and retirement processes. It is also responsible to repair ant failed agent or container, thus achieving platform stability and fault tolerance.Aplatform agent supports two different agent creation modes. Agents can be created by the request of the AControlDesigner agent or by physical client requesting representation on the platform. In both cases "stem cell" agent will be started on the platform, waiting to differentiated to become a physical client representing agent.
APlatform agent holds the reference to the AControlDesigner instance, responsible for agent registration and discovery processes. AControlDesigner stores agent specific information, including name, description, type, provided services, processes, etc. For  full list agent specific data please look the AFECS javadoc. A subset of the agent data, including representing client network information, is stored on the disk ($AFECS_HOME/db/clientRegistration.xml file) for agent-client communication fast recovery.
As was mentioned AFECS allows multiple parallel control systems concurrently running on the platform. Control sessionand control runtype is introduced to group components and agents of the specific control in so called control domains and sub-domains.  Session and runtype specific information will also be stored on the disk accessible by the front-end container of the platform.

AControlDesigner

The normative configuration (AControlDesigner) agent is the interface between a specific control system implementation and the framework. It enables the integration of non-agent software/hardware components into an agent system. This normative agent will coordinate the creation and deployment of each representative agent (A), as well as provide them with knowledge in the form of an ontology. An ontology consists of instantiated classes generated from physical component state machine descriptions, which, in turn, are written using the control oriented ontology language (COOL). Agents in the platform can then communicate with each other by exchanging ontology objects and have each of them invoke actions on underlying hardware or software components. AFECS allows dynamic reconfiguration of the control environment in real time by auto-generating or specializing specific control agents whenever new control components are added, or control relationships are changed.  

AContainer

AContainer agent is The APlatform agent representative on the specific container of the AFECS platform. As you recall, agents on the AFECS platform can be grouped in physical and/or logical domains. AContainer agent is the manager of the physical domain, where agents share the same java virtual machine.AContainer manages all agents concurrently running on the specific container. The name of this normative agent is defined as node_admin.