Title: Discovery of Infrastructure in MultiAgent Systems
1Discovery of Infrastructurein Multi-Agent Systems
- Brent K. Langley, Massimo Paolucci, Katia Sycara
- blangley, paolucci, katia _at_cs.cmu.edu
- Carnegie Mellon University, Pittsburgh, PA, USA
- Intelligent Software Agents Group _at_ The Robotics
Institute
2RETSINA Architecture
3Initial Motivations
- Challenges
- Dynamic Environment/Infrastructure Availability
- Transitory Execution Environment for Agent
Application - Undependable Infrastructure
- Systems
- Networks/Connectivity
- Services
4Even-more Motivations
- Goals
- Automatic / Self Configuring Agents and
Infrastructure - Fault Tolerance and Dynamic Reconfiguration
- Scalability in Quantity, Loading, anddispersing
into groups or over WANs
(while still allowing systems to find each
other)
5Agent Discovery Mechanisms
- Static - Preloaded or specifically initialized
- Dynamic
- Local SSDP Multicast-based Local (or limited
distance) Discovery by Service Type - Wide-Area A2A Peer-to-Peer network-based, with
Agent Community Affinity and Aggregation - Learned
- Informed Infrastructure facilitated (Look-Up
Service, Matchmakers, Brokers, UDDI) - Overheard A2A, not requested but useful
- Extracted garnered from plans or coordinated
multi-agent operations
6Local Dynamic Discovery
- Simple Service Discovery Protocol (SSDP) from the
Universal Plug-n-Play (UPnP) initiative - Multicast search requests to populate lists of
infrastructure service provider alternatives - Receive Multicast Alive Byebye messages to
automatically update discovered-provider lists. - Service-specific reactions to Discovery Events
- Register with one or more services and optionally
automatically register with newly alive systems - Auto fail-over and pruning of services lists to
maintain list of viable service providers
7SSDP Communications
Announcement of Availability
Discontinuance of Availability
Alive
MulticastwithLimited TTL
Byebye
MulticastwithLimited TTL
HTTP NOTIFY(GENA)
HTTP NOTIFY(GENA)
Search Request
MulticastwithLimited TTL
Query Contains Service Type or
wildcard for all Host/Port for response
HTTP M-Search
Search for Available Services
8They always want more
- We had reliable dynamic discovery on local
subnets - We implemented static hierarchical and mesh
connectivity between remote infrastructure
devices that lived in dispersed islands of
discovery - However, we wanted the same dynamic discovery,
self configuration self-healing in wide-area
systems
- BUT -
The multicast protocol used by SSDP is limited
by policies, systems, networks, routers, and
firewalls
9Discovery Over the Internet
- Problem How to quickly and broadly implement a
solution to allow discovery and lookup
communication between widely dispersed systems - Possible Solutions
- Build, test, rollout, and support new platform
over the wide area network / Internet - Utilize Existing Service
- Re-purpose Extend Existing Service
10Discovery Over the Internet
- Problem How to quickly and broadly implement a
solution to allow discovery and lookup
communication between widely dispersed systems - Our Solution Piggy-back on top of an existing
non-proprietary and popular (widely utilized)
communications framework that provides global
connectivity - Gnutella.
11Gnutella Connectivity
- Last November there were typically 2,000 Gnutella
Servents online at any instant - In May 2001, there are typically over 40,000
Servents online at any instant - If all Servents keeps 5 peer connections open,
and use a time-to-live of 7 when sending
messages, a single query could reach up to
109,225 other systems. - Some Servents are more beneficial to be
connected-to than others.
12Agent-to-AgentEnhancements
Categorize Task Prime Alt Local Home Cache Bad Use
d New
Confidence Querys Seen Q-Hits Seen Activity
Level Bad Packets Dup Queries Dup Msgs Dup
Pkts Repeat Pkt Type Sequential Pkts
Query Modification Min SpeedEncoded Task
Identifier - Quick Check see if worthwhile to
check - Hide from standard Gnutella
Servents Prefix Query with Task Identifier -
Absolute Check (appropriate to process) Encrypt
Query and Responses - Further Hide Query from
Gnutella - Protect conversation Task-Structu
re - Query QueryHit Packets escalated to A2A
Task Objects for Handling
13Gnutella Communications
14Evolving from P2P to A2A
- Gnutella Peer-to-Peer (P2P) networks provide
random connectivity to a large range of other
systems over a wide-area the Internet. - Agent-to-Agent (A2A) adds task identifiers to
messages which classify hosts into communities
with specific interests. - A2A prefers connectivity partners that share the
same interests. This affinity causes
congregations, or communities, of Agents in P2P
networks to be formed. - A2A attempts to maintain certain levels of
connectivity to related Agents, and to hosts that
have a higher confidence of providing needed
information (directly or through their peers) - A2A reduces random P2P connectivity, in favor of
these links with higher probability for
satisfying directed or background discovery and
lookup processes.
15Gnutella Peer-to-Peer (P2P) vsCMUs
Agent-to-Agent (A2A)
163 Basic Objects That A2A Apps Use
- A Task object identifies the A2A community that
will interact via this communication portal and
controls its related I/O. - A Question object is created when you ask a
question to the Task object or when a query comes
in from another peer. - An Answer object is an individual response (one
of possibly many) associated with the specific
Question object that it applies to.
17Agent Use of A2A Objects
- An Agent creates a Task object to converse with
similar Peers. - The Agent asks the Task a query and receives a
Question object. - Incoming replies will be stored in the
appropriate Question object. - When the Agent retrieves a reply it is given an
Answer object. - Incoming Questions are held in a limited-size
circular queue. - Agents can get new Question objects from the Task
and compose single or multi-part replies. - When the Agent is ready, it can send the reply to
the P2P network.
Agent
?
!
!
!
?
?
?
?
?
?
ANS Client Task
Match Maker Client Task
Peer Activity Client Task
A2A Management Process
Peer-to-Peer Network
18A2A Discovery
- When a Task object is created, it can be marked
as a Discoverable task. - Discoverable Tasks automatically create a
discovery Question object to periodically attempt
to discover other Agents that support the same
Task type. - Discoverable Tasks create an Auto-Answer that
watches incoming Questions to see if they are
discovery queries. If so, the Agents location
is automatically replied. - Discovery replies are maintained by the Task as a
list of known community peers, and utilized by
the A2A state management process to ensure
adequate connectivity to each peer community.
19A2A Discovery Startup Sequence
- Initial connectivity from preferences, previous
state information, or user specification - Supplement with Multicast discovery of local
hosts and utilize Internet P2P host cache servers - Follow normal P2P host discovery Ping/Pong
processing to supplement connectivity resources,
and track confidence in these systems - Further tune connectivity with A2A by
categorizing discovered local (near-by) and
home-base hosts. - Send task-specific discovery lookup
requests to P2P network to facilitate communal
connectivity
20Query Integration
- Each Gnutella Query has an Integer value a
String. The Integer represents a minimum speed
requested for downloads, and the String is the
query. - When a new Agent-to-Agent Task is created, a
String representing the Tasks Community is
specified. - This String is encoded into an Integer
representing a value greater than 10 million
bits/second. - The encoded integer is inserted into Gnutella
Queries as the minimum download speed, and the
Community Identification String is prefixed to
each of the Tasks actual Query message strings.
21Query Filtering
- Gnutella clients will ignore the A2A query since
they wont be able to provide the desired
minimum speed. - A2A clients will bypass normal Gnutella queries
since the minimum speed will typically be too
low, and not match any valid encoded Task
Identifier. - A2A clients that dont have a Task object
identified by the same encoded integer will also
bypass the message. - If A2A detects it is hosting a Task that matches
the encoded integer value, it verifies that the
Gnutella Query String actually begins with the
Tasks Community Identification String. - If so, the Task creates a Question object for the
Query and links it to the Task for processing.
22Questions and Answers
- Applications can create Auto-Answers to
automatically reply with the Agents location
upon arrival of a matching query. - Applications can check a previously created
Question object to see if it has any new Answers - Applications can block, waiting for an Answer to
a Question. - Applications can create a call-back type of
process to be automatically called when an Answer
arrives for a Question. - Applications can check to see if new Questions
have arrived. - Applications can block, waiting for a Question to
arrive. - Applications can create a call-back process to
automatically be called by a Task when a specific
Question arrives. - Catch-all Questions can see all (including
Gnutella) queries.
23Agents in a Peer-to-Peer World
A2A Community
A2A Community
A2A Community
A2A Community
Gnutella P2P Network
A2A Community
A2A Community
A2A Community
A2A Community
A2A Community
A2A Community
A2A Community
A2A Community
A2A Community
24Interactions Direct and via Peers
Other Agent Environments
Other Resources
Other Agent Services
Gnutella Network
Agent Name Services
Brokers
MatchMakers
Auctions
25Take-home Lessons
- Infrastructure Services Support Robust Agent
Activities - Discovery allows dynamic configuration and
adaptation to changing and evolving environments - Multicast-based discovery is fast and reliable,
but limited to localized networks - Wide Area Discovery implemented over a P2P
architecture (such as Gnutella) provides dynamic
reconfiguration of globally dispersed Agents and
their Infrastructure Services
26A2A Directions
- P2P resident Infrastructure services
- P2P Client Application as a platform for
Agent-based Applications - Customized auction and yard-sale agents
- Network security agents
- SETI_at_home style processor sharing
- Distributed process or application dispersal
- Personal Agent background interest coordinator
- Agent Mobility
- Scalability of agent communications
27A2A Architecture
Task
Logger Task
Match Maker Task
Agent Name Service Task
Question
Task
Ask question
Answer
A2A Connectivity Management Layer
Gnutella
Gnutella Query
Response
TCP/IP Network
28In-band/Out-of-band
- Gnutella uses two protocols
- Gnutella protocol as for p2p coordination and a
lookup service (in-band), and - HTTP protocol for file transfer (out-of-band)
- Agent Infrastructure needs to delineate
- Discovery/Service Lookup can use Gnutella
Protocol - Agent-to-Agent or Agent-to-Middle-Agent
(Infrastructure) conversations should they be
in-band, or a separate out-of-band protocol. - Guidelines for using In-band Gnutella Protocol
- Asynchronous Query/Reply format
- Short messages in queries and replies
- Quick replies to queries can be generated
- Desire fewer maintained connections to multiple
services
29Out-of-Band Protocol Drivers
- Use an Out-of-Band Protocol if Application
- Requires synchronous communications
- Requires transactions and state
- Requires strict message ordering
- Has Short time-outs for reply reception
- Takes Long time to process request and form reply
- Might have packets intentionally discarded by
other Gnutella clients for protocol violations - Require private conversations
30Agent Name Service Clients on A2A/P2P
- A Discoverable Task to automatically form
communities with other retsinaAgentNameService
peers. - register agent-name commands create Auto-Answers
for future lookup agent-name and listall queries - unregister agent-name commands remove local
Auto-Answers of appropriate lookup and listall
queries - Agents can lookup other Agents without the use of
an ANS server. - Agents can cache previously found lookup
information and facilitate lookups by other peers.
31Agent Name Service Servers
- Basic Implementation as ANS Clients with with
large caches, that are not only populated by
local lookup requests, but also by monitoring
other ANS Client register messages. - Secure Implementation might include registration
and/or lookup security screening, and
unregistration verification. - Conversations could also be encrypted.
32A2A Middle Agentsfor Gnutella
- Agents/Middle-Agents monitor all Gnutella Queries
replies that pass on the peer-to-peer network - Middle-Agents can model, Traffic Loads, Consumers
(Requestors), Producers (Repliers), Quality of
Peers - If a Middle-Agent sees a request for a service
provider, it could learn or broker that service - A Middle-Agent that sees a request to implement a
plan, could break it into sub-plans and
redistribute to peers - If a Middle-Agent is going to respond to a bid,
but observes other related bid opportunities, it
can provide a combined bid option (a user asks an
agent specifically for a bid on auto-insurance,
but agent observes that other bids have been
asked from the same companys home, health, life
insurance agents a possible lower price for a
combined policy could be proposed.)
33Middle-Agents on Gnutella
- Middle-Agents can service more clients with fewer
Sockets - When a Middle-Agents connectivity limits are
reached, new clients could be connected to
current peers and still access the service. - Clients could overhear answer and avoid
repeated asking of popular/common questions - Middle-Agents are typically online longer and
less transient than normal Agents. Longer
connectivity to the p2p network allows a peer to
find more, and better categorize other peers (and
communities) to increase their level and quality
of connectivity. - Many Middle-Agents work in concert with other
types of Middle-Agents to facilitate Agent
activities. An ANS that gets a MatchMaker
Discovery Query may not be able to respond
directly, but in relaying the message to the
ANSs peers, there is a high probability that one
of the Agents talking to the ANS is also talking
to a MatchMaker.