\input{subfileprefixsmall}
\chapter{Summary}%
\label{chp:summary}%
+\glsresetall%
%\begin{center}
%\noindent%
-The number of computers around us is growing exponentially.
-With it, the systems in which they operate are becoming increasingly complex.
-Many of these computers are so called \emph{edge devices}, operating in \glsxtrfull{IOT} systems.
-Within these orchestras of computers, they perform the role of interacting with the outside world using sensors and actuators.
-These specialised computers designed for embedded applications are often powered by microcontrollers and therefore have little memory, unhurried processors, no \glsxtrshort{OS} and slow communication.
-On the other hand, they are cheap, tiny, and energy efficient.
-Programming \glsxtrshort{IOT} systems is complex because they are dynamic, interactive, distributed, collaborative, multi-user, multi-tiered, and multitasking.
-This is impeded even more due to the computers in each tier having vastly different hardware and software characteristics; using different programming languages; and operating in different abstraction levels, causing semantic friction.
+The number of computers around us is growing exponentially, thus increasing the complexity of the systems in which they operate as well.
+Many of these computers are \emph{edge devices} operating in \gls{IOT} systems.
+Within these orchestras of computers, they interact with their environment using sensors and actuators.
+Edge devices usually use cheap microcontrollers designed for embedded applications, and therefore have little memory, unhurried processors, no \gls{OS}, and slow communication but are tiny and energy efficient.
+Programming \gls{IOT} systems is complex since they are dynamic, interactive, distributed, collaborative, multi-tiered, and multitasking.
+This is impeded even more by semantic friction that arises through different hardware and software characteristics between the tiers.
-\Glsxtrfull{TOP} is a declarative programming paradigm %with roots in functional programming
-that allows interactive collaborative workflows to be specified for the work that needs to be done.
-From this declarative specification, a ready-for-work computer program the interoperation is generated.
-The main building blocks of \glsxtrshort{TOP} programs are tasks, an abstract representation of work that needs to be done.
-During execution, the current value of a task is observable and other tasks can act upon it.
-Tasks are combined and transformed to create compound tasks, allowing the modelling of many collaboration patterns.
-Tasks running on edge devices can intuitively be built from the same \glsxtrshort{TOP} concepts as the interactive collaborative applications \glsxtrshort{TOP} was originally designed for, albeit with domain-specific primitives such as sensor and actuator access.
-However, it is not straightforward to run \glsxtrshort{TOP} systems on edge devices due to the severe hardware constraints.
-
-In this dissertation I show how to orchestrate complete \glsxtrshort{IOT} systems using \glsxtrshort{TOP}.
-First, I present advanced \glsxtrfull{DSL} embedding techniques that make the creation of a \glsxtrshort{DSL} such as \gls{MTASK} possible.
-Then \glsxtrshort{MTASK} is shown, a \glsxtrshort{TOP} \glsxtrshort{DSL} for \glsxtrshort{IOT} edge devices.
-\gls{MTASK} is embedded in \gls{ITASK}, a general-purpose \glsxtrshort{TOP} language mostly used to program interactive web applications.
-All aspects of the \gls{MTASK} system are shown: the design of the language, details on the implementation, the integration with \gls{ITASK}, and a detailed overview of the green computing facilities.
-Using \gls{MTASK} in conjunction with \gls{ITASK}, entire \glsxtrshort{IOT} systems are programmed from a single source, paradigm, high abstraction level, and type system.
-Consequently, many problems such as semantic friction, maintainability, robustness, interoperation safety are mitigated.
+A solution is found in \gls{TOP}, a declarative programming paradigm.
+In \gls{TOP}, the main building blocks are tasks, an abstract representation of work.
+During execution, the task's current value, is observable and other tasks can act upon it.
+Tasks can be combined and transformed to create compound tasks, allowing the modelling of many collaboration patterns.
+From this declarative description of the work, a ready-for-work computer system is generated that guides the user in doing the work.
+An example of a \gls{TOP} system is \gls{ITASK}, a language for describing interactive web applications.
+Programming edge devices would benefit from \gls{TOP} as well.
+However, it is not straightforward to run \gls{TOP} systems on resource-constrained edge devices.
+This dissertation shows how to orchestrate complete \gls{IOT} systems using \gls{TOP}.
+%
+First, I present advanced \gls{DSL} embedding techniques.
+Then \gls{MTASK} is shown, a \gls{TOP} \gls{DSL} for \gls{IOT} edge devices, embedded in \gls{ITASK}.
+Tasks are constructed and compiled at run time to allow tasks to be tailor-made for the work that needs to be done.
+The compiled task is sent to the device for interpretation.
+For a device to be used in an \gls{MTASK} system, it needs to be programmed once with a lightweight domain-specific \gls{OS}.
+This \gls{OS} executes tasks in an energy efficient way and automates all communication and data sharing.
+All aspects of the \gls{MTASK} system are shown: example applications, language design, implementation details, integration with \gls{ITASK}, and green computing facilities.
+When using \gls{MTASK} in conjunction with \gls{ITASK}, entire \gls{IOT} systems are programmed tierlessly from a single source, paradigm, high abstraction level, and type system.
+The dissertation concludes with a comparison between tierless programming and traditional tiered programming.
+We show that many problems such as semantic friction, maintainability, robustness, and interoperation safety are mitigated when using tierless programming.
%This is a summary of 350--400 words.
%\end{center}
\end{document}
note = {Publisher: Open Publishing Association},
pages = {210--225},
}
+
+@article{shi_edge_2016,
+ title = {Edge {Computing}: {Vision} and {Challenges}},
+ volume = {3},
+ doi = {10.1109/JIOT.2016.2579198},
+ number = {5},
+ journal = {IEEE Internet of Things Journal},
+ author = {Shi, Weisong and Cao, Jie and Zhang, Quan and Li, Youhuizi and Xu, Lanyu},
+ year = {2016},
+ pages = {637--646},
+ file = {Shi et al. - 2016 - Edge Computing Vision and Challenges.pdf:/home/mrl/.local/share/zotero/storage/3F2LDVWM/Shi et al. - 2016 - Edge Computing Vision and Challenges.pdf:application/pdf},
+}
+
+@article{sanchez-iborra_tinyml-enabled_2020,
+ title = {{TinyML}-{Enabled} {Frugal} {Smart} {Objects}: {Challenges} and {Opportunities}},
+ volume = {20},
+ doi = {10.1109/MCAS.2020.3005467},
+ number = {3},
+ journal = {IEEE Circuits and Systems Magazine},
+ author = {Sanchez-Iborra, Ramon and Skarmeta, Antonio F.},
+ year = {2020},
+ pages = {4--18},
+ file = {Sanchez-Iborra and Skarmeta - 2020 - TinyML-Enabled Frugal Smart Objects Challenges an.pdf:/home/mrl/.local/share/zotero/storage/G5DKVFE4/Sanchez-Iborra and Skarmeta - 2020 - TinyML-Enabled Frugal Smart Objects Challenges an.pdf:application/pdf},
+}