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 Ioana Manolescu INRIA Futurs - LRI, projet Gemo.

Présentations similaires


Présentation au sujet: "Traitement de requêtes XML et applications distribuées Ioana Manolescu INRIA Futurs - LRI, projet Gemo."— 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 Une introduction aux Légendes du Graal par P.Boulenger aux éditions Dunod pour juste 5.55 Euros ! … 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 a/b/c[1] <> a/b/c[2] a/b[count(c)>2]//c 3 a b b c d c c c d 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 titre auteur #CDATA editeur click Une introduction aux Légendes du Graal par P.Boulenger aux éditions Dunod pour juste 5.55 Euros ! …

7 Propriétés des documents XML ayant un impact sur le stockage (3) Ordre des éléments Une introduction aux Légendes du Graal par P.Boulenger aux éditions Dunod pour juste 5.55 Euros ! … P.Boulenger … Dunod Légendes du Graal par pour juste 5.55 Euros ! Une introduction aux item titre auteur #CDATA editeur click 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 noville personne adresse employe Paris 35 "Dupont" rue Bd Opera noville

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

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 personne adresse Fonction: employe Paris 35 nom: "Dupont" rue Bd Opera no ville

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 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 personne adresse Fonction: employe Paris 35 nom: "Dupont" rue Bd Opera no ville

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

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 personne adresse Fonction: employe Paris 35 nom: "Dupont" rue Bd Opera no ville

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 persistentSystèmes sans stockage Stockage natif Stockage non-natif Streaming 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 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

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 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 toy.xyz.com/GetToyPersonel() dvd2000.com/GetDVDPersonnel() 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 01… toy.xyz.com/GetToyPersonel() dvd2000.com/GetDVDPersonnel() 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 { $c } { $d }

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

32 Problèmes de gestion de données distribuées avec ActiveXML 1. 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]

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

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

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

37 Distribution et réplication manuelle des données XML Directive de réplication : Une requête XQuery sur doc chez p i Le résultat de la requête est copié chez p j 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 … … id1

38 Distribution et réplication manuelle des données XML Directive de réplication : Une requête XQuery sur doc chez p i Le résultat de la requête est copié chez p j 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 … … id1

39 Distribution et réplication manuelle des données XML Directive de réplication : Une requête XQuery sur doc chez p i Le résultat de la requête est copié chez p j Conservant l'identité des noeuds copiés ou non Conservant les liens fils-père et père-fils ou non Si p i décide d'effacer lés données => distribution Europe … France … devient Europe … France …

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

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 @masterORlocalORAny Si au moins une ambiguïté est possible, il faut choisir la version à utiliser

42 Quelle version utiliser ? Requête sur p i : Europe … France … id1 France … id1 cnn world Le traitement ne peut commencer que : D'une racine ("cnn.com/root.XML") D'un noeud de p i Le reste n'est pas connu / pas accessible de p i 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

43 Choix du peer suivant Analyse "what-if" récursive initiée chez p i 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 P i 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

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, … 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 à p i

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 1. Analyse des coûts P2 P1 P3P4 P7P5 P9 P10 P6 P8

47 Scénario de communication pour le traitement d'une requête 1. Analyse des coûts P2 P1 P3P4 P7P5 P9 P10P6P8 P9,P10 P8,P3 P3

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

49 Scénario de communication pour le traitement d'une requête 1. Analyse des coûts P2 P1 P3P4 P7P5 P9 P10P6P8 P5,P6,P8,P3

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

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

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

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, 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 Peer p1 Peer p4 Peer p2 Active XML Peer p5 Active XML departement personne nom: "Durand" personne nom: "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

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, val i ) à "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( Tchek, Francais, 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( Tchek, Francais, 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( Tchek, Francais, 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( Tchek, Francais, 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 Ioana Manolescu INRIA Futurs - LRI, projet Gemo."

Présentations similaires


Annonces Google