SlideShare una empresa de Scribd logo
1 de 52
Enabling High-level Application
Development in the Internet of Things
                Pankesh Patel
               ARLES project-team
             Inria Paris-Rocquencourt
Outline

  •   Introduction to the Internet of Things
  •   Application Development Challenges
  •   Existing Approaches
  •   Our Goal
  •   Contributions
  •   Discussion
  •   Future work

                                               2
Characteristics of ``things’’

• May have sensors attached

• May have actuators attached

• Can communicate with other things

• Can be involved in the information
  exchange between ``physical’’ and
  ``virtual’’ worlds




                                       3
Internet of things (IoT)
  ``A network infrastructure that connects physical and virtual things”
  [CASAGRAS Project]




[CASAGRAS Project] : http://www.rfidglobal.eu/userfiles/documents/CASAGRAS26022009.pdf



                                                                                         4
Marriage of Sensor Network and Pervasive
Computing




  Sensor Network                           Pervasive
                                           computing




Large
Scale                                   Heterogeneity


                   Internet of things
                                                        5
Multiple Levels                        [IoT Research Roadmap]

                                                         Internet of
                                                           Things




 Application
  Domain                   Building
                                                                                         …
                          Automation                                 Healthcare                Transportation



Application           HVAC               Energy
                                       Management




Deployment

                   INRIA             Google
                   office            Office

[IoT Research Roadmap] Internet of things strategic Research Roadmap
http://www.internet-of-things-research.eu/pdf/IoT_Cluster_Strategic_Research_Agenda_2009.pdf

                                                                                                                6
Outline

  •   Introduction to the Internet of Things
  •   Application Development Challenges
  •   Existing Approaches
  •   Our Goal
  •   Contributions
  •   Discussion
  •   Future work

                                               7
1. No Separation of Concerns
   • To develop applications, a developer requires multiple skills


                                   Distributed system                    Low-level
       Domain-specific
                                       Knowledge                  hardware knowledge
          Expertise
                                    (e.g., interaction              (e.g., glue code to
        (e.g., Building
                                         modes)                  interface hardware and
         automation)
                                                                         software)




                                                         Requires considerable CS background




                                                           Conflicts with skill-set
Hinders rapid application
development                  Programmer/developer

                                                                                          8
2. “General-Purpose” DSLs
                                                  “one- size fits all’’ DSL for the entire IoT
                                                  domain.



        application     Internet of things
         domain 1
                      application
                       domain 2
                                                          application
                                                          domain N



                                                       …
     Home                                                                        Transportation
   automation           Healthcare



                                             These approaches remains general purpose
                                             and thus provide little guidance to the
                                             developers



                                                                                                  9
3. Heterogeneity of Target Devices


• Different interaction modes
• Different implementation of
  sensor/actuator




        Spreads in the application code,
        cluttering with low-level detail.




                                            10
4. Large Scale

 • Hundreds to thousands of devices equipped with
   sensors and actuators
                                        Reasoning at large
                                        scale is impractical




                                                               11
Outline

  •   Introduction to the Internet of Things
  •   Application Development Challenges
  •   Existing Approaches
  •   Our Goal
  •   Contributions
  •   Discussion
  •   Future work

                                               12
Middleware Approach (or node-level programming)
•    Motivation:
         •     Shields the programmers from complexity by providing abstractions at node-
               level [Context toolkit, Gaia middleware].



•    Disadvantages:
     •       No separation of concerns
     •       Missing support for each application development stages
     •       Provided support remain general purpose and thus provide little guidance to
             developers to program application domain




                                                                                            13
System-level Approach (or macro programming)
•    Motivation:
      •   Raises the level of abstraction in program specifications (largely in
          UML/textual language) and transforms into working implementation
          [PervML, ATaG, DiaSuite]
      •   Separation of concerns
      •   Support for each application development stages

•    Disadvantages:
      •   Provided support remain general purpose and thus provide little guidance to
          developers to program application domain




                                                                                        14
Goal of Our Research



“Enable high-level application development that allow
stakeholders involved in the development of IoT
applications to easily create applications, which involves a
large number of heterogeneous devices’’




                                                               15
Assumptions

• Inter-node communication is provided by a suitable

  middleware.

• The creation of IoT applications is a collaborative process

  between stakeholders with unique skills and

  responsibilities.

• There is a node-level compilation support for high-level

  object-oriented programming languages.



                                                                - 16
Contributions

1    We identify entities of IoT and relationship among them (model)




2     Leveraging model, we identify the precise role of stakeholders




3    Resulting from the actions of each stakeholder, we propose multi-stage
     model driven approach




4    Evaluation of approach




                                                                              17
Our IoT Model (1/2)
It encapsulates system’s
functionalities, provides
interface.                       Communicates-with

   Traditional                           *          1   consumes 1..*
                             1         Software
Internet concepts                                                       1   Information
                                      Component     1   generates



    Extends                 Extends            Extends                            Extends
        End-user               Storage              Computational
                                                                                  Driver
       Application              Service                service
                1                 1
   Interacts                            Provides
                                                                 Extends             Extends
      with                              access to
                 1            1..*
                                                               Sensor             Actuator
            User                     Store                     Driver              Driver

                                        ``Things’’- oriented
                                             concepts
                                                                                             18
Our IoT Model (2/2)
  Entity of       Consists of                                          Observes
                                        Phenomenon
  Interest


                                               affects
                                                                    Actuator                       Sensor


                                                                                                            accesses
                                                                               actuates
                                                     Resource             Actuator                     Sensor
                                Hosts                                      Driver                      Driver
         Device
                                                                                                            generates
                                                                                consumes
                  Runs-on
                                               Software
                                              Component                  Command                      Sensor
                                                                                                    Measurement

End-user             Storage
                                         Computational     Driver
Application          Service
                                           Service


                                                                                     Information
  User                Store




                                                                                                                19
Entity at Deployment Level                                 Application
                                                            Domain                Building
                                                                                 Automation
 At deployment-level, two deployment
 sites have different set of devices.
                                                                             HVAC         Energy
                                                           Application                    Mgmt




                                               Resource   Deployment
                            Hosts
              1
                                                 *
     Device
                                                                         INRIA        Google
         1                                                                site         site
                  Runs-on           1..*
                                            Software
                                           Component




                                                                                               20
Entities at Application Level                                  Application
                                                                Domain                Building
                                                                                     Automation
 At application-level, two applications have
 different set of functionalities.
                                                                                              Energy
                                                               Application      HVAC          Mgmt




                                                               Deployment
                   1        Hosts
                                                 *
       Device
                                               Communicates-with
                                                                             INRIA        Google
              1                                                               site         site
                  Runs-on           1..*
                                            Software
                                           Component


 End-user                           Computational
Application                            Service




                                                                                                   21
Entities at Application Domain Level
  Entity of       Consists of                                          Observes
                                        Phenomenon
  Interest


                                               affects
                                                                    Actuator                     Sensor

                           Affects                                                                        accesses
                      Entity of Interest                                       actuates
                                                     Resource             Actuator                   Sensor
                                Hosts                                      Driver             ObservesDriver
         Device                                                                            Entity of Interest
                                                                                                          generates
                                                                                consumes
                  Runs-on
                                               Software
                                              Component                  Command                    Sensor
                                                                                                  Measurement

End-user             Storage
                                         Computational     Driver
Application          Service
                                           Service



  User                Store
                                              Stores information
                                            about Entity of Interest


                                                                                                              22
Contributions

1    We identify entities of IoT and relationship among them (model)




2     Leveraging model, we identify the precise role of stakeholders




3     Resulting from the actions of each stakeholder, we propose multi-stage
      model driven approach




4    Evaluation of approach




                                                                               23
Roles in IoT application development
    Role                                                   Skills                                                            Responsibilities

          Domain                 Understanding about application                                              Vocabulary of application domain
         Expert [1]
                                 domain (e.g., building automation)

          Device
         Developer
                                Low-level hardware knowledge                                                  Writes device specific drivers


          System                 Understanding about
        Designer [1]                                                                                          Defines structure of the application
                                 architecture of an application

        Application              Skilled in algorithm and                                                     Implements software components
       Developer [2]
                                 programming language


        Network
                                 Understanding of target area                                                  Specifies target application scenario
        Manager                  where the application is to be                                                and Installs the application on the
                                 deployed                                                                      device at hand

[1] Software Architecture: Foundations, Theory, and Practice by R. N. Taylor, N. Medvidovic and E. M. Dashofy
[2] D. Cassou, J. Bruneau, C. Consel, and E. Balland. Towards a tool-based development methodology for pervasive computing applications. Software Engineering, IEEE
Transactions on, (99):1-1, 2011.




                                                                                                                                                                      24
Roles in IoT application development
    Role                                                   Skills                                                            Responsibilities

          Domain                 Understanding about application                                              Vocabulary of application domain
         Expert [1]
                                 domain (e.g., building automation)
                                                                Application Domain Level
          Device
         Developer
                                Low-level hardware knowledge                                                  Writes device specific drivers


          System                 Understanding about
        Designer [1]                                                                                          Defines structure of the application
                                 architecture of an application
                                                                             Application Level
        Application              Skilled in algorithm and                                                     Implements software components
       Developer [2]
                                 programming language


        Network
                                 Understanding of target area                                                  Specifies target application scenario
        Manager                  where the application is to be
                                 deployed
                                                                            Deployment Level                   and Installs the application on the
                                                                                                               device at hand

[1] Software Architecture: Foundations, Theory, and Practice by R. N. Taylor, N. Medvidovic and E. M. Dashofy
[2] D. Cassou, J. Bruneau, C. Consel, and E. Balland. Towards a tool-based development methodology for pervasive computing applications. Software Engineering, IEEE
Transactions on, (99):1-1, 2011.




                                                                                                                                                                      25
Contributions

1    We identify entities of IoT and relationship among them (model)




2     Leveraging model, we identify the precise role of stakeholders




3    Resulting from the actions of each stakeholder, we propose multi-stage
     model driven approach




4     Evaluation of approach




                                                                              26
Vocabulary Specification
             1
                                 Vocabulary Specification using Srijan Vocabulary
                                 Language (SVL)
   Domain         Vocabulary         • Sensor
                 Specification
    Expert                           • Actuator
                                     • Storage Service
                                     • Region definition




Specify
Input
Refer
Output


                                                                                    27
Architecture Specification
             1
                                                        2


   Domain         Vocabulary
    Expert       Specification          Architecture        System
                                        Specification       Designer




 Given vocabulary, he defines
 architecture of an application using
 Srijan Architecture Language (SAL).




Specify
Input
Refer
Output


                                                                       28
Implementing Software Component
                  1
                                                                        2


     Domain                Vocabulary
      Expert              Specification                 Architecture        System
                                                        Specification       Designer




                                          Framework
                                          Generator

                                                   3
              4


Application       Application             Application
Developer           Logic                 Framework



 Specify
 Input
 Refer                                                  It allows application developers to focus
Output                                                  on software component logic.

                                                                                                    29
Target Network Specification
                  1
                                                                        2


     Domain                Vocabulary
      Expert              Specification                 Architecture        System
                                                        Specification       Designer


                                                                                          5
                                          Framework
                                          Generator
                                                                             Network          Network
                                                   3                        description       Manager
              4


Application       Application             Application
Developer           Logic                 Framework



 Specify
                                Given vocabulary, he specifies target
 Input
                                deployment scenario using Srijan
 Refer                          Network Language (SAL).
Output


                                                                                                        30
Mapping
                  1
                                                                        2


     Domain                Vocabulary
      Expert              Specification                 Architecture        System
                                                        Specification       Designer


                                                                                           5
                                          Framework
                                          Generator
                                                                              Network          Network
                                                   3                         description       Manager
                                                             Mapper
              4
                                                                   6

Application       Application             Application
Developer           Logic                 Framework        Mapping
                                                             files


 Specify
 Input
                                                                            It decides the specific device where
 Refer
                                                                            each software component will be
Output
                                                                            running.

                                                                                                                   31
Writing Device-Drivers
                  1
                                                                        2


     Domain                Vocabulary
      Expert              Specification                 Architecture        System
                                                        Specification       Designer


                                                                                      5
                                                                Given vocabulary, he writes device drivers
                                          Framework
                                          Generator                 • sensor driver
                                                                           Network        Network
                                                                    • actuator driver
                                                                          description     Manager
                                                   3
                                                             Mapper
              4
                                                                   6

Application       Application                                                           7
                                          Application
Developer           Logic                 Framework        Mapping
                                                             files
                                                                                             Device
                                                                              Device        Developer
 Specify                                                                      Drivers
 Input
 Refer
Output


                                                                                                             32
Linking
                  1
                                                                        2


     Domain                Vocabulary
      Expert              Specification                 Architecture            System
                                                        Specification           Designer


                                                                                              5
                                          Framework
                                          Generator
                                                                                 Network          Network
                                                   3                            description       Manager
                                                             Mapper
              4
                                                                   6

Application       Application                                                                 7
                                          Application
Developer           Logic                 Framework        Mapping
                                                             files
                                                                                                   Device
                                                                                  Device          Developer
 Specify                                                                          Drivers
                                                                            8          Combines the generated code
 Input
                                                         System Linker                 into the actual code to be
 Refer
                                                                                       deployed on the real devices.
Output


                                                                                                                33
Domain Specific Languages (DSLs)




                                   34
DSL                                      Actuator

        Affects
                    Vocabulary Lang.      action

              (Application Domain Level)
     Phenomenon
     (e.g., Heater)
                                               command

           Take
        Decision                        Controller
     (e.g., On / Off)
                             Architecture Lang.
                             (Application Level)
                                              information

       Computes
      Information                     Computational
 (e.g., Calculate Avg)                  Service
                          Sensor                         information
                        Measurement


    Observes
   Phenomenon     Vocabulary Lang.
                     Sensor    Storage
                                               Stores info.
                                                 about
(e.g., Temperature                            Phenomenon
      Sensor )(Application Domain Level) User’s Preferences)
                                       (e.g.,

                                                                       35
Srijan Vocabulary Language (1/2)

  As a first step of abstracting heterogeneity, sensing and
  actuating entities are specified in high-level manner.


                                    One entity description for
                                    many implementations



TemperatureSensor
   generate tempMeasurement : TempStruct;



  One entity description for many instances




                                                                 36
Srijan Vocabulary Language (2/2)

 To address scalable operations within IoT system, hierarchical
 clustering should be specified [SINA].
                                                         Building:03
    regions:
         Building : Integer;
         Floor : Integer;                                                   Floor: 10 ... Floor: 15
         Room : Integer;


                                                                       Room: 5                 Room: 6
Use of region construct:
    • Enables system partition at logical level
    • Defines scope from which software components will
       produce/consume data

    [SINA] Srisathapornphat, C. and Jaikaeo, C. and Shen, C. , Sensor information networking architecture
    and applications, 2001

                                                                                                            37
Srijan Architecture Language                                 avgTemp

                                                                  Room
                                                                 AvgTemp
   “Vocabulary” specific
                                                     tempMeasurement
  Architecture Description
                                                                Temperature
                                                                  Sensor
                             Scope of consuming
                                    data.



 RoomAvgTemp
    consume tempMeasurement from hops : 0: Room ;                        Enables
    generate avgTemp : TempStruct ;                                    Hierarchical
    in-region : Room ;                                                  Clustering

                                         Scope of
                                        deployment




                                                                                      38
Srijan Network Language
Temperature-Sensing-Device :           Device Name
  region :
    Building : 15 ;
    Floor : 11;
    Room : 0;
  abilities : TemperatureSensor;                 Attached sensor/
                                              actuator/storage service
Badge-Scanner :                                      with device
  region :
    Building : 15 ;
    Floor : 11;
    Room : 0;
  abilities : BadgeReader ;

                          “Vocabulary” specific
                          Network Description




                                                                         39
Contributions

1    We identify entities of IoT and relationship among them (model)




2     Leveraging model, we identify the precise role of stakeholders




3    Resulting from the actions of each stakeholder, we propose multi-stage
     model driven approach




4     Evaluation of approach




                                                                              40
Evaluation of our approach (1/2)
  Goal of our evaluation:
   • To demonstrate the advantage of our approach over manual
     application development approach.




  Application     Sensing   Actuating   Computational   Controller   Storage   Devices
                   Entity    Entity       Service                    Service

  Smart Office      12         6             13             6          2         8
  Application
Fire Management     8          8             4              3          0         8
    Application




                                                                                         41
Evaluation of our approach (2/2)
    Development efforts:
    • It is directly proportional to the lines of code.
    • The more hand-written lines of code there is, the effort
      required to develop application is longer.

                Lines of code*                                         Lines of Code
        Applicatio
                                                          Applicatio
         n Logic
                                                           n Logic
          11%
                                                            10%
   Specificat                                            Specificat
      ion                                                   ion                     Code
     8%                           Code                     8%                      Coverage
                                Coverage**                                           93%
                                   90%
                     Generate                                           Generate
                      d Code                                             d Code
                       81%                                                82%


                     Smart Office                                       Fire Management
                     Application                                            Application
*Lines of code using Metrics 1.3.6 Eclipse plugin, ** Code coverage using EclEmma Eclipse plugin.
                                                                                                    42
Outline

  •   Introduction to the Internet of Things
  •   Application Development Challenges
  •   Existing Approaches
  •   Our Goal
  •   Contributions
  •   Discussion
  •   Future work

                                               43
Discussion
1. Identify the precise role of each stakeholders
   • Promotes separation of concerns

2. Multi-stage model-driven approach
   • Allows stakeholders to specify their share at proper level of
     abstractions (aiming large number of heterogeneous devices)



3. A generative approach of application development
   • Provides support to stakeholders to design and develop
     applications at each stages
   • ease application development by reducing development efforts




                                                                     44
Outline

  •   Introduction to the Internet of Things
  •   Application Development Challenges
  •   Existing Approaches
  •   Our Goal
  •   Current Progress to Achieve Goal
  •   Discussion
  •   Future work

                                               45
Future work (1/3)
1. Novel mapping algorithms cognizant of heterogeneity

    To handle the heterogeneity of target devices, we will provide rich abstractions to
    express the properties of the devices :


         •    Processing and storage capacity
         •    Monetary cost of hosting a software component


    These will then be used to guide the design of algorithms for efficient mapping of
    software components on devices.




                                                                                          46
Future work (2/3)
2. Complete support for storage services
    •   Our work will provide abstractions to easily specify interaction modes with the
        rich variety of data sources present in the IoT.

                  Simplistic view of storage interaction, which is inadequate
                  given diverse set of data sources available on the internet.



Profile-StorageService
  generate profile : TempStruct accessed-by badgeID: String ;

TempStruct
    tempValue : double ;
    unitOfMeasurement : String ;




                                                                                          47
Future work (3/3)
3. End-user interaction
    We will provide better ways for the stakeholders to define these software
    components at all stages of the application development process.




                             Entity of
                             Interest




                             End-user
                            Application


                     Interacts
                        with

                                 User




                                                                                48
THANKS FOR LISTENING ME 
Our IoT Model (2/2)
                                                                  1..*
  Entity of         1 Consists-of 1..*                                                                affects
                                               Phenomenon
  Interest
                                                       1..*
                                                          Observes
                   1                                   *                                                                      *
                            Produces    1                                                     1                 1
                                                                                                    Performs
   Raw data                                      Sensor                           Actuator                                Action
              1                                                                              1
                         Accessed-by

                                                Extends                     Extends          actuated-by                           1
                                                                                             1
                                                            Resource                                                  Sensor
                                                                                         Actuator
                        1              Hosts                                                                          driver
                                                              *                           driver
         Device
                                                                                                                      1
                                                            Communicates-with                 1                             generates
              1                                                                              consumes
                                                                                              1                       1
                       Runs-on                  1..*
                                                        Software
                                                       Component                        Command                       Sensor
                  extends                                                                                           measurement

End-user                    Storage              Computational
                            Service                                      Driver
Application                                        Service                                       Extends
                                                                                                                             Extends

                                                                                                      Information
  User                       Store




                                                                                                                                       50
Entities at Application Domain Level
                                                                  1..*
    Entity of         1 Consists-of 1..*                                                              affects
                                               Phenomenon
    Interest
                                                        1..*
                                                           Observes
                     1                                  *                                                                     *
                              Produces     1                                                  1                 1
                                                                                                    Performs
     Raw data                                     Sensor                          Actuator                                Action
                1                                                                            1
                             Accessed-by

                                                  Extends                   Extends          actuated-by                           1
                   Observes                                                                  1
                Entity of Interest                           Resource
                                                                                         Actuator
                                                                                                          AffectsSensor
                         1            Hosts
       Device
                                                              *                           driver     Entity of Interest
                                                                                                                  driver

                                                            Communicates-with                                         1
                1                                                                             1                             generates
                                                                                             consumes
                                                                                              1                       1
                      Runs-on                  1..*
                                                       Software
                                                      Component                         Command                       Sensor
                    Extends                                                                                         measurement

 End-user                     Storage          Computational
                                                                         Driver                  Extends
Application                   Service             Service
                                                                                                                             Extends

                                                                                                      Information
   User                       Store
                                                        Stores information
                                                      about Entity of Interest


                                                                                                                                       51
Middleware Approach
•    Motivation:
      • Shields the programmers from complexity by providing abstractions at
         system-level [Context toolkit, Gaia middleware].




     Disadvantages:
     • Programming abstractions for whom ?
     • Missing support for each application development stages
     • Provided support remain general purpose and thus provide little
       guidance to developers to program application domain




                                                                               52

Más contenido relacionado

La actualidad más candente

Is Your IT Infrastructure Future-Proof?
Is Your IT Infrastructure Future-Proof? Is Your IT Infrastructure Future-Proof?
Is Your IT Infrastructure Future-Proof? Internap
 
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...Till Riedel
 
IOT - Design Principles of Connected Devices
IOT - Design Principles of Connected DevicesIOT - Design Principles of Connected Devices
IOT - Design Principles of Connected DevicesDevyani Vasistha
 
NIEM and Future SAR
NIEM and Future SARNIEM and Future SAR
NIEM and Future SARBizagi Inc
 
The network and on premise edge
The network and on premise edgeThe network and on premise edge
The network and on premise edgeDESMOND YUEN
 
IT FUTURE 2011 - Présentation d'Intel
IT FUTURE 2011 - Présentation d'IntelIT FUTURE 2011 - Présentation d'Intel
IT FUTURE 2011 - Présentation d'IntelFujitsu France
 
5 context aware services
5 context aware services5 context aware services
5 context aware servicesguest3cf4991
 
Jini network technology
Jini  network   technologyJini  network   technology
Jini network technologyKeerthi Thomas
 
Software Defined Networks Explained
Software Defined Networks ExplainedSoftware Defined Networks Explained
Software Defined Networks ExplainedCM Research
 
Dl 0n mobile jeff shomaker_jan-2018_final
Dl 0n mobile jeff shomaker_jan-2018_finalDl 0n mobile jeff shomaker_jan-2018_final
Dl 0n mobile jeff shomaker_jan-2018_finalJeffrey Shomaker
 
Cisco open network environment
Cisco open network environmentCisco open network environment
Cisco open network environmentdeepers
 

La actualidad más candente (16)

Syslog Technologies
 Syslog Technologies Syslog Technologies
Syslog Technologies
 
Is Your IT Infrastructure Future-Proof?
Is Your IT Infrastructure Future-Proof? Is Your IT Infrastructure Future-Proof?
Is Your IT Infrastructure Future-Proof?
 
"Parallel and Distributed Computing: BOINC Grid Implementation" por Rodrigo N...
"Parallel and Distributed Computing: BOINC Grid Implementation" por Rodrigo N..."Parallel and Distributed Computing: BOINC Grid Implementation" por Rodrigo N...
"Parallel and Distributed Computing: BOINC Grid Implementation" por Rodrigo N...
 
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
 
IOT - Design Principles of Connected Devices
IOT - Design Principles of Connected DevicesIOT - Design Principles of Connected Devices
IOT - Design Principles of Connected Devices
 
NIEM and Future SAR
NIEM and Future SARNIEM and Future SAR
NIEM and Future SAR
 
Sdnhpkorea
SdnhpkoreaSdnhpkorea
Sdnhpkorea
 
The network and on premise edge
The network and on premise edgeThe network and on premise edge
The network and on premise edge
 
IT FUTURE 2011 - Présentation d'Intel
IT FUTURE 2011 - Présentation d'IntelIT FUTURE 2011 - Présentation d'Intel
IT FUTURE 2011 - Présentation d'Intel
 
5 context aware services
5 context aware services5 context aware services
5 context aware services
 
Jini network technology
Jini  network   technologyJini  network   technology
Jini network technology
 
Software Defined Networks Explained
Software Defined Networks ExplainedSoftware Defined Networks Explained
Software Defined Networks Explained
 
hp 2002 prox y statement
hp 	2002 prox y statementhp 	2002 prox y statement
hp 2002 prox y statement
 
Saurabh Jain
Saurabh JainSaurabh Jain
Saurabh Jain
 
Dl 0n mobile jeff shomaker_jan-2018_final
Dl 0n mobile jeff shomaker_jan-2018_finalDl 0n mobile jeff shomaker_jan-2018_final
Dl 0n mobile jeff shomaker_jan-2018_final
 
Cisco open network environment
Cisco open network environmentCisco open network environment
Cisco open network environment
 

Destacado

IndianaJS - Building spatially aware web sites for the Web of Things
IndianaJS - Building spatially aware web sites for the Web of ThingsIndianaJS - Building spatially aware web sites for the Web of Things
IndianaJS - Building spatially aware web sites for the Web of ThingsTECO Research Group
 
Thesis Defence: A Model Driven Architecture for the Web of Things
Thesis Defence: A Model Driven Architecture for the Web of ThingsThesis Defence: A Model Driven Architecture for the Web of Things
Thesis Defence: A Model Driven Architecture for the Web of ThingsAndreas Ruppen
 
IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015Jollen Chen
 
A Model-Driven, Component Generation Approach for the Web of Things
A Model-Driven, Component Generation Approach for the Web of ThingsA Model-Driven, Component Generation Approach for the Web of Things
A Model-Driven, Component Generation Approach for the Web of ThingsAndreas Ruppen
 
Towards constrained semantic web
Towards constrained semantic webTowards constrained semantic web
Towards constrained semantic web☕ Remy Rojas
 
Always-On Web of Things Infrastructure Dynamic Software Updating
Always-On Web of Things Infrastructure Dynamic Software UpdatingAlways-On Web of Things Infrastructure Dynamic Software Updating
Always-On Web of Things Infrastructure Dynamic Software UpdatingTECO Research Group
 
Towards an industrial Web of Things
Towards an industrial Web of ThingsTowards an industrial Web of Things
Towards an industrial Web of ThingsOlivier Liechti
 
A component based architecture for the Web of Things
A component based architecture for the Web of ThingsA component based architecture for the Web of Things
A component based architecture for the Web of ThingsAndreas Ruppen
 
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...Andrei Ciortea
 
Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Jollen Chen
 
WoT 2016 - Seventh International Workshop on the Web of Things
WoT 2016 - Seventh International Workshop on the Web of ThingsWoT 2016 - Seventh International Workshop on the Web of Things
WoT 2016 - Seventh International Workshop on the Web of ThingsSimon Mayer
 
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Jollen Chen
 
Enabling reactive cities with the iFLUX middleware
Enabling reactive cities with the iFLUX middlewareEnabling reactive cities with the iFLUX middleware
Enabling reactive cities with the iFLUX middlewareOlivier Liechti
 

Destacado (14)

IndianaJS - Building spatially aware web sites for the Web of Things
IndianaJS - Building spatially aware web sites for the Web of ThingsIndianaJS - Building spatially aware web sites for the Web of Things
IndianaJS - Building spatially aware web sites for the Web of Things
 
Presentation evrythng
Presentation evrythngPresentation evrythng
Presentation evrythng
 
Thesis Defence: A Model Driven Architecture for the Web of Things
Thesis Defence: A Model Driven Architecture for the Web of ThingsThesis Defence: A Model Driven Architecture for the Web of Things
Thesis Defence: A Model Driven Architecture for the Web of Things
 
IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015
 
A Model-Driven, Component Generation Approach for the Web of Things
A Model-Driven, Component Generation Approach for the Web of ThingsA Model-Driven, Component Generation Approach for the Web of Things
A Model-Driven, Component Generation Approach for the Web of Things
 
Towards constrained semantic web
Towards constrained semantic webTowards constrained semantic web
Towards constrained semantic web
 
Always-On Web of Things Infrastructure Dynamic Software Updating
Always-On Web of Things Infrastructure Dynamic Software UpdatingAlways-On Web of Things Infrastructure Dynamic Software Updating
Always-On Web of Things Infrastructure Dynamic Software Updating
 
Towards an industrial Web of Things
Towards an industrial Web of ThingsTowards an industrial Web of Things
Towards an industrial Web of Things
 
A component based architecture for the Web of Things
A component based architecture for the Web of ThingsA component based architecture for the Web of Things
A component based architecture for the Web of Things
 
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...
 
Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.
 
WoT 2016 - Seventh International Workshop on the Web of Things
WoT 2016 - Seventh International Workshop on the Web of ThingsWoT 2016 - Seventh International Workshop on the Web of Things
WoT 2016 - Seventh International Workshop on the Web of Things
 
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
 
Enabling reactive cities with the iFLUX middleware
Enabling reactive cities with the iFLUX middlewareEnabling reactive cities with the iFLUX middleware
Enabling reactive cities with the iFLUX middleware
 

Similar a Enabling High Level Application Development In The Internet Of Things

Application development for the internet of things
Application development for the internet of thingsApplication development for the internet of things
Application development for the internet of thingsPankesh Patel
 
Towards application development for the internet of things updated
Towards application development for the internet of things  updatedTowards application development for the internet of things  updated
Towards application development for the internet of things updatedPankesh Patel
 
Introduction to roof computing by Nishant Krishna
Introduction to roof computing by Nishant KrishnaIntroduction to roof computing by Nishant Krishna
Introduction to roof computing by Nishant KrishnaCodeOps Technologies LLP
 
Fi ware short overview - zaragoza
Fi ware short overview - zaragoza Fi ware short overview - zaragoza
Fi ware short overview - zaragoza Jose Jimenez
 
Mikehall FutureWorld 2010 - enabling connectivity
Mikehall FutureWorld 2010 - enabling connectivityMikehall FutureWorld 2010 - enabling connectivity
Mikehall FutureWorld 2010 - enabling connectivityMicrosoft Windows Embedded
 
WF-IOT-2014, Seoul, Korea, 06 March 2014
WF-IOT-2014, Seoul, Korea, 06 March 2014WF-IOT-2014, Seoul, Korea, 06 March 2014
WF-IOT-2014, Seoul, Korea, 06 March 2014Charith Perera
 
Akraino and Edge Computing
Akraino and Edge ComputingAkraino and Edge Computing
Akraino and Edge ComputingLiz Warner
 
Designing Enterprise Mobile Applications: Critical Success Factors
Designing Enterprise Mobile Applications: Critical Success FactorsDesigning Enterprise Mobile Applications: Critical Success Factors
Designing Enterprise Mobile Applications: Critical Success FactorsPerficient, Inc.
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterAlexander Arda
 
DAI Framework_CEII_2022.pptx
DAI Framework_CEII_2022.pptxDAI Framework_CEII_2022.pptx
DAI Framework_CEII_2022.pptxIakovosIoannou1
 
Oracle - Soluções do device ao Datacenter
Oracle - Soluções do device ao DatacenterOracle - Soluções do device ao Datacenter
Oracle - Soluções do device ao DatacenterGeneXus
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Prolifics
 
INTEROPERABILITY, FLEXIBILITY AND INDUSTRIAL DESIGN REQUIREMENTS IN THE IoT
INTEROPERABILITY, FLEXIBILITY AND INDUSTRIAL DESIGN REQUIREMENTS IN THE IoTINTEROPERABILITY, FLEXIBILITY AND INDUSTRIAL DESIGN REQUIREMENTS IN THE IoT
INTEROPERABILITY, FLEXIBILITY AND INDUSTRIAL DESIGN REQUIREMENTS IN THE IoTMuhammad Ahad
 
Enabling high level application development for internet of things
Enabling high level application development for internet of thingsEnabling high level application development for internet of things
Enabling high level application development for internet of thingsPankesh Patel
 
Career Domain 2022-23.pptx
Career Domain 2022-23.pptxCareer Domain 2022-23.pptx
Career Domain 2022-23.pptxJanani S
 
RECAP at ETSI Experiential Network Intelligence (ENI) Meeting
RECAP at ETSI Experiential Network Intelligence (ENI) MeetingRECAP at ETSI Experiential Network Intelligence (ENI) Meeting
RECAP at ETSI Experiential Network Intelligence (ENI) MeetingRECAP Project
 
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdf
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdfIntel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdf
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdfOpenStack Foundation
 
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark LittleKeynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark LittleJAX London
 

Similar a Enabling High Level Application Development In The Internet Of Things (20)

Application development for the internet of things
Application development for the internet of thingsApplication development for the internet of things
Application development for the internet of things
 
Towards application development for the internet of things updated
Towards application development for the internet of things  updatedTowards application development for the internet of things  updated
Towards application development for the internet of things updated
 
Introduction to roof computing by Nishant Krishna
Introduction to roof computing by Nishant KrishnaIntroduction to roof computing by Nishant Krishna
Introduction to roof computing by Nishant Krishna
 
Fi ware short overview - zaragoza
Fi ware short overview - zaragoza Fi ware short overview - zaragoza
Fi ware short overview - zaragoza
 
Mikehall FutureWorld 2010 - enabling connectivity
Mikehall FutureWorld 2010 - enabling connectivityMikehall FutureWorld 2010 - enabling connectivity
Mikehall FutureWorld 2010 - enabling connectivity
 
Windows for IOT
Windows for IOTWindows for IOT
Windows for IOT
 
WF-IOT-2014, Seoul, Korea, 06 March 2014
WF-IOT-2014, Seoul, Korea, 06 March 2014WF-IOT-2014, Seoul, Korea, 06 March 2014
WF-IOT-2014, Seoul, Korea, 06 March 2014
 
Akraino and Edge Computing
Akraino and Edge ComputingAkraino and Edge Computing
Akraino and Edge Computing
 
Designing Enterprise Mobile Applications: Critical Success Factors
Designing Enterprise Mobile Applications: Critical Success FactorsDesigning Enterprise Mobile Applications: Critical Success Factors
Designing Enterprise Mobile Applications: Critical Success Factors
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They Matter
 
DAI Framework_CEII_2022.pptx
DAI Framework_CEII_2022.pptxDAI Framework_CEII_2022.pptx
DAI Framework_CEII_2022.pptx
 
Oracle - Soluções do device ao Datacenter
Oracle - Soluções do device ao DatacenterOracle - Soluções do device ao Datacenter
Oracle - Soluções do device ao Datacenter
 
Internet of things : Beginners view
Internet of things : Beginners viewInternet of things : Beginners view
Internet of things : Beginners view
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
 
INTEROPERABILITY, FLEXIBILITY AND INDUSTRIAL DESIGN REQUIREMENTS IN THE IoT
INTEROPERABILITY, FLEXIBILITY AND INDUSTRIAL DESIGN REQUIREMENTS IN THE IoTINTEROPERABILITY, FLEXIBILITY AND INDUSTRIAL DESIGN REQUIREMENTS IN THE IoT
INTEROPERABILITY, FLEXIBILITY AND INDUSTRIAL DESIGN REQUIREMENTS IN THE IoT
 
Enabling high level application development for internet of things
Enabling high level application development for internet of thingsEnabling high level application development for internet of things
Enabling high level application development for internet of things
 
Career Domain 2022-23.pptx
Career Domain 2022-23.pptxCareer Domain 2022-23.pptx
Career Domain 2022-23.pptx
 
RECAP at ETSI Experiential Network Intelligence (ENI) Meeting
RECAP at ETSI Experiential Network Intelligence (ENI) MeetingRECAP at ETSI Experiential Network Intelligence (ENI) Meeting
RECAP at ETSI Experiential Network Intelligence (ENI) Meeting
 
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdf
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdfIntel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdf
Intel IT OpenStack Journey - OpenStack Fall 2012 Summit.pdf
 
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark LittleKeynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
 

Más de Pankesh Patel

Getting Started for SMEs in Industry 4.0
Getting Started for SMEs in Industry 4.0Getting Started for SMEs in Industry 4.0
Getting Started for SMEs in Industry 4.0Pankesh Patel
 
Hands-on Workshop on Building Digital Twin for Factory of the Future
Hands-on Workshop on Building Digital Twin for Factory of the FutureHands-on Workshop on Building Digital Twin for Factory of the Future
Hands-on Workshop on Building Digital Twin for Factory of the FuturePankesh Patel
 
Software Tools for Building Industry 4.0 Applications
Software Tools for Building Industry 4.0 ApplicationsSoftware Tools for Building Industry 4.0 Applications
Software Tools for Building Industry 4.0 ApplicationsPankesh Patel
 
System and Software Engineering for Industry 4.0
System and Software Engineering for Industry 4.0System and Software Engineering for Industry 4.0
System and Software Engineering for Industry 4.0Pankesh Patel
 
Accelerating Application Development in the Internet of Things using Model-dr...
Accelerating Application Development in the Internet of Things using Model-dr...Accelerating Application Development in the Internet of Things using Model-dr...
Accelerating Application Development in the Internet of Things using Model-dr...Pankesh Patel
 
Smart Factory - App Based Quality Monitoring
Smart Factory - App Based Quality MonitoringSmart Factory - App Based Quality Monitoring
Smart Factory - App Based Quality MonitoringPankesh Patel
 
Subject Matter ExpertWorkbench
Subject Matter ExpertWorkbenchSubject Matter ExpertWorkbench
Subject Matter ExpertWorkbenchPankesh Patel
 
IoTSuite User Manual
IoTSuite User ManualIoTSuite User Manual
IoTSuite User ManualPankesh Patel
 
IoTSuite: A Framework to Design, Implement, and Deploy IoT Applications
IoTSuite: A Framework to Design, Implement, and Deploy IoT ApplicationsIoTSuite: A Framework to Design, Implement, and Deploy IoT Applications
IoTSuite: A Framework to Design, Implement, and Deploy IoT ApplicationsPankesh Patel
 
Towards application development for the internet of things
Towards application development for the internet of thingsTowards application development for the internet of things
Towards application development for the internet of thingsPankesh Patel
 
Towards application development for the physical cyber-social systems
Towards application development for the physical cyber-social systemsTowards application development for the physical cyber-social systems
Towards application development for the physical cyber-social systemsPankesh Patel
 
A model driven development framework for developing sense-compute-control app...
A model driven development framework for developing sense-compute-control app...A model driven development framework for developing sense-compute-control app...
A model driven development framework for developing sense-compute-control app...Pankesh Patel
 
A tool suite for prototyping internet of things applications
A tool suite for prototyping internet of  things applicationsA tool suite for prototyping internet of  things applications
A tool suite for prototyping internet of things applicationsPankesh Patel
 
Enabling high level application development for internet of things
Enabling high level application development for internet of thingsEnabling high level application development for internet of things
Enabling high level application development for internet of thingsPankesh Patel
 

Más de Pankesh Patel (16)

Getting Started for SMEs in Industry 4.0
Getting Started for SMEs in Industry 4.0Getting Started for SMEs in Industry 4.0
Getting Started for SMEs in Industry 4.0
 
Hands-on Workshop on Building Digital Twin for Factory of the Future
Hands-on Workshop on Building Digital Twin for Factory of the FutureHands-on Workshop on Building Digital Twin for Factory of the Future
Hands-on Workshop on Building Digital Twin for Factory of the Future
 
Cloud Manufacturing
Cloud ManufacturingCloud Manufacturing
Cloud Manufacturing
 
Software Tools for Building Industry 4.0 Applications
Software Tools for Building Industry 4.0 ApplicationsSoftware Tools for Building Industry 4.0 Applications
Software Tools for Building Industry 4.0 Applications
 
System and Software Engineering for Industry 4.0
System and Software Engineering for Industry 4.0System and Software Engineering for Industry 4.0
System and Software Engineering for Industry 4.0
 
Accelerating Application Development in the Internet of Things using Model-dr...
Accelerating Application Development in the Internet of Things using Model-dr...Accelerating Application Development in the Internet of Things using Model-dr...
Accelerating Application Development in the Internet of Things using Model-dr...
 
Smart Factory - App Based Quality Monitoring
Smart Factory - App Based Quality MonitoringSmart Factory - App Based Quality Monitoring
Smart Factory - App Based Quality Monitoring
 
Subject Matter ExpertWorkbench
Subject Matter ExpertWorkbenchSubject Matter ExpertWorkbench
Subject Matter ExpertWorkbench
 
IoTSuite User Manual
IoTSuite User ManualIoTSuite User Manual
IoTSuite User Manual
 
IoTSuite: A Framework to Design, Implement, and Deploy IoT Applications
IoTSuite: A Framework to Design, Implement, and Deploy IoT ApplicationsIoTSuite: A Framework to Design, Implement, and Deploy IoT Applications
IoTSuite: A Framework to Design, Implement, and Deploy IoT Applications
 
Towards application development for the internet of things
Towards application development for the internet of thingsTowards application development for the internet of things
Towards application development for the internet of things
 
Sla in cloud
Sla in cloudSla in cloud
Sla in cloud
 
Towards application development for the physical cyber-social systems
Towards application development for the physical cyber-social systemsTowards application development for the physical cyber-social systems
Towards application development for the physical cyber-social systems
 
A model driven development framework for developing sense-compute-control app...
A model driven development framework for developing sense-compute-control app...A model driven development framework for developing sense-compute-control app...
A model driven development framework for developing sense-compute-control app...
 
A tool suite for prototyping internet of things applications
A tool suite for prototyping internet of  things applicationsA tool suite for prototyping internet of  things applications
A tool suite for prototyping internet of things applications
 
Enabling high level application development for internet of things
Enabling high level application development for internet of thingsEnabling high level application development for internet of things
Enabling high level application development for internet of things
 

Enabling High Level Application Development In The Internet Of Things

  • 1. Enabling High-level Application Development in the Internet of Things Pankesh Patel ARLES project-team Inria Paris-Rocquencourt
  • 2. Outline • Introduction to the Internet of Things • Application Development Challenges • Existing Approaches • Our Goal • Contributions • Discussion • Future work 2
  • 3. Characteristics of ``things’’ • May have sensors attached • May have actuators attached • Can communicate with other things • Can be involved in the information exchange between ``physical’’ and ``virtual’’ worlds 3
  • 4. Internet of things (IoT) ``A network infrastructure that connects physical and virtual things” [CASAGRAS Project] [CASAGRAS Project] : http://www.rfidglobal.eu/userfiles/documents/CASAGRAS26022009.pdf 4
  • 5. Marriage of Sensor Network and Pervasive Computing Sensor Network Pervasive computing Large Scale Heterogeneity Internet of things 5
  • 6. Multiple Levels [IoT Research Roadmap] Internet of Things Application Domain Building … Automation Healthcare Transportation Application HVAC Energy Management Deployment INRIA Google office Office [IoT Research Roadmap] Internet of things strategic Research Roadmap http://www.internet-of-things-research.eu/pdf/IoT_Cluster_Strategic_Research_Agenda_2009.pdf 6
  • 7. Outline • Introduction to the Internet of Things • Application Development Challenges • Existing Approaches • Our Goal • Contributions • Discussion • Future work 7
  • 8. 1. No Separation of Concerns • To develop applications, a developer requires multiple skills Distributed system Low-level Domain-specific Knowledge hardware knowledge Expertise (e.g., interaction (e.g., glue code to (e.g., Building modes) interface hardware and automation) software) Requires considerable CS background Conflicts with skill-set Hinders rapid application development Programmer/developer 8
  • 9. 2. “General-Purpose” DSLs “one- size fits all’’ DSL for the entire IoT domain. application Internet of things domain 1 application domain 2 application domain N … Home Transportation automation Healthcare These approaches remains general purpose and thus provide little guidance to the developers 9
  • 10. 3. Heterogeneity of Target Devices • Different interaction modes • Different implementation of sensor/actuator Spreads in the application code, cluttering with low-level detail. 10
  • 11. 4. Large Scale • Hundreds to thousands of devices equipped with sensors and actuators Reasoning at large scale is impractical 11
  • 12. Outline • Introduction to the Internet of Things • Application Development Challenges • Existing Approaches • Our Goal • Contributions • Discussion • Future work 12
  • 13. Middleware Approach (or node-level programming) • Motivation: • Shields the programmers from complexity by providing abstractions at node- level [Context toolkit, Gaia middleware]. • Disadvantages: • No separation of concerns • Missing support for each application development stages • Provided support remain general purpose and thus provide little guidance to developers to program application domain 13
  • 14. System-level Approach (or macro programming) • Motivation: • Raises the level of abstraction in program specifications (largely in UML/textual language) and transforms into working implementation [PervML, ATaG, DiaSuite] • Separation of concerns • Support for each application development stages • Disadvantages: • Provided support remain general purpose and thus provide little guidance to developers to program application domain 14
  • 15. Goal of Our Research “Enable high-level application development that allow stakeholders involved in the development of IoT applications to easily create applications, which involves a large number of heterogeneous devices’’ 15
  • 16. Assumptions • Inter-node communication is provided by a suitable middleware. • The creation of IoT applications is a collaborative process between stakeholders with unique skills and responsibilities. • There is a node-level compilation support for high-level object-oriented programming languages. - 16
  • 17. Contributions 1 We identify entities of IoT and relationship among them (model) 2 Leveraging model, we identify the precise role of stakeholders 3 Resulting from the actions of each stakeholder, we propose multi-stage model driven approach 4 Evaluation of approach 17
  • 18. Our IoT Model (1/2) It encapsulates system’s functionalities, provides interface. Communicates-with Traditional * 1 consumes 1..* 1 Software Internet concepts 1 Information Component 1 generates Extends Extends Extends Extends End-user Storage Computational Driver Application Service service 1 1 Interacts Provides Extends Extends with access to 1 1..* Sensor Actuator User Store Driver Driver ``Things’’- oriented concepts 18
  • 19. Our IoT Model (2/2) Entity of Consists of Observes Phenomenon Interest affects Actuator Sensor accesses actuates Resource Actuator Sensor Hosts Driver Driver Device generates consumes Runs-on Software Component Command Sensor Measurement End-user Storage Computational Driver Application Service Service Information User Store 19
  • 20. Entity at Deployment Level Application Domain Building Automation At deployment-level, two deployment sites have different set of devices. HVAC Energy Application Mgmt Resource Deployment Hosts 1 * Device INRIA Google 1 site site Runs-on 1..* Software Component 20
  • 21. Entities at Application Level Application Domain Building Automation At application-level, two applications have different set of functionalities. Energy Application HVAC Mgmt Deployment 1 Hosts * Device Communicates-with INRIA Google 1 site site Runs-on 1..* Software Component End-user Computational Application Service 21
  • 22. Entities at Application Domain Level Entity of Consists of Observes Phenomenon Interest affects Actuator Sensor Affects accesses Entity of Interest actuates Resource Actuator Sensor Hosts Driver ObservesDriver Device Entity of Interest generates consumes Runs-on Software Component Command Sensor Measurement End-user Storage Computational Driver Application Service Service User Store Stores information about Entity of Interest 22
  • 23. Contributions 1 We identify entities of IoT and relationship among them (model) 2 Leveraging model, we identify the precise role of stakeholders 3 Resulting from the actions of each stakeholder, we propose multi-stage model driven approach 4 Evaluation of approach 23
  • 24. Roles in IoT application development Role Skills Responsibilities Domain Understanding about application Vocabulary of application domain Expert [1] domain (e.g., building automation) Device Developer Low-level hardware knowledge Writes device specific drivers System Understanding about Designer [1] Defines structure of the application architecture of an application Application Skilled in algorithm and Implements software components Developer [2] programming language Network Understanding of target area Specifies target application scenario Manager where the application is to be and Installs the application on the deployed device at hand [1] Software Architecture: Foundations, Theory, and Practice by R. N. Taylor, N. Medvidovic and E. M. Dashofy [2] D. Cassou, J. Bruneau, C. Consel, and E. Balland. Towards a tool-based development methodology for pervasive computing applications. Software Engineering, IEEE Transactions on, (99):1-1, 2011. 24
  • 25. Roles in IoT application development Role Skills Responsibilities Domain Understanding about application Vocabulary of application domain Expert [1] domain (e.g., building automation) Application Domain Level Device Developer Low-level hardware knowledge Writes device specific drivers System Understanding about Designer [1] Defines structure of the application architecture of an application Application Level Application Skilled in algorithm and Implements software components Developer [2] programming language Network Understanding of target area Specifies target application scenario Manager where the application is to be deployed Deployment Level and Installs the application on the device at hand [1] Software Architecture: Foundations, Theory, and Practice by R. N. Taylor, N. Medvidovic and E. M. Dashofy [2] D. Cassou, J. Bruneau, C. Consel, and E. Balland. Towards a tool-based development methodology for pervasive computing applications. Software Engineering, IEEE Transactions on, (99):1-1, 2011. 25
  • 26. Contributions 1 We identify entities of IoT and relationship among them (model) 2 Leveraging model, we identify the precise role of stakeholders 3 Resulting from the actions of each stakeholder, we propose multi-stage model driven approach 4 Evaluation of approach 26
  • 27. Vocabulary Specification 1 Vocabulary Specification using Srijan Vocabulary Language (SVL) Domain Vocabulary • Sensor Specification Expert • Actuator • Storage Service • Region definition Specify Input Refer Output 27
  • 28. Architecture Specification 1 2 Domain Vocabulary Expert Specification Architecture System Specification Designer Given vocabulary, he defines architecture of an application using Srijan Architecture Language (SAL). Specify Input Refer Output 28
  • 29. Implementing Software Component 1 2 Domain Vocabulary Expert Specification Architecture System Specification Designer Framework Generator 3 4 Application Application Application Developer Logic Framework Specify Input Refer It allows application developers to focus Output on software component logic. 29
  • 30. Target Network Specification 1 2 Domain Vocabulary Expert Specification Architecture System Specification Designer 5 Framework Generator Network Network 3 description Manager 4 Application Application Application Developer Logic Framework Specify Given vocabulary, he specifies target Input deployment scenario using Srijan Refer Network Language (SAL). Output 30
  • 31. Mapping 1 2 Domain Vocabulary Expert Specification Architecture System Specification Designer 5 Framework Generator Network Network 3 description Manager Mapper 4 6 Application Application Application Developer Logic Framework Mapping files Specify Input It decides the specific device where Refer each software component will be Output running. 31
  • 32. Writing Device-Drivers 1 2 Domain Vocabulary Expert Specification Architecture System Specification Designer 5 Given vocabulary, he writes device drivers Framework Generator • sensor driver Network Network • actuator driver description Manager 3 Mapper 4 6 Application Application 7 Application Developer Logic Framework Mapping files Device Device Developer Specify Drivers Input Refer Output 32
  • 33. Linking 1 2 Domain Vocabulary Expert Specification Architecture System Specification Designer 5 Framework Generator Network Network 3 description Manager Mapper 4 6 Application Application 7 Application Developer Logic Framework Mapping files Device Device Developer Specify Drivers 8 Combines the generated code Input System Linker into the actual code to be Refer deployed on the real devices. Output 33
  • 35. DSL Actuator Affects Vocabulary Lang. action (Application Domain Level) Phenomenon (e.g., Heater) command Take Decision Controller (e.g., On / Off) Architecture Lang. (Application Level) information Computes Information Computational (e.g., Calculate Avg) Service Sensor information Measurement Observes Phenomenon Vocabulary Lang. Sensor Storage Stores info. about (e.g., Temperature Phenomenon Sensor )(Application Domain Level) User’s Preferences) (e.g., 35
  • 36. Srijan Vocabulary Language (1/2) As a first step of abstracting heterogeneity, sensing and actuating entities are specified in high-level manner. One entity description for many implementations TemperatureSensor generate tempMeasurement : TempStruct; One entity description for many instances 36
  • 37. Srijan Vocabulary Language (2/2) To address scalable operations within IoT system, hierarchical clustering should be specified [SINA]. Building:03 regions: Building : Integer; Floor : Integer; Floor: 10 ... Floor: 15 Room : Integer; Room: 5 Room: 6 Use of region construct: • Enables system partition at logical level • Defines scope from which software components will produce/consume data [SINA] Srisathapornphat, C. and Jaikaeo, C. and Shen, C. , Sensor information networking architecture and applications, 2001 37
  • 38. Srijan Architecture Language avgTemp Room AvgTemp “Vocabulary” specific tempMeasurement Architecture Description Temperature Sensor Scope of consuming data. RoomAvgTemp consume tempMeasurement from hops : 0: Room ; Enables generate avgTemp : TempStruct ; Hierarchical in-region : Room ; Clustering Scope of deployment 38
  • 39. Srijan Network Language Temperature-Sensing-Device : Device Name region : Building : 15 ; Floor : 11; Room : 0; abilities : TemperatureSensor; Attached sensor/ actuator/storage service Badge-Scanner : with device region : Building : 15 ; Floor : 11; Room : 0; abilities : BadgeReader ; “Vocabulary” specific Network Description 39
  • 40. Contributions 1 We identify entities of IoT and relationship among them (model) 2 Leveraging model, we identify the precise role of stakeholders 3 Resulting from the actions of each stakeholder, we propose multi-stage model driven approach 4 Evaluation of approach 40
  • 41. Evaluation of our approach (1/2) Goal of our evaluation: • To demonstrate the advantage of our approach over manual application development approach. Application Sensing Actuating Computational Controller Storage Devices Entity Entity Service Service Smart Office 12 6 13 6 2 8 Application Fire Management 8 8 4 3 0 8 Application 41
  • 42. Evaluation of our approach (2/2) Development efforts: • It is directly proportional to the lines of code. • The more hand-written lines of code there is, the effort required to develop application is longer. Lines of code* Lines of Code Applicatio Applicatio n Logic n Logic 11% 10% Specificat Specificat ion ion Code 8% Code 8% Coverage Coverage** 93% 90% Generate Generate d Code d Code 81% 82% Smart Office Fire Management Application Application *Lines of code using Metrics 1.3.6 Eclipse plugin, ** Code coverage using EclEmma Eclipse plugin. 42
  • 43. Outline • Introduction to the Internet of Things • Application Development Challenges • Existing Approaches • Our Goal • Contributions • Discussion • Future work 43
  • 44. Discussion 1. Identify the precise role of each stakeholders • Promotes separation of concerns 2. Multi-stage model-driven approach • Allows stakeholders to specify their share at proper level of abstractions (aiming large number of heterogeneous devices) 3. A generative approach of application development • Provides support to stakeholders to design and develop applications at each stages • ease application development by reducing development efforts 44
  • 45. Outline • Introduction to the Internet of Things • Application Development Challenges • Existing Approaches • Our Goal • Current Progress to Achieve Goal • Discussion • Future work 45
  • 46. Future work (1/3) 1. Novel mapping algorithms cognizant of heterogeneity To handle the heterogeneity of target devices, we will provide rich abstractions to express the properties of the devices : • Processing and storage capacity • Monetary cost of hosting a software component These will then be used to guide the design of algorithms for efficient mapping of software components on devices. 46
  • 47. Future work (2/3) 2. Complete support for storage services • Our work will provide abstractions to easily specify interaction modes with the rich variety of data sources present in the IoT. Simplistic view of storage interaction, which is inadequate given diverse set of data sources available on the internet. Profile-StorageService generate profile : TempStruct accessed-by badgeID: String ; TempStruct tempValue : double ; unitOfMeasurement : String ; 47
  • 48. Future work (3/3) 3. End-user interaction We will provide better ways for the stakeholders to define these software components at all stages of the application development process. Entity of Interest End-user Application Interacts with User 48
  • 50. Our IoT Model (2/2) 1..* Entity of 1 Consists-of 1..* affects Phenomenon Interest 1..* Observes 1 * * Produces 1 1 1 Performs Raw data Sensor Actuator Action 1 1 Accessed-by Extends Extends actuated-by 1 1 Resource Sensor Actuator 1 Hosts driver * driver Device 1 Communicates-with 1 generates 1 consumes 1 1 Runs-on 1..* Software Component Command Sensor extends measurement End-user Storage Computational Service Driver Application Service Extends Extends Information User Store 50
  • 51. Entities at Application Domain Level 1..* Entity of 1 Consists-of 1..* affects Phenomenon Interest 1..* Observes 1 * * Produces 1 1 1 Performs Raw data Sensor Actuator Action 1 1 Accessed-by Extends Extends actuated-by 1 Observes 1 Entity of Interest Resource Actuator AffectsSensor 1 Hosts Device * driver Entity of Interest driver Communicates-with 1 1 1 generates consumes 1 1 Runs-on 1..* Software Component Command Sensor Extends measurement End-user Storage Computational Driver Extends Application Service Service Extends Information User Store Stores information about Entity of Interest 51
  • 52. Middleware Approach • Motivation: • Shields the programmers from complexity by providing abstractions at system-level [Context toolkit, Gaia middleware]. Disadvantages: • Programming abstractions for whom ? • Missing support for each application development stages • Provided support remain general purpose and thus provide little guidance to developers to program application domain 52