System Architecture
Mobile-C is an IEEE FIPA compliant agent platform for supporting mobile agents written in C/C++. The system architecture of Mobile-C is a peer-to-peer network architecture as shown below.

The system consists of multiple agents and agencies. An agent is a computational process that implements the autonomous, communicating functionality of an application. There are two types of agents in the system: stationary agents (SA) and mobile agents (MA). Agencies are the major building blocks of the system and are the actual runtime environment for stationary and mobile agents. They also serve as "home bases" for locating and messaging mobile and detached agents, collecting knowledge about the group of agents, and providing an environment in which a mobile agent executes. The core of the agency is the agent platform, which provides local service for agents and proxies to access remote agencies. An agent platform represents the minimal functionality required by an agency in order to support the execution of agents. The main functionalities of the agent platform can be summarized as follows:
  • Agent Management System (AMS): The AMS manages the life cycle of the agents. It controls creation, registration, retirement, migration, and persistence of agents. The AMS maintains a directory of Agent Identifiers (AID), which contains transport addresses (amongst other things) for registered agents. Each agent must register with an AMS in order to get a valid AID.
  • Agent Communication Channel (ACC): The ACC routes messages between local and remote entities, realizing messages using an agent communication language (ACL). This service is responsible for all remote interactions that take place between the distributed hosts, such as location-transparent inter-agent communication and agent transport. All interactions can be performed via ACL message exchange. The communication service allows interactions between agents, agencies, and non-agent-based entities.
  • Agent Security Manager (ASM): The ASM provides a security process that is composed of two parts (a) strong authentication process of agencies before (b) secure migration of mobile agents or ACL messages. This security process fulfils confidentiality, Integrity and Authentication requirements. It helps in avoiding evasdropping, masquerading and replay back attacks.
  • Directory Facilitator (DF): The DF serves yellow page services. Agents in the system can register their services with DF to provide to the community. They can also look up required services with DF.
  • Agent Execution Engine (AEE): The AEE serves as the workhorse for the mobile agents. Mobile agents must reside inside an engine to execute. The AEE has to be platform independent in order to support a mobile agent executing in a heterogeneous network.