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

1 Web service Said najah. 2 Deuxième partie : Technologies des services Web.

Présentations similaires


Présentation au sujet: "1 Web service Said najah. 2 Deuxième partie : Technologies des services Web."— Transcription de la présentation:

1 1 Web service Said najah

2 2 Deuxième partie : Technologies des services Web

3 3 Les services web Définition du W3C Selon la définition du W3C (World Wide Web Consortium), un Web service (ou service Web) est une application appelable via Internet - par une autre application dun autre site Internet - permettant léchange de données (de manière textuelle) afin que lapplication appelante puisse intégrer le résultat de léchange à ses propres analyses. Les requêtes et les réponses sont soumises à des standards et normalisées à chacun de leurs échanges.

4 4 Quelques définitions Les services web permettent linvocation de fonctions distantes, présentes sur des systèmes distribués et hétérogènes, grâce au protocole HTTP et à XML. « les services web sont des applications auto-descriptives, modulaires et faiblement couplées qui fournissent un modèle de programmation et de déploiement dapplications, basé sur des normes, et sexécutant au travers de linfrastructure web » Les Web Services, H.Kadima, Dunod 2003 Un service web est une application conçue pour assurer une interopérabilité entre machines au travers dun réseau. Les services web

5 5 Un service web est une interface qui décrit un ensemble dopérations accessibles via un réseau par des messages XML standards. « Un service web est un composant applicatif mis à la disposition sur un réseau et disposant de méthodes que lon peut invoquer à distance via lemploi de protocoles standards. Les services Web présentent lavantage dêtre faiblement couplés, indépendants des plateformes et réutilisables » Livre Blanc : Les Services Web, S.Bardet, 2003 Les services web permettent l'appel d'une méthode d'un objet distant en utilisant un protocole web pour le transport (http en général) et XML pour formater les échanges. Les services web

6 6 Les services web fonctionnent sur le principe du client prestataire : un client appelle les prestataires web le prestataire traite la demande et renvoie le résultat au client le client utilise le résultat Les services web sont des composants distribués qui offrent des fonctionnalités aux applications au travers du réseau en utilisant des standards ouverts. Ils peuvent donc être utilisés par des applications écrites dans différents langages et exécutées dans différentes plateformes sur différents systèmes. Les services web

7 7 Les services Web utilisent une architecture distribuée composée de plusieurs ordinateurs et/ou systèmes différents qui communiquent sur le réseau. Ils mettent en œuvre un ensemble de normes et standards ouverts qui permettent aux développeurs d'implémenter des applications distribuées internes ou externes en utilisant des outils différents fournis par différents fournisseurs. Il existe plusieurs technologies derrière le terme services web : Les services web de type Representational state transfer (REST) Les services web de type SOAP Les services web

8 8 Les Web services sont nés de leffort de plusieurs organisations qui ont partagé un intérêt commun en développant et en maintenant "un marché électronique". Les organisations souhaitaient pouvoir communiquer plus simplement et sans avoir à se concerter sur chacune de leur transaction pour pouvoir interpréter leurs différentes données. Elles souhaitaient supprimer lisolement de leur système informatique avec les autres. Pour répondre à cette nouvelle situation, de nouvelles technologies apparurent telles que CORBA (Common Object Request Broker Architecture) ou la version quen fit Microsoft, le Component Object Model (COM). Les services web

9 9 CORBA, est une architecture logicielle, pour le développement de composants. Ces composants, qui sont assemblés pour la construction dapplications complètes, ont la possibilité dêtre écrits dans des langages de programmation différents, dêtre exécutés dans des processus dissociés, voire dêtre déployés sur des machines distinctes. Les composants CORBA utilisent une approche essentiellement orientée objet (du point de vue dun langage de programmation, toutes les méthodes sont virtuelles, il ny a pas de polymorphisme paramétrique, ni méthodes protégées ou privées, ni surcharge dopérateurs). Les services web

10 10 Pour améliorer linteropérabilité entre les réalisations de service Web, lorganisation WS-I a développé une série de profils pour faire évoluer les futures normes impliquées. Laspect le plus important des Web Services est quils reposent sur plusieurs standards qui permettent la structuration des architectures. Cette collection de normes et de protocoles est appelée Web Services Protocol Stack. La collection de normes et de protocoles qui contient : XML et SOAP pour le formatage des données, WSDL pour la description des services Web UDDI pour la recherche des services Web nécessaire au bon fonctionnement des applications. Les services web

11 11 Architecture Les services web

12 12 1- Le client envoie une requête à lannuaire de Service pour trouver le service Web dont il a besoin. 2- Lannuaire cherche pour le client, trouve le service Web approprié et renvoie une réponse au client en lui indiquant quel serveur détient ce quil recherche. 3- Le client envoie une deuxième requête au serveur pour obtenir le contrat de normalisation de ses données. 4- Le serveur envoie sa réponse sous la forme établie par WSDL en langage XML. 5- Le client peut maintenant rédiger sa requête pour traiter les données dont il besoin. 6- Le serveur fait les calculs nécessaires suite à la requête du client, et renvoie sa réponse sous la même forme normalisée. Les services web

13 13 Architecture de base Trois acteurs : le fournisseur de service (service provider ) : définit le service publie sa description dans lannuaire réalise les opérations lannuaire (discovery agency) : reçoit et enregistre les descriptions de services publiées par les fournisseurs reçoit et répond aux recherches de services lancées par les clients le client (service requestor ) : obtient la description du service grâce à lannuaire utilise le service Les services web

14 14 Les services web

15 15 La normalisation actuelle autour des Web Services est cependant une organisation complexe qui va bien au-delà de la simple invocation dune méthode dun objet distant. Différents travaux ont ainsi démarré pour permettre détablir une véritable infrastructure distribuée, capable de satisfaire lensemble des besoins dune application distribuée, aussi bien en terme de normalisation des échanges quen terme de services transverses. Cette normalisation des services transverses se fait sur trois axes horizontaux Les services web

16 16 Couche de transport : Définition de la structure des messages utilisés par les applications pour se découvrir et dialoguer entre elles. Cette couche est à lheure actuelle la seule réellement normalisée et qui ne souffre daucune contestation. Elle sappuie sur le protocole SOAP pour léchange des messages et sur le langage WSDL pour la définition du contrat de linterface. Les services web

17 17 Couche de sémantique : Normalisation des données participant aux échanges selon des critères métier. Les initiatives de définition de la couche de sémantiques des messages sont nombreuses et nont pour le moment pas conduit à une quelconque normalisation. Deux types dorganisation sont actuellement ouverts, lune établie selon les différents corps de métier, lautre suivant une approche plus globale autour de consortium tel que OASIS (initiateur de ebXML) ou RosettaNet. Les services web

18 18 Couche de gestion des processus Standardisation de la gestion des processus métier qui sétendent sur plusieurs applications disponibles sur Internet. Lorchestration de transactions B2B (Business to Business) complexes, fondée sur une architecture normalisée des messages est aussi une tentative qui navance pas assez rapidement et sur des standards non murs. Les services web

19 19 Cette normalisation des services transverses de fait aussi sur trois axes verticaux : Service dannuaire : Standardisation des moyens daccès à un service à partir dune requête portant sur le contenu dun service ou sur un fournisseur. La première proposition dannuaire UDDI aurait du apporter une solution définitive. Le constat est quil nen est rien et que la trame, trop globale, du projet ne suffit pas à régler cette problématique déchanges entre applications. Une deuxième proposition dannuaire, WSInspection, vient concurrencer celle-ci. Les services web

20 20 Service de sécurité Normalisation des moyens permettant de couvrir les problématiques dauthentification et de gestion des droits daccès. La gestion de la sécurité est actuellement le frein le plus important à la mise en place darchitectures distribuées à base de Web Services. Il semblerait que la norme XACML (eXtensible Access Control Markup Language) puisse supplanter SAML (Security Assertion Markup Language) et simposer à terme comme standard de sécurité. Les services web

21 21 Service de transaction Normalisation des moyens permettant de garantir lintégrité des transactions longues impliquant plusieurs Web Services. Le problème reste le même que pour la sécurité. Les standards ne sont pas tout à fait établis. La lutte pour lobtention dune norme est beaucoup plus ouverte que pour celle de la sécurité, même si BTP (Business Transaction Protocol ) semble plus soutenu actuellement. Les services web

22 22 Evolution des middlewares Quelle est la nouveauté dans les web services ? Pourquoi ne pas utiliser les technologies existantes? Remote Procedure Call Message Oriented Middleware Objets Distribués Database Oriented Middleware Les services web

23 23 évolution des middlewares - RPC Remote Procedure Call (RPC) Principe dappel de procédure type client/serveur sexécutant sur une machine distante dans un environnement dapplications distribuées. Un des plus vieux middlewares Fonctionne de manière synchrone Facile à comprendre et à coder Nécessite beaucoup de ressources Complexe à administrer Pas de standards/Implémentation spécifique à un vendeur Ne supporte pas la POO Les services web

24 24 Architectures pour les systèmes répartis (RPC, DCOM, RMI et CORBA) : problèmes dinter-opérabilité : DCOM spécifique Microsoft RMI spécifique Java problèmes techniques : RPC technologie vieillissante CORBA technologie extrêmement complexe Les services web

25 25 Les services web

26 26 Les services web

27 27 Les services web Troisième vague du e-Business Exemple de Scénario de M2M

28 28 Exemples de services existants Google (http://www.google.com/apis/) : accès gratuit mais limité (1000 requêtes par jour après enregistrement) propose trois opérations : recherche obtention dune page depuis le cache correction orthographique Amazon(http://associates.amazon.com/exec/panama/associates/join/developer/r esources.html)http://associates.amazon.com/exec/panama/associates/join/developer/r esources accès gratuit mais limité (une requête par seconde après enregistrement) propose recherche et gestion dun panier dachats Les services web

29 29 Fondations des services Web Les protocoles Internet Les protocoles Internet URI, URN, URL, trois sigles qui se rapportent au mécanisme utilisé par le Web pour identifier et/ou localiser une ressource ; MIME, technologie permettant de véhiculer des objets de toute sorte sur Internet, très importante dans la mesure où de nombreux autres protocoles lutilisent, et en particulier SMTP et HTTP ; HTTP/1.1, protocole réseau fondamental en tant que tel, qui est en outre le moyen de transport des messages le plus utilisé pour les services Web ; SMTP, alternative à HTTP en tant que moyen de transport des services Web.

30 30 URI, URL, URN Le Web est une formidable mine dinformations, de documents, de programmes et de services, bref, de ressources en tout genre. Il était primordial de définir un mécanisme permettant aux utilisateurs et aux programmes de nommer et de localiser ces ressources. Cest lobjectif des URI (Uniform Resource Identifier) définis par un standard Internet (Draft Standard) proposé par lIETF sous la référence RFC2396 (août 1998). Ce mécanisme didentification et de localisation est utilisé non seulement par les protocoles de base du Web HTTP, FTP ou Telnet, mais aussi par la plupart des technologies récentes telles que les espaces de noms (namespaces) XML. Fondations des services Web Les protocoles Internet

31 31 Les URI sont classés en trois groupes (figure ) : Ceux qui permettent de localiser des ressources sur un réseau, appelés URL (Uniform Resource Locator) ; Ceux qui permettent didentifier et de nommer des ressources de manière unique et persistante, appelés URN (Uniform Resource Name) ; Par exemple, l'URN urn:isbn: est un URI qui, étant un numéro de l'International Standard Book Number (ISBN), permet de faire référence à un livre, mais ne suggère ni où, niISBN comment en obtenir une copie réelle. Et ceux qui permettent à la fois de localiser et didentifier une ressource. Fondations des services Web Les protocoles Internet

32 32 Syntaxe dun URI Un URI nutilise quun jeu restreint de caractères (chiffres, lettres et quelques symboles) car il doit pouvoir être utilisé tout aussi bien avec des moyens de communication informatisés que non informatisés (papier, etc.). Il est constitué : de caractères réservés (« ; », « / », « ? », « : », », « & », « = », « + », « $ », «, ») qui servent de délimiteurs ; de chaînes de caractères codés en ASCII US ou à laide de séquences déchappement commençant par le signe « % » (par exemple : « %2D » qui est le caractère « - »). Fondations des services Web Les protocoles Internet

33 33 Composition dun URI Un URI est toujours constitué de la manière suivante : : Il existe néanmoins une syntaxe générique des URI, que voici : :// ? URN un URN a pour objectif de nommer une ressource indépendamment de sa localisation. Un modèle (scheme) spécifique a été défini par le RFC2141 et est utilisé en tant que standard pour identifier des ressources sur le Web. Sa syntaxe est la suivante : urn: Par exemple : urn:MonEspace:MonIdentifiant Fondations des services Web Les protocoles Internet

34 34 Le standard MIME MIME (Multipurpose Internet Mail Extensions) est un standard Internet («Draft Standard ») proposé par lIETF sous les références RFC2045, RFC2046, RFC2047, RFC2048 et RFC2049 (dernières RFC datées de novembre 1996). Cette spécification a pour objectif : de permettre léchange sur Internet de messages dont le contenu textuel est codé avec un autre jeu de caractères que lASCII US sur 7 bits (utilisé historiquement sur le Web) ; de définir un ensemble extensible de formats binaires permettant de transporter dans ces messages tout type de contenu non textuel (audio, vidéo, HTML, etc.) ainsi que des contenus mixtes (« multipart ») ; de permettre le codage des informations den-têtes de ces messages avec un autre jeu de caractères que lASCII US. En dautres termes, cest un standard qui permet déchanger des messages multimédias sur Internet entre des systèmes informatiques hétérogènes. Fondations des services Web Les protocoles Internet

35 35 Le protocole HTTP HTTP (HyperText Transfer Protocol) est un standard Internet (Draft Standard) proposé par lIETF sous la référence RFC2616 (dernière RFC datée de juin 1999) et utilisé sur le Web depuis HTTP est un protocole application générique (couche 7), qui permet de transférer des messages au format MIME entre un client et un serveur. Il est largement utilisé par de nombreux types de clients (PC, PDA, etc.), des moyens de transport variés (depuis les réseaux sans fil jusquaux liaisons optiques transocéaniques) et sur des architectures plus ou moins complexes. Le protocole HTTP utilise un jeu de requêtes/réponses entre un client, qui initie le dialogue, et un serveur. Fondations des services Web Les protocoles Internet

36 36 La communication peut être directe entre les deux acteurs mais elle peut également faire intervenir trois types dintermédiaires, que voici : un proxy, cest-à-dire un agent qui transfère les messages vers le serveur après en avoir réécrit tout ou partie du contenu ; une passerelle, cest-à-dire un agent qui agit comme une surcouche pour un serveur sous-jacent utilisant un autre protocole ; cet agent se charge de traduire les messages pour permettre leur transfert vers ce serveur tiers ; un tunnel, cest-à-dire un relais qui se charge de transmettre le message entre deux points de connexion sans modification du message (à travers un intermédiaire tel quun pare-feu). En dehors des tunnels, tous les autres intermédiaires peuvent implémenter des fonctions de cache : il sagit de garder localement une copie de la réponse tant que celle-ci est valide et de retourner cette réponse au client sans interroger à nouveau le serveur (ce qui amène un gain de performance et de trafic réseau). Fondations des services Web Les protocoles Internet

37 37 Le protocole HTTP est à lorigine sans état, cest-à-dire quil est incapable de traiter une succession de réponses/requêtes issues du même client comme un dialogue de session : le client envoie une requête, le serveur y répond, mais il ny a pas de moyen pour communiquer entre client et serveur des informations sur le contexte du dialogue (létat de la session). Ce fonctionnement sest vite avéré problématique pour les sites Internet qui ont souvent besoin de suivre les actions dun utilisateur au sein dune session (par exemple, pour une prise de commande). Cest pour cette raison quun mécanisme de gestion détat a été ajouté au protocole dans la RFC2965 (Proposed Standard), il introduit de nouveaux en-têtes (cookies) qui permettent déchanger des données détat tout au long des échanges entre un client et un serveur. Enfin, HTTP utilise en général TCP/IP sur le port TCP 80 (par défaut), mais en théorie tout autre protocole peut être utilisé. Fondations des services Web Les protocoles Internet

38 38 Le protocole SMTP SMTP (Simple Mail Transfer Protocol) est un standard Internet (Proposed Standard) proposé par lIETF sous la référence RFC2821 (dernière RFC de avril 1996). Cette spécification a pour objectif de définir un protocole application de transfert de courrier électronique ( ) en utilisant un canal de distribution tel que TCP (mais non limité à ce canal). Sa simplicité explique sans doute sa robustesse, il est par ailleurs très largement utilisé aujourdhui pour la messagerie Internet, associé à POP ou IMAP4 : SMTP se charge du transfert des messages alors que POP (Post Office Protocol) ou IMAP (Internet Mail Access Protocol) permettent à lutilisateur de gérer sa boîte aux lettres et de récupérer ses messages. Une fonction importante de SMTP est la possibilité de transférer un message en sappuyant sur un réseau de serveurs relais et de garantir ainsi sa livraison à travers des environnements de transport différents : LAN, WAN, Internet, etc. Fondations des services Web Les protocoles Internet

39 39 Les protocoles SSL et TLS SSL (Secure Socket Layer) est un protocole qui a pour objectif dassurer la sécurité des échanges entre un client et un serveur sur le Web (authentification et chiffrement). Il a été développé par la société Netscape qui a dailleurs déposé un brevet sur cette technologie en 1997 (n° ), même si elle na jamais demandé de contrepartie financière. La version 2.0 de SSL date de 1994 (http://wp.netscape.com/eng/security/SSL_2.html) cette version est obsolète, mais elle est pourtant toujours prise en charge par les principaux navigateurs. En 1996, un groupe de travail est créé par lIETF afin de standardiser un protocole de sécurité pour remplacer SSL. Cette date coïncide avec la publication de la version 3.0 de SSL (Internet Draft disponible à qui est par ailleurs la version la plus récente de ce protocole. Fondations des services Web Les protocoles Internet

40 40 XML (eXtensible Markup Language) est un format universel qui permet de structurer et dorganiser des documents et des données sur le Web. La version 1.0 de cette recommandation a été publiée par le W3C en février 1998 et ce format est devenu depuis incontournable. Ce succès est bien sûr lié au développement dinternet mais il tient aussi en grande partie aux objectifs initiaux que le groupe de travail sétait fixé et qui tiennent en quelques mots : simple (à construire, à lire, à traiter), précis (pas dambiguïté, règles syntaxiques strictes), universel (conforme à Unicode, indépendant de la plateforme logicielle), extensible. Fondations des services Web Les technologies XML

41 41 XML est un sous-ensemble, une version simplifiée de SGML (Standard Generalized Markup Language ). Cest un langage à balises générique (markup language) : il établit les règles syntaxiques servant à marquer un document et à en dégager la structure mais il ne définit aucun jeu de balises (contrairement à HTML, par exemple). La définition de ces balises et de leur sémantique appartient au concepteur qui construit le document. Fondations des services Web Les technologies XML

42 42 Rappel des règles de base Les règles syntaxiques dXML sont simples mais strictes, ainsi, un programme qui traite un document XML doit sarrêter à la première erreur. On dit dun document XML quil est bien formé sil respecte les règles syntaxiques imposées et ainsi résumées : Un document XML doit commencer par une ligne de déclaration ne serait-ce que pour préciser la version dXML. Exemple : Les éléments qui composent un document XML doivent être encadrés par une balise ouvrante et une balise fermante. Exemple : Ceci est un paragraphe Les noms de balises sont sensibles à la casse des caractères. Exemple : Ceci est correct Ceci est incorrect Tous les éléments doivent être correctement encadrés entre eux. Exemple : Ceci est correct Ceci est incorrect Fondations des services Web Les technologies XML

43 43 Un document XML possède toujours une racine qui est définie par la première balise rencontrée dans le traitement. Tous les éléments du document sont encadrés par cette racine. Exemple : Sous élément du premier élément Second élément Les éléments peuvent être dotés dattributs. Exemple : Élément avec comme attribut monattribut de valeur mavaleur Fondations des services Web Les technologies XML

44 44 Les valeurs des attributs doivent toujours être encadrées par des quotes (simples ou doubles). Exemple : Ceci est incorrect Ceci est correct Les commentaires sont définis par la balise. On dit dun document quil est valide sil respecte une certaine description : ces descriptions sont établies par des DTD (Document Type Definition) ou des schémas (documents XML décrivant dautres documents XML), internes ou externes. Fondations des services Web Les technologies XML

45 45 XML namespaces Les espaces de noms XML ou namespaces sont une extension de la recommandation XML qui a été publiée en janvier 1999 par le W3C. À lorigine de cette extension, il y a la volonté dintroduire la modularité dans les documents XML et de permettre la réutilisation de tout ou partie des documents existants. Pour atteindre cet objectif, il est nécessaire de doter XML dun mécanisme permettant déviter toute ambiguïté de nommage (problèmes de collisions de noms déléments ou dattributs). F ondations des services Web Les technologies XML

46 46 Lattribut xmlns: Un espace de noms XML identifie une collection de noms qui sont utilisés dans un document XML par les éléments et les attributs. La déclaration dun espace de noms XML est réalisée à laide de lattribut réservé xmlns ou dun attribut spécifique précédé du préfixe xmlns: La valeur de cet attribut (une référence dURI) est le nom de lespace de noms. Par exemple : est équivalent à : et déclare lespace de noms F ondations des services Web Les technologies XML

47 47 Xlink XML Linking Language(XLink) version 1.0 est une recommandation du W3C publiée en juin Lobjectif de cette spécification est de fournir un mécanisme permettant de créer et de décrire, dans des documents XML, des liens entre des ressources. Ces liens peuvent être unidirectionnels ou des structures plus complexes. Cette recommandation est complémentaire à Xpointer, laquelle fournit un mécanisme de définition dadresses. XPointer est une spécification du W3C dont l'objectif est de permettre de désigner un fragment de document XML en ligne, c'est-à-dire lui-même désigné par une URL. La syntaxe Xlink Lusage dXlink nécessite dans un premier temps la définition de lespace de noms En général, le préfixe utilisé est xlink. Par exemple : … F ondations des services Web Les technologies XML

48 48 Cet espace de noms identifie un ensemble dattributs qui permet de définir les liens Xlink. Le principal attribut est type, qui permet de définir le type de lien. Il y a, en effet : des liens simples (type="simple") qui mettent en relation de façon unidirectionnelle une ressource locale et une ressource éloignée, ce sont typiquement les liens HTML A ou IMG ; des liens étendus (type="extended") qui utilisent pleinement les fonctionnalités de Xlink en permettant la création de liens multidirectionnels, de liens en ligne ou tiers. Cet attribut permet également de qualifier dautres éléments qui servent à la déclaration des liens étendus, comme : des ressources locales (type="resource") ; des ressources éloignées (type="locator") ; des règles de traversée (type="arc") ; F ondations des services Web Les technologies XML

49 49 La définition de ces attributs est la suivante : Lattribut de localisation href permet de définir lURI de localisation dune ressource éloignée. Les attributs sémantiques role, arcrole et title permettent de définir la signification dun lien ou dune ressource. Les attributs role et arcrole ont comme valeur des URI alors que lattribut title attend une chaîne de caractères. Lexemple suivant déclare une ressource éloignée en précisant un rôle (qui est un URI), un titre, et en la nommant MDupond. F ondations des services Web Les technologies XML

50 50 XML Base XML Base 1.0 est une recommandation du W3C publiée en juin Son objectif est de définir dans un document XML un chemin de base permettant dinterpréter de façon relative tous les URI contenus dans le document et implémentés en XLink. Lobjectif de cette spécification est équivalent à celui dHTML Base. Lattribut xml:base Le principe de fonctionnement de XML Base est simple. Il consiste à ajouter un attribut xml:base à nimporte quel noeud dun document XML. La valeur de cet attribut est un URI de base utilisé par tous les liens Xlink exprimés dans le noeud. F ondations des services Web Les technologies XML

51 51 F ondations des services Web Les technologies XML Les documents XML peuvent être représentés comme des arbres de noeuds appartenant à un des sept types suivants : le type racine, qui est utilisé pour la racine du document ; le type élément, qui est utilisé pour les éléments dun document. Le nom dun élément peut être exprimé en précisant un espace de noms ; le type texte, qui est utilisé pour les valeurs déléments données caractères (y compris ) ; le type attribut, qui est utilisé pour les attributs dun élément ; le type espace de noms, qui est utilisé pour les attributs ou éléments affectés par la déclaration dun espace de noms (attribut xmlns ou préfixé xmlns:) ; le type instruction, qui est utilisé pour les instructions XML (mis à part linstruction de déclaration XML en en-tête qui ne possède pas de noeud) ; le type commentaire, qui est utilisé pour les commentaires.

52 52 F ondations des services Web Les technologies XML Par exemple, pour le document XML suivant : Dupont Bernard 75014

53 53 Durand Paul Vincent Pierre lexpression XPath suivante sélectionne tous les noms du carnet dadresses : /carnet_adresses/adresse/nom F ondations des services Web Les technologies XML

54 54 XML Schema XML Schema 1.0 est une recommandation du W3C qui a été publiée en mai Lobjectif de cette spécification est de fournir un mécanisme de description et de validation des documents XML, équivalent à la DTD mais plus expressif, extensible et surtout utilisant lui-même une syntaxe XML et les espaces de noms. Globalement, XML Schema permet de créer un modèle de document (un schéma) qui définit : les éléments et les attributs qui peuvent apparaître dans le document ; lordre et loccurrence des éléments fils ; si un élément est vide ou sil a un contenu ; les types de données des éléments et des attributs ; les valeurs par défaut des éléments et des attributs. Fondations des services Web Les technologies XML

55 55 Description dun schéma XML Un schéma XML est dabord un document XML 1.0 bien formé et valide au regard de ses spécifications, cest-à-dire soit en utilisant le schéma des schémas, soit la DTD des schémas (respectivement dans les annexes A et G de la recommandation du W3C). Le vocabulaire (noms dattributs et déléments) est défini dans deux espaces de noms : : cet espace de noms définit la plus grande partie du vocabulaire dXML Schema. : cet espace de noms définit des attributs qui peuvent être utilisés dans tout document XML (type, null schemaLocation et noNamespaceSchemaLocation). Le schéma est un modèle qui peut être appliqué à des instances de documents XML. En général, un modèle est fait pour être réutilisé et il est préférable de le confier à un document à part plutôt que de le voir défini dans le corps du document XML auquel il sapplique. Fondations des services Web Les technologies XML

56 56 Le lien entre le document XML et le schéma est réalisé à partir des attributs xsi:schemaLocation ou xsi:noNamespaceSchemaLocation qui permettent de référencer lURL du schéma. Ce lien implique quun travail de validation devra être effectué sur linstance de document par un programme adéquat ( Les analyseurs syntaxiques XML). Un schéma XML peut être réparti dans plusieurs documents. Deux mécanismes dinclusion sont fournis :, qui permet dinclure un schéma et dutiliser telles quelles les définitions et les déclarations de ce schéma ;, qui permet non seulement dinclure un schéma mais aussi de redéfinir les types de ce schéma par restriction ou extension. Dans les deux cas, lattribut schemaLocation permet de spécifier lURL du document à inclure. De plus, ce schéma externe doit posséder le même espace de noms cible que le schéma dans lequel il est inclus. Fondations des services Web Les technologies XML

57 57 Généralités SOAP SOAP est un protocole de communication entre application basé sur le langage XML Initialement SOAP désignait lacronyme de Simple Object Access Protocol Qui est derrière SOAP (Microsoft et IBM) Objectifs visés Assurer la communication entre applications dune même entreprise (intranet) Assurer les échanges inter-entreprises entre applications et services Web Spécification du W3C SOAP 1.1 : SOAP 1.2 : Pour comparaison, SOAP est similaire aux protocoles « RPC »

58 58 Maturité XML-RPC est une technologie parfaitement mure, avec de très nombreuses implémentations (en particulier en terme de langages cibles) SOAP 1.1 est relativement mur : bon support dans les serveurs dapplications implémentation open source complète : AXIS du projet apache (http://ws.apache.org/axis/)http://ws.apache.org/axis/ SOAP 1.2 : le W3C considère que la spécification est terminée les implémentations sont en cours de réalisation certaines implémentations sont relativement complètes

59 59 Le modèle de données modèle abstrait : graphe orienté étiqueté (formalisation introduite dans 1.2) basé sur des types fondamentaux (les feuilles du graphe) et des constructeurs de type composé, struct et listes (les noeuds internes du graphe), associés à ces accesseurs (les arêtes du graphe) types fondamentaux : ceux des schémas du W3C (http://www.w3.org/TR/xmlschema-2/) entiers, réels, chaînes de caractères, binaire codé en base64, etc. dates, durée, URI, etc. types composés : énumération (une valeur parmi une liste) struct (compound) : accès nommé liste (array) : accès numéroté

60 60 Exemple dune struct shrdlu winograd maclisp teletype 010true""false "" latin1 maxResults filter restrict q start key oe ie lr

61 61 Traduction en XML SOAP définit une représentation en XML de son modèle de données (un encoding) : pour lutiliser, il faut définir lattribut env:encodingStyle et lui donner la valeur (noté enc) le modèle est facultatif : on peut utiliser une autre représentation, mais il faut que lémetteur et le récepteur la comprennent la représentation est celle des schémas du W3C, avec des extensions pour la notion de type composé elle utilise les notions dID XML et de uriReference pour implémenter des références internes, ce qui permet de réduire les volumes de données

62 62 Exemple de traduction shrdlu winograd maclisp teletype true false latin1 16 latin1 17 googleSearch-part.xml

63 63 Traduction en XML Principes de base : toute valeur est représentée comme le contenu dun élément quand la valeur correspond à un type de base, celui-ci est précisé directement ou indirectement par lélément : directement par un attribut type du NS des schémas (http://www.w3.org/1999/XMLSchema-instance, noté xsi) dont la valeur correspond à un type fondamental des schémas (dans le NS noté xsd) directement par le nom de lélément (choisit dans le NS enc) indirectement par le type du tableau (le cas échéant) exemple : maxResults de type xsd:int dans le transparent précédent

64 64 Traduction des structs Une struct est une valeur composée : un noeud du graphe sans étiquette dont partent des arcs étiquetés vers dautres valeurs les étiquettes des arcs correspondent aux champs de la structure traduction XML : un élément (sans type associé) dont le contenu est constitué déléments nommés selon les champs de la structure correspond à la représentation classique des données structurées en XML dans SOAP 1.1, on peut avoir un type composé plus général que les structs dans lequel plusieurs champs peuvent porter le même nom : cette possibilité a été supprimée dans SOAP 1.2

65 65 Exemple Fabrice Rossi nom prénom 2 8 Rossi 9 Fabrice 10 Services personne-part.xml

66 66 Traduction des listes Les tableaux de SOAP (array) sont en fait des listes (le type na pas besoin dêtre uniforme) : correspond à un noeud du graphe sans étiquette dont partent des arcs numérotés vers dautres valeurs traduction XML : un élément de type dérivé de enc:Array (ou directement lélément enc:Array) portant un attribut enc:arrayType qui précise le type des éléments et la taille du tableau (sous la forme [n]) le type xsd:ur-type peut servir de joker pour avoir des types différents pour chaque élément des sous-éléments dans lordre du tableau, avec si besoin le type pour chaque élément

67 67 Traduction des listes on peut représenter des tableaux à plusieurs dimensions (modèle ligne par ligne) on peut représenter des tableaux creux ou partiellement transmis la traduction des tableaux a été modifiée dans SOAP 1.2 (surtout au niveau syntaxique) : tableaux creux et partiels supprimés les attributs itemType et arraySize remplacent lattribut arrayType

68 68 Exemple Ordre 6 xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" 7 enc:arrayType="xsd:int[4]"> tableau-part1.xml

69 69 Exemple Bla bla bla Ordre 6 xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" 7 enc:arrayType="xsd:ur-type[4]"> Bla bla bla 12 Services tableau-part2.xml Bla bla bla Ordre

70 70 Références croisées Afin de limiter le volume des messages, SOAP utilise le mécanisme de références croisées dXML : un élément peut être identifié par un attribut de type ID et de nom id un élément peut être vide mais doit alors posséder un attribut href de type xsi:uri-reference linterprétation dun élément vide est son simple remplacement par lélément référencé par son href en SOAP 1.2, href est remplacé par enc:ref de type IDREF

71 71 Exemple 2 7 xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" 8 Services Web 9 10 Introduction Rossi 13 Fabrice SOAP reference-part.xml

72 72 Exemple Services Web Introduction Rossi Fabrice SOAP sujet titre auteur nom prénom


Télécharger ppt "1 Web service Said najah. 2 Deuxième partie : Technologies des services Web."

Présentations similaires


Annonces Google