Normes en matière de services Web

L'une des principale caractéristiques des normes Internet est qu'elles sont axées sur les protocoles et non sur les mises en oeuvre. L'Internet se compose de technologies hétérogènes qui interopèrent par le biais de protocoles partagés. Ceci empêche un fournisseur d'imposer une norme sur Internet. Le développement de logiciels libres joue un rôle crucial dans la défense de l'interopérabilité des mises en oeuvre des normes par les fournisseurs.

Les normes suivantes sont très importantes pour les services Web : Universal Description, Discovery and Integration (UDDI), Web Services Description Language (WSDL), Web Services Inspection Language (WSIL), SOAP et Web Services Interoperability (WS-I). La relation entre ces normes est décrite à la Figure 2.

Les spécifications UDDI définissent des normes ouvertes indépendantes des plateformes qui permettent aux entreprises de partager l'information dans un registre métier mondial, de reconnaître des services dans le registre et de définir leur mode d'interaction sur Internet. Pour plus d'informations sur UDDI, reportez-vous à www.uddi.org

WSIL est une spécification ouverte basée sur XML qui définit une méthode de reconnaissance de service répartie et qui alimente en références des descriptions de service au niveau du point de fourniture du fournisseur de services, en indiquant comment inspecter un site Web à la recherche de services Web disponibles. Un document WSIL définit les emplacements d'un site Web dans lesquels vous pouvez rechercher des descriptions de services Web. WSIL s'articulant autour de la reconnaissance de services répartis, la spécification WSIL complète UDDI en simplifiant la reconnaissance des services disponibles sur des sites Web qui n'ont pas encore été répertoriés dans un registre UDDI. Une rubrique distincte de la présente documentation traite de la relation entre UDDI et WSIL. Pour plus d'informations sur WSIL, reportez-vous à www.ibm.com/developerworks/webservices/library/ws-wsilspec.html

WSDL est une spécification ouverte basée sur XML qui décrit les interfaces et les instances des services Web sur le réseau. Elle est extensible, ce qui permet de décrire les noeuds finaux quels que soient les formats de message ou les protocoles de réseau utilisés pour communiquer. Le entreprises peuvent mettre à disposition les documents WSDL de leurs services Web via UDDI, WSIL ou en diffusant les adresses URL à leur document WSDL par email ou sur des sites Web. WSDL est décrit dans une rubrique distincte dans cette documentation. Pour plus d'informations sur WSDL, reportez-vous à www.w3.org/TR/wsdl

SOAP est une norme basée sur XML utilisée pour la messagerie via HTTP et les autres protocoles Internet. Il s'agit d'un protocole simplifié permettant l'échange d'informations dans un environnement décentralisé et réparti. Il est basé sur XML et comprend trois parties : SOAP permet de lier et d'utiliser les services Web reconnus en définissant un chemin de messages pour le routage des messages. SOAP est utilisé pour émettre des requêtes UDDI pour les services Web. Pour plus d'information sur SOAP 1.1 (SOAP 1.2 n'est pas pris en charge par les outils de service Web), voir www.w3.org/TR/SOAP

Figure 2. Relations entre SOAP, UDDI, WSIL et WSDL.

La Figure 2 illustre les relations entre SOAP, UDDI, WSIL et WSDL.

Un fournisseur de services héberge un service Web et le rend accessible à l'aide de protocoles de type SOAP/HTTP et SOAP/JMS. Le service Web est décrit par un document WSDL stocké sur le serveur du fournisseur ou dans un référentiel particulier. Le document WSDL peut être référencé par le registre d'entités UDDI et les documents WSIL. Ceux-ci contiennent des pointeurs désignant les fichiers WSDL du service Web.

Les profils WS-I Simple SOAP Binding et WS-I Attachments regroupent des exigences auxquelles le trafic WSDL et le trafic de protocole WDSL et de services Web (SOAP/HTTP) doivent se conformer pour prétendre à une conformité WS-I. Les outils de validation WS-I des services Web prennent en charge WS-I Simple SOAP Binding Profile 1.0 et Attachment Profile 1.0. Pour consulter les spécifications, accédez au site Web du WS-I et sous Ressources, sélectionnez Documentation: http://www.ws-i.org

Plusieurs nouvelles normes de services Web sont aussi prises en charge par cet environnement de développement, notamment :
JAX-RPC
JAX-RPC est l'acronyme désignant les API Java™ pour RPC basé sur XML, aussi appelées JSR 101. Il s'agit d'une spécification qui décrit les API (interfaces de programme d'application) Java et les conventions relatives à la conception de services Web et de clients de services Web utilisant des appels d'une procédure distante (RPC) et le langage XML. Cette spécification normalise les mappages de Java avec WSDL et de WSDL avec Java, et fournit les API essentielles au développement et au déploiement de services Web et de clients de services Web sur la plateforme Java. Pour plus d'informations, voir les spécifications officielles.
JSR-109
JSR-109 (Implémentation des services Web d'entreprise) définit le modèle de programmation et l'architecture d'exécution permettant le déploiement et la recherche de services Web dans l'environnement Java EE et plus particulièrement dans les conteneurs Web, EJB et les applications client. L'un des principaux objectifs est de garantir l'interopérabilité des implémentations des différents fournisseurs. Pour plus d'informations, consultez les spécifications officielles :
WS-S
Ces outils prennent en charge la norme OASIS Web Services Security 1.0. Pour plus d'information sur les différents composants de cette norme, voir :

Les outils de services Web prennent en charge les spécifications suivantes :

Technologie ou spécification Version ou niveau pris en charge
Transports
HTTP/HTTPS v1.0 et v1.1
JMS  
Messagerie
Spécification SOAP v1.1
Connexions SOAP  
Description
UDDI v2.0
WSDL v1.1
WSIL v1.0
Sécurité
Sécurité WS OASIS Standard 1.0
Interopérabilité
Profil de base WS-I 1.1.2
WS-I Simple SOAP Binding Profile 1.0.3
WS-I Attachments Profile 1.0
Autre normes  
JAX-RPC 1.0 pour J2EE 1.3, 1.1 pour J2EE 1.4 et Java EE 1.5
JSR 109