Efficient Simulation of IoT Systems
The aggregate programming paradigm provides a way of thinking about and decomposing problems that can be solved with a network of distributed sensors and computers. Aggregate programming tries to produce reliable and robust collective behavior from broadcast communication between machines. Currently, we’re using the Protelis programming language designed for aggregate programming, but it has some disadvantages.
We would like to use ABS instead: ABS is a language for Abstract Behavioral Specification developed here at UiO, which combines implementation-level specifications with verifiability, high-level design with executability, and formal semantics with practical usability. ABS is a concurrent, object-oriented, modeling language that features functional data-types, and has its own compiler and tools.
In this thesis, you’ll design a simulator in ABS and evaluate it.
Research questions include:
- Can we use ABS to model aggregate computing systems?
- Can we use ABS models to efficiently simulate Protelis programs?
- Can we do so at scale (number of devices)?
A prospective student should…
…like programming, programming paradigms and programming languages;
…have an interest in Internet of Things, Cyber-Physical Systems, Edge/Fog/Cloud computing;
…be willing to learn about grammars and programming language semantics;
…independently set up and run experiments (e.g. check out projects from GitHub,…).
- Aggregate Progamming (http://ap-project.di.unito.it/)
- The Protelis Programming Language for Aggregate Computing (https://protelis.github.io/)
- The ABS Modelling Language (https://abs-models.org/)
- Aggregate Programming for the Internet of Things (PDF): The flagship publication of Aggregate Computing, containing a rather accessible introduction to the general topic
- On Distributed Runtime Verification by Aggregate Computing (PDF): A paper presenting a novel application for aggegate programming