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.

Session: An entity which gives context to operations done against a workbook. A session (2) is associated with a workbook state, which can be modified by state changing operations.

State Identifier: Each session has a counter which represents its state.

Request: An entity which represents a running request on the protocol server.

Instance Identifier: A unique identifier for the protocol server. Used to identify each instance of the protocol server in farm installations.

Asynchronous Operations: An operation on the protocol server which begins when a request is received, in which the protocol server returns a response before the operation is complete. The protocol client–protocol server communication is defined as follows:

  1. The protocol client issues an initiating request against the server, specifying an estimated response timeout.

  2. The protocol server begins a normal operation.

  3. If the operation has finished before the estimated response timeout, the protocol server returns a response to the protocol client, as expected for the specific operation.

  4. If the operation has not finished before the estimated response timeout, the protocol server returns a response which contains a unique request identifier to the protocol client.

  5. The protocol client then queries the protocol server about the completion of the operation by issuing the same operation that was issued in the initiating request, including the unique request identifier which was returned by the protocol server on the response to the initiating request.

  6. If the operation is still incomplete, go back to step 4.

  7. If the operation is complete, the protocol server returns a response to the protocol client, as expected for the specific operation.