From 86d9f915656711bcf5511a7c70cbb65afd26386c Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Wed, 11 Jan 2023 08:22:50 +0100 Subject: [PATCH] zusammenfassung --- back/samenvatting.tex | 29 +++++++++++++++++++++++++++-- back/summary.tex | 37 ++++++++++++++++++++++++------------- intro/lst/sharedlist.icl | 2 +- subfileprefix.tex | 2 +- subfileprefixsmall.tex | 4 ++++ 5 files changed, 57 insertions(+), 17 deletions(-) create mode 100644 subfileprefixsmall.tex diff --git a/back/samenvatting.tex b/back/samenvatting.tex index 8606084..b8bb97f 100644 --- a/back/samenvatting.tex +++ b/back/samenvatting.tex @@ -3,15 +3,40 @@ \input{subfilepreamble} \begin{document} -\input{subfileprefix} +\input{subfileprefixsmall} \chapter{Samenvatting}% \label{chp:samenvatting} \selectlanguage{dutch} %\begin{center} \noindent% +\todo{lang\-uage de\-pen\-dent ac\-ro\-nyms?} +We zien een exponentiële groei in het aantal computers om ons heen. +De systemen waarvan ze onderdeel zijn worden alras complexer. +Veel van deze computers zijn zogeheten \emph{rand apparaten} die een onderdeel uitmaken van \gls{IOT} systemen. +Deze rand apparaten in het orkest van computers zijn de oren en ogen van het systeem, ze hebben interactie met de wereld. +Meestal worden deze gespecialiseerde computers door microcontrollers en hebben ze slechts weinig geheugen, kleine processoren en langzame communicatie. +Daarentegen zijn ze speciaal ontworpen voor ingebedde systemen waardoor ze goedkoop zijn, weinig energie verbruiken en veel mogelijk hebben tot het verbinden van allerhande sensoren en actuatoren. +\Gls{IOT} systemen opereren dikwijls dynamisch, interactief en gedistribueerd. +Verder zijn ze ondersteunen ze de samenwerking van meerdere gebruikers en en voeren ze meerdere taken tegelijkertijd uit. +In dit orkest van computers hebben alle instrumenten grote onderlinge verschillen als het gaat om de eigenschappen van de hard- en software resulterende in zogeheten \emph{semantische wrijving}. +Dit maakt dat het programmeren van deze systemen een klassiek moeilijk probleem is. + +\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. Dit is een samenvatting van 350--400 woorden. %\end{center} -\input{subfilepostamble} \selectlanguage{british} \end{document} diff --git a/back/summary.tex b/back/summary.tex index 1f4a1a3..1345118 100644 --- a/back/summary.tex +++ b/back/summary.tex @@ -3,24 +3,35 @@ \input{subfilepreamble} \begin{document} -\input{subfileprefix} -\chapter{Summary}% +\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 more and more complex. -Many of these computers are so called \emph{edge devices}. -For a special class of systems, \glsxtrlong{IOT} systems, they perform the interaction with the world. -Powered by microcontrollers, these specialised computers have little memory, slow processors, and support slow communication methods. -On the other hand, they are also cheap, tiny, consume little energy, and can easily equipped with various sensors and actuators. +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. -There is a great variety within edge devices but also between edge devices and more conventional computers. -However, they do have to communicate with the conventional computers. -This results in semantic friction, an impedance mismatch. -Developing and maintaining such systems is expensive and error prone. +\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 is a summary of 350--400 words. +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. + +%This is a summary of 350--400 words. %\end{center} -\input{subfilepostamble} \end{document} diff --git a/intro/lst/sharedlist.icl b/intro/lst/sharedlist.icl index b29e8be..395cbeb 100644 --- a/intro/lst/sharedlist.icl +++ b/intro/lst/sharedlist.icl @@ -17,7 +17,7 @@ upToDos :: Task [ToDo] upToDos = updateSharedInformation [] todos <<@ Title "My todo-list"/*\label{lst:todo_ui}\label{lst:todo_editor}*/ >>* [ OnAction (Action "Sort") (hasValue \_->upd sort todos >-| upToDos)/*\label{lst:todo_contfro}*/ , OnAction (Action "Clear") (always (set [] todos >-| upToDos)) - , OnAction (Action "Quit") (always (get todos))/*\label{lst:todo_ui}\label{lst:todo_contto}*/ + , OnAction (Action "Quit") (always (get todos))/*\label{lst:todo_contto}*/ ] where sort list = sortBy (\x y->x.ToDo.date < y.ToDo.date) list diff --git a/subfileprefix.tex b/subfileprefix.tex index f8ad885..7758d17 100644 --- a/subfileprefix.tex +++ b/subfileprefix.tex @@ -3,6 +3,6 @@ \frontmatter \frontmatterfancy% \tableofcontents% - \mainmatter% + \input{subfileprefixsmall}% }{% } diff --git a/subfileprefixsmall.tex b/subfileprefixsmall.tex new file mode 100644 index 0000000..343b77a --- /dev/null +++ b/subfileprefixsmall.tex @@ -0,0 +1,4 @@ +\ifSubfilesClassLoaded{% + \mainmatter% +}{% +} -- 2.20.1