Applications Réparties : Les Services Web 1 1 Les Services Web 03/08/2022 2 Pl

Applications Réparties : Les Services Web 1 1 Les Services Web 03/08/2022 2 Plan du cours complet: – Généralités – Architecture – Zoom sur les Technologies: SOAP WSDL UDDI – Limitations des Services Web « classiques » – Conclusion Les Services Web Généralités 03/08/2022 3 Evolution du Web 03/08/2022 4 HTML Generation 1 Static HTML Generation 2 Web Applications HTML HTML XML HTML XML Generation 3 Web Services Un Service Web, c’est quoi ? 03/08/2022 5 Un service Web est : – une « unité logique applicative » accessible en utilisant les protocoles standards d’Internet – Une «librairie» fournissant des données et des services à d’autres applications – Un objet métier qui peut être déployé et combiné sur Internet avec une faible dépendance vis-à-vis des technologies et des protocoles – Une combinaison des meilleurs aspects du développement à base de composants et du Web Caractéristiques – Réutilisable – Indépendamment de la plate-forme (UNIX, Windows, …) du langage pour l’implémentation (VB, C#, Java, …) la plate-forme de développement sous-jacente (.NET, J2EE, Axis…) Pour quoi faire ? 03/08/2022 6 Les Services Web permettent d’interconnecter : – Différentes entreprises – Différentes applications – Différents clients – Différents matériels Utilisé dans différents cadres: – B2B (Business To Business) – EAI (Enterprise Application Integration) – EAI (Enterprise Application Integration) – … Services Web et Interopérabilité 03/08/2022 7 Plateform independent :A l’instar de Corba, les Services Web gèrent l’interopérabilité au niveau du protocole d’échange Plateform dependent: d’autres approches gèrent l’interopérabilité par le portage de la plate-forme d’exécution (ex. OSGi, RMI sur Java et historiquement COM/DCOM) Quels objectifs ? 03/08/2022 8 Remplacer les outils (RPC, DCOM, CORBA, RMI) par une approche entièrement ouverte et interopérable, basée sur la généralisation des serveurs Web avec scripts CGI. Faire interagir des composants hétérogènes, distants, et indépendants avec un protocole standard (SOAP). Passer les politiques de sécurité grâce en grande partie à une couche session basée sur HTTP (port 80). Et plus concrètement ? 03/08/2022 9 Une nouvelle technologie des objets distribués ? – Invocation distante des services Web : SOAP – Description des services Web : WSDL – Enregistrement et découverte de services Web : UDDI Basés sur des standards – Standards du W3C : XML, SOAP , WSDL – Standards industriels : UDDI, ebXML Implémentations actuelles : – Microsoft .Net – Sun JavaONE : J2EE + Web services (WSDP = JAXP , JAX-RPC, JAXM…) – Apache SOAP / Axis, IBM WSTK – Oracle, Bea, Iona, Enhydra … Les Services Web Architecture 03/08/2022 10 Cycle de Vie 03/08/2022 11 Etape 1 : Déploiement du service Web – Dépendant de la plate-forme Etape 2 : Enregistrement du service Web – WSDL : description du service – Référentiels : DISCO (local), UDDI (global) Etape 3 : Découverte du service Web Etape 4 : Invocation du service Web par le client Déploiement du Service Web Source: Didier Donse 03/08/2022 12 Enregistrement du Service Web 03/08/2022 13 Source: Didier Donse Découverte du Service Web Source: Didier Donse 03/08/2022 14 Invocation du Service Web Source: Didier Donse 03/08/2022 15 Protocoles des Services Web Source: M. Pontacq 03/08/2022 16 SOAP Simple Object Access Protocol 03/08/2022 17 Le Web et le Client/Serveur 03/08/2022 18 Proposition Web insuffisante pour faire des applications Autres plates-formes Client/Serveur – Java RMI mono-langage : Java, multi-plateforme (JVM), SUN Difficile pour une application industrielle (performance, sécurité, …) – CORBA / IIOP Norme définie par l’OMG Multilangage, multi-plateforme, Multi-vendeurs Installation « coûteuse » si on doit acheter un ORB – Mais les open-sources sont gratuits et souvent plus complets • www.objectweb.org – DCOM multi-langages, plateforme Win32, Propriétaire Microsoft Faible diffusion – Pas disponible sur MacOS, NT3.51, Win95, WinCE2 – Coûteux sur UNIX, MVS, VMS ou NT Le bilan… 03/08/2022 19 Approche insatisfaisante : – Protocoles sophistiqués Coût d’installation (faite par un administrateur, consomme des ressources : machines, personnels, …) Difficile à porter sur d’autres plates-formes – Règles de fonctionnement strictes en environnement ouvert (le Net) Environnement sécurisé (intérieur d’un intranet) Incapacité à fonctionner en présence de pare-feu (utilisation impossible sur Internet) – Les nouvelles versions de CORBA peuvent ouvrir un port sur un pare- feu comme le port 80 d’HTTP …et ses conséquences 03/08/2022 20 Le Web a besoin d’un nouveau protocole – Multi-langages, multi-plateformes – Respectant les formats d’échanges du Web Réponses et requêtes en XML – Facile à implémenter sur différents protocoles de transport RPC, HTTP ou autre MOM – Permettant de franchir les politiques de sécurité (firewalls et proxies) – Avec une spécification non propriétaire garantie par un organisme indépendant W3C La réponse : SOAP (Simple Object Access Protocol) La philosophie SOAP 03/08/2022 21 SOAP codifie simplement une partie existante – Utilisation conjointe de XML et HTTP SOAP est un protocole minimal pour appeler les méthodes sur des serveurs, services, composants, objets – Ne pas imposer une API ou un Run-Time – Ne pas imposer l’utilisation d’un ORB (CORBA, DCOM, …) ou d’un serveur WEB particulier (Apache, IIS, …) – Ne pas imposer un modèle de programmation – Ne pas réinventer une nouvelle technologie SOAP a été construit pour pouvoir être aisément porté sur toutes les plates-formes et les technologies Les 3 aspects d’un appel SOAP 03/08/2022 22 SOAP peut être vu comme un autre RPC Objects – Les requêtes contiennent des paramètres IN et INOUT – Les réponses contiennent des paramètres INOUT et OUT SOAP peut être vu comme un protocole d’échange de messages – La requête contient un seul message – La réponse contient un seul message SOAP peut être vu comme un format d’échange de documents – La requête contient un document XML – Le serveur retourne une version transformée Ces vues ne sont pas imposées par le protocole En résumé 03/08/2022 23 SOAP = HTTP + XML Station Browser Universel Partie Cliente de l’application Client HTTP Serveur HTTP Partie Serveur de l’application CGI Servlets ASP ISAPI Requête SOAP (XML) Réponse SOAP (XML) Pourquoi utiliser HTTP ? 03/08/2022 24 HTTP – est devenu de facto le protocole de communication d’Internet – est disponible sur toutes les plateformes – est un protocole simple, qui ne requiert que peu de support pour fonctionner correctement – passe de manière standard à travers les politiques de sécurité (firewalls et proxies) Pourquoi utiliser XML ? 03/08/2022 25 Utilise du texte (peut être lu et écrit directement) – Attention : le texte est globalement peu lisible et vite complexe pour un humain Construire correctement du texte XML est simple XML est aujourd’hui adopté par tous les acteurs d’Internet : plateformes, éditeurs, etc. XML permet aujourd’hui de typer et de structurer les informations – L’information peut être sauvegardée n’importe où sur le Net – Les données fournies par de multiples sources peuvent être agrégées en une seule unité – Chaque partie a sa propre structure XML – Chaque partie peut définir des types spécifiques La structure des messages SOAP 03/08/2022 26 SOAP message HTTP headers SOAP Envelope SOAP header headers SOAP body method call & data Message complet Entête standard HTTP et entête SOAP HTTP Enveloppe Entête Entête individuelle Corps contenant les appels de méthodes SOAP Appel de méthode et description en XML des données Exemple de requête SOAP utilisant HTTP 03/08/2022 27 Demande de cotation à un serveur : POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset=‘’utf-8’’ Content-Length: nnnn SOAP-Action: ‘’Some-URI’’ <SOAP-ENV:Envelope xmlns:SOAP-ENV=‘’http://schemas.xmlsoap.org/soap/enveloppe/’’ SOAP-ENV:encodingStyle=‘’http://schemas.xmlsoap.org/soap/encoding/’’> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m=‘’Some-URI’’> <symbol>DIS</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Exemple de réponse SOAP utilisant HTTP 03/08/2022 28 Réponse du serveur HTTP/1.1 200 OK Content-Type: text/xml; charset=‘’utf-8’’ Content-Length: nnnn <SOAP-ENV:Envelope xmlns:SOAP-ENV=‘’http://schemas.xmlsoap.org/soap/envelope/’’ SOAP-ENV:encodingStyle=‘’http://schemas.xmlsoap.org/soap/encoding/’’> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m=‘’Some-URI’’> <Price>34.5</Price> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Modèle de message 03/08/2022 29 SOAP permet une communication par message – d’un expéditeur vers un récepteur Structure d’un message – Envelope (enveloppe) Elément racine Namespace : SOAP-ENV http://schemas.xmlsoap.org/soap/envelope/ – Header (entête) Elément optionnel Contient des entrées non applicatives (transactions, session, …) – Body (corps) Contient les entrées du message – Nom d’une procédure, valeur des paramètres, valeur de retour Peut contenir les éléments « fault » (erreurs) Entête d’un message: Header 03/08/2022 30 Contient des entrées non applicatives – Transactions, sessions, … L’attribut mustUnderstand – Si absent ou =0 l’élément est optionnel pour l’application réceptrice – si =1, l’élément doit être compris par l’application réceptrice sinon le traitement du message par le récepteur doit échouer Exemple <SOAP-ENV:Header> <t:Transaction xmlns:t=‘’Some-URI’’ SOAP-ENV:mustUnderstand=‘’1’’> </t:Transaction> </SOAP-ENV:Header> Corps d’un message 03/08/2022 31 Contient des entrées applicatives Encodage des entrées Namespace pour l’encodage – SOAP-ENC http://schemas.xmlsoap.org/soap/encoding/ – XSD : XML Schema Principe des règles d’encodage – Les règles d’encodage définissent un système de type SOAP utilise les conventions XSD Les tableaux et les références sont typés de manière spécifique en utilisant XSD Règles d’Encodage 03/08/2022 32 Types Primitifs 03/08/2022 33 Types primitifs <element name=“age” type=“int/> <element name=‘’price’’ type=‘’float’’/> <element name=“displacement” type=“negativeInteger”/> <element name=‘’greeting’’ id=“#id1” type=‘’xsd:string’’/> Utilisation / Instance <age>45</age> <price>15.57</price> <displacement>-450</displacement) <greeting>Hello</greeting> Enumération 03/08/2022 34 Enumération <element name=‘’color’’> <simpleType base=‘’xsd:string’’> <enumeration value=‘’green’’/> <enumeration value=‘’blue’’/> </simpleType> </element> Utilisation / Instance <color>blue</color> Références 03/08/2022 35 Références <element name=‘’salutation’’ type=‘’xsd:string’’\> <salutation href=‘’#id1’’/> <e:book> <title>My life and work</title> <author href=‘’#Person-1’’/> </e:book> Utilisation <e:Person id=‘’Person-1’’/> <name>Henry Ford</name> <address xsi:type=‘’m:Electronic-address’’/> <email>mailto:henryford@hotmail.com</email> <web>http://www.henryford.com</web> </address> </e:Person> Types uploads/s1/03-web-services.pdf

  • 29
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jan 03, 2023
  • Catégorie Administration
  • Langue French
  • Taille du fichier 0.8718MB