4.1.4 Basic Streaming (i.e., not “simple streaming”)

Topic Version1Published10/16/2017
For StandardETPW14 v1

Alternatively, the producer may implement “basic” streaming. In this case, the ProtocolCapabilities of SimpleStreamer is omitted, and the consumer must send ChannelDescribe and ChannelStreamingStart messages.

 

Producer (Sensor)/ETP Server

Consumer (Aggregator)/ETP Client

1

Provide an ETP WebSocket server at a known URL.

 

2

 

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

3

 

Protocol 0: Send RequestSession message and role as a “consumer”.

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.

 

12

 

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

13

 

To terminate data transfer, send CloseSession.