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

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

Publication et Traitement avec XSL

Présentations similaires


Présentation au sujet: "Publication et Traitement avec XSL"— Transcription de la présentation:

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 Expressions de chemins communes à :
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 <livre auteur = "Hugo"> <titre>Les chatiments</titre> <chapitre> <section>Buonaparte </section> <section>Neige</section> </chapitre> </livre> livre Auteur = "Hugo" chapitre chapitre titre section section Les chatiments Bonaparte Neige 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
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 Prédicat [Fonction(nœud) = valeur] XPath

7 XPath - Exemples Sections d'un chapitre Texte du chapitre 1 section 2
/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

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 Format (XML) pour Word, Excel
Publications avec XSL Plusieurs formats de publication pour un contenu XSL permet la présentation sur des terminaux variés Format ( Postcript) XML Document Browser (XHTML, DHTML, HTML) XSL Processor Format (XML) pour Word, Excel XSL Stylesheet Format (XML) application e.Commerce format (WML) XSLT

11 Architectures HTML XML Affichage S E R V E U R Programme XML HTML
ASP ou JSP S E R V E U R 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 <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

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> <Ville>Roanne</Ville>   <Dept>Loire</Dept>   </Adresse> </Guide> XSLT

14 Exemple de feuille de style XSL
<?xml version="1.0" ?> <xsl:stylesheet xmlns: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 match="Restaurant"> <P> <I>Restaurant :</I>   <xsl:value-of select="Nom"/></P>  </xsl:template>  </xsl:stylesheet> XSLT

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

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

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

18 Processeurs XSLT Processeurs XSLT conformes à la spécification:
Apache Group ( Xalan Oracle XDK ( XML Parser/ XSL Proc. MSXML .NET James Clark ( 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 XML XSLT Rendu 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 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

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

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 <?xml version="1.0" encoding="iso-8859-1"?>
<fo:root xmlns:fo=" <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 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 <xsl:template match=‘/’> <fo-display-sequence font-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

29 Les processeurs XSL-FO
Apache Group : FOP Formating Object Processor Génère du PDF JFOR (Open Source) Génère du RTF Antenna House XSL Formatter RenderX Génère du PDF Altova StyleVision XML Mind FO Converter Génère du RTF 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 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

31 4. XML: le traitement par programme
XML Schema (ou DTD) Manipulation de l'arbre XML <ville>Paris</ville> <pays>France</pays> <temp echelle="C">18</temp> <ville>Paris</ville> <pays>France</pays> <temp echelle="C">18</temp> XML DOM Parser Bien formé Valide événements – call back <ville>Paris</ville> SAX XSL Stylesheet Mal formé/Invalide XSLT XSLFO (X)HTML <city>Paris</city> <temp degree="F">65</temp> WML XML PDF RTF, Word 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 Xerces Apache (Java, C++) MSXML Microsoft
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 <Guide> </Guide>
Document Racine du document NodeList Element <Guide> NodeList <Guide> <Restaurant id="R1">Le meilleur restaurant</Restaurant> </Guide> Element <Restaurant> NamedNodeMap Attr Id="R1" NodeList Text Le meilleur restaurant DOM

35 Le meilleur restaurant
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 .... <?xml:stylesheet ...> <!DOCTYPE ...> <Restaurant ....> 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 Interfaces étendues XML
DOMImplementation Document Comment DocumentFragment Element Attr(ibute) NamedNodeMap CharacterData Text Interfaces étendues XML ProcessingInstruction DocumentType CDATASection Notation Entity EntityReference DOM

38 Exemple d'utilisation Document: <nom ville ="Paris">
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: <nom ville ="Paris"> <prenom> Jean </prenom> <nomfa> Dupont </nomfa> </nom> DOM

39 Bilan DOM Une interface objet standard Performance limitée DOM 2.0
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) Types d'événement :
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 Document XML Stream 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)
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> personne nom prenom adresse rue ville #text: Cover #text: Paris #text: Stendhal #text: Harry SAX

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

45 Integration : API JAXP Java API for XML Parsing Objectif
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

46 5. Conclusion Un ensemble d’outils pour traiter du XML: Questions ?
Analyseurs validants Processeurs XSLT/XSLFO Intégrés aux serveurs d’applications 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 SERVEUR Service Provider Request Publish SERVEUR Publish Request Find Service Provider SERVEUR Request WEB-HTTP 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 Description of providers
Vue d'ensemble Service Provider Application discovery? Description of providers and services UDDI Category Provider WSDL Service Publication SOAP Transport SOAP Client XML Service Call 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. Port Binding (e.g. SOAP) Binding Abstract interface portType operation(s) inMessage outMessage Architecture

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

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=" <operation name="GetLastTradePrice"> <soap:operation soapAction=" <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=" </port> </service> </definitions> 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 l’annuaire Pages blanches (businessEntity)
BusinessKey Name Description CategoryBag BusinessServices Pages jaunes (businessService) ServiceKey BindingTemplates Pages vertes (bindingTemplates) BindinKey AccessPoint Contenu défini par un schéma XML Spécifications pour réplication BusinessEntity tModel 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 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 Appelé 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 SOAP Messages SOAP Appel Application Cliente HTTP
Port de connexion (URL) Pare-feu Pare-feu Messages SOAP Procuration d'interface Appel Translateur SOAP Application Cliente HTTP RPC local Réponse Parser XML Parser XML Serveur d'application CLIENT SERVEUR SOAP

65 Eléments d'un message Envelope Header Body
É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 SOAP Protocol Headers
Entête de protocoles (HTTP, SMTP, …) SOAP Envelope <Envelope> SOAP Header <Header> SOAP Body <Body> SOAP

67 Exemple www.stockquoteserver.com float GetLastTradePrice (Symbol)
Le dialogue : Application Application Request Middleware Middleware Reply SOAP SOAP HTTP HTTP Error SOAP

68 La requête POST /StockQuote HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI#GetLastTradePrice" <SOAP:Envelope xmlns:SOAP="    <SOAP:Body>        <m:GetLastTradePrice xmlns:m="Some-URI">            <symbol>DIS</symbol>        </m:GetLastTradePrice>    </SOAP:Body> </SOAP:Envelope> Standard HTTP SOAP

69 La réponse HTTP/ OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP:Envelope xmlns:SOAP="    <SOAP:Body>        <m:GetLastTradePriceResponse xmlns:m="Some-URI">            <Price>34.5</Price>        </m:GetLastTradePriceResponse>    </SOAP:Body> </SOAP:Envelope> Standard HTTP SOAP

70 Exemple: Google Search requests Cache requests Spelling 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 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

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 Début Réserver Avion Louer Voiture Train Hotel OK ? Echec Succès oui non BPM

73 Exemple : Pilotage Fabrication
Echange B2B Partenaire Serveur d'entreprise Usine XML XML XML WEB XML Interface XML ERP XML Fournisseur Mainframe Client BPM

74 Les briques à standardiser
Choreography - CDL4WS Business Processes Orchestration - BPEL4WS Transactions Quality of Service WS-Reliability WS-Security Coordination Context Management UDDI Discovery WSDL Description 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 <activity name="demandePaiement"> <join condition=”(reserverVoiture OR reserverAvion) AND reserverHotel” when=”deferred”> </activity> <activity name="reserverAvion"> …. commandeVacances reserverVacances Commande/classe=1 Commande/classe=2 reserverVoiture reserverAvion reserverHotel demandePaiement BPM

79 BPEL4WS 1.0 (IBM, Microsoft)
Vers un standard ? BPML (Intallio et al) BPSS (ebXML) WSCI (Sun et al) WS-Choreography (W3C) 2000/05 2001/03 2001/05 2001/06 2002/03 2002/06 2002/08 2003/01 2003/04 XLang (Microsoft) WSFL (IBM) WSCL (HP) BPEL4WS 1.0 (IBM, Microsoft) BPEL4WS 1.1 (OASIS) 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 BPM <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

82 Qualité de services Nécessité de fiabiliser Nécessité de sécuriser
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/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

85 Architecture .NET SOAP & XML Toolkits VB C++ C# JScript … Visual
Studio .NET ASP.NET BCL.NET ADO.NET Common Language Runtime (CLR) Windows et COM+ Services Stratégie

86 Exemple: plate-forme d’Entreprise MS
Infrastructure Système Gestion des Données Infrastructure Applicative Infrastructure “Information Worker” Outils de développement Administration et Sécurité Pattern & Design, ASP.NET Web Matrix, ASP.NET starter kit, Communautés Applications Partenaires Web Services Unix AS400 Linux OS390

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 d’objets métier C++ ou Java Développements manuels Interface générée à l’aide d’outils de Data Binding Objets C++ Objets Java Objets Java Parsing Xerces C++ Parsing XDK Java Binding Java XML XML XML Mapping

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

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 Ability to Execute Microsoft IBM BEA Oracle SAP Fujitsu Sun HP CA Novell Siebel Peoplesoft Niche Players Visionaries Completeness of Vision Conclusion

94 Exemple d'application: Dollar Rent a Car
6e société US de location 400 sites dans 26 pays, 260 sites US; 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. Global Distribution Systems XML / SOAP NorthWest Sabre Worldspan On valorise un existant, ici VaxVMS On change de chaine de valeur On améliore la profitabilité Amadeus Galileo $4 Frontal WS ACMS XML / SOAP SouthWest VaxVMS Conclusion Dollar Rent a Car

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 8000 ventes/minutes : de quoi remplir le stade Vélodrome de Marseille ( places) en 8 min Le système est déployé dans les grands clubs de foot (premier déployement au Stade Lyonnais,) avec pour étape suivante de se connecter aux réseaux de distribution TicketNET et France Billet. L’approche Service Web et le potentiel d’intéropérabilité on convaincu la LFP : le système pourra potentiellement permettre aux clubs qui le souhaite de mettre en place une boutique en ligne (promotions pour les supporters, etc) mais aussi s’interfacer avec le reste du SI de chaque club. Ligue Nationale de foot 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 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


Télécharger ppt "Publication et Traitement avec XSL"

Présentations similaires


Annonces Google