4.3.3 Flow Sequence

Topic Version1Published10/16/2017
For StandardETPW14 v1
 

Producer (WITSML Server)/ETP Server

Consumer (Real-Time Display)/ETP Client

1

 

Query the server using WITSML v1.4.1.1 AP to determine well/wellbore/log/curve hierarchy.

2

 

Open WebSocket using HTTP call to WebSocket URL.

3

 

Protocol 0: Send RequestSession message, requesting Protocol 1 and requesting the server role as a producer.

4

Send OpenSession message which defines the supported protocols.

 

5

 

Protocol 1: Send Start message, which may contain throttling parameters.

6

 

Send ChannelDescribe message, which lists the channels of interest as an Energistics URI, for example: well(idwell)/wellbore(idwellbore)/log(idlog)/logCurveInfo(mnemonic)

7

  • If the producer cannot provide the channel data in the ChannelDescribe message, it sends a ProtocolException message with an appropriate error code and a description of the error (see the ETP Specification, Appendix A).
  • If the requested channels are recognized, it sends ChannelMetadata messages, which each contains a channel URI. for example: eml://witsml14/well(uidWell)/wellbore(uidWellbore)/log(uidLog)/logCurveInfo(mnemonic)
 

8

 

To specify the required channels and their starting points, send ChannelStreamingStart.

9

Begin a sending loop, sending the requested ChannelData messages.

 

10

 

Update the displays with data from the received ChannelData messages.

11

(Optional) While sending data, send channel change messages, as appropriate: ChannelDataChange, ChannelStatusChange, ChannelRemove.

 
 

(Optional) While receiving data, send data flow control messages, as appropriate: ChannelStreamingStop, ChannelStreamingStart.

 

To terminate data transfer, send CloseSession.