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
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 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.
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
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
- ui
- 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
- ui
- docs
- tests
- unit
- functional
- integration
- load
- Jenkinsfile
- Dockerfile