Title: RealTime Data Link
1Real-Time Data Link
From Desperado to EsperantoBruce
FogelsongReal-Time Architect - SIS
DrillingReal-Time Data Link Project
ArchitectOct 18, 2007
2The ugly status quo of Real-Time Desperado
- Desperado
- A violent or reckless person involved in
attempting spectacular feats - Real-Time App Programmers have had to be
Desperados - Writing custom code to access different data
sources - Oh yeah, and can you also make it talk protocol
X with System Y? - Standard Variations
- I thought you said WITSML was a standard?
- The wisdom of the Eagles
- And the fences between the application and the
RT data are generally topped with razor wire.
Desperado, why dont you come to your
senses? Youve been out riding fences for so long
now.
3The beautiful dream Esperanto
- In 1887 Ludvic Lazuras Zamehof jumped the
fence and wrote WITSML - Really? No
- But he did create Esperanto
- A new easy-to-use artificial language that could
be employed as a common, 2nd language, fostering
better international communication - His language goals
- Common, Easy to use
- Reduce communication burdens
- Foster international understanding
- Alternatives to Esperanto
- Learn N foreign languages!
- Dont communicate!
- Which makes me think of WITSML
- Has it ushered in World Peace? Not yet
- But it is Esperanto for Real-Time Data
Communication - But was the dream fully realized?
- Enter Real-Time Data Link (RTDL) because
- Knowing the language is notalways enough. One
also needsa local guide to avoid trouble. - Implementing WITSML Clients can be painful. RTDL
centralizes the pain, puts it outside your
application, and serves as your localWITMSL
guide.
Real-Time Data Link Makes life easier for
both the User and the Programmer
4Where Real-Time Data Link Fits in the Data
Landscape
5What is Real-Time Data Link?
- RTDL is a .Net 2.0 software component
- A.k.a. DataLink2
- It can be bundled with Windows applications
- Provides easy access to disparate data sources
- Supports both bulk and RT data access
- It has both an API ...and... a...GUI
- Current commercial version is 3, with v4 in Q4,
2007 - Abridged list of client applications
- Perform View, Petrel, RTGS, Stonefish RT,
Interactive Petrophysics, DDRT, DDToolBox
Real-Time Data Link A friendly buffer
between your applicationand WITSML. Easy on the
Programmer
6RTDL Sources of Data
Real-Time Data Link abstracts the source of the
data. Easy on the User
- Data Types Available with RTDL
- Log Channels depth or time indexed
- Trajectories
- Image Log Channel Data
- Risks
- Tubulars (v4)
7How do applications Subscribe to data via RTDL?
- Two Key Concepts
- Requested Data
- Define what data types, indices, data ranges an
app needs. - Examples
- HKLD, Time
- Log, Depth
- Survey
- Any, Any
- Available Data
- The data found that matches the Requested Data
Description
8Easy on the Programmer 4 steps to Real-Time Data
- Hello RTDL World Update an XY Plot with
Real-Time data from a WITSML Server - // 1. Create RTDL Instance
- Â Â Â Â Â Â Â Â IDataLink2 rtdl DataLink2Factory.CreateI
nstance() -
- Â Â Â Â Â Â Â private void button1_Click(object sender,
EventArgs e) Â - // 2. Create Requested Data
Description - Â Â Â Â Â Â Â Â Â Â Â rtdl.CreateRequestedData(EDataType.Log
, EIndexType.Time) - // 3. Define where to receive data
- Â Â Â Â Â Â Â Â Â Â Â rtdl.AssignDelegate(new
EventHandlerltDataDispatchEventArgsgt(this.rtdl_Data
Dispatch)) - // 4. Initialize Component and Show
User Interface - Â Â Â Â Â Â Â Â Â Â Â rtdl.Initialize()
- Â Â Â Â Â Â Â
-
- Â Â Â Â Â Â Â // Respond to new Log Data events and
update XY Plot in Real-Time - private void rtdl_DataDispatch (object
sender, DataDispatchEventArgs e) - Â Â Â Â Â Â Â Â Â Â Â foreach (ILogData logData in e.Data)
- Â Â Â Â Â Â Â Â Â Â Â
- Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â this.realTimeDataChart1.AddData(lo
gData.Value.Value)
9Conclusions
- Real-Time Data Link
- Is also known as DataLink2
- Is used in 7 SLB RT Applications, with more under
development - Centralizes the WITSML pain, outside of your
application - Is able to connect to multiple WITSML, and other,
data sources - Provides an API for a program to subscribe for
Requested Data Descriptions, either explicit or
implicit - Queries the data source for any Available Data
Descriptions which match - Maps explicit Requested Data Descriptions to
Available Data - Provides a GUI for custom mapping additional
data selection - When data is received its asynchronously sent to
the application - Has an SDK with a Test Work Bench that is
useful for testing and troubleshooting - Makes life easy for both the User and the
Programmer - Please provide us with your feedback
rtdl_at_slb.com - Questions?