SlideShare a Scribd company logo
A Generative Programming
 Approach to Developing Pervasive
        Computing Systems



Damien Cassou, Benjamin Bertran, Nicolas Loriant and Charles Consel

                                                    GPCE'09
Pervasive
Computing Systems




                    2
3
Pervasive Computing




●
    heterogeneity
●
    lack of structuring
●
    dynamicity
●
    multiple expertise
●
    testing                  hardware/software
                             functionalities
                             interfaces
                                                  4
Pervasive Computing




●
    heterogeneity
●
    lack of structuring
●
    dynamicity
●
    multiple expertise       implicit interactions
●
    testing                  no global reasoning
                             multi-roles components


                                                       5
Pervasive Computing




●
    heterogeneity
●
    lack of structuring
●
    dynamicity
●
    multiple expertise       incremental deployment
●
    testing                  mobility
                             entity malfunction


                                                   6
Pervasive Computing




●
    heterogeneity
●
    lack of structuring
●
    dynamicity
●
    multiple expertise       hardware
●
    testing                  network protocols
                             middleware
                             user needs
                                                  7
Pervasive Computing




●
    heterogeneity
●
    lack of structuring
●
    dynamicity
●
    multiple expertise       time consuming
●
    testing                  cost ineffective
                             limited situations


                                                   8
Pervasive Computing




●
    heterogeneity         ●
                              Existing approaches
●
    lack of structuring
                                 ●
                                   general purpose
●
    dynamicity
●
    multiple expertise
                                 ●
                                   partial
●
    testing



                                                     9
Our approach




               10
Our approach




               11
Fire management
     scenario



                  12
13
1 Taxonomy

DSL to describe a hierarchy of devices
         ●
             attributes
         ●
             data gathered
         ●
             actions supported




                                         14
1 Taxonomy

device SmokeDetector (Location loc){
    source Smoke;
}


struct Smoke {
    boolean isDetected;
}


                                       15
1 Taxonomy

device Sprinkler (Location loc) {
    action OnOff;
}


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


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




                                            18
2 Architecture




                 19
2 Architecture

context SmokeDetected: boolean {
  source Smoke from SmokeDetector;
}

context FireState: boolean {
  context SmokeDetected;
  context AverageTemperature;
}




                                     20
2 Architecture

controller FireController {
    context FireState;
    action Activation on Alarm;
    action OnOff on Sprinkler;
}




                                  21
3 Generated programming
            framework
●
    generated from the description
●
    dedicated to the application




                                     in a
                                     GPL!

                                            22
3 Generated programming
            framework
●
    guides the implementation
●
    abstracts the distributed back-end
●
    provides high level support




                                   in a
                                   GPL!

                                          23
3 Generated programming
       framework




                     ...
                           24
3 Generated programming
       framework

                 ●
                     interfaces
                 ●
                     proxies
                 ●
                     composites
                 ●
                     support
                     ➢
                       discovery
                     ➢
                       RPC
                 ●
                     and more

                                   25
4 Application development




   guided by the description
through the generated framework
                                  26
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
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-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

More Related Content

Viewers also liked (12)

PDF
Generative Software Development. Overview and Examples
Eelco Visser
 
ODP
Generative Programming In The Large - Applied C++ meta-programming
Schalk Cronjé
 
PPT
Practical Meta Programming
Reggie Meisler
 
PDF
Generative and Meta-Programming - Modern C++ Design for Parallel Computing
Joel Falcou
 
PDF
Practical pairing of generative programming with functional programming.
Eugene Lazutkin
 
PDF
Japanese Open and Generative Design
Yuichi Yazaki
 
PDF
Practical C++ Generative Programming
Schalk Cronjé
 
PDF
Seri Belajar Mandiri - Pemrograman C# Untuk Pemula
Agus Kurniawan
 
ODP
Probabilistic programming
Eli Gottlieb
 
PPTX
Summary - Transformational-Generative Theory
Marielis VI
 
PPTX
Transformational-Generative Grammar
Ruth Ann Llego
 
PPTX
Deep structure and surface structure
Asif Ali Raza
 
Generative Software Development. Overview and Examples
Eelco Visser
 
Generative Programming In The Large - Applied C++ meta-programming
Schalk Cronjé
 
Practical Meta Programming
Reggie Meisler
 
Generative and Meta-Programming - Modern C++ Design for Parallel Computing
Joel Falcou
 
Practical pairing of generative programming with functional programming.
Eugene Lazutkin
 
Japanese Open and Generative Design
Yuichi Yazaki
 
Practical C++ Generative Programming
Schalk Cronjé
 
Seri Belajar Mandiri - Pemrograman C# Untuk Pemula
Agus Kurniawan
 
Probabilistic programming
Eli Gottlieb
 
Summary - Transformational-Generative Theory
Marielis VI
 
Transformational-Generative Grammar
Ruth Ann Llego
 
Deep structure and surface structure
Asif Ali Raza
 

Similar to A Generative Programming Approach to Developing Pervasive Computing Systems (20)

PDF
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
lseinturier
 
PDF
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Till Riedel
 
PPTX
Application development for the internet of things
Pankesh Patel
 
PDF
P1153 kumar a
vyshnavi Venkatesan
 
PDF
Introducing a Software Generator Framework - JAZOON12
Stephan Hochdörfer
 
PPTX
Enabling High Level Application Development In The Internet Of Things
Pankesh Patel
 
PDF
SRCenabling application development for the internet of things
IEI GSC
 
PPT
IS-ENES COMP Superscalar tutorial
Roger Rafanell Mas
 
PPTX
Systems Design Experiences or Just Some War Stories…
Persistent Systems Ltd.
 
PDF
Neal Ford Emergent Design And Evolutionary Architecture
Thoughtworks
 
PDF
Parallel and Distributed Computing: BOINC Grid Implementation Paper
Rodrigo Neves
 
PDF
"Parallel and Distributed Computing: BOINC Grid Implementation" por Rodrigo N...
Núcleo de Electrónica e Informática da Universidade do Algarve
 
PPT
Sa 008 patterns
Frank Gielen
 
PPT
Model-based engineering of multi-platform, synchronous & collaborative UIs
Jean Vanderdonckt
 
PDF
Towards application development for the internet of things
Pankesh Patel
 
PDF
Programming Hybrid Services in the Cloud
Hong-Linh Truong
 
PDF
OSGi Applications Clustering using Distributed Shared Memory
Anthony Gelibert
 
PPTX
Dynamic Event-Driven Actors (DERA)
Huy Tran
 
PPT
Grid computing [2005]
Raul Soto
 
PPTX
Cluster Computing with Dryad
butest
 
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
lseinturier
 
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Till Riedel
 
Application development for the internet of things
Pankesh Patel
 
P1153 kumar a
vyshnavi Venkatesan
 
Introducing a Software Generator Framework - JAZOON12
Stephan Hochdörfer
 
Enabling High Level Application Development In The Internet Of Things
Pankesh Patel
 
SRCenabling application development for the internet of things
IEI GSC
 
IS-ENES COMP Superscalar tutorial
Roger Rafanell Mas
 
Systems Design Experiences or Just Some War Stories…
Persistent Systems Ltd.
 
Neal Ford Emergent Design And Evolutionary Architecture
Thoughtworks
 
Parallel and Distributed Computing: BOINC Grid Implementation Paper
Rodrigo Neves
 
"Parallel and Distributed Computing: BOINC Grid Implementation" por Rodrigo N...
Núcleo de Electrónica e Informática da Universidade do Algarve
 
Sa 008 patterns
Frank Gielen
 
Model-based engineering of multi-platform, synchronous & collaborative UIs
Jean Vanderdonckt
 
Towards application development for the internet of things
Pankesh Patel
 
Programming Hybrid Services in the Cloud
Hong-Linh Truong
 
OSGi Applications Clustering using Distributed Shared Memory
Anthony Gelibert
 
Dynamic Event-Driven Actors (DERA)
Huy Tran
 
Grid computing [2005]
Raul Soto
 
Cluster Computing with Dryad
butest
 
Ad

More from Damien Cassou (6)

PDF
Pharo tutorial at ECOOP 2013
Damien Cassou
 
PDF
Metaprogramming and Reflection in Common Lisp
Damien Cassou
 
PPTX
Leveraging Software Architectures to Guide and Verify the Development of Sen...
Damien Cassou
 
KEY
PhD thesis defense
Damien Cassou
 
KEY
Architecture-Driven Programming for Sense/Compute/Control Applications
Damien Cassou
 
PDF
Smalltalk
Damien Cassou
 
Pharo tutorial at ECOOP 2013
Damien Cassou
 
Metaprogramming and Reflection in Common Lisp
Damien Cassou
 
Leveraging Software Architectures to Guide and Verify the Development of Sen...
Damien Cassou
 
PhD thesis defense
Damien Cassou
 
Architecture-Driven Programming for Sense/Compute/Control Applications
Damien Cassou
 
Smalltalk
Damien Cassou
 
Ad

Recently uploaded (20)

PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 

A Generative Programming Approach to Developing Pervasive Computing Systems

  • 1. A Generative Programming Approach to Developing Pervasive Computing Systems Damien Cassou, Benjamin Bertran, Nicolas Loriant and Charles Consel GPCE'09
  • 3. 3
  • 4. Pervasive Computing ● heterogeneity ● lack of structuring ● dynamicity ● multiple expertise ● testing  hardware/software  functionalities  interfaces 4
  • 5. Pervasive Computing ● heterogeneity ● lack of structuring ● dynamicity ● multiple expertise  implicit interactions ● testing  no global reasoning  multi-roles components 5
  • 6. Pervasive Computing ● heterogeneity ● lack of structuring ● dynamicity ● multiple expertise  incremental deployment ● testing  mobility  entity malfunction 6
  • 7. Pervasive Computing ● heterogeneity ● lack of structuring ● dynamicity ● multiple expertise  hardware ● testing  network protocols  middleware  user needs 7
  • 8. Pervasive Computing ● heterogeneity ● lack of structuring ● dynamicity ● multiple expertise  time consuming ● testing  cost ineffective  limited situations 8
  • 9. Pervasive Computing ● heterogeneity ● Existing approaches ● lack of structuring ● general purpose ● dynamicity ● multiple expertise ● partial ● testing 9
  • 12. Fire management scenario 12
  • 13. 13
  • 14. 1 Taxonomy DSL to describe a hierarchy of devices ● attributes ● data gathered ● actions supported 14
  • 15. 1 Taxonomy device SmokeDetector (Location loc){ source Smoke; } struct Smoke { boolean isDetected; } 15
  • 16. 1 Taxonomy device Sprinkler (Location loc) { action OnOff; } action OnOff { on(); off(); } 16
  • 17. 17
  • 18. 2 Architecture DSL to instantiate a common pervasive computing architectural pattern 18
  • 20. 2 Architecture context SmokeDetected: boolean { source Smoke from SmokeDetector; } context FireState: boolean { context SmokeDetected; context AverageTemperature; } 20
  • 21. 2 Architecture controller FireController { context FireState; action Activation on Alarm; action OnOff on Sprinkler; } 21
  • 22. 3 Generated programming framework ● generated from the description ● dedicated to the application in a GPL! 22
  • 23. 3 Generated programming framework ● guides the implementation ● abstracts the distributed back-end ● provides high level support in a GPL! 23
  • 24. 3 Generated programming framework ... 24
  • 25. 3 Generated programming framework ● interfaces ● proxies ● composites ● support ➢ discovery ➢ RPC ● and more 25
  • 26. 4 Application development guided by the description through the generated framework 26
  • 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
  • 29. 5 Generated simulation support Editor 29
  • 30. 5 Generated simulation support Runtime platform no additional code! 30
  • 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

Editor's Notes

  • #2: I would like to present our approach to ease development of pervasive computing applications through generation
  • #3: 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.
  • #4: But, as with each technology, it introduces its own challenges
  • #11: from the description: abstract middleware guide implementation ensure conformance support graphical simulation
  • #12: detailed overview with the outline of the rest of talk
  • #19: 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.
  • #25: the detail of the generated methods are in the paper. underlined methods and classes are abstract
  • #26: the detail of the generated methods are in the paper. underlined methods and classes are abstract