3.2.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 so long as their external behavior is consistent with that described in this document.

An RMD MUST maintain the following data elements:

  • State: An enumeration with the following possible values:

    • INITIALIZED

    • OPENING

    • OPEN

    • TERMINATING

    • CLOSED

    • FAULTED

  • Next Sequence Number: A nonnegative integer value, this value is the sequence number for the next Application Response message.

  • Response List: A list of Response Holder objects. A Response Holder object MUST include the following data elements about a single request:

    • Request Identifier: A unique identifier used for finding a Response Holder when the higher-layer logic finishes processing of a request message.

    • State: An enumeration with the following possible values:

      • RESPONSE_UNKNOWN

      • RESPONSE_KNOWN

      • RESPONSE_ACKNOWLEDGED

    • Response Message: An Application Response message, this field is the Application Response message related to an Application Request message.

    • Request Sequence Number: The sequence number of the Application Request message related to a response message.

    • Response Sequence Number: The sequence number of a Response message.

  • Inbound Sequence Identifier: The unique URI of the sequence used for reliable transfer of messages from the RMS to the RMD.

  • Outbound Sequence Identifier: The unique URI of the sequence used for reliable transfer of messages from the RMD to the RMS.

  • WSRM Version: An enumeration with the following possible values:

    • WSRM10

    • WSRM11

    • WSRM12

The following figure shows the relationship among the RMD role states.

State diagram for the RMD role

Figure 3: State diagram for the RMD role