Orchestrating the Internet of Things with Task-Oriented Programming

Talen: en nl nds (thuis)

Kaft Boekenlegger

Bestellen

Inhoudsopgaaf

Details

In het openbaar verdedigd op woensdag 4 oktober om 14:30 precies.

Promotor:

Copromotores:

Manuscriptcommissie:

Samenvatting

Het ontwikkelen van betrouwbare software voor Internet of Things (IoT) systemen is moeilijk omdat ze dynamisch, interactief, gedistribueerd, samenwerkend, meerlaags en multitasking zijn. Ook draagt de semantische wrijving voorkomend uit de grote verscheidenheid aan hard- en software karakteristieken tussen de lagen bij aan dit probleem. Veel van deze computers zijn randcomputers die onderdeel zijn van het IoT. Randcomputers bestaan vaak uit goedkope microcontrollers, ontworpen voor geïntegreerde systemen, en ze interacteren met de buitenwereld door sensoren en actuatoren. Enerzijds hebben ze weinig geheugen, langzame rekenkernen en trage communicatie. Anderzijds zijn ze klein en hoogst energie-efficiënt.

Taakgeörienteerd programmeren (TOP) is geschikt om met de uitdagingen van IoT systemen om te gaan. In TOP zijn abstracte representaties van werk, de taken, de bouwstenen. Tijdens het uitvoeren van een taak kan de huidige waarde geobserveerd worden en hierop kunnen andere taken reageren. Door taken te combineren of te transformeren kunnen samenwerkingsvormen uitgedrukt worden. Van deze beschrijving wordt een computersysteem gegenereerd dat gebruikers begeleidt in het uitvoeren van het werk. Randcomputers hebben ook baat bij TOP, al is niet eenvoudig om TOP-systemen erop in te zetten.

Deze dissertatie laat zien hoe gehele IoT-systemen georkestreerd kunnen worden met TOP. Gebruik makend van techniek kunnen alle lagen van een IoT-systeem en hun samenwerking uitgedrukt worden in één hoog abstractieniveau, programmeertaal, paradigma en typesysteem. Allereerst laat ik enkele 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. Na eenmalig uitgerust te worden met het domeinspecifieke besturingssysteem is een randcomputer geschikt voor mTask. 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.

Het laagloos programmeren van IoT systemen wordt ook vergeleken met traditioneel gelaagd programmeren. Laagloos programmeren leidt tot minder code en minder programmeertalen. Door het gebruik van één paradigma en een systeembreed typesysteem verlaagt laagloos programmeren de semantische wrijving, onderhouds- en robuustheidsproblematiek en moeizame onderlinge samenwerking.

Slides voor de samenvattingspresentatie kunnen hier gevonden worden.