updates
authorMart Lubbers <mart@martlubbers.net>
Mon, 16 Jan 2023 15:41:38 +0000 (16:41 +0100)
committerMart Lubbers <mart@martlubbers.net>
Mon, 16 Jan 2023 15:41:38 +0000 (16:41 +0100)
asbook.tex
back/summary.tex
other.bib
preamble.tex
top/finale.tex
top/lang.tex

index d8c5ff0..5090d9f 100644 (file)
@@ -6,5 +6,5 @@
 \begin{document}
 %\includepdf[landscape,booklet,pages={1-18}]{thesis.pdf}%chktex 29 chktex 8
 %\includepdf[landscape,booklet,pages={1-}]{top/4iot.pdf}%chktex 29 chktex 8
-\includepdf[pages={210}]{thesis.pdf}%chktex 29 chktex 8
+\includepdf[pages={211,212}]{thesis.pdf}%chktex 29 chktex 8
 \end{document}
index 96f77a9..6527955 100644 (file)
@@ -6,34 +6,37 @@
 \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}
index 986ee40..f0c2325 100644 (file)
--- a/other.bib
+++ b/other.bib
@@ -2014,3 +2014,27 @@ Publisher: Association for Computing Machinery},
        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},
+}
index e266492..20ba25a 100644 (file)
 \usepackage{appendix}                      % subappendices, appendices per chapter
 
 % Bibliography
-\usepackage{natbib} % Cite bib entry completely
+\usepackage[square]{natbib} % Cite bib entry completely
 \setlength{\bibsep}{0.0pt}
-\def\bibfont{\small}
+%\def\bibfont{\small}
 %\bibliographystyle{alpha}
 \bibliographystyle{abbrvnat}
-\apptocmd{\thebibliography}{\raggedright}{}{}
+%\apptocmd{\thebibliography}{\raggedright}{}{}
 \usepackage{bibentry} % Cite bib entry completely
 \nobibliography*
 \newcommand{\citeentry}[1]{\begin{NoHyper}\bibentry{#1}\end{NoHyper}. \citep{#1}}
index 1f1cdd6..3910583 100644 (file)
@@ -22,11 +22,17 @@ In conjunction with \gls{ITASK}, it is possible to program all layers of the \gl
 
 Deep embedding.
 
-\section{Future work}
-The \gls{MTASK} systems is a proof-of-concept system for integrating \gls{IOT} edge devices 
+\subsection{Future work}
+There are many ways of extending the research on the \gls{MTASK} system that also concerns \gls{TOP} for resource constrained devices in general.
 
-Edge computing
+Edge devices may produce a lot of data and it is not always effective to send this data to the server for processing.
+Leaving the produced data and computations on the edge device is called \emph{edge computing} \citep{shi_edge_2016}.
+The \gls{MTASK} exhibits many properties of edge computing because it is possible to run entire workflows on the device.
+However, it would be interesting to see how far this can be extended.
+The \gls{MTASK} language is a high-level \gls{DSL} so it would be obvious to introduce abstractions for edge computations.
+For example, add \gls{TOP} support for machine learning on the edge device using TinyML \citep{sanchez-iborra_tinyml-enabled_2020}.
 
+Another recent advance in \gls{IOT} programming is intermittent computing.
 Intermittent computing
 
 Formal semantics
index 8c9e3f7..d0945c9 100644 (file)
@@ -2,6 +2,8 @@
 
 \input{subfilepreamble}
 
+\setcounter{chapter}{3}
+
 \begin{document}
 \input{subfileprefix}
 \chapter{The \texorpdfstring{\gls{MTASK}}{mTask} language}%\texorpdfstring{\glsxtrshort{DSL}}{DSL}}%