MIRA
Concepts


Overview

As you have read in the Introduction, MIRA provides a middleware that handles the communication between the modules - or respectively the "units" as we call these modules from now on - and ties these units together to compose a complex application.

Beside this communication, the MIRA base and framework provide much more functionality that is realized using a couple of concepts and technologies, that are introduced on this page.

Technologies

In the following the core technologies are briefly described that are used to implement the concepts listed in the sections below. If you are new to MIRA and need a further overview, you can skip this section for the moment and continue reading the concepts starting with the next section.

Structural Level

The structure of MIRA can be visualized as follows:

Structure-of-Components.png

The MIRA core is divided into the following software components:

Beside these core components, other elements like Plugins, Units, or Visualizations are located in Toolboxes and Domains.

All components within the Toolboxes and Domains are organized in Packages.

Component Level

Each component of an MIRA application that is written in C++ is compiled into a binary. In contrast, components that are written in a script language (e.g. Python) are interpreted directly from their source code. However, in both cases we can differentiate between components that are "Executables" and "Libraries".

Computation Graph Level

Runtime Level

Filesystem Level

Repository Level