Projects per year
Abstract
The continued increase in computing power and network resources has changed the landscape of software development. Nowadays, software is not confined to a single computer, and instead runs on many types of devices that interact on an open network, which is a network that various types of devices such as smartphones, smartwatches, and Internet of Things devices can spontaneously join and leave. Moreover, their software is continuously interacting with each other, e.g., a smartphone smart home application is updated in real-time based on the connected smart home sensors. In other words, the software that powers those devices has become reactive.
Existing reactive programming techniques exhibit 3 issues that make them difficult to apply to software for open networks. The first issue is related to responsiveness, where data received via a network can (accidentally) make the program no longer reactive. Second, we describe a paradigmatic mismatch between reactive code and imperative code, both of which are present in every reactive application. The final issue relates to the open network, where existing reactive programming techniques have little or no support to discover devices on the open network, and to manage their presence in the reactive program correctly and efficiently.
We propose a novel computational model, called the “Actor-Reactor Model”, that avoids the issues by using so-called “actors” and “reactors” to build distributed applications. First, reactive code is encapsulated by reactors which guarantee responsiveness. Second, imperative code and reactive code is strictly separated in actors and reactors respectively, thereby avoiding a paradigmatic mismatch. Finally, we design a mechanism to discover actors and reactors on an open network, and to maintain their presence correctly and efficiently throughout a distributed reactive program.
The Actor-Reactor Model was implemented in a new programming language called Stella, which serves as a linguistic vehicle to demonstrate the ideas of our approach. Compared to other reactive programming languages and frameworks, we found that actors and reactors are highly suitable to develop distributed applications. Furthermore, they demonstrate a correct and efficient approach to define distributed computations that involve multiple discovered devices (e.g., sensors). All Stella code presented in the dissertation is executable.
The Actor-Reactor Model leads to a better understanding of the coexistence of reactive code and imperative code in Stella and existing reactive programming languages and frameworks.
Existing reactive programming techniques exhibit 3 issues that make them difficult to apply to software for open networks. The first issue is related to responsiveness, where data received via a network can (accidentally) make the program no longer reactive. Second, we describe a paradigmatic mismatch between reactive code and imperative code, both of which are present in every reactive application. The final issue relates to the open network, where existing reactive programming techniques have little or no support to discover devices on the open network, and to manage their presence in the reactive program correctly and efficiently.
We propose a novel computational model, called the “Actor-Reactor Model”, that avoids the issues by using so-called “actors” and “reactors” to build distributed applications. First, reactive code is encapsulated by reactors which guarantee responsiveness. Second, imperative code and reactive code is strictly separated in actors and reactors respectively, thereby avoiding a paradigmatic mismatch. Finally, we design a mechanism to discover actors and reactors on an open network, and to maintain their presence correctly and efficiently throughout a distributed reactive program.
The Actor-Reactor Model was implemented in a new programming language called Stella, which serves as a linguistic vehicle to demonstrate the ideas of our approach. Compared to other reactive programming languages and frameworks, we found that actors and reactors are highly suitable to develop distributed applications. Furthermore, they demonstrate a correct and efficient approach to define distributed computations that involve multiple discovered devices (e.g., sensors). All Stella code presented in the dissertation is executable.
The Actor-Reactor Model leads to a better understanding of the coexistence of reactive code and imperative code in Stella and existing reactive programming languages and frameworks.
Original language | English |
---|---|
Qualification | Doctor of Sciences |
Awarding Institution |
|
Supervisors/Advisors |
|
Award date | 21 Jun 2022 |
Place of Publication | Brussels |
Publisher | |
Print ISBNs | 978-94-6444-328-8 |
Publication status | Published - 2022 |
Fingerprint
Dive into the research topics of 'On the coexistence of reactive code and imperative code in distributed applications: A language design approach'. Together they form a unique fingerprint.-
SRP52: SRP-Onderzoekszwaartepunt: Foundations for Reliable Multi-Paradigm Network-Centric Programming
De Meuter, W., De Roover, C. & Gonzalez Boix, E.
1/03/19 → 28/02/25
Project: Fundamental
-
FWOSB49: A Multi-Paradigm Microservice Framework for Rich Internet Applications
Van den Vonder, S., De Meuter, W. & De Koster, J.
1/01/18 → 31/12/21
Project: Fundamental