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, 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 work proposes an integrated approach for addressing the above mentioned challenges. The main contributions of this work 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.
This is user manual for IoTSuite. This contains description about how to setup IoTSuite on your PC for programming, how to use development environment provided by IoTSuite.
A step-by-step video guide is available at URL: https://www.youtube.com/watch?v=nS_Je7IzPvM
A tool suite for prototyping internet of things applicationsPankesh Patel
This document describes a ToolSuite for prototyping Sense-Compute-Control (SCC) applications. The ToolSuite aims to enable development of SCC applications with minimal effort from various stakeholders involved. It provides common concepts at different levels like functionality, domain, and deployment to enable reusability. These concepts include entities of interest, sensors, actuators, computational services. The ToolSuite uses domain experts to specify vocabularies, software designers to specify architectures, and application developers to implement application logic. It generates code for different platforms and links all components through a middleware.
IoTSuite: A Framework to Design, Implement, and Deploy IoT ApplicationsPankesh Patel
IoTSuite is a framework that provides modeling languages and automation techniques to design, implement, and deploy IoT applications with reduced development effort compared to existing approaches. It integrates different life-cycle phases like design, implementation, and deployment. Early results show that IoTSuite requires fewer lines of code than general purpose languages or Node-RED to develop a smart home IoT application.
Enabling high level application development for internet of thingsPankesh Patel
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, 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$\colon$ (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.
ConnectTheDots - My Galileo based weather station and first entry into IoTJoe Healy
This document discusses setting up an IoT weather station project using a Galileo board connected to a SparkFun weather shield and Azure services. It describes connecting the Galileo to Azure event hubs to send sensor data, and deploying a sample website to view the data. The document outlines tasks for cloning projects, configuring the Galileo and Azure, and running the scenario to send temperature readings from the weather shield to the website via Azure. It also shares lessons learned around power supplies, running programs on startup, SD card sizes, and networking requirements.
This document summarizes a dissertation report on designing and implementing a SCADA system using wireless sensors to control fire effects in a refinery. The report acknowledges those who helped with the project and states the research aims to understand how to design interactive systems that are useful and save lives. It then discusses requirements for the hardware and software, technical issues considered, and designing the network topology.
Building Kinect applications course _Getting StartedAmal Hichri
This document provides an overview of building Kinect applications. It discusses understanding the Kinect hardware, which includes 7 different sensor types and a motor. It also outlines setting up the Kinect by downloading the SDK, plugging in the device, installing drivers, and testing with a sample app. Finally, it mentions the Kinect Toolkit, which has been included in the SDK since version 1.5 and contains information to help developers get started and optimize their Kinect applications.
How to Develop and Simulate Models with No Coding ExperienceElizabeth Steiner
The document summarizes a webinar on how to develop and simulate models with no coding experience. It discusses using functional analysis and risk analysis to derive requirements. It also describes how to add cost elements and human factors to simulations in Innoslate and Sopatra. The webinar demonstrates building action diagrams to model functionality and linking models to other tools like MATLAB and STK for co-simulation.
This is user manual for IoTSuite. This contains description about how to setup IoTSuite on your PC for programming, how to use development environment provided by IoTSuite.
A step-by-step video guide is available at URL: https://www.youtube.com/watch?v=nS_Je7IzPvM
A tool suite for prototyping internet of things applicationsPankesh Patel
This document describes a ToolSuite for prototyping Sense-Compute-Control (SCC) applications. The ToolSuite aims to enable development of SCC applications with minimal effort from various stakeholders involved. It provides common concepts at different levels like functionality, domain, and deployment to enable reusability. These concepts include entities of interest, sensors, actuators, computational services. The ToolSuite uses domain experts to specify vocabularies, software designers to specify architectures, and application developers to implement application logic. It generates code for different platforms and links all components through a middleware.
IoTSuite: A Framework to Design, Implement, and Deploy IoT ApplicationsPankesh Patel
IoTSuite is a framework that provides modeling languages and automation techniques to design, implement, and deploy IoT applications with reduced development effort compared to existing approaches. It integrates different life-cycle phases like design, implementation, and deployment. Early results show that IoTSuite requires fewer lines of code than general purpose languages or Node-RED to develop a smart home IoT application.
Enabling high level application development for internet of thingsPankesh Patel
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, 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$\colon$ (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.
ConnectTheDots - My Galileo based weather station and first entry into IoTJoe Healy
This document discusses setting up an IoT weather station project using a Galileo board connected to a SparkFun weather shield and Azure services. It describes connecting the Galileo to Azure event hubs to send sensor data, and deploying a sample website to view the data. The document outlines tasks for cloning projects, configuring the Galileo and Azure, and running the scenario to send temperature readings from the weather shield to the website via Azure. It also shares lessons learned around power supplies, running programs on startup, SD card sizes, and networking requirements.
This document summarizes a dissertation report on designing and implementing a SCADA system using wireless sensors to control fire effects in a refinery. The report acknowledges those who helped with the project and states the research aims to understand how to design interactive systems that are useful and save lives. It then discusses requirements for the hardware and software, technical issues considered, and designing the network topology.
Building Kinect applications course _Getting StartedAmal Hichri
This document provides an overview of building Kinect applications. It discusses understanding the Kinect hardware, which includes 7 different sensor types and a motor. It also outlines setting up the Kinect by downloading the SDK, plugging in the device, installing drivers, and testing with a sample app. Finally, it mentions the Kinect Toolkit, which has been included in the SDK since version 1.5 and contains information to help developers get started and optimize their Kinect applications.
How to Develop and Simulate Models with No Coding ExperienceElizabeth Steiner
The document summarizes a webinar on how to develop and simulate models with no coding experience. It discusses using functional analysis and risk analysis to derive requirements. It also describes how to add cost elements and human factors to simulations in Innoslate and Sopatra. The webinar demonstrates building action diagrams to model functionality and linking models to other tools like MATLAB and STK for co-simulation.
The droneONtrap project aims to provide a system for real-time and remote crop disease monitoring using traps installed in fields and occasional data collection from UAVs. The project involves two partners, MAVTech as the leader and FOS as a partner. The traps are designed to be low-maintenance, using batteries, solar panels, and wireless communication to send photos at programmed intervals. The project has demonstrated successful pest detection and handling of multiple clients simultaneously using the trap and server system, but further improvements are still needed.
This document discusses testing challenges for IoT applications in healthcare. It describes how sensors require invasive and independent testing against different devices and versions to ensure safety and accuracy. Testing sensors directly is difficult, so functions may move to smartphones. Connected apps also need rigorous testing using real and synthetic sensor data to validate the application logic and behavior. An effective test approach is proposed using a "Bleno Box" device simulator and JSON files to automate testing the application response to various data inputs across environments while meeting requirements for coverage, automation, scalability, compliance and reporting.
A GUI Crawling-based Technique for Android Mobile Application TestingPorfirio Tramontana
As mobile applications become more complex, specific development tools and frameworks as well as cost-effective testing techniques and tools will be essential to assure the development of secure, high-quality mobile applications.
This paper addresses the problem of automatic testing of mobile applications developed for the Google Android platform, and presents a technique for rapid crash testing and regression testing of Android applications. The technique is based on a crawler that automatically builds a model of the application GUI and obtains test cases that can be automatically executed. The technique is supported by a tool for both crawling the application and generating the test cases. In the paper we present an example of using the technique and the tool for testing a real small size Android application that preliminary shows the effectiveness and usability of the proposed testing approach.
The Internet of Things (IoT) is a network of physical objects (devices, vehicles, buildings, etc.) embedded with electronics, software, sensors & network connectivity that are designed to collect & exchange data. Enterprises are adopting the IoT for the benefits offered, e.g., operations optimization, cost reduction & improved efficiency.
Quality engineering in a world with AI and IoTSTePINForum
The document discusses how quality engineering is changing in an AI and IoT world. It notes that the new world of IT involves things like IoT connected devices, online marketing, continuous supply tracking, and just-in-time production. It also discusses how software is becoming more distributed through microservices and continuous delivery allows for thousands of teams to deploy updates 50 million times per year. Other topics covered include chaos engineering to test systems reliability, using machine learning to help with code analysis and failure prediction, and focusing on fast detection and response to failures rather than trying to prevent them.
The paper focuses on IoT as the latest trending technology in market and the challenges which a tester faces at both manual and automation front. The paper also sheds light on the scope of IoT in agile. The automation techniques which can be used are also elaborated in the same.
Data Driven Applications for the Internet of ThingsRed Ninja Studios
This case study outlines the role Red Ninja Studios played in the user-led design and development of data driven web applications that explore the Internet of Things, the challenges of Big Data and how Hypercat streamlines the development process and mash-up of data to create value.
Nowadays Internet of Things (IoT) is part of the internet that all objects around us. IoT has a very wide and includes variety of objects like electronics product appliances and sensors [4] This research paper aims to design a smart home system by utilizing
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...OW2
Presentation by Hui Song, Senior Scientist, SINTEF. We would like to share our research journey towards enabling DevOps for IoT applications, and how Open Source makes the journey feasible and fun.
DevOps is widely adopted for developing cloud applications, which supports developers in continuously placing software changes directly to production. As companies are including IoT and Edge devices into their IT infrastructures, supporting DevOps for IoT is a must. However, IoT challenges some fundamental assumptions behind DevOps, such as the homogeneous infrastructure and centralized governance, and therefore, breaking-through research is needed. Funded by H2020, 30 people from 12 partners crossing academia and industry gathered to solve these fundamental challenges, which results in full-stack open source tools for automatic deployment, learning-based operation and security monitoring of IoT applications, and risk management of the development process. The tools are evaluated on industrial use cases in intelligent transportation, smart building, and eHealth.
The mass open source tools and communities around IoT development provides the sound foundation for this design research and the opportunities for the further exploitation of the results. In particular, we are proud of spinning off a start-up to commercialize the risk management services in the open source + SaaS model.
The document summarizes a weather Android app project created by two students. It includes sections acknowledging the project guide and department head for their support and guidance. It describes the need for the app to help farmers decide when to irrigate based on weather forecasts. The app overview explains it can be used not just by farmers but for other activities like planning events. It analyzes the economic, operational and technical feasibility of the app. Other sections provide details on requirements, design diagrams, the user interface, and benefits. It concludes the app will enhance farming and is an economically, technically feasible user-friendly solution.
This document discusses IoT and practical laboratories. It begins by outlining the need for cloud computing and IoT professionals due to lack of skills in these areas. It then discusses various IoT-related projects and partnerships that aim to provide online training and qualifications to European SMEs using virtual and remote labs for hands-on learning. Finally, it presents different types of IoT demonstrators that have been developed, including a smart weather station, Raspberry Pi simulator, Raspbian virtual image, smart micro-grid lab, and others. It also discusses the instructional design approach used, which follows four stages of an inquiry learning process: contextualization, orientation, experimentation, and conclusions.
A model driven development framework for developing sense-compute-control app...Pankesh Patel
This document proposes a model-driven development framework for developing Sense-Compute-Control (SCC) applications. SCC applications involve sensors collecting data from the environment, computational services processing the data, and actuators controlling the environment. The framework aims to enable development of SCC applications with minimal effort from stakeholders by integrating modeling languages, addressing SCC characteristics, and automation techniques. It includes vocabulary, architecture, and deployment modeling languages as well as frameworks to generate code for different platforms from the models.
This document provides an overview of cloud computing concepts and platforms from leading cloud providers like Amazon Web Services, Google App Engine, and Microsoft Azure. It discusses cloud characteristics like on-demand access and elastic scaling. It also covers the three main service models (IaaS, PaaS, SaaS) and four deployment models (public, private, hybrid, community). The document reviews features of each provider's cloud environment and compares their computing, storage, and database offerings. It provides an example cost calculation for storing and accessing data on different cloud platforms.
The document discusses component-based development as an approach for information systems development. It provides background on the increasing complexity of software development and the search for new engineering techniques to address business needs. Component-based development breaks down systems into reusable software components that can be assembled to meet specific requirements. Major companies and industry consortia have proposed standards for component software, including OMG/CORBA, Microsoft COM, Sun JavaBeans, and Common Object Request Broker Architecture (CORBA).
- Vinay Mittal is an IT professional with over 10 years of experience in C++ development. He currently works as a Computer Scientist at Adobe India.
- His skills include C/C++, Perl, Unix shell scripting, Javascript, AWS services, SQL databases, version control systems, and UNIX/Linux systems.
- Previous experience includes developing multi-threaded C++ applications at RBS and security applications at CA. At Amazon he worked on product ads and billing systems.
- Education includes a Masters in Computer Science from IIT Roorkee with honors.
Fin fest 2014 - Internet of Things and APIsRobert Greiner
An overview of the core concepts behind the ultra-hyped Internet of Things. We start the presentation with an overview and slight re-classification of what the Internet of Things is. Then, we jump into how to *serve* the internet of things - discussing a homebrew project using the RaspberryPi and Microsoft Azure.
This document summarizes a presentation on model-driven development approaches for mobile and IoT applications. It discusses modeling user interactions and integrating IoT, implementation strategies like code generation from platform-independent models to native or cross-platform code. It also presents an approach for application monitoring and user behavior analysis based on integrating logs from the runtime with the application models. Finally, it discusses barriers to adopting model-driven approaches and results from experiments on modeling effort.
IRJET- A Quality Watch Android Based Application for Monitoring Robotic A...IRJET Journal
This document describes the development of an Android-based augmented reality application to monitor statistics from a robotic arm in a smart industry setting. The application uses the camera on an Android device to capture a real-time view of the robotic arm and recognize it using Google Vision API. Statistics like the number of products processed and defective products are retrieved from a server and overlaid on the camera feed. The goal is to enhance robotic arm efficiency and provide real-time monitoring of the production process. The application and its use of augmented reality, cloud computing, and data visualization aims to help industries better automate processes and maximize production as part of the Industry 4.0 trend.
The droneONtrap project aims to provide a system for real-time and remote crop disease monitoring using traps installed in fields and occasional data collection from UAVs. The project involves two partners, MAVTech as the leader and FOS as a partner. The traps are designed to be low-maintenance, using batteries, solar panels, and wireless communication to send photos at programmed intervals. The project has demonstrated successful pest detection and handling of multiple clients simultaneously using the trap and server system, but further improvements are still needed.
This document discusses testing challenges for IoT applications in healthcare. It describes how sensors require invasive and independent testing against different devices and versions to ensure safety and accuracy. Testing sensors directly is difficult, so functions may move to smartphones. Connected apps also need rigorous testing using real and synthetic sensor data to validate the application logic and behavior. An effective test approach is proposed using a "Bleno Box" device simulator and JSON files to automate testing the application response to various data inputs across environments while meeting requirements for coverage, automation, scalability, compliance and reporting.
A GUI Crawling-based Technique for Android Mobile Application TestingPorfirio Tramontana
As mobile applications become more complex, specific development tools and frameworks as well as cost-effective testing techniques and tools will be essential to assure the development of secure, high-quality mobile applications.
This paper addresses the problem of automatic testing of mobile applications developed for the Google Android platform, and presents a technique for rapid crash testing and regression testing of Android applications. The technique is based on a crawler that automatically builds a model of the application GUI and obtains test cases that can be automatically executed. The technique is supported by a tool for both crawling the application and generating the test cases. In the paper we present an example of using the technique and the tool for testing a real small size Android application that preliminary shows the effectiveness and usability of the proposed testing approach.
The Internet of Things (IoT) is a network of physical objects (devices, vehicles, buildings, etc.) embedded with electronics, software, sensors & network connectivity that are designed to collect & exchange data. Enterprises are adopting the IoT for the benefits offered, e.g., operations optimization, cost reduction & improved efficiency.
Quality engineering in a world with AI and IoTSTePINForum
The document discusses how quality engineering is changing in an AI and IoT world. It notes that the new world of IT involves things like IoT connected devices, online marketing, continuous supply tracking, and just-in-time production. It also discusses how software is becoming more distributed through microservices and continuous delivery allows for thousands of teams to deploy updates 50 million times per year. Other topics covered include chaos engineering to test systems reliability, using machine learning to help with code analysis and failure prediction, and focusing on fast detection and response to failures rather than trying to prevent them.
The paper focuses on IoT as the latest trending technology in market and the challenges which a tester faces at both manual and automation front. The paper also sheds light on the scope of IoT in agile. The automation techniques which can be used are also elaborated in the same.
Data Driven Applications for the Internet of ThingsRed Ninja Studios
This case study outlines the role Red Ninja Studios played in the user-led design and development of data driven web applications that explore the Internet of Things, the challenges of Big Data and how Hypercat streamlines the development process and mash-up of data to create value.
Nowadays Internet of Things (IoT) is part of the internet that all objects around us. IoT has a very wide and includes variety of objects like electronics product appliances and sensors [4] This research paper aims to design a smart home system by utilizing
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...OW2
Presentation by Hui Song, Senior Scientist, SINTEF. We would like to share our research journey towards enabling DevOps for IoT applications, and how Open Source makes the journey feasible and fun.
DevOps is widely adopted for developing cloud applications, which supports developers in continuously placing software changes directly to production. As companies are including IoT and Edge devices into their IT infrastructures, supporting DevOps for IoT is a must. However, IoT challenges some fundamental assumptions behind DevOps, such as the homogeneous infrastructure and centralized governance, and therefore, breaking-through research is needed. Funded by H2020, 30 people from 12 partners crossing academia and industry gathered to solve these fundamental challenges, which results in full-stack open source tools for automatic deployment, learning-based operation and security monitoring of IoT applications, and risk management of the development process. The tools are evaluated on industrial use cases in intelligent transportation, smart building, and eHealth.
The mass open source tools and communities around IoT development provides the sound foundation for this design research and the opportunities for the further exploitation of the results. In particular, we are proud of spinning off a start-up to commercialize the risk management services in the open source + SaaS model.
The document summarizes a weather Android app project created by two students. It includes sections acknowledging the project guide and department head for their support and guidance. It describes the need for the app to help farmers decide when to irrigate based on weather forecasts. The app overview explains it can be used not just by farmers but for other activities like planning events. It analyzes the economic, operational and technical feasibility of the app. Other sections provide details on requirements, design diagrams, the user interface, and benefits. It concludes the app will enhance farming and is an economically, technically feasible user-friendly solution.
This document discusses IoT and practical laboratories. It begins by outlining the need for cloud computing and IoT professionals due to lack of skills in these areas. It then discusses various IoT-related projects and partnerships that aim to provide online training and qualifications to European SMEs using virtual and remote labs for hands-on learning. Finally, it presents different types of IoT demonstrators that have been developed, including a smart weather station, Raspberry Pi simulator, Raspbian virtual image, smart micro-grid lab, and others. It also discusses the instructional design approach used, which follows four stages of an inquiry learning process: contextualization, orientation, experimentation, and conclusions.
A model driven development framework for developing sense-compute-control app...Pankesh Patel
This document proposes a model-driven development framework for developing Sense-Compute-Control (SCC) applications. SCC applications involve sensors collecting data from the environment, computational services processing the data, and actuators controlling the environment. The framework aims to enable development of SCC applications with minimal effort from stakeholders by integrating modeling languages, addressing SCC characteristics, and automation techniques. It includes vocabulary, architecture, and deployment modeling languages as well as frameworks to generate code for different platforms from the models.
This document provides an overview of cloud computing concepts and platforms from leading cloud providers like Amazon Web Services, Google App Engine, and Microsoft Azure. It discusses cloud characteristics like on-demand access and elastic scaling. It also covers the three main service models (IaaS, PaaS, SaaS) and four deployment models (public, private, hybrid, community). The document reviews features of each provider's cloud environment and compares their computing, storage, and database offerings. It provides an example cost calculation for storing and accessing data on different cloud platforms.
The document discusses component-based development as an approach for information systems development. It provides background on the increasing complexity of software development and the search for new engineering techniques to address business needs. Component-based development breaks down systems into reusable software components that can be assembled to meet specific requirements. Major companies and industry consortia have proposed standards for component software, including OMG/CORBA, Microsoft COM, Sun JavaBeans, and Common Object Request Broker Architecture (CORBA).
- Vinay Mittal is an IT professional with over 10 years of experience in C++ development. He currently works as a Computer Scientist at Adobe India.
- His skills include C/C++, Perl, Unix shell scripting, Javascript, AWS services, SQL databases, version control systems, and UNIX/Linux systems.
- Previous experience includes developing multi-threaded C++ applications at RBS and security applications at CA. At Amazon he worked on product ads and billing systems.
- Education includes a Masters in Computer Science from IIT Roorkee with honors.
Fin fest 2014 - Internet of Things and APIsRobert Greiner
An overview of the core concepts behind the ultra-hyped Internet of Things. We start the presentation with an overview and slight re-classification of what the Internet of Things is. Then, we jump into how to *serve* the internet of things - discussing a homebrew project using the RaspberryPi and Microsoft Azure.
This document summarizes a presentation on model-driven development approaches for mobile and IoT applications. It discusses modeling user interactions and integrating IoT, implementation strategies like code generation from platform-independent models to native or cross-platform code. It also presents an approach for application monitoring and user behavior analysis based on integrating logs from the runtime with the application models. Finally, it discusses barriers to adopting model-driven approaches and results from experiments on modeling effort.
IRJET- A Quality Watch Android Based Application for Monitoring Robotic A...IRJET Journal
This document describes the development of an Android-based augmented reality application to monitor statistics from a robotic arm in a smart industry setting. The application uses the camera on an Android device to capture a real-time view of the robotic arm and recognize it using Google Vision API. Statistics like the number of products processed and defective products are retrieved from a server and overlaid on the camera feed. The goal is to enhance robotic arm efficiency and provide real-time monitoring of the production process. The application and its use of augmented reality, cloud computing, and data visualization aims to help industries better automate processes and maximize production as part of the Industry 4.0 trend.
This document provides an overview of IT infrastructure and emerging technologies. It discusses the evolution of IT infrastructure from mainframes to the current cloud and mobile computing era. It describes key technology drivers like Moore's Law and how they have impacted infrastructure. The document outlines current trends in computer hardware and software platforms, including mobile/cloud computing, edge computing, virtualization and open-source software. It also discusses challenges of managing a dynamic IT infrastructure around scalability, investments, governance and total cost of ownership.
The document describes the Wisenet wireless sensor network project. The project aims to use wireless sensor nodes to monitor environmental factors like temperature and humidity in office buildings. The network uses off-the-shelf components like TinyOS, MySQL database, and PHP web interface. The network architecture includes wireless sensor nodes that form self-organizing networks, a server to collect sensor data and power the web interface, and a standard web browser for users to access reports. The system is currently a prototype but aims to expand the network and further develop the software and applications.
The document discusses how the desktop environment is changing with new technologies like virtual desktop infrastructure (VDI), application streaming, and thin clients. It also covers strategic changes like curated computing models and how brain interfaces may replace keyboards and mice by 2020. Finally, it addresses deployment options and new delivery models for IT like public, private, and hybrid clouds.
This document provides an overview of the Topic-Chat project, which aims to develop a chat application for students to discuss different topics and subjects. It includes sections on system analysis, software requirements, selected technologies, system design, and outputs. The key technologies used are Google Cloud Messaging for push notifications, PHP for the server, MySQL for the database, and Android for the client. Diagrams are provided showing the entity relationship, use cases, and system architecture. The outputs demonstrated include admin and student interfaces for registration, login, viewing topics and messages.
With the development of autonomous development
technology, the need for additional applications to be used
inside and outside the vehicle is increasing. As a result of the
literature review, many applications have been developed to
display vehicle data directly on the monitor, with reflections
on glass, and on hardware devices. These applications have
been developed only for a defined problem and for a
particular autonomous system. In this study, a basic
autonomous vehicle software infrastructure and mobile
Augmented Reality application that can work on Android
devices have been developed. The Mobile Augmented Reality
app serves inside and outside the vehicle. In addition, this
application has been shown to support multiple autonomous
system infrastructures.
Towards application development for the physical cyber-social systemsPankesh Patel
This document discusses challenges in developing applications for physical-cyber-social systems due to heterogeneity, large scale, and requiring multiple expertise. It proposes a development framework that separates concerns through high-level programming abstractions and automation to address these challenges. The framework uses vocabulary and architecture languages and frameworks to specify domains and functionality, compiles these into middleware, and links generated code for different devices and platforms.
GIS Technology & Mobile Applications - MTASC 2011 ConferenceJim Tochterman
The document discusses how GIS technology and mobile applications are impacting IT systems. It covers what comprises a mobile GIS solution, how Esri is advancing mobile technology, challenges with mobile GIS, different mobile devices that can be used, how to get started quickly with mobile GIS, an introduction to cloud computing, benefits and risks of cloud computing, how Esri is using the cloud, and security concerns around mobile technology.
The document discusses different types of software and challenges in software engineering. It describes 7 categories of software: system software, application software, engineering/scientific software, embedded software, product-line software, web applications, and artificial intelligence software. It also outlines 4 challenges: ubiquitous computing, netsourcing, open source, and the new economy. Additionally, it presents software engineering as a layered technology with 4 layers: quality focus, process, methods, and tools. Finally, it proposes a generic process framework for software development with 5 activities: communication, planning, modeling, construction, and deployment.
International Journal of Computational Engineering Research(IJCER)ijceronline
International Journal of Computational Engineering Research(IJCER) is an intentional online Journal in English monthly publishing journal. This Journal publish original research work that contributes significantly to further the scientific knowledge in engineering and Technology.
Similar to Towards application development for the internet of things (20)
Getting Started for SMEs in Industry 4.0Pankesh Patel
The document describes an Industry 4.0 assessment tool for manufacturers to evaluate their current position and maturity levels. The tool consists of a questionnaire that covers different assessment dimensions, including current products/services, customer access, value chains/processes, and IT architecture. It provides examples of questions to understand manufacturers' Industry 4.0 practices. The tool was used by a company called Semforex to assess its maturity levels and identify problems and solutions, such as implementing a web portal for online product measurements.
Hands-on Workshop on Building Digital Twin for Factory of the FuturePankesh Patel
The document discusses Digital Twin, a key element of Industry 4.0. It provides an overview of Digital Twin including definitions, examples, and the features and capabilities of Eclipse Ditto, an open source Digital Twin platform. Specifically, it allows [1] creation of virtual representations of physical devices through abstractions and APIs, [2] interaction with and modification of Digital Twins, and [3] searching across large sets of Digital Twins through filtering and querying. The presentation aims to demonstrate how Digital Twin technologies like Eclipse Ditto can help implement key Industry 4.0 use cases.
The document discusses how cloud platforms can help enable Industry 4.0 applications, providing examples of companies using Microsoft Azure and AWS for uses like predictive maintenance, quality assurance, and enhancing services. It also covers technologies on these cloud platforms that can be used to develop Industry 4.0 applications, such as Azure IoT and various Azure preconfigured solutions and accelerators.
Software Tools for Building Industry 4.0 ApplicationsPankesh Patel
The document discusses software tools for building Industry 4.0 applications. It describes challenges like fragmentation, complexity, and lock-in in Industry 4.0. The document presents an approach using middleware and rapid application development tools to address these challenges. Specific tools discussed include Node-RED for rapid prototyping, SMEWB to close gaps between technical experts and software, and IoTSuite as a toolkit for prototyping IoT applications.
System and Software Engineering for Industry 4.0Pankesh Patel
This document provides an overview of Industry 4.0 concepts including:
- Examples of Industry 4.0 use cases like predictive maintenance, quality control, and remote monitoring.
- The Industry 4.0 architecture including devices, edge computing, data lakes, analytics, and applications.
- The technology stack required including connectivity, security, device and data management, analytics, and digital twins.
Accelerating Application Development in the Internet of Things using Model-dr...Pankesh Patel
This document discusses model-driven development approaches for accelerating application development in the Internet of Things (IoT).
It introduces IoTSuite, a toolkit that enables IoT application development with minimal effort through separation of concerns. Domain, functionality, and deployment specifications are compiled to generate programming frameworks. This reduces development time and effort and improves reusability.
It also describes the SMEWB (Subject Matter Expert Workbench), which aims to empower industrial subject matter experts to create, reuse, and deploy analytic algorithms with little coding. It allows dragging and dropping to develop analytic modules and supports various deployment options.
[DOCUMENT]
Smart Factory - App Based Quality MonitoringPankesh Patel
The document discusses the development of an app-based monitoring system to improve quality assurance in manufacturing. It notes that visual inspections currently make up 90% of quality checks but are inefficient. The proposed system would use an app to randomly select visual checks at different steps, upload images for verification, and store them for future reference to create an easy and low-cost quality monitoring solution. Screenshots provide an example of how the app would guide users through recording checks during a sample manufacturing process.
This document discusses accelerating the development of analytic models by subject matter experts (SMEs) at ABB. It describes the traditional process where SMEs worked with developers to create models, which took months to integrate into solutions. The new approach allows SMEs to independently create and evolve models using a drag-and-drop workbench, with models integrated into solutions within minutes by developers. This closes the gaps between SME knowledge and solutions by empowering SMEs as end-user developers and decoupling model development from solution development lifecycles.
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)
attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement
in a Service Oriented Architecture (SOA). We use the third
party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.
Enabling high level application development for internet of thingsPankesh Patel
This document proposes an approach for enabling high-level application development for the Internet of Things (IoT). The approach addresses challenges like heterogeneity, scale, and the involvement of multiple expertise through: 1) modeling languages that abstract heterogeneity and scale, 2) clear division of roles for stakeholders, and 3) code generators that automate the development process and reduce hand-written code. It presents a smart buildings example and evaluation showing the approach reduces development efforts by generating 74-72% of code compared to manual development. Ongoing work includes further evaluation and support for end-user applications and evolution.
Application development for the internet of thingsPankesh Patel
1. The document discusses application development challenges for the Internet of Things (IoT), including heterogeneity of devices, large scale, lack of separation of concerns, and life-cycle issues.
2. It proposes a conceptual model that classifies IoT concepts and relates development concerns to promote reusability.
3. A multi-stage model-driven approach is presented using a set of modeling languages to abstract heterogeneity, scale, and support automation across development stages.
Enabling High Level Application Development In The Internet Of ThingsPankesh Patel
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
dierent 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 specic 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 rst 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 lan-
guages 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.
Towards application development for the internet of things updatedPankesh Patel
The document discusses developing a domain model for Internet of Things (IoT) applications. It identifies common IoT behaviors like data collection, sense-compute-actuate, and intermittent sensing. An IoT domain model is presented that captures key concepts like entities, sensors, actuators, devices, and software components, as well as their relationships. The domain model provides benefits like a common understanding of IoT terminology, modeling invariant properties, and enabling modular application design.
Towards application development for the internet of things updated
Towards application development for the internet of things
1. Towards Application Development for
the Internet of Things*
Pankesh Patel
ABB Corporate Research, India
* This research work is partially done at University of Paris VI and French National Institute
for Research in Computer Science & Automation (INRIA), Paris, France
2. Growing number of ``things”
2
Temperature
sensors Fire
alarmsSmoke
detectors
Lights
Traffic
signals
Water
leakage
detector
Smart
phones
Parking space
controller
Air pollution
controllers
Structural
health
monitors
HVAC
system
Smart
car
Image credit: http://www.libelium.com/
3. Internet of Things (IoT)
3
“A global networked infrastructure, linking physical and virtual things
through the exploitation of data capture and communication
capability.”
[CASAGRAS project] http://www.grifs-project.eu/data/File/CASAGRAS%20FinalReport%20(2).pdf
4. Examples
Road traffic monitoring & control
aims to maximize the flow of vehicle on the road
Personalized HVAC system
image credit to organizations, who own copyrights of used images
5. Goal
5
“Enable development** of IoT applications with
minimal effort by various stakeholders* involved in
development process”
**Development -- “a set of related activities that leads to a production of a software product.’’ [Ian Sommerville,
Software Engineering (9th edition) , 2010]
*Stakeholders in software engineering to mean – people, who are involved in the application development.
Examples of stakeholders defined in [Taylor et al., Software Architecture, 2009] are software designer,
developer, domain expert, technologist, etc.
6. Challenges
6
Heterogeneity
Types of devices (e.g., sensor, actuator,
storage, processing elements, user
interfaces)
Interaction modes (e.g., publish/subscribe,
request/response, command, periodic)
Data types (e.g., date, number, time, string,
Boolean)
Device properties (e.g., memory,
processing constraint, mobile)
Protocols (e.g., MQTT, CoAP)
Platforms (e.g., Android, JavaSE)
Spreads into the application code, Makes
the portability of code difficult
image credit to organizations, who own copyrights of used images
7. 7
Heterogeneity
Large number
Application logic in terms of
a set of distributed tasks for
hundreds
to thousands of devices
To reason at such levels of number is
impractical in general
image credit to organizations, who own copyrights of used images
Challenges
8. 8
Heterogeneity
Large number
Multiple expertise
Knowledge from multiple
concerns intersect
Application domain
Software design
Algorithm design,
programming languages
Platform-specific
knowledge
Clear conflict with skill possessed by
the individual developer
Deployment
area
image credit to organizations, who own copyrights of used images
Challenges
9. 9
Heterogeneity
Large number
Multiple expertise
Different life-
cycle phases
Software development life cycle phases -- requirement analysis, design, implementation, testing, evolution
and maintenance [Ian Sommerville, Software Engineering (9th edition) , 2010]
Design:Application logic has to be analyzed and then
separated into a set of distributed tasks.
Implementations: Application has to be implemented
for heterogeneous platforms
Deployment: Tasks of an application have to be
decomposed in a (large) number of heterogeneous
devices.
Challenges
10. Existing approaches
10
Node-centric programming
Think in terms of activities of individual
devices & explicitly encode their
interactions with other devices.
Write a program that reads sensing data
from sensing devices, aggregates data
pertaining to the some external events,
decides where to send it addressed by
ID & communicates with actuators if
needed
Olympus with Gaia [Ranganathan et al., Percom, 2005], ContextToolkit [Dey
et al., HCI, 2001], TinyOS [Levis et al., MDM, 2006], Physical virtual mashup
[Guinard et al., NSS, 2010]
image credit to organizations, who own copyrights of used images
11. Existing approaches
11
Node-centric programming
Database approach
Queries to SN
Collects, aggregates, &
sends data to base station
Not flexible to introduce a
customized application logic.
Stakeholder
Base station
queries
collects
result
TinyDB [Madden et al.,TODS ,2005], Semantic streams [Whitehouse et al., ,
EWSN, 2006], TinyREST [Luckenbach et al., REALWSN, 2005], TinySOA
[Aviles-Lopez , SOCA, 2009]
12. Existing approaches
12
Node-centric programming
Database approach
Macro-programming
Abstractions for high-level
collaborative behaviors
Lack of software engineering
methodology to support life
cycle phases – results in difficult
to maintain, reuse, and
platform-dependent design
Regiment [Newton et al., IPSN, 2007], MacroLab [Hnat et al.
, SenSys, 2008]
image credit to organizations, who own copyrights of used images
13. Existing approaches
13
Node-centric programming
Database approach
Macro-programming
Model-driven development
Vertical SoC – reduce app.
development complexity
separating PIM and PSM
Horizontal SoC – separate
different aspects of a system
Transformation and
code generators
PIM
PSM
E.g., J2SE E.g., .Net
PSM…
C1 C2 Cn…
Horizontal
Separation of
Concerns (SoC)
Vertical
separation of
concerns
ATaG [Pathak et al., DCSN, 2011], RuleCaster [Bischoff et al.,
EuroSSC,2006], DiaSuite [Cassou et al., TSE, 2012], PervML
[Serral et al., Journal of Pervasive and Mobile computing, 2010],
Pantagruel [Drey et al., Percom, 2010]
image credit to organizations, who own copyrights of used images
14. Early contributions…
14
A comprehensive approach that utilizes advantages of existing MDD and
WSN macro-programming approaches, while focusing on ease of IoT
application development.
*It includes support programs, code libraries, high-level languages or other software that help stakeholders
to develop and glue together different components of a software product [Ian Sommerville, Software
Engineering (9th edition) , 2010].
Objectives:
Separate development into different concerns (reusability)
Integrate high-level modelling languages (reduce complexity & effort)
Automate development wherever possible (reduce effort)
Development framework*
15. Commonality
at various levels
15
Functionality
(e.g., home
fire detection
Domain
(e.g., building
HVAC)
Deployment
Room
temperature
(e.g. building
automation)
Building fire
state
“Reusability
across concerns”
ABB- BTP
office
ABB-Peenya
office
image credit to organizations, who own copyrights of used images
20. 20
Hello world app in building automation:
Personalized HVAC system
Badge
Reader
badgeDetected
badgeDisappeared
ProfileDB
profile
Proximity
Heater
off()
setTemp()
Temperature
Controller
Device
Device
Device
Device
Device
image credit to organizations, who own copyrights of used images
21. structs:
BadgeStruct
badgeID: String;
badgeEvent:String;
TempStruct
tempValue: double;
unitOfMeasurement: String;
resources:
sensors:
BadgeReader
generate badgeDetected: BadgeStruct;
generate badgeDisappeared: BadgeStruct;
actuators:
Heater
action Off();
action SetTemp(setTemp: TempStruct);
storages:
ProfileDB
generate profile: tempStruct accessed-by
badgeID: String;
21
Hello world app in building automation:
Personalized HVAC system – vocabulary language
Badge
Reader
badgeDetected
badgeDisappeared
ProfileDB
profile
Proximity
Heater
off()
setTemp()
Temperature
Controller
Device
Device
Device
Device
Device
• Abstractions to specify heterogeneous
entities
• One entity description for many instances
22. computationalService:
Proximity
generate tempPref:TempStruct;
consume badgeDetected from region-hops:0:Room;
consume badgeDisappeared from region-hops:0:Room;
request profile;
partition-per:Room;
TemperatureController
consume tempPref from region-hops:0:Room;
command Off() to region-hops:0:Room;
command SetTemp(setTemp) to region-hops:0:Room;
partition-per:Room;
22
Hello world app in building automation:
Personalized HVAC system – architecture language
Badge
Reader
ProfileDB
profile
Heater
off()
setTemp()
Device
Device
Device
Device
Device
Proximity
Temperature
Controller
Scope of
consuming dataScope of
Deployment
To reduce scale, devices can be grouped based on their
spatial relationship
- Cluster head is elected, responsible for processing
data of that cluster.
hops:0:Room
hops:0:Room
Room
Room
badgeDetected
badgeDisappeared
23. 23
Hello world app in building automation:
Personalized HVAC system – deployment language
Badge
Reader
ProfileDB
profile
Heater
off()
setTemp()
Device
Device
Device
Device
Device
Proximity
Temperature
Controller
badgeDetected
badgeDisappeared
Device1:
region:
Building:15 ;
Floor:11;
Room:1;
type:JavaSE;
resources: BadgeReader;
mobile: false;
Device2:
region:
Building:15 ;
Floor:11;
Room:1;
type: Android;
resources: Heater;
mobile: false;
Device3:
...
Type platform a
device runs on
Location of device
Property of a device
is specified individually – Not scalable.
24. Domain
concern
24
Domain
expert
Vocabulary
spec.
Compilation
of vocabulary
Domain expert (e.g. biologist, medical
system designer) understands domain
concepts.
Domain concepts
using vocabulary language
Badge
Reader
badgeDetected
badgeDisappeared
ProfileDB
profile
Proximity
Heater
off()
setTemp()
Temperature
Controller
image credit to organizations, who own copyrights of used images
31. Implementing
device driver
31
public interface IBadgeReader {
public BadgeStruct getBadgeDetectedEvent();
public void getBadgeDetectedEvent(ListenerBadgeDetected handler);
}
Compiler
generates
BadgeReader
generate badgeDetected: BadgeStruct;
public class JavaSEBadgeReader implements IBadgeReader {
@Override
public BadgeStruct getBadgeDetectedEvent() {
// TODO: Write Device Driver
}
@Override
public void getBadgeDetectedEvent(ListenerBadgeDetected handler) {
// TODO: Write Device Driver
}
}
Device
developer
implements
interfaces
image credit to organizations, who
own copyrights of used images
32. Linking
32
Domain
expert
Vocabulary
spec.
Compilation
of vocabulary
Architecture
spec. Compilation
of architecture
Deployment
spec.
Mapper
Application
developer
Application
logic
Architecture
framework
Software designer
Network
manager
Linker
Android
devices
PC
PC
Mapping
files
Combines and packs the code generated by
various stages into packages that can be
deployed on devices.
Generated code
For Device X
Middleware
Device
developer
Device driver
Vocabulary
framework
Device Driver
Sensing/actuating
framework
Middleware
Wrapper
image credit to organizations, who
own copyrights of used images
33. Evaluation
33
Development effort: the effort required to create a new
application.
Reusability: the extend to which software artifacts can be
reused during application development.
Expressiveness: the characteristics of IoT applications that can
be modeled using our approach.
Technological change support: it indicates the support
provided by the approach to change the implementation
platform or programming language.
While the lines of code metric is useful, a number of limitations have been noted. It depends heavily on programming
languages, styles, and stakeholder’s skills. In view of this, we have combined one of well-known metrics – Code coverage (it
defines code which is actually executed, thus it show usefulness of the generated code), with LoC.
34. Example: Home automation
34
Motion sensor to detect the presence of a
moving object
Stove to sense if it is turned on/off
Badge
reader
Smoke
Detector
Fire
alarm
Heater
Data
storage
Temperature
sensor
Room 2
(bedroom)
Room 1
(Kitchen) Room 3
(Meeting
Room)
35. Application1: Personalized HVAC in Bedroom
35
Badge
Reader
badgeDetected
badgeDisappeared
ProfileDB
profile
Proximity
Heater
off()
setTemp()
Temperature
Controller
Device1 Device2
Device3
Device4
Device5
• 5 entities communicating
over MQTT* protocol
*MQTT (Message Queue Telemetry Transport) is a machine-to-machine (M2M)/"Internet of
Things" connectivity protocol. It was designed as an extremely lightweight publish/subscribe
messaging transport.
• 5 devices simulated on
a single PC.
Aim:To demonstrate automation provided by
our approach.
Entities Name Platform
Sensor Badge
Reader
Android
(Simulated)
Storage ProfileDB MySQL
Server
Computation Proximity -
Temperature
Controller
-
Actuator Heater JavaSE
(Simulated)
36. Results…
Lines of code using Metrics 1.3.6 Eclipse plug-in.
Code Coverage using EclEmma Eclipse plug-in
• While considering code coverage, we wanted to measure code coverage of the generated code ,
not application logic, written by Application developer, and device driver, written by Device developer.
• Lines of Device driver code vary
from one platform to other
platform.
• Lines of application logic code
depend on functionalities.
• The other portion of code is unused features (e.g., getters, setters, exception handling, etc.),
which was not executed during experiments.
LoCWriiten
by
Stakeholder
16%
Application
specific
generated LoC
63%
Provided
Wrapper with
Runtime
System LoC
21%
Code Coverage: 84%
37. 37
Motion sensor to detect the presence of a
moving object
Stove to sense if it is turned on/off
Badge
reader
Smoke
Detector
Fire
alarm
Heater
Data
storage
Temperature
sensor
Room 2
(bedroom)
Room 1
(Kitchen) Room 3
(Meeting
Room)
Implement “Fire Mgmt.”
application
Application2: Fire Mgmt.
39. Results…
39
• Device driver code varies from one platform to other platform.
• Lines of application logic code depend on functionalities.
LoCWriiten
by
Stakeholder
17%
Application specific
generated LoC
64%
Provided
Wrapper
with
Runtime
System LoC
19%
Code Coverage: 82%
40. Implementing Fire Mgmt. Application
40
Motion sensor to detect the presence of a
moving object
Stove to sense if it is turned on/off
Badge
reader
Smoke
Detector
Fire
alarm
Heater
Data
storage
Temperature
sensor
Room 2
(bedroom)
Room 1
(Kitchen) Room 3
(Meeting
Room)
Implement “Fire Mgmt.”
application in Room (1-3)
41. 0
20
40
60
80
100
120
Fire detection (in
bedroom)
Fire detection (in
kitchen)
Fire detection (in
meeting room)
LinesofCode
Applications
Vocab. Spec. Arch. Spec. Deploy. Spec. Device Driver Application logic
Reusability
41
We are assuming that device platforms remain same across deployment.
42. Evaluating Reusability…
42
Motion sensor to detect the presence of a
moving object
Stove to sense if it is turned on/off
Badge
reader
Smoke
Detector
Fire
alarm
Heater
Data
storage
Temperature
sensor
Room 2
(bedroom)
Room 1
(Kitchen) Room 3
(Meeting
Room)
Turned on the alarm if the stove is switched on and
when no body in the kitchen – Safety in Kitchen
Manage the heating of the meeting room,
depending on the room’s temperature, when room
is occupied unexpectedly.
1
2
44. Reusability
44 We are assuming that device platforms remain same across deployment.For simplicity, we are assuming that
one device hosts only one entity.
45. Application: Road traffic monitoring & control
45
• Ramp metering: It influences traffic by controlling access to the highway.
One of the techniques to control traffic:
Image credit: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.147.3471&rep=rep1&type=pdf
Usually, this kind of system is divided into disjoint sectors, with each sector usually being controlled depending
on the current status of the sector.
• Speed sensors to measure and report the speeds of vehicles.
• Presence sensors to measure and report the presence of vehicles.
• Ramp signals designed to allow or disallow cars onto the highways.
47. Results: large number
47 • Lines of Device driver code vary from one platform to other platform.
• Lines of application logic code depend on functionalities.
0
20
40
60
80
100
120
140
160
6 8 10 12 14 18 24
LinesofCode
Number of Devices
Vocab. Spec. Arch. Spec. Deploy. Spec. Device Driver Application logic
48. Expressiveness…
48
All application code is available on URL: https://github.com/pankeshlinux
Many solutions exist for developing software in specific application domains (for example HomeOS). Our approach’s
applicability is extended to beyond this particular context. Our approach is not limited to one particular domain. It can be
applied to various other domain as well.
App.
Name
Behaviors Components Platforms Runtime
System
Interaction
Modes
Topology Network
Size
Personalized
HVAC
SCC
loop
Sensor, Storage,
Computational,
Actuator
JavaSE,
Android
MQTT Event-driven,
Req.-Resp.,
Command
Static 5
Fire
Detection
SCC
loop
Sensor,
Computational,
Actuator
JavaSE, MQTT Event-driven,
Periodic,
Command
Static 8
Safety
In Kitchen
SCC
loop
Sensor,
Computational,
Actuator
JavaSE,
Android
iBICOOP Event-driven,
Periodic,
Command
Static 5
Collecting
Avg.Temp. of
Building
Regular
data
collection
Sensor,
Computational,
User Interface
JavaSE, MQTT Periodic,
Command
Static 16
RoadTraffic
Monitoring &
Control
SCC
loop
Sensor,
Computational,
Actuator
JavaSE, MQTT Event-driven,
Periodic,
Command
Static 24
49. Technological change support (1/2)
6/26/201549
Vocabulary
Spec.
Architecture
spec.
Deployment
spec.
Code generator
…
Android
Plug-in
JavaSE
Plug-in
Data
Structures
Parser
JavaSE
files
Android
files
Others
Others
Implemented in ANTLR,
a parser generator from
grammar description
StringTemplateEngine,
a template engine for
generating source code
the system to be specified
independently of the platform
50. Technological change support (2/2)
6/26/201550
Generated code
For Device X
Runtime
System
Middleware
Wrapper
Middleware runs on each individual device and provides a
support for executing distributed tasks.
Wrapper plugs “generated code for a device” and
middleware. It implements interfaces, specified in a
support library, specific to a middleware.
The linker produces generated code for a device.
Device
Wrapper for MQTT middleware is available at URL:
https://github.com/pankeshlinux/IoTSuite-TemplateV2
• Wrapper for iBICOOP middleware is available at URL:
https://github.com/pankeshlinux/ToolSuite
51. Summary & future work
51
Application development challenges
Heterogeneity, large number, multiple expertise, different life-cycle
phases
Existing approaches
Node-centric programming, database, macro programming, MDD
Our approach
Separation of concerns, modeling languages, automation,
development framework
Early results: reduce development effort
Future work
Short term goals:
Integration of cloud-based deployment, integration of CoAP
runtime system (targeted for small low power sensors, switches,
valves, etc.)
Long term-goals:
Supporting testing phase, mapping algorithm, runtime adoption
53. State of the art in IoT Application
Development
53
Comparison* of our approach with state of the art in IoT
application development on various dimensions.
*This work is submitted to GPCE 2015.