X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=introduction.tex;h=66d6b6604899149db6e0995ad857336146d465e1;hb=a182f0a12fdb361d341337ce8240cbcd6ca96ebc;hp=62bbb9f716323ee7deaa8167908d0c907028d432;hpb=76254fbf2941fa0b5a02ab3a98104cad56959218;p=msc-thesis1617.git diff --git a/introduction.tex b/introduction.tex index 62bbb9f..66d6b66 100644 --- a/introduction.tex +++ b/introduction.tex @@ -24,7 +24,7 @@ like sequence, parallel and conditional \glspl{Task} can be modelled using combinators. \gls{iTasks} has been proven to be useful in many fields of operation such as -incident management~~\cite{lijnse_top_2013}. Interfaces are automatically +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 @@ -42,7 +42,7 @@ This forces a fixed logic in the device that is set at compile time. Many 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 small -devices such as those powered by \acrshort{ARM}~~\cite{% +devices such as those powered by \acrshort{ARM}~\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 have only \gls{LTN} communication with low bandwidth @@ -88,17 +88,25 @@ Text written using the \CI{Teletype} font indicates code and is often referring to a listing. \emph{Emphasized} text is used for proper nouns and words that have a unexpected meaning. +The complete source code of this thesis can be found in the following git +repository:\\ +\url{https://git.martlubbers.net/msc-thesis1617.git} + +The complete source code of the \gls{mTask}-system can be found in the +following git repository: +\url{https://git.martlubbers.net/mTask.git} + \section{Related work} -Several types of similar research have been conducted concerning these matters. -Microcontrollers such as the \gls{Arduino} can be remotely controlled by the -\gls{Firmata}-protocol\footnote{``firmata/protocol: Documentation of the -Firmata protocol.'' (\url{https://github.com/firmata/protocol}). [Accessed: -23-May-2017].}. This protocol -is designed to expose the peripherals such as sensors to the server. This -allows very fine grained control but with the cost of excessive communication -overhead since no code is executed on the device, only the peripherals are -queried. A \gls{Haskell} implementation of the protocol has been created% -\footnote{``hArduino by LeventErkok.'' (\url{% +Similar research has been conducted concerning these matters. +For example, microcontrollers such as the \gls{Arduino} can be remotely +controlled by the \gls{Firmata}-protocol\footnote{``firmata/protocol: +Documentation of the Firmata protocol.'' +(\url{https://github.com/firmata/protocol}). [Accessed: 23-May-2017].}. This +protocol is designed to expose the peripherals such as sensors to the server. +This allows very fine grained control but with the cost of excessive +communication overhead since no code is executed on the device, only the +peripherals are queried. A \gls{Haskell} implementation of the protocol is +also available\footnote{``hArduino by LeventErkok.'' (\url{% https://leventerkok.github.io/hArduino}). [Accessed: 23-May-2017].}. \Gls{Clean} has a history of interpretation and there is a lot of research @@ -107,8 +115,8 @@ functional intermediate language that has interpreters written in \gls{C++}~\cite{jansen_efficient_2007} and \gls{Javascript}% ~\cite{domoszlai_implementing_2011} and \gls{Clean} and \gls{Haskell} compiler backends~\cite{domoszlai_compiling_2012}. However, interpreting the resulting -code is still heap-heavy and therefore not directly suitable for devices with as -little as $2K$ of RAM such as the \gls{Arduino} \emph{UNO}. It might be +code is still heap-heavy and therefore not directly suitable for devices with +as little as $2K$ of RAM such as the \gls{Arduino} \emph{UNO}. It might be possible to compile the \gls{SAPL} code into efficient machine language or \gls{C} but then the system would lose its dynamic properties since the microcontroller then would have to be reprogrammed every time a new \gls{Task}