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 that described in this document.

An RMS MUST maintain the following data elements:

  • State: An enumeration with the following possible values:

    • INITIALIZED

    • OPENING

    • OPEN

    • CLOSING_SEQUENCES_PENDING

    • CLOSING_SEQUENCES_COMPLETE

    • TERMINATING

    • CLOSED

    • FAULTED

  • Next Sequence Number: A nonnegative integer value. This value is the sequence number for the next Application Request message.

  • Maximum Replay Count: A nonnegative integer value: the maximum number of times a given request can be replayed.

  • Transmission Timeout: A nonnegative time span. This value is the amount of time to wait for response messages.

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

    • Request Identifier: A unique identifier used for finding a Request Holder when a protocol request finishes.

    • Request Message: An Application Request message.

    • Replay Count: A nonnegative integer value, the number of times a request message has been replayed.

  • Response Sequence Number List: A list of nonnegative integer values that contains the sequence numbers of all Application Response messages received.

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

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

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

    • WSRM10

    • WSRM11

    • WSRM12

  • The following figure shows the relationship among the RMS role states.

State diagram for the RMS role

Figure 2: State diagram for the RMS role