Abstract
Cyber-Physical Systems (CPS) are comprised of a network of
devices that vary widely in complexity, ranging from simple
sensors to autonomous robots. Traditionally, controlling and
sensing these devices happens through API communication,
in either push or pull-based fashion. We argue that the computational
power of these devices is converging to the point
where they can do autonomous computations. This allows
application programmers to run programs locally on the
sensors, thereby reducing the communication and workload
of more central command and control entities.
This work introduces the Potato framework that aims to
make programming CPS systems intuitively easy and fast.
Potato is based on three essential mechanisms: failure handling
by means of leasing, distribution by means of first-class
reactive programs, and intentional retroactive designation of
the network by means of capabilities and dynamic properties.
In this paper we focus on the reactive capabilities of our
framework. Potato enables programmers to create and deploy
first-class reactive programs on CPS devices at run time,
abstracting away from the API approach. Each node in the
network is equipped with a minimal actor-based middleware
that can execute first-class reactive programs. We have implemented
Potato as a library in Elixir and have used it to
implement several small examples.
devices that vary widely in complexity, ranging from simple
sensors to autonomous robots. Traditionally, controlling and
sensing these devices happens through API communication,
in either push or pull-based fashion. We argue that the computational
power of these devices is converging to the point
where they can do autonomous computations. This allows
application programmers to run programs locally on the
sensors, thereby reducing the communication and workload
of more central command and control entities.
This work introduces the Potato framework that aims to
make programming CPS systems intuitively easy and fast.
Potato is based on three essential mechanisms: failure handling
by means of leasing, distribution by means of first-class
reactive programs, and intentional retroactive designation of
the network by means of capabilities and dynamic properties.
In this paper we focus on the reactive capabilities of our
framework. Potato enables programmers to create and deploy
first-class reactive programs on CPS devices at run time,
abstracting away from the API approach. Each node in the
network is equipped with a minimal actor-based middleware
that can execute first-class reactive programs. We have implemented
Potato as a library in Elixir and have used it to
implement several small examples.
Original language | English |
---|---|
Publication status | Unpublished - 13 Sep 2017 |
Event | REBLS 2017: 4th Workshop on Reactive and Event-based Languages & Systems - Canada, Vancouver, Canada Duration: 22 Oct 2017 → 27 Oct 2017 https://conf.researchr.org/track/rebls-2017/rebls-2017 |
Conference
Conference | REBLS 2017 |
---|---|
Abbreviated title | REBLS |
Country | Canada |
City | Vancouver |
Period | 22/10/17 → 27/10/17 |
Internet address |