\section{Overview \& Terminology}
The goal of the architecture is to facilitate an ecosystem in which an
\gls{iTasks}-system can add, change and remove devices at runtime. Moreover,
\section{Overview \& Terminology}
The goal of the architecture is to facilitate an ecosystem in which an
\gls{iTasks}-system can add, change and remove devices at runtime. Moreover,
-the \gls{iTasks}-system can send \glspl{mTask}, compiled at runtime to
-bytecode, to the device. The device runs an interpreter which can execute the
-\gls{Task}'s bytecode. Devices are persistent during reboots of the
+the \gls{iTasks}-system can send \glspl{mTask} --- compiled at runtime to
+bytecode --- to the device. The device runs an interpreter which can execute
+the \gls{Task}'s bytecode. Devices are persistent during reboots of the
\gls{iTasks}-system. The methods of interacting with \glspl{mTask} is analogous
to interacting with \gls{iTasks}-\glspl{Task} and programmers can access the
\glspl{SDS} made for a device in the same way as a regular \glspl{SDS}. The
\gls{iTasks}-system. The methods of interacting with \glspl{mTask} is analogous
to interacting with \gls{iTasks}-\glspl{Task} and programmers can access the
\glspl{SDS} made for a device in the same way as a regular \glspl{SDS}. The
\section{Devices}
The engine for the devices is compiled from one codebase. For a device to
be eligible for \glspl{mTask}, it must be able to compile the shared codebase
\section{Devices}
The engine for the devices is compiled from one codebase. For a device to
be eligible for \glspl{mTask}, it must be able to compile the shared codebase
This includes systems running \emph{Linux} and \emph{MacOS}.
\item \texttt{STM32} family microcontrollers supported by \texttt{ChibiOS}.
This is tested in particular on the \texttt{STM32f7x} series \gls{ARM}
development board.
\item Microcontrollers programmable by the \gls{Arduino} \gls{IDE}.\\
This includes systems running \emph{Linux} and \emph{MacOS}.
\item \texttt{STM32} family microcontrollers supported by \texttt{ChibiOS}.
This is tested in particular on the \texttt{STM32f7x} series \gls{ARM}
development board.
\item Microcontrollers programmable by the \gls{Arduino} \gls{IDE}.\\
This does not only include \gls{Arduino} compatible boards but also
other boards capable of running \gls{Arduino} code. The code
has been found working on the \texttt{ESP8266} powered \emph{NodeMCU}.
This does not only include \gls{Arduino} compatible boards but also
other boards capable of running \gls{Arduino} code. The code
has been found working on the \texttt{ESP8266} powered \emph{NodeMCU}.
the server will send a request for specification. The client will serialize his
specification and send it to the server so that the server knows what the
client is capable of. The exact specification is shown in
the server will send a request for specification. The client will serialize his
specification and send it to the server so that the server knows what the
client is capable of. The exact specification is shown in
\begin{lstlisting}[label={lst:devicespec},
caption={Device specification for \glspl{mTask}}]
\begin{lstlisting}[label={lst:devicespec},
caption={Device specification for \glspl{mTask}}]