La spécification UDDI (Universal Description, Discovery, and Integration) définit un mode de reconnaissance et de publication d'informations sur les services Web. UDDI a deux fonctions : il s'agit (1) d'un protocole SOAP définissant le mode de communication des clients UDDI avec les registres et (2) d'un ensemble particulier de registres répliqués de manière globale.
L'enregistrement d'un service suppose quatre types de structure de données essentiels :
Pour plus d'informations sur les types de données UDDI, consultez les références connexes indiquées à la fin de cette rubrique.
WSDL (Web Services Description Language) est une spécification standard XML pour décrire les services Web. WSDL définit un format XML pour la description de services réseau sous forme d'un ensemble de noeuds finaux qui agissent sur les messages contenant des informations liées à des procédures ou à des documents.
La description de service WSDL peut être structurée de plusieurs manières. Toutefois, pour vous aider à publier et retrouver les descriptions de service WSDL dans un registre UDDI, les documents WSDL comportent deux parties principales :
Lors de la création de services Web sous l'environnement d'exécution Apache Axis, les outils de services Web (WST) créent un seul document WSDL lors de la génération de services Web à partir de beans Java ou d'EJB. Ce document WSDL contient les documents d'implémentation et d'interface du service.
Une interface de service est décrite par un document WSDL contenant les éléments types, importation (import), message, type de port (portType) et liaison (binding). Une interface de service comprend la définition du service WSDL utilisée pour implémenter un ou plusieurs services. Il s'agit de la définition abstraite d'un service Web. Elle est utilisée pour la description d'un type de service spécifique. Ce document peut référencer un autre document d'interface de service à l'aide d'un élément d'importation. Les outils de services Web de ce produit génère un document d'interface de service contenant uniquement les éléments message et portType référencés dans le document de liaison contenant uniquement les liaisons relatives au type de port.
Le document d'implémentation du service contient les éléments de service. Ce document contient la description d'un service implémentant une interface de service. Au moins un élément d'importation (import) contiendra une référence au document d'interface de service WSDL. Toutefois un document WSDL monolithique tel que celui qui a été créé à l'aide de l'environnement d'exécution Axis ne comporte pas d'importation. Un document d'implémentation de service peut contenir des références à plusieurs documents d'interface de service.
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 les documents WSDL stockés sur le serveur du fournisseur ou dans un référentiel particulier. Les documents WSDL sont référencés par les éléments businessService (documents de service) et tModels (documents de liaison) d'UDDI. Ces pointeurs permettent la reconnaissance d'un service Web par un demandeur de service.
Figure 1. Relations entre UDDI et WSDL.
La figure 1 illustre les relations entre UDDI et WSDL. L'élément de service WSDL référence l'élément de liaison WSDL. L'URL du document contenant l'élément de liaison WSDL est publiée dans le registre métier UDDI en tant que tModel. L'URL du document contenant l'élément de service WSDL est publiée dans le registre métier UDDI en tant que businessService et contient des informations sur l'élément bindingTemplate. Pour plus d'informations sur les types de structure de données du registre UDDI, consultez la section Références connexes à la fin de ce document. Notez que la partie Importation du diagramme est facultative en fonction de l'environnement d'exécution. Un document WSDL monolithique tel que celui qui a été créé à l'aide de l'environnement d'exécution Axis ne comporte pas d'importation.
L'implémentation de service décrit l'instance d'un service. Cette instance est définie à l'aide d'un élément de service WSDL. L'élément de service dans un document d'implémentation de service est utilisé pour publier un service métier (businessService) UDDI. Lors de la publication d'une description de service WSDL, une interface doit être publiée en tant que tModel avant la publication d'une implémentation de service en tant que businessService.
Une implémentation de service est publiée dans un registre UDDI comme partie d'une structure businessService comportant un ou plusieurs éléments bindingTemplate. La structure businessService est publiée par le fournisseur de services. Un nouvel élément businessService est créé pour un élément de service défini dans le documentation d'implémentation de service. Un nouvel élément bindingTemplate est créé dans une structure businessService pour chaque élément de port défini dans un élément de service.
Pour plus d'informations sur les relations entre WSDL et UDDI, voir uddi.org/bestpractices.html.