SlideShare a Scribd company logo
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
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
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
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
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
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
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
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.
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 .
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
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)
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
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
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
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.
Pankesh Patel et. al.16
Domain
Expert
Domain
Specification
Specify
Input
Refer
Output
1 Application domain specification using
vocabulary language
• Regions (e.g., room, floor, building)
• Sensors (e.g. temp. sensor, smoke
detector)
• Actuators (e.g., heater, alarm)
• Storages
Domain Specification
Pankesh Patel et. al.17
Architecture Specification
Application
Designer
Architecture
Specification
2
Domain
Expert
Vocabulary
Specification
1
Architecture specification using architecture
language.
• Computational components (e.g., calculating
avg. temp, detecting fire)
• Interactions among computational
components
Specify
Input
Refer
Output
Pankesh Patel et. al.18
Implementing Software Component
System
Designer
Architecture
Specification
2
Application
Logic
Application
Developer
Framework
Generator
Application
Framework
3
4
Domain
Expert
Vocabulary
Specification
1
Generated application framework in
general purpose language.
Application developers writes application logic
(e.g. Java code for calculating avg. temp. ) on
top of programming framework.
Specify
Input
Refer
Output
Pankesh Patel et. al.19
Target Deployment Specification
System
Designer
Architecture
Specification
2
Application
Logic
Application
Developer
Framework
Generator
Application
Framework
4
Network
Manager
Deployment
description
Domain
Expert
Vocabulary
Specification
1
3
5
Target deployment using deployment language.
• Device region
• Device properties
• Type ( android, Sunspot)
• Name
• Mobile ( true or false)
• Identification
Specify
Input
Refer
Output
Pankesh Patel et. al.20
Mapping
Application
Designer
Architecture
Specification
2
Application
Logic
Application
Developer
Framework
Generator
Application
Framework
3
4
Network
Manager
5
Network
description
Mapper
Mapping
files
6
Decides the specific device where
each software component will be
running.
Domain
Expert
Vocabulary
Specification
1
Specify
Input
Refer
Output
Pankesh Patel et. al.21
Writing Device-Drivers
Application
Designer
Architecture
Specification
2
Application
Logic
Application
Developer
Framework
Generator
Application
Framework
3
4
Network
Manager
5
Deployment
description
Mapper
Mapping
files
6
Domain
Expert
Vocabulary
Specification
1
Device
DeveloperDevice
Drivers
7
Writes device drivers
• sensor driver
• actuator driver
• storage driver
Specify
Input
Refer
Output
Pankesh Patel et. al.22
Linking
Application
Designer
Architecture
Specification
2
Application
Logic
Application
Developer
Framework
Generator
Application
Framework
3
4
7
Device
DeveloperDevice
Drivers
Network
Manager
5
Deployment
description
Mapper
Mapping
files
6
System Linker
8 Combines the generated code
into the actual code to be
deployed on the real devices.
Domain
Expert
Vocabulary
Specification
1
Specify
Input
Refer
Output
Pankesh Patel et. al.23
Application development methodology
Application
Designer
Architecture
Specification
2
Application
Logic
Application
Developer
Framework
Generator
Application
Framework
3
4
7
Device
DeveloperDevice
Drivers
Network
Manager
5
Deployment
description
Mapper
Mapping
files
6
System Linker
8
Domain
Expert
Vocabulary
Specification
1
Specify
Input
Refer
Output
Example:
Smart Buildings
Smart Buildings
Building 1
Alarm
25 Pankesh Patel et. al.
Building 2
Building 3
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
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 )
Domain Specification: Actuators
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
Alarm
action On();
28 Pankesh Patel et. al.
Actuators
(e.g., alarm, twitter )
Architecture Specification:
computational components
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
FireComputation
consume tempMeasurement from hops : 0 : Room;
consume smokePresence from hops : 0 : Room;
generate FireComputation : FireStruct ;
in-region : Room
Scope of consuming
data.
Scope of
Deployment
Scope of consuming and scope of deployment
enables hierarchical clustering.
29 Pankesh Patel et. al.
Actuators
(e.g., alarm, twitter )
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.
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
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 %
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
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.
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
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
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
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
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
Thanks for listening to me 
pankesh.patel@inria.fr
Pankesh Patel et. al.40

More Related Content

DOC
PDF
Prashant Soman resume
PDF
RichaGangwar
PPTX
DevOps Tools Training | DevOps Tools | What is GIT | What is Jenkins
PDF
Resume
DOCX
Sripriya Nair
DOC
peeyush_resume
Prashant Soman resume
RichaGangwar
DevOps Tools Training | DevOps Tools | What is GIT | What is Jenkins
Resume
Sripriya Nair
peeyush_resume

What's hot (20)

DOCX
Jeevananthan_Informatica
PDF
resume
DOC
Raghavendra Gupta Resume
PDF
Aj old presentation - pssc research-pt_
PPTX
Functional testing vs non functional testing | Difference Between Functional ...
PDF
AUK - CV WO Ref
DOCX
Shivaprasada_Kodoth
PDF
Tech leaders guide to effective building of machine learning products
DOC
Jeevan_Resume
DOC
DOCX
Bradley Lin Wan Resume
PDF
AI for good: Scaling AI in science, healthcare, and more.
DOCX
Resume
ODP
Passing The Joel Test In The PHP World
DOCX
DineshCV (1)
DOC
Abhilash resume
DOC
Zaid_Ahmed_Resume_30th_Oct_2015
PDF
BroadcomEthernetPacketAnalyzer
DOCX
Abhishek _Resume
Jeevananthan_Informatica
resume
Raghavendra Gupta Resume
Aj old presentation - pssc research-pt_
Functional testing vs non functional testing | Difference Between Functional ...
AUK - CV WO Ref
Shivaprasada_Kodoth
Tech leaders guide to effective building of machine learning products
Jeevan_Resume
Bradley Lin Wan Resume
AI for good: Scaling AI in science, healthcare, and more.
Resume
Passing The Joel Test In The PHP World
DineshCV (1)
Abhilash resume
Zaid_Ahmed_Resume_30th_Oct_2015
BroadcomEthernetPacketAnalyzer
Abhishek _Resume
Ad

Similar to Enabling high level application development for internet of things (20)

PDF
Towards application development for the internet of things
PPTX
Application Development for the Internet of Things.pptx
PPTX
Enabling high level application development for internet of things
PDF
SRCenabling application development for the internet of things
PDF
Software Tools for Building Industry 4.0 Applications
PPTX
Enabling High Level Application Development In The Internet Of Things
PPTX
A model driven development framework for developing sense-compute-control app...
PPTX
Application development for the internet of things
PDF
Top 10 Challenges in IoT App Development.pdf
PDF
System and Software Engineering for Industry 4.0
PDF
10 things i wish someone told me before i decided to become an io t applicati...
PPTX
Activity lot new.pptx for internet of things
PPTX
From Device to Data Center to Insights: Architectural Considerations for the ...
PPTX
Data, Big Data and real time analytics for Connected Devices
PDF
The Impact of Internet of Things (IoT) on Software Development.pdf
PDF
From Device to Data Center to Insights
PDF
Internet of Things and Hadoop
PDF
Accelerating Application Development in the Internet of Things using Model-dr...
PPTX
Toward io t application markets
PDF
Reactive robotics io_t_2017
Towards application development for the internet of things
Application Development for the Internet of Things.pptx
Enabling high level application development for internet of things
SRCenabling application development for the internet of things
Software Tools for Building Industry 4.0 Applications
Enabling High Level Application Development In The Internet Of Things
A model driven development framework for developing sense-compute-control app...
Application development for the internet of things
Top 10 Challenges in IoT App Development.pdf
System and Software Engineering for Industry 4.0
10 things i wish someone told me before i decided to become an io t applicati...
Activity lot new.pptx for internet of things
From Device to Data Center to Insights: Architectural Considerations for the ...
Data, Big Data and real time analytics for Connected Devices
The Impact of Internet of Things (IoT) on Software Development.pdf
From Device to Data Center to Insights
Internet of Things and Hadoop
Accelerating Application Development in the Internet of Things using Model-dr...
Toward io t application markets
Reactive robotics io_t_2017
Ad

More from Pankesh Patel (11)

PDF
Getting Started for SMEs in Industry 4.0
PDF
Hands-on Workshop on Building Digital Twin for Factory of the Future
PDF
Cloud Manufacturing
PDF
Smart Factory - App Based Quality Monitoring
PDF
Subject Matter ExpertWorkbench
PDF
IoTSuite User Manual
PPTX
IoTSuite: A Framework to Design, Implement, and Deploy IoT Applications
PDF
Sla in cloud
PPTX
Towards application development for the physical cyber-social systems
PPTX
A tool suite for prototyping internet of things applications
PPTX
Towards application development for the internet of things updated
Getting Started for SMEs in Industry 4.0
Hands-on Workshop on Building Digital Twin for Factory of the Future
Cloud Manufacturing
Smart Factory - App Based Quality Monitoring
Subject Matter ExpertWorkbench
IoTSuite User Manual
IoTSuite: A Framework to Design, Implement, and Deploy IoT Applications
Sla in cloud
Towards application development for the physical cyber-social systems
A tool suite for prototyping internet of things applications
Towards application development for the internet of things updated

Recently uploaded (20)

PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
master seminar digital applications in india
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Insiders guide to clinical Medicine.pdf
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
Sports Quiz easy sports quiz sports quiz
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Computing-Curriculum for Schools in Ghana
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
Basic Mud Logging Guide for educational purpose
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
Cell Types and Its function , kingdom of life
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PPTX
Institutional Correction lecture only . . .
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
Pre independence Education in Inndia.pdf
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Supply Chain Operations Speaking Notes -ICLT Program
Microbial diseases, their pathogenesis and prophylaxis
master seminar digital applications in india
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Insiders guide to clinical Medicine.pdf
VCE English Exam - Section C Student Revision Booklet
Sports Quiz easy sports quiz sports quiz
2.FourierTransform-ShortQuestionswithAnswers.pdf
Computing-Curriculum for Schools in Ghana
O7-L3 Supply Chain Operations - ICLT Program
TR - Agricultural Crops Production NC III.pdf
Basic Mud Logging Guide for educational purpose
O5-L3 Freight Transport Ops (International) V1.pdf
Cell Types and Its function , kingdom of life
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Institutional Correction lecture only . . .
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Pre independence Education in Inndia.pdf
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...

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.
  • 16. Pankesh Patel et. al.16 Domain Expert Domain Specification Specify Input Refer Output 1 Application domain specification using vocabulary language • Regions (e.g., room, floor, building) • Sensors (e.g. temp. sensor, smoke detector) • Actuators (e.g., heater, alarm) • Storages Domain Specification
  • 17. Pankesh Patel et. al.17 Architecture Specification Application Designer Architecture Specification 2 Domain Expert Vocabulary Specification 1 Architecture specification using architecture language. • Computational components (e.g., calculating avg. temp, detecting fire) • Interactions among computational components Specify Input Refer Output
  • 18. Pankesh Patel et. al.18 Implementing Software Component System Designer Architecture Specification 2 Application Logic Application Developer Framework Generator Application Framework 3 4 Domain Expert Vocabulary Specification 1 Generated application framework in general purpose language. Application developers writes application logic (e.g. Java code for calculating avg. temp. ) on top of programming framework. Specify Input Refer Output
  • 19. Pankesh Patel et. al.19 Target Deployment Specification System Designer Architecture Specification 2 Application Logic Application Developer Framework Generator Application Framework 4 Network Manager Deployment description Domain Expert Vocabulary Specification 1 3 5 Target deployment using deployment language. • Device region • Device properties • Type ( android, Sunspot) • Name • Mobile ( true or false) • Identification Specify Input Refer Output
  • 20. Pankesh Patel et. al.20 Mapping Application Designer Architecture Specification 2 Application Logic Application Developer Framework Generator Application Framework 3 4 Network Manager 5 Network description Mapper Mapping files 6 Decides the specific device where each software component will be running. Domain Expert Vocabulary Specification 1 Specify Input Refer Output
  • 21. Pankesh Patel et. al.21 Writing Device-Drivers Application Designer Architecture Specification 2 Application Logic Application Developer Framework Generator Application Framework 3 4 Network Manager 5 Deployment description Mapper Mapping files 6 Domain Expert Vocabulary Specification 1 Device DeveloperDevice Drivers 7 Writes device drivers • sensor driver • actuator driver • storage driver Specify Input Refer Output
  • 22. Pankesh Patel et. al.22 Linking Application Designer Architecture Specification 2 Application Logic Application Developer Framework Generator Application Framework 3 4 7 Device DeveloperDevice Drivers Network Manager 5 Deployment description Mapper Mapping files 6 System Linker 8 Combines the generated code into the actual code to be deployed on the real devices. Domain Expert Vocabulary Specification 1 Specify Input Refer Output
  • 23. Pankesh Patel et. al.23 Application development methodology Application Designer Architecture Specification 2 Application Logic Application Developer Framework Generator Application Framework 3 4 7 Device DeveloperDevice Drivers Network Manager 5 Deployment description Mapper Mapping files 6 System Linker 8 Domain Expert Vocabulary Specification 1 Specify Input Refer Output
  • 25. Smart Buildings Building 1 Alarm 25 Pankesh Patel et. al. Building 2 Building 3
  • 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 )
  • 28. Domain Specification: Actuators 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 Alarm action On(); 28 Pankesh Patel et. al. Actuators (e.g., alarm, twitter )
  • 29. Architecture Specification: computational components 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 FireComputation consume tempMeasurement from hops : 0 : Room; consume smokePresence from hops : 0 : Room; generate FireComputation : FireStruct ; in-region : Room Scope of consuming data. Scope of Deployment Scope of consuming and scope of deployment enables hierarchical clustering. 29 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
  • 40. Thanks for listening to me  pankesh.patel@inria.fr Pankesh Patel et. al.40