Skip to main content

Overview

Digital Well Program

The Digital Well Program is a containerized solution for domain workflow automation and dashboarding with a web-based front-end.

AkerBP has a customized version of dwp-app.

Development branch is akerbp-develop, master branch is akerbp-master.

Custom AkerBP components are stored in the same repo, but in akerbp-develop-lib branch. Treat this branch as a separate repo - don't merge it into akerbp-develop, develop/build libraries there and then require them in package.json in akerbp-develop as usual.

Conceptual Diagram

concept

A lightweight BPM engine (provided by the DS platform) orchestrates the presentation of multiple dashboards each composed of micro front-ends. Additional microservices are invoked by BPM to validate the state of the domain data.

Microservice architecture

The DS Web Framework provides the frame for the application. The micro front-ends are sandboxed Web Components with an injected service to provide the dashboard context. The microservices communicate synchronously with HTTP and share a common data store.

microservices

Microservices that call headless legacy EDT applications

Some microservices depend on calculations in legacy EDT applications. These microservices are NodeJS Express endpoints that call headless legacy executables via command-line to pass input JSON and receive output JSON. The input/ouput JSON is stored temporarily on the filesystem.

edt-microservice

Dataflow

Micro front-ends

The micro front-ends on a dashboard call their respective endpoint to request calculated data for visualization. The requests pass through the Content Service for caching. This cache is a key-value storage where the key is the input JSON and the value is the calcuated output JSON. The input JSON contains a data context (LCM keys) and the audit timestamp of the LCM entity (eg. wellbore design). The cache is invalidated when the given timestamp in the request is newer than the timestamp of the cached data.

BPM

The BPM workflow executes validations by calling microservices. These microservices call other microservices to collect the data required to make the decision.

Dataflow Diagram

dataflow

Overview of the application code

The Digital Well Program is split into multiple repos, one for the application and the others for each microservice. In this repo you will find the main application that consumes the micro front-ends.

Git structure for main application (this repo)

The main application consists of an Angular app and Express middleware.

  • src
    • ui
      • package.json
    • server
      • package.json
  • docs
  • tests
    • unit
    • functional
    • integration
    • load
  • Jenkinsfile
  • Dockerfile
  • README.md

Git structure for micro front-ends

The micro front-ends (located in other repos) use the following folder structure:

  • src
    • ui
      • package.json
    • service
      • package.json
  • docs
  • tests
    • unit
    • functional
    • integration
    • load
  • Jenkinsfile
  • Dockerfile
Connecting...