2.3.1 Energistics Transfer Protocol (ETP)
|For Standard||CTA v2.1|
Energistics Transport Protocol (ETP) is a new data exchange specification that enables the efficient transfer of real-time data between applications. ETP has been specifically envisioned and designed to meet the unique needs of the upstream oil and gas industry and, more specifically, to facilitate the exchange of data for Energistics domain standards (RESQML, WITSML, and PRODML).
Initially designed to replace the SOAP API for WITSML, initial use cases were centered on moving real-time drilling and logging data between applications: from sensor to acquisition systems, to aggregators, to replication, and to client systems.
ETP is a series of feature notification mechanism, so data receivers do not have to poll for data and can receive new data as soon as they are available from a data provider. To achieve maximum use of the limited bandwidth available in upstream operations and to avoid blocking remote procedure calls, ETP is based on the asynchronous exchange of messages, which is fundamentally different from and far more efficient than the request/response pattern of the previous SOAP/HTTP.
ETP has been designed in a modular fashion, as a set of sub-protocols. Each of these protocols is designed to support a specific set of data workflows. The goal for ETP is for complete conformance (i.e., no optional behavior) at a sub-protocol level. In this sense, sub-protocols are similar to interfaces in object-oriented programming; they define a small, closely-defined unit of behavior that must be implemented.
Sub-protocols are also linked to styles of message transfer, message size, and structure. For example: there is one protocol for transferring real-time channel-oriented data; another protocol for transferring static business objects (wells, wellbores, reports, earth model elements, etc.) as XML strings; and another protocol for transferring large, heterogeneous, binary arrays (such as properties on a reservoir grid).
ETP uses the WebSocket communication protocol, JSON schemas to define messages, a subset of Avro for serialization, and JWT authentication.