\documentclass[../thesis.tex]{subfiles}

\input{subfilepreamble}

\begin{document}
\input{subfileprefixsmall}
\selectlanguage{dutch}
\ifSubfilesClassLoaded{\chapter*{Samenvatting}}{\chapter{Samenvatting}}%
\label{chp:samenvatting}
%\begin{center}
%\noindent%
Het aantal computers om ons heen groeit enorm en hiermee ook de complexiteit van de systemen waarin ze zich bevinden.
Veel van deze computers zijn \emph{randcomputers} die onderdeel zijn van het Internet of Things (IoT).
Binnen deze orkesten interacteren randcomputers met de buitenwereld door sensoren en actuatoren.
Randcomputers bevatten vaak goedkope microcontrollers die speciaal ontworpen zijn voor ge\"{\i}ntegreerde systemen.
Enerzijds hebben ze weinig geheugen, langzame rekenkernen en trage communicatie.
Anderzijds zijn ze klein en hoogst energie-effici\"{e}nt.
Het programmeren van deze IoT-systemen is complex omdat ze dynamisch, interactief, gedistribueerd, samenwerkend, meerlaags en multitasking zijn.
Ook draagt de semantische wrijving die voortkomt uit de grote verscheidenheid aan hard- en software karakteristieken tussen de lagen verder bij aan dit probleem.

Taakge\"{o}rienteerd programmeren (TOP) is hierbij een oplossing.
In TOP zijn taken, abstracte representaties van werk, de bouwstenen.
Tijdens het uitvoeren van taken kan de huidige waarde geobserveerd worden en hierop kunnen andere taken reageren.
Door taken samen te voegen of te transformeren kunnen samenwerkingsvormen uitgedrukt worden.
Vanuit deze beschrijving wordt een computersysteem gegenereerd dat gebruikers begeleidt in het uitvoeren van het werk.
Een voorbeeld van een TOP-systeem is iTask, ontworpen om interactieve webtoepassingen te beschrijven.
De wens is om TOP ook voor randcomputers te gebruiken, maar het is niet evident hoe TOP-systemen op dusdanig beperkte middelen in te zetten.

Deze dissertatie laat zien hoe gehele IoT-systemen georkestreerd kunnen worden met {TOP}.
Allereerst laat ik een wat technieken zien om ingebedde domein-specifieke talen te maken.
Daarna beschrijf ik mTask, een TOP-systeem voor randcomputers ingebed in iTask.
Taken worden tijdens het uitvoeren opgebouwd, waardoor ze afgestemd kunnen worden op de huidige werkeisen.
Vervolgens worden ze naar het apparaat gestuurd ter interpretatie.
Een randcomputer is geschikt voor een mTask als het uitgerust is met het lichtgewicht domeinspecifieke besturingssysteem.
Dit stuurprogramma voert de ontvangen taken energiezuinig uit en automatiseert tevens alle communicatie en dataverwerking.
Alle aspecten van het mTask-systeem worden beschreven: voorbeeldprogramma's, taalontwerp, implementatiedetails, integratie met iTask en de energiezuinige functionaliteit.
Indien samen met iTask gebruikt, kan een geheel IoT-systeem laagloos geprogrammeerd worden, gebruik makend van \'e\'en broncode, programmeertaal en paradigma, abstractieniveau en typesysteem.
Eveneens wordt de semantische wrijving, onderhouds- en robuustheidsproblematiek en moeizame onderlinge samenwerking verzacht.
%\end{center}
\input{subfilepostamble}
\selectlanguage{british}
\end{document}
