This page complements the Sedna XML Database v3.0 client/server session protocol described in the PDF file. The protocol is described as a sequence of message exchanges between the client and server. The diagrams capture the state of the client, but do not show the state of the server since the server can be used by multiple clients at once.
Table of Contents
The client state is defined by the three variables CX, DX, and TX:
Messages sent by the client are shown in blue. Messages sent by the server are shown red. All ErrorResponse messages are shown with a dashed red line.
To begin a session, a client creates a connection to the server and sends the Start-Up message. The server launches a new process that is associated with the session. If launching a new process causes some errors, the server sends the se_ErrorResponse message, if not, it sends the se_SendSessionParameters message to the client. Then client sends the session parameters in the se_SessionParameters message. This message includes the particular protocol version to be used, the name of the user and of the database the user wants to connect to. The server then uses this information to determine whether the connection is acceptable. If not, it sends the error message (se_ErrorResponse). If the connection is acceptable the server then sends an authentication request message, to which the client must reply with an appropriate authentication response message. In principle the authentication request/response cycle could require multiple iterations, but the present authentication method uses exactly one request (se_SendAuthParameters) and response (se_AuthenticationParameters). The authentication cycle ends with the server either rejecting the connection attempt (se_AuthenticationFailed), or sending se_AuthenticationOk.
The possible instructions from the client in this phase are:
The possible instructions from the server in this phase are:
TODO: message flow description
Since version 3.0 of the Sedna Client-Server protocol it is possible to set session options. There are a number of session options. Session options can be set at any moment during the session except the period when session is in a query evaluation phase (executing or passing result data to a client). To set one or more options client must send se_SetSessionOptions message. If options were set successfully server sends se_SetSessionOptionsOk message to the client. Otherwise server sends se_ErrorResponse to the client. To reset options to their default values client must send se_ResetSessionOptions. If options were reset successfully server sends se_ResetSessionOptionsOk message to the client. Otherwise server sends se_ErrorResponse to the client.
The possible instructions from client are:
The possible instructions from the server are:
TODO: message flow description
TODO: message flow description
NOTE: work-in-progress
This diagram is the composition of the above diagrams into a single master diagram. ErrorResponse messages have been omitted in favor of clarity. Setting/resetting session options is missing from the diagram.
| File | Size | Date | Attached by | |||
|---|---|---|---|---|---|---|
| ClientServerProtocol.pdf Sedna Client/Server Protocol v3.0 | 76.1 kB | 00:57, 2 Dec 2008 | SteveB | Actions | ||