JWitsml - WITSML access library
JWitsml is a Java library for accessing data on WITSML servers. The goal of the JWitsml project is to support WITSML client software with WITSML data through a clean, complete, well documented, efficient and extremely simple to use Java programming interface.
JWitsml supports both the WebSocket/ETP protocol and the older HTTP/SOAP protocol.
There exists many tools for browsing WITSML data, but in order to get hold of the actual data for performing advanced computations or create custom applications, a library like JWitsml is required.
Main features as of Q1/2018:
What is WITSML?
Wellsite information transfer standard markup language (WITSML) is an open standard for defining and transmitting technical drilling data between disparate systems and companies in the E&P petroleum industry.
WITSML is a technology which allows previously incompatible or proprietary systems to interoperate and share data.
The WITSML standard is being developed and maintained by
Energistics, a non-profit
consortium designed to develop and deploy open data exchange
standards in the oil and gas industry.
What is ETP?
Energistics Transfer Protocol (ETP) is a data exchange specification that enables the efficient transfer of data between applications and systems. It defines a data streaming mechanism so that data receivers do not have to poll for data and can receive new data as soon as it is available from a data provider.
ETP is defined as about 50 distinct messages that can run asynchronously between a client and a server, all implemented on top of the WebSocket protocol. Messages are serialized over the connection using the Apache Avro standard. Model data is delivered as a combination of XML and compressed bulk data according to the DEFLATE (GZip) standard.
ETP is the transportation protocol of the EnergyML standards from Energistics.
ETP can deliver both WITSML 1.* and WITSML 2.0.
JWitsml API for Java: Javadoc
JWitsml API for .Net: Doxygen (on request)
Tutorial: JWitsml tutorial