ACAI’01 1 The KNITTER System: KQML for Erlang Juan A. Suárez Romero Amparo Alonso Betanzos Bertha Guijarro Berdiñas Laboratory for Research and Development in Artificial Intelligence Department of Computer Science, University of A Coruña, Spain
Dec 17, 2014
ACAI’01 1
The KNITTER System:KQML for Erlang
Juan A. Suárez RomeroAmparo Alonso BetanzosBertha Guijarro Berdiñas
Laboratory for Research and Development in Artificial Intelligence
Department of Computer Science, University of A Coruña, Spain
ACAI’01 2
Outline
• Introduction
• KNITTER Architecture
• Summary and Future Work
ACAI’01 3
Introduction
• To develop a MAS, we need (among others):– Implementation language: Java
• Multiplatform
– Agent communication language: KQML• Independent of implementation language
• Extensible
ACAI’01 4
Introduction
• Drawbacks– Implementation language: Java
• Inefficient on complex systems
– Agent communication language: KQML• Lack of formal specification interoperability
ACAI’01 5
Introduction
• Proposal: KNITTER– KQML New Implementation, This Time in
Erlang– Implementation language: Erlang
• Soft real time, multiplatform, concurrent, distributed, ...
– Allows interoperability with other KQML implementations
• Using interchangeable modules
ACAI’01 6
KNITTER Architecture (I)
KNITTERCONTROL
Protocol Space
Conversation Space
ConversationManager
Utilities
Agent Name Service (ANS)
ConversationManager
ConversationManager
MessageConverterMessage
ConverterMessageConverter
TransportProtocol
TransportProtocol
ACAI’01 7
KNITTER Architecture (I)
KNITTERCONTROL
Protocol Space
Conversation Space
ConversationManager
Utilities
Agent Name Service (ANS)
ConversationManager
ConversationManager
MessageConverterMessage
ConverterMessageConverter
TransportProtocol
TransportProtocol
Modules are independent
ACAI’01 8
KNITTER Architecture (I)
KNITTERCONTROL
Protocol Space
Conversation Space
ConversationManager
Utilities
Agent Name Service (ANS)
ConversationManager
ConversationManager
MessageConverterMessage
ConverterMessageConverter
TransportProtocol
TransportProtocol
Some others can be added or changed according with the needs
ACAI’01 9
KNITTER Architecture (II)Conversation Manager
KNITTERCONTROL
Protocol Space
Conversation Space
ConversationManager
Utilities
Agent Name Service (ANS)
ConversationManager
ConversationManager
MessageConverterMessage
ConverterMessageConverter
TransportProtocol
TransportProtocol
ACAI’01 10
KNITTER Architecture (II)Conversation Manager
• KQML defines messages, not how to organize it• A conversation allows for a new level of
abstraction• In KNITTER we need to create explicitly a
conversation in order to interoperate with other agent
• There are several forms to define a conversation– Petri Nets, State Automates, etc.
– We may plug-in several types of conversations
ACAI’01 11
KNITTER Architecture (III)Control Module
KNITTERCONTROL
Protocol Space
Conversation Space
ConversationManager
Utilities
Agent Name Service (ANS)
ConversationManager
ConversationManager
MessageConverterMessage
ConverterMessageConverter
TransportProtocol
TransportProtocol
ACAI’01 12
KNITTER Architecture (III)Control Module
• The core of the system
• Several functions– Enroutes the messages between conversations
and transport protocols– Creates and activates new conversations– Activates transport protocols– Manages errors
ACAI’01 13
KNITTER Architecture (IV)Transport Protocol
KNITTERCONTROL
Protocol Space
Conversation Space
ConversationManager
Utilities
Agent Name Service (ANS)
ConversationManager
ConversationManager
MessageConverterMessage
ConverterMessageConverter
TransportProtocol
TransportProtocol
ACAI’01 14
KNITTER Architecture (IV)Transport Protocol
• Defines the low-level protocol to exchange messages
• Necessary to use the same protocol in order to interoperate
• As conversation managers, it is a plug-in module
ACAI’01 15
KNITTER Architecture (V)Message Converter
KNITTERCONTROL
Protocol Space
Conversation Space
ConversationManager
Utilities
Agent Name Service (ANS)
ConversationManager
ConversationManager
MessageConverterMessage
ConverterMessageConverter
TransportProtocol
TransportProtocol
ACAI’01 16
KNITTER Architecture (V)Message Converter
• Defines the low-level message format to use with the transport protocols
• To disengage from transport protocols allow greater flexibility
• As transport protocols, same format is necessary in order to interoperate
ACAI’01 17
KNITTER Architecture (VI)Agent Name Service
KNITTERCONTROL
Protocol Space
Conversation Space
ConversationManager
Utilities
Agent Name Service (ANS)
ConversationManager
ConversationManager
MessageConverterMessage
ConverterMessageConverter
TransportProtocol
TransportProtocol
ACAI’01 18
KNITTER Architecture (VI)Agent Name Service
• KQML assigns symbolic names to agents• We need a mapping between this names and
the real information– In which host is agent?– In which port?– Which protocol uses?
• There are several forms to manage this mapping: files, KNS, LDAP, …– We can change the ANS for a more suitable one
ACAI’01 19
KNITTER Architecture (VII)Utilities
KNITTERCONTROL
Protocol Space
Conversation Space
ConversationManager
Utilities
Agent Name Service (ANS)
ConversationManager
ConversationManager
MessageConverterMessage
ConverterMessageConverter
TransportProtocol
TransportProtocol
ACAI’01 20
KNITTER Architecture (VII)Utilities
• Several services to users– For example, offers functions to simply manage
the messages
ACAI’01 21
Summary and Future Work
• We have presented the KNITTER system– Allows the construction of KQML-based agents in
Erlang, a language with interesting features to develop complex multi-agent systems
– Allows the interoperation with other KQML implementations
• KNITTER is still a work in progress– Transport protocols, messages converters, ANS and
conversation managers will be developed to interoperate with other implementations (Jackal)