X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=introduction.tex;h=0f86d155b9794cf88f50eaf020b25bf31bb8d285;hb=c701de5fbdb875ad9c2257f6fb54ebc8f7805d77;hp=a413b2fca170f2e86d3a560c130c585bf56034cd;hpb=6dca5a0ebb686cc11b0cb90f98c3d8347d0b7eeb;p=msc-thesis1617.git diff --git a/introduction.tex b/introduction.tex index a413b2f..0f86d15 100644 --- a/introduction.tex +++ b/introduction.tex @@ -1,29 +1,55 @@ -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{Introduction} +The \gls{TOP} paradigm and the according \gls{iTasks} implementation offer a +high abstraction level for real life workflow tasks. These workflow tasks can be +described through an \gls{EDSL} and modeled as \glspl{Task} +From the specification the system will then generate a multi-user web service. +This web service is accessed through a browser and used to complete these +\glspl{Task}. Familiar workflow patterns like sequence, parallel and +conditional tasks can be modelled using combinators. +\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. +\Glspl{Task} in the \gls{iTasks} system are modelled after real life workflow +tasks but the modelling is applied on a very high level. Therefore it is +difficult to connect \gls{iTasks} tasks to the real world 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. -\section{Motivation} -\todo{Show relevance of the research} +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. However, this forces +a fixed logic in the device that is set at compile time. 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 that is also runnable on smaller devices like +\acrshort{ARM} devices\cite{oortgiese_distributed_2017}. However, this is +limited to fairly high performance devices that are equipped with high speed +communication channels. 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. -\section{Research questions} -\todo{Formulate research question} +\glspl{mTask} will bridge this gap by introducing a new communication protocol, +device 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}. In this way \glspl{Task} can be sent to the device +at runtime and information can be exchanged. \section{Document structure} The structure of the thesis is as follows. -Chapter~\ref{chp:introduction} contains the research questions, 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. -Chapter~\ref{chp:methods} will describe the actual techniques used for the -integration. +Chapter~\ref{chp:introduction} contains the problem statement, motivation and +the structure of the document. +Chapter~\ref{chp:methods} describes the foundations on which the implementation +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. +Appendix~\ref{app:device-interface} shows the concrete interface for the +devices.