From: Mart Lubbers Date: Mon, 16 Jan 2023 15:41:38 +0000 (+0100) Subject: updates X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=29cb219e56ad3b238d81be2f71205120f689375e;p=phd-thesis.git updates --- diff --git a/asbook.tex b/asbook.tex index d8c5ff0..5090d9f 100644 --- a/asbook.tex +++ b/asbook.tex @@ -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} diff --git a/back/summary.tex b/back/summary.tex index 96f77a9..6527955 100644 --- a/back/summary.tex +++ b/back/summary.tex @@ -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} diff --git a/other.bib b/other.bib index 986ee40..f0c2325 100644 --- 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}, +} diff --git a/preamble.tex b/preamble.tex index e266492..20ba25a 100644 --- a/preamble.tex +++ b/preamble.tex @@ -135,12 +135,12 @@ \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}} diff --git a/top/finale.tex b/top/finale.tex index 1f1cdd6..3910583 100644 --- a/top/finale.tex +++ b/top/finale.tex @@ -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 diff --git a/top/lang.tex b/top/lang.tex index 8c9e3f7..d0945c9 100644 --- a/top/lang.tex +++ b/top/lang.tex @@ -2,6 +2,8 @@ \input{subfilepreamble} +\setcounter{chapter}{3} + \begin{document} \input{subfileprefix} \chapter{The \texorpdfstring{\gls{MTASK}}{mTask} language}%\texorpdfstring{\glsxtrshort{DSL}}{DSL}}%