Web services par Philippe Poulard 0 [email protected] © Philippe Poulard Sommaire par Philippe Poulard •Qu ’est-ce ? Web services •Middleware XML •Web Services in situ •Couches de services •Architecture des Web Services avec Java •JAX-RPC •JAXR •JAXM •Outils 1 Présentation par Philippe Poulard Navigateur : interface utilisateur universelle Multi-tier model : Web services navigateur HTTP Web serveur requête Web avec interface Homme/Machine SGBD réponse HTML Client Application Quels protocoles utiliser pour reproduire le BtoC au BtoB ? Web pour programmes Web serveur HTTP Web serveur requête Une DTD peut faire office de "contrat" réponse Client 2 Backend systems XML Application Middleware XML par Philippe Poulard Web services CORBA DCOM Couplage fort Dépendant d'un langage de programmation Dépendant d'un système d'exploitation Non communément adoptés par les éditeurs Technologies émergentes : SOAP et Web services XML Couplage faible Indépendant des langages et des OS Suivit par tous les éditeurs (Microsoft, Sun, Oracle, IBM…) Web services : XML - HTTP - SOAP 3 Web services in situ par Philippe Poulard Web services Web services (Informatique distribuée) •Protocole léger (http) •non connecté •publication/localisation des services Web Évolution des technologies Client/Serveur Client léger Services Web SOAP : structure des messages en XML WSDL : description des services (méthodes et paramètres des composants) Les services sont invocables par des messages SOAP Finalité : interopérabilité des systèmes ET des données BtoB 4 BtoC BtoE par Philippe Poulard Couches des Web services Couches de base Web services Web Services Protocoles relatifs à la sécurité et à la gestion des transactions Couches de base : •Echange: comment échanger les messages entre les Web Services ? → SOAP, DIME •Découverte: comment identifier et localiser les Web Services ? → ebXML, UDDI •Description: comment exposer les fonctions des Web Services ? → WSDL Exemple : la Fnac exploite les services Web pour dialoguer avec ses fournisseurs en billetterie 5 Web services et architecture Java par Philippe Poulard Web services XML est intégré aux éditions standards et entreprise (J2EE) des plates-forme Java Orienté document : •JAXP Java API for XML Processing Orienté procédure : •JAXM Java API for XML Messaging •JAXR Java API for XML Registries •JAX-RPC Java API for XML RPC Application SOAP HTTP 6 Protocoles Web services JAX-RPC par Philippe Poulard Web services RPC (Remote Procedure Call) •Java IDL : basé sur CORBA utilise l'IDL (Interface Definition Language) de l'OMG •RMI : basé sur RPC avec Java / RMI-IIOP (Remote Method Invocation over Internet Inter-ORB Protocol) •JAX-RPC : basé sur SOAP et adapté aux services Web 7 Une collection de procédures qui peuvent être appelées par un client distant sur internet Qu'est-ce que : un service Web basé sur RPC ? Application serveur déployée dans un container (côté serveur) qui implémente les procédures Avantages de JAX-RPC : •intéropérabilité •les utilisateurs de JAX-RPC ne s'occupent pas de la "plomberie" •principale API client/serveur de services Web Consommateur Java Non-Java Java S O A P Service Non-Java Java Java JAX-RPC Web services par Philippe Poulard Objet local qui représente le service distant Program Service Stub Tie JAX-RPC Runtime SOAP message HTTP 8 Couche à développer Couche générée à partir de WSDL Couche de JAX-RPC l'implémentation de Runtime référence JAXM par Philippe Poulard Transmission de documents XML sur internet Web services •Basé sur SOAP 1.1 et SOAP avec la spécification d'attachement •Peut être étendu à des tâches qui intègrent des protocoles de messagerie de haut niveau tel que ebXML transport, routage et packaging, qui reposent sur SOAP Messaging provider Recipient Recipient Fonctionnalités JAXM (non disponibles avec RPC) •Asynchronisme possible •Routage multiple •Haute qualité de service messagerie (comme la garantie de délivrance) Message JAXM Partie SOAP Attachement optionnel 9 Recipient SOAPHeader SOAPEnvelope SOAPBody ebXML Profil permettant un usage spécifique JAXM par Philippe Poulard Request-Response messaging Web services JAXM Client Request Request Web service JAXM Client Response Request Response Synchrone One-way message JAXM Client Messaging provider One-way message Container J2EE Asynchrone 10 Response Messaging provider JAXR par Philippe Poulard Fournit des accès standard à des business registries à travers internet Web services Les business registries sont comme des pages jaunes : on y trouve des listes d'activités et les produits ou services que chaque activité peut offrir JAXR Les business registries sont basés sur des : •standards ouverts : ebXML •spécifications de consortium industriels : UDDI JAXR JAXM 11 ebXML UDDI Outil par Philippe Poulard Tutorial : Web services JWSDP : Java Web Service Developer Pack 12 •Tomcat •Ant •Tutoriaux http://java.sun.com