Date post: | 04-Apr-2015 |
Category: |
Documents |
Upload: | lydie-berthelot |
View: | 102 times |
Download: | 0 times |
Active XML
Présenté parFrédéric DANG NGOC
2
PlanIntroductionI. Conception
1. Le langage Active XML2. Les services3. Un exemple : un système de vente aux
enchères peer-to-peer
II. Implémentation1. L’architecture d’AXML2. Evaluation des services3. Sécurité
Conclusion
3
Introduction Web Services Documents avec appels de services Intégration de données
Mediateur Data Warehouse
Architecture peer-to-peer Base de données distribuées
4
I. Conception
1. Le langage Active XML2. Les services3. Un exemple : un système de vente
aux enchères peer-to-peer
5
I. 1. Le langage Active XML
Document XML Contient des appels de services
6
Schéma simple des appels de services
ActiveXMLdocument
Serveur AXML
service service service
XML repository
SOAP server
service service service
XMLdocumen
t
XMLdocumen
t
7
Schéma plus complexeServeur AXML
service service service
AXML repositoryAXML
documentAXML
document
Serveur AXML
service service
AXML repositoryAXML
documentAXML
document
AXMLdocument
service
Serveur AXML
service service service
AXML repositoryAXML
documentAXML
document
8
Exemple d’un document AXML<axml id="games">
<ed name="microsoft"><sc>microsoft.com/GetAllGames()</sc>
</ed><ed name="Ubisoft">
<sc>jeux.ubisoft.com/RecupereListeJeux()</sc></ed>
</axml>
9
Résultat évalué<axml id="games">
<dep name="microsoft"><sc>microsoft.com/GetGames()</sc><game>Flight Simulator 2002</game><game>Age of Empire</game>
</dep><dep name="Ubisoft">
<sc>jeux.ubisoft.com/RecupereListeJeux()</sc>
<game>Rayman</game></dep>
</axml>
10
Paramètres d’un appel de service Durée de validité Fréquence de rafraichissement Mode
Lazy (paresseux) Immediate
Permet de s’adapter à différents style d’intégration de données
Mediator style (mode=lazy, valid=0) Mediator style with caching (mode=lazy, valid > 0) Warehousing mode with pulling (mode=immediate, valid >
frequency) Warehousing mode with pushing (mode=immediate, valid > 0,
continuous) AXMLdocument
appel deservice
requête
Serveur AXML
appel deservice
requête
Serveur AXML
AXMLdocumentservice service
11
Modularité Utilisation de XPath pour les
paramètres du service Utilisation du XPath pour les appel
du service Paramètre du service peut être le
résultat d’un service
12
Exemple<axml id="user25">
<servers><serv>book.com/getBooks</serv><serv>amazon.com/books</serv>
</servers>
<category name="sf_book"><sc>[../../servers/serv]("SF")</sc>
</category><category name="history_book">
<sc>history.com/getBooks([../@name])</sc><sc>babel.com/tr_fr2en(<sc>livre.fr/livres("histoire")</sc>)</sc></category>
</axml>
13
I. 2. Les services Requête XQuery Retourne des données AXML
14
Service
<vin> <nom>Vin de Pays d'Oc</nom> <couleur>rouge</couleur> <region>Languedoc</region> <annee>2000</annee> <prix>4,88 €</prix></vin><vin> <nom>Château Charron</nom> <couleur>rouge</couleur> <domaine>Vignobles Germain</domaine> <region>Premières Côtes de Blaye</region> <annee>1999</annee> <prix>5,34 €</prix></vin>
<vin> <nom>Côté Tariquet</nom> <couleur>blanc</couleur> <domaine>Domaine du Tariquet</domaine> <region>Côte de Gascogne</region> <annee>2000</annee> <prix>5,79 €</prix></vin>
15
Déclaration d’un servicelet sc vin.com/GetRedWine() befor $a in document("vin.com/vins.xml")/vin,where $a/couleur/text()="rouge"return <wine name={ $a/nom/text() } year={
$a/annee/text() }> <color>{ $a/couleur/text() }</color> <price>{ $a/price/text() }</price> </wine>
16
Modularité du service Service continu ou non Un service s1 mis en paramètre du
service s2 peut être exécuté au niveau du serveur qui gère s2
Peut retourner un appel de service
17
I. 3. Un Exemple : un système de ventes aux enchères P2P
Tous les pairs peuvent connaîtredes informations sur les objets
proposéspar ses pairs voisins et proposer une
offrepour ces enchères. Chaque pair peutproposer ses objets pour lesquels lesautres pairs peuvent renchérir.
18
HypothèseChaque pair va avoir : Documents AXML
myAuctions.axml knownAuctions.axml
Services getAuctions ($category) getMyAuctions () placeBid ($auctionID, $bid) getHighestBid ($auctionID)
19
Schéma
getMyAuctiongetHighestBid
AXML repository
myAuctions.axml
knownAuctions.axml
placeBid getAuctions
AXML peer
getMyAuction
getHighestBid
AXML repository
myAuctions.axml
knownAuctions.axml
placeBid getAuctions
AXML peer
Peer 5
Peer 10
getMyAuctiongetHighestBid
AXML repository
myAuctions.axml
knownAuctions.axml
placeBid getAuctions
AXML peer
Peer 3
20
TerminaisonmyAuctions.axml document
<auction aId="1"> <heldBy>peer10</heldBy> <item>XBOX</item> <bid> <who>peer5</who> <amount>$300</amount> </bid> <bid>…</bid> ... <sc mode="immediate" frequency="on March 1st"> closeAuction([..]) </sc></auction>
closeAuction service
let sc closeAuction($a) be for $b in $a/bid where $b/amount=max($a/bid/amount) return <sc mode="immediate" frequency="now"> notifyWinner($b/who, $a/aID, $b/amount) </sc> <status>auctions closed</status>
21
II. Implémentation
1. L’architecture d’AXML2. Evaluation des services3. Sécurité
22
II. 1. Architecture d’Active XML
XQueryprocessor Evaluator
query
AXML servicedefinitions
readupdate read
updateconsults SOAP
wrapper
SOAP
AXML peer S2
SOAP
AXML peer S3
SOAPservice
SOAP client
AXML peer S1
service call service result
AXML storage
23
Architecture d’un pair AXML
SOAP/WSDL wrapperWSDD
Evaluator
XQuery
AXMLrepositoryWork Space
AXMLProvider
AXML peer
24
Langages et outils utilisés SOAP pour le protocole de
communication WSDL pour définir les services et
les attacher à un port Apache pour le serveur Web Tomcat pour les servlets AXIS pour SOAP Xerces pour le parseur XML
25
II. 2. Evaluation des services Evaluation des services en mode
immediate Evaluation des services en mode
lazy
26
Appel en mode immédiat Election des services pouvant être
appelés Traiter les appels de services
Appel non-concret Appel concret
27
Appel non-concret<axml>
<author>David Eddings</author><author>Douglas Adams</author><author>Rick Cook</author>
<type>Fantasy</type><type>Humoristic</type>
<books><sc>amazon.com/getBooks([../../author],
[../../type])</sc></books>
</axml>
28
Appel non-concretEvaluer les paramètres XPath p1, p2, …, pn dans f1, f2,
…, fnPour chaque x=(x1, x2, …, xn)є(f1, f2, …, fn) faire
créer l’appel de service avec pour paramètre (x1, x2, …, xn)le mettre dans le workspace
Attendre que chaque appel de service soit finiFIN
29
Appel concretPour chaque paramètre
Si c’est un appel de servicecréer l’appel de service correspondantle mettre dans le workspace
Attendre que tous les appels de services soient finisSi c’est un appel de service local
exécuter le serviceattendre la fin de ce service
Sinon si c’est un appel distantexécuter l’appel de service distantattendre le résultat
Pour chaque appel de service se trouvant dans le résultat fairecréer l’appel de service correspondantle mettre dans le workspace
Attendre que tous les appels de service soient finisEnvoyer le résultat qui sera inséré dans le document AXMLSi le service appelé est non continu, FIN
30
Appel en mode lazy Dépendance des appels de service Election des services pouvant être
appelés Traiter les appels de services
31
Dépendances entre appels de services
sc1
sc2
consulted byXPath parametersof sc1
modifiedby activationof sc2
32
II. 3. Sécurité Appel de service par un autre
serveur AXML<quote><sc>qod.com/QuoteOfDay(<sc>buy.com/BuyCar ("BMW Z3")</sc>)</quote>
Cheval de Troie dans le résultat du service
<quote>Love means never having to say you’re sorry<sc>buy.com/BuyCar ("BMW Z3")</sc></quote>
<sc>i.am.bad/SneakAbout([../../*])</sc>
33
Solution Chaque pair va définir pour chacun
des services publiés le type d’argument accepté (binding policy)
Chaque pair va définir pour chacun de ses services les pairs qui ont le droit de les appeler (trust policy)
34
Conclusion Un système flexible Gestion de l’hétérogénéité des
données Projet encore jeune donc du travail
encore à faire…
35
Bibliographie[1]
Active XML: A Data-Centric View Of Web Services (S. Abiteboul, O. Benjelloun, T. Milo)
[2]
Active XML: A Data-Centric Perspective on Web Services (S. Abiteboul, O. Benjelloun, I. Manolescu, T. Milo, R. Weber)
[3]
Object Fusion in Mediator System (Y. Papakonstantinou, S. Abiteboul, H. Garcia-Molina)
[4]
Towards a Flexible Model for Data and Web Services Integration (S. Abiteboul, O. Benjelloun, T. Milo)
[5]
XQuery 1.0: An XML Query Languagehttp://www.w3.org/TR/xquery
[6]
Web Services Description Language (WSDL)http://www.w3.org/TR/wsdl
[7]
XML Path Language (XPath)http://www.w3.org/TR/xpath
[8]
Simple Object Access Protocol (SOAP)http://www.w3.org/TR/SOAP