Any software engineer of Internet of Things (IoT) systems deals with three macro issues: how to perceive the properties of interest through sensors (sensing facet), how to process such information to decide what to do to achieve the system goals (processing facet), and how to enact such decisions by affecting the IoT system itself and its deployment environment accordingly (actuation facet). For each, one can either develop ad-hoc solutions from scratch, with mainstream programming languages, or build on top of existing IoT-specific software libraries, frameworks, and platforms. Here, we survey the broad state of the art of “IoT programming”, with a focus on clarifying which and how programming paradigms and platforms deal with four key features demanded by modern IoT systems: scale-independence, situatedness, adaptiveness, and opportunistic deployment, along the aforementioned three facets. We motivate such needs by describing compelling contemporary and near future scenarios. Then, we propose a reference conceptual framework of programming IoT systems with the goal of (i) uncovering which research areas are mostly active in IoT programming, and (ii) placing the state of the art at the intersection between the appropriate features and facets, to both (iii) clarify which approaches are most suited for different kinds of tasks, and (iv) emphasising open challenges. This conceptual framework is a novel contribution in the landscape of IoT programming surveys, and is intended to be a practical aid for researchers and practitioners that are deciding which computational tools (e.g. languages and platforms) to adopt while building their own IoT systems.

Casadei, R., Fornari, F., Mariani, S., Savaglio, C. (2025). Programming IoT systems: A focused conceptual framework and survey of approaches. INTERNET OF THINGS, 31, 101548-101574 [10.1016/j.iot.2025.101548].

Programming IoT systems: A focused conceptual framework and survey of approaches

Roberto Casadei;
2025

Abstract

Any software engineer of Internet of Things (IoT) systems deals with three macro issues: how to perceive the properties of interest through sensors (sensing facet), how to process such information to decide what to do to achieve the system goals (processing facet), and how to enact such decisions by affecting the IoT system itself and its deployment environment accordingly (actuation facet). For each, one can either develop ad-hoc solutions from scratch, with mainstream programming languages, or build on top of existing IoT-specific software libraries, frameworks, and platforms. Here, we survey the broad state of the art of “IoT programming”, with a focus on clarifying which and how programming paradigms and platforms deal with four key features demanded by modern IoT systems: scale-independence, situatedness, adaptiveness, and opportunistic deployment, along the aforementioned three facets. We motivate such needs by describing compelling contemporary and near future scenarios. Then, we propose a reference conceptual framework of programming IoT systems with the goal of (i) uncovering which research areas are mostly active in IoT programming, and (ii) placing the state of the art at the intersection between the appropriate features and facets, to both (iii) clarify which approaches are most suited for different kinds of tasks, and (iv) emphasising open challenges. This conceptual framework is a novel contribution in the landscape of IoT programming surveys, and is intended to be a practical aid for researchers and practitioners that are deciding which computational tools (e.g. languages and platforms) to adopt while building their own IoT systems.
2025
Casadei, R., Fornari, F., Mariani, S., Savaglio, C. (2025). Programming IoT systems: A focused conceptual framework and survey of approaches. INTERNET OF THINGS, 31, 101548-101574 [10.1016/j.iot.2025.101548].
Casadei, Roberto; Fornari, Fabrizio; Mariani, Stefano; Savaglio, Claudio
File in questo prodotto:
Eventuali allegati, non sono esposti

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11585/1008396
 Attenzione

Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo

Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? 0
social impact