*.glo
*.gls
*.ist
+*.lof
*.log
+*.lol
+*.lot
*.out
*.pdf
*.tdo
clean:
$(RM) $(foreach DOC,$(DOCS),$(addprefix $(DOC).,\
- acn acr alg aux bbl blg fmt glg glo gls ist log nav out pdf run.xml\
- snm tdo toc vrb xdy))
+ acn acr alg aux bbl blg fmt glg glo gls ist lof log lol lot nav out\
+ pdf run.xml snm tdo toc vrb xdy))
-\lipsum[1]
+This thesis presents a way to connect small \gls{IoT} devices with high level
+\gls{TOP} implementations languages. It shows how a new frontend for the class
+based shallowly embedded \glspl{DSL} called \gls{mTask} written in \gls{Clean}
+can be used to compile \gls{IoT}-tasks on the fly and send them to the device
+as bytecode which is interpreted. All of this adheres to the \gls{TOP}
+philosophy where familiar concepts such as \glspl{SDS} and task-combinators are
+available at ease.
--- /dev/null
+My thanks and gratitude goes to\ldots
-The main goal of this thesis is to present a way to connect small \gls{IoT}
-devices with high level \gls{TOP} implementations languages. This thesis shows
-how a new frontend for the class based shallowly embedded \glspl{DSL} called
-\gls{mTask} written in \gls{Clean} can be used to compile \gls{IoT}-tasks on
-the fly and send them to the device as bytecode which is interpreted. All of
-this adheres to the \gls{TOP} philosophy where familiar concepts such as
-\glspl{SDS} and task-combinators are available to use.
-
-
\section{Motivation}
-\todo{Show relevance of the research}
+\Gls{TOP} and \gls{iTasks} have been designed to offer a high abstraction level
+through a \gls{DSL} that describes workflows as \glspl{Task}. \gls{iTasks} has
+been shown to be useful in fields such as incident
+management~\cite{lijnse_top_2013}. However, there still lacks support for small
+devices to be added in the workflow. In principle such adapters can be written
+as \glspl{SDS}\footnote{Similar as to resources such as time are available in
+the current system} but this requires a very specific adapter to be written for
+every device and functionality. Oortgiese et al.\ lifted \gls{iTasks} from a
+single server model to a distributed server architecture~\todo{Add cite} that
+is also runnable on smaller devices like \acrshort{ARM}. However, this is
+limited to fairly high performance devices that are equipped with high speed
+communication lines. Devices in \gls{IoT} often only have LPLB communication
+with low bandwidth and a very limited amount of processing power. \glspl{mTask}
+will bridge this gap. It can run on devices as small as Arduino
+microcontrollers and operates via the same paradigms as regular \glspl{Task}.
+The \glspl{mTask} have access to \glspl{SDS} and can run small imperative
+programs.
-\section{Research questions}
-\todo{Formulate research question}
+\section{Problem statement}
\section{Document structure}
The structure of the thesis is as follows.
-Chapter~\ref{chp:introduction} contains the research questions, motivation and
+Chapter~\ref{chp:introduction} contains the problem statement, motivation and
the structure of the document
Chapter~\ref{chp:theoretical-framework} introduces the reader with all the
terminology and techniques lying at the foundation of the study.
\section{\acrlong{TOP}}
-\begin{lstlisting}[language=Clean]
+\begin{lstlisting}[language=Clean,label={lst:test},caption={Caption}]
module Life
Start :: *World -> *World
pages = {364--384},
file = {Clean —\; A language for functional graph rewriting - chp%3A10.1007%2F3-540-18317-5_20.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/GCEPPRUJ/chp%3A10.1007%2F3-540-18317-5_20.pdf:application/pdf}
}
+
+@article{da_xu_internet_2014,
+ title = {Internet of things in industries: a survey},
+ volume = {10},
+ number = {4},
+ journal = {Industrial Informatics, IEEE Transactions on},
+ author = {Da Xu, Li and He, Wu and Li, Shancang},
+ year = {2014},
+ pages = {2233--2243},
+ file = {IOT industrial survey.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/EJHG7M8I/IOT industrial survey.pdf:application/pdf}
+}
+
+@book{lijnse_top_2013,
+ address = {S.l.; Nijmegen},
+ title = {{TOP} to the rescue: task-oriented programming for incident response applications},
+ isbn = {978-90-820259-0-3},
+ shorttitle = {{TOP} to the rescue},
+ language = {English},
+ publisher = {s.n.] ; UB Nijmegen [host},
+ author = {Lijnse, Bas},
+ year = {2013},
+ note = {OCLC: 833851220},
+ file = {103931.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/9KZ9I6N9/103931.pdf:application/pdf}
+}
\ No newline at end of file
\usepackage{caption} % Captions
\usepackage{subcaption} % Subcaptions
\usepackage{lipsum} % dummy text
-\usepackage{clean} % dummy text
+\usepackage{listings} % source code
\urlstyle{same}
\hypersetup{%
hidelinks=true
}
+\lstdefinelanguage{Clean}{%
+ alsoletter={ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_`1234567890},
+ alsoletter={~!@\#$\%^\&*-+=?<>:|\\.},
+ morekeywords={generic,implementation,definition,dynamic,module,import,from,where,in,of,case,let,infix,infixr,infixl,class,instance,with,if,derive},
+ sensitive=true,
+ morecomment=[l]{//},
+ morecomment=[n]{/*}{*/},
+ morestring=[b]",
+ morestring=[b]',
+ emptylines=1,
+ basewidth=0.45em,
+ columns=[c]fixed,
+ texcl=true,
+ literate=%
+ % Basic Clean constructs
+ {\\}{{$\lambda\:$}}1
+ {A.}{{$\forall\;\,$}}1
+ {E.}{{$\exists\;\,$}}1
+ {>}{{$>$}}1
+ {<}{{$<$}}1
+ {<=}{{$\leq$}}1
+ {>=}{{$\geq$}}1
+ {<>}{{$\neq$}}1
+ {->}{{$\rightarrow$}}2
+ {<-}{{$\leftarrow$}}1
+ {=}{{$=$}}1
+ {~}{{$\sim$}}1
+ {\#}{{$\sharp$}}1
+ {\{|}{{$\{\!|\!$}}1
+ {|\}}{{$\!|\!\}$}}1
+ {:=}{{$:=$}}2
+ {==}{{$==$}}2
+ {++}{{$+\!\!+$}}2
+ {+++}{{$+\!\!\!\!+\!\!\!\!+$}}2
+ {:==}{{$:==$}}3
+ {\{|*|\}}{{$\{\!|\!\!\star\!\!|\!\}$}}3
+ %
+ % Basic iTask constructs
+ {>||>}{{$\triangleright\triangleright$}}2
+ {>>=}{{\texttt{>>=}}}3
+ {>>|}{{\texttt{>>|}}}3
+ {?>>}{{\texttt{?>>}}}3
+ {!>>}{{\texttt{!>>}}}3
+ {-||-}{{\texttt{-||-}}}4
+ {.||.}{{\texttt{.||.}}}4
+ {.&&.}{{\texttt{.\&\&.}}}4
+}
+
+\lstset{%
+ breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace
+ breaklines=true, % sets automatic line breaking
+ captionpos=b, % sets the caption-position to bottom
+ keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
+ basicstyle=\footnotesize, % the size of the fonts that are used for the code
+ commentstyle=\itshape, % comment style
+ keywordstyle=\bfseries, % keyword style
+ stringstyle=\ttfamily, % string literal style
+ language=Clean, % the language of the code
+ showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
+ showstringspaces=false, % underline spaces within strings only
+ showtabs=false, % show tabs within strings adding particular underscores
+ tabsize=4 % sets default tabsize to 2 spaces
+}
+
\title{iTasks and the Internet of Things}
\author{Mart Lubbers BSc.\\
{\small\href{mailto:mart@martlubbers.net}{mart@martlubbers.net}}}
\newacronym{IoT}{IoT}{Internet of Things}
\newacronym{TOP}{TOP}{Task Oriented Programming}
\newacronym{DSL}{DSL}{Design Specific Language}
+\newacronym{RISC}{RISC}{Reduced Instruction Set Computer}
+\newacronym{ARM}{ARM}{Acorn \acrshort{RISC} Machine}
\newglossaryentry{Clean}{name=Clean,
description={is a pure lazy functional programming language based on graph
rewriting}}
\newglossaryentry{iTasks}{name=iTasks,
description={is a \acrshort{TOP} implementation written as a \acrshort{DSL}
in the \gls{Clean} programming language}}
+\newglossaryentry{Task}{name=Task,
+ description={is the basic building block of a \acrshort{TOP} system}}
\newglossaryentry{mTask}{name=mTask,
- description={is an abstraction for tasks living on \acrshort{IoT} devices}}
+ description={is an abstraction for \glspl{Task} living on \acrshort{IoT} devices}}
\begin{document}
\frontmatter{}
%Abstract
\chapter*{\centering Abstract}
\begin{quotation}
- \centering\it\noindent
+ \centering\noindent
\input{abstract.tex}
\end{quotation}
+\chapter*{\centering Acknowledgements}
+\begin{quotation}
+ \centering\it\noindent
+ \input{acknowledgements.tex}
+\end{quotation}
+
%Table of contents
\tableofcontents
\chapter{Communication protocol}\label{app:communication-protocol}
\input{appendix-protocol.tex}
+\lstlistoflistings{}
+\listoffigures{}
+\listoftables{}
+
\bibliographystyle{ieeetr}
\bibliography{thesis}
\end{document}