66 research outputs found

    Enabling High-Level Application Development in Internet of Things

    No full text
    The Internet of Things (IoT) combines Wireless Sensor and Actuation Networks (WSANs), Pervasive computing, and the elements of the ''traditional'' Internet such as Web and database servers. This leads to the dual challenges of scale and heterogeneity in these systems, which comprise a large number of devices of different characteristics. In view of the above, developing IoT applications is challenging because it involves dealing with a wide range of related issues, such as lack of separation of concerns, need for domain experts to write low level code, and lack of specialized domain specific languages (DSLs). Existing software engineering approaches only cover a limited subset of the above-mentioned challenges. In this work, we propose an application development process for the IoT that aims to comprehensively address the above challenges. We first present the semantic model of the IoT, based on which we identify the roles of the various stakeholders in the development process, viz., domain expert, software designer, application developer, device developer, and network manager, along with their skills and responsibilities. To aid them in their tasks, we propose a model-driven development approach which uses customized languages for each stage of the development process: Srijan Vocabulary Language SVL for specifying the domain vocabulary, Srijan Architecture Language(SAL) for specifying the architecture of the application, and Srijan Network Language SNL for expressing the properties of the network on which the application will execute; each customized to the skill level and area of expertise of the relevant stakeholder. For the application developer specifying the internal details of each software component, we propose the use of a customized generated framework using a language such as Java. Our DSL-based approach is supported by code generation and task-mapping techniques in an application development tool developed by us. Our initial evaluation based on two realistic scenarios shows that the use of our techniques/framework succeeds in improving productivity while developing IoT applications

    Enabling High-Level Application Development in Internet of Things

    Full text link
    The Internet of Things (IoT) combines Wireless Sensor and Actuation Networks (WSANs), Pervasive computing, and the elements of the ''traditional'' Internet such as Web and database servers. This leads to the dual challenges of scale and heterogeneity in these systems, which comprise a large number of devices of different characteristics. In view of the above, developing IoT applications is challenging because it involves dealing with a wide range of related issues, such as lack of separation of concerns, need for domain experts to write low level code, and lack of specialized domain specific languages (DSLs). Existing software engineering approaches only cover a limited subset of the above-mentioned challenges. In this work, we propose an application development process for the IoT that aims to comprehensively address the above challenges. We first present the semantic model of the IoT, based on which we identify the roles of the various stakeholders in the development process, viz., domain expert, software designer, application developer, device developer, and network manager, along with their skills and responsibilities. To aid them in their tasks, we propose a model-driven development approach which uses customized languages for each stage of the development process: Srijan Vocabulary Language SVL for specifying the domain vocabulary, Srijan Architecture Language(SAL) for specifying the architecture of the application, and Srijan Network Language SNL for expressing the properties of the network on which the application will execute; each customized to the skill level and area of expertise of the relevant stakeholder. For the application developer specifying the internal details of each software component, we propose the use of a customized generated framework using a language such as Java. Our DSL-based approach is supported by code generation and task-mapping techniques in an application development tool developed by us. Our initial evaluation based on two realistic scenarios shows that the use of our techniques/framework succeeds in improving productivity while developing IoT applications

    Environnement de développement d'applications pour l'Internet des objets

    No full text
    Application development in the Internet of Things (IoT) is challenging because it involves dealing with a wide range of related issues such as lack of separation of concerns, and lack of high-level of abstractions to address both the large scale and heterogeneity. Moreover, stakehol- ders involved in the application development have to address issues that can be attributed to different life-cycles phases when developing applications. First, the application logic has to be analyzed and then separated into a set of distributed tasks for an underlying network. Then, the tasks have to be implemented for the specific hardware. Apart from handling these issues, they have to deal with other aspects of life-cycle such as changes in application requirements and deployed devices. Several approaches have been proposed in the closely related fields of wireless sensor network, ubiquitous and pervasive computing, and software engineering in general to address the above challenges. However, existing approaches only cover limited subsets of the above mentioned challenges when applied to the IoT. This thesis proposes an integrated approach for addressing the above mentioned challenges. The main contributions of this thesis are: (1) a development methodology that separates IoT application development into different concerns and provides a conceptual framework to develop an application, (2) a development framework that implements the development methodology to support actions of stakeholders. The development framework provides a set of modeling languages to specify each development concern and abstracts the scale and heterogeneity related complexity. It integrates code generation, task-mapping, and linking techniques to provide automation. Code generation supports the application develop- ment phase by producing a programming framework that allows stakeholders to focus on the application logic, while our mapping and linking techniques together support the deployment phase by producing device-specific code to result in a distributed system collaboratively hosted by individual devices. Our evaluation based on two realistic scenarios shows that the use of our approach improves the productivity of stakeholders involved in the application development

    Environnement de développement d'applications pour l'Internet des objets

    No full text
    Application development in the Internet of Things (IoT) is challenging because it involves dealing with a wide range of related issues such as lack of separation of concerns, and lack of high-level of abstractions to address both the large scale and heterogeneity. Moreover, stakehol- ders involved in the application development have to address issues that can be attributed to different life-cycles phases when developing applications. First, the application logic has to be analyzed and then separated into a set of distributed tasks for an underlying network. Then, the tasks have to be implemented for the specific hardware. Apart from handling these issues, they have to deal with other aspects of life-cycle such as changes in application requirements and deployed devices. Several approaches have been proposed in the closely related fields of wireless sensor network, ubiquitous and pervasive computing, and software engineering in general to address the above challenges. However, existing approaches only cover limited subsets of the above mentioned challenges when applied to the IoT. This thesis proposes an integrated approach for addressing the above mentioned challenges. The main contributions of this thesis are: (1) a development methodology that separates IoT application development into different concerns and provides a conceptual framework to develop an application, (2) a development framework that implements the development methodology to support actions of stakeholders. The development framework provides a set of modeling languages to specify each development concern and abstracts the scale and heterogeneity related complexity. It integrates code generation, task-mapping, and linking techniques to provide automation. Code generation supports the application develop- ment phase by producing a programming framework that allows stakeholders to focus on the application logic, while our mapping and linking techniques together support the deployment phase by producing device-specific code to result in a distributed system collaboratively hosted by individual devices. Our evaluation based on two realistic scenarios shows that the use of our approach improves the productivity of stakeholders involved in the application development

    Enabling high-level application development for the internet of things

    No full text
    Application development in the Internet of Things (IoT) is challenging because it involves dealing with related issues such as lack of separation of concerns, and lack of high-level of abstractions to address both the large scale and heterogeneity. Moreover, stakeholders have to address issues that can be attributed to different life-cycles phases. First, the application logic has to be analyzed and then separated into a set of distributed tasks for an underlying network. Then, the tasks have to be implemented for the specific hardware. Apart from this, they have to deal with other aspects of life-cycle such as changes in application requirements and devices. Several approaches have been proposed in the closely related fields of WSN, ubiquitous and pervasive computing, and software engineering in general to address these challenges. However, existing approaches only cover limited subsets of challenges. This thesis proposes an integrated approach for addressing the above mentioned challenges. The main contributions of thesis are: (1) a development methodology that separates IoT application development into different concerns and provides a conceptual framework to develop an application, (2) a development framework that implements the development methodology to support actions of stakeholders. The development framework provides a set of modeling languages to specify each development concern and abstracts the scale and heterogeneity related complexity. It integrates code generation, task-mapping, and linking techniques to provide automation. Our evaluation based on two realistic scenarios shows that the use of our approach improves the productivity of stakeholders.Le développement d'applications pour l'Internet des Objets (IdO) est rendu difficile par plusieurs problèmes, notamment l'absence de séparation des préoccupations ou encore le manque d'abstractions de haut niveau capables d'en représenter la très grande échelle et l'hétérogénéité. De plus, les acteurs doivent gérer les problèmes propre à chaque étape de son cycle de vie, tels que d'éventuels changements d'exigences ou encore la phase de déploiement.Pour résoudre ces problèmes, plusieurs approches ont été proposées dans des domaines proches, tels que les réseaux de capteurs sans fil, l'informatique ubiquitaire ou pervasive, et l'ingénierie logicielle. Cependant, dans le cadre de l'IdO, les approches existantes ne couvrent pas l'ensemble des problèmes précédemment évoqués. De fait, cette thèse propose (1) une méthodologie de développement d'applications pour l'IdO, avec une séparation claire des préoccupations et un cadre structuré pour la conception de ces applications, et (2) un framework de développement basé sur cette méthodologie, avec la prise en charge les actions exprimées par les différents acteurs. Le framework met à disposition un ensemble de langages permettant de modéliser chaque préoccupation et d'abstraire les problématiques liées à l'échelle et l'hétérogénéité. De nombreuses actions sont alors automatisées au moyen de techniques variées, telles que la génération de code, le placement dynamique de tâche ou encore l'assemblage. En évaluant notre approche dans le cadre de deux scénarios réels, nous montrons que notre approche améliore significativement la productivité des différents acteurs au sein du processus de développement.PARIS-BIUSJ-Mathématiques rech (751052111) / SudocSudocFranceF

    Enabling High-Level Application Development for the Internet of Things

    Full text link
    International audienceApplication development in the Internet of Things (IoT) is challenging because it involves dealing with a wide range of related issues such as lack of separation of concerns, and lack of high-level of abstractions to address both the large scale and heterogeneity. Moreover, stakeholders involved in the application development have to address issues that can be attributed to different life-cycles phases. when developing applications. First, the application logic has to be analyzed and then separated into a set of distributed tasks for an underlying network. Then, the tasks have to be implemented for the specific hardware. Apart from handling these issues, they have to deal with other aspects of life-cycle such as changes in application requirements and deployed devices. Several approaches have been proposed in the closely related fields of wireless sensor network, ubiquitous and pervasive computing, and software engineering in general to address the above challenges. However, existing approaches only cover limited subsets of the above mentioned challenges when applied to the IoT. This paper proposes an integrated approach for addressing the above mentioned challenges. The main contributions of this paper are: (1) a development methodology that separates IoT application development into different concerns and provides a conceptual framework to develop an application, (2) a development framework that implements the development methodology to support actions of stakeholders. The development framework provides a set of modeling languages to specify each development concern and abstracts the scale and heterogeneity related complexity. It integrates code generation, task-mapping, and linking techniques to provide automation. Code generation supports the application development phase by producing a programming framework that allows stakeholders to focus on the application logic, while our mapping and linking techniques together support the deployment phase by producing device-specific code to result in a distributed system collaboratively hosted by individual devices. Our evaluation based on two realistic scenarios shows that the use of our approach improves the productivity of stakeholders involved in the application development
    corecore