jackal for practitioners r. scott cost cadip joint symposium september 9-10, 1999 c i i m p l e x...
TRANSCRIPT
Jackal for Practitioners
R. Scott Cost
CADIP Joint Symposium
September 9-10, 1999
C I I M P L E X
Jackal and related technologies developed by
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 2
Overview• Jackal is a Java-based communications infrastructure
for multi-agent systems that supports the abstract specification of agent behavior through high-level protocols.
• Jackal supports the missions of CADIP and UMBC’s LAIT by facilitating the development of distributed, heterogeneous systems of clients, servers and middle-ware. Jackal allows these components to interact in a structured way through high-level agent communication languages.
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 3
Outline
Jackal– Architecture
– Components
– Samples
– Highlights
– Field Trip
– KNS
– Application domains
• Conversations– Colored Petri nets
– Examples of use
– CPN-based MAS
• Lessons Learned• Future work• Publications
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 4
Jackal
A java communications infrastructure:• Presents a simple yet powerful API.• Situates messages within conversations. • Flexible, blackboard interface to messages.• Easily integrated into existing/legacy code.• Plug n’ play communication protocols.• Implements the proposed KNS specification.• 100% pure java.
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 5
Jackal Architecture
• All messages routed through conversations and made available through distributor.
• Routing component implements KNS.
• Plug-and-play protocol handlers for transport.
• Comprehensive API.
DistributionComponent
ConversationComponent
API
Agent Components/Threads
Agent
Jackal TransportComponent
Cache
RoutingComponent
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 6
Jackal: Conversation Management
• All messages, inbound and outbound, are first processed in jackal’s ‘conversation space’.
• Conversations managed by multiple independent threads.
• Context is maintained in local store.
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 7
Jackal: Message Distribution
• Distributor provides flexible interface between conversations and agent.
• Requests may bind one or multiple messages.
• Message may be specified by reference, form or association.
• Supports blocking and nonblocking queries.
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 8
Sample Agentpackage Agents.Demo;import java.lang.*;import J3.*;
class broker extends Thread { // Main Broker agent class Intercom intercom;
public static void main (String[] argv) { new broker(); }
broker() { start(); } // Broker constructor
public void run() { intercom = new Intercom("broker", // Get Jackal instance "ftp://cs.umbc.edu/common.kqmlrc"); intercom.stderr("Agent broker started."); // Start services BrokerServ brokerServ = new BrokerServ(intercom); AdvertServ advertServ = new AdvertServ(intercom); }
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 9
Sample Configuration File(config (debug (print (console true))) // enable Jackal console (runtime (path (bypass_conversations false) // bypass conversation space (bypass_distributor false)) // bypass distributor (network (protocols // transport modules to be loaded (_1 (name "J3.TcpipService") // standard kqml tcpip (param (config (preferred_port "5500")))) (preferred_protocol tcpip) // default transport module (vmd_enabled false) // allow shared memory message passing (preferred_subdomain ans) // default ANS (agents // table of known hosts (_1 (name ans) (protocol tcpip2) (address "freckles.cs.umbc.edu:5501")))) (rom_enabled true) // enable internal object reuse (ans_enabled true) // enable agent naming services (conversations // conversations to be loaded at startup ”ftp://jackal.cs.umbc.edu/conversations/c.kqml-ask-one” "ftp://jackal.cs.umbc.edu/conversations/c.kqml-register”)))
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 10
Jackal-based Agent
• Agent implemented as (collection of) thread(s) which communicate via the distributor.
• Control jackal instance through API; J3.Intercom class.
JackalIntercom Distributor
Thread
AgentThread
ThreadThread
Transport InterfaceGlobal
Resources
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 11
Jackal Highlights Conversation space/distributor Intelligent object handling
– Items handled in flat or object form Delivery algorithm
– KNS-compliant no-fault message delivery Address cache
– Multi-tiered, concurrent access, fetch-on-miss User-defined transport modules
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 12
Jackal Highlights (2) Onboard ANS
– Complete KNS naming service Jif content language
– Powerful, integrated, Kif-like language Object/thread reuse
– Reduces garbage collection overhead Flexible resource naming
– All external resources identified by URLs
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 13
There’s No Place Like Home…
PressPress
An excursion into the Jackal distribution and API documentation.
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 14
Development Effort
SynchronizationDistributionConnection MgmtOther
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 15
KNS Naming and Addressing
• An agent naming and addressing scheme which supports persistent, distributed identity.– Names are DNS-like, incorporating URLs.– Hierarchical scheme, supporting multiple names
per agent/agents per name (virtual domain).– Agent identity is associated with the set of current
names/domain memberships.– Constant time solution for no-fault agent location.
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 16
Application Domains
• Manufacturing integration (CIIMPLEX)– Supply chain exception event monitoring
• Electronic commerce (EECOMS)– Automated negotiation
• Information retrieval (CADIP)– IR among distributed, heterogeneous systems
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 17
Conversations
• Allow more intuitive and convenient method for handling messages in context.
• Through conversation composition, scale to varying levels of granularity.
• Provide conversation management independent of agent implementation.
• Facilitate communication through conversation sharing.
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 18
Underlying Formal Models
• The benefits of modeling in formal systems include interoperability, reuse and verification
• Specifications are:– Concise, unambiguous, verifiable– Potentially executable
• We are investigating the use of colored Petri nets as a model for conversation specifications
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 19
Colored Petri Nets
• Benefits of modeling in a formal system.• CPNs are a relatively simple formalism.• CPNs have an intuitive graphical
representation.• CPNs support the modeling of concurrency,
essential in sophisticated agent interaction.• Petri nets are a well understood formalism,
with many tools for design and analysis.
CPN-Guy
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 20
CIIMPLEX Scenario in CPN
AskOne RecommendOne
SubscribeOneAdvertise
Register
NIC
ANS
Monitor
SCA
BrokerPRA
Gateway
Agents
Components
Conversations
NetworkNetwork
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 21
Design/CPN and PRA
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 22
Notes on CIIMPLEX Model
• 5 conversation policies, 6 agents
• 18 pages/40 page instances
• 154/281 places, 65/131 transitions
• 54 messages total
• Executes in 373 transition firings
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 23
Results
• We have developed Jackal, a framework/tool for building software agents organized around conversation policies, and have tested this approach against a number of real world scenarios.
• Additionally, we are currently developing a methodology for using CPNs to create concise, executable specifications for defining cps that drive agents.
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 24
Lessons Learned
• Size does matter.
• Too many threads spoil the cloth.
• Good synchronization is hard to find.
• Multiple views – good, translation bad.
• Wash your dirty laundry at home.
• Rose colored glasses do improve the view.
• Users hate choices.
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 25
Conclusions
• Jackal has proven to be a useful too in developing multi-agent systems for various problem domains.
• In order to make Jackal more useful to the community, it must be made to work with other communication languages and more advanced protocol specification systems.
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 26
Future Work
• Incorporation of certificate-based encryption/authentication
• JINI resource discovery mechanisms
• Extension to FIPA/multiple languages
• Support for advanced protocol specifications, such as Protolingua
• Multi-user Jackal
September 9-10, 1999 R. Scott Cost - CADIP Joint Symposium 27
Relevant Publications• Peng et al., An agent based approach for manufacturing integration, IJAAI, 1999.
• Cost et al., An agent-based infrastructure for enterprise integration, ASA, 1999.
• Cost et al., Using colored Petri nets for conversation modeling, IJCAI ACL wk., 1999.
• Peng et al., An agent system for application initialization in an integrated manufacturing environment, SCI/ISAS, 1999.
• Cost et al., Modeling agent conversations with colored Petri nets, AA wk., 1999.
• Cost et al., Agent development with jackal, AA abstract, 1999.
• Chen et al., A negotiation-based multi-agent system for supply chain management, AA wk., 1999.
• Cost et al., Jackal: A java-based tool for agent development, AAAI wk., 1998.
• Cost et al., A naming and addressing protocol for multi-agent systems, FIPA CFP, 1999.