1 / 70

Traitement de requêtes XML et applications distribuées

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

danyl
Télécharger la présentation

Traitement de requêtes XML et applications distribuées

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

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

  4. item auteur titre #CDATA #CDATA #CDATA editeur click 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>

  5. a b b c d c c c c d 3 1 2 1 2 3 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

  6. item auteur titre #CDATA #CDATA #CDATA editeur click 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>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>

  7. item auteur titre #CDATA #CDATA #CDATA editeur auteur click item editeur click titre #CDATA #CDATA #CDATA 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>

  8. departement personne personne responsable "Dupont" employe "Dupont" adresse adresse rue no ville rue no ville Paris 2 Paris 35 Lafayette Bd Opera 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

  9. 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 personne responsable "Dupont" employe "Dupont" adresse adresse rue no ville rue no ville Paris 2 Paris 35 Lafayette Bd Opera

  10. departement nom: "Dupont" nom: "Dupont" personne personne Fonction: responsable Fonction: employe adresse adresse ville rue no rue no ville Paris 2 35 Paris Lafayette Bd Opera 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()

  11. ancestor preceding-sibling following-sibling self descendent 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

  12. 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

  13. departement nom: "Dupont" nom: "Dupont" personne personne Fonction: responsable Fonction: employe adresse adresse ville rue no rue no ville Paris 2 35 Paris Lafayette Bd Opera Requêtes XQuery • for $x in document("d.xml")//personnewhere$x/@fonction/text()="employe"return$x/@name;

  14. departement nom: "Dupont" nom: "Dupont" personne personne Fonction: responsable Fonction: employe adresse adresse ville rue no rue no ville Paris 2 35 Paris Lafayette Bd Opera Requêtes XQuery • <tousLesDuponts> for $x in document("d.xml")//employe where $x/@name/text()="Dupont" return <fonction> $x/@fonction/text() </fonction></tousLesDuponts>

  15. departement nom: "Dupont" nom: "Dupont" personne personne Fonction: responsable Fonction: employe adresse adresse ville rue no rue no ville Paris 2 35 Paris Lafayette Bd Opera 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;

  16. 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

  17. Systèmes à stockage persistent Systèmes sans stockage Bases de données XML supportant XQuery Stockage natif Streaming Stockage non-natif Compilation de code

  18. 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,...

  19. 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 Stockage non-natif Document XML • SGBDR (ou R-O) • Persistence • Indexation • Fiabilité • Transactions

  20. 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

  21. 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...)

  22. 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

  23. II Bases de données + distribution + XML ?

  24. Nouveaux problèmes ? • XML s'adapte bien à tous les scénarios distribués • Bases de données XML distribuées = Bases de données XMLdistribuées ? Bases de données XMLdistribuées ?

  25. 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

  26. 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 Amann Jérome Baumgarten Omar Benjelloun Angela Bonifati Bogdan Căutiş Grégory Cobéna Cosmin Cremarenco Frédéric DangNgoc Florin Drăgan Ioana Manolescu Tova Milo Benjamin Nguyen Antonella Poggi Nicoleta Preda Gabriela Ruberg Nicolaas Ruberg ....

  27. 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.

  28. 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)

  29. 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

  30. 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>

  31. Architecture globale pour Active XML AXML peer S2 AXML peer S1 query SOAP XQuery processor Evaluator AXML AXML peer S3 AXML read update SOAP wrapper read update consults SOAP service descriptions SOAP service XML AXML document store AXML SOAP client service call service result

  32. Problèmes de gestion de données distribuées avec ActiveXML • Distribution et réplication de documents AXML[ABC+03] • Indexation XML en P2P: couplage de AXML avec un réseau DHT[AMP04,AMP05] • Optimisation de calculs AXML intensionnels[RRM04]

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

  34. 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 : • Langage déclaratif pour réplication (distribution) • Traitement de requêtes XML • Réplication dynamique

  35. allCNN weather sports world US forecast archive … … n Africa Europe Asia weather … forecast archive France Europe … … … … Distribution et réplication des documents XML

  36. allCNN weather sports world US forecast archive … … n Africa Europe Asia weather … forecast archive France Europe … … … … Distribution et réplication des documents XML

  37. Europe Europe … … id1 id1 France France France … … … 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 devient

  38. Europe Europe … … France France … … 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 id1 devient id1 France …

  39. Europe … France … 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 pidécide d'effacer lés données => distribution Europe … devient France …

  40. Europe Europe Europe fusion => id1 … id1 id1 … France France France France … … … Réplication et distribution, détails • Chaque peer garde les liens sortants dans un résumé des points de sortie • 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

  41. 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

  42. id1 France … Europe … France … Quelle version utiliser ? • Requête sur pi: {Doc("cnn.com/root.xml")/world/Europe/France}@any cnn • 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 world id1

  43. id1 France … Europe … France … Choix du peer suivant • Analyse "what-if" récursive initiée chez pi • 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 cnn world id1

  44. id1 France … Europe … France … 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, … cnn • 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 world id1

  45. 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

  46. P5 P2 P3 P1 P10 P6 P8 P7 P4 P9 Scénario de communication pour le traitement d'une requête • Analyse des coûts

  47. P5 P2 P3 P1 P10 P6 P8 P7 P4 Scénario de communication pour le traitement d'une requête • Analyse des coûts P9,P10 P8,P3 P3 P9

  48. P5 P2 P3 P1 P10 P6 P8 P7 P4 Scénario de communication pour le traitement d'une requête • Analyse des coûts P7,P9,P10 P6,P8,P3 P8,P3 P3 P9

  49. P5 P2 P3 P1 P10 P6 P8 P7 P4 Scénario de communication pour le traitement d'une requête • Analyse des coûts P5,P6,P8,P3 P9

  50. P5 P2 P3 P1 P10 P6 P8 P7 P4 P9 Scénario de communication pour le traitement d'une requête • Exécution P5,P6,P8,P3

More Related