Oil and Gas Land Management Software Development for BSEE

Oil and gas management software created for a U.S. federal agency to monitor the current condition, reliability and safety of oil platforms.

Challenge

Our client — the Bureau of Safety and Environmental Enforcement (BSEE) — vigorously oversees nationwide and U.S. offshore work safety, emergency preparedness, environmental compliance, and conservation of resources.

They were looking for a custom software development agency in the US to improve the current version of their web application for monitoring oil development and extraction platforms in real-time. We already had a solid .NET team with the necessary qualifications, so we were able to meet all of the agency’s requirements in full, and that was how the Bureau chose Mbicycle for oil and gas land management software development.

Solution

The client reached our ASP.NET development consulting company to modernize their app for checking statuses of each oil platform in operation on the Bureau-regulated territories. They needed to get the proper and timely information about the platform’s configurations and locations, water depth, deck height, production data, data about past inspections, etc. With this information at hand, the platforms’ managers could monitor their current condition, reliability, and safety.

Initially, the application worked very slowly even with a small amount of processed data. Providing that the client was planning to import more data for processing and additional calculations, this would increase the server load and could practically halt the application altogether. For this reason, the app required refactoring and optimization.

Since the main task of the Mbicycle team was to improve the performance of this web application, we started by optimizing the underlying database structure, namely:

  1. Server requests sent to the database
  2. Data processing on the server
  3. Client-side requests sent to the server

The last step in improving the application was to optimize the client-side request processing and page rendering. Along the way, we refactored the code and applied more flexible architectural solutions to prepare the application for the changes to be introduced later in the project.

This was the first and very important stage in the implementation of our solution for the Bureau. Since we completed this stage and the optimization brought a significant increase in productivity, we went on and extended the app functionality by adding new tables for calculations, among other features.

Process

Refactoring the App

To optimize the existing version of the application, the Mbicycle team took the following steps:

  • Changing the database type from Model First to Code First for more convenient management.
  • Dividing the main table in the oil platform database into two separate tables — the one with basic data and the other with more detailed data loaded only to certain parts of the application.
  • Removing database access from the loop to minimize connections.
  • Refactoring the code by dividing the logic into stages (database access and data processing) and transferring them to the client side with controllers responsible for data management between different components/services.
  • Migrating heavy calculations to the thread pool so as not to block the main application thread when the calculations were running.
  • Making all client-side requests available for asynchronous execution.
  • Enabling caching of the app’s master data.
  • Fixing the rendering of some visual components.

Improving Functionality

All the app optimization steps listed above gave a tangible boost to the performance, so the next step was to introduce new features and extend the app functionality.

The Mbicycle team implemented the following features:

  • New tables added to the database with extended information about oil platforms.
  • New data imported from Excel spreadsheets with full logging and user notifications about the import process and results.
  • The new calculation of risk factors for oil platforms.
  • Extended data management.
  • A new type of risk curve.
  • Data processing for new types of oil platforms.
  • Extended information about the oil platforms on the dashboard and in other application components.

The Bureau also had another application integrated with the main one, aggregating weather data of the marine area where the platforms were located, using the Matlab software. Our team improved this application as follows:

  1. We corrected the flaws left by the previous developer, which were related to errors in the client-side data processing.
  2. We added the new functionality for data generation.
  3. We provided access to the generated data from the main BSEE application through a built-in API.

Technologies & Tools

Frontend

JQuery/AJAX, DataTable Plug-In for JQuery, Knockout Framework (version 3.4.0), Materialize CSS

Backend

.NET Framework (version 4.5.2), Microsoft Azure

Database

Entity Framework (version 6.1.3), Microsoft SQL Server

Third-party library API

Elmah

Results

After eight months of oil and gas land management software development, we provided our client with a fully refactored application for oil platform management and status monitoring, with a few additional features.

We have met the client’s requirements in their entirety and stayed within the initial time and budget estimates. In their turn, the client was completely satisfied with the modified application, its updated functionality, and improved performance.