enabling high level application development for internet of things

40
Enabling High-Level Application Development for Internet of Things Pankesh Patel, Animesh Pathak, Damien Cassou, and Valerie Issarny Inria Paris Rocquencourt, France S-CUBE, 12 th June, 2013

Upload: pankesh-patel

Post on 05-Dec-2014

374 views

Category:

Education


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Enabling high level application development for internet of things

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

Page 2: Enabling high level application development for internet of things

Pankesh Patel et. al.2

Outline Characteristics of Internet of Things Application development challenges Related work Our approach

Overview A simple example Evaluation

Conclusions Ongoing and future work

Page 3: Enabling high level application development for internet of things

Pankesh Patel et. al.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

Page 4: Enabling high level application development for internet of things

Pankesh Patel et. al.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

Page 5: Enabling high level application development for internet of things

Pankesh Patel et. al.5

Marriage of sensor network and pervasive computing

Internet of things

Sensor network Pervasive computing

Large Scale Heterogenei

ty

[IoTRoadMap] Antoine de Saint-Exupery, Internet of Things Strategic Research Roadmap, 2009

Page 6: Enabling high level application development for internet of things

Pankesh Patel et. al.6

Multiple application domains

Building Automation

Traffic Control and Management Health-care

Internet of things[IoTSurvey] Luigi Atzori, Antonio lera, Giacomo Morabito, The internet of Things Survey, 2010

Page 7: Enabling high level application development for internet of things

Pankesh Patel et. al.7

Outline Characteristics of Internet of Things Application development challenges Related work Our approach

Overview A simple example Evaluation

Conclusion Ongoing and future work

Page 8: Enabling high level application development for internet of things

Pankesh Patel et. al.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).

Ideally, it should not be the developer's responsibility to handle this heterogeneity.

Page 9: Enabling high level application development for internet of things

Pankesh Patel et. al.9

Application Development Challenges

Heterogeneity Large Scale

Hundreds to thousands of devices equipped with sensors, actuators, storages.

Need of adequate abstractions to present the large scale in suitable manner .

Page 10: Enabling high level application development for internet of things

Pankesh Patel et. al.10

Application Development Challenges

Heterogeneity Large Scale Multiple expertise

Application domain

Software design

Programming Language

Distributed system

Device-specific knowledge

Need of separating all development concerns according to the stakeholders expertise and

skills

Page 11: Enabling high level application development for internet of things

Pankesh Patel et. al.11

Application Development Challenges

Heterogeneity Large Scale Multiple Expertise Poor Automation

Interface hardware and software components

Interface software and middleware components

Deployment 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)

Page 12: Enabling high level application development for internet of things

Pankesh Patel et. al.12

Outline Characteristics of IoT Application development challenges Related work Our approach

Overview A simple example Evaluation

Conclusion Ongoing and future work

Page 13: Enabling high level application development for internet of things

Pankesh Patel et. al.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

Page 14: Enabling high level application development for internet of things

Pankesh Patel et. al.14

Outline Characteristics of IoT Application development challenges Related work Our approach

Overview A simple example Evaluation

Conclusion Ongoing and future work

Page 15: Enabling high level application development for internet of things

Pankesh Patel et. al.15

Application development methodology

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.

Page 16: Enabling high level application development for internet of things

Pankesh Patel et. al.16

Domain Expert

DomainSpecification

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

Page 17: Enabling high level application development for internet of things

Pankesh Patel et. al.17

Architecture Specification

Application Designer

ArchitectureSpecification

2

Domain Expert

VocabularySpecification

1

Architecture specification using architecture language.• Computational components (e.g.,

calculating avg. temp, detecting fire)• Interactions among computational

components

Specify

Input

Refer

Output

Page 18: Enabling high level application development for internet of things

Pankesh Patel et. al.18

Implementing Software Component

System Designer

ArchitectureSpecification

2

ApplicationLogic

ApplicationDeveloper

FrameworkGenerator

ApplicationFramework

34

Domain Expert

VocabularySpecification

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

Page 19: Enabling high level application development for internet of things

Pankesh Patel et. al.19

Target Deployment Specification

System Designer

ArchitectureSpecification

2

ApplicationLogic

ApplicationDeveloper

FrameworkGenerator

ApplicationFramework

4

NetworkManager

Deploymentdescription

Domain Expert

VocabularySpecification

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

Page 20: Enabling high level application development for internet of things

Pankesh Patel et. al.20

Mapping

ApplicationDesigner

ArchitectureSpecification

2

ApplicationLogic

ApplicationDeveloper

FrameworkGenerator

ApplicationFramework

34

NetworkManager

5

Networkdescription

Mapper

Mapping files

6

Decides the specific device where each software component will be running.

Domain Expert

VocabularySpecification

1

Specify

Input

Refer

Output

Page 21: Enabling high level application development for internet of things

Pankesh Patel et. al.21

Writing Device-Drivers

ApplicationDesigner

ArchitectureSpecification

2

ApplicationLogic

ApplicationDeveloper

FrameworkGenerator

ApplicationFramework

34

NetworkManager

5

Deploymentdescription

Mapper

Mapping files

6

Domain Expert

VocabularySpecification

1

DeviceDeveloperDevice

Drivers

7

Writes device drivers • sensor driver• actuator driver• storage driver

Specify

Input

Refer

Output

Page 22: Enabling high level application development for internet of things

Pankesh Patel et. al.22

Linking

ApplicationDesigner

ArchitectureSpecification

2

ApplicationLogic

ApplicationDeveloper

FrameworkGenerator

ApplicationFramework

34

7

DeviceDeveloperDevice

Drivers

NetworkManager

5

Deploymentdescription

Mapper

Mapping files

6

System Linker

8Combines the generated code into the actual code to be deployed on the real devices.

Domain Expert

VocabularySpecification

1

Specify

Input

Refer

Output

Page 23: Enabling high level application development for internet of things

Pankesh Patel et. al.23

Application development methodology

ApplicationDesigner

ArchitectureSpecification

2

ApplicationLogic

ApplicationDeveloper

FrameworkGenerator

ApplicationFramework

34

7

DeviceDeveloperDevice

Drivers

NetworkManager

5

Deploymentdescription

Mapper

Mapping files

6

System Linker

8

Domain Expert

VocabularySpecification

1

Specify

Input

Refer

Output

Page 24: Enabling high level application development for internet of things

Example: Smart Buildings

Page 25: Enabling high level application development for internet of things

Pankesh Patel et. al.25

Smart Buildings

Building 1

Alarm

Building 2

Building 3

Page 26: Enabling high level application development for internet of things

Pankesh Patel et. al.26

Smart Buildings

Building 1

Smoke detector Temperature sensor

Fire Computation

Fire Computation

Fire Computation

Alarm

TemperatureSensor

Smoke Detector

FireState

FireState

FireState

Fire Computation

Fire State

Fire Detect

FireDetect

Alarm

Room

Floor

InformationSources

(E.g., Sensor, Storage)

Computationalcomponents

On( )

tempMeasurement

SmokePresence

Actuators(e.g., alarm, twitter )

Building

Page 27: Enabling high level application development for internet of things

Pankesh Patel et. al.27

Domain Specification: Information sources

TemperatureSensor

Smoke Detector

Fire Computation

Fire State

FireDetect

Alarm

Room

Building

Floor

InformationSources

(E.g., Sensor, Storage)

Computationalcomponents

On( )

tempMeasurement

SmokePresence

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.

Actuators(e.g., alarm, twitter )

Page 28: Enabling high level application development for internet of things

Pankesh Patel et. al.28

Domain Specification: Actuators

TemperatureSensor

Smoke Detector

Fire Computation

Fire State

FireDetect

Alarm

Room

Building

Floor

InformationSources

(E.g., Sensor, Storage)

Computationalcomponents

On( )

tempMeasurement

SmokePresence

Alarm action On();

Actuators(e.g., alarm, twitter )

Page 29: Enabling high level application development for internet of things

Pankesh Patel et. al.29

Architecture Specification: computational components

TemperatureSensor

Smoke Detector

Fire Computation

Fire State

FireDetect

Alarm

Room

Building

Floor

InformationSources

(E.g., Sensor, Storage)

Computationalcomponents

On( )

tempMeasurement

SmokePresence

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.

Actuators(e.g., alarm, twitter )

Page 30: Enabling high level application development for internet of things

Pankesh Patel et. al.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

Programmer

implements

application logic

Page 31: Enabling high level application development for internet of things

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.

Component Type

Office environment application

Fire Detect

Sensing Temperature Sensor,BadgeReader

Temperature SensorSmoke Detector

Actuating HeaterMonitor

Door, Alarm, SprinklerSystem, Light

Storage ProfileDB -

Computational RoomAvgTemp,FloorAvgTemp,BuildingAvgTemp,Proximity,RegulateTemp,DisplayTemp

HouseFireComputation,HouseFireComputation,HcFireComputation,HouseFireControllerHcFireController

Page 32: Enabling high level application development for internet of things

Pankesh Patel et. al.

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.

Specification7% Application

logic10%

Device Drivers

9%

Generated code*74%

Lines of Code

Office environment management

Executed code**90.7 %

Fire Detect

Specification7% Application

logic9%

Device drivers12%

Generated code72%

Lines of code

Executed code**93.7 %

Page 33: Enabling high level application development for internet of things

Pankesh Patel et. al.33

Outline Characteristics of IoT Application development challenges Related work Our approach

Overview A simple example Evaluation

Conclusion Ongoing and future work

Page 34: Enabling high level application development for internet of things

Pankesh Patel et. al.34

ConclusionChallenges 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

Page 35: Enabling high level application development for internet of things

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

Page 36: Enabling high level application development for internet of things

Pankesh Patel et. al.36

Ongoing and future work Evaluation

Current evaluation is preliminary.

Need to look at Reusability Expressiveness of our

modeling languages. Development efforts on

real devices and real middleware

Page 37: Enabling high level application development for internet of things

Pankesh Patel et. al.37

Ongoing and future work Evaluation Development life-

cycle and future changes Change in application

requirements Change in

deployment infrastructure

Evolution in device drivers

Design

Implementation

Deployment

Future changes

Page 38: Enabling high level application development for internet of things

Pankesh Patel38

Ongoing and future work 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

Page 39: Enabling high level application development for internet of things

Pankesh Patel et. al.39

Ongoing and future work Evaluation Development life-

cycle and future changes

End-user applications Integrated Toolkit

Eclipse plugin for the stakeholders involved in application development process

Page 40: Enabling high level application development for internet of things

Pankesh Patel et. al.40

Thanks for listening to me [email protected]