{"title":"Programming IoT systems: A focused conceptual framework and survey of approaches","authors":"Roberto Casadei , Fabrizio Fornari , Stefano Mariani , Claudio Savaglio","doi":"10.1016/j.iot.2025.101548","DOIUrl":null,"url":null,"abstract":"<div><div>Any software engineer of Internet of Things (IoT) systems deals with three macro issues: how to perceive the properties of interest through sensors (<em>sensing</em> facet), how to process such information to decide what to do to achieve the system goals (<em>processing</em> facet), and how to enact such decisions by affecting the IoT system itself and its deployment environment accordingly (<em>actuation</em> 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 <em>programming paradigms and platforms</em> deal with four key features demanded by modern IoT systems: <em>scale-independence</em>, <em>situatedness</em>, <em>adaptiveness</em>, and <em>opportunistic deployment</em>, along the aforementioned three facets. We motivate such needs by describing compelling contemporary and near future scenarios. Then, we propose a reference <em>conceptual framework of programming IoT systems</em> with the goal of <em>(i)</em> uncovering which research areas are mostly active in IoT programming, and <em>(ii)</em> placing the state of the art at the intersection between the appropriate features and facets, to both <em>(iii)</em> clarify which approaches are most suited for different kinds of tasks, and <em>(iv)</em> 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.</div></div>","PeriodicalId":29968,"journal":{"name":"Internet of Things","volume":"31 ","pages":"Article 101548"},"PeriodicalIF":6.0000,"publicationDate":"2025-02-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Internet of Things","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S2542660525000617","RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, INFORMATION SYSTEMS","Score":null,"Total":0}
引用次数: 0
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.
期刊介绍:
Internet of Things; Engineering Cyber Physical Human Systems is a comprehensive journal encouraging cross collaboration between researchers, engineers and practitioners in the field of IoT & Cyber Physical Human Systems. The journal offers a unique platform to exchange scientific information on the entire breadth of technology, science, and societal applications of the IoT.
The journal will place a high priority on timely publication, and provide a home for high quality.
Furthermore, IOT is interested in publishing topical Special Issues on any aspect of IOT.