The KNITTER System: KQML for Erlang

521 views

Published on

KQML New Implementation, This Time in Erlang.

Presentation at ACAI 2001.

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
521
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Esto es el sumario
  • The KNITTER System: KQML for Erlang

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

    ×