Introduction

Introduction

The MVDA module is an addition to the Data Computation Platform (DCP) and introduces multivariate statistical methods for process monitoring to DCP. The MVDA module is focused on batch process data which is analyzed by applying PLS and PCA to the datasets.

Technology

In the current implementation MVDA is based on .NET (v. 8) in the backend and Angular (v.11) in the frontend.

Backend Technologies

MVDA relies on .NET and builds on top of the ASPNET Core MVC template for providing an API. Services are implemented using the Background Worker as a base template. As for DCP framework the MVDA module is using a Message Broker for module integration and a Secret Configuration Provider.

.NET The system operates on top of .NET 8.0 and requires:

  • DCP.Framework the package providing the shared functionality e.g. models, etc.
  • Entity Framework Core as an ORM utilizing the code first pattern for interacting with the database layer
  • Swashbuckle to provide developer documentation
  • MathNET for the minimal set of statistical calculation performed in the backend layer
  • Serilog for writing to the different log channels - log channels can be adjusted via configuration.

Message Broker

As the other modules of DCP, also MVDA interacts with a central instance of a Message Broker. The Message Broker functionality is encapsulated in an abstraction layer provided by the DCP.Framework NuGet package. The default registered MessageBroker instance is utilizing RabbitMQ. In cases the message broker should be replaced - the interface needs to be implemented and the component registration via dependency injection should be changed.

\newpage

Secret configuration storage

As the other modules of DCP, also MVDA interacts with a central secret configuration storage. This functionality is encapsulated in an abstraction layer provided by the DCP.Framework NuGet package. The default registered SecretConfigurationStorage instance is utilizing Hashicorp Vault. In cases the vault should be replaced - the interface needs to be implemented and the component registration via dependency injection should be changed. The replacement could use any kind of storage (file based or other providers e.g. Azure Key-Vault).

Frontend Technologies

The project is based on Angular 11 as a framework, NGRX as a state manager and as UI libraries use Kendo UI and Angular Material.

The project has a couple of main dependencies:

NPM libraries

MVDA as many of the others DCP Frontend Applications is using NPM as a package manager. The main dependencies are:

Web Components

MVDA is using couple of web components, also used by other DCP Frontend Applications:

Frontend modules

The shared logic between DCP Frontend Applications are separated in a couple of modules, that are used as git submodules inside the applications. Here is the list of used modules:

  • Asset - Library that contains styles, images, translations and fonts
  • App - Library that contains the base application component
  • Batch - Library that contains the batch related components and logic
  • Core - Library that contains the core config, services and interceptors
  • Filter - Library that contains the global filter related components and logic
  • GXP Info - Library that contains the GXP info components and logic
  • Layout - Library that contains the base layout components
  • Pages - Library that in MVDA is used only for local development login
  • Sensor - Library that contains some sensor related components and logic
  • Shared - Library that contains shared components, models, services and utils
  • Site Store - Library that contains the sites NGRX store
  • Store - Library that contains the global NGRX store
  • User - Library that contains the user related components and logic

Analytics Technologies

MVDA uses the Analytical Core of Digital Clone (AC-DC) to perform mathematical calculations. The acdcMvda package implements all statistical methods (e.g. Graham-Schmid normalization, NIPLAS during the fit from scratch without external dependencies). However the package relies on some DCP internal packages:

Other important third party packages used:

  • plotly for generating the plotly configuration strings - used for interactive charting (e.g. contribution plot)
  • ggplot for static image generation
  • dplyr for data manipulation in the tidyverse syntax using magrittr pipes
This page was last edited on 03 May 2024, 08:19 (UTC).