X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=concl%2Fconcl.tex;h=c05becbbe85152e9abd955e6a954a4c921e15785;hb=9778c30bde0ac05c50b7664aba1f3faad6682ef3;hp=b2ce8e5719ac3048f6fb719b95ba2a2d46b1d500;hpb=c64f2008bd494f9fdb47466337480f36a22daef3;p=phd-thesis.git diff --git a/concl/concl.tex b/concl/concl.tex index b2ce8e5..c05becb 100644 --- a/concl/concl.tex +++ b/concl/concl.tex @@ -2,7 +2,7 @@ \input{subfilepreamble} -\setcounter{chapter}{9} +\setcounter{chapter}{10} \begin{document} \input{subfileprefix} @@ -20,18 +20,18 @@ The edge, or perception, layer of an \gls{IOT} system is often powered by microc These small and cheap computers do not have powerful hardware but are energy efficient and support many sensors and actuators. While the term \gls{IOT} has already been known for almost thirty years, only recently, the exponential growth of the number of \gls{IOT} edge devices is really ramping up. Programming \gls{IOT} systems is very complex because each layer of the system is built with different computers, hardware architectures, programming languages, programming paradigms, and abstraction levels. -This generates a lot of semantic friction. +This generates a lot of semantic friction.\todo[inline]{benoem ook de andere problemen. Geen over all type check om correcte samenwerking te garanderen.} Furthermore, \gls{IOT} systems become convoluted because they are dynamic, multi-tiered, multi-user, multitasking, interactive, distributed, and collaborative in nature. \Gls{TOP} proves a suitable programming paradigm that allows the declarative specification of exactly such systems. However, edge devices are often too computationally restricted to be able to run a full-fledged \gls{TOP} system such as \gls{ITASK}. The dissertation is structured as a purely functional rhapsody in three episodes. -In order to get \gls{TOP} to resource-constraind edge devices we use special tools: \glspl{DSL}. -The dissertation shows several techniques for creating \glspl{EDSL}. -Then it shows a tool, \gls{MTASK}, a \gls{TOP} system for \gls{IOT} edge devices. -Finally it compares how this approach compares to existing approaches for programming \gls{IOT} systems. +In order to get \gls{TOP} to resource-constrained edge devices we use special tools: \glspl{DSL}. +The dissertation shows several techniques for creating \glspl{EDSL} in \cref{prt:dsl}. +Then it shows a tool, \gls{MTASK}, a \gls{TOP} system for \gls{IOT} edge devices in \cref{prt:top}. +Finally, in \cref{prt:tvt} it compares how this approach compares to existing approaches for programming \gls{IOT} systems. -\subsection{Tool craft} +\subsection{\nameref{prt:dsl}} \Cref{prt:dsl} presents some tool crafting techniques that are useful for creating \gls{TOP} languages for \gls{IOT} edge devices. It presents two novel techniques for embedding \glspl{DSL} in \gls{FP} languages. @@ -49,7 +49,9 @@ They are not automatically useable in the \gls{DSL} because the interfaces such I show how to automatically generate the required boilerplate for shallowly embedded \glspl{DSL} in order to make data types from the host language first-class citizens in the \gls{DSL}. The scaffolding is generated using template metaprogramming and quasiquotation is used to alleviate the programmer from the syntax burden and support pattern matching. -\subsection{Tools} +\todo[inline]{Paar zinnen over het nut van deze tool crafts: het maakt het voor DSL-developpers in het algemeen makkelijker om uitbreidbare DSLs te maken.} + +\subsection{\nameref{prt:top}} General-purpose \gls{TOP} systems cannot run on edge devices due to their significant hardware requirements. However, with the right techniques, \glspl{DSL} can be created that can be executed on edge devices while maintaining the high abstraction level. By embedding domain-specific knowledge into the language and execution platform, and leaving out general-purpose functionality, \gls{TOP} languages can be made suitable for edge devices. @@ -64,12 +66,14 @@ This tight integration makes programming full \gls{IOT} systems using \gls{TOP} Using only three simple functions, devices are connected to \gls{ITASK} servers, \gls{MTASK} tasks are integrated in \gls{ITASK}, and \gls{ITASK} \glspl{SDS} accessed from within \gls{MTASK} tasks. Its design, integration with \gls{ITASK}, implementation, and green computing facilities are shown. -\subsection{Comparison} +\todo[inline]{Paar zinnen over het nut} + +\subsection{\nameref{prt:tvt}} Using tierless programming, many issues that arise with tiered programming are mitigated. This has already been observed in web applications. The \gls{MTASK} system show that it is possible to program edge devices of a \gls{IOT} systems using \gls{TOP}. Furthermore, when used together with \gls{ITASK}, entire \gls{IOT} systems can be programmed tierlessly. -The question whether this novel approach to programming tiered systems also reduces the \gls{IOT} develop grief is answered in \cref{prt:tvt}. +Whether this novel approach to programming tiered systems also reduces the \gls{IOT} develop grief is answered in \cref{prt:tvt}. This episode presents a four-way qualitative and quantitative comparison of the following systems: \gls{PRS}, a tiered system based on resource-rich edge devices powered by \gls{PYTHON}; \gls{PWS}, a tiered system based on resource-constrained edge devices by \gls{MICROPYTHON};