Grant: Discovery Grants Program - Individual
Concordia University
$62,000.00
Recommending IoT APIs by Studying the Requirements, Features, and Patterns of IoT Framework APIs
FY 2024-25
Summary
Internet of Things (IoT) systems are prevalent nowadays, with an estimated 15 billion connected devices in 2023. They combine networks of connected devices with software systems that produce information and control physical systems. The components of IoT systems include small devices, e.g., microcontrollers running C programs, Edge devices, e.g., Raspberry Pis running Python scripts, and Cloud servers, e.g., Amazon EMR running Apache Spark. They communicate via dedicated or standard protocols, e.g., MQTT or HTTPs. Developers use these components and protocols via IoT framework APIs (APIs for short).
However, (1) these APIs are used in a variety of contexts and by a diversity of users, often not software developers. (2) They have grown organically from cyber-physical systems, with little systematic standardisation and software-quality consideration. (3) They are driven by the capabilities of the components to which they give access, e.g., types of available sensors. While standards exist, e.g., for communication protocols, many APIs give access to similar capabilities, each in their own way, while others are unique to some components. Only a few APIs apply to several, different components. This variety and heterogeneity in APIs confuse IoT developers, hinder choosing and using IoT components and APIs, and increase vendor and technology lock-ins.
To help IoT developers choose and use IoT components, we must bridge developers' requirements, those fulfilled by IoT frameworks, and the IoT framework APIs and guide developers to explore the large space of all these requirements and APIs. My pioneering research program will relate the requirements of IoT components with the specification and usage of IoT framework APIs through the features and patterns realising these requirements. It is original by studying the relations among and the characteristics of the requirements, features, and patterns of IoT APIs (1) to understand the (dis)similarities among requirements and APIs. It is innovative by producing recommendation systems built on these relations and characteristics (2) to replace the paradigm of random exploration with one of evidence-based recommendation.
For each of my objectives, I will follow multi-method approaches in a combination of qualitative and quantitative analyses. Qualitatively, I will perform systematic literature reviews to collect APIs requirements, features, patterns, and their quality characteristics. I will survey and interview students and professionals to validate the results of the reviews as well as, later, the appropriateness and usefulness of the recommendations. Quantitatively, I will use natural language processing techniques, static and dynamic analyses, as well as historical analysis to collect relevant data from Q&A Web sites, to trace requirements, features, and patterns, to analyse existing APIs and identify different patterns of specification/usage, and to implement recommendation systems using these patterns.
Program
Discovery Grants Program - Individual
Recipient
Location
Quebec, Canada
Recipient Type
Academia
Type
Grant
Source
NSERC's Awards Data
As published
Application id
RGPIN-2024-04742
Name nom
Guéhéneuc, Yann-Gaël
Department département
Computer Science and Software Engineering
Organization id
70
Institution établissement
Concordia University
Province en
Québec
Province fr
Québec
Country en
CANADA
Country fr
CANADA
Fiscal year exercice financier
2024
Competition year année de concours
2024
Award amount
62000
Program id
RGPIN
Program name en
Discovery Grants Program - Individual
Program name fr
Programme de subventions à la découverte - individuelles
Group en
DISCOVERY RESEARCH
Group fr
RECHERCHE AXÉE SUR LA DÉCOUVERTE
Committee code
1507
Committee name en
Computer Science
Committee name fr
Sciences informatiques
Area of application code
802
Area of application group en
Information and communication services
Area of application group fr
Services d'information et de télécommunications
Area of application en
Information systems and technology
Area of application fr
Systèmes d'information et technologie de l'information
Research subject code
2706
Research subject group en
Information technology
Research subject group fr
Technologie de l'information
Research subject en
Software engineering
Research subject fr
Génie logiciel
Field of research list names en
Not available
Field of research list names fr
Non disponible
Socioeconomic objective list names en
Not available
Socioeconomic objective list names fr
Non disponible
Application title
Recommending IoT APIs by Studying the Requirements, Features, and Patterns of IoT Framework APIs
Keywords
apis; frameworks; iot; slr; surveys; interviews; experiments; static analyses; dynamic analyses; historical analyses
Application summary
Internet of Things (IoT) systems are prevalent nowadays, with an estimated 15 billion connected devices in 2023. They combine networks of connected devices with software systems that produce information and control physical systems. The components of IoT systems include small devices, e.g., microcontrollers running C programs, Edge devices, e.g., Raspberry Pis running Python scripts, and Cloud servers, e.g., Amazon EMR running Apache Spark. They communicate via dedicated or standard protocols, e.g., MQTT or HTTPs. Developers use these components and protocols via IoT framework APIs (APIs for short).
However, (1) these APIs are used in a variety of contexts and by a diversity of users, often not software developers. (2) They have grown organically from cyber-physical systems, with little systematic standardisation and software-quality consideration. (3) They are driven by the capabilities of the components to which they give access, e.g., types of available sensors. While standards exist, e.g., for communication protocols, many APIs give access to similar capabilities, each in their own way, while others are unique to some components. Only a few APIs apply to several, different components. This variety and heterogeneity in APIs confuse IoT developers, hinder choosing and using IoT components and APIs, and increase vendor and technology lock-ins.
To help IoT developers choose and use IoT components, we must bridge developers' requirements, those fulfilled by IoT frameworks, and the IoT framework APIs and guide developers to explore the large space of all these requirements and APIs. My pioneering research program will relate the requirements of IoT components with the specification and usage of IoT framework APIs through the features and patterns realising these requirements. It is original by studying the relations among and the characteristics of the requirements, features, and patterns of IoT APIs (1) to understand the (dis)similarities among requirements and APIs. It is innovative by producing recommendation systems built on these relations and characteristics (2) to replace the paradigm of random exploration with one of evidence-based recommendation.
For each of my objectives, I will follow multi-method approaches in a combination of qualitative and quantitative analyses. Qualitatively, I will perform systematic literature reviews to collect APIs requirements, features, patterns, and their quality characteristics. I will survey and interview students and professionals to validate the results of the reviews as well as, later, the appropriateness and usefulness of the recommendations. Quantitatively, I will use natural language processing techniques, static and dynamic analyses, as well as historical analysis to collect relevant data from Q&A Web sites, to trace requirements, features, and patterns, to analyse existing APIs and identify different patterns of specification/usage, and to implement recommendation systems using these patterns.