Comprenez le contexte d’apparition des services web ainsi que leurs architecture. Comprenez le role des standards WSDL, SOAP, UDDI dans la cinématique des échanges entre un client de service web et le service web. Identifiez également les problématiques d’interopérabilité et de gouvernance. Découvrez les stratégies offertes par l’API JAX-WS pour créer ou utiliser un service web. Identifiez enfin quelques implémentations de cette API.
Liens utiles
+ de 100 tutoriaux java/jee Objis
Tutoriel et formation Web Services
Objis, spécialiste formation java depuis 2005
Catalogue formations Objis
(PDF) brochure Objis 2010
Liste spécifications Web Services
Formation Architecture Java
Soyez prêt pour des projets ambitieux : formation architecture Java Objis
Programme
Partie 1 : architecture
Partie 2 : standards ouverts
Partie 3 : interopérabilité
Partie 4 : gouvernance
Partie 5 : API Java d’accès à un service web
Partie 6 : implémentations
Contexte d’apparition
Besoins
Communiquer entre applications distribuées
Tenir compte des plateformes hétérogènes (matériel, logiciel, OS)
Limiter l’ouverture de ports dans le système d’information
Utiliser des standards ouverts et non solutions propriétaires des éditeurs
Solution web service
XML au dessus de HTTP !
Partie 1 : Architecture
Un service web est une collection de endpoints.
WSDL est le format XML décrivant le endpoint.
UDDI est un annuaire de publication des services web.
SOAP permet un échange de données (requête/réponse) entre un client de web service et un web service.
Grâce aux standards, les langages utilisés par l’application cliente ou le web services sont transparents.
Partie 2 : standards ouverts
INFO : le standard UDDI permettant d’avoir un annuaire ‘mondial’ de web service n’a pas fonctionné (malgré tentatives de SAP, Microsoft). UDDI est aujourd’hui plus utilisé en interne dans certains Systèmes d’information de l’entreprise via des implémentations comme jUDDI.
Partie 3 : interopérabilité
Connaître le WS-I
Créée en 2000 par des acteurs majeurs de l’industrie informatique (IBM, Microsoft, BEA, HP, Intel…), le consortium WS-I (Web Servise Interoperability Organization ) a été initié pour la promotion de l’interopérabilité entre plate formes (ex .NET/J2EE) . Et ce à travers la rédaction de spécifications WS-*
Respect des profils du WS-I
Tout nouveau service web gagnerait à respecter un ensemble de ‘profils’ / formats afin de contribuer à son utilisation sur des plateformes hétérogènes :
— WS-I Basic Profile (transport HTTP/HTTPS, invocation dynamique XML/SOAP…)
— WS-I Basic Security Profile / SAML
— Simple Soap Binding Profile
INFO : le respect des profils ne garantit pas l’interopérabilité mais y contribue fortement.
Outils test conformité web services
le WS-I vous fournit aux développeurs de service web plusieurs outils vérifier que leurs web service respecte ces profils.
En particulier :
— Moniteur permettant d’intercepter en temps réel les messages SOAP
— Analyseur destiné à vérifier la conformité du WSDL
Partie 4 : gouvernance
Développer et déployer un service web, c’est bien. Mais…:
— l’accès à votre service web est’il sécurisé ?
— assurez vous une bonne intégrité transactionnelle ?
— assurez-vous une bonne qualité de service ? votre service web est t’il fiable ?
— est’il possible de monitorer votre web service ?
Dans un contexte professionnel, vous devez fournir un ensemble de services additionnels contribuant à une bonne ‘gouvernance’. Vous devez ‘décorer’ votre service web avec des services techniques à forte valeur ajoutée.
C’est pour assurer cette gouvernance que d’autres spécifications sont apparus :
— WS-Addressing : rendre transparent le protocole de transport utilisé
— WS-Reliability : fiabiliser le service
— WS-Security : sécuriser le service
— WS-Management : monitorer
— WS-Policy : gérer les métadonnées
— WS-Coordination et WS-Atomic transactions
— …
Ces standards sont soumis et accompagnés par l’OASIS et le W3C.
Partie 5 : API JAVA accès service web
l’API JAX-WS (Java API for XML WebServices) offre 3 possibilités pour se connecter à un service web :
1) Invocation dynamique
2) Proxy
3) SAAJ
Les deux premières stratégies masquent la complexité de manipuler le XML en arrière plan.
La dernière (SAAJ, api de bas niveau) vous fournit un accès total à l’enveloppe SOAP, ainsi que différentes stratégies pour contrôler l’invocation de requêtes SOAP.
Partie 6 : Spécifications
JSR 181 : Web Services Metadata for the Java Platform (annotations)
JSR 224 : Java API for XML-based web services (JAX-WS 2.1). Remplace JAX-RPC. Opère au dessus de SAAJ
JSR 109 : Web services for JAva EE. Modèle de programmation
JSR 67 : SOAP with Attachments API for JAVA (SAAJ)
Partie 7 : implémentations
Interopérabilité J2EE/.NET : WSIT et le projet Tango
En 2005, Sun et Microsoft ont démarré une collaboration afin que les services web J2EE et .NET soient interopérables (WSIT pour Wen Service interoperable technologies)
Implémentation Sun/Java : Metro (inclus dans serveur JEE6 Glassfish)
Implémentation Microsoft : WCF (Windows Communication Framework )
En Metro, vous avec la garantie de :
— mettre en œuvre une implémentation de JAX-WS interopérabilité avec .NET 3.5+
— pouvoir ‘décorer’ votre service web avec les services non fontionnels suivants :
— > Transport (HTTP, SOAP/TCP, MTOM/XOP)
— > Sécurité
— > Transaction
— > Fiabilité
Implémentation JAX-WS
Glassfish Metro
Apache CXF
Apache AXIS2
JBoss WS
…
Formation Architecture Java
Soyez prêt pour des projets ambitieux : formation architecture Java Objis