migrate to biblatex
[phd-thesis.git] / top / top.tex
index 6c759fb..de58f8e 100644 (file)
@@ -2,91 +2,22 @@
 
 \input{subfilepreamble}
 
+%\let\ifSubfilesClassLoadedOld\ifSubfilesClassLoaded%
+%\ifSubfilesClassLoadedOld{
+%      \renewcommand{\ifSubfilesClassLoaded}[2]{#2}
+%}{}
 \begin{document}
 \input{subfileprefix}
+\part[Orchestrating the Internet of Things using Task-O\-rien\-ted Programming]{\\[2ex]\smaller{}Orchestrating the Internet of Things using Task-O\-rien\-ted Programming}%
+\label{prt:top}
 
-%\chapter{\texorpdfstring{\Glsxtrshort{TOP} for the \glsxtrshort{IOT}}{TOP for the IoT}}%
-\subfile{4iot}
-
-%\chapter{The \texorpdfstring{\gls{MTASK}}{mTask} \texorpdfstring{\glsxtrshort{DSL}}{DSL}}%
-\subfile{lang}
-
-\chapter{Integration with \texorpdfstring{\gls{ITASK}}{iTask}}%
-\label{chp:integration_with_itask}
-\begin{chapterabstract}
-       This chapter shows the integration of \gls{MTASK} with \gls{ITASK} by showing:
-       \begin{itemize}
-               \item an architectural overview of \gls{MTASK};
-               \item on the interface for connecting devices;
-               \item the interface for lifting \gls{MTASK} tasks to \gls{ITASK} tasks;
-               \item and interface for lifting \gls{ITASK} \glspl{SDS} to \gls{MTASK} \glspl{SDS}.
-       \end{itemize}
-\end{chapterabstract}
-
-The \gls{MTASK} language is a multi-view \gls{DSL}, i.e.\ there are multiple interpretations possible for a single \gls{MTASK} term.
-Using the byte code compiler (\cleaninline{BCInterpret}) \gls{DSL} interpretation, \gls{MTASK} tasks can be fully integrated in \gls{ITASK}.
-They are executed as if they are regular \gls{ITASK} tasks and they communicate may access \glspl{SDS} from \gls{ITASK} as well.
-\Gls{MTASK} devices contain a domain-specific \gls{OS} (\gls{RTS}) and are little \gls{TOP} engines in their own respect, being able to execute tasks.
-\Cref{fig:mtask_integration} shows the architectural layout of a typical \gls{IOT} system created with \gls{ITASK} and \gls{MTASK}.
-The entire system is written as a single \gls{CLEAN} specification where multiple tasks are executed at the same time.
-Tasks can access \glspl{SDS} according to many-to-many communication and multiple clients can work on the same task.
-Devices are integrated into the system using the \cleaninline{withDevice} function (see \cref{sec:withdevice}).
-Using \cleaninline{liftmTask}, \gls{MTASK} tasks are lifted to a device (see \cref{sec:liftmtask}).
-\Gls{ITASK} \glspl{SDS} are lifted to the \gls{MTASK} device using \cleaninline{liftsds} (see \cref{sec:liftmtask}).
-
-\begin{figure}[ht]
-       \centering
-       \includestandalone{mtask_integration}
-       \caption{\Gls{MTASK}'s integration with \gls{ITASK}.}%
-       \label{fig:mtask_integration}
-\end{figure}
-
-\section{Devices}\label{sec:withdevice}
-When interpreted by the byte code compiler view, an \gls{MTASK} task produces a compiler.
-This compiler is exceuted at run time so that the resulting byte code can be sent to an edge device.
-All communication with this device happens through a so-called \emph{channels} \gls{SDS}.
-The channels contain three fields, a queue of messages that are received, a queue of messages to send and a stop flag.
-Every communication method that implements the \cleaninline{channelSync} class can provide the communication with an \gls{MTASK} device.
-As of now, serial port communication, direct \gls{TCP} communication and \gls{MQTT} over \gls{TCP} are supported as communication providers.
-The \cleaninline{withDevice} function transforms a communication provider and a task that does something with this device to an \gls{ITASK} task.
-This task sets up the communication, exchanges specifications, handles errors and cleans up after closing.
-\Cref{lst:mtask_device} shows the types and interface to connecting devices.
-
-\begin{lstClean}[label={lst:mtask_device},caption={Device communication interface in \gls{MTASK}.}]
-:: MTDevice //abstract
-:: Channels :== ([MTMessageFro], [MTMessageTo], Bool)
-
-class channelSync a :: a (Shared sds Channels) -> Task () | RWShared sds
-
-withDevice :: (a (MTDevice -> Task b) -> Task b) | iTask b & channelSync, iTask a
-\end{lstClean}
-
-\section{Lifting tasks}\label{sec:liftmtask}
-Once the connection with the device is established, \ldots
-\begin{lstClean}
-liftmTask :: (Main (BCInterpret (TaskValue u))) MTDevice -> Task u | iTask u
-\end{lstClean}
-
-\section{Lifting \texorpdfstring{\glsxtrlongpl{SDS}}{shared data sources}}\label{sec:liftsds}
-\begin{lstClean}[label={lst:mtask_itasksds},caption={Lifted \gls{ITASK} \glspl{SDS} in \gls{MTASK}.}]
-class liftsds v where
-       liftsds :: ((v (Sds t)) -> In (Shared sds t) (Main (MTask v u)))
-               -> Main (MTask v u) | RWShared sds
-\end{lstClean}
-
-\chapter{Implementation}%
-\label{chp:implementation}
-\begin{chapterabstract}
-       This chapter shows the implementation of the \gls{MTASK} system.
-       It is threefold: first it shows the implementation of the byte code compiler for \gls{MTASK}'s \gls{TOP} language, then is details of the implementation of \gls{MTASK}'s \gls{TOP} engine that executes the \gls{MTASK} tasks on the microcontroller, and finally it shows how the integration of \gls{MTASK} tasks and \glspl{SDS} is implemented both on the server and on the device.
-\end{chapterabstract}
-IFL19 paper, bytecode instructieset~\cref{chp:bytecode_instruction_set}
-
-\section{Integration with \texorpdfstring{\gls{ITASK}}{iTask}}
-IFL18 paper stukken
-
-% Green computing
-\subfile{green}
+\subfile{4iot}   % TOP for the IoT
+\subfile{lang}   % mTask DSL
+\subfile{int}    % Integration with iTask
+\subfile{imp}    % Implementation
+\subfile{green}  % Green computing
+\subfile{finale} % Conclusion
 
+%\let\ifSubfilesClassLoaded\ifSubfilesClassLoadedOld%
 \input{subfilepostamble}
 \end{document}