+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}