Agents, Mobile Agents, and DAgents - PowerPoint PPT Presentation

1 / 84
About This Presentation
Title:

Agents, Mobile Agents, and DAgents

Description:

Oz project at CMU (Joseph Bates) 9/7/1999. AFRL. 10. What is an agent? ... Rapid construction of new applications. Assemble unexpected apps in days or weeks ... – PowerPoint PPT presentation

Number of Views:372
Avg rating:3.0/5.0
Slides: 85
Provided by: hiro72
Category:

less

Transcript and Presenter's Notes

Title: Agents, Mobile Agents, and DAgents


1
Agents, Mobile Agents,and DAgents
  • David Kotz
  • Department of Computer Science
  • Dartmouth College
  • dfk_at_cs.dartmouth.edu

AFRL, Rome NY September 7, 1999
2
Acknowledgements
Collaborators
  • George Cybenko, Thayer School of Engineering
  • Bob Gray, Thayer School of Engineering
  • Daniela Rus, Department of Computer Science

Funding
DoD MURI (AFOSR contract F49620-97-1-03821)
AFRL/Rome contract F30602-98-C-0006
ONR contract N00014-95-1-1204
DARPA contract F30602-98-2-0107
3
Read more about it
DAgents and the DARPA CoABS effort
http//agent.cs.dartmouth.edu/ http//agent.cs.dar
tmouth.edu/CoABS/
This tutorial (final version)
http//agent.cs.dartmouth.edu/tutorials/
ActComm (DoD MURI)
http//actcomm.dartmouth.edu/
Other mobile-agent systems
http//www.cetus-links.org/oo_mobile_agents.html
4
Outline (I)
  • Introduction to software agents
  • What is an agent, anyway?
  • Introduction to mobile agents
  • Motivating applications
  • Reasons for mobility
  • Competing approaches
  • Representative systems
  • Java-based systems
  • Other single-language systems
  • Multiple-language systems

5
Outline (II)
  • DAgents
  • DAgents orientation
  • Example Writing a Tcl agent
  • Results and research
  • Performance
  • Research Choose when to move
  • Research Other services
  • The future of mobile agents

6
Introduction to Agents
  • Agent is an old concept in A.I.
  • Minskys book Society of Minds, 1980s
  • Kahn and Cerf Knobots at CNRS
  • An agent is a system that
  • is long-lived (persistent),
  • has goals, sensors, and effectors,
  • decides autonomously what actions to take,
  • to maximize progress toward its time-varying
    goals.

7
Research in AI community
  • Single-agent systems
  • Action selection (planning)
  • Knowledge representation and inference
  • Agent learning and adaptation
  • Multi-agent systems
  • Communication and collaboration
  • Emergent properties of group behavior

8
What is an agent?
Robots (physical agents)
9
What is an agent?
Cartoon characters (synthetic agents) For
example, the Oz project at CMU (Joseph Bates)
10
What is an agent?
  • A program (software agent), e.g.,
  • Personal assistant (mail filter, scheduling)
  • Information agent (tactical picture agent)
  • E-commerce agent (stock trader, bidder)
  • Recommendation agent (Firefly, Amazon.com)
  • A program that can
  • interact with users, applications, and agents
  • collaborate with the user
  • Software agents help with repetitive tasks

11
Is everything an agent?
  • Not all programs are agents
  • Agents are
  • customized
  • persistent
  • autonomous
  • adaptive

12
Mobile agents
13
What is a mobile agent?
Search engine
Machine A
Machine B
  • Mobile agent Agent that
  • migrates from machine to machine
  • in a heterogeneous network
  • at times of its own choosing

14
Different kinds of mobility
Files
Strong (data and control)
Remote references (system state)
Files
Weak (data only)
No remote references (no system state)
15
Different kinds of mobility
Control
Data
System
Strong Remote refs
Load- balancing
Yes
Yes
Yes
Strong No remote refs
Yes
Yes
No
DAgents
Weak Remote refs
Yes
Yes
No
Obliq
Weak No remote refs
Yes
No
No
Tacoma
16
Application Technical reports
GUI on home machine
...
1. Send agent
2. Send child agents / collect partial results
3. Return merged and filtered results
Dynamically selected proxy site
17
TR RPC vs. Mobile Agents
RPC requires Lots of roundtrip messages
Wired Network
Proxy
Machine 2
Wireless
Machine 3
Wireless
Mobile agent moves across wireless only twice
18
Dartmouth (Prime), ALPHATECH, Harvard,
Lockheed Martin, RPI, University of Illinois at
Urbana http//actcomm.dartmouth.edu
The ActComm Project 1997 DoD MURI
Volatile Network and Information Resources
Active Planning Network routing and agent
itineraries must be planned dynamically
using stochastic control.
Maps
Field Reports
Active Information standing queries, data
fusion, automatic organization
Commands
Active Hybrid Networks Wireless and
volatile networks must reconfigure and relocate
servers/proxies for robustness and efficiency
Information Requests
Weather
Active Software Tcl, Java, and Scheme mobile
agents deliver data and monitor databases
AGENTS
Mobile Users
AGENTS
19
Application ActComm
Wireless Network
Troop positions
Technical specs
Orders and memos
20
Mobile node setup
We now use Lucent WaveLAN2 cards
21
The DARPA CoABS Project
Agents
Planners
Computers
Schedulers
Users
Information sources
22
The CoABS Grid
  • A dynamic mix of resources
  • Resources come and go
  • Base infrastructure for communication and
    directory services
  • Grid-ready agents provide services
  • Brokers help to find info and services
  • Rapid construction of new applications
  • Assemble unexpected apps in days or weeks
  • Use existing components (agents)

23
Application NEO
  • Non-combatant Evacuation Operation
  • Kuwait City
  • Dynamic route planning
  • Traffic and weather monitoring
  • Helicopter scheduling

24
Reasons for Mobile Agents
25
Reason 1 Bandwidth conservation
Text documents, numerical data, etc.
Client/Proxy
Server
Dataset
Client/Proxy
Server
26
Reason 1 Bandwidth Conservation
Dataset
Dataset
Dynamically selected proxy site
Dataset
27
TR Bandwidth usage
28
Reason 2 Reduce latency
Sumatra chat server (a reflector)
1. Observe high average latency to clients
2. Move to better location
29
Reason 3 Reduce Completion Time
Efficiency
1. Send code with unique query
Low bandwidth channel
Mobile users
3. Return requested data
2. Perform multi-step queries on large,
remote, heterogeneous databases
30
TR Total completion time
31
Reason 4
Disconnected communication and operation
X
X
Before
X
X
After
32
Reason 5 Load balancing
Jobs/Load
Jobs/Load migrate in a heterogeneous network of
machines
33
Reason 6
Dynamic Deployment
34
Other techniques work ...
  • Remote Procedure Calls (RPC)
  • Stored Procedures
  • Java Applets and servlets
  • Load balancing in homogeneous networks
  • Application-specific solutions

35
but takes several techniques
That is, the research community is developing
several different approaches to deal with
problems of efficiency, robustness, adaptability
and flexibility for distributed computing
and information systems. Mobile agents are a
single technology, based on strong code mobility,
to solve many problems in a unified framework.
36
Moving along ...
  • Introduction to agents
  • Introduction to mobile agents
  • Representative systems
  • Java-based systems
  • Other single-language systems
  • Multiple-language systems

37
Representative systems
Aglets, Voyager
Java-based systems
Other single-language systems
Messengers
Multiple-language systems
Tacoma, DAgents
There are many others too many to describe today.
38
Differences and similarities
Commercial vs. Research
Strong mobility vs. Weak mobility
Imperative vs. Functional vs. Declarative
Interpreted vs. Just-in-time vs. Software
fault isolation
Stand-alone vs. Tight Web integration
OMG/FIPA standards vs. Unique protocols
39
Aglets
  • Java
  • Weak mobility
  • Event-driven programming model (dispatch,
    onDispatching, onArrival, )
  • Persistent store
  • Proxies for location transparency

40
Voyager
  • Java
  • Built on top of CORBA
  • Weak mobility
  • Persistent store
  • Federated directory service and group
    communication (multicast)

41
Why not Java?
  • Limited per-thread resource accounting (or
    enforcement)
  • No strong mobility, in standard JVM
  • Support for multiple languages?
  • Inefficient on top of Java VM

42
Messengers
  • MØ (similar to Postscript)
  • Weak mobility
  • Intended for low-level services, e.g., in the
    Messenger Operating System (MOS)
  • Bulletin boards for data exchange and service
    listings

43
Why not a single language?
Mobile agents have many applications, and no one
language is good for all applications.
44
Tacoma
  • C, Tcl/Tk, Scheme, Python, Perl (public release),
    several more internally
  • Weak mobility
  • Single, simple abstraction meet
  • Easy to add a new language
  • Less opportunity for optimization

45
Moving along ...
  • DAgents
  • DAgents orientation
  • Example Writing a Tcl agent
  • Results and research
  • Future of mobile agents

46
http//agent.cs.dartmouth.edu
Project started Spring, 1994
47
DAgents Mobility Model
Strong mobility / No remote references
searched searched 1 jump B meet with
search-engine
Agent
1. Capture agent state 2. Sign/encrypt state 3.
Send state to B
Server
Machine A
48
DAgents Architecture
VM / Interpreter
VM
Agents
Security
State Capture
Java VM
Tcl interp.
Scheme interp.
Server stubs
Server
Transport (TCP/IP)
Machine A
49
Tcl/Tk
proc processFile filename open
the file and read in contents set fd open
filename r set contents read fd
close fd split the file contents into
a list and process each line set
splitContents split contents r foreach
line splitContents ... MAIN
SCRIPT - call our only procedure set code catch
processFile agent.data errorMessage if
code puts errorMessage
50
Agent Tcl primitives (I)
Local Machine
Server
1. agent_begin
agent_begin Register with the local agent
server agent_name ltnamegt Obtain a name in the
namespace agent_end Unregister and exit
...
...
2. agent_name database
3. agent_end
1. agent_send B database 0 query
agent_send ltagentgt ltcodegt ltstringgt Send a
message to an agent agent_receive ltvarnamegt
ltvarnamegt Receive a message
2. agent_receive
Machine B
Machine A
51
Agent Tcl primitives (II)
agent_jump B
agent_jump ltmachinegt Migrate to a new machine and
continue from the point of the jump
Machine B
Machine A
agent_submit ltmachinegt -procs ltprocedure-listgt -
vars ltvariable-listgt -script ltscriptgt Create a
new (child) agent
52
Agent Tcl primitives (III)
agent_fork B
Machine A
agent_fork ltmachinegt Clone an agent (fork a child
agent)
Exact copy that continues from fork point
Machine B
53
Other features
54
Naming scheme
Location-independent addressing through the
yellow pages
55
A skeleton agent
proc child machines global agent
migrate through machines set results
foreach machine machines agent_jump
machine do task, update results
send back results and end agent_send \
agent(root) 0 results agent_end
agent_begin submit child set machines A B
agent_submit \ agent(local-server) \
-procs child \ -vars machines \ -script
child machines get results agent_receive
\ code results -blocking puts results agent_end
Child Agent
Parent Agent
56
The who agent
Home
... set results migrate through
machines foreach machine machines
agent_jump machine append results \ exec
who ltlt send back results
agent_send \ agent(root) 0 results ...
3. Send list of users
1. Submit child
WHO
WHO
Machine Z
Machine A
2. Jump
...
Child Agent
57
TR application
5. Query database 6. Return results
1. Register 2. Ask for query
tioga
3. Submit proxy agent
Hardcoded proxy and document locations
9. Display results 10. End
4. Submit search agents 7. Collect results
8. Send merged results
bald
muir
58
TR Talking to the user
agent_begin register with the agent
system puts -nonewline Enter a query gets
stdin query set proxy bald set collections
muir tioga set me agent(local) agent_submit
proxy \ submit the proxy agent
-proclist proxyAgent searchAgent \ -varlist
me query collections \ -script proxyAgent
me query collections receive the query
results agent_receive code results
-blocking puts Query results puts
results agent_end done
Front-end Agent
Note Position of some comments is invalid Tcl
syntax.
59
TR Sitting in the middle
proc proxyAgent parent query collections
global agent set numCollections llength
collections set me agent(local) foreach
machine collections submit search
agent_submit machine \ agents
-proclist searchAgent -varlist me query \
-script searchAgent me query set
results for set i 0 i lt numCollections
incr i collect results
agent_receive code partialResults -blocking
merge into results so far agent_send
parent 0 results send back results
agent_end done
Proxy Agent (submitted by the front-end agent)
Note Position of some comments is invalid Tcl
syntax.
60
TR Searching the collections
proc searchAgent parent query global
agent send the query to the database
interface agent and receive the results
agent_send agent(local-server) TR \
0 keyword-query query agent_receive code
results -blocking in a more complex
version of the TR, use the abstract of the
most relevant document as a new query,
compare the two result lists, etc. send
back the results and stop agent_send parent 0
results agent_end
Search Agent (submitted by the proxy agent)
61
TR Step by step (redux)
5. agent_send/ agent_receive 6. agent_send
1. agent_begin 2. gets stdin query
3. agent_submit proxyAgent
9. puts results 10. agent_end
4. agent_submit searchAgent 7. agent_receive
8. agent_send
62
Application e-commerce
Arbiter
VendorA
VendorB
Bank
Agent
Yellow pages
Agent
63
Moving along ...
  • DAgents
  • Results and research
  • Performance
  • Research Choose when to move
  • Research Other services
  • The future of mobile agents

64
Multiple queries 10 Mb/s Ethernet
65
Multiple queries 1 Mb/s
66
Multiple queries 0.1 Mb/s modem
67
Base performance
68
What lowers performance?
Server
Server
TCP/IP connection
Machine A
Machine B
Machine A
1. All messages through server (plus TCP/IP)
All solvable problems
2. Interpreter initialization (plus TCP/IP)
69
DAgents Hot Interpreters
Java VM
Pipes from VM / interpreters to server
Server
This optimization is already reflected in the
preceding results
70
Scaling to large platformsServal Scalable
Document Server
25-node Linux cluster Fast internal Ethernet
Any node
Routed to a random node
A
Doc Storage
Doc Index
Doc Storage
Doc Index
Client
Doc Storage
Doc Index
Documents and index are distributed
71
Scaling to small platforms
Current work Design and development of a new
Windows NT/CE mobile-agent system.
72
Market-based resource control
T

T
jump
T
jump
jump
  • Agent
  • Gets resource share proportional to ticket share
  • Optimizes utility function (parameters include
    risk tolerance, resource needs, and initial cash)
  • Goals
  • Economic incentive to accept agents
  • Resource scheduling
  • No runaway agents

73
Docking
1. Jump directly to laptop
Queue of agents waiting to leave
2. If laptop unreachable, go to dock
3. Change in network status
4. Notify dock of new location
Queue of agents waiting to go to M
This simple approach has been extended into a
more general active-networking scheme, where any
machine can act as a dock for any other.
5. Transfer waiting agents in both directions
74
Yellow pages
Brokering vs. matchmaking/yellow-page services.
?
Broker
Broker mediates all communications.
YP
?
YP locates, but then direct communication.
75
MACE
Mobile- Agent Construction Environment
76
Debugging (Tcl)
Debugger
1. Notify About to jump
3. Notify Jumped
2. Jump
77
Tracking
  • Works in same way as debugger
  • Interactively or via logs
  • Current work Merge with debugger
  • Current work Zoom in and out

78
Moving along ...
  • Results and research
  • The future of mobile agents

79
Current trends lead to mobile agents
Increased need for personalization
Server-side
Information overload
Mobile code to server or proxy
Customization
Too many unique, dispersed clients to handle
Diversified population
Proxy-based
Multiple sites to visit
Mobile Agents
Bandwidth gap
Avoid large transfers
Mobile code to client
Avoid star itinerary
Mobile users and devices
Disconnected Operation
High latency
80
Migrating to migrating code
81
Conclusion Cons
  • Security is too big a concern
  • Overhead for moving code is too high
  • Not backward compatible with Fortran, C .
  • Networks will be so fast, performance not an
    issue

82
Conclusion Pros
  • A unifying framework for making many
    applications more efficient
  • Treats data and code symmetrically
  • Multiple-language support possible
  • Supports disconnected networks in a way that
    other technologies cannot
  • Cleaner programming model

83
Read more about it (redux)
DAgents
http//agent.cs.dartmouth.edu/
This tutorial (final version)
http//agent.cs.dartmouth.edu/tutorials/
ActComm (DoD MURI)
http//actcomm.dartmouth.edu/
Other mobile-agent systems
http//www.cetus-links.org/oo_mobile_agents.html
84
Source code
Write a Comment
User Comments (0)
About PowerShow.com