65279553df72c47e7ce71508438be01dd33af274
[phd-thesis.git] / back / summary.tex
1 \documentclass[../thesis.tex]{subfiles}
2
3 \input{subfilepreamble}
4
5 \begin{document}
6 \input{subfileprefixsmall}
7 \chapter{Summary}%
8 \label{chp:summary}%
9 \glsresetall%
10 %\begin{center}
11 %\noindent%
12 The number of computers around us is growing exponentially, thus increasing the complexity of the systems in which they operate as well.
13 Many of these computers are \emph{edge devices} operating in \gls{IOT} systems.
14 Within these orchestras of computers, they interact with their environment using sensors and actuators.
15 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.
16 Programming \gls{IOT} systems is complex since they are dynamic, interactive, distributed, collaborative, multi-tiered, and multitasking.
17 This is impeded even more by semantic friction that arises through different hardware and software characteristics between the tiers.
18
19 A solution is found in \gls{TOP}, a declarative programming paradigm.
20 In \gls{TOP}, the main building blocks are tasks, an abstract representation of work.
21 During execution, the task's current value, is observable and other tasks can act upon it.
22 Tasks can be combined and transformed to create compound tasks, allowing the modelling of many collaboration patterns.
23 From this declarative description of the work, a ready-for-work computer system is generated that guides the user in doing the work.
24 An example of a \gls{TOP} system is \gls{ITASK}, a language for describing interactive web applications.
25 Programming edge devices would benefit from \gls{TOP} as well.
26 However, it is not straightforward to run \gls{TOP} systems on resource-constrained edge devices.
27
28 This dissertation shows how to orchestrate complete \gls{IOT} systems using \gls{TOP}.
29 %
30 First, I present advanced \gls{DSL} embedding techniques.
31 Then \gls{MTASK} is shown, a \gls{TOP} \gls{DSL} for \gls{IOT} edge devices, embedded in \gls{ITASK}.
32 Tasks are constructed and compiled at run time to allow tasks to be tailor-made for the work that needs to be done.
33 The compiled task is sent to the device for interpretation.
34 For a device to be used in an \gls{MTASK} system, it needs to be programmed once with a lightweight domain-specific \gls{OS}.
35 This \gls{OS} executes tasks in an energy efficient way and automates all communication and data sharing.
36 All aspects of the \gls{MTASK} system are shown: example applications, language design, implementation details, integration with \gls{ITASK}, and green computing facilities.
37 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.
38 The dissertation concludes with a comparison between tierless programming and traditional tiered programming.
39 We show that many problems such as semantic friction, maintainability, robustness, and interoperation safety are mitigated when using tierless programming.
40 %This is a summary of 350--400 words.
41 %\end{center}
42 \end{document}