\section{Introduction}
-\Gls{TOP} and \gls{iTasks} have been designed to offer a high abstraction level
-through a \gls{EDSL} that describes workflows as \glspl{Task}. \gls{iTasks} has
-been shown to be useful in fields such as incident
+The \gls{TOP} paradigm and the according \gls{iTasks} implementation offer a
+high abstraction level of real life workflow tasks. Through an \gls{EDSL} that
+programmers can model workflow tasks. The system will then generate a
+multi-user web service. This web service can be accessed through a browser and
+used to complete these \glspl{Task}. Familiar workflow patterns like sequence,
+parallel and conditional tasks can be modelled.
+
+describes workflows as \glspl{Task}. From the \gls{Task} description the system genThe system is originally designed to generate applications for real
+life tasks that have to be \todo{cont.}
+
+\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 \gls{iTasks} implementation} 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 \gls{LTN} 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.
+architecture~\cite{oortgiese_distributed_2017} 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 \gls{LTN} 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{Document structure}
The structure of the thesis is as follows.
is built together with the new techniques introduced.
Chapter~\ref{chp:results} shows the results in the form of an example
application accompanied with implementation.
-Chapter~\ref{chp:conclusion} concludes by answering the research question (s)
+Chapter~\ref{chp:conclusion} concludes by answering the research questions
and discusses future research.
Appendix~\ref{app:communication-protocol} shows the concrete protocol used for
communicating between the server and client.
\todo{Small deep embedded dsl}
\todo{Show that class based has the best of both worlds}
+\section{Architecture}
\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
also includes functions for accessing the peripherals that not every device
might have. Devices can choose what to implement by setting the correct macros
in the top of the file.
+\todo{Supported devices}
\subsection{Specification}
Devices are stored in a record type and all devices in the system are stored in
file = {chp%3A10.1007%2F978-3-319-39110-6_6.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/TJVP6FHF/chp%3A10.1007%2F978-3-319-39110-6_6.pdf:application/pdf}
}
-@article{koopman_type-safe_????,
+@article{koopman_type-safe_nodate,
title = {Type-{Safe} {Functions} and {Tasks} in a {Shallow} {Embedded} {DSL} for {Microprocessors}},
url = {https://tfp2016.org/papers/TFP_2016_paper_7.pdf},
urldate = {2017-02-22},
year = {2013},
note = {OCLC: 833851220},
file = {103931.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/9KZ9I6N9/103931.pdf:application/pdf}
+}
+
+@phdthesis{oortgiese_distributed_2017,
+ address = {Nijmegen},
+ type = {Master},
+ title = {A {Distributed} {Server} {Architecture} for {Task} {Oriented} {Programming}},
+ shorttitle = {A {Distributed} {Server} {Architecture} for {Task} {Oriented} {Programming}},
+ url = {http://www.ru.nl/publish/pages/769526/arjan_oortgiese.pdf},
+ language = {English},
+ urldate = {2017-04-08},
+ school = {Radboud University},
+ author = {Oortgiese, Arjan},
+ year = {2017},
+ file = {arjan_oortgiese.pdf:/home/mrl/.mozilla/firefox/7b4r727h.default-1470981082057/zotero/storage/J4WXQXU4/arjan_oortgiese.pdf:application/pdf}
}
\ No newline at end of file