Thu 6 Apr 2017 10:45 - 11:30 at D2.06 - Demo 4

Development of embedded systems has been receiving in last decade a considerable attention for both academy and industry. Advances in hardware miniaturization, in particular, single-boards computers like Raspberry Pi, Beaglebone Black, allow for the use of high-level programming languages. Still, the greatest challenges when developing IoT applications are distribution and coordination. To date, mainstream languages (e.g. Java, JavaScript, Python) lack high- level abstractions to deal with distribution and coordination. For example, implementing standard leader election algorithms (e.g., Ring, Bully) with these languages, force developers to write code on top of low-level networking APIs. As a result, programmers need to write over and over, aspects like the discovery of peers, coordination, failure handling necessary for implementing distributed algorithms. Furthermore, craft and deploy such systems on embedded devices is also complex, due to hardware restrictions and software dependencies. In this demo, we show how a concurrent and distributed language with a rich macro system could in an easy and declarative way solve these problems. Our demo recreates a leader election algorithm between the nodes in an embedded environment by employing a Raspberry Pi cluster. The code for the leader election algorithm is built on top of a macro-based Elixir library which includes abstractions for distribution and coordination. Developers can use this library to translate core operations described by the Bully algorithm to declarative macro-constructs. This library also abstracts develop- ers of communication and network concerns (e.g. service discovery and network monitoring). Furthermore, it includes an implementation of an Elixir behaviour to provide a base skeleton for developing leader-election applications.

Thu 6 Apr

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

10:45 - 12:15
Demo 4Demos at D2.06
10:45
45m
Demonstration
An Elixir Library for Programming Concurrent and Distributed Embedded Systems
Demos
Humberto Rodriguez Avila Vrije Universiteit Brussel, Elisa Gonzalez Boix Vrije Universiteit Brussel, Wolfgang De Meuter Vrije Universiteit Brussel
11:30
45m
Demonstration
Reactive Programming with REScala
Demos
Ragnar Mogk Technische Universität Darmstadt, Joscha Drechsler Technische Universität Darmstadt