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
Ad

Recommended

Construction of sfiCAN: a star-based fault-injection infrastructure for the C...
Construction of sfiCAN: a star-based fault-injection infrastructure for the C...
balDYxan
 
D4.5 A package of calibration procedures linked to SWAT through a generic pla...
D4.5 A package of calibration procedures linked to SWAT through a generic pla...
envirogrids-blacksee
 
Accelerating system verilog uvm based vip to improve methodology for verifica...
Accelerating system verilog uvm based vip to improve methodology for verifica...
VLSICS Design
 
Ese 2008 RTSC Draft1
Ese 2008 RTSC Draft1
drusso
 
Ubiquitous Computing
Ubiquitous Computing
u065932
 
Practical Multi-language Generative Programming
Practical Multi-language Generative Programming
Schalk Cronjé
 
Generative programming (mostly parser generation)
Generative programming (mostly parser generation)
Ralf Laemmel
 
Seeking Enligtenment - A journey of purpose rather tan instruction
Seeking Enligtenment - A journey of purpose rather tan instruction
Schalk Cronjé
 
Generative Software Development. Overview and Examples
Generative Software Development. Overview and Examples
Eelco Visser
 
Generative Programming In The Large - Applied C++ meta-programming
Generative Programming In The Large - Applied C++ meta-programming
Schalk Cronjé
 
Practical Meta Programming
Practical Meta Programming
Reggie Meisler
 
Generative and Meta-Programming - Modern C++ Design for Parallel Computing
Generative and Meta-Programming - Modern C++ Design for Parallel Computing
Joel Falcou
 
Practical pairing of generative programming with functional programming.
Practical pairing of generative programming with functional programming.
Eugene Lazutkin
 
Japanese Open and Generative Design
Japanese Open and Generative Design
Yuichi Yazaki
 
Practical C++ Generative Programming
Practical C++ Generative Programming
Schalk Cronjé
 
Seri Belajar Mandiri - Pemrograman C# Untuk Pemula
Seri Belajar Mandiri - Pemrograman C# Untuk Pemula
Agus Kurniawan
 
Probabilistic programming
Probabilistic programming
Eli Gottlieb
 
Summary - Transformational-Generative Theory
Summary - Transformational-Generative Theory
Marielis VI
 
Transformational-Generative Grammar
Transformational-Generative Grammar
Ruth Ann Llego
 
Deep structure and surface structure
Deep structure and surface structure
Asif Ali Raza
 
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
lseinturier
 
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Thesis presentation: Middleware for Ubicomp - A Model Driven Development Appr...
Till Riedel
 
Application development for the internet of things
Application development for the internet of things
Pankesh Patel
 
P1153 kumar a
P1153 kumar a
vyshnavi Venkatesan
 
Introducing a Software Generator Framework - JAZOON12
Introducing a Software Generator Framework - JAZOON12
Stephan Hochdörfer
 
Enabling High Level Application Development In The Internet Of Things
Enabling High Level Application Development In The Internet Of Things
Pankesh Patel
 
SRCenabling application development for the internet of things
SRCenabling application development for the internet of things
IEI GSC
 
IS-ENES COMP Superscalar tutorial
IS-ENES COMP Superscalar tutorial
Roger Rafanell Mas
 
Systems Design Experiences or Just Some War Stories…
Systems Design Experiences or Just Some War Stories…
Persistent Systems Ltd.
 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary Architecture
Thoughtworks
 

More Related Content

Viewers also liked (12)

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

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

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

More from Damien Cassou (6)

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

Recently uploaded (20)

WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
The Growing Value and Application of FME & GenAI
The Growing Value and Application of FME & GenAI
Safe Software
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
The Growing Value and Application of FME & GenAI
The Growing Value and Application of FME & GenAI
Safe Software
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 

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