Relatie tussen UDDI en WSDL

De UDDI-specificatie biedt een manier om gegevens over webservices te publiceren en op te vragen. UDDI heeft twee functies: (1) Als op SOAP gebaseerd protocol definieert het de communicatie tussen UDDI-clients met registers. (2) Het is een bepaalde set van globaal gerepliceerde registers.

Voor de registratie van een service zijn vier hoofdgegevensstructuurtypen nodig:

Raadpleeg het verwante naslagmateriaal aan het einde van dit onderwerp voor meer informatie over de gegevenstypen van UDDI.

WSDL (Web Services Description Language) is een op XML gebaseerde standaardspecificatie voor het beschrijven van webservices. WSDL is een XML-indeling voor het beschrijven van netwerkservices als een set eindpunten die worden toegepast op berichten die document-georiënteerde of procedure-georiënteerde informatie bevatten.

De WSDL-beschrijving van services kan op tal van manieren worden gestructureerd. WSDL-documenten bestaan uit twee hoofdgedeelten om te helpen bij het publiceren en zoeken van WSDL-servicebeschrijvingen in een UDDI-register:

Als u webservices aan de hand van Java-beans of EJB's maakt met de Apache Axis-runtimeomgeving, wordt door de webservicestools één WSDL-document gegenereerd. Dit WSDL-document bevat de documenten voor zowel de service-interface als de implementatie.

Een service-interface wordt omschreven als een WSDL-document dat de elementen types, import, message, portType en binding bevat. Een service-interface bevat de WSDL-servicedefinitie waarmee een of meer services worden geïmplementeerd. De definitie is een abstracte definitie van een webservice en wordt gebruikt om een specifiek servicetype te beschrijven. Dit document kan door middel van het element import naar ander service-interfacedocument verwijzen. De webservicetools in dit product genereren een service-interfacedocument dat alleen de elementen message en portType bevat waarnaar wordt verwezen door het bindingdocument dat alleen bindingen van het element portType bevat.

Het service-implementatiedocument bevat de service-elementen. Het document bevat een beschrijving van een service die een service-interface implementeert. Ten minste één import-element verwijst naar het WSDL-service-interfacedocument. Monolithische WSDL-documenten die bijvoorbeeld met de runtimeomgeving van Axis zijn gemaakt, bevatten geen import-elementen. Een service-implementatiedocument kan naar meerdere service-interfacedocumenten verwijzen.

Een serviceprovider fungeert als host voor een webservice en stelt deze door middel van protocollen als SOAP/HTTP en SOAP/JMS beschikbaar. De webservice wordt door de WSDL-documenten beschreven die op de server van de provider of in een speciale repository zijn opgeslagen. Naar de WSDL-documenten wordt verwezen door UDDI-bedrijfsservices (servicedocumenten) en tModels (bindingdocumenten). Aan de hand van deze gegevens kan een webservice worden opgespoord.

Figuur 1. Relatie tussen UDDI en WSDL.

Illustratie van de relatie tussen UDDI en WSDL

In figuur 1 wordt de relatie tussen UDDI en WSDL geïllustreerd. Het WSDL-service-element verwijst naar het WSDL-bindingelement. De URL van het document met het WSDL-bindingelement wordt naar het UDDI-bedrijfsregister gepubliceerd als een tModel-item. De URL van het document met het service-element wordt naar het UDDI-bedrijfsregister gepubliceerd als een businessService-item en bevat informatie over het item bindingTemplate. Raadpleeg de sectie met verwante onderwerpen aan het einde van dit document voor meer informatie over de gegevensstructuurtypen van het UDDI-register. Het import-gedeelte van het diagram is van de runtimeomgeving afhankelijk. Monolithische WSDL-documenten die bijvoorbeeld met de runtimeomgeving van Axis zijn gemaakt, bevatten geen import-elementen.

De service-implementatie beschrijft een service-instance. De instance wordt door middel van een WSDL-service-element gedefinieerd. Met behulp van het service-element van een service-implementatiedocument wordt het UDDI-item businessService beschreven. Bij de publicatie van een WSDL-servicebeschrijving moet een service-interface als tModel-item worden gepubliceerd vóór de publicatie van een service-implementatie als businessService-item.

Een service-implementatie wordt als onderdeel van een businessService-item met één of meer bindingTemplate-elementen naar een UDDI-register gepubliceerd. De serviceprovider regelt de publicatie van het businessService-item. Er wordt een nieuw businessService-item gemaakt voor een service-element dat in het service-implementatiedocument is gedefinieerd. In elk businessService-item wordt een nieuw bindingTemplate-item gemaakt voor elk port-element dat in een service-element is gedefinieerd.

Raadpleeg uddi.org/bestpractices.html voor meer informatie over de relatie tussen WSDL en UDDI.