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
@@ -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}
index 87d8af6..6c05c3e 100644 (file)
 \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}
index 3574b58..4738d85 100644 (file)
@@ -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.}.