4.2.4 Flow Sequence
Topic Version | 1 | Published | 10/16/2017 | |
For Standard | ETPW14 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:
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 |