X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=back%2Fsummary.tex;h=c31412dfc311c85bf1560c39cbd930c956898189;hb=9723644ea8013d16911ee761245256f6967c90f3;hp=7e4f2606a7856e4889552ddc6fcc0707ece239bc;hpb=3fe94feeee0efd1922263aca9d578031e2283f61;p=phd-thesis.git diff --git a/back/summary.tex b/back/summary.tex index 7e4f260..c31412d 100644 --- a/back/summary.tex +++ b/back/summary.tex @@ -1,18 +1,37 @@ \documentclass[../thesis.tex]{subfiles} -\begin{document} -\ifSubfilesClassLoaded{ - \pagenumbering{arabic} -}{} +\input{subfilepreamble} -\chapter{Summary}% -\label{chp:summary} -\begin{center} +\begin{document} +\input{subfileprefixsmall} +\ifSubfilesClassLoaded{\chapter*{Summary}}{\chapter{Summary}}% +\label{chp:summary}% +\glsresetall% +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. +Many computers that operate in \gls{IOT} systems are \emph{edge devices} that 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. +%Hence they require additional care. -\noindent% -This is a summary of 350--400 words. +\Gls{TOP} can cope with the challenges of \gls{IOT} programming. +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. +Programming edge devices benefits from \gls{TOP} as well, but running such a system within the limitations of resource-constrained microcontrollers is not straightforward. -\end{center} +This dissertation demonstrates how to include edge devices in \gls{TOP} systems using \glspl{DSL}. +With these techniques, all tiers and their interoperation of an \gls{IOT} system is specified in a single high-level source, language, paradigm, high abstraction level, and type system. +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 in order to allow tasks to be tailored to the current work requirements. +The task is then sent to the device for interpretation. +A device is programmed once with a lightweight domain-specific \gls{OS} to be used in an \gls{MTASK} system. +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 such as automatic sleeping. -\input{subfilepostamble} +Finally, tierless \gls{IOT} programming is compared to traditional tiered programming. +In tierless programming frameworks, the size of the code and the number of required programming languages is reduced significantly. +By using a single paradigm and a system-wide type system, tierless programming reduces problems such semantic friction; maintainability and robustness issues; and interoperation safety. +%This is a summary of 350--400 words. \end{document}