Mobile Agent Systems
Mobility
Mobile Agents A Mobile Agent is a software agent that exists in a software Environment and can migrate from machine to machine in a heterogeneous network. Characteristics: –Agency –Autonomy –Intelligence –Mobility
Mobile Agents (What?)
Mobile Agent Model (How?) Agent Model Life-cycle Model Computational Model Security Model Communication Model Navigation Model
Why? Reduce the network load Overcome network latency Encapsulate protocols Execute asynchronously & autonomously Adapt dynamically Naturally heterogeneous Robust and Fault-tolerance
Challenges Security Transactional Management Communication costs Where and when to move agents? How do mobile agents collaborate? Control Structures
Jini An OO middleware for network-centric computing Enables plugging together the distributed system components into a federation. Provides users access to resources located anywhere on the network
Jini
Jini Architecture Client Service Lookup Service
Jini Process New services joining the network –A service must register at LookupService by using the Discovery and Join protocol Locating the service –Client locates the service through LookupService and get a proxy object Interacting with services –Client interacts with the service by its proxy
Example
LookupService Join LookupServvice ServiceImpl si = new ServiceImpl(); LookupDiscoveryManager mgr = new LookupDiscoveryManager(groups, null, null); JoinManager m = new JoinManager (si, null, si, mgr, null); ServiceFinder ServiceFinder sf = new ServiceFinder(Service.class); Service ser = (Service) sf.getObject();