Introduction aux Web Services
- Définir le rôle des Web Services et l'intérêt de leur utilisation.
- Rappel sur le contexte des architectures n-tiers, applications et composants distribués.
- Approche Web Services, qu'est-ce qu'un Web Service ? Objectif, principe.
- Web Services et EAI, A2A, B2C, B2B.
- Principales technologies des Web Services (REST, SOAP, WSDL, UDDI).
- Architecture orientée service (SOA).
- Le rôle de XML et de la plateforme Java.
- Exemples mettant en oeuvre des Web Services.
Exercice
Exemples d'applications, comment invoquer un Web Service ?.
Rappel sur XML et les API Java
- Place du XML par rapport aux Web Services.
- Les langages à balises, domaines d'application de XML, le concept de document, objectifs.
- Echange de données, XML et SOAP.
- Besoins pour la création de requêtes SOAP et la manipulation des réponses.
- Les modèles de données : XML Schema.
- Les parseurs XML (API SAX et DOM) et autres API.
Travaux pratiques
Manipuler des données XML via les API SAX, DOM et JAXB. Traiter les informations XML échangées via le protocole SOAP.
Web Services SOAP/WSDL et REST
- Description du protocole SOAP.
- De XML à SOAP, anatomie d'un message SOAP, enveloppe SOAP.
- Gestion des erreurs avec SOAP Fault.
- Transmission de contenus binaires MTOM.
- Le langage de description des Web Services, WSDL (Web Services Description Language).
- Référencement de Web Services, les solutions : UDDI, WS-Inspection, solutions de gouvernance OSS (Mule Galaxy)...
- Utilisation, architecture, rôle pour les services Web, publication et localisation, sécurité.
- Principes de REST, comment les mettre en oeuvre ?.
Travaux pratiques
Envoi de requêtes SOAP. Interprétation des réponses. Déploiement d'un Web Service.
Le langage de description des Web Services
- Comprendre comment décrire un Web Service en XML.
- Introduction à WSDL. Anatomie d'un document WSDL.
- WSDL et Java.
Travaux pratiques
Créer un fichier WSDL décrivant un Web Service.
Mise en place des Web Services avec SOAP/WSDL et REST
- Les outils de programmation pour la création et l'utilisation de Web Services.
- Construire des Web Services et des clients avec JAX-WS. Types supportés par JAX-WS et JAX-RS.
- Outils wsgen.
- Projet Open Source SOAP du groupe Apache.
- Utilisation de SOAP dans des contextes RPC.
- Les Web Services depuis des terminaux mobiles. Possibilités et restrictions.
Travaux pratiques
Programmation de Web Services de type échange SOAP/WSDL et REST. Utilisation des API Java JAX-WS et JAX-RS.
Publication et recherche de Web Services
- Le rôle des annuaires dans les applications mettant en oeuvre des Web Services. Rôle et limites d'UDDI.
- La différence entre annuaires runtime et annuaires design-time.
- Mettre à disposition des Web Services via des annuaires UDDI.
- Programmation UDDI, structure de données UDDI.
- Vue d'ensemble et architecture de JAXR.
- Création et exécution d'un client JAXR, accès au registre, interrogation, gestion des données.
- Utilisation de descriptions WSDL avec UDDI.
Travaux pratiques
Publication d'un fichier d'un Web Service sur un annuaire UDDI. Recherche de Web Services.
Projets CXF, JAX-WS RI et Axis
- Les mécanismes des principales boîtes à outils de nouvelle génération SOAP.
- Architecture et composants des projets, CXF, JAX-WS RI et Axis.
- Installation, configuration, déploiement de services SOAP/WSDL.
- Consommer et publier des Web Services, correspondance données XML/Java.
- Utilisation des annotations spécifiques à JAX-WS (JSR 224) et des annotations pour le mapping Java/XML.
- Au moyen de Java : obtention du WSDL d'un service déployé et construction d'un WSDL.
- Outils : TCPMon, SOAP Monitor, SOAP UI version OSS.
Travaux pratiques
Mise en place d'une solution complète de communication entre applications avec SOAP/WSDL grâce à une de ces implémentations.
Projet Jersey pour les services REST
- Les mécanismes de mapping entre Java et le monde REST.
- Architecture et composants du projet Jersey.
- Installation, configuration, déploiement de services REST.
- Consommer et publier des Web Services REST.
- Utilisation des annotations spécifiques à JAX-RS (JSR 311) et des annotations pour le mapping Java/XML.
- Comment utiliser JAX-RS et Jersey pour publier des Services REST ? Implémentations alternatives à Jersey (Restlet...).
- Outils : TCPMon, SOAP Monitor, SOAP UI version OSS.
Travaux pratiques
Mise en place d'une solution complète de communication entre applications avec une philosophie REST grâce à Jersey.
Sécurisation des services Web
- Authentification, autorisation, cryptage.
- Signatures digitales XML, cryptage XML des informations, toolkit Java, gestion des clés.
- Authentification personnalisée : les en-têtes SOAP.
- Extension de sécurité SOAP.
- Web Services Security Specifications (WS-Security).
Travaux pratiques
Sécurisation de l'application globale.