Plans for more than just data management

The Mize data engine is one part of the software platform also called Mize. Those two names are the same, because data management is the most important part of this platform.

What is a Software Platform

A software Platform is a technology, that allows developers to create, package, deploy, distribute and run a software application. Examples of software platforms are operating systems like Windows, Android or any Linux distribution, cloud environments like AWS or Azure and also development frameworks like Electron or SDL.

Other Components of the Mize Platform

To make up a complete software platform Mize as in addition to the data engine some other components.

Gui Engine

The gui engine’s job is to display a set of Items to the screen and allow uses to interact with them. It is part of the mme repository (\cite{BibMME}).

CLI Engine

The CLI Engine is the user interface to interact with items from a command line. It has it’s own repository called “mme-cli” (\cite{BibMMC}).

User Commands Engine

Every modern gui application has some sort of command palete, where users can search through all availavle commands, this avoids users needing to search through menue trees to find the right command. The user command engine is basically that and in the repository called “comandr” (\cite{BibComandr}).

Init Engine

A large portion of code that is written for an application is code, that runns at startup and brings the memory into the right state for the application to begin operation. This code I call “setup code” or “init code” and is the reason, why large applications often take so extreamly long to start up. The Init Engine will try to optimize the amount of code that needs to run on startup, therefore decreasing the time, untill an application becomes usable. It will be part of the Victorinix repository \cite{BibVictorinix}.

Option Engine

The Option Engine is about managing configuration, using a standrad way to define configuration options and their documentation. The same kind of options will also be used to describe detauls about computer systems, like explained in \ref{differences-between-computer-systems-mize-should-be-able-to-run-on}. This will also be part of the Victorinix repository (\cite{BibVictorinix}). It should also eventually be possible to describe massive cloud deployments as a set of such options and therefore have deployments defined declaratively, instead of having to set them up imperatively.

Run any software anywhere

This is the end goal of the Victorinix repository. It will try to use options from the Option Engine to figure out, how to get from the current computer system’s environment to an environment, which can run the programm in question. This could include containerisation, virtualisation or even emulation.

MiZe OS

Those components of the Mize platform are quite similar to the main components of an Operating System Userspace (which does not include ther kernel). So with enough work, there is a possibility, that Mize will turn into a Operating System Platform, that will mainly use the Linux or BSD Kernel, but also be able to be installed onto a kernel from Windows, or other future kernels.