Mobile Agents in Mobile Computing

In Mobile Computing, Mobile Agents are the composition of computer software and data that can autonomously move from one computer to another computer and continue its execution on the destination computer.

In other words, you can say that An Mobile Agent is an autonomous program that is capable of moving from host to host in a network and interact with resources and other agents. In this process, the chance of data loss is scarce because the state of the running program is saved and then transported to the new host. It allows the program to continue execution from where it left off before migration. The most significant advantage of mobile agents is the possibility of moving complex processing functions to the location where you have enormous amounts of data and that have to be processed.

Mobile Agents are also called as transportable agents. They are classified into two types:

  • Mobile Agents with pre-defined path: They have a static migration path.
  • Mobile Agents with undefined path i.e., Roamer: They have dynamic migration paths. The mobile agents choose their path according to the present network condition.

Features of Mobile Agents

The mobile agents are autonomous with intelligence, social ability, learning, and the most important feature is their mobility. They are independent in nature, self-driven and do not require a corresponding node for communication. They can work efficiently even after the user gets disconnected from the network.

Intelligence

Mobile Agents are capable of learning and searching for knowledge about their domain. That's why they are called intelligent agents because they possess a degree of domain knowledge. They can also transport their state from one environment to another without disturbing the previous holding data and be capable of performing appropriately in the new environment.

Autonomous

The Mobile Agents are Autonomous. It means the agents are not only motivated by the outside actions initiated by the users or system but also they have internal events that decided their performance and behavior. The mobile agents can also take an autonomous decision while selecting a node.

Mobility

Mobile Agents contain some degree of mobility. The agent is not limited to its home node only. They can migrate from one node to another and can carry out tasks along with them. This feature distributes the processing and balancing of the load. Another benefit of this capability is that when the user goes offline, the agents will still keep functioning.

Communicative

Mobile Agents can communicate effectively with other agents, users and systems. The mobile agents use a communication language for inter-agent communication.

Life Cycle of Mobile Agents

The life cycle of mobile agents ensures the following conditions:

  • They can adapt to the environment. For example, either home or foreign environment.
  • They are capable of switching among the positions of one node to another.
  • They are autonomous and focused on the final output.
Mobile Agents in Mobile Computing

Advantages of Mobile Agents

The following are some advantages of mobile agents over conventional agents:

  • Mobile Agents are autonomous and self-driven in nature.
  • They are maintenance-friendly or easily maintainable.
  • They are Fault-tolerant. It means they are able to operate without an active connection between client and server.
  • They reduce the compilation time.
  • They provide less delay in the network.
  • They provide fewer loads on the network.
  • They facilitate parallel processing. It means they can be asynchronously executed on multiple heterogeneous network hosts.
  • They provide dynamic adaptation in which their actions are dependent on the state of the host environment.

Disadvantages of Mobile Agents

The following are some disadvantages of mobile agents:

  • The most significant disadvantage of mobile agents is their security. They are less secured

Applications of Mobile Agents

Mobile agents are used in the following applications:

  • Mobile Agents are applied in a wide range of domains such as E-commerce, traffic control, network management, robotics, data-intensive applications etc.
  • They are also used in grid computing, parallel computing, distributed computing and mobile computing etc.