4.2.4 Flow Sequence

Topic Version1Published10/16/2017
For StandardETPW14 v1

#

Producer (Service Company)/ETP Client

Consumer (Aggregator)/ETP Server

1

 

Provide a WITSML v1.4.1.1 server and a WebSocket server.

2

Using a WITSML store API:

  • Query the server to determine well/wellbore/log hierarchy.
  • Create new log objects, if necessary, so it can receive the streaming data.

NOTE: You can also perform these tasks using ETP protocols (Discovery and Store); additional guidance on how to use these ETP protocols will be published in a future version of this document.

 

3

Protocol 0: Open WebSocket using HTTP call to WebSocket URL.

 

4

Send RequestSession message, requesting Protocol 1 and requesting the server has the role of consumer.

 

5

 

Send OpenSession message.

6

 

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

7

 

Send ChannelDescribe message, which identifies the context of data to send.

8

Send ChannelMetadata message, which contains Energistics URI for the channel(s), for example: eml://witsml14/well(idwell)/wellbore(idwellbore)/log(idlog)/logCurveInfo(mnemnoic).

 

9

 

Internally associate the channel indexes to the appropriate log/curve locations.

10

 

Send ChannelStreamingStart message to specify an array of the required channels.

11

Begin sending loop, sending ChannelData messages as requested.

 

12

 

Decode ChannelData messages and append the data to the appropriate WITSML log objects and/or makes it available as ETP channel data to other consumers.

13

(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

Protocol 0: To terminate data transfer, send CloseSession