add images, update intro, add iTasks intro
authorMart Lubbers <mart@martlubbers.net>
Sat, 29 Apr 2017 13:08:34 +0000 (15:08 +0200)
committerMart Lubbers <mart@martlubbers.net>
Sat, 29 Apr 2017 13:08:34 +0000 (15:08 +0200)
Makefile
examples/.gitignore [new file with mode: 0644]
img/taskex1.png [new file with mode: 0644]
img/taskex2.png [new file with mode: 0644]
img/taskex3.png [new file with mode: 0644]
introduction.tex
methods.tex
thesis.pre

index 04e20c5..9c08e6e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,7 @@ all: $(addsuffix .pdf,$(DOCS))
        $(LATEX) $(LATEXFLAGS) -ini -jobname="$(basename $@)" "&$(LATEX) $<\dump"
 
 %.pdf: %.mlog
-       if $(GREP) -iFq 'Rerun to get' $<; then $(LATEX) $(LATEXFLAGS) $(basename $<); fi
+       if $(GREP) -iFq 'Rerun' $<; then $(LATEX) $(LATEXFLAGS) $(basename $<); fi
 
 %.mlog: %.tex %.fmt $(wildcard *.bib) $(wildcard *.tex)
        $(LATEX) $(LATEXFLAGS) $<
diff --git a/examples/.gitignore b/examples/.gitignore
new file mode 100644 (file)
index 0000000..9e4e1e8
--- /dev/null
@@ -0,0 +1,5 @@
+Clean System Files
+name
+name-data
+name-www
+name-sapl
diff --git a/img/taskex1.png b/img/taskex1.png
new file mode 100644 (file)
index 0000000..cbef4d2
Binary files /dev/null and b/img/taskex1.png differ
diff --git a/img/taskex2.png b/img/taskex2.png
new file mode 100644 (file)
index 0000000..41f1935
Binary files /dev/null and b/img/taskex2.png differ
diff --git a/img/taskex3.png b/img/taskex3.png
new file mode 100644 (file)
index 0000000..6768004
Binary files /dev/null and b/img/taskex3.png differ
index b2ae11c..6ec3e65 100644 (file)
@@ -4,26 +4,39 @@ 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.
+parallel and conditional tasks can be modelled. From the \gls{Task} description
+the system will generate an multi-user web application for real life tasks.
 
-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 many fields of operation such as incident
+management~\cite{lijnse_top_2013}. Interfaces are automatically generated for
+the types of data which makes rapid development possible. However, while the
+tasks in the \gls{iTasks} system model after real life workflow tasks the
+modelling is very high level. It is difficult to connect actual tasks to the
+real tasks and let them interact. A lot of the actual tasks can be
+\emph{performed} by small \gls{IoT} devices. Nevertheless, adding such devices
+to the current system is difficult to say the least as it was not designed to
+cope with these devices. 
 
-\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
+In the current system such adapters, in principle, 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~\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.
+adapter to be written for every device and functionality. Moreover, this does
+not allow you to build in logic into the device. A lot of the small \gls{IoT}
+devices have limited processing power but can still contain decision making.
+Oortgiese et al.\ lifted \gls{iTasks} from a single server model to a
+distributed server 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 and are therefore not
+suitable to run an entire \gls{iTasks} core.
+
+\glspl{mTask} will bridge this gap by introducing a new communication protocol,
+device server application and \glspl{Task} synchronizing the formers.
+The system can run on devices as small as Arduino microcontrollers and
+operates via the same paradigms and patterns as regular \glspl{Task}.
+\glspl{mTask} can run small imperative programs written in a \gls{EDSL} and
+have access to \glspl{SDS}.
 
 \section{Document structure}
 The structure of the thesis is as follows.
@@ -37,3 +50,5 @@ 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.
+Appendix~\ref{app:device-interface} shows the concrete interface for the
+devices.
index 18cc188..473efcf 100644 (file)
@@ -1,11 +1,45 @@
 \section{\acrlong{TOP}}
 \gls{TOP} is a recent new programming paradigm implemented as
-\gls{iTasks}~\cite{achten_introduction_2015} in
-the pure lazy functional language \gls{Clean}
+\gls{iTasks}\cite{achten_introduction_2015} in the pure lazy functional
+language \gls{Clean}\cite{brus_cleanlanguage_1987}. \gls{iTasks} is a
+\gls{EDSL} to model workflow tasks in the broadest sense. A \CI{Task} is just
+a function that, given some state, returns the observable value of the
+\CI{TaskValue}. A simple example is shown in Listing~\ref{lst:taskex}
+accompanied with Figure~\ref{fig:taskex1},~\ref{fig:taskex2} and~%
+\ref{fig:taskex3}.
+
+\begin{lstlisting}[language=Clean,label={lst:taskex},%
+       caption={An example \gls{Task} for entering a name}]
+:: Name         = { firstname :: String
+                  , lastname  :: String
+                                 }
+
+derive class iTask Name
+
+enterInformation :: String [EnterOption m] -> (Task m) | iTask m
+
+enterName :: Task Name
+enterName = enterInformation "Enter your name" []
+\end{lstlisting}
 
-\todo{Main terms}
-The lazy functional programming language based on graph rewriting
-\gls{Clean}~\cite{brus_cleanlanguage_1987}
+\begin{figure}[H]
+       \begin{subfigure}{.25\textwidth}
+               \centering
+               \includegraphics[width=.9\linewidth]{taskex1}
+               \caption{Initial interface}\label{fig:taskex1}
+       \end{subfigure}
+       \begin{subfigure}{.25\textwidth}
+               \centering
+               \includegraphics[width=.9\linewidth]{taskex2}
+               \caption{Incomplete entrance}\label{fig:taskex2}
+       \end{subfigure}
+       \begin{subfigure}{.25\textwidth}
+               \centering
+               \includegraphics[width=.9\linewidth]{taskex3}
+               \caption{Complete entry}\label{fig:taskex3}
+       \end{subfigure}
+       \caption{Example of a generated user interface}
+\end{figure}
 
 \section{\acrlong{EDSL}s}
 \glspl{mTask} are expressed in a class based shallowly embedded \gls{EDSL}.
index ef1cc96..9ec3c0a 100644 (file)
@@ -12,6 +12,9 @@
 \usepackage{subcaption}              % Subcaptions
 \usepackage{lipsum}                  % dummy text
 \usepackage{listings}                % source code
+\usepackage{float}                   % floating images
+
+\graphicspath{{img/}}
 
 \urlstyle{same}
 \hypersetup{%
@@ -23,6 +26,7 @@
        pdfkeywords={TOP,iTasks,Clean,Function Programming,IoT},
        hidelinks=true
 }
+
 \pdfstringdefDisableCommands{%
        \def\acrlong#1{}%
        \def\acrshort#1{}%
@@ -81,6 +85,8 @@
                {.&&.}{{\texttt{.\&\&.}}}4
 }
 
+\newcommand{\CI}[1]{\lstinline[language=Clean]|#1|}
+
 \lstset{%
        breakatwhitespace=false,         % sets if automatic breaks should only happen at whitespace
        breaklines=true,                 % sets automatic line breaking