X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=back%2Fsummary.tex;h=0f1a927797a103c74e97fe888125d8a888812165;hb=529531e1028ae26ab889456d65958794154d5b25;hp=1345118702334bf0c0cebbac73f5ea19bb9095b8;hpb=86d9f915656711bcf5511a7c70cbb65afd26386c;p=phd-thesis.git diff --git a/back/summary.tex b/back/summary.tex index 1345118..0f1a927 100644 --- a/back/summary.tex +++ b/back/summary.tex @@ -4,34 +4,37 @@ \begin{document} \input{subfileprefixsmall} -\chapter*{Summary}% -\label{chp:summary} -%\begin{center} -\noindent% -The amount 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 \gls{IOT} systems. -Within these orchestras of computers, they perform the role of interacting with the outside world. -These specialised computers are often powered by microcontrollers and therefore have little memory, small processors, and slow communication. -On the other hand, they are designed for embedded systems and hence cheap, tiny, energy efficient, and is easily equipped with various sensors and actuators. -Not only are \gls{IOT} systems dynamic, interactive, distributed, collaborative, multi-user, and multitasking. -Also, the orchestra of computers has vastly different hardware and software characteristics, causing semantic friction, making programming such systems classically complex. +\ifSubfilesClassLoaded{\chapter*{Summary}}{\chapter{Summary}}% +\label{chp:summary}% +\glsresetall% +The number of computers around us is growing exponentially, compounding the complexity of the systems in which they operate. +Many of these computers are \emph{edge devices} operating in \gls{IOT} systems. +Within these orchestrations of computers, they interact with the environment using sensors and actuators. +Edge devices often use low-cost microcontrollers designed for embedded applications. +They have little memory, unhurried processors, and are slow in communication but are also small and energy efficient. +Programming \gls{IOT} systems is complex since they are dynamic, interactive, distributed, collaborative, multi-tiered, and multitasking in nature. +The complexity is increased further by semantic friction that arises through different hardware and software characteristics between tiers. -\Gls{TOP} is a declarative programming paradigm with roots in functional programming that allows high-level interactive collaborative workflows to be specified for the work that needs to be done. -From this specification, a ready-for-work computer program is generated supporting the user in actually performing the work. -The main building blocks of \gls{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. -Furthermore, tasks can be 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 \gls{TOP} concepts as the interactive collaborative applications \gls{TOP} was originally designed for, albeit with domain-specific primitives such as sensor and actuator access. - -This dissertation shows how to orchestrate complete \gls{IOT} systems using \gls{TOP}. -First I present advanced \gls{DSL} embedding techniques that make the creation of a \gls{DSL} such as \gls{MTASK} possible. -Then I show \gls{MTASK}, a \gls{TOP} \gls{DSL} for \gls{IOT} edge devices. -\Gls{MTASK} is embedded in \gls{ITASK}, a general-purpose \gls{TOP} language mostly used to program interactive web applications. -All aspects of the \gls{MTASK} system are show: the design, implementation, integration with \gls{ITASK}, and a detailed overview of the green computing facilities. -Using \gls{MTASK} in conjunction with \gls{ITASK}, entire \gls{IOT} systems can be programmed from a single source, in a single paradigm, and using a single high abstraction level. -Finally, this tierless approach to \gls{IOT} systems is qualitatively and quantitatively compared to traditional tiered approaches. +A solution is found in \gls{TOP}. +%A solution is found in the declarative programming paradigm \gls{TOP}.%, a declarative programming paradigm. +In \gls{TOP}, the main building blocks are tasks, an abstract representation of work. +During execution, the current value of the task is observable, and other tasks can act upon it. +Collaboration patterns can be modelled by combining and transforming tasks into compound tasks. +From this declarative description of the work, a ready-for-work computer system is generated that guides all operators in doing the work. +An example of a \gls{TOP} system is \gls{ITASK}, a language which describes interactive web applications. +Programming edge devices benefits from \gls{TOP} as well. +However, it is not straightforward to run \gls{TOP} systems on resource-constrained edge devices. +This dissertation demonstrates 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. +This allows tasks to be tailor-made for the current work requirements. +The compiled task is sent to the device for interpretation. +For a device to be used in an \gls{MTASK} system, it is programmed once with a lightweight domain-specific \gls{OS}. +This \gls{OS} executes tasks in an energy-efficient way and automates all communications 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, language, paradigm, high abstraction level, and type system. +Many problems such as semantic friction; maintainability and robustness issues; and interoperation safety are mitigated when using tierless programming. %This is a summary of 350--400 words. -%\end{center} \end{document}