Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader
Plan Introduction Metro ? Architecture JAX-WS WSIT
Introduction Les services Web sont des applications qui utilisent des standards basés sur XML et des protocoles de transport pour échanger des données avec les clients. Les services web sont développés en utilisant les APIs Java et les outils fournis par un Web Services Stack intégré appelé Metro. Le Metro Stack, composé de JAX-WS, JAXB et WSIT, permet de créer et de déployer des services web et des clients sécurisées, fiables, transactionnels et interopérables.
METRO ? Metro est un « guichet unique » pour tous vos besoins en développement de services Web.
Metro ? Java Web Services Stack Fait partie du projet GlassFish Qualité de la production Haute Performance Interoperabilité
METRO = JAX-WS RI + WSIT (Tango) JAX-WS RI –Met en œuvre Java API for XML Web Services (JAX- WS). –Fournit un support de Core Web Services. –Architecture extensible et pluggable. WSIT –Web Services Interoperability Technology. –Fournit un support de Quality of Service (QoS) Sécurité, Fiabilité, Transactions. –Implémentation des spécifications WS-*.
Architecture
JAX-WS L’acronyme Java API for XML Web Services. A la fois un standard et une implémentation. La version courante est JAX-WS 2.0, précédemment JAX-WS s’appelait JAX-RPC. JAX-WS s’appuie sur un ensemble de JSR –JSR 224 : JAX-WS –JSR 181 : Web Services Metadata –JSR 222 : JAXB (pour la liaison des données) –JSR 250 : Common Annotations L’implémentation JAX-WS est intégrée nativement à la JRE depuis la version 6.
JAX-WS
Le développement de services web avec JAX- WS est basé sur des POJO –Utilisation d’annotations Java. –Aucun fichier de déploiement n’est requis. Les fonctionnalités avancées nécessitent d’utiliser une API. JAX-WS permet d’assurer l’indépendance du protocole (SOAP) et du transport (HTTP).
JAX-WS 2 façons pour développer un Service Web avec JAX-WS: Approche Top / Down (a partir d’un WSDL) –Génération des différentes classes Java (JAXB et squelette du Web Service) en utilisant l’outil wsimport. –Compléter le squelette de classe de l’implémentation. –Compiler, déployer et tester. Approche Bottom / Up (a partir d’un POJO) –Créer et annoter un POJO. –Compiler, déployer et tester. –Le document WSDL est automatiquement généré.
Approche Bottom / Up
Consiste a démarrer le développement a partir d’un POJO Ajouter Déployer l’application sur un serveur d’application Le document WSDL est généré automatiquement en respectant les valeurs par défauts Toutes les méthodes du POJO sont des opérations du Web Service
Exemple : Paramétrer le Service Web HelloWord
Approche Bottom / Up Un Service Web est déployé dans une application web Différentes catégories de serveurs d’application pour gérer les Services Web avec JAX-WS Conteneur respectant JSR 109(Implementing Entreprise Web Services) La gestion du service Web est transparente et maintenue par le serveur d’application(ex: Glassfish) Conteneur nécessitant une gestion par Servlet nécessite une configuration explicite du Service Web(ex: Tomcat)
Approche Top / Down
Consiste a démarrer le développement a partir d’un WSDL Le document WSDL est accessible via une URL ou via un fichier physique Utilisation explicite de wsimport pour la génération du squelette du Service Web( classes liés a JAXB, interfaces WS décrivant le PortType) Création d’un POJO en précisant l’emplacement de l’interface du portType. Déployer l’application sur un serveur d’application Le reste du processus de développement est identique à celui de l’approche Bottom / Up
Exemple : Developper le service web Notebook a partir du document WSDL
WSIT Web Service Interoperability Technology Objectif Intéropérabilité avec Microsoft Windows Communication Foundation. Implémentation des spécifications WS-*.
WSIT Web Service Interoperability Technology Spécifications WS-* : WS-Trust WS-SecureConversation WS-SecurityPolicy WS-ReliableMessaging WS-AtomicTransactions
WSIT
Fonctionnalités WSIT End-to-end Reliabilty Sécurité des communications Transactions atomiques Optimisation des communications
Metro WSIT : Reliable Messaging Communication sans Reliable Messaging Le message peut être perdu.
Metro WSIT : Reliable Messaging Communication avec Reliable Messaging
Metro WSIT : Reliable Messaging End-to-End Reliability WS-Reliable Messaging Ajouter la fiabilité au protocole SOAP Transparent pour l’application Récupérer les messages perdus Assurance de la réception des messages
Configuration avec Netbeans
METRO WSIT : Sécurité WS-Security offre : Le cryptage et la signature des messages Signature et cryptage XML dans la partie SOAP Header. Envoi de « Token » de sécurité (Token = identifiant de la source du message) Token englobe : Username / Password Certificat X.509 Protocole : SAML
METRO WSIT : Sécurité Avant WS-Security Sécurité à la couche transport Point-to-Point Signature/Cryptage XML Communication avec intermédiaires WS-Security
METRO WSIT : Transaction Web Services Transaction : Atomic Transaction Utilisé dans le Framework de coordination décrit dans WS-Coordination Mapping entre les attributs de transaction Java EE et WS-AT( Atomic transaction) statements
Comment créer des web services transacionnels Méthode 1 : Utiliser les annotations : Stateless EJB + Container Managed Transaction + Annotations Génération du WSDL + WS-AT Policy (Atomic Transaction) Méthode 2 : Modifier le WSDL Utilisation des assertions WS-AT pour les opérations transactionnelles.
Web services Transactionnels : Méthode 1
Web services Transactionnels : Méthode 2
Configuration avec Netbeans
Conclusion Metro : Intégré à Glassfish JAX-WS Utilisation facile WSIT Metro interopérable avec les spécifications WS-* Interopérabilité avec les clients MS.Net Pas de nouveaux APIs Plugin Netbeans facilite l’utilisation
Merci pour votre attention