start with system
authorMart Lubbers <mart@martlubbers.net>
Tue, 13 Jun 2017 13:39:09 +0000 (15:39 +0200)
committerMart Lubbers <mart@martlubbers.net>
Tue, 13 Jun 2017 13:39:09 +0000 (15:39 +0200)
fig/fig-system.dot [new file with mode: 0644]
results.arch.tex

diff --git a/fig/fig-system.dot b/fig/fig-system.dot
new file mode 100644 (file)
index 0000000..599e027
--- /dev/null
@@ -0,0 +1,20 @@
+digraph {
+       {       rank=same;
+               task1 [label=<device<SUB>1</SUB>>];
+               task2 [label=<device<SUB>2</SUB>>];
+               taskp [label=<device<SUB>...</SUB>>];
+               taskn [label=<device<SUB>n</SUB>>];
+       }
+       {       rank=same;
+               dev1 [label=<device<SUB>1</SUB>>];
+               dev2 [label=<device<SUB>2</SUB>>];
+               devp [label=<device<SUB>...</SUB>>];
+               devn [label=<device<SUB>n</SUB>>];
+       }
+       server [label=<Shared [MTaskDevice]>];
+
+       dev1 -> server;
+       dev2 -> server;
+       devp -> server [style=invis];
+       devn -> server;
+}
index c4c2b22..2dee232 100644 (file)
@@ -1,4 +1,22 @@
-/section{Devices}
+\section{Overview}
+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
+\gls{iTasks}-system. The methods of interacting with \glspl{mTask} is analogous
+to interacting with \gls{iTasks}-\glspl{Task}.
+
+An overview of the architecture is visible in Figure~\ref{fig:system}.
+
+\begin{figure}[H]
+       \centering
+       \includegraphics[width=\linewidth]{system}
+       \caption{Overview of the architecture}\label{fig:system}
+\end{figure}
+
+
+\section{Devices}
 The client code 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
 and implement (part of) the device specific interface. The shared codebase only
@@ -43,10 +61,10 @@ of. The exact specification is listed in Listing~\ref{lst:devicespec}
 \begin{lstlisting}[label={lst:devicespec},
        caption={Device specification for \glspl{mTask}}]
 :: MTaskDeviceSpec =
-       {haveLed     :: Bool
-       ,haveAio     :: Bool
-       ,haveDio     :: Bool
-       ,bytesMemory :: Int
+       { haveLed     :: Bool
+       , haveAio     :: Bool
+       , haveDio     :: Bool
+       , bytesMemory :: Int
        }
 \end{lstlisting}