Browse Prior Art Database

Conversation Design Pattern

IP.com Disclosure Number: IPCOM000118895D
Original Publication Date: 1997-Sep-01
Included in the Prior Art Database: 2005-Apr-01
Document File: 6 page(s) / 145K

Publishing Venue

IBM

Related People

Furusawa, O: AUTHOR [+3]

Abstract

Disclosed is a new software design pattern named "Conversation". This design pattern will be used in a procedural language (such as C++, Java) to implement a conversation mechanism among software agents. Like other design patterns, by using this "Conversation" pattern, software developers can save time at many occasions in software development.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 45% of the total text.

Conversation Design Pattern

      Disclosed is a new software design pattern named
"Conversation".  This design pattern will be used in a procedural
language (such as C++, Java) to implement a conversation mechanism
among software agents.  Like other design patterns, by using this
"Conversation" pattern, software developers can save time at many
occasions in software development.

An act of conversation of human beings consists of the following
distinct actions:
  1.  A speaker prepares the content of speech to convey his/her
       intention to a listener.
  2.  The speaker starts to speak.
  3.  The listener listens to the speech, understands context
       of the speech.
  4.  Imagines the background based on his/her own experience.
  5.  And understands the content of the speech.
  6.  As a result, takes some action.

This was realized in a software agent system.

If described in the order of usual design pattern, it will be like
this:

Pattern Name:
  Conversation

Classification:
  Behavioral

Intent:

      Define conversation system to realize a conversation among
software agents through an agent communication language, such as
Knowledge Query and Manipulation Language (*).

Motivation:

      By making a conversation among software agents be a pattern,
develop a reusable design to process a communication language that is
more intelligent than a primitive message passing, such as window
messaging used in the current gui-based operating systems.

Structure:

         Fig. 1  The flow of acl message that is being sent.

Participants:

The design pattern "Conversation" includes the following components:
  (0) Agent: This is the application to use this Conversation
       System(13).
  (1) Agent Communication Language Manager:  This component has
       public interfaces to Conversation System(13).  It has
       sendMessage(ACL msg) and handleMessage(ACL msg),
       sendMessage(ACL msg) is used to send an acl message
       to a listener that is described in the acl message
       itself.  handleMessage(ACL msg) is used to handle an
       incoming message from network.
  (2) Conversation Thread Controller: This component controls the
       multiple number of ConversationThreads(11) according to
       :reply-with and :in-reply-to keywords that are used to keep
       the order of the message in a sequence of a conversation.
  (3) Message Logging Component:  This is used to log a sequence
       of acl messages in a conversation.  This is referred to by
       Conversation Policy check Component(6) to validate the
       sequence of the conversation.
  (4) Identifier generator: This generates IDs that are filled
       into a field in an acl message.
  (5) Conversation Policy check Component Loader: This loads
       a Conversation Policy check Component according to the
       message type i...