Download presentation
Presentation is loading. Please wait.
Published byWilliam Dennis Modified over 7 years ago
1
Development of IoT-based Applications for Smart Cities
Carlos Kamienski
2
Agenda Motivation IoT & Smart Cities Software Development for IoT
Related Work: IoTLink, IoTSuite, Node-RED, FIWARE The IMPReSS Project An SDP for IoT-based Applications Energy-Efficiency Management in Smart Buildings Research Challenges Final Remarks
3
About Me Professor of Computer Science in the Federal University of ABC (UFABC): new university (10 years) PhD in Computer Science (UFPE/Brazil – 2003) +20 years working with networking and telecom 18 years experience with research in computer networks and distributed systems Last three years working with IoT-based application development for energy efficiency management in smart buildings (IMPReSS Project) Current research interests: IoT, Smart Cities, network softwarization, cloud/fog computing Technologies for supporting Smart Cities
4
Development of IoT-based Applications for Smart Cities
Motivation Development of IoT-based Applications for Smart Cities
5
Motivation Application development for IoT is challenging
It involves a wide range of related issues Lack of separation of concerns (division of roles and skills) Ex.: domain expertise, deployment-specific knowledge, application design and implementation knowledge, platform- specific knowledge Lack of high-level abstractions Large scale & Heterogeneity Different lifecycle phases have to be addressed Development, deployment, maintenance Patela, P., Cassoub, D., Enabling high-level application development for the Internet of Things, The Journal of Systems and Software 103(2015) 62–84.
6
Motivation Many challenging issues still need to be addressed before a highly effective software platform for Smart Cities can be created Enabling interoperability between city’s multiple systems Guaranteeing citizens’ privacy Managing large amounts of data Supporting the required scalability Dealing with a large variety of sensors Santana, E., Chaves, A., Gerosa, M., Kon, F., Milojicic, D., Software Platforms for Smart Cities: Concepts, Requirements, Challenges, and a Unified Reference Architecture, arXiv: v2, 2016.
7
Motivation IoT-based applications face many challenges
Huge numbers of sensors and actuators Mixed-critical applications that require real-time actions Need of automated systems based on context-aware management for adapting their behavior to current environment conditions Kamienski, C., et. al, Application Development for the Internet of Things: A Context-Aware Mixed Criticality Systems Development Platform, Computer Communications, October 2016.
8
Motivation The development of IoT-enabled applications still depends on specific knowledge and tools that prevents it to be widespread Many software components have to be engineered from scratch requiring huge amounts of effort Developers must have a deep understanding of Technologies New application domains The interplay with legacy systems Kamienski, C., et. al, Application Development for the Internet of Things: A Context-Aware Mixed Criticality Systems Development Platform, Computer Communications, October 2016.
9
Motivation IoT development presents significant challenges for inexperienced developers Wide range of expertise required, to incorporate hardware, software and networking issues Lack of integrated development tools Different programming languages required Available tools aimed at professional developers with high flexibility and extensive features Steep learning curve for entry-level developers Pramudianto, F., Eisenhauer, M., Kamienski, C., Sadok, D., Souto, E., Connecting the Internet of Things Rapidly Through a Model Driven Approach, WF-IoT 2016.
10
Development of IoT-based Applications for Smart Cities
IoT and Smart Cities Development of IoT-based Applications for Smart Cities
11
Internet of Things (IoT)
The basic idea of IoT is the pervasive presence around us of a variety of things or objects (such as Radio-Frequency IDentification (RFID), tags, sensors, actuators, mobile phones, etc.) – which, through unique addressing schemes, are able to interact with each other and cooperate with their neighbors to reach common goals Atzoria, L., Ierab, A., Morabitoc, G., "The Internet of Things: A survey", Computer Networks, 54(15), pp , October 2010.
12
Internet of Things (IoT)
Sensors & Actuators Connectivity People & Processes
13
Internet of Things (IoT)
Sensors & Actuators Connectivity People & Processes
14
Array of Things (Chicago) (arrayofthings.github.io)
15
Smart Cities Cities are smart when investments in human and social capital and traditional (transport) and modern (ICT) communication infrastructure fuel sustainable economic growth and a high quality of life, with a wise management of natural resources, through participatory governance Caragliu, A., Del Bo, C., Nijkamp, P. (2011) “Smart Cities in Europe”, Journal of Urban Technology, vol. 18, no. 2, pp
16
Smart Cities (by Cisco)
17
Urban Computing Urban computing is a process of acquisition, integration, and analysis of big and heterogeneous data generated by a diversity of sources in urban spaces, such as sensors, devices, vehicles, buildings, and human, to tackle the major issues that cities face, e.g., air pollution, increased energy consumption and traffic congestion Zheng, Y. et. al, "Urban Computing: Concepts, Methodologies, and Applications", ACM Transactions on Intelligent Systems and Technology, 6(2), July 2014.
18
Urban Computing Zheng, Y. et. al, "Urban Computing: Concepts, Methodologies, and Applications", ACM Transactions on Intelligent Systems and Technology, 6(2), July 2014.
19
Urban Computing Zheng, Y. et. al, "Urban Computing: Concepts, Methodologies, and Applications", ACM Transactions on Intelligent Systems and Technology, 6(2), July 2014.
20
Software Development for IoT
Development of IoT-based Applications for Smart Cities
21
Application Development for IoT
What is needed to facilitate and streamline software/application development for IoT? Broadly, two classes of software tools Backend: Middleware Components Frontend: GUI Components
22
Software Architectures for IoT
Software architecture encompasses the set of significant decisions about the organization of a software system IoT-A Project Architectural Reference Model Preliminary set of buildings blocks IoT Domain Model IoT Services Virtual Entities IoT-A Functional Model Different functionalities for IoT
23
IoT-A Architecture
24
Design Issues of Middleware for IoT
Rapid software development of interoperable IoT services and applications requires Middleware components System development tools System deployment tools Common middleware services used by different application domains are necessary Avoid developing extremely focused and vertical applications not able to interact Razzaque, M., Milojevic-Jevric, M., Palade, A., Clarke, S. "Middleware for Internet of Things: A Survey", IEEE Internet of Things Journal, 3(1), February
25
Middleware Functional Requirements
Resource discovery Ex: sensors, actuators Resource management Ex: QoS Data management Acquisition, processing, storage Event management Code management Code allocation, code migration Razzaque, M., Milojevic-Jevric, M., Palade, A., Clarke, S. "Middleware for Internet of Things: A Survey", IEEE Internet of Things Journal, 3(1), February
26
Middleware Nonfunctional Requirements
Scalability Millions of sensors Real time or timeliness Quick response time Reliability and availability Service continuity Security and privacy Monitoring systems may disclose personal information Ease-of-deployment Deployment should not require expert knowledge Popularity Continuous support and extensions Razzaque, M., Milojevic-Jevric, M., Palade, A., Clarke, S. "Middleware for Internet of Things: A Survey", IEEE Internet of Things Journal, 3(1), February
27
Middleware Architectural Requirements
Programming abstraction (API) Interoperable Service oriented Adaptive Context-aware Autonomous Distributed
28
Data Management – Data Architectures
Data management is challenging in IoT-based Applications for Smart Cities Many requirements Real-time and batch processing Scalability Many existing frameworks Apache Kafka, Hadoop, Spark, Storm, Samza, etc. Data Architectures Lambda Architecture Kappa Architecture
29
Lambda Architecture (Inventor: Nathan Marz)
30
Lambda Architecture (Inventor: Nathan Marz)
31
Lambda Architecture (Inventor: Nathan Marz)
32
Apache Kafka
33
Lambda Architecture - Analysis
Advantages Captures requirements of both batch and stream processing Highlights the problem of data reprocessing when code changes Retains input data unchanged Disadvantage Two different codes must be maintained: batch and stream
34
Kappa Architecture (Inventor: Jay Kreps)
35
Kappa Architecture (Inventor: Jay Kreps)
36
Kappa Architecture (Inventor: Jay Kreps)
37
Context Aware Systems “Context-aware systems are able to adapt their operations to the current context without explicit user intervention and thus aim at increasing usability and effectiveness by taking environmental context into account” Baldauf, M., Dustdar, S., Rosenberg, F., “A survey on context-aware systems”, Intl., Journal of Ad Hoc and Ubiquitous Computing, 2(4), 2007.
38
Context Aware Systems Context Entities
Usually “context” refers to locations “any information that can be used to characterize the situation of entities that are considered relevant to the interaction between user and an application, including the user and the application themselves.” Dey, A., Abowd, G., “Towards a better understanding of context and context-awareness”, Workshop on the What, Who, Where, When and How of Context-Awareness, 2007. Entities Places: rooms, buildings etc. People: individuals, groups Things: physical objects, computer components etc.
39
Development Tools for IoT
Tools for supporting developers to create IoT applications Need A fully integrated tool that frees IoT developers from dealing with specific technological challenges Network protocols, data formats, data management The process of developing IoT applications is still a complex task While the number of connected things increases rapidly and the volume of data is getting overwhelming
40
Development Tools: IoTLink
IoTLink is designed to support inexperienced developers connecting different IoT components rapidly IoTLink adopts a model-driven development (MDD) approach Once the model has been defined, IoTLink is able to generate the software artifacts, representing the physical objects Implemented as an Eclipse plugin IoTLink is faster than writing Java code for linking components PhD Thesis MDD Increase the abstraction level for developers. Why this is better? Solution & problem are defined in the same language Communication between domain experts and developers are easier to maintain. Why this is worst? Lost control of implementation details MDD tools are not as advanced as 3rd gen programming language Mashup development End user developments Similar to MDD for composing, but for Web based service composition Based on flow based programming (Morrison, 2010) IBM’s Node-RED (IoT)
41
Development Tools: IoTLink
Support CEP: SQL-like language to recognize event patterns, sum, avg streams of data Support different input : Web Services, MQTT, Serial, OPC Client Support different output: Web Services, MQTT, Drools Rule engine, actuations Support Template: OOP paradigm (classes as templates). Convert an object to a class. Discover the available Arduino
42
Development Tools: IoTSuite
IoTSuite aims to make IoT application development easy for stakeholders Objectives To separate IoT application development into different concerns To provide high-level modeling languages for IoT To automate IoT application development where possible Compiler, mapper and linker provide automation Developer and User versions PhD Thesis
43
Development Tools: IoTSuite
44
Development Tools: Node-RED
A visual tool for wiring the Internet of Things hardware devices, APIs and online services Browser-based flow editing Flows can be deployed to the runtime in a single-click Built on Node.js Node.js allows the creation of Web servers and networking tools using JavaScript Social Development Flows are stored using JSON which can be easily imported and exported for sharing with others Supported by IBM
45
Development Tools: Node-RED
A visual tool for wiring the Internet of Things hardware devices, APIs and online services Browser-based flow editing Flows can be then deployed to the runtime in a single-click Built on Node.js Node.js allows the creation of Web servers and networking tools using JavaScript Social Development Flows are stored using JSON which can be easily imported and exported for sharing with others
46
Development Tools: Node-RED
A visual tool for wiring the Internet of Things hardware devices, APIs and online services Browser-based flow editing Flows can be then deployed to the runtime in a single-click Built on Node.js Node.js allows the creation of Web servers and networking tools using JavaScript Social Development Flows are stored using JSON which can be easily imported and exported for sharing with others
47
Development Tools: FIWARE
FIWARE’s mission: “to build an open sustainable ecosystem around public, royalty-free and implementation-driven software platform standards that will ease the development of new Smart Applications in multiple sectors” FIWARE: making it easier to connect to the Internet of Things and to process and analyze Big Data FIWARE provides An OpenStack-based cloud environment A set of open standard APIs European project
48
Development Tools: FIWARE
FIWARE’s mission: “to build an open sustainable ecosystem around public, royalty-free and implementation-driven software platform standards that will ease the development of new Smart Applications in multiple sectors” FIWARE: making it easier to connect to the Internet of Things and to process and analyze Big Data FIWARE provides An OpenStack-based cloud environment A set of open standard APIs
49
Cloud-based Commercial IoT Tools
Salesforce IoT Cloud Amazon AWS IoT SensorCloud ThingWorx IoT Xively IoT Platform
50
Cloud-based Commercial IoT Tools
Salesforce IoT Cloud Amazon AWS IoT SensorCloud ThingWorx IoT Xively IoT Platform
51
Cloud-based Commercial IoT Tools
Salesforce IoT Cloud Amazon AWS IoT SensorCloud ThingWorx IoT Xively IoT Platform
52
Development Tools for Smart Homes: openHAB
openHAB is a software for integrating different home automation systems and technologies into one single solution Features Automation: rule engine, triggers and scripts Single user interface for all systems Vendor-neutral and hardware/protocol-agnostic Developed in Java (runs in JVM) Different home automation technologies Fully open source
53
Development Tools for Smart Homes: openHAB
openHAB is a software for integrating different home automation systems and technologies into one single solution Features Automation: rule engine, triggers and scripts Single user interface for all systems Vendor-neutral and hardware/protocol-agnostic Developed in Java (runs in JVM) Different home automation technologies Fully open source
54
A System Development Platform (SDP) for IoT-based Applications
Development of IoT-based Applications for Smart Cities
55
IMPReSS Project IMPReSS project was a joint EU-Brazil project ( ) IMPReSS aimed at providing a Systems Development Platform (SDP) for enabling rapid and cost effective development of mixed criticality complex systems involving Internet of Things and Services (IoTS) and at the same time facilitates the interplay with users and external systems
56
IMPReSS Project IMPReSS project was a joint EU-Brazil project ( ) IMPReSS aimed at providing a Systems Development Platform (SDP) for enabling rapid and cost effective development of mixed criticality complex systems involving Internet of Things and Services (IoTS) and at the same time facilitates the interplay with users and external systems
57
IMPReSS Domain Model
58
IMPReSS Architecture: Stakeholders (roles)
Creator: IMPReSS Creator, who contributes to the development of the IMPReSS SDP Developer: Application Developer, who uses IMPReSS SDP to develop Applications Integrator: Solution Integrator, who installs, configures and deploys the Application and connects it with other external services and hardware components Recipient: Final Recipient, person affected by the solution, such as owner of a house or audience of a theater
59
IMPReSS Architecture Views
60
IMPReSS Architecture: Creator’s View
61
IMPReSS Architecture: Developer’s View
62
IMPReSS Architecture: Integrator’s View
63
IMPReSS Architecture: Recipient’s View
64
IMPReSS Data Manager The Data Manager provides data and knowledge storage and features retrieval, as well as implements data analysis, stream management and data mining The Data and Knowledge Storage maintains information such as historical sensor data and inferred knowledge, enabling the storage and retrieval of both raw data and enhanced information for other components
65
IMPReSS Data Manager
66
IMPReSS Context Manager
The Context Manager is responsible for adapting system's behavior according to the current context conditions without explicit user intervention, and providing different features such as context templates, context models, context reasoning engine, and algorithms for sensor and data fusion
67
IMPReSS Context Model: Entities
68
IMPReSS Context Manager
69
Adapting Behavior Dynamically
Rules: Drools (JBoss) When rules are changed in Drools Guvnor, it is possible to reload them into the application executing Drools Expert Fusion: Esper (EsperTech) Fusion criteria (SQL like) can be dynamically changed Actions: Java Actions can be dynamically loaded by Java Tracker Finds implicit contexts and counts context execution
70
Context Manager Demo
71
IMPReSS Resource Manager
The Resource Manager provides mixed criticality resource management at device and application levels Device-level Resource Manager Controls the power feed to IoT devices More critical devices are provided with power in case of a power outage Application-level Resource Manager Controls how IoT applications access distributed IoT Resources (i.e., sensors and actuators)
72
IMPReSS Resource Manager
73
IMPReSS Communication Manager
XMPP-based Communication Manager Provides means for abstraction, discovery and seamlessly interconnection of the physical world, i.e. sensors and actuators, with logical entities in order to allow the development and deployment of IoT applications even to non-technical users Provides security features IoT communication infrastructure Resource Adaptation Interface (RAI) IoT Resource Catalogue Lightweight Middleware Infrastructure Network Management Infrastructure IoT communication infrastructure consists of four components: a) The Resource Adaptation Interface (RAI) enables seamless and automatic virtualization of heterogeneous physical IoT resources; b) The IoT Resource Catalogue discovers and keeps track of available IoT resources in the network; c) The Lightweight Middleware Infrastructure allows the system to scale down or up easily for different types of physical communication gateways; d) The Network Management Infrastructure reduces network management effort by automating the association between the physical deployment of IoT gateways and services that access them.
74
IMPReSS Communication Manager
75
GUI: IMPReSS Context Modeler
A Graphical Web-based User Interface for configuring context entities: place, resource, fusion, rule, action, activity, context Context Designer Tool aimed at dealing with the Context Graph Context Graph Represents a context where vertices are entities and edges are data flow between entities
76
Context Modeler
77
Context Monitoring
78
Context Designer
79
Energy-Efficiency Management in Smart Buildings
Development of IoT-based Applications for Smart Cities
80
Scenario: Context-Aware Energy Saving
81
Context-Aware Energy Saving: Initial Rules
82
Context-Aware Energy Saving: Final Rules
83
Scenario: Context-Aware Energy Saving Instantiation of the IMPReSS Architecture
84
Scenario: Energy Consumption Monitoring in Historical Buildings (Teatro Amazonas)
85
Scenario: Energy Consumption Instantiation of the IMPReSS Architecture
86
Energy Consumption Monitoring in Historical Buildings (Teatro Amazonas)
87
Energy Consumption Monitoring in Historical Buildings (Teatro Amazonas)
88
Device-level Mixed-Criticality - Power Outage in a University Campus
Device-level Mixed-Criticality Resource Management can be utilized to handle power outages at UFPE Rules When 70% of the energy is available all the devices below criticality value 100 will be turned off When 40% of the energy is available all the devices below criticality value 200 will be turned off When 10% of the energy is available all the devices below criticality value 300 will be turned off
89
Device-level Mixed-Criticality - Power Outage in a University Campus
90
Scenario: Power Outage Instantiation of the IMPReSS Architecture
91
Development of IoT-based Applications for Smart Cities
Research Challenges Development of IoT-based Applications for Smart Cities
92
Automated Development of IoT-based Applications for Smart Cities
Facilitating IoT-based application development is of paramount importance Current state of the art is not enough for dealing with an ever-increasing demand Smart Cities pose new and complex challenges to software development Ex.: Huge amounts of data that must be collected, stored, processed and transformed into services for citizens Ideas from automated service composition may be used
93
Applications for IoT with Cloud and Fog Computing
Future architectures of data collection, storage and processing will rely on a combination of cloud and fog Fog is aimed at putting computing resources closer to users, to the network edge, thus decreasing delay and broadening coverage How to manage the life cycle of IoT-based applications in a platform that combines cloud and fog?
94
(Big) Data Management for IoT-enabled Smart Cities
One of the main challenges motivated by IoT Data model: how should be a data model to deal with IoT and Smart Cities? Data collection: how should sensor data be collected from a networking point of view? Data storage: how should data be stored efficiently and effectively? Data Fusion: which data? when? how? Data processing Data architectures? Analytics and context-awareness? Event management?
95
IoT-based application development and the network softwarization approach
New technological advances in the networking area may impact or even impose new methodologies for dealing with application development Networks are being softwarized and virtualized Software Defined Networks (SDN) Network Functions Virtualization (NFV) Many network functions needed for in an IoT architecture will be softwarized Middleware should be adapted to cope with these new developments
96
Considerations about connectivity for IoT applications
Connectivity is not available everywhere Disconnections are very frequent A pervasive connectivity infrastructure in our cities is still to come How should applications deal with frequent disconnections? Challenge been analyzed for more than 20 years in the mobile computing area New requirements, new challenges, new solutions…
97
Development of IoT-based Applications for Smart Cities
Final Remarks Development of IoT-based Applications for Smart Cities
98
Final Remarks Application development for IoT and Smart Cities is challenging Software components engineered from scratch Huge numbers of sensors and actuators Different programming languages Data management Streamlining software/application development for IoT-based Smart Cities Backend: Middleware Components Frontend: GUI Components
99
Final Remarks Many initiatives exist, but a general solution is yet to come Academic and Commercial The IMPReSS did not achieve many of its ambitious goals But raised a lot of interesting questions Research Challenges Automated Development Cloud and Fog Computing Data Management Network softwarization Connectivity
100
Development of IoT-based Applications for Smart Cities
Carlos Kamienski
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.