the knitter system: kqml for erlang

21
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

Upload: juan-a-suarez-romero

Post on 17-Dec-2014

316 views

Category:

Technology


1 download

DESCRIPTION

KQML New Implementation, This Time in Erlang. Presentation at ACAI 2001.

TRANSCRIPT

Page 1: The KNITTER System: KQML for Erlang

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

Page 2: The KNITTER System: KQML for Erlang

ACAI’01 2

Outline

• Introduction

• KNITTER Architecture

• Summary and Future Work

Page 3: The KNITTER System: KQML for Erlang

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

Page 4: The KNITTER System: KQML for Erlang

ACAI’01 4

Introduction

• Drawbacks– Implementation language: Java

• Inefficient on complex systems

– Agent communication language: KQML• Lack of formal specification interoperability

Page 5: The KNITTER System: KQML for Erlang

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

Page 6: The KNITTER System: KQML for Erlang

ACAI’01 6

KNITTER Architecture (I)

KNITTERCONTROL

Protocol Space

Conversation Space

ConversationManager

Utilities

Agent Name Service (ANS)

ConversationManager

ConversationManager

MessageConverterMessage

ConverterMessageConverter

TransportProtocol

TransportProtocol

Page 7: The KNITTER System: KQML for Erlang

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

Page 8: The KNITTER System: KQML for Erlang

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

Page 9: The KNITTER System: KQML for Erlang

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

Page 10: The KNITTER System: KQML for Erlang

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

Page 11: The KNITTER System: KQML for Erlang

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

Page 12: The KNITTER System: KQML for Erlang

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

Page 13: The KNITTER System: KQML for Erlang

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

Page 14: The KNITTER System: KQML for Erlang

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

Page 15: The KNITTER System: KQML for Erlang

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

Page 16: The KNITTER System: KQML for Erlang

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

Page 17: The KNITTER System: KQML for Erlang

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

Page 18: The KNITTER System: KQML for Erlang

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

Page 19: The KNITTER System: KQML for Erlang

ACAI’01 19

KNITTER Architecture (VII)Utilities

KNITTERCONTROL

Protocol Space

Conversation Space

ConversationManager

Utilities

Agent Name Service (ANS)

ConversationManager

ConversationManager

MessageConverterMessage

ConverterMessageConverter

TransportProtocol

TransportProtocol

Page 20: The KNITTER System: KQML for Erlang

ACAI’01 20

KNITTER Architecture (VII)Utilities

• Several services to users– For example, offers functions to simply manage

the messages

Page 21: The KNITTER System: KQML for Erlang

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)