Search Cerebrotech Blog

Wednesday, 24 June 2015

WITSML - Evolution of Drilling Data

WITSML – An XML based language used in the management of Drilling Data, Along side with PRODML (Production Mark-up Language) and RESQML – Reservoir Mark-up language, form what could be termed the triad of Oil and Gas Data Management. WITSML, which stands for Well-Site Information Transfer Standard Mark-up Language is used to manage real-time, right time or historical drilling data. A couple of years back, some of the major oil operators and service companies came together to develop a unified mode of data communication. In one of the events I attended during an Oil and Gas conference in Aberdeen [1], I clearly observed the need for taking this path. You had various service companies (e.g. Halliburton, Schlumberger) within the premises of for instance a single operator (e.g. Exxon-Mobil). Prior to the emergence of unified structured information handling, the metering systems of various service companies differed a great deal.

In coming together to solve this problem, a new organization was birthed. It was called Energistics [2]. Energistics was saddled with the responsibility of articulating and developing solutions for Drilling, Production and Reservoir data management. An XML based data handling standard emerged. WITSML used for Drilling Data, PRODML used for production data and RESQML for reservoir data.

Most custodians of Object Oriented Programming Languages latched on to this developing and evolving technologies and began developing libraries to handle them. For JAVA, we have JWitsml [3], For .NET, we have nWitsml[4].

I used JAVA for my MSc project that was on Drilling Data with the help of Kongsberg [5] (a service company that gave me access to their WITSML server). Using the JWitsml 1.4 library that was available at that time (A look at the website in 5th June, 15 showed an improved 2.0 version now available). I was trying to solve the problem of making the complex XML based large document appear in a readable format even for non-technical personnel as seen in figure 1. A Trajectory WITSML document was processed into labels on the left and data on the right while graphs were also deployed for visualization.

Figure 1

The technologies used in Data management in the Oil and Gas industry is constantly evolving so much that most Operators and Services companies are currently incorporating Data Science as part of their Core-Business especially in the advent of “Big Data”.  It is important to get the data collection, manipulation, visualization, interpretation and analysis right because as we all know, data is critical in decision-making as seen in figure 2.

Figure 2


[1] Digital Energy Journal 

[3]  Java WITSML Library: 
[4]  .Net WITSML Library:
[5] Kongsberg

Monday, 8 June 2015

PAD Architecture – Data Layer

Data Management is a “re-emerging” field in ICT most especially in the Oil and Gas industry with the latest trend known as “BIG DATA”. Most major companies are incorporating Data Science as part of their core business.

Relational Data Management was used during the course of developing Cerebro Technologies’ current website. One of the techniques associated with Relational Data Management is the normalization of database tables. Normalization is implemented in the logical design process as seen in figure 1. The first step in the design process is an abstraction of the real life problem. Once that is achieved, the entities and the way and manner the entities relate are mapped out.
Figure 1: Design process

A close look at Figure 2 shows the relationship between three entities – Driver, Trip and Expenses. The Driver makes a Trip and incurs expenses. Each driver makes one or more trip(s) and each trip incurs one or more expense(s). As soon as the entity relationships have been established, the attributes associated with each entity are defined.
Figure 2: E-R Diagram 

In the logical Design process, the tables, key attributes are defined, and referential integrity implemented. A look at Figure 3 shows how the table relationship looks like. Referential integrity just like the name suggest helps guarantee the integrity of the data entered into the database management system. Normalization is also implemented to avoid data redundancy and introduction of anomalies during data entry process.
Figure 3: E-R and Table Relationship Diagram

The final design process is the Physical Design Process where the file structure and the type of indexes used to search and extract data from the database are defined. It is important to get this right for effective time management.

Saturday, 6 June 2015

Workings of the Application Layer - The Power of jQuery

jQuery is a cross browser JavaScript library developed to aid the client side scripting of HTML (Hyper Text Mark up Language). The Library is widely used today to handle events, validate forms, to create DOM elements, to create animations and develop Ajax applications during web development. jQuery was created by an American software developer known as John Resig. For most programmers who use javascript language, there has been the issue of cross browser compatibility. There was always the error associated with having a javascript code as more internet browser apps came on stream. The most notorious of these errors was the fact that the HTML page loads simultaneously with the javascript code and as such, if the page loads after the javascript, there are errors associated with the application layer.

jQuery library was introduced to solve all these problems and as an open source it is been improved upon by a team of developers. A look at a jQuery code, the first line of code after importing the library is;
      //All codes fall within this area

The "$" sign is used by jQuery as a selection tool, therefore, in trying to explain the above code, it simply means, select the document (by that, we mean the current document that is open) and when its ready, perform a series of functions which will be with the area "//All codes fall within this area". By this first act, the JavaScript code loads only after the HTML page finishes loading.

CSS (Cascading Style Sheet) is a necessary language for working with jQuery, as it works in the Presentation layer to improve the appearance of the web page(s). I once put on my Facebook update:

"I have come to the realization that art (self expression) is the best field of human endeavour. Science simply presents us with tools, techniques and processes to aid the the expression of one's self... Nobody cares about how for instance a MacAir system works, all you see is this sleek, beautiful machine..."

I think people are impressed by what they see and not what's going on in the background, so CSS help improve the looks combining with other scripting and markup languages.

One of the uses of jQuery is in form validations. The form elements which includes the input elements with attribute types text, button or radio are all given class and ID names. jQuery uses the $.("#ID-Name") to select an element with the corresponding ID name and $.(".Class-Name") to select an element with a class name. Once the input element is selected, the value can be extracted and the data manipulated. After processing the data, it is sent to the server-side scripting language (PHP) as seen in Fig.1 using Ajax - A group of inter-related web development capabilities which includes HTML, CSS, DOM, XML, XSLT, XMLHttpRequest and JavaScript.

Fig. 1 - PAD Architecture

PHP for me is a server side scripting language with large Object Oriented Programming features. it receives the data posted asynchronously via Ajax, performs further data and object manipulations and inserts into the database. All these happens in the background without the page refreshing. Amazing stuff! For upcoming web developers, I'd advice you to be grounded in HTML, CSS, and JavaScript before delving into the server-side scripting languages and Data layer systems.

Finally, jQuery is used in creating powerful web animations. what comes to mind? ActionScript (Flash) is under threat? I believe so. But as jQuery stands, developers keep churning out powerful web animations in the form of banners, games etc.

Friday, 5 June 2015

Developing using the PAD Architecture

Cerebro Technologies’ website was upgraded in May 2015. It was a significant upgrade from what it used to be. As one of the developers, I remembered when I ventured into web designing before dabbling into web development and software development.
The story began sometime in January 2002, the year I moved from Benin City to Lagos to get into the university (Lagos State University precisely). I was already introduced to a basic knowledge of the computer by one of my biggest mentors and confidante Mr. U.A. Oleghe (Later became a permanent secretary in Edo State ministry of Finance). While in Lagos, I was navigating between attending JAMB lectures and doing a business. My eldest sister wanted to learn web design and brought in a guy called “Charles” for home tutorials. During one of their lectures, I just showed up in one of their classes and sat in to learn since I had this early love for programming. Her tutorials lasted one week and it was over. I told her am very much interested and she asked Charles to come the following week to take me through. After the tutorials, I was grounded in the concept of HTML. But something was missing - how to process forms – Charles on his on part was less knowledgeable in that, and so I began my research. Meanwhile, I could design websites but could not get involved in web development.
 In 2008, a friend, Adeoye Oduaiye, graciously came home and took me through the installation and set up of a WAMPServer. That singular act began my journey into web and software development. I was able to process forms using PHP and store data in a database. I studied MySQL and how to work with relational database systems. I was always processing forms on the server side and by development standards this was unacceptable. During my research, I discovered that one needs to handle events and form validations using JavaScript and do the back-end form processing using PHP. I also discovered that you could process data asynchronously using what was later known as AJAX. These emerging technologies were looking complex but I had to try and keep up. It was in 2014 during my Masters degree in the United Kingdom that I’d become grounded in the PAD architecture of web development and come to appreciate it significantly. PAD architecture has 3 layers – Presentation, Application and Data. The Presentation uses CSS and HTML for appearance, The Application using JQuery for event handling and form validations, AJAX for asynchronous data processing and PHP for server side data processing.  One could use any of the RDBMS known for the data layer but I favoured MySQL. 
 After acquiring such knowledge in Web development, we began to develop the new Cerebro Technologies’ website. We developed the conceptual model and entity relationships and embarked on the physical table design. We used Adobe Fireworks, to design the user interface and most of the graphics work. Next, we used Adobe Dreamweaver to design the individual web pages, and linking respective pages with the JavaScript and CSS files. The AJAX and JQuery codes were contained in the JavaScript files. After a week of coding and designing, the site was ready. It was uploaded using FileZilla.