traitement de requêtes xml et applications distribuées ioana manolescu inria futurs - lri, projet...

70
Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Upload: lucille-geoffroy

Post on 04-Apr-2015

109 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Traitement de requêtes XML et applications distribuéesIoana Manolescu

INRIA Futurs - LRI, projet Gemo

Page 2: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Plan

Bases de données distribuées Bases de données et requêtes XML Application XML distribuée: ActiveXML

Distribution et réplication Gestion de ressources sémantiques Optimisation

Page 3: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

I. Bases de données et requêtes XML

Page 4: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

XML: un exemple

<item>Une introduction aux <title>Légendes du Graal</titre> par

<auteur>P.Boulenger</auteur> aux éditions <éditeur>Dunod</éditeur> pour juste 5.55 Euros ! <click>…</click> </item>

item

titre auteur#CDATA #CDATA #CDATAediteur

click

Page 5: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Propriétés des documents XML ayant un impact sur le stockage (1) Hétérogénéité

XML permet: des éléments optionnels (?), des répétitions (+, *), des choix (|)

Identité Deux élements à contenu identique sont différents

En comparaison, dans une table relationelle, impossible de discerner entre deux tuples à contenu identiques

a/b/c[1] <> a/b/c[2]

a/b[count(c)>2]//c

3

a

b

2 31 12

b

c d c c c dc

Page 6: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Propriétés des documents XML ayant un impact sur le stockage (2) Presence de "mixed content"

"Données dans les éléments" "Données en dehors des éléments"

item

titre auteur#CDATA #CDATA #CDATAediteur

click

<item>Une introduction aux <title>Légendes du Graal</titre> par

<auteur>P.Boulenger</auteur> aux éditions <éditeur>Dunod</éditeur> pour juste 5.55 Euros ! <click>…</click> </item>

Page 7: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Propriétés des documents XML ayant un impact sur le stockage (3) Ordre des éléments

<item>Une introduction aux <title>Légendes du Graal</titre> par <auteur>P.Boulenger</auteur> aux éditions <éditeur>Dunod</éditeur> pour juste 5.55 Euros ! <click>…</click> </item>

<item><auteur>P.Boulenger</auteur><click>…</click> <éditeur>Dunod</éditeur> <titre>Légendes du Graal</titre>par pour juste 5.55 Euros ! Une introduction aux</item>

item

titre auteur#CDATA #CDATA #CDATAediteur

click

item

click editeurauteur titre#CDATA#CDATA

#CDATA

Page 8: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Propriétés des documents XML ayant un impact sur le stockage (4) Importance de la structure

Codée implicitement Souvent l'interrogation navigue la structure

departement

personne

adresseresponsable

Paris2

"Dupont"

rue

Lafayette

no ville

personne

adresseemploye

Paris35

"Dupont"

rue

Bd Opera

no ville

Page 9: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Propriétés des documents XML ayant un impact sur le stockage (5) Présence d'un schéma

S'il existe, il peut être utilisé pour systématiser le stockage

département

personne

adresseresponsable

Paris2

"Dupont"

rue

Lafayette

no ville

personne

adresseemploye

Paris35

"Dupont"

rue

Bd Opera

no ville

Page 10: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Interrogation de documents XML: XPath Langage de chemin dans le document /département /département/personne/@nom /département/personne[/@nom="Dupont"]/adresse //personne[/@nom="Dupont"]

/ancestor-or-self::* //personne

[/@nom="Dupont"]/previous-sibling::*

//personne//ville/text()

departement

personne

adresseFonction:

responsable

Paris2

nom:"Dupont"

rue

Lafayette

no ville

personne

adresseFonction:employe

Paris35

nom:"Dupont"

rue

Bd Opera

no ville

Page 11: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Puissance de l'interrogation par XPath Partition du document selon les axes Xpath

Conditions existentielles //département[person/address/ville="Paris"]//person;

Quelques fonctions d'aggrégation Min, max, count

preceding-sibling

ancestor

following-siblingself

descendent

Page 12: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Limitations de XPath

Impossible d'exprimer une corrélation entre des données situées sur des chemins différents Pas de jointure

Ne peut retourner que "des noeuds éxistants" Pas de re-formulation, combinaison de plusieurs

documents

"Langage d'adressage" non pas "langage de requêtes" Requête: sélection, corrélation, reconstruction

Page 13: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Requêtes XQuery

for $x in document("d.xml")//personnewhere $x/@fonction/text()="employe"return $x/@name;

departement

personne

adresseFonction:

responsable

Paris2

nom:"Dupont"

rue

Lafayette

no ville

personne

adresseFonction:employe

Paris35

nom:"Dupont"

rue

Bd Opera

no ville

Page 14: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Requêtes XQuery <tousLesDuponts>

for $x in document("d.xml")//employewhere $x/@name/text()="Dupont"return <fonction> $x/@fonction/text()

</fonction></tousLesDuponts>

departement

personne

adresseFonction:

responsable

Paris2

nom:"Dupont"

rue

Lafayette

no ville

personne

adresseFonction:employe

Paris35

nom:"Dupont"

rue

Bd Opera

no ville

Page 15: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Requêtes XQuery

for $x in document("d.xml")//personne, $y in document("d.xml")//personnewhere $x/@name/text()=$y/@name/text() and $x/@fonction/text()!= $y/@fonction/text()return $x, $y;

departement

personne

adresseFonction:

responsable

Paris2

nom:"Dupont"

rue

Lafayette

no ville

personne

adresseFonction:employe

Paris35

nom:"Dupont"

rue

Bd Opera

no ville

Page 16: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Puissance de l'interogation par XQuery XPath Jointures Restructurations arbitraires ("nouveau XML") Imbrication arbitraire Possibilité d'ignorer l'ordre des données en entrée (mot-

clé UNORDERED) Typage, sémantique formelle Extensibilité : fonctions XQuery

Y compris fonctions récursives... Très puissant, mais plus optimisable que XSL-T

Page 17: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Bases de données XML supportant XQuery

Systèmes à stockage persistent Systèmes sans stockage

Stockage natif

Stockage non-natif

Streaming

Compilation de code

Page 18: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Bases de données XML supportant XQuery

Stockage natif (construit) pour XML Natix, Xyleme, Timber, OrientX, Sedna, Jungle, GeX,...

Stockage non-natif (basé sur le relationnel) IBM, Oracle, MS, LegoDB, Rainbow, XQuark ...

Systèmes "streaming" Enosys, BEA

Systèmes "compilation de code" Galax, Kawa, XDuce, CDuce, QizX,...

Page 19: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Stockage non-natif

SGBDR (ou R-O)• Persistence• Indexation• Fiabilité• Transactions

Document XML

Chargement dans le SGBDR

Recomposition du document

Traitement de requêtes• Traduction de XQuery vers SQL• Exécution de la requête SQL• Construction du résultat XML

Page 20: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Stockage non-natif

Intérêt: Réutiliser l'existant (un SGBD est coûteux,

difficile à construire, installer, configurer) Problèmes à résoudre:

Choix du schéma relationnel de stockage Les documents peuvent avoir un schéma XML

Chargement automatique de documents XML Traduction des requêtes XML en requêtes SQL Construction du résultat XML

Page 21: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Stockage natif

Objectifs Regroupement des objets fréquemment utilisés

simultanément (localité de l'accès) Primitives d'accès efficace (e.g. //person) Primitives d'évaluation efficace (e.g. //person//name)

Techniques Etiquetage des noeuds crucial Usage de structures d'indexation génériques de niveau

plus bas (B-trees, R-trees...)

Page 22: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Bases de données XML: ce qui reste à faire Bonne diffusion des connaissances sur le standard

XQuery La spécification est assez complexe Ce n'est pas une excuse

Langage: mises à jour, interrogation textuelle Mise en oeuvre (natif):

algèbre standardisée (ou début de consensus...) modèle d'exécution techniques générales et validées d'optimisation

Page 23: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

II Bases de données + distribution + XML ?

Page 24: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Nouveaux problèmes ?

XML s'adapte bien à tous les scénarios distribués Bases de données XML distribuées =

Bases de données XML distribuées ?

Bases de données XML

distribuées ?

Page 25: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Avantages de XML pour la gestion distribuée de données HTML --> XML, Word --> XML: volume !

Rapports annuels INRIA en XML ! Nombreux standards facilitent l'interopérabilité entre

plusieurs sites XPath, XQuery, XSL Dialectes XML spécifiques à des applications Services Web: APIs de communication basées sur XML

Standards: SOAP pour l'acheminement de messages WSDL pour les signatures XML BPEL4WS pour l'orchestration ...

Une application: ActiveXML

Page 26: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Une application de gestion de données XML distribuées: ActiveXML Projet développé a l'INRIA Futurs, projet Gemo 09/2001 -- présent Equipe:

Serge Abiteboul Bernd AmannJérome BaumgartenOmar BenjellounAngela BonifatiBogdan CăutişGrégory CobénaCosmin CremarencoFrédéric DangNgoc

Florin DrăganIoana ManolescuTova MiloBenjamin NguyenAntonella PoggiNicoleta PredaGabriela RubergNicolaas Ruberg ....

Page 27: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Principe de AXML

Active XML : XML contenant des appels à des services Web Paramètres : XML Résultats : XML, insérés dans le document lorsque l'appel

de service retourne Documents XML/HTML contenant des appels à des

composantes actives / services : Tous les langages de script dans HTML Macromedia MX (DreamWeaver) .NET etc.

Page 28: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

XML avec des appels de services

<directory>

<dept name="Toy“>

<sc>toy.xyz.com/GetToyPersonel()</sc>

</dept>

<dept name=“DVD“>

<sc>dvd2000.com/GetDVDPersonnel()</sc>

</dept>

</directory>

Appels de services

Appels vers n'importe quel service enveloppé en SOAP :

• e-bay.net, google.com, amazon.com, etc.• services AXML (requêtes XML)

Page 29: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Example: document AXML après l'évaluation de l'appel de service<directory>

<dept name="Toy“> <person pname=“Smith”>

<phone>01…</phone> <pda>

<sc>toy.xyz.com/GetPDA(../../@pname)</sc> </pda> </person>

<sc>toy.xyz.com/GetToyPersonel()</sc> </dept> <dept name=“DVD“> <sc>dvd2000.com/GetDVDPersonnel()</sc> </dept></directory>

Résultat

Appel

Page 30: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Requêtes sur des documents AXML : XQuery, XPath Services AXML : définis comme des requêtes XQuery sur les

documents AXML

let service Get-Toy-Personnel( ) be for $a in

document("toy.xyz.com/members.axml")/member, $b in $a//name, $c in $a//phone, $d in $a//pda return <person pname={ $b/text() }> { $c } { $d } </person>

Page 31: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Architecture globale pour Active XML

XQueryprocessor Evaluator

query

servicedescriptions

readupdate read

updateconsults SOAP

wrapper

SOAP

SOAP

AXML peer S3

SOAPservice

SOAP client

AXML peer S1

service call service result

AXML document store

AXML peer S2

AXML

XML

AXML

AXML

Page 32: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Problèmes de gestion de données distribuées avec ActiveXML1. Distribution et réplication de documents AXML

[ABC+03]

2. Indexation XML en P2P: couplage de AXML avec un réseau DHT[AMP04,AMP05]

3. Optimisation de calculs AXML intensionnels[RRM04]

Page 33: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

II.1. Réplication et distribution de documents ActiveXML

Page 34: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Réplication et distribution des documents Active XML

Problème de gestion de données distribuées Contexte : architecture peer-to-peer Motivation : gestion efficace et flexible pour

Données (A)XML Services portables (pouvant être installés ailleurs que

dans leurs peer d'origine): Java, XQuery Solution :

1. Langage déclaratif pour réplication (distribution)

2. Traitement de requêtes XML

3. Réplication dynamique

Page 35: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Distribution et réplication des documents XML

allCNN

sports US world

weather

forecast archive …

Africa

…Asia

…Europe

nEurope

…weather

forecast archive France

Page 36: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Distribution et réplication des documents XML

allCNN

sports US world

weather

forecast archive …

Africa

…Asia

…Europe

nEurope

…weather

forecast archive France

Page 37: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Distribution et réplication manuelle des données XML Directive de réplication :

Une requête XQuery sur doc chez pi

Le résultat de la requête est copié chez pj

Conservant l'identité des noeuds copiés ou non Conservant les liens fils-père et père-fils ou non

Europe

…France

devient

Europe

…France

France

id1 id1

Page 38: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Distribution et réplication manuelle des données XML Directive de réplication :

Une requête XQuery sur doc chez pi

Le résultat de la requête est copié chez pj

Conservant l'identité des noeuds copiés ou non Conservant les liens fils-père et père-fils ou non

Europe

…France

devient

Europe

…France

France

id1 id1

Page 39: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Distribution et réplication manuelle des données XML Directive de réplication :

Une requête XQuery sur doc chez pi

Le résultat de la requête est copié chez pj

Conservant l'identité des noeuds copiés ou non Conservant les liens fils-père et père-fils ou non Si pi décide d'effacer lés données => distribution

Europe

…France

devient

Europe

…France

Page 40: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Réplication et distribution, détails

Chaque peer garde les liens sortants dans un résumé des points de sortie

Europe

…France

France

id1 id1

Europe

France fusion =>Europe

…France

id1

Il existe une copie "master" de chaque document Et elle est connectée

Conceptuellement : La fusion basée sur des identifiants de tous les fragments d'un document donne le document même

Page 41: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Interrogation de documents XML avec réplication et distribution La requête peut spécifier la localisation des

données interrogées (~version) {Doc("cnn.com")/world/Europe/France}@p1

{/Economie}@p2 Plusieurs variantes possibles

@local @localORAny @masterORlocalORAny

Si au moins une ambiguïté est possible, il faut choisir la version à utiliser

Page 42: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Quelle version utiliser ? Requête sur pi : {Doc("cnn.com/root.xml")/world/Europe/France}@any

Europe

…France

id1

France

id1

cnn

world

Le traitement ne peut commencer que : D'une racine ("cnn.com/root.XML") D'un noeud de pi

Le reste n'est pas connu / pas accessible

de pi

L'évaluation traverse plusieurs peers Chaque peer :

Détermine ce qu'il peut traiter de la requête (utilisant les points de sortie)

Choisit le peer suivant

Page 43: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Choix du peer suivant

Analyse "what-if" récursive initiée chez pi

Europe

…France

id1

France

id1

cnn

world

Ensemble de peers candidats Chaque candidat pourrait à son tour

déléguer une partie du travail à un autre Pi ne connaît pas ce choix (ne "voit" pas

plus loin que le peer suivant). Pi demande un "devis" à chaque peer

candidat Un devis = un plan d'exécution réparti

Identification des peers qui exécuteront chaque pas

Page 44: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Modèle de coût et choix des peers suivants Paramètres objectifs pour chaque requête x peer : CPU,

I/O, réseau, batterie, …

Europe

…France

id1

France

id1

cnn

world

Chaque peer => ensemble de poids subjectifs pour chaque paramètre de coût P.ex.: "en dehors de .inria.fr, coût 0"

Chaque peer demande aux candidats les coûts objectifs… Et choisit le devis minimisant

son coût subjectif (ou refuse de coopérer) Ceci peut arriver à plusieurs niveaux

Résultat = meilleur consensus négociable parmi les peers accessibles à pi

Page 45: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Choix du peer suivant, variantes

Aucune analyse des coûts Heuristiques (locales !) De manière non-deterministe Choix sous-optimaux

Limiter l'ensemble de candidats Au plus n à chaque pas

Page 46: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Scénario de communication pour le traitement d'une requête1. Analyse des coûts

P2

P1

P3

P4

P7

P5

P9P10

P6

P8

Page 47: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Scénario de communication pour le traitement d'une requête1. Analyse des coûts

P2

P1

P3

P4

P7

P5

P9P10

P6

P8P9,P10P8,P3

P3

Page 48: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Scénario de communication pour le traitement d'une requête1. Analyse des coûts

P2

P1

P3

P4

P7

P5

P9P10

P6

P8P8,P3 P3

P7,P9,P10P6,P8,P3

Page 49: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Scénario de communication pour le traitement d'une requête1. Analyse des coûts

P2

P1

P3

P4

P7

P5

P9P10

P6

P8

P5,P6,P8,P3

Page 50: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Scénario de communication pour le traitement d'une requête2. Exécution

P2

P1

P3

P4

P7

P5

P9P10

P6

P8

P5,P6,P8,P3

Page 51: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Réplication de documents AXML Que faire si le fragment XML à répliquer contient un

appel de service ? Ne pas le prendre (l'ignorer)

Europe

…France

devient

Europe

…France

France

id1 id1

météo.fr/getForecast() météo.fr/getForecast()

Page 52: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Réplication de documents AXML Que faire si le fragment XML à répliquer contient un

appel de service ? Mettre un lien vers le résultat sur le peer d'origine

Europe

…France

devient

Europe

…France

France

id1 id1

météo.fr/getForecast() météo.fr/getForecast()

Page 53: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Réplication de documents AXML Que faire si le fragment XML à répliquer contient un

appel de service ? Le prendre

Europe

…France

devient

Europe

…France

France

id1 id1

météo.fr/getForecast() météo.fr/getForecast()

Page 54: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Réplication de documents AXML Que faire si le fragment XML à répliquer contient un

appel de service ? Si service XQuery : prendre la définition de service aussi

Europe

…France

devient

Europe

…France

France

id1 id1

météo.fr/getForecast() météo.fr/getForecast()

localGetForecast()

Page 55: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Réplication de documents AXML Que faire si le fragment XML à répliquer contient un

appel de service ? Si service XQuery : prendre la définition de service aussi,

et les données nécessaires

Europe

…France

devient

Europe

…France

France

id1 id1

météo.fr/getForecast() météo.fr/getForecast()

localGetForecast()

Page 56: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Réplication dynamique (automatique) de documents AXML Chaque peer enregistre un coût global subjectif pour les

requêtes et appels de services fait sur ce peer

En prenant des copies locales de données et/ou des services nécessaires, le peer peut améliorer le coût global subjectif Limitations : espace ; bande passante

Algorithme récursif greedy de recherche Recommande des choix de réplication Transparent pour l'utilisateur

Page 57: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

II.2. Indexation XML en P2P: couplage AXML et DHT

Page 58: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Ajouter un catalogue global à AXML Requête: "//personne" Sémantique:

tous les éléments XML <personne>, de tous les documents, de tous les peers.

Plus généralement, "Tree Pattern Queries" Solution:

Utiliser des services DHT comme des Web services Calculer des clés DHT à partir des documents XML A l'aide d'AXML, distribuer l'index sur la DHT Exploiter l'index pour répondre à des requêtes

Autres facettes: connaissances sémantiques; langage d'interrogation moins précis (XML-IR)

Page 59: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Catalogue global pour ActiveXML

Peer p1

Peer p4

Peer p2

Active XML Active XML

Active XMLPeer p5

Active XML

departement

personnenom:

"Durand" personnenom:

"Dupont"

doc1.xml

tag:personne | p1,doc1

tag:departement | p1,doc1

val:Dupont | p1,doc1

val:Durand | p1,doc1

//personne//nom ?

Peer p3

nom ?

personne?

getData

Active XML

tag:nom | p1, doc1

Page 60: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Indexation de connaissances sémantiques en P2P Tag:nom, val:Durand Concept:database Concept:XMLDatabase isA concept:database Concept:architecture partOf concept:database Tag:DBBook relatedTo concept:database

Graphe déterminé par les relations entre ressources Requêtes = navigation sur graphe

Indexation sur DHT des noeuds et arrêtes du graphe

Page 61: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Intérêt de ActiveXML pour la gestion de données sur DHT Indexation intesionelle

Au lieu d'indexer (key, val1, val2, ..., val3)indexer(key, appelDeService)où l'activation de l'appel de service fournit les valeurs

Compromis Taille de l'index Temps de traitement de requêtes

Choix des ensembles (key, vali) à "compresser" Automatique / user-defined / workload / sémantique...

Page 62: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

II.3. Optimisation de calculs intensionnels

Page 63: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Calculs intensionnels

Un paramètre d'un appel de service peut être un appel de service altavista.com/translate(<from>Tchek</from>,

<to>Francais</to>, crystalGlasses.cz/getCatalog())

Matérialiser un document AXML: effectuer tous les appels de services, dans le bon ordre

Plusieurs stratégies possibles

vamos.futurs.inria.fr altavista.com crystalGlasses.cz

Page 64: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Calculs intensionnels

Un paramètre d'un appel de service peut être un appel de service altavista.com/translate(<from>Tchek</from>,

<to>Francais</to>, crystalGlasses.cz/getCatalog())

Matérialiser un document AXML: effectuer tous les appels de services, dans le bon ordre

Plusieurs stratégies possibles

vamos.futurs.inria.fr altavista.com crystalGlasses.cz

Page 65: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Calculs intensionnels

Un paramètre d'un appel de service peut être un appel de service ANY/translate(<from>Tchek</from>,

<to>Francais</to>, crystalGlasses.cz/getCatalog())

Matérialiser un document AXML: effectuer tous les appels de services, dans le bon ordre

Plusieurs stratégies possibles

vamos.futurs.inria.fr googleTranslate.com crystalGlasses.cz

Page 66: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Calculs intensionnels

Un paramètre d'un appel de service peut être un appel de service ANY/translate(<from>Tchek</from>,

<to>Francais</to>, crystalGlasses.cz/getCatalog())

Matérialiser un document AXML: effectuer tous les appels de services, dans le bon ordre

Plusieurs stratégies possibles

vamos.futurs.inria.fr googleTranslate.com crystalGlasses.cz

Page 67: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Optimisation des calculs intensionnels Espace de recherche

Choix du peer qui fournit un service appellé Choix du peer qui invoque un service Heuristiques

Modèle de coût Execution de services, transferts, ...

Stratégie de recherche 1 peer coordinateur; greedy décision distribuée: travail en cours

Page 68: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Sommaire

Travaux importants sur la gestion de données distribuées

Travaux existants (et à faire) pour la gestion de données XML

La combinaison des deux est possible Application intéressante: ActiveXML

Modèle de données orienté sur les arbres Modèle d'exécution distribué

Beaucoup de croisements intéressants à faire Besoin de plus de résultats XML

Page 69: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Quelques références (très peu !) Stockage et traitement de requêtes XML

I.Manolescu: "XML query processing: storage and query model interplay", tutorial EDBT 2004 Summer School

Active XML: www.purl.org/axml Applications AXML décrites ici:

[ABC+03] S.Abiteboul, A.Bonifati, G.Cobena, I.Manolescu and T.Milo. "Dynamic XML Documents with Distribution and Replication", SIGMOD 2003[AMP04] S.Abiteboul, I.Manolescu and N.Preda. "Constructing and querying P2P warehouses of XML resources", Semantic Web and Databases Workshop 2004[AMP05] S.Abiteboul, I.Manolescu and N.Preda."Peer-to-peer warehousing of XML resources", ICDE 2005 (demo)[RRM04] N.Ruberg, G.Ruberg and I.Manolescu. "Towards cost-based optimization of data-intensive Web service computations", SBBD 2004

Page 70: Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo

Merci