1 Les services Web Jeremy Fierstone Email : fierston@essi.fr SAR5 – Novembre 20

1 Les services Web Jeremy Fierstone Email : fierston@essi.fr SAR5 – Novembre 2002 Merci à Mireille Blay-Fornarino, Didier Donsez Michel Riveill, Microsoft, Sun … pour leurs slides 2 Les services Web  Généralités  Architecture  SOAP  WSDL  UDDI  Implémentations  Les APIs Java (JAXP, JAX-RPC, JAXM, JAXR, JAXB)  Implémentation avec JAX-RPC  Apache SOAP, Apache Axis  Conclusion 3 Les services Web Généralités 4  Un service Web est une « unité logique applicative » accessible en utilisant les protocoles standard 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.  Combine les meilleurs aspects du développement à base de composants et du Web. Un Service Web, c’est quoi ? 5  Caractéristiques:  Réutilisable  Indépendamment de  la plate-forme (UNIX, Windows, …)  l’implémentation (VB, C#, Java, …)  l’architecture sous-jacente (.NET, J2EE, Axis…) Un Service Web, c’est quoi ? 6 Evolution du Web Generation 1 Static HTML HTML Generation 2 Web Applications HTML HTML, XML HTML, XML Generation 3 Web Services 7 Exemple 8 Le Web 3ème génération File DB “Dynamic Pages” Browser Web Server In-house In-house systems systems “The Firewall” Web site Web site Web site Aujourd’hui Un site Web fournie des pages HTML - pas de structure - impossible à fusionner avec d’autres pages Demain Un site Web est un composant fournissant des services en XML - structure / sémantique - fusion possible Web service Web service Web service 9 Pourquoi faire ?  Les services Web permettent d’interconnecter :  Différentes entreprises  Différents matériels  Différentes applications  Différents clients  Pas uniquement des butineurs  Distribuer et intégrer des logiques métiers  Vers le Web sémantique  Pas uniquement le Web purement interactif  Les services Web sont faiblement couplés 10 Web Web Site Site Service Service Web Web Modèle client / serveur Service Service Web Web XML XML HTML HTML Client Client XML XML Client Client XML XML Service Service Web Web XML XML Service Service Web Web XML XML XML XML 11 Quels objectifs ?  Remplacer les protocoles actuels (RPC,DCOM,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).  Dédiés aux applications B2B (Business to Business), EAI (Enterprise Application Integration), P2P (Peer to Peer). 12 Et plus concrètement ?  Une nouvelle technologie des objets distribués ?  Invocation distante des services Web : SOAP (~IIOP)  Description des services Web : WSDL (~IDL)  Enregistrement et découverte de services Web : UDDI (~NameService)  Basés sur des standards XML  Standards du W3C : XML, SOAP, WSDL  Standards industriels : UDDI, ebXML  Propriétaires : DISCO, WSDD, WSFL, ASMX, …  Implémentations actuelles :  Microsoft .Net  Sun JavaONE : J2EE + Web services (WSDP = JAXP,JAX-RPC,JAXM…)  Apache SOAP / Axis, IBM WSTK  Oracle, Bea, Iona, Enhydra … 13 Les services Web Architecture 14 Annuaire UDDI Client XML 5 : J’ai compris comment invoquer 5 : J’ai compris comment invoquer ton service et je t’envoie un document ton service et je t’envoie un document XML représentant ma requête XML représentant ma requête Serveur 2 : J’ai trouvé! Voici le serveur 2 : J’ai trouvé! Voici le serveur hébergeant ce service web hébergeant ce service web 3 : Quel est le format d’appel du 3 : Quel est le format d’appel du service que tu proposes? service que tu proposes? Contrat SOAP 4 : Voici mon contrat (WSDL) 4 : Voici mon contrat (WSDL) XML XML 6 : J’ai exécuté ta requête et je te retourne le résultat 6 : J’ai exécuté ta requête et je te retourne le résultat 1 : Je recherche 1 : Je recherche un service WEB un service WEB Cycle de vie d’utilisation 15 Cycle de vie complet  Etape 1 : Déploiement du service Web  Dépendant de la plate-forme (Apache : WSDD)  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 16 1: Déploiement du WS 17 2: Enregistrement du WS 18 3: Découverte du WS 19 4: Invocation du WS 20 Architecture globale 21 Les services Web SOAP : Simple Object Access Protocol Merci à Michel Riveill et Didier Donsez 22 Le Web et le client serveur  Proposition Web actuelle insuffisante  Autres plates-formes client / serveur  Java RMI  mono-langage : Java, multi-plateforme (JVM), SUN  Pas réaliste pour une application industrielle (performance, sécurité, …)  CORBA / IIOP  Multilangage, multi-plateforme, Multi-vendeurs, OMG  Installation « coûteuse » si on doit acheter un ORB  Mais les open-sources sont gratuits et souvent plus complet  www.objectweb.org  DCOM  multi-langages, plateforme Win32, Propriétaire Microsoft  protocole orienté connexion  Échange de nombreux paquets pour créer/maintenir une session  Faible diffusion  Pas disponible sur MacOS, NT3.51, Win95, WinCE2  Coûteux sur UNIX, MVS, VMS ou NT 23 Le bilan…  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 version de CoRBA peuvent ouvrir un port sur un pare- feu comme le port 80 d’HTTP 24 … et ses conséquences  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 « firewalls »  ATTENTION : on perd le contrôle d’accès à faible granularité  Avec une spécification non propriétaire garantie par un organisme indépendant  W3C  La réponse : SOAP (Simple Object Access Protocol) 25 La philosophie S.O.A.P  SOAP codifie simplement une pratique existante  Utilisation conjointe de XML et HTTP  SOAP est un protocole minimal pour appeler des méthodes sur des serveurs, services, composants, objets  Ne pas imposer une API ou un runtime  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  Plusieurs modèles peuvent être utilisés conjointement  Et “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  Vous pouvez écrire votre 1er appel SOAP en moins d’une heure !!  Il vous a fallu combien de temps en CORBA, RMI, DCOM ? 26 Les 3 aspects d’un appel SOAP  SOAP peut être vu comme un autre RPC Objets  Les requêtes contiennent les paramètres IN et INOUT  Les réponses contiennent les paramètres INOUT et OUT  SOAP peut être vu comme un protocole d’échange de “message”  La requête contient un seul message (appel sérialisé d’une méthode sur un objet)  La réponse contient un seul message (retour sérialisé d’un appel de méthode sur un objet)  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 27 En résumé  SOAP = HTTP + XML Serveur HTTP Station requêtes SOAP (XML) Client HTTP Serveur ISAPI CGI Application partie -cliente Browser client universel Réponses SOAP (XML) Application partie-serveur ASP Servlets 28 Pourquoi utiliser HTTP ?  HTTP (HyperText Transfer Protocol) est devenu de facto le protocole de communication de l’Internet  HTTP est disponible sur toutes les plates-formes – très rapidement  HTTP est un protocole simple, qui ne requière que peu de support pour fonctionner correctement  HTTP est un protocole sans connexion  Peu de paquets sont nécessaires pour échanger des informations  HTTP offre un niveau de sécurité simple et effectif  HTTP est le seul protocole utilisable à travers des pare-feu 29 Fonctionnement d’HTTP  HTTP utilise un protocole requête/réponse basé sur du texte  La première ligne de la requête contient 3 éléments  Verbe : POST/GET/HEAD  URI : /default.htm  Protocole : HTTP/1.0 - HTTP/1.1  La première ligne de la réponse contient 2 éléments  État : 200, 402  Phrase : OK, Unauthorized  Les lignes suivantes contiennent un nombre arbitraire d’entête  Le “contenu” suit une ligne d’entête vide  Utilisé essentiellement pour les réponses et pour les requêtes POST 30 Fonctionnement d’HTTP GET /bar/foo.txt HTTP/1.1 200 OK Content-Type: text/plain Content-Length: 12 Hello, World POST /bar/foo.cgi HTTP/1.1 Content-Type: uploads/s1/ cours-services-web-fabrice-mourlin.pdf

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