A Generative Programming
 Approach to Developing Pervasive
        Computing Systems



Damien Cassou, Benjamin Bertran, N...
Pervasive
Computing Systems




                    2
3
Pervasive Computing




●
    heterogeneity
●
    lack of structuring
●
    dynamicity
●
    multiple expertise
●
    test...
Pervasive Computing




●
    heterogeneity
●
    lack of structuring
●
    dynamicity
●
    multiple expertise       imp...
Pervasive Computing




●
    heterogeneity
●
    lack of structuring
●
    dynamicity
●
    multiple expertise       inc...
Pervasive Computing




●
    heterogeneity
●
    lack of structuring
●
    dynamicity
●
    multiple expertise       har...
Pervasive Computing




●
    heterogeneity
●
    lack of structuring
●
    dynamicity
●
    multiple expertise       tim...
Pervasive Computing




●
    heterogeneity         ●
                              Existing approaches
●
    lack of stru...
Our approach




               10
Our approach




               11
Fire management
     scenario



                  12
13
1 Taxonomy

DSL to describe a hierarchy of devices
         ●
             attributes
         ●
             data gathere...
1 Taxonomy

device SmokeDetector (Location loc){
    source Smoke;
}


struct Smoke {
    boolean isDetected;
}


        ...
1 Taxonomy

device Sprinkler (Location loc) {
    action OnOff;
}


action OnOff {
    on(); off();
}


                  ...
17
2 Architecture
      DSL to instantiate a common
pervasive computing architectural pattern




                           ...
2 Architecture




                 19
2 Architecture

context SmokeDetected: boolean {
  source Smoke from SmokeDetector;
}

context FireState: boolean {
  cont...
2 Architecture

controller FireController {
    context FireState;
    action Activation on Alarm;
    action OnOff on Spr...
3 Generated programming
            framework
●
    generated from the description
●
    dedicated to the application




...
3 Generated programming
            framework
●
    guides the implementation
●
    abstracts the distributed back-end
●
 ...
3 Generated programming
       framework




                     ...
                           24
3 Generated programming
       framework

                 ●
                     interfaces
                 ●
          ...
4 Application development




   guided by the description
through the generated framework
                               ...
4 Application development
controller FireController {
  context FireState;
  action OnOff on Sprinkler;
  …
}            a...
5 Generated simulation support




                                 28
5 Generated simulation support
            Editor




                                 29
5 Generated simulation support
       Runtime platform
no additional code!




                                  30
Conclusion & Future work
●
    From a small description of a       ●
                                            Non-funct...
Upcoming SlideShare
Loading in …5
×

A Generative Programming Approach to Developing Pervasive Computing Systems

2,105 views
1,879 views

Published on

Presentation of the DiaSpec approach to GPCE 2009 in Denver.

Published in: Technology
1 Comment
1 Like
Statistics
Notes
  • Great work.
    Thanks for sharing.

    http://www.e-rachat-credits.fr/
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,105
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
45
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide
  • I would like to present our approach to ease development of pervasive computing applications through generation
  • pervasive computing systems involve everyday objects and activities in highly dynamic environments. All objects are networked and must be able to communicate. This paradigm is also called ubiquitous computing or ambient intelligence.
  • But, as with each technology, it introduces its own challenges
  • from the description: abstract middleware guide implementation ensure conformance support graphical simulation
  • detailed overview with the outline of the rest of talk
  • a context aggregates date from devices and interprets it to make it application-specific. For example, a Fire context... a controller uses data from one or multiple contexts and take the decision to activate the devices.
  • the detail of the generated methods are in the paper. underlined methods and classes are abstract
  • the detail of the generated methods are in the paper. underlined methods and classes are abstract
  • A Generative Programming Approach to Developing Pervasive Computing Systems

    1. 1. A Generative Programming Approach to Developing Pervasive Computing Systems Damien Cassou, Benjamin Bertran, Nicolas Loriant and Charles Consel GPCE'09
    2. 2. Pervasive Computing Systems 2
    3. 3. 3
    4. 4. Pervasive Computing ● heterogeneity ● lack of structuring ● dynamicity ● multiple expertise ● testing  hardware/software  functionalities  interfaces 4
    5. 5. Pervasive Computing ● heterogeneity ● lack of structuring ● dynamicity ● multiple expertise  implicit interactions ● testing  no global reasoning  multi-roles components 5
    6. 6. Pervasive Computing ● heterogeneity ● lack of structuring ● dynamicity ● multiple expertise  incremental deployment ● testing  mobility  entity malfunction 6
    7. 7. Pervasive Computing ● heterogeneity ● lack of structuring ● dynamicity ● multiple expertise  hardware ● testing  network protocols  middleware  user needs 7
    8. 8. Pervasive Computing ● heterogeneity ● lack of structuring ● dynamicity ● multiple expertise  time consuming ● testing  cost ineffective  limited situations 8
    9. 9. Pervasive Computing ● heterogeneity ● Existing approaches ● lack of structuring ● general purpose ● dynamicity ● multiple expertise ● partial ● testing 9
    10. 10. Our approach 10
    11. 11. Our approach 11
    12. 12. Fire management scenario 12
    13. 13. 13
    14. 14. 1 Taxonomy DSL to describe a hierarchy of devices ● attributes ● data gathered ● actions supported 14
    15. 15. 1 Taxonomy device SmokeDetector (Location loc){ source Smoke; } struct Smoke { boolean isDetected; } 15
    16. 16. 1 Taxonomy device Sprinkler (Location loc) { action OnOff; } action OnOff { on(); off(); } 16
    17. 17. 17
    18. 18. 2 Architecture DSL to instantiate a common pervasive computing architectural pattern 18
    19. 19. 2 Architecture 19
    20. 20. 2 Architecture context SmokeDetected: boolean { source Smoke from SmokeDetector; } context FireState: boolean { context SmokeDetected; context AverageTemperature; } 20
    21. 21. 2 Architecture controller FireController { context FireState; action Activation on Alarm; action OnOff on Sprinkler; } 21
    22. 22. 3 Generated programming framework ● generated from the description ● dedicated to the application in a GPL! 22
    23. 23. 3 Generated programming framework ● guides the implementation ● abstracts the distributed back-end ● provides high level support in a GPL! 23
    24. 24. 3 Generated programming framework ... 24
    25. 25. 3 Generated programming framework ● interfaces ● proxies ● composites ● support ➢ discovery ➢ RPC ● and more 25
    26. 26. 4 Application development guided by the description through the generated framework 26
    27. 27. 4 Application development controller FireController { context FireState; action OnOff on Sprinkler; … } architecture framework class MyFireCtrl extends FireController { @Override void fireStateChanged(boolean fire, Location loc) { if (fire) { discover(sprinklersWhere()…).on(); … } device discovery remote procedure call … } query language } user code 27
    28. 28. 5 Generated simulation support 28
    29. 29. 5 Generated simulation support Editor 29
    30. 30. 5 Generated simulation support Runtime platform no additional code! 30
    31. 31. Conclusion & Future work ● From a small description of a ● Non-functional properties pervasive computing system ● security ● a generated programming ● fault tolerance framework ● Further leveraging on existing – to guide the development approaches/tools – to ensure conformance ● unit testing ● a support for graphical ● refactoring simulation ● Generalizing our approach to ● a middleware abstraction other domains layer 31

    ×