Publication et Traitement avec XSL - PowerPoint PPT Presentation

About This Presentation
Title:

Publication et Traitement avec XSL

Description:

Publication et Traitement avec XSL 1. XPATH 2. XSLT 3. XSLFO 4. Traitement de documents 5. Conclusion – PowerPoint PPT presentation

Number of Views:151
Avg rating:3.0/5.0
Slides: 98
Provided by: George940
Category:

less

Transcript and Presenter's Notes

Title: Publication et Traitement avec XSL


1
Publication et Traitement avec XSL
  • 1. XPATH
  • 2. XSLT
  • 3. XSLFO
  • 4. Traitement de documents
  • 5. Conclusion

2
1. XPath l'adressage XML
  • XPath
  • Expressions de chemins dans un arbre XML
  • Permet de sélectionner des nœuds par navigation

Document XML
?
XPath
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
4
XPath - Parcours d'arbre
  • XPath opère sur l'arbre d'un document

racine
ltlivre auteur "Hugo"gt lttitregtLes
chatimentslt/titregt ltchapitregt
ltsectiongtBuonaparte lt/sectiongt
ltsectiongtNeigelt/sectiongt lt/chapitregt
lt/livregt
livre
Auteur "Hugo"
chapitre
chapitre
titre
section
section
Les chatiments
Neige
Bonaparte
XPath
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
6
Syntaxe et sémantique
  • Cheminement élémentaire
  • directionsé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 _at_attribut)
  • Prédicat
  • Fonction(nœud) valeur

XPath
7
XPath - Exemples
  • Sections d'un chapitre
  • /childlivre/childchapitre/childsection
  • /livre/chapitre/section
  • Texte du chapitre 1 section 2
  • /descendantchapitreposition()
    1/childsectionposition() 2/childtext()
  • //chapitre1/section2/text()

XPath
8
XPath - Synthèse
XPath
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
10
Publications avec XSL
  • Plusieurs formats de publication pour un contenu
  • XSL permet la présentation sur des terminaux
    variés

Format ( Postcript)
XML
Browser (XHTML, DHTML, HTML)
Document
XSL Processor
Format (XML) pour Word, Excel
Format (XML) application e.Commerce
format (WML)
XSLT
11
Architectures
HTML
XML
Affichage
ASP ou JSP
S ERVEUR
Programme
XML
HTML
Processeur XSL
Affichage
Fichier
XML
XML
  • Affichage
  • Traitement

Processeur XSL
Base de données
XSLT
12
Les feuilles de style
  • Une feuille de style XSL
  • est un document XML de racine ltxslstylesheetgt
  • contient une liste de règles de transformation
    ltxsltemplategt
  • Chaque règle (ltxsltemplategt) précise
  • Une condition spécifiant le sous-arbre du
    document dentrée auquel elle sapplique (match)
  • Une production spécifiant le résultat de
    lapplication de la règle (contenu)
  • Il s'agit de règles de production classiques
  • If ltcondtitiongt then ltproductiongt
  • Codées en XML avec espace de nom xsl

XSLT
13
Exemple de document
  • lt?xml version"1.0" ?gt
  • ltGuidegt
  • ltRestaurant Categorie""gt 
  • ltNomgtLe Romantiquelt/Nomgt
  • ltAdressegt 
  • ltVillegtCabourglt/Villegt  
  • ltDeptgtCalvadoslt/Deptgt
  •   lt/Adressegt 
  • lt/Restaurantgt
  • ltRestaurant Categorie""gt 
  • ltNomgtLes TroisGroslt/Nomgt
  • ltAdressegt 
  • ltVillegtRoannelt/Villegt  
  • ltDeptgtLoirelt/Deptgt  
  • lt/Adressegt
  • lt/Restaurantgt
  • lt/Guidegt
  •  

XSLT
14
Exemple de feuille de style XSL
  • lt?xml version"1.0" ?gt
  • ltxslstylesheet xmlnsxsl"http//www.w3.org/xsl"
    gt
  • ltxsltemplate match"/"gt
  • lthtmlgtltheadgtltBgtESSAI XSLlt/Bgtlt/headgt
    ltbodygtltxslapply-templates/gtlt/bodygtlt/htmlgt 
  • lt/xsltemplategt
  • ltxsltemplate match"Guide"gt 
  • ltH1gtBONJOUR LE GROUPE XMLlt/H1gt  
  • ltH2gtSUIVEZ LE GUIDElt/H2gt  
  • ltxslapply-templates /gt  
  • lt/xsltemplategt
  • ltxsltemplate match"Restaurant"gt
  • ltPgt ltIgtRestaurant lt/Igt  
  • ltxslvalue-of select"Nom"/gtlt/Pgt 
  • lt/xsltemplategt 
  • lt/xslstylesheetgt

XSLT
15
Les règles de production
  • Définition des règles par ltxsltemplate gt
  • 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 ltcall-templategt)
  • 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
  • ltxsl template match"/"gt
  • ltxsl template match"auteur" name"R1"
    priority"1"gt

XSLT
16
La génération du résultat
  • Le contenu de l'élément ltxsltemplategt 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
  • ltxslapply-templatesgt, ltxslfor-eachgt
  • Copie du contenu du nœud sélectionné
  • ltxslvalue-of select gt

XSLT
17
Résumé des commandes
  • ltxsltemplategt, définir une règle et son
    contexte 
  • ltxslapply-templates /gt, appliquer les
    transformations aux enfants du nœud courant
  • ltxslvalue-of select /gt, extrait la valeur d'un
    élément sélectionné à partir du nœud courant
  • ltxslfor-eachgt, définir un traitement itératif 
  • ltxslpigt, générer une processing instruction
  • ltxslelementgt, générer un élément 
  • ltxslattributegt, générer un attribut 
  • ltxslifgt, définir un traitement conditionnel 

XSLT
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
19
Quelques éditeurs
XSLT
20
IBM XSL Editor
Rendu
XML
XSLT
XSLT
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
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
23
Principes
  • Peut s'appliquer aux résultats des feuilles XSLT

XSL-FO
24
Organisation du document
  • Un document FO est formé d'un élément foroot qui
    comprend deux parties distinctes
  • une description des modèles de pages
  • folayout-master-set
  • une description du contenu
  • fopage-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
25
Objets de formatage
  • Les objets de formatage sont multiples
  • ltfoblockgt
  • utilisé pour les blocs de textes, paragraphes,
    titres
  • ltfodisplay-rulegt
  • ligne de séparation
  • ltfoexternal-graphicgt
  • 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
  • lespace avant et après le paragraphe
  • la couleur du texte ...

XSL-FO
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
27
XSL-FO hello World
  • lt?xml version"1.0" encoding"iso-8859-1"?gt
  • ltforoot xmlnsfo"http//www.w3.org/1999/XSL/Form
    at"gt
  • ltfolayout-master-setgt
  • ltfosimple-page-master master-name"my-page"
    gt
  • ltforegion-body margin"2 cm"/gt
  • lt/fosimple-page-mastergt
  • lt/folayout-master-setgt
  • ltfopage-sequence master-reference"my-page"gt
  • ltfoflow flow-name"xsl-region-body"gt
  • ltfoblockgtHello, world!lt/foblockgt
  • lt/foflowgt
  • lt/fopage-sequencegt
  • lt/forootgt
  • 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 sequence masters 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
28
XSL-FO et XSLT Exemple
  • Définition de propriétés pour la racine
  • ltxsltemplate match/gt ltfo-display-sequence
    font-styleitalic start-indent4pt
    end-indent4pt font-size18pt
    ltxslapply-templates/gt lt/fo-display-sequen
    cegt lt/xsltemplate
  • La définition dune propriété locale est
    prioritaire devant lhéritage

XSL-FO
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
30
Bilan XSL
  • XML format pour la production de publications
    échangeables sur le web
  • production dune 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
31
4. XML le traitement par programme
XMLSchema(ou DTD)
DOM
Parser
SAX
Mal formé/Invalide
XSLFO
XSLT
Mapping
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
33
Principaux parseurs
Document XML
Xerces Apache (Java, C)
MSXML Microsoft
SDK Oracle Oracle
JAXP J2EE Sun, ...
Parseur DOM
Arbre DOM
API DOM
Application
DOM
34
Exemple d'arbre DOM
Racine du document
Document
NodeList
ltGuidegt
Element
NodeList
  • ltGuidegt
  • ltRestaurant id"R1"gtLe meilleur
    restaurantlt/Restaurantgt
  • lt/Guidegt

ltRestaurantgt
Element
NamedNodeMap
Id"R1"
Attr
NodeList
Text
Le meilleur restaurant
DOM
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

Node
Document
ProcessingInstruction
DocumentType
Element
....
lt?xmlstylesheet ...gt
lt!DOCTYPE ...gt
ltRestaurant ....gt
Child
Text Le meilleur restaurant
DOM
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
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
38
Exemple d'utilisation
  • Public class ExempleDOM
  • public static main (String argc) throws
    IOException, DOMExcetion
  • XMLDocument xmlDoc new XmlDocument()
  • // creation des nœuds
  • ElementNode nom (ElementNode)
    xmlDoc.createElement("nom")
  • ElementNode prenom (ElementNode)
    xmlDoc.createElement("prenom")
  • ElementNode nomfam (ElementNode)
    xmlDoc.createElement("nomfam")
  • // creation de l'arbre
  • xmlDoc.appendChild(nom)
  • nom.appenChild(prenom)
  • prenom.appendChild(xmlDoc.createTextNode("Jean")
  • nom.appenChild(nomfam)
  • nomfam.appendChild(xmlDoc.createTextNode("Dupont")
  • // positionnement d'un attribut
  • nom.setAttribute("ville", "Paris")
  • // sortie
  • System.exit(0)

Document ltnom ville "Paris"gt ltprenomgt Jean
lt/prenomgt ltnomfagt Dupont lt/nomfagt lt/nomgt
DOM
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
40
L'interface 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

SAX
41
Principe de fonctionnement
Méthodes utilisateur
Evénement startDocument
Parser
Stream XML
Document XML
Evénement startElement
.
Evénement endDocument
Content Handler
SAX
42
Les méthodes essentielles
  • XMLReader
  • setContentHandler
  • setErrrorHandler
  • parse
  • ContentHandler
  • startDocument
  • endDocument
  • startElement
  • endElement
  • characters
  • ErrorHandler
  • fatalError
  • error
  • warning

SAX
43
Exemple SAX et DOM
startDocument () startElement (personne) startElem
ent (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 ()
ltpersonnegt ltnomgt Cover lt/nomgt ltprenomgt
Harry lt/prenomgt ltadressegt ltruegt
Stendhal lt/ruegt ltvillegt Paris
lt/villegt lt/adressegt lt/personnegt
SAX
44
DOM versus SAX
  • DOM utilise SAX pour la construction de larbre
    dun document XML
  • SAX est plus léger que DOM
  • Au-dessus de DOM, il est possible d  implémenter
    un  method caller  ...

SAX
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 dabstraction permettant
    dutiliser nimporte 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

46
5. Conclusion
  • Un ensemble doutils pour traiter du XML
  • Analyseurs validants
  • Processeurs XSLT/XSLFO
  • Intégrés aux serveurs dapplications
  • J2EE JAXP
  • .NET MSXML
  • En évolution permanente
  • Questions ?

47
Web Services
  • Objectifs
  • Architecture
  • Protocole web (SOAP)
  • Composition de services web
  • Position du marché
  • Conclusion

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
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
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
51
2. Architecture Web Services
SERVEUR
Service Provider
SERVEUR
Service Provider
Request
Publish
Publish
Service Registry
Service Provider
Request
SERVEUR
Publish
SERVEUR
Publish
Request
Find
Service Provider
SERVEUR
WEB-HTTP
Request
Service Requester
CLIENT
Architecture
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
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
54
Vue d'ensemble
HTTP/S
Architecture
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

Service
Port (e.g. http//host/svc)
Port
Binding (e.g. SOAP)
Binding
Abstract interface
portType
operation(s)
inMessage
outMessage
Architecture
56
Description en WSDL
  • ltdefinitions name "..." xmlns gt  
  • lttypesgt
  • lt!--Définition des types de données basés sur
    ceux des schémas --gt lt/typesgt 
  • ltmessagegt
  • lt!--Déclaration des messages (entrées et
    sorties)--gt lt/messagegt
  • ltportTypegt
  • lt!--Déclaration des opérations (par association
    des messages)--gt lt/portTypegt
  • ltbindinggt
  • lt!--Définition de la liaison WSDL SOAP (noms
    d'actions et codages)--gt lt/bindinggt
  • ltservice name "  " gt
  • lt!--Déclaration des ports (groupes d'opérations
    et protocoles d'accès)--gt lt/servicegt
  • lt/definitionsgt

Architecture
57
Exemple GetLastTradePrice
  • lt?xml version"1.0"?gt ltdefinitions
    name"StockQuote"gt
  • lttypesgt ltschemagt ltelement name"TradePriceRequest"
    gt ltcomplexTypegt ltallgt ltelement name"tickerSymbol"
    type"string"/gt lt/allgt lt/complexTypegt lt/elementgt
    ltelement name"TradePrice"gt ltcomplexTypegt ltallgt
    ltelement name"price" type"float"/gt lt/allgt
    lt/complexTypegt lt/elementgt lt/schemagt lt/typesgt
  • ltmessage name"GetLastTradePriceInput"gt ltpart
    name"body" element"xsd1TradePriceRequest"/gt
    lt/messagegt
  • ltmessage name"GetLastTradePriceOutput"gt ltpart
    name"body" element"xsd1TradePrice"/gt
    lt/messagegt
  • ltportType name"StockQuotePortType"gt ltoperation
    name"GetLastTradePrice"gt ltinput
    message"tnsGetLastTradePriceInput"/gt ltoutput
    message"tnsGetLastTradePriceOutput"/gt
    lt/operationgt lt/portTypegt
  • ltbinding name"StockQuoteSoapBinding"
    type"tnsStockQuotePortType"gt ltsoapbinding
    style"document" transport"http//schemas.xmlsoap
    .org/soap/http"/gt ltoperation name"GetLastTradePri
    ce"gt ltsoapoperation soapAction"http//example.co
    m/GetLastTradePrice"/gt ltinputgt ltsoapbody
    use"literal"/gt lt/inputgt ltoutputgt ltsoapbody
    use"literal"/gt lt/outputgt lt/operationgt lt/bindinggt
  • ltservice name"StockQuoteService"gt
    ltdocumentationgtMy first servicelt/documentationgt
    ltport name"StockQuotePort" binding"tnsStockQuot
    eBinding"gt ltsoapaddress location"http//example.
    com/stockquote"/gt lt/portgt lt/servicegt
  • lt/definitionsgt

Architecture
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
Annuaire UDDI
Gérant de requêtes
Enveloppe Document
Dde de Service
Programme
Architecture
59
Contenu de lannuaire
  • 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

tModel
BusinessEntity
Spécifs de services et taxonomies
BusinessService
publisherAssertion
BindingTemplates
Relations entre deux parties
Infos techniques
Architecture
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
61
Client Web de Recherche
Architecture
62
3. SOAP
  • Inspiré du RPC DCE adapté à XML
  • Appel de procédure distante sur Internet

Appelant
Stub ou Proxy
Appelant
Skeleton ou Listener
Appelé
Souche
Réseau d'interconnexion
Souche
SOAP
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
64
Un échange type
Port de connexion (URL)
Pare-feu
Pare-feu
Messages SOAP
Procuration d'interface
Translateur SOAP
Appel
Application Cliente
HTTP
RPC local
Réponse
Parser XML
Parser XML
Serveur d'application
CLIENT
SERVEUR
SOAP
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
66
Structure d'un message
Protocol Headers
Entête de protocoles (HTTP, SMTP, )
ltEnvelopegt
SOAP Envelope
ltHeadergt
SOAP Header
ltBodygt
SOAP Body
SOAP
67
Exemple
  • www.stockquoteserver.com
  • float GetLastTradePrice (Symbol)
  • Le dialogue

Application
Application
Request
Middleware
Middleware
Reply
SOAP
SOAP
HTTP
HTTP
Error
www.stockquoteserver.com
www.xquark.org
SOAP
68
La requête
  • POST /StockQuote HTTP/1.1Host
    www.stockquoteserver.comContent-Type text/xml
    charset"utf-8"Content-Length nnnn
  • SOAPAction "Some-URIGetLastTradePrice"ltSOAPE
    nvelope xmlnsSOAP"http//schemas.xmlsoap.org/soa
    p"gt   ltSOAPBodygt       ltmGetLastTradePrice
    xmlnsm"Some-URI"gt           ltsymbolgtDISlt/symbol
    gt       lt/mGetLastTradePricegt   lt/SOAPBodygtlt/
    SOAPEnvelopegt

Standard HTTP
SOAP
69
La réponse
  • HTTP/1.1 200 OKContent-Type text/xml
    charset"utf-8"Content-Length
    nnnnltSOAPEnvelope xmlnsSOAP"http//schemas.xm
    lsoap.org/soap"/gt   ltSOAPBodygt       ltmGetLast
    TradePriceResponse xmlnsm"Some-URI"gt           
    ltPricegt34.5lt/Pricegt       lt/mGetLastTradePriceRe
    sponsegt   lt/SOAPBodygtlt/SOAPEnvelopegt

Standard HTTP
SOAP
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
71
Bilan SOAP
  • Protocole dinvocation 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
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
73
Exemple Pilotage Fabrication
Echange B2B
Partenaire
Usine
Serveur d'entreprise
XML
XML
XML
WEB
XML
Interface XML
ERP
XML
Fournisseur
Client
BPM
74
Les briques à standardiser
BusinessProcesses
Transactions
Quality ofService
Coordination
WS-Security
WS-Reliability
Context
Management
UDDI
Discovery
Description
WSDL
Description
SOAP
Message
XML
HTTP, IIOP, JMS, SMTP
Transport
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
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
77
Modélisation par Workflow
  • Graphe acyclique d'activités modélisant un
    processus métier

Les activités représentent les unités de
traitement
Les liens de contrôle définissent le flux
d'exécution
Les activités correspondent à des services Web
WS
Les liens de données définissent le flux
d'information.
Les activités peuvent être d'autres business
process
BPM
78
Exemple
  • Modélisation en XML
  • Langage d'orchestration
  • Chorégraphie d'activités
  • ltactivity name"demandePaiement"gt
  • ltjoin condition(reserverVoiture OR
    reserverAvion) AND reserverHotel
    whendeferredgt
  • lt/activitygt
  • ltactivity name"reserverAvion"gt
  • .

commandeVacances
reserverVacances
Commande/classe1
Commande/classe2
reserverVoiture
reserverHotel
reserverAvion
demandePaiement
BPM
79
Vers un standard ?
BPML (Intallio et al)
BPSS (ebXML)
WS-Choreography (W3C)
WSCI (Sun et al)
2000/05
2001/03
2001/05
2001/06
2002/03
2002/06
2003/01
2003/04
2002/08
XLang (Microsoft)
WSFL (IBM)
BPEL4WS 1.0 (IBM, Microsoft)
BPEL4WS 1.1(OASIS)
WSCL (HP)
BPM
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
81
Exemple BPEL
  • ltsequencegt
  • ltreceive partnerLinkcustomer
    portTypelnspurchaseOrderPT"
  • operationsendPurchaseOrder
    variablePO
  • createInstance"yes" /gt
  • ltflowgt
  • ltinvoke partnerLinkinventoryChecker
    portTypelnsinventoryPT
  • operation"checkINV" inputVariable"inve
    ntoryRequest"
  • outputVariable"inventoryResponse" /gt
  • ltinvoke partnerLink"creditChecker"
    portTypelnscreditPT"
  • operation"checkCRED"
    inputVariable"creditRequest"
  • outputVariable"creditResponse" /gt
  • lt/flowgt
  • ...
  • ltreply partnerLinkcustomer portTypelnspurch
    aseOrderPT
  • operationsendPurchaseOrder
    variableinvoice"/gt
  • lt/sequencegt

BPM
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
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
84
5. Stratégie des constructeurs
  • Outil de développement .NET
  • .net Framework SDK (//msdn.microsoft.com/webservic
    es)
  • 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
85
Architecture .NET
VB
C
JScript

C
SOAP XML Toolkits
Visual Studio .NET
ASP.NET
ADO.NET
BCL.NET
Common Language Runtime (CLR)
Windows et COM Services
Stratégie
86
Exemple plate-forme dEntreprise MS
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
88
Le mapping objet (Data Binding)
  • Définition
  • Mapping entre un document XML et un graphe
    dobjets métier C ou Java

Interface générée à laide doutils de Data
Binding
Développements manuels
Objets C
Objets Java
Objets Java
Parsing Xerces C
Parsing XDK Java
Binding Java
XML
XML
XML
Mapping
89
Avantages
  • Lactivité 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 linterface (utilisation,
    évolution, )
  • Gain en terme de fiabilité (fin de lutilisation
    de parseurs variés, parfois écrits à la main)
  • Les performances de linterface sont optimisées
  • Les outils de mapping sont intégrés aux serveurs
  • J2EE JAXB
  • .NET mapper

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

92
Architectures inter-opérables
HTML
Serveur de présentation
Visual studio
XML
XML
WEB SERVICES .NET
XML
Java, C, C, Word, Excel,

WEB SERVICES J2EE
Stratégie
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

Challengers
Leaders
Microsoft
IBM
BEA
Oracle
SAP
Fujitsu
Sun
HP
CA
Novell
Siebel
Peoplesoft
Niche Players
Visionaries
Conclusion
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 à GDSles services Web XML
  • Lien direct avec les partenaires 25 en 2 mois.

GlobalDistributionSystems
Sabre
Worldspan
Amadeus
Galileo
4
VaxVMS
Dollar Rent a Car
Conclusion
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
96
SNCF Fidélisation clients (CRM)
  • Aujourd'hui, la filiale Chargée de la gestion des
    programme de fidélité (cartes seniors, 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
    fonctionne bien. 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

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
Write a Comment
User Comments (0)
About PowerShow.com