Mobile agent

In computer science, a mobile agent is a composition of computer software and data which is able to migrate (move) from one computer to another autonomously and continue its execution on the destination computer.Mobile Agent, namely, is a type of software agent, with the feature of autonomy, social ability, learning, and most important, mobility.When the term mobile agent is used, it refers to a process that can transport its state from one environment to another, with its data intact, and still being able to perform appropriately in the new environment. Mobile agents decide when and where to move next, which is evolved from RPC. So how exactly does a mobile agent move? Just like a user doesn't really visit a website but only make a copy of it, a mobile agent accomplishes this move through data duplication. When a mobile agent decides to move, it saves its own state and transports this saved state to next host and resume execution from the saved state.Mobile agents are a specific form of mobile code and software agents paradigms. However, in contrast to the Remote evaluation and Code on demand paradigms, mobile agents are active in that they may choose to migrate between computers at any time during their execution. This makes them a powerful tool for implementing distributed applications in a computer network.Advantages1) Move computation to data, reducing network load.2) Asynchronous execution on multiple heterogeneous network hosts3) Dynamic adaptation - actions are dependent on the state of the host environment4) Tolerant to network faults - able to operate without an active connection between client and server5) Flexible maintenance - to change an agent's actions, only the source (rather than the computation hosts) must be updatedApplications1) Resource availability, discovery, monitoring2) Information retrieval3) Network management4) Dynamic software deployment