From dc057560c806a535088e1d9ebdbdd0737467ecc3 Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Sat, 29 Apr 2017 15:08:34 +0200 Subject: [PATCH] add images, update intro, add iTasks intro --- Makefile | 2 +- examples/.gitignore | 5 +++++ img/taskex1.png | Bin 0 -> 4292 bytes img/taskex2.png | Bin 0 -> 5246 bytes img/taskex3.png | Bin 0 -> 5296 bytes introduction.tex | 49 +++++++++++++++++++++++++++++--------------- methods.tex | 44 ++++++++++++++++++++++++++++++++++----- thesis.pre | 6 ++++++ 8 files changed, 83 insertions(+), 23 deletions(-) create mode 100644 examples/.gitignore create mode 100644 img/taskex1.png create mode 100644 img/taskex2.png create mode 100644 img/taskex3.png diff --git a/Makefile b/Makefile index 04e20c5..9c08e6e 100644 --- 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 index 0000000..9e4e1e8 --- /dev/null +++ b/examples/.gitignore @@ -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 index 0000000000000000000000000000000000000000..cbef4d27de004a31eb92d1a2fece51f9c9eb611a GIT binary patch literal 4292 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 wH;LYB^Qfz-6*!s_?kCO!CT8X%nd{(&7O$}Hq)$ literal 0 HcmV?d00001 diff --git a/introduction.tex b/introduction.tex index b2ae11c..6ec3e65 100644 --- a/introduction.tex +++ b/introduction.tex @@ -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. diff --git a/methods.tex b/methods.tex index 18cc188..473efcf 100644 --- a/methods.tex +++ b/methods.tex @@ -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}. diff --git a/thesis.pre b/thesis.pre index ef1cc96..9ec3c0a 100644 --- a/thesis.pre +++ b/thesis.pre @@ -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 -- 2.20.1