Mobile Agents
Agent system implements the agent paradigm What is an agent? A program that acts on behalf of a user Represents the user into the network Migrates autonomously in the network Performs computations on behalf of the user Path of the agent Predetermined Agents determine dynamically Reduce n/w use Increase asynchrony between clients & servers Add client specified functionally to servers & Introduce concurrency Agent system implements the agent paradigm
parameters RPC server client data procedure server client Results S2 REV Agent migration Mobile agents S2 S1 Agent migration Agent dispatch Agent migration S3 client
Repeated client-server interactions Bandwidth, Flexibility, Mobility Repeated client-server interactions Maintain connections over long periods Several separate requests No need for continuous connection with the use of mobile agents Resource can be freed up for other use Particularly useful in mobile computers Not connected all the time
Mobile agents RPC for controlling a device/instrument? parameters Client can maintain its own interface at the server node – a mobile agent serves as a proxy A given task can be divided into multiple tasks and distributed among mobile agents – achieve parallelism Mobile agent paradigm can be used For low level system management For middleware user-level applications RPC for controlling a device/instrument? parameters server client data Back and forth several time
Agent application Low level Middleware – user applications Network maintenance Testing and fault diagnosis Installation and software upgrade Middleware – user applications Electronic market place Active mail messages
Agent Server Agent code execution Primitive operations Migrate Communicate Access resources Application specific services
Migration Server Server State : Thread’s execution context and call stack Deactivate Capture state & transmit Receive Restore agent state Reactivate
Transfer code Agent carries all the code with it Execute on any server Agent code preinstalled on servers Does not carry code Reference to Code base A code server keeps all the code
Naming Tacking an agent Agent Agent Server
Location transparent names Location dependent Easy to implement Cumbersome to track Location transparent names Complex - encapsulation System updates location info when MA moves Global Location independent names Do not change when the entity relocates Name service maps symbolic names to the current location
Security Agent Privacy and integrity Agent and server authentication Part of the agent system may be sensitive Agent may not trust all servers Selective – servers Security breaches in the code – hard to prevent but detectable Secure communication Agent and server authentication Identity – digital signatures Authorization and access control Metering, charging and payment mechanisms
Agent programming primitives Basic agent management Agent-to-agent communication and synchronization Agent monitoring and control Fault-tolerance Security related
Coordination Client-server Message-oriented Blackboard Linda-like Blackboard + associative mechanisms Tuple spaces – access by content rather than id