WITSML API Interface Definition Prototype Implementation.

12
WITSML API Interface Definition Prototype Implementation

Transcript of WITSML API Interface Definition Prototype Implementation.

Page 1: WITSML API Interface Definition Prototype Implementation.

WITSML API

• Interface Definition

• Prototype Implementation

Page 2: WITSML API Interface Definition Prototype Implementation.

WITSML API - Interfaces

• STORE (WMLS) Interface: Provides access to Persistent Store

Returns/Accepts entire WITSML Data Objects as XML Documents

• DOCUMENT (WMLD) Interface: Routes to Local or Remote STORE (WMLS) Interface Returns/Accepts entire WITSML Data Objects as XML Documents

• ITEM (WMLI) Interface: Provides access to WITSML Data Object at individual data item level(isolates application from XML)

Provides synchronous validation against schema

• REALTIME (WMLR and WMLP) Interfaces: Transport of REALTIME WITSML Data ObjectsSubscribe/Publish Paradigm

Page 3: WITSML API Interface Definition Prototype Implementation.

WITSML API - Interfaces

WMLI (Item Interface)API Implementation

WMLD (Document Interface) API Implementation

Realtime SubscriberInterface (WMLR)

API Implementation

CLIENT APPLICATION

LOCALPERSISTENT

STORE(black box)

WMLI_function_call WMLD_function_call WMLR_function_call

WMLD_function_call

CALL DATAITEM

CALL XMLDocument

XMLDocument

CALL CALL

using the ITEMInterface

using the DOCUMENTInterface

using the REALTIMESubscriber Interface

CLIENT APPLICATION

Local WMLS (Store Interface)API Implementation

CLIENT APPLICATIONusing the STORE

Interface

WMLS_function_call

CALL

XMLDocument

WMLD_function_call

XMLDocument

CALLCALL XMLDocument

Remote WMLS (Store Interface)API Implementation

REMOTEPERSISTENT

STORE(black box)

IMPLEMENTATION-SPECIFIC FORMAT

WMLD_function_call

SOAP

Realtime Publisher(WMLP)

API Implementation

CLIENT APPLICATIONusing the REALTIME

Publisher Interface

WMLP_function_call

CLIENT APPLICATION

CALL

SOAP

POST

Page 4: WITSML API Interface Definition Prototype Implementation.

WITSML API - TYPICAL FUNCTION CALLS

• STORE (WMLS) Interface: GetFromStore, AddToStore, ...

• DOCUMENT (WMLD) Interface: GetDocument, AddDocument, ...

• ITEM (WMLI) Interface: GetObject, GetNext, GetNextChild, ...

• REALTIME SUBSCRIBER (WMLR) Interface: Subscribe, Cancel, ...

• REALTIME PUBLISHER (WMLP) Interface: Publish, Cancel, ...

Page 5: WITSML API Interface Definition Prototype Implementation.

WITSML API - Hidden Persistence

WMLS (Store)API Implementation

CLIENTAPPLICATION

PERSISTENTSTORE

(black box)

WMLS_function_call()

IMPLEMENTATION-SPECIFIC FORMAT

XML ONLY

Page 6: WITSML API Interface Definition Prototype Implementation.

WITSML API - Network Protocol - Data Object Access

WMLS (Store)GetFromStore

Implementation

PERSISTENTSTORE

(black box)

CLIENTAPPLICATION

InvokesWMLI_GetObject()

WMLI (ITEM)GetObject

Implementation

WMLD(DOCUMENT)GetDocument

Implementation

InvokesWMLD_GetDocument()

InvokesWMLS_GetFromStore

via SOAP

SOAP Client

SOAP ServerInvokes

WMLS_GetFromStore

retrieves WITSMLobject and returns it

as XML

XML

XML

SOAP RPC over HTTP over TCP/IP

XML

XML

Individual Data Items accessible by subsequent calls to WMLI

Page 7: WITSML API Interface Definition Prototype Implementation.

WITSML API - Network Protocol - Realtime Transfer - Subscribe

WMLP(REALTIME

PUBLISHER)Subscribe

Implementation

CLIENTAPPLICATION

InvokesWMLR_Subscribe()

WMLR (REALTIMESUBSCRIBER)

SubscribeImplementation

InvokesWMLP_Subcribe()

via SOAP

SOAP Client

SOAP Server

InvokesWMLP_Subscribe()

stores subscriberinformation

SOAP RPC over HTTP over TCP/IP

Page 8: WITSML API Interface Definition Prototype Implementation.

WMLP (REALTIMEPUBLISHER)

Publish Implementation

Web ServerPUBLISHER

APPLICATION

WMLR (REALTIMESUBSCRIBER)

Publish Implementation

InvokesWMLP_Publish()

retrieves subscriberinformation

Sends data via HTTPPOST to subscriberHTTP POST

InvokesWMLR_Publish()

Stores or forwardsreceived data

WMLR (REALTIMESUBSCRIBER)HTTP Listener

WITSML API - Network Protocol - Realtime Transfer - Publish

Page 9: WITSML API Interface Definition Prototype Implementation.

WITSML API – ActiveX Prototype Implementation - General

• Interfaces implemented as ActiveX (COM) objects

• Windows 2000

• Visual Basic 6

• DOM (msxml3)

• SQL Server 2000 for persistent store

• Microsoft SOAP SDK 2.0

Page 10: WITSML API Interface Definition Prototype Implementation.

WITSML API – ActiveX Prototype Implementation - Availability

• Version 1.0.0 available now via FTP @

www.witsml.org

-or-

ftp.npsinc.com/witsml

• Includes source code, W2K setup files, restorable SQL Server database

with sample data, SOAP SDK and documentation

• Prototype STORE (WMLS) Interface now accessible via SOAP @

www.npsinc.com/witsml

• Version 1.0.1 scheduled for September:

bug fixes

revised WITSML Data Object names

improved documentation

Page 11: WITSML API Interface Definition Prototype Implementation.

WITSML API – ActiveX Prototype Implementation - Support/Training

• Support

Defect corrections by NPSi

Installation assistance via email: [email protected]

Integration assistance available: [email protected]

• Developer's Classes

Aug 29-30th (Houston)

others to be held based on demand

Page 12: WITSML API Interface Definition Prototype Implementation.

WITSML API – ActiveX Prototype Implementation - Limitations

• STORE (WMLS) supports a subset of WITSML Data Objects:

well, wellbore, trajectory, trajectoryStation, log and realtime

• REALTIME (WMLR/WMLP) implementations are skeletons

(no subscription storage/retrieval mechanism).

• REALTIME Publisher (WMLP) implementation is synchronous

(blocking) - VB6 does not support multi-threading

• ITEM (WMLI) Interface is limited to constructs presently

utilized in supported object types’ schema definitions (above)