La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Traitement de requêtes XML et applications distribuées

Présentations similaires


Présentation au sujet: "Traitement de requêtes XML et applications distribuées"— Transcription de la présentation:

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 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 editeur click

5 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 3 a b 2 1 c d a/b/c[1] <> a/b/c[2] a/b[count(c)>2]//c

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

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

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

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

10 Interrogation de documents XML: XPath
Langage de chemin dans le document /département /ancestor-or-self::* //personne /previous-sibling::* //personne//ville/text() departement personne adresse Fonction: responsable Paris 2 nom: "Dupont" rue Lafayette no ville employe 35 Bd Opera

11 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-sibling self descendent

12 Limitations de XPath Pas de jointure
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 Requêtes XQuery for $x in document("d.xml")//personne where return departement personne adresse Fonction: responsable Paris 2 nom: "Dupont" rue Lafayette no ville employe 35 Bd Opera

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

15 Requêtes XQuery for $x in document("d.xml")//personne, $y in document("d.xml")//personne where and return $x, $y; departement personne adresse Fonction: responsable Paris 2 nom: "Dupont" rue Lafayette no ville employe 35 Bd Opera

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 Bases de données XML supportant XQuery
Systèmes à stockage persistent Systèmes sans stockage 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 Stockage non-natif 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 SGBDR (ou R-O) Persistence Indexation Fiabilité Transactions

20 Stockage non-natif Intérêt: Problèmes à résoudre:
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 Techniques
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 Bases de données XML distribuées ?
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 ?

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/ 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> </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> </pda> </person> <sc>toy.xyz.com/GetToyPersonel()</sc> </dept> <dept name=“DVD“> <sc>dvd2000.com/GetDVDPersonnel()</sc> </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 read update SOAP wrapper AXML 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 Distribution et réplication des documents XML
allCNN sports US world weather forecast archive Europe n Europe Africa Asia weather forecast archive France

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

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

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

39 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 Europe devient France

40 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 Europe France Europe France id1 fusion => Europe France id1

41 Interrogation de documents XML avec réplication et distribution
La requête peut spécifier la localisation des données interrogées (~version) Plusieurs variantes possibles @local @localORAny @masterORlocalORAny Si au moins une ambiguïté est possible, il faut choisir la version à utiliser

42 Quelle version utiliser ?
Requête sur pi : 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 Europe France id1 France id1

43 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 Europe France id1 France id1

44 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 Europe France id1 France 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 Scénario de communication pour le traitement d'une requête
Analyse des coûts P5 P2 P6 P1 P8 P7 P4 P9 P3 P10

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

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

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

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

51 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 id1 météo.fr/getForecast()

52 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 id1 météo.fr/getForecast()

53 Réplication de documents AXML
Que faire si le fragment XML à répliquer contient un appel de service ? Le prendre Europe France Europe France devient id1 id1 France météo.fr/getForecast() météo.fr/getForecast()

54 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 Europe France devient id1 id1 France localGet Forecast() météo.fr/getForecast() météo.fr/getForecast()

55 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 Europe devient id1 id1 France France localGet Forecast() météo.fr/getForecast() météo.fr/getForecast()

56 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

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

58 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)

59 Catalogue global pour ActiveXML
departement personne nom: "Durand" "Dupont" doc1.xml tag:departement | p1,doc1 tag:nom | p1, doc1 Active XML Active XML Peer p1 nom ? Peer p2 //personne//nom ? getData personne? Active XML val:Dupont | p1,doc1 Peer p3 tag:personne | p1,doc1 Active XML val:Durand | p1,doc1 Peer p5 Active XML Peer p4

60 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

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

62 II.3. Optimisation de calculs intensionnels

63 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

64 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

65 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

66 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

67 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

68 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

69 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: 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

70 Merci


Télécharger ppt "Traitement de requêtes XML et applications distribuées"

Présentations similaires


Annonces Google