3.1.1 Abstract Data Model

This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with the behavior that is described in this document.

Note that the abstract data model can be implemented in a variety of ways. This protocol does not prescribe or advocate any specific implementation technique.

A participant MUST maintain all the data elements as specified in [MS-CMP] section 3.1.1.

Participants MUST use [MS-CMP] connections as a transport protocol for sending messages. Section 2.1 defines the mechanisms by which this protocol initializes and makes use of the [MS-CMP].

A participant MUST extend the definition of a connection object, as specified in [MS-CMP], section 3.1.1.1, to include the following data elements:

  • State: A state enumeration that represents the current state of the connection.

A State enumeration MUST contain a set of values that represent specific states in a logical state machine. For a connection type, these values represent the different states to which the connection's logical state machine is set during the lifetime of the connection.

When a participant initiates or accepts a connection, the State field of the connection MUST be set initially to the Idle state. When the participant acting as an initiator signals the Disconnect Connection event the connection state MUST be set to Ended. When a participant is acting as an acceptor, the connection state is set to Ended as part of the Connection Disconnected event processing as specified in section 3.1.8.2.

A participant MUST support both initiating and accepting multiple concurrent connections of any type inside the same [MS-DTCO] session or different [MS-DTCO] sessions, as specified in [MS-CMPO]. Consequently, a participant MUST support the existence of multiple instances of a single connection of the same type. A participant MUST also support initiating multiple concurrent sessions to a number of different endpoints.

A participant MUST maintain the following data elements: