19-03-2011, 11:06 AM
PRESENTED BY:
Niranjan Suri
00-12-05.ppt (Size: 702.5 KB / Downloads: 53)
Definition of Software Agents
Computer program
Autonomous behavior
Represents some entity
Has authority (delegation)
Reacts and learns about environment
Communicates using high-level Agent Communication Languages (ACLs)
Mobile Agents
Definition
– Software agents
– Move from one computer to another
User-directed or autonomous
Characterizing Mobility
Three capabilities
– Mobile code
– Mobile computation
– Mobile state
Various combinations are possible
Mobile Code
Allows executable code to be moved to a new host
May use the push or pull model
– Pull: Applets
– Push: Remote Installation
Mobile agents use push
– Sometimes, an agent push may result in a code pull
Code may be binary (intermediate or native) or source
Advantages:
– Dynamically change capabilities
Download new code to add / change / update capabilities of platform
Remove code when no longer needed
Problems:
– Security concerns due to untrusted / unchecked code
Code could be malicious, buggy, and/or tampered
Mobile Computation
Evolution of Remote Computation
– RPC, RSH, RMI, Servlets, Stored Procedures, CORBA
Allows one system to run a computation on another system
Utilize resources on remote system
– CPU, memory
Access resources on remote system
– Files, databases, etc.
Mobile State
Evolution of State Capture
– Checkpointing
Allows execution state of a process to be captured and moved
State may be machine specific or machine independent
May contain
– State of single or multiple threads
– Code
Strong Mobility
Move execution state with agent
Why is it important?
– Computationally equivalent to weak mobility
– However, simpler, more natural abstraction
– Therefore, easier to write mobile agents
More importantly –
mobile state allows
forced mobility
Niranjan Suri
00-12-05.ppt (Size: 702.5 KB / Downloads: 53)
Definition of Software Agents
Computer program
Autonomous behavior
Represents some entity
Has authority (delegation)
Reacts and learns about environment
Communicates using high-level Agent Communication Languages (ACLs)
Mobile Agents
Definition
– Software agents
– Move from one computer to another
User-directed or autonomous
Characterizing Mobility
Three capabilities
– Mobile code
– Mobile computation
– Mobile state
Various combinations are possible
Mobile Code
Allows executable code to be moved to a new host
May use the push or pull model
– Pull: Applets
– Push: Remote Installation
Mobile agents use push
– Sometimes, an agent push may result in a code pull
Code may be binary (intermediate or native) or source
Advantages:
– Dynamically change capabilities
Download new code to add / change / update capabilities of platform
Remove code when no longer needed
Problems:
– Security concerns due to untrusted / unchecked code
Code could be malicious, buggy, and/or tampered
Mobile Computation
Evolution of Remote Computation
– RPC, RSH, RMI, Servlets, Stored Procedures, CORBA
Allows one system to run a computation on another system
Utilize resources on remote system
– CPU, memory
Access resources on remote system
– Files, databases, etc.
Mobile State
Evolution of State Capture
– Checkpointing
Allows execution state of a process to be captured and moved
State may be machine specific or machine independent
May contain
– State of single or multiple threads
– Code
Strong Mobility
Move execution state with agent
Why is it important?
– Computationally equivalent to weak mobility
– However, simpler, more natural abstraction
– Therefore, easier to write mobile agents
More importantly –
mobile state allows
forced mobility