Message Transport Model 2

Model 2 describes a TCP-like exchange of KQML-like messages. This model is derived from three primary sources of information. This model primarily attempts to follow the CAETI Architecture Team's draft [CAT, 96a]. However, where the three sources of information are inconsistent, consistency is maintained with [Bellman, 96a] and [Harbison, 96b]. (Thus, Model 2 more closely resembles Model 1 [Good, 96b] which was derived from just those two documents.) Model 2 also contains some recommended deviations from [CAT, 96a]. These deviations make the transport aspects of CMA more closely resemble TCP transmission than what is described in [CAT, 96a]. The rationale for this deviation is i) to make the message transmission part of the CMA more strongly resemble a well established data transmission protocol (TCP), and ii) to make a stronger separation of the concerns of message transmission and message content.

This section gives an English description of Model 2. It is intended to be simply a precise description of the CMA. The rationale for deriving this model from the source documents is given in the Derivation section, and the mathematical statement of the model is given in Mathematics section. The Issues Raised section summarized the various issues raised by this derivation and mathematical formulation.

CMA Purpose.

The purpose of the CMA is to enable CAETI applications to exchange messages.

Set of Processes.

The CAETI system is of a set of interacting processes. CAETI applications are processes.

Process Interaction.

CAETI processes are required to interact only by exchanging CMA messages.

TCP-Like Message Transport.

CAETI processes are required to exchange CMA messages only over connections that can be supported by TCP/IP. This does not rule out other means of interprocess communication.

Interprocess Connections.

A connection is a logical communication path that is identified by a pair of CAETI addresses.

CAETI Addresses.

There is a CAETI address space that identifies the end points of connections. Every element of the address space is unique.

Message Elements.

Every CMA message is composed of a sequence of ASCII characters. Messages are of variable length and potentially large.

KQML Message Syntax.

Every CMA message has the following syntax:
 <performative> ::= (<word> { <whitespace> :<word> <whitespace> <expression> }*)
 <expression> ::= <word> | <quotation> | <string> | (<word> { <whitespace> <expression> }*)
 <word> ::= <character><character>*
 <character> ::= <alphabetic> | <numeric> | <special>
 <special> ::= < | > | = | + | - | * | / | & | ^ | ~ | - | @ | $ | % | : | . | ! | ?
 <quotation> ::= '<expression> | `<comma-expression>
 <comma-expression> ::= <word> | <quotation> | <string> | ,<comma-expression> 
 				| (<word> { <whitespace> <comma-expression> }*)
 <string> ::= "<stringchar>*" | #<digit><digit>*"<ascii>*
 <stringchar> ::= \<ascii> | <ascii>-\-"
Note that the second form of <string> has an additional restriction: The number named by the <digit>s is how many <ascii> characters must follow. e.g. #5"abcde

Messages Types.

CAETI processes are required only to receive and respond to the following types of messages: tell, ask, do, subscribe, sorry. The type of the message is identified by the first <word> in the <performative>.

Message Parameters.

Message parameters are identified by the :<word> parts of a <performative>. Every CMA message must have both a sender and a receiver parameter, and it may contain some or all of the following parameters:

ParameterDescriptionDefaultExamples
senderwhere the message is fromnonepa.caeti.org:2010
receiverwhere the message is tononesa@dodea.edu, http://foo.net/agent
languagehow the content is encoded textMIME, KIF, TOE
ontology the name of the ontology used in the content something appropriate for the language Student Academic Record
content the encoded representation of data to be passed none "math score = 98%"
reply-with whether a reply is expected, and if so, a label for the reply nil "bob's math score"
in-reply-to the expected label none "bob's math score"

Messages may contain any additional parameters, the meaning of which should be agreed upon by both sender and receiver. Parameters may appear in any order. Refer to the KQML specification for more detailed definitions of the syntax and semantics of these parameters.

Message Addressing.

There is a mapping from the sender and receiver parameters of messages into CAETI addresses (which are the end points of connections).

Message Delivery.

The sender parameter of every CMA message maps into the CAETI address from which the message was sent. If a CMA message is delivered, it is delivered to the CAETI address that is mapped from the receiver parameter in the message. This does not require that every CMA message be delivered nor that CMA messages be delivered in the order in which they were sent.

This page is URL http://www.computationallogic.com/software/caeti/architecture/model/model.html