From: Mart Lubbers Date: Tue, 11 Jul 2017 06:47:56 +0000 (+0200) Subject: elaborate in the introduction on IoT and separate more subsections X-Git-Tag: final~8 X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=56841bd9b81e8057c830af98df021acc1c1bdb4c;p=msc-thesis1617.git elaborate in the introduction on IoT and separate more subsections --- diff --git a/appendix-protocol.tex b/appendix-protocol.tex index 489679c..0f64bdb 100644 --- a/appendix-protocol.tex +++ b/appendix-protocol.tex @@ -1,4 +1,4 @@ -\section{General Message Format} +\section*{General Message Format} Messages are delimited by newlines to make processing by line based devices easier. Message exchanges have a \emph{Request} and \emph{Response} header. The \emph{Request} header means that the server is sending to the client. The @@ -7,7 +7,7 @@ cases either the \emph{Request} or \emph{Response} is empty. This means that the message is not acknowledged or responded upon. Multibyte values are interpreted as \gls{MSB} first integers. -\section{Handshake} +\section*{Handshake} \begin{table}[H] \centering \begin{tabular}{ll} @@ -32,7 +32,7 @@ interpreted as \gls{MSB} first integers. \end{table} \newpage -\section{\gls{mTask}-\glspl{Task}} +\section*{\gls{mTask}-\glspl{Task}} \begin{table}[H] \centering \begin{subfigure}[b]{.48\textwidth} @@ -79,7 +79,7 @@ interpreted as \gls{MSB} first integers. \caption{Message protocol for exchanging \glspl{Task}} \end{table} -\section{\glspl{SDS}} +\section*{\glspl{SDS}} \begin{table}[H] \centering \begin{subfigure}[b]{.23\textwidth} diff --git a/glossaries.tex b/glossaries.tex index 87d8af6..6c05c3e 100644 --- a/glossaries.tex +++ b/glossaries.tex @@ -32,6 +32,13 @@ \newglossaryentry{Javascript}{name={\emph{Javascript}}, description={is an imperative programming language designed to run in web browsers}} +\newglossaryentry{Python}{name={\emph{Python}}, + description={is an interpreted object oriented scripting language. Variants + exist that are suitable to run on microcontrollers such as + \emph{micropython}}} +\newglossaryentry{LUA}{name={\emph{LUA}}, + description={is an interpreted scripting language famous for having a very + lightweight interpreter that is easy to port.}} \newglossaryentry{LED}{name={LED}, description={Lighting Emitting Diode}} \newglossaryentry{mbed}{name={\textsc{mbed}}, @@ -44,6 +51,7 @@ \newglossacr{ADT} {Algebraic Datatype} \newglossacr{ARM} {Acorn \glsentryname{RISC} Machine} \newglossacr{AST} {Abstract Syntax Tree} +\newglossacr{API} {Application Programming Interface} \newglossacr{EDSL} {Embedded Domain Specific Language} \newglossacr{GADT} {Generalized Algebraic Data type} \newglossacr{GLONASS}{Global Navigation Satellite System} diff --git a/intro.intro.tex b/intro.intro.tex index 3574b58..4738d85 100644 --- a/intro.intro.tex +++ b/intro.intro.tex @@ -1,26 +1,59 @@ +\subsection{Internet of Things} \Gls{IoT} technology is emerging rapidly. It offers myriads of solutions -and transforms the way we interact with technology. +and is transforming the way people interact with technology. -Initially the term was coined to describe \gls{RFID} devices and the -communication between them. However, currently the term \gls{IoT} encompasses -all small devices that communicate with each other and the world. These devices -are often equipped with sensors, \gls{GNSS} modules\footnote{e.g.\ the American -\gls{GPS} or the Russian \gls{GLONASS}.} and -actuators~\cite{da_xu_internet_2014}. With these new technologies information -can be tracked accurately using little power and bandwidth. Moreover, \gls{IoT} -technology is coming into people's homes, clothes and -healthcare~\cite{riazul_islam_internet_2015}. For example, for a few euros a -consumer ready fitness tracker watch can be bought that tracks heartbeat and -respiration levels. +The term \gls{IoT} was coined around 1999 to describe \gls{RFID} devices and +the communication between them. After a small slumber of the term, it +resurfaced recently and has changed definition slightly. In the current day and +age, \gls{IoT} encompasses all small devices that communicate with each other +and --- most of all --- with the world. It has been estimated that there will +be around 30 billion \gls{IoT} devices online in 2020. Even today, \gls{IoT} +devices are already in everyone's household in the form of smart electricity +meters, smart fridges, smartphones, smart watches. These devices are often +equipped with sensors, \gls{GNSS} modules\footnote{e.g.\ the American \gls{GPS} +or the Russian \gls{GLONASS}.} and actuators~\cite{da_xu_internet_2014}. With +these new technologies information can be tracked accurately using little +power, bandwidth and money. Moreover, \gls{IoT} technology is coming into +healthcare as well~\cite{riazul_islam_internet_2015}. For example, for a few +euros a consumer ready fitness tracker watch can be bought that tracks +heartbeat and respiration levels. +The architecture of \gls{IoT} systems is often divided into layers. A very +popular division is the four layer architecture but there are also proponents +of a five layer structure. The first layer of the four layer architecture is +the sensing layer. This layer contains the actual sensing and acting hardware. +In a smart electricity meter, this layer would contains the sensors detecting +the current drawn. There are myriads of device available to use in this layer +and they can be programmed using a variety of different low level programming +languages such as \gls{C++}, \gls{C} but also higher level languages such as +\gls{Python} and \gls{LUA}. + +The second layer of \gls{IoT} is the networking layer and is +responsible for connecting the first layer with the outer world. In the +electricity meter example, this would be the \textsc{GSM} modem connecting the +meter to a server. Existing networking techniques --- such as WiFi and GSM --- +are used to convey \gls{IoT} information but there are also specialized +communication techniques devised for \gls{IoT} such as ZigBee, LoRa and +Bluetooth Low Energy. + +The third layer is the service layer. This layer is responsible for all the +servicing and business rules surrounding the application. It provides +\glspl{API} and interfaces to the data. Finally there is the application layer. +This final layer provides the applications that the user can use to interact +with the \gls{IoT} devices. In the electricity example, this layer would be the +app that can be used to monitor the electricity consumption. These tools on the +application layer can again be created into a wide variety of programming +languages and different paradigms. + +\subsection{Task Oriented Programming} The \gls{TOP} paradigm and the corresponding \gls{iTasks} implementation offer a high abstraction level for real world workflow tasks~\cite{plasmeijer_itasks:_2007}. These workflow tasks can be described -through an \gls{EDSL} and modeled as \glspl{Task}. The system will generate a -multi-user web app from the specification. This web service can be accessed -through a browser and is used to complete these \glspl{Task}. Familiar workflow -patterns like sequential, parallel and conditional \glspl{Task} can be modelled -using combinators. +through an \gls{EDSL} hosted in \gls{Clean} and modeled as \glspl{Task}. The +system will generate a multi-user web app from the specification. This web +service can be accessed through a browser and is used to complete these +\glspl{Task}. Familiar workflow patterns like sequential, parallel and +conditional \glspl{Task} can be modelled using combinators. \gls{iTasks} has proven to be useful in many fields of operation such as incident management~\cite{lijnse_top_2013}. Interfaces are automatically @@ -32,6 +65,7 @@ to interact. A lot of the actual tasks could be 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. +\subsection{Integration} In the current system such adapters connecting devices to \gls{iTasks} --- in principle --- can be written as \glspl{SDS}\footnote{Similar as to resources such as time are available in the current \gls{iTasks} implementation.}.