Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf ·...
Transcript of Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf ·...
![Page 1: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/1.jpg)
Publication et Traitement avec XSL
1. XPATH2. XSLT3. XSLFO4. Traitement de documents5. Conclusion
![Page 2: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/2.jpg)
2
1. XPath : l'adressage XML
• XPath• Expressions de chemins dans un arbre XML• Permet de sélectionner des nœuds par navigation
XPath
Document XML
?
![Page 3: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/3.jpg)
3
XPath
• XML Path Language• recommandation W3C pour expressions de chemins• acceptée le 16 novembre 1999• version 2 en cours d'élaboration
• Expressions de chemins communes à :• XSL• Xpointer (liens)• XQuery (queries)
• Xpath permet• de rechercher un élément dans un document• d'adresser toute sous partie d'un document
XPath
![Page 4: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/4.jpg)
4
XPath - Parcours d'arbre
• XPath opère sur l'arbre d'un document
<livre auteur = "Hugo">
<titre>Les chatiments</titre>
<chapitre>
<section>Buonaparte </section>
<section>Neige</section>
</chapitre>
…
</livre>
racine
section
Auteur = "Hugo"
livre
Bonaparte
chapitre
Neige
chapitre
sectionLes chatiments
titre
XPath
![Page 5: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/5.jpg)
5
XPath - Expression de chemins
• Une expression de chemins spécifie une traversée de l'arbre du document :• depuis un nœud de départ• vers un ensemble de nœuds cibles• les cibles constituent la valeur du cheminement
• Un chemin peut être :• absolu
• commence à la racine• /étape1/…/étapeN
• relatif• commence à un nœud courant• étape1/…/étapeN
XPath
![Page 6: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/6.jpg)
6
Syntaxe et sémantique
• Cheminement élémentaire• direction::sélecteur [predicat]
• Directions • parent, ancestor, ancestor-or-self• child, descendant, descendant-or-self• preceding, preceding-sibling, following, following-sibling• self, attribute, namespace
• Sélecteur• nom de nœud sélectionné (élément ou @attribut)
• Prédicat• [Fonction(nœud) = valeur]
XPath
![Page 7: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/7.jpg)
7
XPath - Exemples
• Sections d'un chapitre• /child::livre/child::chapitre/child::section• /livre/chapitre/section
• Texte du chapitre 1 section 2• /descendant::chapitre[position() = 1]
/child::section[position() = 2]/child::text()• //chapitre[1]/section[2]/text()
XPath
![Page 8: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/8.jpg)
8
XPath - Synthèse
Pattern Exemple Signification
Nom section Sélectionne les éléments de nom donné
Nom[0] section[0] Sélectionne le premier élément ayant le nom donné
Nom[end()] section[end()] Sélectionne le dernier élément ayant un nom donné
| Droite|Gauche Indique une alternative (un nœud OU bien l'autre (ou les deux))
/ / Sélectionne le nœud racine d'une arborescence
/arbre/Nom /livre/chapitre Sélectionne les nœuds descendants par la balise de nom donné de l'arbre
* * Motif "joker" désignant n'importe quel élément
// //personne Indique tous les descendants d'un nœud
. . Caractérise le nœud courant
.. .. Désigne le nœud parent. Permet de remonter d'un niveau dans
l'arborescence
@ @nom Indique un attribut caractéristique (@nom désigne la valeur de l'attribut).
La notation @* désigne tous les attributs d'un élément
text() text() Désigne le contenu d'un élément (le texte contenu entre ses balises)
ID() ID('a2546') Sélectionne l'élément dont l'identifiant (la valeur de l'attribut ID) est celui
spécifié en paramètre
Comment() Comment() Désigne tous les nœuds commentaires
Node() Node() Désigne tous les noeuds
XPath
![Page 9: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/9.jpg)
9
2. XSLT : la présentation
• Permet de transformer un document• régulier ou irrégulier• de XML à XML, XHTML est un cas particulier• De XML à présentation (HTML, texte, rtf, pdf, etc.)
• Un document est un arbre • Le processeur XSL parcourt l'arbre et applique les
règles de transformations vérifiées (à condition vraie) aux nœuds sélectionnés
• Un document est produit en sortie
XSLT
![Page 10: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/10.jpg)
10
Publications avec XSL
• Plusieurs formats de publication pour un contenu
• XSL permet la présentation sur des terminaux variés
XSLProcessor
XML
Document
Format ( Postcript)
Format (XML)application
e.Commerce
format(WML)
Browser
(XHTML, DHTML, HTML)
Format (XML)pour Word,
Excel
XSLStylesheet
XSLT
![Page 11: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/11.jpg)
11
Architectures
Fichier
Base de données
Affichage
•Affichage
•Traitement
S
E
R
V
E
U
R
XML
XML
Programme
XMLASPouJSP
XSLT
Processeur XSL
Affichage
HTML
HTML
XML
Processeur XSL
![Page 12: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/12.jpg)
12
Les feuilles de style
• Une feuille de style XSL• est un document XML de racine <xsl:stylesheet>• contient une liste de règles de transformation
<xsl:template>
• Chaque règle (<xsl:template>) précise:• Une condition spécifiant le sous-arbre du document
d’entrée auquel elle s’applique (match=)• Une production spécifiant le résultat de l’application de la
règle (contenu)
• Il s'agit de règles de production classiques• If <condtition> then <production>• Codées en XML avec espace de nom xsl:
XSLT
![Page 13: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/13.jpg)
13
Exemple de document
<?xml version="1.0" ?> <Guide>
<Restaurant Categorie="**"><Nom>Le Romantique</Nom><Adresse>
<Ville>Cabourg</Ville> <Dept>Calvados</Dept>
</Adresse></Restaurant><Restaurant Categorie="***">
<Nom>Les TroisGros</Nom><Adresse>
<Ville>Roanne</Ville> <Dept>Loire</Dept>
</Adresse></Restaurant>
</Guide>
XSLT
![Page 14: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/14.jpg)
14
Exemple de feuille de style XSL
<?xml version="1.0" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/xsl"><xsl:template match="/">
<html><head><B>ESSAI XSL</B></head> <body><xsl:apply-templates/></body></html>
</xsl:template><xsl:template match="Guide">
<H1>BONJOUR LE GROUPE XML</H1> <H2>SUIVEZ LE GUIDE</H2>
<xsl:apply-templates /> </xsl:template><xsl:template match="Restaurant">
<P> <I>Restaurant :</I> <xsl:value-of select="Nom"/></P>
</xsl:template></xsl:stylesheet>
XSLT
![Page 15: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/15.jpg)
15
Les règles de production
• Définition des règles par <xsl:template …>• Attributs
• match: condition de sélection des nœuds sur lesquels la règle s'applique (XPath)
• name: nom de la règle, pour invocation explicite (en conjonction avec <call-template>)
• mode: permet d'appliquer à un même élément des règles différentes en fonction du contexte
• priority: priorité, utilisé en cas de conflit entre deux règles ayant la même condition
• Exemples • <xsl: template match="/">• <xsl: template match="auteur" name="R1" priority="1">
XSLT
![Page 16: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/16.jpg)
16
La génération du résultat
• Le contenu de l'élément <xsl:template> est la production de la règle:• Les éléments du namespace xsl sont des instructions qui copient des
données du document source dans le résultat• Les autres éléments sont inclus tels quels dans le résultat
• Instructions pour:• Parcourir l'arbre du document source• Copier le contenu du document source dans le résultat
• Parcours de l'arbre:• <xsl:apply-templates>, <xsl:for-each>
• Copie du contenu du nœud sélectionné:• <xsl:value-of select= … >
XSLT
![Page 17: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/17.jpg)
17
Résumé des commandes
• <xsl:template>, définir une règle et son contexte
• <xsl:apply-templates />, appliquer les transformations aux enfants du nœud courant
• <xsl:value-of select … />, extrait la valeur d'un élément sélectionné à partir du nœud courant
• <xsl:for-each>, définir un traitement itératif
• <xsl:pi>, générer une processing instruction
• <xsl:element>, générer un élément
• <xsl:attribute>, générer un attribut
• <xsl:if>, définir un traitement conditionnel
XSLT
![Page 18: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/18.jpg)
18
Processeurs XSLT
• Processeurs XSLT conformes à la spécification:• Apache Group (www.apache.org): Xalan• Oracle XDK (www.oracle.com): XML Parser/ XSL Proc.• MSXML .NET• James Clark (www.jclark.com): XT • Saxon• libXML, libXSLT (Unix C)
• Browser• Microsoft MSXML et IE 5 ou plus • Netscape supporte XSLT depuis la V6• Firefox Mozilla
• Editeur et debugger• Style Vision de Altova• Oxygen de Synchro• Stylus Studio de Data Direct• CookTop et Tidy (gratuit)
XSLT
![Page 19: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/19.jpg)
19
Quelques éditeurs
- I BM XSL E d i t o r -
version: 1.0 preview release 2
platforms: Java
license: Free
developer: Alphaworks, IBM
revised: 21 jan 2000
Editeur multi-frame et outils de mise au point – Alphawork d'IBM
- S t y l u s S t u d i o -
version: 4.6
platforms: Windows NT/2000
license: Commercial; 30 day evaluation available.
developer: Excelon Corporation
revised: 06 mar 2003
Editeur de Excelon (Progress); creation XSL et mise au point
- X M LT r an s fo rm -
version: 1.1.0
platforms: Java
license: Commercial; free evaluation version available
developer: TIBCO Software Inc.
revised: 22 feb 2002
Editeur de Tibco pour les transformations XSL à XSL
XSLT
![Page 20: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/20.jpg)
20
IBM XSL Editor
XML XSLT Rendu
XSLT
![Page 21: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/21.jpg)
21
Bilan XSLT
• XSLT est un langage très puissant de transformation d'un arbre XML en un autre
• XSLT permet en particulier de publier des données XML sur le Web par transformation en un document HTML standard
• XSLT est très utilisé :• Pour publier des contenus XML• Pour transformer des formats (EAI, B2B)
XSLT
![Page 22: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/22.jpg)
22
3. XSL-FO : le formatage
• Permet les mises en pages sophistiquées
• Objets de mise en forme applicables aux résultats avec XSLT
• Distinction• Formatage des pages• Formatage des objets à
l'intérieur des pages• Statiques• Dynamiques
XSL-FO
![Page 23: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/23.jpg)
23
Principes
• Peut s'appliquer aux résultats des feuilles XSLT
XSL-FO
![Page 24: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/24.jpg)
24
Organisation du document
• Un document FO est formé d'un élément fo:root qui comprend deux parties distinctes• une description des modèles de pages
• fo:layout-master-set• une description du contenu
• fo:page-sequence
• Le contenu comporte :• Des flux contenant les données mêmes du document • Des éléments statiques dont le contenu se répète sur les
pages (en-têtes courants, no de page, etc.)
XSL-FO
![Page 25: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/25.jpg)
25
Objets de formatage
• Les objets de formatage sont multiples :• <fo:block>
• utilisé pour les blocs de textes, paragraphes, titres…• <fo:display-rule>
• ligne de séparation• <fo:external-graphic>
• zone rectangulaire contenant un graphisme (SVG)
• Ils possèdent de nombreuses propriétés • Pour un block on peut définir
• la marge gauche et droite • l’espace avant et après le paragraphe • la couleur du texte ………...
XSL-FO
![Page 26: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/26.jpg)
26
Fonctionnalités
• Pages portrait ou paysage• Pages recto-verso • Page de tailles variées• Marges multiples• Colonnes multiples• Entête et pieds de page• Caractères unicode• Formatage multi-langages• Tables des matières
générées
• Multiple directions d'écritures
• Numérotation des pages• Graphiques et SVG• Tables, avec entêtes,
lignes et colonnes fusionnables
• Listes• Zones flottantes• Tris à l'édition• Notes de bas de pages
XSL-FO
![Page 27: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/27.jpg)
27
XSL-FO: hello World
<?xml version="1.0" encoding="iso-8859-1"?>
<fo:rootxmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set><fo:simple-page-master master-name="my-page">
<fo:region-body margin="2 cm"/></fo:simple-page-master>
</fo:layout-master-set><fo:page-sequence master-reference="my-
page"><fo:flow flow-name="xsl-region-body"><fo:block>Hello, world!</fo:block>
</fo:flow></fo:page-sequence>
</fo:root>
• Element Root• Permet de définir le namespace XSL-FO
• Layout master set• Permet de déclarer une ou plusieurs page
masters (masque) et page sequencemasters pour définir la structure des pages (ici une de 2 cm de marges)
• Page sequence• Les pages sont groupées en séquences et
structurées selon la référence au masque.• Flow
• C'est le container du texte utilisateur dans le document. Le nom du flot lit le texte àune zone de la page définie dans le masque.
• Block• C'est le bloc de formatage qui inclut un
paragraphe de texte pouvant être produit pas XSLT.
XSL-FO
![Page 28: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/28.jpg)
28
XSL-FO et XSLT : Exemple
• Définition de propriétés pour la racine• <xsl:template match=‘/’> <fo-
display-sequencefont-style=‘italic’start-indent=‘4pt’end-indent=‘4pt’font-size=‘18pt’ <xsl:apply-
templates/> </fo-display-sequence></xsl:template
• La définition d’une propriété locale est prioritaire devant l’héritage
XSL-FO
![Page 29: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/29.jpg)
29
Les processeurs XSL-FO
• Apache Group : FOP • Formating Object Processor • Génère du PDF http://www.apache.org
• JFOR (Open Source) • Génère du RTF http://www.jfor.org
• Antenna House• XSL Formatter http://www.antennahouse.com
• RenderX• Génère du PDF http://www.renderx.com
• Altova• StyleVision http://www.altova.com/products_xsl.html
• XML Mind FO Converter• Génère du RTF http://www.xmlmind.com/foconverter
• Autres• Arbortext, Adobe, Scriptura, XMLPDF, APOC, XSL-FO to TeX
XSL-FO
![Page 30: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/30.jpg)
30
Bilan XSL
• XML = format pour la production de publications échangeables sur le web :
• production d’une source unique en XML ;
• XSLT = génération automatique de présentations multiples ;
• XSL-FO = génération de présentations soignées avec pages maîtres et blocs formatés.
• XSL peut être vu comme le langage de programmation de XML …
• Questions ?
XSL
![Page 31: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/31.jpg)
31
4. XML: le traitement par programme
DOM
Manipulationde l'arbreManipulationde l'arbre
Mal formé/Invalide SAX
événements – call back événements – call back
<ville>Paris</ville>
XMLXML
<ville>Paris</ville>
<pays>France</pays>
<temp
echelle="C">18</temp> Parser
Bien formé
Valide
XSLT
PDFPDF RTF, WordRTF, Word(X)HTML(X)HTML
<city>Paris</city>
<temp
degree="F">65</te
mp>
WMLWML XMLXML
<ville>Paris</ville>
<pays>France</pays>
<temp
echelle="C">18</temp>
XMLXML
XML
Schema
(ou DTD)
Mapping
XSLFO
XSL
Stylesheet
![Page 32: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/32.jpg)
32
L'interface DOM
• Standard W3C fait pour HTML et XML• Structure d'objets pour représenter un document
• Résultat d'un "parser"• Arbre d'objets reliés entre eux
• Interface objet pour naviguer dans un document• Orientée objet• Peut être utilisée en:
• Java, C++• C#, VB • Python, PHP
DOM
![Page 33: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/33.jpg)
33
Principaux parseurs
Document
XML
Parseur DOM
Arbre DOM
Application
API DOM
Sun, ...JAXP J2EE
OracleSDK Oracle
MicrosoftMSXML
Apache (Java, C++)Xerces
DOM
![Page 34: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/34.jpg)
34
Exemple d'arbre DOM
<Guide><Restaurant id="R1">Le
meilleur restaurant</Restaurant>
</Guide>
Document
NodeList
NodeList
NamedNodeMap
Attr
Element
NodeList
Element
Text
Racine du document
<Guide>
<Restaurant>
Id="R1"
Le meilleur restaurant
DOM
![Page 35: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/35.jpg)
35
L'arbre DOM
• Navigation via un arbre générique de nœuds• Node• NodeList (Parent/Child)• NamedNodeMap
• Tout nœud hérite de Node
ProcessingInstruction
<?xml:stylesheet ...>
DocumentType
<!DOCTYPE ...>
Element
<Restaurant ....>
....
Document
Child
DOM
Text
Le meilleur restaurant
Node
![Page 36: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/36.jpg)
36
Quelques interfaces de base
• Document• createElement (Nom_Element):
• créer un élément avec le nom spécifié en paramètre.
• createComment (commentaire):• créer une ligne de commentaires
dans le document.• createAttribute (Nom_Attribut):
• créer un attribut avec le nom pris en paramètre.
• getElementsByTagName (nom_Tag):• retourne tous les descendants
des éléments correspondants au Nom_Tag.
• Nœud• insertBefore (Nouveau_Noeud,
Noeud_Reference): • insère un nouveau nœud fils avant le "
nœud référence" déjà existant.• replaceChild (Nouveau_Noeud,
Ancien_Noeud): • remplace le nœud "Ancien_Noeud" par
le nœud "Nouveau_Noeud".• removeChild (Nœud):
• supprime le nœud entré en paramètre de la liste des nœuds.
• appendChild (Nouveau_Noeud):• Ajoute un nouveau nœud a la fin de la
liste des nœuds.• hasChildNodes():
• Retourne vrai si le nœud possède un enfant
DOM
![Page 37: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/37.jpg)
37
Autres interfaces
• Interfaces fondamentales• DOMImplementation• Document• Comment• DocumentFragment• Element• Attr(ibute)• NamedNodeMap• CharacterData
• Comment• Text
• Interfaces étendues XML• ProcessingInstruction• DocumentType• CDATASection• Notation• Entity• EntityReference
DOM
![Page 38: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/38.jpg)
38
Exemple d'utilisation
Public class ExempleDOMpublic static main (String argc[]) throws IOException, DOMExcetion{XMLDocument xmlDoc = new XmlDocument();// creation des nœudsElementNode nom = (ElementNode) xmlDoc.createElement("nom");ElementNode prenom = (ElementNode) xmlDoc.createElement("prenom");ElementNode nomfam = (ElementNode) xmlDoc.createElement("nomfam");// creation de l'arbrexmlDoc.appendChild(nom);nom.appenChild(prenom);prenom.appendChild(xmlDoc.createTextNode("Jean");nom.appenChild(nomfam);nomfam.appendChild(xmlDoc.createTextNode("Dupont");// positionnement d'un attributnom.setAttribute("ville", "Paris");// sortieSystem.exit(0); } }
Document:
<nom ville ="Paris">
<prenom> Jean </prenom>
<nomfa> Dupont </nomfa>
</nom>
DOM
![Page 39: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/39.jpg)
39
Bilan DOM
• Une interface objet standard• Navigation dans l'arbre XML• Traitements spécifiques
• Performance limitée• Place mémoire importante• Traitement à la fin de l'analyse
• DOM 2.0 • Accède dynamiquement au
contenu et à la structure du document
• Extensions en cours :• DOM Level 3 : XPath
• Support direct de XPath• Définition d'un XPath
Evaluator• Devrait être intégré aux
parsers• DOM Level 3 : Events
• Modèle d'événements• Associés à un nœud• Propagés dans l'arbre DOM
• DOM Level 3 : Style• Accès aux styles• Mapping complet
DOM
![Page 40: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/40.jpg)
40
L'interface SAX
SAX
• SAX (Simple API for XML) • modèle simplifié d'événements• développé par un groupe indépendant.
• Types d'événement :• début et fin de document ;• début et fin d'éléments ;• attributs, texte, … .
• Nombreux parseurs publics• XP de James Clark, Aelfred, Saxon• MSXML3 de Microsoft• Xerces de Apache• JAXP de SUN
![Page 41: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/41.jpg)
41
Principe de fonctionnement
Document
XMLParser
Evénement
startDocument
Evénement
startElement
Evénement
endDocument
….
Stream
XML
Méthodes
utilisateur
Content Handler
SAX
![Page 42: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/42.jpg)
42
Les méthodes essentielles
• XMLReader• setContentHandler• setErrrorHandler• parse
• ContentHandler• startDocument• endDocument• startElement• endElement• characters
• ErrorHandler• fatalError• error• warning
SAX
![Page 43: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/43.jpg)
43
Exemple SAX et DOM
personne
nom
prenom
adresse
rue
ville
#text: Cover
#text: Paris
#text: Stendhal
#text: Harry
startDocument ()
startElement (personne)
startElement (nom)
characters (Cover)
endElement (nom)
startElement (prenom)
characters (Harry)
endElement (prenom)
startElement (adresse)
startElement (rue)
characters (Stendhal)
endElement (rue)
startElement (ville)
characters (Paris)
endElement (ville)
endElement (adresse)
endElement (personne)
endDocument ()
<personne>
<nom>
Cover
</nom>
<prenom>
Harry
</prenom>
<adresse>
<rue>
Stendhal
</rue>
<ville>
Paris
</ville>
</adresse>
</personne>
SAX
![Page 44: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/44.jpg)
44
DOM versus SAX
• DOM utilise SAX pour la construction de l’arbre d’un document XML
• SAX est plus léger que DOM
• Au-dessus de DOM, il est possible d ’implémenter un « method caller » ...
SAX
![Page 45: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/45.jpg)
45
Integration : API JAXP
• Java API for XML Parsing• JAXP est une d'API standard J2EE permettant d'effectuer
des traitements XML qui englobe :• SAX (SAX 2.0)• DOM (DOM Level 2) • la manipulation de transformations XSLT
• Objectif• Fournir une couche d’abstraction permettant d’utiliser
n’importe quel analyseur SAX/DOM ou processeur XSL
• JAXP 1.3 est inclus dans Java WSDP 2.0, Java SE 5.0, et disponible sur Java.Net
![Page 46: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/46.jpg)
46
5. Conclusion
• Un ensemble d’outils pour traiter du XML:• Analyseurs validants• Processeurs XSLT/XSLFO
• Intégrés aux serveurs d’applications• J2EE = JAXP• .NET = MSXML
• En évolution permanente
• Questions ?
![Page 47: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/47.jpg)
Web Services
ObjectifsArchitectureProtocole web (SOAP)Composition de services web Position du marchéConclusion
![Page 48: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/48.jpg)
48
1. Besoins des Applications Web
• Le Web classique• Conçu pour les applications à interactions humaines• Partage d'information• E-commerce de type B2C
• Extensions nécessaires• Accès à l'information depuis des programmes• Processus de e-commerce B2B automatisés• Interopérabilité entre applications• Plate-forme pour le calcul distribué
Introduction
![Page 49: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/49.jpg)
49
Principes des services Web
• Proposer une plate-forme de traitement distribuée autour d'Internet/Intranet
• Permettre l'interopérabilité totale entre composants• Offrir un modèle de composants simple
• Modules avec interfaces de fonctions• Paramètres structurés et diversifiés en place des URL
longues contraignantes (ASCII, plats, ≤ 255)
• Permettre de découvrir dynamiquement les services• Annuaire de services et service de recherche
• Offrir des outils d'intégration de composants • A l'échelle de l'Internet ou de l'Intranet
Introduction
![Page 50: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/50.jpg)
50
Exemple d'applications
• Diffusion d'information• horaires, incidents, états de stocks• cours de bourse, entrées d'annuaires, etc.
• Contrôle d'information• Autorisation de cartes de crédits• Authentification d'un client
• Documentation automatique• présentation, marketing, veille technologique• librairie électronique, manuels, maintenance, etc.• communication et "knowledge management"
• Commerce électronique• présentation, sélection, transaction, médiation, etc.
Introduction
![Page 51: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/51.jpg)
51
2. Architecture Web Services
Architecture
Service
Requester
Service
Provider
Service
Provider
Service
Provider
Service
Provider
WEB-HTTP
CLIENT
Service
Registry
Request
Request
Request
Request
Publish
Publish
Publish
Publish
Find
SERVEUR
SERVEUR
SERVEUR
SERVEUR
SERVEUR
![Page 52: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/52.jpg)
52
Qu'est ce qu'un Web Service ?
• Définition [W3C]• Un Web service est un composant logiciel identifié par une URI, dont
les interfaces publiques sont définies et appelées en XML.• Sa définition peut être découverte par d'autres systèmes logiciels. • Les services Web peuvent interagir entre eux d'une manière prescrite
par leurs définitions, en utilisant des messages XML portés par les protocoles Internet.
• Exposition• Langage WSDL utilisé pour décrire le service• Similaire à IDL mais basé sur XML
• Activation• Protocole Web au-dessus de HTTP (RPC XML, SOAP)• Autres protocoles possibles …
Architecture
![Page 53: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/53.jpg)
53
Les Composants
• Service Provider (Fournisseur de service)• Application s'exécutant sur un serveur et comportant un
module logiciel accessible par IxxNet en XML
• Service Registry (Annuaires de service)• Annuaire des services publiés par les providers (UDDI)• Géré sur un serveur niveau application, entreprise ou
mondial
• Service Requester (Demandeur de service)• Application cliente se liant à un service et invoquant ses
fonctions par des messages XML (SOAP)
Architecture
![Page 54: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/54.jpg)
54
Vue d'ensemble
HTTP/S
Description
of providers
and services
UDDI CategoryProvider
WSDLService
Publication
SOAP
Transport
SOAP Client
XMLService
Call
SOAP
TransportService
Service
Provider
Applicationdiscovery?
Architecture
![Page 55: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/55.jpg)
55
Description des services: WSDL
• Elément Type• Types des paramètres (schéma XML)
• Elément Message• Appel et retour d'opération
• Elément Port type• Groupe d'opération
• Elément Binding• URL de l'opération• Type de protocole
Architecture
Service
Port(e.g. http://host/svc)
Binding(e.g. SOAP)
Abstract interface
portType
operation(s)
inMessage outMessage
Port
Binding
![Page 56: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/56.jpg)
56
Description en WSDL
<definitions name = "..." xmlns: …><types>
<!--Définition des types de données; basés sur ceux des schémas --> … </types><message>
<!--Déclaration des messages (entrées et sorties)--> … </message><portType>
<!--Déclaration des opérations (par association des messages)--> … </portType><binding>
<!--Définition de la liaison WSDL – SOAP (noms d'actions et codages)--></binding>
<service name= " … " ><!--Déclaration des ports (groupes d'opérations et protocoles d'accès)-->…
</service></definitions>
Architecture
![Page 57: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/57.jpg)
57
Exemple: GetLastTradePrice
• <?xml version="1.0"?> <definitions name="StockQuote">• <types> <schema> <element name="TradePriceRequest"> <complexType> <all> <element
name="tickerSymbol" type="string"/> </all> </complexType> </element> <element name="TradePrice"> <complexType> <all> <element name="price" type="float"/> </all> </complexType> </element> </schema> </types>
• <message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/> </message>
• <message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/> </message>
• <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> </portType>
• <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding>
• <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location="http://example.com/stockquote"/> </port> </service>
• </definitions>
Architecture
![Page 58: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/58.jpg)
58
Annuaire des services: UDDI
• Universal Description, Discovery and Integration
• Annuaire des services• décrit par un document• WSDL, spec. EJB, autre …
• Accessible en SOAP• Fonctions
• Enregistrer votre société• Enregistrer des services• Enregistrer des opérations• Découvrir des services• …
Annuaire
UDDI
Gérant de
requêtes
Enveloppe
+
Document
Programme
Dde de
Service
Annuaire
UDDI
Architecture
![Page 59: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/59.jpg)
59
Contenu de l’annuaire
• Pages blanches (businessEntity)• BusinessKey• Name• Description• CategoryBag• BusinessServices
• Pages jaunes (businessService)• ServiceKey• BusinessKey• Name• Description• CategoryBag• BindingTemplates
• Pages vertes (bindingTemplates)• BindinKey• ServiceKey• Description• AccessPoint
• Contenu défini par un schéma XML• Spécifications pour réplication
BusinessEntityBusinessEntity
BusinessServiceBusinessService
BindingTemplatesBindingTemplates
tModeltModel
publisherAssertionpublisherAssertion
Spécifs de services
et taxonomies
Relations entre
deux partiesInfos techniques
Architecture
![Page 60: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/60.jpg)
60
Principaux fournisseurs
• IBM UDDI Registry• Un registre UDDI avec des fonctionnalités de recherche• www-3.ibm.com/services/uddi/
• Microsoft UDDI Business Registry (UBR)• uddi.microsoft.com/default.aspx
• SAP UDDI Business Registry• Public pour l'instant
• Systinet Registry• Support complet de UDDI V3• www.systinet.com/products/sr/overview
• Oracle Application Server UDDI Registry• otn.oracle.com/tech/webservices/htdocs/uddi/
Architecture
![Page 61: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/61.jpg)
61
Client Web de Recherche
Architecture
![Page 62: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/62.jpg)
62
3. SOAP
• Inspiré du RPC DCE adapté à XML• Appel de procédure distante sur Internet
Appelant
Appelé
Appelant
Appelé
Souche Réseau d'interconnexion
Souche
Stub ouProxy
Skeleton ouListener
SOAP
![Page 63: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/63.jpg)
63
Qu'est-ce-que SOAP ?
• Simple Object Access Protocol • Ni simple, ni objet …
• Invocations de fonctions en XML au-dessus de HTTP :• Pour accéder services, objets et serveurs• Indépendant de toute plate-forme
• Codage universel XML par opposition aux spécifiques :• DCOM - DCE/NDR• CORBA - IIOP/CDR• JAVA - RMI/JRMP• RDA - XDR
• Résolution des problèmes de session, sécurité, transaction …• Associé à WSDL pour publication d'interfaces
SOAP
![Page 64: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/64.jpg)
64
Un échange type
Application Cliente
Parser XML
Procuration
d'interface
Translateur
SOAP
Parser XML
Serveur
d'application
Messages
SOAPAppel
Réponse
HTTP
RPC
local
Port de connexion (URL)
Pare-feu Pare-feu
SOAP
CLIENT SERVEUR
![Page 65: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/65.jpg)
65
Eléments d'un message
• Envelope• Élément pouvant contenir des déclarations d'espaces de
noms ou des sous-éléments
• Header• Élément optionnel fils de Envelope• Permet des extensions telles que authentification, session,
etc.
• Body • Élément obligatoire fils de Envelope• Définit la méthode appelée, contient les paramètres• Peut contenir un élément Fault en cas d'erreur
SOAP
![Page 66: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/66.jpg)
66
Structure d'un message
Protocol Headers
SOAP Envelope
SOAP Header
SOAP Body
Entête de protocoles (HTTP, SMTP, …)
<Envelope>
<Header>
<Body>
SOAP
![Page 67: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/67.jpg)
67
Exemple
• www.stockquoteserver.com• float GetLastTradePrice (Symbol)
• Le dialogue :
Application
Middleware
SOAP
HTTP
Application
Middleware
SOAP
HTTP
www.stockquoteserver.com
Request
Reply
Error
www.xquark.org
SOAP
![Page 68: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/68.jpg)
68
La requête
• POST /StockQuote HTTP/1.1Host: www.stockquoteserver.comContent-Type: text/xml; charset="utf-8"Content-Length: nnnn
SOAPAction: "Some-URI#GetLastTradePrice"
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap"><SOAP:Body>
<m:GetLastTradePrice xmlns:m="Some-URI"><symbol>DIS</symbol>
</m:GetLastTradePrice></SOAP:Body>
</SOAP:Envelope>
Standard HTTP
SOAP
![Page 69: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/69.jpg)
69
La réponse
• HTTP/1.1 200 OKContent-Type: text/xml; charset="utf-8"Content-Length: nnnn
<SOAP:Envelopexmlns:SOAP="http://schemas.xmlsoap.org/soap"/>
<SOAP:Body><m:GetLastTradePriceResponse xmlns:m="Some-URI">
<Price>34.5</Price></m:GetLastTradePriceResponse>
</SOAP:Body></SOAP:Envelope>
Standard HTTP
SOAP
![Page 70: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/70.jpg)
70
Exemple: Google
• Search requests• Soumet une requête avec un ensemble de paramètres à
Google Web APIs service et reçoit en réponse un ensemble de résultats de recherche.
• Cache requests• Soumet une URL à Google Web APIs service et reçoit en
réponse le contenu de l'URL lors de la dernière visite du crawler Google.
• Spelling requests• Soumet une requête à Google Web APIs service et reçoit
en réponse une suggestion de correction orthographique pour la requête.
SOAP
![Page 71: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/71.jpg)
71
Bilan SOAP
• Protocole d’invocation de services Web • Lisible et extensible• Au-dessus de HTTP• Passant les firewalls• Description en WSDL• Pousser par Microsoft, IBM,
BEA, …
• CORBA ou DCOM « killer »?• Associé à nomination des
objets• Véritable échange de
messages entre objets• Performance ?
• Questions ?
SOAP
![Page 72: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/72.jpg)
72
4. Orchestration de Services Web
• Objectifs• Modéliser des processus
métiers (business process)
• Composer des services Web distribués
• Piloter l'exécution• Orchestration d'activités• Echanges XML• Gestion de transactions
• Business Process Management• Transaction• Workflow
• Exemple : réservation
BPM
Début
RéserverAvion
LouerVoiture
RéserverTrain
RéserverHotel
OK ?
OK ?
OK ?
OK ?
Echec
Echec
Echec
Succès
oui
oui
oui
oui
non
non
non
non
![Page 73: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/73.jpg)
73
Exemple : Pilotage Fabrication
Fournisseur
ERP
Usine
Partenaire
Echange B2B
Mainframe
Serveur d'entreprise
Interface
XML
XML
XML
XML
XML
XML
Client
WEB
BPM
![Page 74: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/74.jpg)
74
Les briques à standardiser
Description
HTTP, IIOP, JMS, SMTP Transport
XMLMessage
SOAP
WSDL
UDDI Discovery
Transactions
CoordinationWS-SecurityWS-ReliabilityQuality ofService
Orchestration - BPEL4WS
BusinessProcesses
Context
Description
Managem
ent
Choreography - CDL4WS
![Page 75: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/75.jpg)
75
Composition de services
• Objectifs:• Alliances entre business pour offrir des services intégrés à
valeur ajoutée en combinant des services existants • Réutilisation et extension de services existants • Support pour la planification, la définition et
l'implémentation de services composés• Développement d'applications distribuées composées de
services web
BPM
![Page 76: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/76.jpg)
76
Quelques définitions
• Processus métier (Business Process)• Module fonctionnel réalisé par enchaînement d'activités
business exécutées par des acteurs échangeant des messages et implémentant les objets et règles spécifiques à une entreprise.
• Orchestration d'activité (Activity Orchestration)• Mécanisme d'invocation, de contrôle et de coordination des
activités participant à la réalisation de processus d'affaire.
• Composition de services (Services Composition)• Techniques permettant d'assembler des services Web pour
réaliser des processus métiers par des primitives de contrôles (boucles, tests, traitement d'exception, etc.) et d'échanges (envoi et réception de messages).
BPM
![Page 77: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/77.jpg)
77
Modélisation par Workflow
• Graphe acyclique d'activités modélisant un processus métier
BPM
Les activités représentent les unités de traitement
Les liens de données définissent le flux d'information.
[ WS]
Les activités peuvent être d'autres business process
Les liens de contrôle définissent le flux d'exécution
Les activités correspondent à des services Web
![Page 78: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/78.jpg)
78
Exemple
• Modélisation en XML• Langage d'orchestration • Chorégraphie d'activités
<activity name="demandePaiement">
<join condition=”(reserverVoiture OR reserverAvion) AND reserverHotel” when=”deferred”>
</activity>
<activity name="reserverAvion">….
commandeVacances
reserverHotelreserverVoiture reserverAvion
demandePaiement
BPM
Com
mande/classe=1
Commande/classe=2
reserverVacances
![Page 79: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/79.jpg)
79
Vers un standard ?
BPM
2000/05
XLang(Microsoft)
2001/03
BPML(Intallio et al)
2001/05
WSFL(IBM)
2001/06
BPSS(ebXML)
2002/03
BPEL4WS 1.0
(IBM, Microsoft)
BPEL4WS 1.1(OASIS)
2002/06 2003/01
WS-Choreography(W3C)
2003/04
WSCI(Sun et al)
WSCL(HP)
2002/08
![Page 80: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/80.jpg)
80
BPEL: Processus composé d'activités
• Compositions des web services synchrones et asynchrones • Véritable langage de programmation parallèle codé en XML• Assignation de variables locales et globales
BPM
![Page 81: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/81.jpg)
81
Exemple BPEL
<sequence>
<receive partnerLink=“customer” portType=“lns:purchaseOrderPT"
operation=“sendPurchaseOrder” variable=“PO”
createInstance="yes" />
<flow>
<invoke partnerLink=“inventoryChecker” portType=“lns:inventoryPT”
operation="checkINV" inputVariable="inventoryRequest"
outputVariable="inventoryResponse" />
<invoke partnerLink="creditChecker" portType=“lns:creditPT"
operation="checkCRED" inputVariable="creditRequest"
outputVariable="creditResponse" />
</flow>
...
<reply partnerLink=“customer” portType=“lns:purchaseOrderPT”
operation=“sendPurchaseOrder” variable=“invoice"/>
</sequence>
BPM
![Page 82: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/82.jpg)
82
Qualité de services
• Nécessité de fiabiliser• Les messages (WS-Reliability)• Les activités (WS-Transactions)
• Courtes (Atomic Transactions)• Longues (Business Activity)
• Nécessité de sécuriser• Les échanges confidentiels (WS-Security)
BPM
![Page 83: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/83.jpg)
83
Bilan Processus Métiers
• De multiples propositions• un domaine chaud (voir SOA)
• BPEL s'impose comme un standard de fait
• Vers trois standards pour la qualité de services• WS-Reliable Messaging• WS-Transactions• WS-Security
• Questions ?
BPM
![Page 84: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/84.jpg)
84
5. Stratégie des constructeurs
• Outil de développement .NET• .net Framework SDK (//msdn.microsoft.com/webservices)• Support depuis Visual Studio .Net• Développement en tout langage (VB, C++, C#)• Deux composants essentiels
• Common Language Infrastructue (CLI)• .net Class Libraries (GUI, DB, ASP, …)
• Au cœur des systèmes MS• Evolution de DNA vers .net, Visual Studio.net, …• Compilation des langages MS en CIL (ex MSIL)• Machine virtuelle pour l'exécution CLI• Semblable à Java mais MS (et Novell: Mono)
Stratégie
![Page 85: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/85.jpg)
85
Architecture .NET
VB C++ JScript …C#
ASP.NET ADO.NETBCL.NET
Common Language Runtime (CLR)
Windows et COM+ Services
SOAP&
XML
Toolkits
VisualStudio.NET
Stratégie
![Page 86: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/86.jpg)
86
Infrastructure Système
Gestion des Données
Infrastructure Applicative
Infrastructure Infrastructure ““Information WorkerInformation Worker””
Outils de d
Outils de dééveloppement
veloppement
Administration et S
Administration et S éécurit
curit éé
Pattern & Design
, , , , ASP.NET W
eb Matrix,
ASP.NET starter kit, Communautés
Applications Applications
PartenairesPartenaires
Exemple: plate-forme d’Entreprise MS
UnixUnix
LinuxLinux OS390OS390
AS400AS400
Web ServicesWeb Services
![Page 87: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/87.jpg)
87
Statégie J2EE de SUN, IBM, …
• Offrent un ensemble d'API pour Java2 et XML (JAX)• Java API for XML Processing (JAXP)
• Parsers, Processeur de feuilles de style • Java Architecture for XML Binding (JAXB)
• Mapping de XML sur des objets Java• Java API for XML Messaging (JAXM)
• Echange de messages SOAP• Java API for XML-based RPC (JAX-RPC)
• Génération de WSDL• Java API for XML Registries (JAXR)
• Accès à l'annuaire UDDI
Stratégie
![Page 88: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/88.jpg)
88
Le mapping objet (Data Binding)
• Définition• Mapping entre un document XML et un graphe d’objets
métier C++ ou Java
Objets C++
XML
Parsing Xerces C++
Objets Java
Parsing XDK Java
Objets Java
Binding Java
Interface générée à l’aide d’outils de Data Binding
Développements manuels
XML XML
Mapping
![Page 89: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/89.jpg)
89
Avantages
• L’activité de développement "parsing" est réduite• Gain en coût de développement des interfaces• Les applications peuvent se concentrer sur le fonctionnel• Les développeurs n'ont pas à se soucier du mapping XML
• Les Systèmes Techniques sont simplifiés• Capitalisation sur l’interface (utilisation, évolution, …)• Gain en terme de fiabilité (fin de l’utilisation de parseurs
variés, parfois écrits à la main)• Les performances de l’interface sont optimisées
• Les outils de mapping sont intégrés aux serveurs• J2EE = JAXB• .NET = mapper
Mapping
![Page 90: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/90.jpg)
90
Produits J2EE
• Apache AXIS (Open Source)• Servlet permet de déployer les services• Appel servlet depuis SOAP
• Intégrés aux serveurs d'applications• API JAX chez IBM, BEA, Oracle, SUN, …• Equivalent de .NET dans le monde Java (JSP ~ ASP) • Nombreux assistants et outils• Large support expérimental de BPEL
Stratégie
![Page 91: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/91.jpg)
91
Java WS Developer Pack (Sun)
• Boite à outils logiciel gratuite pour construire, tester et déployer les applications Java/XML
• Supporte les dernières versions des technologies et standards Web Services
• Avec la dernière version Java WSDP 2.0, les développeurs :• Develop and deploy using the latest XML and Web services
technologies slated for inclusion into Sun's deployment platforms. • Enhance Web services performance without revising WSDL files or
application code with the refreshed Fast Infoset features from Java WSDP 1.6.
• Create XML and Web service-enabled applications that exploit the enhanced security features with enhanced XWSS features.
• Continue to enjoy Java interoperability and portability across different platforms and devices.
• Simplify and lower the cost of legacy application integration, data interchange, and publishing in a Web environment.
![Page 92: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/92.jpg)
92
Architectures inter-opérables
Serveur de
présentation
XML
XML
HTML
Stratégie
…
Java, C++, C#,
Word, Excel, …
WEB SERVICES
J2EE
XMLVisual studio
WEB SERVICES
.NET
![Page 93: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/93.jpg)
93
Position des constructeurs
• Composants métiers appelables par message XML
• Encapsulent les applications existantes
• Début du développement des architectures SOA
• Agilité du système d'information
• Développement des workflows de coopération
Completeness of VisionCompleteness of Vision
Challengers Leaders
Niche Players Visionaries
Ability to Execute
Ability to Execute
OracleOracle
IBMIBM
HPHP
BEA
MicrosoftMicrosoft
CACA
SiebelSiebel
PeoplesoftPeoplesoft
NovellNovell
SAPSAP
FujitsuFujitsuSunSun
Conclusion
![Page 94: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/94.jpg)
94
Exemple d'application: Dollar Rent a Car
• 6e société US de location• 400 sites dans 26 pays, 260
sites US; +75.000 véhicules• $750MM de revenu en 2001• Réservation à travers GDS
• Une alternative à GDS:les services Web XML
• Lien direct avec les partenaires… 25 en 2 mois.
Dollar Dollar RentRent a Cara Car
VaxVMSVaxVMS
Frontal WSFrontal WS
ACMSACMSXML / SOAPXML / SOAP
SouthWestSouthWest
GGloballobal
DDistributionistribution
SSystemsystems
SabreSabre WorldspanWorldspanAmadeusAmadeus GalileoGalileo
XML / SOAPXML / SOAP
NorthWestNorthWest$4
Conclusion
![Page 95: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/95.jpg)
95
Ligue de Football Professionnel
• Ligue de Football Professionnel (CA 990M Euros) rebâtit son système de billetterie en .NET: • Système dimensionné et validé pour 8000 ventes/minutes
• Un nouveau système qui simplifie le développement de nouveaux canaux/ partenariat :• Interopérabilité via Services Web avec les réseaux
TicketNet et France Billet
Conclusion
![Page 96: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/96.jpg)
96
SNCF: Fidélisation clients (CRM)
• Aujourd'hui, la filiale Chargée de la gestion des programme de fidélité (cartesseniors, 12/25 ans ou grand voyageur) s'appuie sur plus de 30 modules Siebel dont les principaux sont Loyalty, pour la gestion de la fidélité pure, Call Center, Analytics (reporting et tableaux de bords) et Gestion des campagnes marketing. Il dispose d'une douzaine de sites de production dont l'outil interne de fidélisation de la SNCF, auquel il se connecte régulièrement pour mettre à jour ses données. Enfin, deux centres d'appels relaient les besoins clients liés à l'aspect fidélisation.
"Après 3 mois de mise en production, nous disposons d'un système qui fonctionnebien. Nous distribuons plus de 30 000 primes par mois, dont 30% par nos services Internet. Nous envoyons nos premiers mailings depuis trois semaines", ajoute Cyril Garnier.
A terme, de nouvelles fonctions viendront encore enrichir l'offre de services Web tels le relevé de points à distance, l'achat de cartes, la modification de coordonnées clients ou la transformation des points en réservations.
• Extrait du JDNET du 07/11/2005
![Page 97: Publication et Traitement avec XSL - Freegeorges.gardarin.free.fr/Cours_XML_ISTY3/2-XML_WS.pdf · • Oracle XDK (): XML Parser/ XSL Proc. • MSXML .NET • James Clark (): XT •](https://reader034.fdocuments.in/reader034/viewer/2022042917/5f5afb7793265a18143c26b9/html5/thumbnails/97.jpg)
97
7. En résumé ...
• Invocation dynamique de services WEB décrits en WSDL
• SOAP est le protocole d'invocation (WP) sur HTTP
• Intégrité et typage des données (schémas XML)
• Possibilité de découvrir dynamiquement les services (UDDI)
• Lisibilité et sécurité renforcée (standard de cryptage)
• Indépendance des constructeurs (W3C)
• Intégration des workflows (BPEL)• Ajout de contrôle qualité
(transaction, sécurité)
• Questions ?
Conclusion