TUTORIELS 
Introduction à WSDL

Page 1 | 2

Le WSDL est le langage de description de web services, permettant aux applications les utilisant d'auto-configurer les échanges entre eux.
 (13 novembre 2002)
 

Présentation
Avec la publication cet été, par le W3C, du document de travail pour WSDL 1.2, et donc le passage pour cette norme du stade de proposition de la part de Microsoft, IBM et Ariba (WSDL 1.1) à celui de "norme W3C en cours de finalisation", est venu le temps d'étudier plus profondément ce nouveau format appellé à renouveller la manière dont fonctionnent les Web Services.

C'est en effet de Web Services qu'il s'agit: le WSDL (Web Services Description Language) est, comme son nom l'indique, un langage de description de Web Services, au format XML. Il permet de séparer la description des fonctionnalités abstraites offertes par un service, des détails concrets d'une description de service, tels que "comment" et "où" cette fonctionnalité est proposée. C'est donc un langage décrivant les fonctionnalités abstraites d'un service ainsi que l'architecture décrivant les détails concrets de la description de service.
En clair, il définit, de manière abstraite et indépendante du langage, l'ensemble des opérations et des messages qui peuvent être transmis vers et depuis un service web donné.
Le WSDL décrit quatre ensembles de données importants:
- information d'interface décrivant toutes les fonctions disponibles publiquement,
- information de type de donnée pour toutes les requêtes de message et requêtes de réponse,
- information de liaison sur le protocol de transport utilisé,
- information d'adresse pour localiser le service spécifié.

Une fois qu'un Web Services est développé, il faut publier sa description et faire un lien vers elle dans un catalogue UDDI (Universal Description, Discovery and Integration), de sorte que les utilisateurs potentiels peuvent le trouver. Quand un utilisateurs souhaite utiliser le service, il fait une demande de son fichier WSDL afin de connaître son emplacement, les appels de fonctions et comment y accéder. A partir de cela, il peut composer, par exemple, une requête SOAP (Simple Object Access Protocol) vers l'ordinateur du service.
Tout ce parcours peut évidemment être automatisé à l'aide d'outils reconnaissant WSDL, et permet ainsi d'intégrer de nouveaux services pratiquement sans devoir entrer de nouveau code.

WSDL est donc conçu pour être la pierre d'angle de l'édifice Web Services, avec un langage commun pour décrire les services et une plateforme pour intégrer automatiquement ces services.


Le format WSDL
Un document WSDL, spécifié comme InfoSet XML, défini une suite de descriptions de composants. Le fichier WSDL est principalement composé de 7 élements, avec d'autres éléments optionnels:
- definitions: élément racine du document, il donne le nom du service, déclare les espaces de noms utilisés, et contient les éléments du service. Obligatoire.
- message: décrit un message unique, que ce soit une message de requête seul ou un message de réponse seul. L'élément défini le nom du message et peut contenir (ou pas) des éléments part, qui font référence aux paramètres du message ou aux valeurs retournées par le message. Définition abstraite.
- portType: combine plusieurs éléments message pour composer une opération. Chaque opération se réfère à un message en entrée et à des messages en sortie. Définition abstraite.
- types: décrit tous les types de données utilisés entre le client et le serveur. WSDL n'est pas exclusivement lié à un système spécifique de typage, mais utilise par défaut le spécification XML Schema. Définition abstraite.
- binding: décrit les spécifications concrètes de la manière dont le service sera implémenté: protocole de communication et format des données pour les opérations et messages définis par un type de port particulier. WSDL possède des extensions internes pour définir des services SOAP; de fait, les informations spécifiques à SOAP se retrouvent dans cet élément. Définition concrète.
- service: défini les adresses permettant d'invoquer le service donné, ce qui sert à regrouper un ensemble de ports reliés. La plupart du temps, c'est une URL invoquant un service SOAP. Définition concrète.
- import: permet de séparer les différents éléments d'une définition de service en plusieurs documents indépendants, qui peuvent être importés si besoin est. Cela permet d'écrire des définitions plus claires, en séparant les définitions selon leurs niveaux d'abstraction, et de maximiser la réutilisabilité.
- serviceType: utilisé pour définir une description de composants serviceType.
- documentation: contient de la documentation lisible. Optionnel.

L'élément portType est l'un des plus importants: il défini un service, les opérations qu'il peut effectuer et les messages qu'il comprend.


Conseils de création
Pour un maximum d'interopérabilité tout en conservant une certaine flexibilité, voici quelques conseils pour créer son document WSDL:

1) Documentez toujours votre fichier WSDL, à la fois par le biais de la balise documentation, et en fournissant de la documentation dans un fichier externe au document WSDL.
2) Utilisez la Recommendation 2001 de XML Schema. On peut mettre beaucoup de choses dans l'élément types d'un document WSDL: Relax NG, une ancienne version XML Schema ou toute autre chose, mais la méthode la plus sûre et interopérable est la version 2001 de Schema.
3) Utilisez l'élément type: même si les messages ont un type de données simple, il faut quand même utiliser l'élément types pour tout décrire. Dans tous les cas, ne faites pas référence aux types dans l'élément message.
4) Divisez votre document WSDL en plusieurs morceaux en tirant parti de la fonction import: créez un fichier pour l'aspect abstrait de WSDL, un autre pour les liaisons et un dernier pour les éléments de service et les ports.
5) Débutez la conception de votre service par WSDL, et conservez son interface inchangée de bout en bout, même si le WSDL est généré par des outils. Cela implique que vous devrez souvent comparer votre code à WSDL.

Page 1 | 2

 
[ Xavier Borderie,JDNet
 
Accueil | Haut de page