1. BOA (Business Operation Analysis) - Daniel-Brosnan-Blazquez/vboa GitHub Wiki
BOA , which stands for Business Operation Analysis, is a component to serve as a tool for supporting analysis services on systems which generate multiple different types of events and need traceability on the data to be analyzed and dynamism to respond to different needs over time.
The system is supporting different types of data linked between each other (segments of time, timestamps, booleans, doubles, texts, geometries, references, gauges, metrics, counters, ...) giving the possibility of going from the bottom to the top of the data model representing the system being analyzed.
The component supports data-driven analysis which allows real-time assessments to answer to operational needs.
The component is modular and can grow based on the use cases identified.
BOA has been, and is currently being used, mainly for the monitoring of space related missions (Sentinel-2 was the initial mission for which BOA was applied).
BOA software architecture is as follows:
-
DEC: Data Exchange component (needed for serving files to BOA instance)
-
ORC: Orchestrator component which serves as interface for polling inputs and triggering BOA ingestions
-
MINARC: Minimal archive component which serves as light archive for storing received inputs
-
EBOA: engine for the business operation analysis. It offers all needed for inserting and querying the data interesting for the analysis. EBOA bases the data storage on Postgis (Postgres + geographic objects) using SQLAlchemy as object relational mapper. EBOA is entirely written in Python offering its powerful ecosystem. The data model is built using pgModeler (open source Postgres database modeller) which allows to have an analysis of the model, incremental evolutions, automatic generation of SQL code for creating the DDBB.
-
VBOA: visualization tool for the business operation analysis. It offers all needed for visualizing the data coming from EBOA using a web browser. VBOA has two parts: back-end and front-end. The back-end is entirely written in Python and based on EBOA for retrieving the data requested. It uses flask for offering a REST API for requests. The front-end is written using Jinja, HTML, CSS and javascript all combined with webpack and npm for the process of packaging the needed libraries. The production web server is based on gunicorn.
BOA comes with a warranty of minimum functioning through automatic testing which provides code coverage analysis: