Home
People
Publications
|
Refereed International Conference PublicationsIntegrated IoT Programming with Selective Abstraction [abstract] (ACM DL, PDF)
The explosion of networked devices has driven a new computing
environment called the Internet of Things (IoT), enabling various
services such as home automation and health monitoring. Despite
the promising applicability of the IoT, developing an IoT service
is challenging for programmers, because the programmers should
integrate multiple programmable devices and heterogeneous
third-party devices. Recent works have proposed integrated
programming platforms, but they either require device-specific
implementation for third-party devices without any device
abstraction, or abstract all the devices to the standard
interfaces requiring unnecessary abstraction of programmable
devices. To integrate IoT devices with selective abstraction,
this work revisits the object oriented programming (OOP) model,
and proposes a new language extension and its compiler-runtime framework,
called Esperanto. With three annotations that map each object to
its corresponding IoT device, the Esperanto language allows
programmers to integrate multiple programmable devices into one
OOP program and to abstract similar third-party devices into their
common ancestor classes. Given the annotations, the Esperanto
compiler automatically partitions the integrated program into
multiple sub-programs for each programmable IoT device, and
inserts communication and synchronization code. Moreover, for
the ancestor classes, the Esperanto runtime dynamically identifies
connected third-party devices, and links their corresponding
descendent objects.
Compared to an existing approach on the integrated IoT
programming, Esperanto requires 33.3% fewer lines of code to
implement 5 IoT services, and reduces their response time by 44.8%
on average.
|