elaborate in the introduction on IoT and separate more subsections
authorMart Lubbers <mart@martlubbers.net>
Tue, 11 Jul 2017 06:47:56 +0000 (08:47 +0200)
committerMart Lubbers <mart@martlubbers.net>
Tue, 11 Jul 2017 06:47:56 +0000 (08:47 +0200)
appendix-protocol.tex
glossaries.tex
intro.intro.tex

index 489679c..0f64bdb 100644 (file)
@@ -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
 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.
 
 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}
 \begin{table}[H]
        \centering
        \begin{tabular}{ll}
@@ -32,7 +32,7 @@ interpreted as \gls{MSB} first integers.
 \end{table}
 
 \newpage
 \end{table}
 
 \newpage
-\section{\gls{mTask}-\glspl{Task}}
+\section*{\gls{mTask}-\glspl{Task}}
 \begin{table}[H]
        \centering
        \begin{subfigure}[b]{.48\textwidth}
 \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}
 
        \caption{Message protocol for exchanging \glspl{Task}}
 \end{table}
 
-\section{\glspl{SDS}}
+\section*{\glspl{SDS}}
 \begin{table}[H]
        \centering
        \begin{subfigure}[b]{.23\textwidth}
 \begin{table}[H]
        \centering
        \begin{subfigure}[b]{.23\textwidth}
index 87d8af6..6c05c3e 100644 (file)
 \newglossaryentry{Javascript}{name={\emph{Javascript}},
        description={is an imperative programming language designed to run in web
        browsers}}
 \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}},
 \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{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}
 \newglossacr{EDSL}   {Embedded Domain Specific Language}
 \newglossacr{GADT}   {Generalized Algebraic Data type}
 \newglossacr{GLONASS}{Global Navigation Satellite System}
index 3574b58..4738d85 100644 (file)
@@ -1,26 +1,59 @@
+\subsection{Internet of Things}
 \Gls{IoT} technology is emerging rapidly. It offers myriads of solutions
 \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
 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
 
 \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. 
 
 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.}.
 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.}.