Enabling high level application development for internet of things
1. Enabling High-Level Application
Development for Internet of Things
Pankesh Patel, Animesh Pathak, Damien Cassou, and Valerie Issarny
Inria Paris Rocquencourt, France
S-CUBE, 12th June, 2013
2. Outline
Characteristics of Internet of Things
Application development challenges
Related work
Our approach
Overview
A simple example
Evaluation
Conclusions
Ongoing and future work
Pankesh Patel et. al.2
3. Characteristics of ``things’’
May have sensors
attached
May have actuators
attached
Can communicate with
other things
Can be involved in
information exchange
between physical and
virtual world
Pankesh Patel et. al.3
4. Internet of Things
A networked infrastructure that connects physical
and virtual things.
[CASAGRAS project] http://www.grifs-project.eu/data/File/CASAGRAS%20FinalReport%20(2).pdf
Pankesh Patel et. al.4
5. Marriage of sensor network and pervasive
computing
Pankesh Patel et. al.5
Internet of things
Sensor network Pervasive computing
Large
Scale
Heterogeneity
[IoTRoadMap] Antoine de Saint-Exupery, Internet of Things Strategic Research Roadmap,
2009
6. Multiple application domains
Pankesh Patel et. al.6
Building
Automation
Traffic Control
and Management Health-care
Internet of things
[IoTSurvey] Luigi Atzori, Antonio lera, Giacomo Morabito, The internet of Things Survey,
2010
7. Outline
Characteristics of Internet of Things
Application development challenges
Related work
Our approach
Overview
A simple example
Evaluation
Conclusion
Ongoing and future work
Pankesh Patel et. al.7
8. Application Development Challenges
Heterogeneity
Types (e.g., sensor, actuator,
storage).
Implementations (e.g., android,
iOS).
Unit of measurement (e.g., C,
F).
Interaction modes
(e.g., publish/subscribe,
request/response, command).
8 Pankesh Patel et. al.
Ideally, it should not be the developer's responsibility
to handle this heterogeneity.
9. Application Development Challenges
Heterogeneity
Large Scale
Hundreds to thousands
of devices equipped with
sensors, actuators,
storages.
9 Pankesh Patel et. al.
Need of adequate abstractions to present the large
scale in suitable manner .
10. Application Development Challenges
Heterogeneity
Large Scale
Multiple expertise
Application domain
Software design
Programming
Language
Distributed system
Device-specific
knowledge
10 Pankesh Patel et. al.
Need of separating all development concerns
according to the stakeholders expertise and skills
11. Application Development Challenges
Heterogeneity
Large Scale
Multiple Expertise
Poor Automation
Interface hardware and
software components
Interface software and
middleware components
Deployment
11 Pankesh Patel et. al.
Ideally, the glue code should be generated, allowing
the stakeholders to focus only on the application
logic.
Distributed Systems
(i.e., middleware)
Application logic
(e.g., calculating avg.
temperature)
Device drivers
(e.g. code for accessing sensor
data from android device)
Application logic
(e.g., calculating avg.
temperature)
12. Outline
Characteristics of IoT
Application development challenges
Related work
Our approach
Overview
A simple example
Evaluation
Conclusion
Ongoing and future work
Pankesh Patel et. al.12
13. Related work
Approaches Motivation Examples Disadvantages
Database • Provide SQL-like
interface
• Address scale for data-
collecting application
• TinyDB
• Cougar
• SINA
• Largely for homogeneous
devices
• Missing development life-
cycle
Library- or
toolkit based
• Offer abstractions to
implement applications
• Address heterogeneity
partially
• Gaia with Olympus
• Context toolkit
• Lots of glue code
• Poor automation at
deployment
• No separation of concerns
for stakeholders
• Missing development life-
cycle
Model-driven • Raise the level of
abstractions in program
specifications (in
UML/textual language)
and transforms into
working implementations
• ATaG
• DiaSuite
• PervML
• Only cover a limited
subset of requirements
Pankesh Patel et. al.13
14. Outline
Characteristics of IoT
Application development challenges
Related work
Our approach
Overview
A simple example
Evaluation
Conclusion
Ongoing and future work
Pankesh Patel et. al.14
15. Application development methodology
Pankesh Patel et. al.15
Research Challenges Solution
Multiple expertise Clear division of roles of stakeholders.
Poor Automation Code generators and deployment modules
(mapper and linker).
Heterogeneity Abstractions in modeling languages.
Scale Abstractions in modeling language.
26. Smart Buildings
Building 1
Smoke detector Temperature sensor
Fire Computation
Fire Computation
Fire Computation
Alarm
Temperature
Sensor
Smoke
Detector
FireStat
e
FireStat
e
FireStat
e
Fire
Computation
Fire
State
Fire
Detect
Fire
Detect
Alarm
Room
Floor
Information
Sources
(E.g., Sensor, Storage)
Computational
components
On( )
temp
Measurement
Smoke
Presence
26 Pankesh Patel et. al.
Actuators
(e.g., alarm, twitter )
Buildin
g
27. Domain Specification: Information sources
Temperature
Sensor
Smoke
Detector
Fire
Computation
Fire
State
Fire
Detect
Alarm
Room
Buildin
g
Floor
Information
Sources
(E.g., Sensor, Storage)
Computational
components
On( )
temp
Measurement
Smoke
Presence
TempStruct
tempValue : double ;
unitOfMeasurement : String ;
TemperatureSensor
generate tempMeasurement: TempStruct;
• One entity description for many
implementations (e.g., Android, SunSpot).
• One entity description for many instances.
27 Pankesh Patel et. al.
Actuators
(e.g., alarm, twitter )
30. Generating framework and implementing
application logic
FireComputation
consume tempMeasurement from hops : 0 : Room;
consume smokePresence from hops : 0 : Room;
generate FireComputation : FireStruct ;
in-region : Room
public void notifiedReceived (String event Name, Object arg,
Device deviceInfo) {
if (eventName.equals(“tempMeasurement”) {
onNewSmokePresence ((TempStruct) arg) ;
}
}
public abstract void onNewSmokePresence(TempStruct arg);
Compiler
generates
Programme
r
implements
application
logic
30 Pankesh Patel et. al.
31. Evaluation of our approach (1/2)
31
Goal of our evaluation:
• To demonstrate the advantage of our approach over manual
application development approach.
Pankesh Patel et. al.
Component
Type
Office environment
application
Fire
Detect
Sensing Temperature Sensor,
BadgeReader
Temperature Sensor
Smoke Detector
Actuating Heater
Monitor
Door, Alarm,
SprinklerSystem,
Light
Storage ProfileDB -
Computational RoomAvgTemp,
FloorAvgTemp,
BuildingAvgTemp,
Proximity,
RegulateTemp,
DisplayTemp
HouseFireComputatio
n,
HouseFireComputatio
n,
HcFireComputation,
HouseFireController
HcFireController
32. Evaluation of our approach (2/2)
32
*Lines of code using Metrics 1.3.6 Eclipse plugin, ** Code coverage using EclEmma Eclipse plugin.
Development efforts:
• It is directly proportional to the lines of code.
• The more hand-written lines of code there is, the efforts required to
develop application is longer.
Pankesh Patel et. al.
Specificati
on
7%
Application
logic
10%
Device
Drivers
9%
Generated
code*
74%
Lines of Code
Office environment
management
Executed code**
90.7 %
Fire Detect
Specificatio
n
7% Application
logic
9%
Device
drivers
12%
Generated
code
72%
Lines of code
Executed code**
93.7 %
33. Outline
Characteristics of IoT
Application development challenges
Related work
Our approach
Overview
A simple example
Evaluation
Conclusion
Ongoing and future work
Pankesh Patel et. al.33
34. Conclusion
Challenges Solved in our approach
Abstracting
Heterogeneity
• Vocabulary language (Different types of resources ,
Different types of implementations)
• Architecture language (different types of interactions)
Abstracting Scale • Architecture and vocabulary language ( Scope constructs)
Multiple Expertise • Separation of concern
Poor Automation • Compiler generates Programming framework, mapper and
linker module
34 Pankesh Patel et. al.
35. Outline
Characteristics of IoT
Application development challenges
Related work
Our approach
Overview
A simple example
Evaluation
Conclusion
Ongoing and future work
Pankesh Patel et. al.35
36. Ongoing and future work
Pankesh Patel et. al.36
Evaluation
Current evaluation is
preliminary.
Need to look at
Reusability
Expressiveness of our
modeling languages.
Development efforts on
real devices and real
middleware
37. Ongoing and future work
Pankesh Patel et. al.37
Evaluation
Development life-cycle
and future changes
Change in application
requirements
Change in deployment
infrastructure
Evolution in device
drivers
Design
Implementation
Deployment
Future changes
38. Ongoing and future work
Pankesh Patel38
Evaluation
Development life-cycle
and future changes
End-user applications
Originator: an user
triggers an event or
query to the application.
Recipient: an user is
notified a final results by
the application.
Abstractions for
specifying end-user
interfaces.
Possible User interface
description languages
(UIDLs) to look
UIML
UsiXML
XUL
Others
39. Ongoing and future work
Pankesh Patel et. al.39
Evaluation
Development life-cycle
and future changes
End-user applications
Integrated Toolkit
Eclipse plugin for the
stakeholders involved in
application development
process