optimacs : service based composition framework for optimizing queries jean-marc petit, frédérique...
TRANSCRIPT
OPTIMACS : Service based composition framework for optimizing
queries Jean-Marc Petit, Frédérique Laforest, Yann Gripay, Marian Scuturici
Valenciennes, 15.12.2009
Preamble - 0
Preamble
Project Structure WP1: Designing service-based hybrid
queries WP2: Generating logicaly optimized
service-based query plans WP3: Physical optimization and dynamic
adptation of service-based query plans WP4: Testbed for evaluating servicebased
query plans WP5: Dissemination WP6: Project management
WP4 The objective of WP4 is to propose a hybrid
query evaluation platform and a testbed to be reused throughout the project in order to assess the proposal made in WP1, WP2 and WP3.
Delivrables … Services platform and testbed (T0+12 = 04/2010). …
Services platform and testbed Representation and implementation of a
dynamic environment Integrates stream, mobile, classical data
providers Give means for testing service-based querying Continous (pull) or classic access (push) to
services Implements representative QoS measures
Observation: Testbed = services platform + workload +
measures
Services platform - 1 Representation and implementation of a
dynamic environment Discovery: datasources, services
Integrates stream, mobile, classical data providers Stream: continuous data Mobile
appear/disappear the context (position) of a datasource/service changes
in time Classical: relational tables, …
Services platform - 2 Give means for testing service-based querying
Integration of a query module as a service Composition: workload services + query + …
Continous (pull) or classic access (push) to services Pull: GET data Push: START data
Implements representative QoS measures ?
Services platform Intégration de producteurs (sources des
données) et consommateurs de données via une architecture de services REST
Ensemble de règles à respecter (API) par les services et les sources de données http://ds.liris.cnrs.fr/pmwiki.php/Main/API
Permet la reproductibilité d’une expérimentation (requête) sur un jeu de données maîtrisé
Datasource - 1 an abstraction for a fountain/fabric of data
entities in the environment values read by a temperature sensor moving objects seen by a video camera relational table containing some information about
the students registered in a course Web pages available on a http server
sequence of timestamped data entities sharing the same structure (header)
SunSPOT Temperature:number
Position:pos
datasourceressource (out, one shot)ressource(out, stream)
push - stream, pull – one shot
Datasource - 2
http://127.0.0.1/SunSPOT/struct
/SunSPOT /inputs /outputs
/Temperature /Position
SunSPOT Temperature:number
Position:pos
Datasource - 3
http://127.0.0.1/SunSPOT/output/Temperature/struct
/SunSPOT/output/Temperature /ID:int /Time:string /Temperature:int
SunSPOT Temperature:number
Position:pos
Datasource - 4
http://127.0.0.1/SunSPOT/output/Temperature/stream/
ID:1 Time: VGltZQ== Temperature:14
ID:2 Time: VGltPR=s Temperature:15
SunSPOT Temperature:number
Position:pos
Datasource - 5SunSPOT Temperature:number
Position:pos
http://127.0.0.1/SunSPOT/output/Temperature/item/1
ID:1 Time: VGltZQ== Temperature:14
Datasource - 6SunSPOT Temperature(type:string):number
Position:pos
http://127.0.0.1/SunSPOT/output/... …/Temperature?type=Celsius/stream/
Ressource = service (++ ?) Ressources paramétrées produisant des
sorties pour chaque entrée
Geolocalization
Services
DS
Distance (pt1, pt2)
HotelsNear(pt)
datasource
ressources (one shot)
Datasource - Connectivity
D1 V D2 V V M
Commands Start/Stop … User interface
Exemple (datasource)
SunSPOT temperature
position
DataDisplaydata
DataDisplaydata
datasource
ressource (out, one shot | stream) ressource (in | stream)
http://128.2.2.13:2345/SunSpot/temperature/stream/http://128.2.2.13:2345/SunSpot/temperature/item/
Architecture
DSManager
DSManager
DSManager
Interface (UI) permettant la configuration/composition/interaction
Datasources (DS)
datasource = prod | cons | prod+cons
REST
Exemple SELECT h1.name, h1.reserve(myname,
mybank, h.amount)FROM hotelfinder h, location lWHERE 50 <= h.amount 80 ANDb.authorize(myname, mybank, h.amount) ANDEXISTS (SELECT h1.name FROM h.findHotel((1,3)) h1 WHERE dist(h1.address,future(mycoor,1)) < 10)
Exemple
Context
findHotel(pos):hotel
Location:pos
Hotel
finder
Location
toolsfuture(pos, step):pos
dist(pos, pos):number
Query
Engine
Traffic
Info
DSManager datasource:URL
Intégration d’un moteur de requêtes
Query EngineQuery Results
DSManager
Query Engine
Query Results
DSManager
Data access (stream server)
27
VISION (Genoveva)
Find currentposition
Find closestPost office
Filter results
Computeitinerary
Sendresults
SERVICESDATA PROVIDERS
DATA CONSUMER
RECOVERY
MONITORING
QUERY
Find tramtraffic
Find myfilms
Find blockbuster
Objectif Etablir une API commune (/REST)
Premier pas : document (~ 20 pages) T0+12 : version définitive du protocole et format
de données
?