La présente rubrique est une introduction à l'utilisation des services Web. WebSphere
Application Server prend en charge les services Web qui sont développés et implémentés dans le cadre de divers modèles de programmation Java™. Utilisez les services web si vous disposez de plusieurs plateformes, notamment des plateformes Java EE (Java Platform, Enterprise Edition) et des plateformes non-Java EE.
Avant de commencer
Déterminez si une implémentation de services Web bénéficie du processus métier.
Pourquoi et quand exécuter cette tâche
Pratiques recommandées: IBM®
WebSphere Application Server prend en charge
les modèles de programmation JAX-WS (Java API
for XML-Based Web Services) et JAX-RPC (Java API
for XML-based RPC).
JAX-WS représente la future
génération du modèle de programmation des services Web qui étend la
base du modèle JAX-RPC. L'utilisation du modèle de programmation JAX-WS stratégique simplifie le développement des services et des clients Web par la prise en charge d'un modèle d'annotations normalisé. Bien que le modèle de programmation et les applications JAX-RPC soient toujours pris en charge,
vous avez tout avantage à recourir au modèle de programmation JAX-WS, facile à mettre en oeuvre, pour
développer de nouvelles applications et de nouveaux clients de services Web. best-practices
Pour obtenir la liste complète des normes et
spécifications prises en charge, voir les spécifications des services Web
et la documentation des API.
L'implémentation des applications de services Web permet d'intégrer
facilement des systèmes d'applications qui fonctionnent en tant que systèmes
autonomes, au sein ou hors de l'infrastructure de votre entreprise. Votre base de données d'informations sur les clients, par exemple, est
une application autonome, mais vous aimeriez que votre application comptable puisse accéder aux données sur les clients.
Vous pouvez créer un service Web pour la base de données des clients puis activer
l'application comptable comme client de service Web. L'application comptable peut
maintenant accéder aux informations sur les clients. Grâce à l'implémentation d'un service Web, ces deux applications peuvent partager des informations de manière efficace.
Comme les services Web peuvent être aisément appliqués aux applications et aux ressources de technologie d'information, il est possible de développer, de déployer
et de recomposer de nouvelles solutions rapidement pour répondre à de nouvelles opportunités. Les services Web devenant de plus en plus populaires, le pool de services augmente, favorisant le développement de modèles plus robustes d'applications Just-in-time et l'intégration des entités commerciales sur Internet.
Vous pouvez utiliser des applications de services Web avec le serveur d'applications en effectuant les étapes indiquées :
Procédure
- Planification de l'utilisation des services Web. Révisez tous les composants des services Web pour savoir comment rendre votre planification des services Web plus robuste.
- (Facultatif) Migration des services Web existants.
Comme les environnements Java EE mettent l'accent sur la compatibilité, la plupart des serveurs d'applications qui offrent le support des spécifications JAX-WS et JAXB les plus récentes continuent de prendre en charge l'ancienne spécification JAX-RPC. Il en résulte que les services Web existants resteront probablement basés sur JAX-RPC, alors que les nouveaux sont développés à l'aide de JAX-WS et JAXB.
Cependant, à mesure que le temps passe et que les applications sont révisées et réécrites, il peut arriver que la meilleure stratégie consiste à faire migrer un service Web JAX-RPC vers un service basé sur JAX-WS et JAXB. Un fournisseur peut alors choisir de proposer des améliorations de qualités de service qui ne sont disponibles que dans les nouveaux modèles. Par exemple, les prises en charge de SOAP 1.2 et MTOM (Message Transmission Optimization Mechanism) ne sont disponibles que dans les modèles de programmation JAX-WS 2.x et JAXB 2.x et pas dans JAX-RPC. Pour plus d'informations sur les meilleures pratiques et les exemples de migration des services Web JAX-RPC vers des services Web JAX-WS et JAXB, reportez-vous aux meilleures pratiques de migration des services Web.
Remarque : Des applications JAX-RPC existantes
souhaitant utiliser les fonctions JAX-WS doivent être réécrites à l'aide du modèle
de programmation JAX-WS.
Si vous avez utilisé des services web Apache
SOAP et que vous souhaitez désormais développer et implémenter des services Web
pour la spécification Java EE, vous devez faire migrer les applications client de toutes les
versions 4.0, et des versions 5.0 antérieures à la version 5.0.2. Pour plus de détails, consultez les informations sur la migration de services Web Apache SOAP vers des services Web JAX-RPC basés sur les normes Java EE.
- Développez des applications de services Web Vous pouvez développer des services Web de l'une des manières suivantes :
- Développez des services Web à l'aide de JAX-WS à partir de fichiers WSDL existants.
Vous pouvez créer un service Web JAX-WS à partir d'un fichier WSDL existant qui décrit
l'interface de service d'une application JavaBeans ou beans enterprise. En général, le fichier WSDL est défini lors de la modélisation de l'application.
La méthode qui consiste à utiliser une définition de service existante ou un fichier WSDL
pour créer une application est un développement de type descendant.
- Développez des services Web à l'aide de JAX-WS.
Vous pouvez utiliser le modèle de programmation JAX-WS (Java API
for XML-Based Web Services) pour développer des services Web. JAX-WS simplifie le développement d'application grâce à un modèle standard,
basé sur des annotations qui permet de développer des applications et des
clients de services Web. Un ensemble de règles de liaison commun aux objets XML et Java facilite l'intégration des données XML et des fonctions de traitement dans les applications Java. Une autre série d'améliorations optimise l'envoi d'associations binaires, telles que des images et des fichiers,
avec les demandes de services Web.
Version 9.0 inclut la prise en charge des beans session enterprise singleton en tant que noeuds finaux JAX-WS. Les beans session singleton sont utiles dans les situations dans lesquelles une seule instance d'implémentation de noeud final de services web est nécessaire pour traiter toutes les demandes reçues pour un noeud final de services web spécifique. Il est possible que l'instance unique du bean doive partager des informations d'état entre les demandes. Habituellement, une nouvelle instance d'implémentation de noeud final de services web est créée pour traiter chaque demande.
Lors du développement d'un service Web JAX-WS à partir de JavaBeans ou de beans enterprise session stateless ou singleton,
vous pouvez exposer le bean en tant que service Web JAX-WS à l'aide d'annotations. L'ajout au bean de l'annotation @WebService ou @WebServiceProvider définit l'application comme service Web JAX-WS. Les beans enterprise qui sont exposés comme services Web JAX-WS
doivent être packagés dans des modules EJB 3.0 ou supérieurs.
La transformation d'une application existante en service web est un développement de type
ascendant. Il s'agit d'une méthode ascendante, car le point de départ est
l'implémentation et non un service Web existant ou un fichier WSDL (Web Services
Description Language).
- Développez et déployez des clients de services Web JAX-WS. Les clients de services Web pouvant accéder à des services Web JAX-WS et les appeler sont développés sur la base de la spécification Web Services for Java Platform, Enterprise Edition (Java EE). Le serveur d'applications prend en charge des clients EJB (Enterprise JavaBeans), des clients d'applications Java EE, des fichiers JSP (JavaServer Pages) et des servlets fondés sur le modèle de programmation JAX-WS.
- Développement d'applications de services Web à l'aide de JAX-RPC à partir de fichiers WSDL existants.
Vous pouvez créer un service Web JAX-RPC à partir d'un fichier WSDL décrivant l'interface de
service d'une implémentation de bean enterprise en adoptant une méthode de développement descendant.
- Développez des applications de services Web à l'aide de JAX-RPC.
Vous pouvez utiliser le modèle de programmation JAX-RPC (Java API
for XML-based RPC) pour développer des services Web. Lors du développement d'un service web JAX-RPC à partir de JavaBeans ou de beans enterprise, vous devez développer un nouveau fichier WSDL. Vous pouvez utiliser des JavaBeans ou des beans enterprise existants, puis
activer l'implémentation pour les services Web.
- Développez et déployez des clients de services Web JAX-RPC Vous pouvez développer les clients de services Web en fonction de la spécification Java EE (Java Platform, Enterprise Edition)
et de la spécification JAX-RPC (Java API for XML-based remote procedure call). Le serveur d'applications prend en charge des clients EJB (Enterprise JavaBeans), des clients d'applications Java EE, des fichiers JSP (JavaServer Pages) et des servlets fondés sur le modèle de programmation JAX-RPC.
- Activez des services Web via les technologies d'intégration de services
Vous pouvez utiliser l'activation de services Web du bus d'intégration de services pour les actions suivantes :
- Rendre disponible en tant que service Web un service hébergé en interne qui est déjà disponible sur une destination de service disponible.
- Rendre un service Web externe disponible en interne au niveau d'une destination de bus.
- Utiliser la passerelle des services Web pour mapper un service existant (service
hébergé en interne ou service Web externe) vers un service Web qui est fourni par la passerelle.
Le développement des services Web permet de tirer parti de WS-Addressing (adressage de services Web), de WSRF (Web Services Resource Framework) et de WS-Transaction (Web Services Transaction).
- Utilisez l'interface SPI
WS-Addressing : Tâches avancées d'adressage de service Web.
Le développement
de services Web permet d'utiliser la méthode WS-Addressing (Web Services Addressing), ce qui facilite
l'interopérabilité entre des services Web à l'aide d'une norme standard pour gérer les services Web
et en fournissant des informations d'adressage dans les messages.
- Créez des services Web avec état à l'aide des spécifications WSRF (Web Services Resource
Framework).
A l'aide du support WSRF (Web Services Resource Framework) dans
le serveur d'applications, vous pouvez implémenter un service Web avec état en tant que ressource WS-Resource et
référencer ce service à l'aide d'une référence de noeud final WS-Addressing.
- Utilisez la règle WS-Transaction pour coordonner des transactions ou des activités métier pour des services Web.
WS-Transaction est une norme d'interopérabilité
qui inclut les spécifications WS-AtomicTransaction, WS-BusinessActivity et WS-Coordination. Le support de Web Services Atomic Transaction (WS-AT) dans le serveur d'applications apporte
une qualité de service transactionnelle à l'environnement des services Web. Des applications de services Web répartis
et les ressources qu'elles utilisent peuvent participer à des transactions globales réparties.
Avec le support Web Services Business Activity (WS-BA) sur le serveur d'applications, les services Web de différents systèmes peuvent coordonner les activités plus largement couplées que des transactions atomiques. De telles activités peuvent être difficiles voire impossibles à annuler de façon atomique, et nécessitent de ce fait un processus de compensation en cas d'erreur.
- Utilisez WS-Policy pour échanger des règles dans un format standard.
WS-Policy est un standard d'interopérabilité qui permet de décrire et de communiquer les règles d'un service Web de telle sorte que les fournisseurs de services puissent exporter les exigences des règles dans un format standard. Les clients peuvent combiner les exigences du fournisseur de services avec leurs propres capacités pour établir les règles requises pour une interaction spécifique.
- Assemblez des services Web.
Consultez les informations relatives aux éléments nécessaires pour l'assemblage d'un service
Web et à l'ordre dans lequel assembler les éléments, par exemple un fichier EAR.
- Déployez des services Web.
Consultez la procédure de déploiement du fichier EAR qui a été configuré et activé pour
les services Web.
- Administrez des services Web déployés.
Une fois votre application de services Web déployée, vous pouvez configurer des paramètres de sécurité, afficher des descripteurs de déploiement et des documents WSDL, définir la portée d'un port de service Web et gérer des ensemble de règles et des fournisseurs de services. Ces tâches peuvent être réalisées à l'aide de la console d'administration ou des outils de ligne de commande.
- Sécurisez les services Web.
- Publiez le fichier WSDL.
Après l'installation d'une application de services Web et la modification éventuelle
des informations du noeud final, vous pouvez avoir besoin des fichiers WSDL (Web Services
Description Language) contenant les informations du noeud final mises à jour. Consultez les informations expliquant comment publier les fichiers WSDL et les rendre accessibles.
- Surveillez les performances des applications de services Web.
Consultez les informations relatives à l'utilisation de l'infrastructure PMI
(Performance Monitoring Infrastructure) pour mesurer le temps nécessaire pour le
traitement des demandes de services Web.
- Identifiez et résolvez les problèmes liés
aux services Web.
Lisez la rubrique sur l'identification et la résolution des incidents liés aux différents processus utilisés pour développer, implémenter et utiliser les services web : outils de ligne de commande, erreurs de compilation Java, erreurs et exceptions d'exécution du client, erreurs de sérialisation et de désérialisation, problèmes d'authentification et échecs d'autorisation auprès de la sécurité des services Web.
Exemple
L'exemple suivant montre comment une entité commerciale peut
utiliser les services Web.
Une fleuriste souhaite recevoir des commandes de clients via le Web. Elle commence son entreprise en recherchant des fournisseurs de fleuristes en
gros, chiffrant les produits et remplissant des contrats pour des commandes de
fleurs à venir.
Grâce aux services Web, la fleuriste peut trouver des fournisseurs de fleuristes en gros. Une façon de trouver de nouveaux fournisseurs consiste à utiliser un registre UDDI
(Universal Description, Discovery and Integration) pour effectuer la recherche. Une fois les fournisseurs choisis, le registre renvoie les coordonnées des distributeurs correspondant aux critères indiqués par la fleuriste.
La fleuriste peut demander des listes de prix de chacun des fournisseurs en
obtenant un fichier WSDL pour chaque fournisseur potentiel. Le fichier WSDL peut être téléchargé à partir
de la page Web du fournisseur, reçu par courrier électronique ou extrait de l'entrée de registre UDDI du
fournisseur.
Le fichier WSDL décrit l'appel de procédure. Lors de l'utilisation du serveur d'applications, l'appel de procédure est un appel JAX-RPC ou JAX-WS. Un de ces types d'appel de procédure extrait la liste des prix. Le fichier WSDL spécifie également l'URL (Universal Resource Locator) où la demande est envoyée.
La fleuriste doit maintenant
comparer les prix qu'elle a reçus de chaque fournisseur, choisir les fournisseurs avec
lesquels elles va travailler et prendre des dispositions pour que les
commandes futures soient honorées. La fleuriste peut désormais vendre des
marchandises sur Internet en utilisant des services web pour communiquer avec
les fournisseurs aux meilleurs prix et remplir les commandes. Les tarifs
doivent être publiés sur son site web et elle doit fournir un mécanisme aux
clients permettant de commander des fleurs.
Les clients des services Web
de la fleuriste sont déployés sur le serveur de son magasin. Lorsqu'un client effectue une transaction pour acheter des fleurs via le Web, la commande est envoyée au fournisseur via l'appel de procédure. Le fournisseur répond en envoyant une confirmation avec la référence de la commande et la date de livraison. Les
fournisseurs gèrent le stock et la fleuriste la commande du client.
De même, le catalogue de la fleuriste peut être composé automatiquement
à partir des catalogues de chaque fournisseur. Si le fournisseur expédie directement au client, les interrogations de suivi de
la commande peuvent être directement transmises au système de suivi des commandes du fournisseur. Le fournisseur peut également utiliser
les services Web pour envoyer les factures des commandes de la fleuriste. Les formulaires nécessaires à ces processus, qui devaient être jusqu'à
présent remplis manuellement, puis faxés ou envoyés par courrier, sont
désormais traités automatiquement. La fleuriste et fournisseur gagnent ainsi en
efficacité.
L'utilisation des services Web est avantageuse car un stock beaucoup plus important est rendu disponible pour la fleuriste. Il n'y a pas de surcharge de maintenance des marchandises, mais la fleuriste
peut offrir aux clients des produits dont elle ne disposerait pas autrement. La vente de fleurs sur le web augmente le capital de la fleuriste sans
surcharge d'un autre magasin ou d'argent investie dans d'autres produits.
Pour un scénario
plus détaillé, consultez les informations relatives aux généralités concernant le scénario sur les
services Web, qui présentent un magasin de matériel de jardinage en ligne fictif, nommé Plants by WebSphere, et auquel le concept de services Web a été intégré.
Consultez la section des exemples pour obtenir d'autres modèles illustrant les services Web JAX-WS et JAX-RPC Web.