A Simple (yet Powerful) Algebra for Pervasive Environments ... · A Simple (yet Powerful) Algebra...

Preview:

Citation preview

A Simple (yet Powerful) Algebrafor Pervasive Environments

EDBT 2010

Yann Gripay, Frédérique Laforest, Jean-Marc Petit

Laboratoire d’InfoRmatique en Image et Systèmes d’informationUniversité de Lyon, INSA-Lyon, LIRIS – UMR 5205 CNRS

7 avenue Jean Capelle, F-69621 Villeurbanne, Francehttp://liris.cnrs.fr

25th March 2010

Introduction Structure Language Implementation Conclusion

Pervasive Environments

The Computer for the 21st Century, Mark Weiser, 1991“The most profound technologies are those that disappear. Theyweave themselves into the fabric of everyday life until they areindistinguishable from it.”

network

CharacteristicsDynamicDistributedHeterogeneousLinked to the physical worldetc.

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 2 / 29

Introduction Structure Language Implementation Conclusion

Pervasive Applications

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 3 / 29

Introduction Structure Language Implementation Conclusion

Pervasive Applications

RessourcesDonnées

Fonctionnalités

Flux de Données

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 3 / 29

Introduction Structure Language Implementation Conclusion

Pervasive Applications

!

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 3 / 29

Introduction Structure Language Implementation Conclusion

Pervasive Applications

?

X

??

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 3 / 29

Introduction Structure Language Implementation Conclusion

Issues of Pervasive Application Development

Interacting with distributed dynamic resourcesHeterogeneity• Data• Functionality

Dynamicity• Dynamic data• Availability of resources

Number of resourcesRemote access

Proposition: the SoCQ data modelService-oriented Continuous Queries

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 4 / 29

Introduction Structure Language Implementation Conclusion

Issues of Pervasive Application Development

Interacting with distributed dynamic resourcesHeterogeneity• Data• Functionality

Dynamicity• Dynamic data• Availability of resources

Number of resourcesRemote access

Proposition: the SoCQ data modelService-oriented Continuous Queries

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 4 / 29

Introduction Structure Language Implementation Conclusion

SoCQ Data ModelData-oriented declarative approach for pervasive environments

At the interface of two domainsPrinciples of databasesRequirements of pervasive environments

An additional level of abstraction⇒ Declarative approachUnified logical representationDeclarative query languageEnabling optimization

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 5 / 29

Introduction Structure Language Implementation Conclusion

Outline

1 Introduction

2 Data Model Structure

3 Data Model Language

4 Implementation

5 Conclusion

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 6 / 29

Introduction Structure Language Implementation Conclusion

Outline

1 Introduction

2 Data Model Structure

3 Data Model Language

4 Implementation

5 Conclusion

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 7 / 29

Introduction Structure Language Implementation Conclusion

Abstraction of Functionality

Stable structure / Dynamic instancesMiddleware (SOA, SODA, Real World Internet, etc.)• Services with methods and events

Decoupling• Functionality⇒ stable metadata: prototype• Implementations⇒ dynamic instances: services

ωi ωj

Méthodes

Flux de données

Données stockées

Webcam Capteur E-mail Messagerieinstantanée

ω ServicesFlux RSS

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 8 / 29

Introduction Structure Language Implementation Conclusion

Abstraction of Functionality

Stable structure / Dynamic instancesMiddleware (SOA, SODA, Real World Internet, etc.)• Services with methods and events

Decoupling• Functionality⇒ stable metadata: prototype• Implementations⇒ dynamic instances: services

ωi ωj

Méthodes

Flux de données

Données stockées

Webcam Capteur E-mail Messagerieinstantanée

ω ServicesFlux RSS

ω

temperatureNotifications

getTemperature

sendMessage

ω

ω

ω

ωω ω

ω

ω ω

ωω

ω

ω

ω

ω

PROTOTYPES

SERVICES

ω

ω

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 8 / 29

Introduction Structure Language Implementation Conclusion

Data vs Functionality

In the literature: binding pattern of a relation R(Ab, Bf )

“which attributes of a relation must be given values whenaccessing a set of tuples” [D. Florescu et al., SIGMOD’99]Explicit mismatch between logical and physical views

Prototype ≈ binding patternInput/Output attributes• sendMessage ( address, message ) : ( sent )• getTemperature ( ) : ( temperature )

Services ≈ relational datasourcesImpact or not on the environment• actuators vs sensors

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 9 / 29

Introduction Structure Language Implementation Conclusion

Extended Dynamic Relation (XD-Relation)

sendMessage(address,message):(sent)

email jabber

Nicolasnicolas@elysee.fr

Carlacarla@elysee.fr

Françoisfrancois@im.gouv.fr

Name Address Messenger Message SentNicolas nicolas@elysee.fr email * *Carla carla@elysee.fr email * *

François francois@im.gouv.fr jabber * *

sendMessage [ Messenger ] ( Address, Message ) : ( Sent )

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 10 / 29

Introduction Structure Language Implementation Conclusion

Extended Dynamic Relation (XD-Relation)

sendMessage(address,message):(sent)

email jabber

Nicolasnicolas@elysee.fr

Carlacarla@elysee.fr

Françoisfrancois@im.gouv.fr

Name Address Messenger Message SentNicolas nicolas@elysee.fr email * *Carla carla@elysee.fr email * *

François francois@im.gouv.fr jabber * *

sendMessage [ Messenger ] ( Address, Message ) : ( Sent )

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 10 / 29

Introduction Structure Language Implementation Conclusion

Relational Pervasive Environment

XD-RelationsSchema = real & virtual attributes + binding patternsTuples over real attributes onlyFinite / infinite

Finite XD-RelationSensors

sensor location temperaturesensor01 office *sensor02 corridor *sensor03 roof *

getTemperature [sensor] ( ) : ( temperature )temperatureNotifications [sensor] ( ) : ( temperature ) STREAMING

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 11 / 29

Introduction Structure Language Implementation Conclusion

Relational Pervasive Environment

XD-RelationsSchema = real & virtual attributes + binding patternsTuples over real attributes onlyFinite / infinite

Finite XD-RelationSensors

sensor location temperaturesensor01 office *sensor02 corridor *sensor03 roof *

getTemperature [sensor] ( ) : ( temperature )temperatureNotifications [sensor] ( ) : ( temperature ) STREAMING

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 11 / 29

Introduction Structure Language Implementation Conclusion

Relational Pervasive Environment

XD-RelationsSchema = real & virtual attributes + binding patternsTuples over real attributes onlyFinite / infinite

Finite XD-RelationSensors

sensor location temperaturesensor01 office *sensor03 roof *

getTemperature [sensor] ( ) : ( temperature )temperatureNotifications [sensor] ( ) : ( temperature ) STREAMING

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 11 / 29

Introduction Structure Language Implementation Conclusion

Relational Pervasive Environment

XD-RelationsSchema = real & virtual attributes + binding patternsTuples over real attributes onlyFinite / infinite

Finite XD-RelationSensors

sensor location temperaturesensor01 office *sensor03 roof *sensor17 office *sensor18 office *

getTemperature [sensor] ( ) : ( temperature )temperatureNotifications [sensor] ( ) : ( temperature ) STREAMING

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 11 / 29

Introduction Structure Language Implementation Conclusion

Relational Pervasive Environment

XD-RelationsSchema = real & virtual attributes + binding patternsTuples over real attributes onlyFinite / infinite

Finite XD-RelationSensors

sensor location temperaturesensor01 office *sensor03 roof *sensor17 office *sensor18 office *

getTemperature [sensor] ( ) : ( temperature )temperatureNotifications [sensor] ( ) : ( temperature ) STREAMING

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 11 / 29

Introduction Structure Language Implementation Conclusion

Relational Pervasive Environment

XD-RelationsSchema = real & virtual attributes + binding patternsTuples over real attributes onlyFinite / infinite

Finite XD-RelationSensors

sensor location temperature

sensor01 office *sensor03 roof *sensor17 office *sensor18 office *

Infinite XD-RelationPhotos

camera location photo

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 11 / 29

Introduction Structure Language Implementation Conclusion

Relational Pervasive Environment

XD-RelationsSchema = real & virtual attributes + binding patternsTuples over real attributes onlyFinite / infinite

Finite XD-RelationSensors

sensor location temperature

sensor01 office *sensor03 roof *sensor17 office *sensor18 office *

Infinite XD-RelationPhotos

camera location photo

camera01 garden

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 11 / 29

Introduction Structure Language Implementation Conclusion

Relational Pervasive Environment

XD-RelationsSchema = real & virtual attributes + binding patternsTuples over real attributes onlyFinite / infinite

Finite XD-RelationSensors

sensor location temperature

sensor01 office *sensor03 roof *sensor17 office *sensor18 office *

Infinite XD-RelationPhotos

camera location photo

camera01 garden

camera01 garden

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 11 / 29

Introduction Structure Language Implementation Conclusion

Relational Pervasive Environment

XD-RelationsSchema = real & virtual attributes + binding patternsTuples over real attributes onlyFinite / infinite

Finite XD-RelationSensors

sensor location temperature

sensor01 office *sensor03 roof *sensor17 office *sensor18 office *

Infinite XD-RelationPhotos

camera location photo

camera01 garden

camera01 garden

camera01 garden

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 11 / 29

Introduction Structure Language Implementation Conclusion

Relational Pervasive Environment

XD-RelationsSchema = real & virtual attributes + binding patternsTuples over real attributes onlyFinite / infinite

Finite XD-RelationSensors

sensor location temperature

sensor01 office *sensor03 roof *sensor17 office *sensor18 office *

Infinite XD-RelationPhotos

camera location photo

camera01 garden

camera01 garden

camera01 garden

camera01 garden

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 11 / 29

Introduction Structure Language Implementation Conclusion

Relational Pervasive Environment

XD-RelationsSchema = real & virtual attributes + binding patternsTuples over real attributes onlyFinite / infinite

Finite XD-RelationSensors

sensor location temperature

sensor01 office *sensor03 roof *sensor17 office *sensor18 office *

Infinite XD-RelationPhotos

camera location photo

camera01 garden

camera01 garden

camera01 garden

camera01 garden. . . . . . . . .

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 11 / 29

Introduction Structure Language Implementation Conclusion

Outline

1 Introduction

2 Data Model Structure

3 Data Model LanguageSerena algebraQuery Equivalence

4 Implementation

5 Conclusion

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 12 / 29

Introduction Structure Language Implementation Conclusion

Serena algebra

Decomposition of pervasive applicationsGeneric elementary operations⇒ algebra operatorsExtension of relational algebra & CQL (STREAM Project)

One-shot and continuous operators⇒ Service-enabled algebra

Serena algebra operators over XD-RelationsSet operators ∪, ∩, −Relational operators π, σ, ρ, ./Stream operators (CQL)• WindowW[size] over a stream• Streaming S[event] over a relation

+ operators to interact with services

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 13 / 29

Introduction Structure Language Implementation Conclusion

Serena algebraRealization operators

Realization: virtual attributes⇒ real attributesAssignment αA≡B(r) or αA≡c(r)Binding β〈ψ,S〉(r)

β〈getTemp,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor02 corridor *sensor03 roof *

⇓sensor location temperature

sensor01 office 24.5sensor02 corridor 21.0sensor03 roof 13.5

β〈tempNotif,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor02 corridor *sensor03 roof *

⇓sensor location temperature

. . . . . . . . .

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 14 / 29

Introduction Structure Language Implementation Conclusion

Serena algebraRealization operators

Realization: virtual attributes⇒ real attributesAssignment αA≡B(r) or αA≡c(r)Binding β〈ψ,S〉(r)

β〈getTemp,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor02 corridor *sensor03 roof *

⇓sensor location temperature

sensor01 office 24.5sensor02 corridor 21.0sensor03 roof 13.5

β〈tempNotif,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor02 corridor *sensor03 roof *

⇓sensor location temperature

. . . . . . . . .

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 14 / 29

Introduction Structure Language Implementation Conclusion

Serena algebraRealization operators

Realization: virtual attributes⇒ real attributesAssignment αA≡B(r) or αA≡c(r)Binding β〈ψ,S〉(r)

β〈getTemp,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor03 roof *

⇓sensor location temperature

sensor01 office 24.5sensor03 roof 13.5

β〈tempNotif,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor02 corridor *sensor03 roof *

⇓sensor location temperature

. . . . . . . . .

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 14 / 29

Introduction Structure Language Implementation Conclusion

Serena algebraRealization operators

Realization: virtual attributes⇒ real attributesAssignment αA≡B(r) or αA≡c(r)Binding β〈ψ,S〉(r)

β〈getTemp,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor03 roof *sensor17 office *

⇓sensor location temperature

sensor01 office 24.5sensor03 roof 13.5sensor17 office 22.0

β〈tempNotif,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor02 corridor *sensor03 roof *

⇓sensor location temperature

. . . . . . . . .

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 14 / 29

Introduction Structure Language Implementation Conclusion

Serena algebraRealization operators

Realization: virtual attributes⇒ real attributesAssignment αA≡B(r) or αA≡c(r)Binding β〈ψ,S〉(r)

β〈getTemp,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor03 roof *sensor17 office *

⇓sensor location temperature

sensor01 office 24.5sensor03 roof 13.5sensor17 office 22.0

β〈tempNotif,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor02 corridor *sensor03 roof *

⇓sensor location temperature

. . . . . . . . .

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 14 / 29

Introduction Structure Language Implementation Conclusion

Serena algebraRealization operators

Realization: virtual attributes⇒ real attributesAssignment αA≡B(r) or αA≡c(r)Binding β〈ψ,S〉(r)

β〈getTemp,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor03 roof *sensor17 office *

⇓sensor location temperature

sensor01 office 24.5sensor03 roof 13.5sensor17 office 22.0

β〈tempNotif,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor02 corridor *sensor03 roof *

⇓sensor location temperature

sensor02 corridor 21.0. . . . . . . . .

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 14 / 29

Introduction Structure Language Implementation Conclusion

Serena algebraRealization operators

Realization: virtual attributes⇒ real attributesAssignment αA≡B(r) or αA≡c(r)Binding β〈ψ,S〉(r)

β〈getTemp,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor03 roof *sensor17 office *

⇓sensor location temperature

sensor01 office 24.5sensor03 roof 13.5sensor17 office 22.0

β〈tempNotif,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor02 corridor *sensor03 roof *

⇓sensor location temperature

sensor02 corridor 21.0sensor01 office 24.5sensor02 corridor 21.5

. . . . . . . . .

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 14 / 29

Introduction Structure Language Implementation Conclusion

Serena algebraRealization operators

Realization: virtual attributes⇒ real attributesAssignment αA≡B(r) or αA≡c(r)Binding β〈ψ,S〉(r)

β〈getTemp,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor03 roof *sensor17 office *

⇓sensor location temperature

sensor01 office 24.5sensor03 roof 13.5sensor17 office 22.0

β〈tempNotif,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor02 corridor *sensor03 roof *

⇓sensor location temperature

sensor02 corridor 21.0sensor01 office 24.5sensor02 corridor 21.5

. . . . . . . . .

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 14 / 29

Introduction Structure Language Implementation Conclusion

Serena algebraRealization operators

Realization: virtual attributes⇒ real attributesAssignment αA≡B(r) or αA≡c(r)Binding β〈ψ,S〉(r)

β〈getTemp,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor03 roof *sensor17 office *

⇓sensor location temperature

sensor01 office 24.5sensor03 roof 13.5sensor17 office 22.0

β〈tempNotif,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor03 roof *sensor17 office *

⇓sensor location temperature

sensor02 corridor 21.0sensor01 office 24.5sensor02 corridor 21.5

. . . . . . . . .

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 14 / 29

Introduction Structure Language Implementation Conclusion

Serena algebraRealization operators

Realization: virtual attributes⇒ real attributesAssignment αA≡B(r) or αA≡c(r)Binding β〈ψ,S〉(r)

β〈getTemp,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor03 roof *sensor17 office *

⇓sensor location temperature

sensor01 office 24.5sensor03 roof 13.5sensor17 office 22.0

β〈tempNotif,sensor〉(sensors)

sensor location temperaturesensor01 office *sensor03 roof *sensor17 office *

⇓sensor location temperature

. . . . . . . . .sensor01 office 24.0sensor03 roof 13.0sensor17 office 23.5

. . . . . . . . .Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 14 / 29

Introduction Structure Language Implementation Conclusion

Serena AlgebraService discovery operator

Service discovery ξ〈S,Aφ,Ψφ〉Managing service dynamicity• One tuple per available service

Service interface (+ attribute S) 7→ finite XD-Relation• Description attributes Aφ• Implemented prototypes Ψφ

Discovery of temperature sensorsξ〈sensor,{location},{getTemperature,temperatureNotifications}〉

. . .

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 15 / 29

Introduction Structure Language Implementation Conclusion

Serena AlgebraService discovery operator

Service discovery ξ〈S,Aφ,Ψφ〉Managing service dynamicity• One tuple per available service

Service interface (+ attribute S) 7→ finite XD-Relation• Description attributes Aφ• Implemented prototypes Ψφ

Discovery of temperature sensorsξ〈sensor,{location},{getTemperature,temperatureNotifications}〉

sensor

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 15 / 29

Introduction Structure Language Implementation Conclusion

Serena AlgebraService discovery operator

Service discovery ξ〈S,Aφ,Ψφ〉Managing service dynamicity• One tuple per available service

Service interface (+ attribute S) 7→ finite XD-Relation• Description attributes Aφ• Implemented prototypes Ψφ

Discovery of temperature sensorsξ〈sensor,{location},{getTemperature,temperatureNotifications}〉

sensor location

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 15 / 29

Introduction Structure Language Implementation Conclusion

Serena AlgebraService discovery operator

Service discovery ξ〈S,Aφ,Ψφ〉Managing service dynamicity• One tuple per available service

Service interface (+ attribute S) 7→ finite XD-Relation• Description attributes Aφ• Implemented prototypes Ψφ

Discovery of temperature sensorsξ〈sensor,{location},{getTemperature,temperatureNotifications}〉

sensor location . . .

getTemperature [sensor] ( ) : ( temperature )temperatureNotifications [sensor] ( ) : ( temperature ) STREAMING

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 15 / 29

Introduction Structure Language Implementation Conclusion

Serena AlgebraService discovery operator

Service discovery ξ〈S,Aφ,Ψφ〉Managing service dynamicity• One tuple per available service

Service interface (+ attribute S) 7→ finite XD-Relation• Description attributes Aφ• Implemented prototypes Ψφ

Discovery of temperature sensorsξ〈sensor,{location},{getTemperature,temperatureNotifications}〉

sensor location temperature

getTemperature [sensor] ( ) : ( temperature )temperatureNotifications [sensor] ( ) : ( temperature ) STREAMING

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 15 / 29

Introduction Structure Language Implementation Conclusion

Serena AlgebraService discovery operator

Service discovery ξ〈S,Aφ,Ψφ〉Managing service dynamicity• One tuple per available service

Service interface (+ attribute S) 7→ finite XD-Relation• Description attributes Aφ• Implemented prototypes Ψφ

Discovery of temperature sensorsξ〈sensor,{location},{getTemperature,temperatureNotifications}〉

sensor location temperaturesensor01 office *sensor02 corridor *sensor03 roof *

getTemperature [sensor] ( ) : ( temperature )temperatureNotifications [sensor] ( ) : ( temperature ) STREAMING

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 15 / 29

Introduction Structure Language Implementation Conclusion

Serena AlgebraQueries

Send “Bonjour!” to all,except to “Carla”β〈sendMessage,messenger〉

↑αmessage≡"Bonjour!"

↑σname6="Carla"

↑contacts

Send notifications to all whentemperature exceeds 35.0°C

S[insertion]

↑β〈sendMsg,msger〉

↑αmessage≡location

↑./

↗ ↖σtemp>35.0 contacts

↑W[1]

↑β〈tempNotif,sensor〉

↑sensors

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 16 / 29

Introduction Structure Language Implementation Conclusion

Serena AlgebraQueries

Send “Bonjour!” to all,except to “Carla”β〈sendMessage,messenger〉

↑αmessage≡"Bonjour!"

↑σname6="Carla"

↑contacts

Send notifications to all whentemperature exceeds 35.0°C

S[insertion]

↑β〈sendMsg,msger〉

↑αmessage≡location

↑./

↗ ↖σtemp>35.0 contacts

↑W[1]

↑β〈tempNotif,sensor〉

↑sensors

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 16 / 29

Introduction Structure Language Implementation Conclusion

Serena AlgebraQueries

Send “Bonjour!” to all,except to “Carla”β〈sendMessage,messenger〉

↑αmessage≡"Bonjour!"

↑σname6="Carla"

↑contacts

Send notifications to all whentemperature exceeds 35.0°C

S[insertion]

↑β〈sendMsg,msger〉

↑αmessage≡location

↑./

↗ ↖σtemp>35.0 contacts

↑W[1]

↑β〈tempNotif,sensor〉

↑ξ〈sr,{loc},{getTemp,tempNotif}〉

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 16 / 29

Introduction Structure Language Implementation Conclusion

Query Equivalence

ActionsActive or passive prototypes (binding patterns)• Impact on the environment (actuators)• Or not (sensors)

Actions of a query• Interactions through active binding patterns• Passive binding patterns are ignored

Equivalence of two queries(see paper for details)Intuitively• Same result and same actions

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 17 / 29

Introduction Structure Language Implementation Conclusion

Query Rewriting

With active binding patternβ〈sendMessage,msger〉

↑αmessage≡"Bonjour!"

↑σname 6="Carla"

↑contacts

≡β〈sendMessage,msger〉

↑σname6="Carla"

↑αmessage≡"Bonjour!"

↑contacts

6≡σname 6="Carla"

↑β〈sendMessage,msger〉

↑αmessage≡"Bonjour!"

↑contacts

With passive binding patternβ〈getT emperature,sensor〉

↑σlocation="office"

↑sensors

≡σlocation="office"

↑β〈getT emperature,sensor〉

↑sensors

A step toward query optimizationNotion of equivalenceChoice of active/passive tag

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 18 / 29

Introduction Structure Language Implementation Conclusion

Query Rewriting

With active binding patternβ〈sendMessage,msger〉

↑αmessage≡"Bonjour!"

↑σname 6="Carla"

↑contacts

≡β〈sendMessage,msger〉

↑σname6="Carla"

↑αmessage≡"Bonjour!"

↑contacts

6≡σname 6="Carla"

↑β〈sendMessage,msger〉

↑αmessage≡"Bonjour!"

↑contacts

With passive binding patternβ〈getT emperature,sensor〉

↑σlocation="office"

↑sensors

≡σlocation="office"

↑β〈getT emperature,sensor〉

↑sensors

A step toward query optimizationNotion of equivalenceChoice of active/passive tag

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 18 / 29

Introduction Structure Language Implementation Conclusion

Query Rewriting

With active binding patternβ〈sendMessage,msger〉

↑αmessage≡"Bonjour!"

↑σname 6="Carla"

↑contacts

≡β〈sendMessage,msger〉

↑σname6="Carla"

↑αmessage≡"Bonjour!"

↑contacts

6≡σname 6="Carla"

↑β〈sendMessage,msger〉

↑αmessage≡"Bonjour!"

↑contacts

With passive binding patternβ〈getT emperature,sensor〉

↑σlocation="office"

↑sensors

≡σlocation="office"

↑β〈getT emperature,sensor〉

↑sensors

A step toward query optimizationNotion of equivalenceChoice of active/passive tag

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 18 / 29

Introduction Structure Language Implementation Conclusion

Outline

1 Introduction

2 Data Model Structure

3 Data Model Language

4 ImplementationPrototypeExperimentation

5 Conclusion

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 19 / 29

Introduction Structure Language Implementation Conclusion

Prototype

PEMS (Pervasive Environment Management System)Managing a Relational Pervasive Environment• Managing dynamic data and distributed services• Executing one-shot and continuous queries

Java/OSGi + UPnP

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 20 / 29

Introduction Structure Language Implementation Conclusion

ExperimentationTemperature Surveillance

ServicesMessengers• E-mail• SMS• Jabber (instant messaging)

Temperature sensors• Physical sensors: Thermochron iButton, SunSPOT• Simulated sensors (with control GUI)

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 21 / 29

Introduction Structure Language Implementation Conclusion

ExperimentationTemperature Surveillance

XD-RelationsConfiguration: TemperatureSurveillance

Area Manager Threshold AlertMessage

roof Xavier 45.0 Alert: roof on fire!corridor Yann 35.0 Do not run in the corridor!office Zoé 32.0 Too hot in the office...

Discovery of sensors: SensorsSensor Location Temperature

sensor01 office *sensor02 corridor *sensor03 roof *sunspot08 office *

getTemperature [Sensor] ( ) : ( Temperature )temperatureNotifications [Sensor] ( ) : ( Temperature ) STREAMING

Contact list: EmployeesName Address Message Messenger Sent

Xavier xavier@liris-7171.insa-lyon.fr * jabber4 *Yann yann.gripay@liris.cnrs.fr * email5 *Zoé 336982##### * sms6 *sendMessage [Messenger] ( Address, Message ) : ( Sent )

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 22 / 29

Introduction Structure Language Implementation Conclusion

ExperimentationTemperature Surveillance

Main query (Serena SQL)

SELECT Area,Manager,Threshold,Temperature,SentSTREAMING UPON insertionFROM Sensors, TemperatureSurveillance, EmployeesWITH Message := AlertMessageWHERE Location = AreaAND Temperature > ThresholdAND Manager = Name

USING temperatureNotifications [1], sendMessage ;

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 23 / 29

Introduction Structure Language Implementation Conclusion

ExperimentationTemperature Surveillance – Scenario Execution

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 24 / 29

Introduction Structure Language Implementation Conclusion

Outline

1 Introduction

2 Data Model Structure

3 Data Model Language

4 Implementation

5 Conclusion

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 25 / 29

Introduction Structure Language Implementation Conclusion

ConclusionContributions: A Relational Pervasive Environment

SoCQ Data Model (Service-oriented Continuous Queries)

Structure• Prototypes & Services• XD-Relations (eXtended Dynamic Relations)

Language• Serena (Service-enabled) algebra• Query equivalence

Pervasive Environment Management System (PEMS)Managing dynamic data and servicesExecuting one-shot and continuous queries• Serena SQL (+ DDL/DML)

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 26 / 29

Introduction Structure Language Implementation Conclusion

ConclusionIssues⇒ Solutions

Interacting with distributed dynamic resourcesHeterogeneity⇒ XD-RelationsDynamicity⇒ XD-Relations / Service discovery ξNumber of resources⇒ at the data levelRemote access⇒ Services

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 27 / 29

Introduction Structure Language Implementation Conclusion

ConclusionPerspectives

SoCQ FrameworkExtension of the SoCQ Data Model• Services providing data relations• Aggregation, Spatial data, etc.

Evaluation (Experimentation⇒ Benchmark)P2P PEMS

ApplicationsNews notifications (RSS feeds)Object surveillance (movement sensors)Energy consumption monitoring in “intelligent buildings”

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 28 / 29

Introduction Structure Language Implementation Conclusion

THANK YOU FOR YOUR ATTENTION!

SoCQ Project Web Sitehttp://liris.cnrs.fr/socq/

Yann Gripay – http://liris.cnrs.fr/yann.gripay EDBT 2010 – SoCQ Data Model 29 / 29

Recommended